re PR middle-end/40249 (build breakage with inline heuristics change)
[gcc.git] / gcc / ChangeLog
1 2009-05-27 Hans-Peter Nilsson <hp@axis.com>
2
3 PR middle-end/40249
4 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
5 with -fno-inline.
6
7 2009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
8
9 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
10 applicable.
11 * config/m32r/m32r.h: Ditto.
12 * config/m32r/m32r.md: Ditto.
13 * config/m32r/predicates.md: Ditto.
14
15 2009-05-27 Alexandre Oliva <aoliva@redhat.com>
16
17 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
18
19 2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
20
21 * doc/plugins.texi
22 (Loading plugins): typo.
23 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
24 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
25 (Interacting with the GCC Garbage Collector): Added new section.
26 (Giving information about a plugin): Added new section for
27 PLUGIN_INFO.
28 * testsuite/gcc.dg/plugin/plugin.exp: Added ggcplug.c test plugin
29 with ggcplug-test-1.c for testing PLUGIN_GGC_MARKING etc...
30 * testsuite/gcc.dg/plugin/ggcplug-test-1.c: Added new file.
31 * testsuite/gcc.dg/plugin/ggcplug.c: Added new file.
32 * ggc.h (ggc_register_root_tab): Added declaration.
33 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
34 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
35 (register_callback): Improved comment in declaration.
36 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for
37 vectors.
38 (extra_root_vec) Added static variable for dynamic roots
39 registration.
40 (ggc_register_root_tab) Added new routine.
41 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
42 PLUGIN_GGC_MARKING event.
43 * ggc-zone.c: Include plugin.h.
44 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
45 * ggc-page.c: Include plugin.h.
46 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
47 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
48 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
49 (register_callback): check lack of callbacks for
50 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
51 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
52 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
53 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
54 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
55 dependency on plugin.h.
56 (plugin.o): Added dependency on ggc.h...
57
58 2009-05-26 Richard Guenther <rguenther@suse.de>
59
60 PR middle-end/40248
61 Revert
62 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
63 with mismatched comparison modes.
64
65 * expr.c (expand_expr_real_1): Expand the operand of a
66 VIEW_CONVERT_EXPR in its natural mode.
67
68 2009-05-26 Ian Lance Taylor <iant@google.com>
69
70 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
71 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
72 (ALL_COMPILERFLAGS): Define.
73 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
74 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
75 (collect2$(exeext), collect2.o): Likewise.
76 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
77 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
78 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
79 (libbackend.o, intl.o, cppdefault.o): Likewise.
80 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
81 (build/%.o): Use $(COMPILER_FOR_BUILD).
82 (build/gen%$(build_exeext)): Likewise.
83 (build/gcov-iov$(build_exeext)): LIkewise.
84 * config/t-darwin (darwin.o): Use $(COMPILER).
85 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
86 * config/t-sol2 (sol2-c.o): Likewise.
87 (sol2.o): Likewise.
88 * config/t-vxworks (vxworks.o): Likewise.
89 * config/x-darwin (host-darwin.o): Likewise.
90 * config/x-hpux (host-hpux.o): Likewise.
91 * config/x-linux (host-linux.o): Likewise.
92 * config/x-solaris (host-solaris.o): Likewise.
93 * config/alpha/x-alpha (driver-alpha.o): Likewise.
94 * config/arm/t-arm (arm-c.o): Likewise.
95 * config/arm/t-pe (pe.o): Likewise.
96 * config/arm/t-wince-pe (pe.o): Likewise.
97 * config/i386/t-cygming (winnt.o): Likewise.
98 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
99 * config/i386/t-cygwin (cygwin1.o): Likewise.
100 (cygwin2.o): Likewise.
101 * config/i386/t-i386 (i386-c.o): Likewise.
102 * config/i386/t-interix (winnt.o): Likewise.
103 * config/i386/t-netware (netware.o): Likewise.
104 * config/i386/t-nwld (nwld.o): Likewise.
105 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
106 * config/i386/x-i386 (driver-i386.o): Likewise.
107 * config/i386/x-cygwin (host-cygwin.o): Likewise.
108 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
109 * config/ia64/t-ia64 (ia64-c.o): Likewise.
110 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
111 * config/mips/x-native (driver-native.o): Likewise.
112 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
113 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
114 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
115 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
116 * config/score/t-score-elf (score7.o): Likewise.
117 (score3.o): Likewise.
118 * config/sh/t-sh (sh-c.o): Likewise.
119 * config/sh/t-symbian (sh-c.o): Likewise.
120 (symbian.o): Likewise.
121 * config/spu/t-spu-elf (spu-c.o): Likewise.
122 * config/v850/t-v850 (v850-c.o): Likewise.
123 * config/v850/t-v850e (v850-c.o): Likewise.
124
125 2009-05-26 Richard Guenther <rguenther@suse.de>
126
127 PR tree-optimization/40122
128 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
129 VECTOR_CSTs if possible.
130 (fold_gimple_assign): Likewise.
131
132 2009-05-26 Richard Guenther <rguenther@suse.de>
133
134 PR middle-end/40252
135 * fold-const.c (fold_binary): Use the correct types for building
136 rotates.
137
138 2009-05-26 Richard Guenther <rguenther@suse.de>
139
140 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
141 redundant calls to merge_alias_info.
142 (bump_vector_ptr): Likewise.
143 * tree-ssa-copy.c (merge_alias_info): Remove.
144 (replace_exp_1): Remove call to merge_alias_info.
145 (propagate_tree_value): Likewise.
146 (fini_copy_prop): Propagate points-to info.
147 * tree-flow.h (merge_alias_info): Remove.
148
149 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
150
151 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
152
153 2009-05-25 Jan Hubicka <jh@suse.cz>
154
155 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
156 * cgraph.h (struct inline_summary): New filed self_wize,
157 size_inlining_benefit, self_time and time_inlining_benefit.
158 (struct cgraph_global_info): Replace insns by time ans size fields.
159 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
160 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
161 (ipcp_update_callgraph): Do not touch function bodies.
162 * ipa-inline.c: Include except.h
163 (MAX_TIME): New constant.
164 (overall_insns): Remove.
165 (leaf_node_p): New.
166 (overall_size, max_benefit): New static variables.
167 (cgraph_estimate_time_after_inlining): New function.
168 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
169 (cgraph_clone_inlined_nodes): Update size.
170 (cgraph_mark_inline_edge): Update size.
171 (cgraph_estimate_growth): Use size info.
172 (cgraph_check_inline_limits): Check size.
173 (cgraph_default_inline_p): Likewise.
174 (cgraph_edge_badness): Compute badness based on benefit and size cost.
175 (cgraph_decide_recursive_inlining): Check size.
176 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
177 times.
178 (cgraph_decide_inlining): Likewise.
179 (cgraph_decide_inlining_incrementally): Likewise; honor
180 PARAM_EARLY_INLINING_INSNS.
181 (likely_eliminated_by_inlining_p): New predicate.
182 (estimate_function_body_sizes): New function.
183 (compute_inline_parameters): Use it.
184 * except.c (must_not_throw_labels): New function.
185 * except.h (must_not_throw_labels): Declare.
186 * tree-inline.c (init_inline_once): Kill inlining_weigths
187 * tree-ssa-structalias.c: Avoid uninitialized warning.
188 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
189 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
190 (PARAM_INLINE_CALL_COST): Remove.
191 (PARAM_EARLY_INLINING_INSNS): New.
192
193 2009-05-25 Richard Guenther <rguenther@suse.de>
194
195 PR tree-optimization/36327
196 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
197 callback for reference translation or lookup at the point
198 of may-defs.
199 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
200 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
201 for union COMPONENT_REFs.
202 (vn_reference_lookup_3): New callback. Lookup from memset
203 and CONSTRUCTOR assignment, translate through struct copies.
204 (vn_reference_lookup_pieces): Make sure to not free the
205 passed operands array. Adjust walk_non_aliased_vuses call.
206 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
207 make sure we do not leak memory.
208
209 2009-05-25 Richard Guenther <rguenther@suse.de>
210
211 * tree-ssa-alias.h (dump_points_to_solution): Declare.
212 * tree-inline.c (expand_call_inline): Reset the escaped and
213 callused solutions.
214 * tree-ssa-structalias.c (pass_build_ealias): New.
215 * tree-pass.h (pass_build_ealias): Declare.
216 * passes.c (init_optimization_passes): Add PTA during
217 early optimizations.
218 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
219 and CALLUSED solutions.
220 (dump_points_to_solution): New function, split out from ...
221 (dump_points_to_info_for): ... here.
222 * tree-parloops.c (parallelize_loops): Reset the escaped and
223 callused solutions.
224
225 2009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
226
227 PR bootstrap/40027
228 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
229 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
230
231 2009-05-25 Ira Rosen <irar@il.ibm.com>
232
233 PR tree-optimization/40238
234 * tree-vect-stmts.c (vect_init_vector): Insert initialization
235 statements after basic block's labels.
236 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
237 to free the allocated memory.
238
239 2009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
240
241 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
242 return address with a USE.
243
244 2009-05-24 Richard Guenther <rguenther@suse.de>
245
246 PR middle-end/40233
247 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
248 array type from the main variant of the inner type.
249
250 2009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
251
252 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
253 definition to bool (from int) to un-break build.
254 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
255
256 2009-05-24 Paolo Bonzini <bonzini@gnu.org>
257
258 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
259 discard_stmt_changes): Delete.
260 * tree-ssa-operands.c (scb_stack): Delete.
261 (init_ssa_operands): Do not initialize it.
262 (fini_ssa_operands): Do not free it.
263 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
264
265 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
266 update_stmt, remove the others. Fix comments.
267 * tree-dfa.c (optimize_stack_restore): Likewise.
268 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
269 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
270 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
271 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
272 Likewise.
273 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
274 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
275 (dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
276 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
277 (stmts_to_rescan): Change item type to gimple.
278 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
279
280 2009-05-24 Ira Rosen <irar@il.ibm.com>
281
282 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
283 * tree-pass.h (pass_slp_vectorize): New pass.
284 * params.h (SLP_MAX_INSNS_IN_BB): Define.
285 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
286 * tree-vectorizer.c (timevar.h): Include.
287 (user_vect_verbosity_level): Declare.
288 (vect_location): Fix comment.
289 (vect_set_verbosity_level): Update user_vect_verbosity_level
290 instead of vect_verbosity_level.
291 (vect_set_dump_settings): Add an argument. Ignore user defined
292 verbosity if dump flags require higher level of verbosity. Print to
293 stderr only for loop vectorization.
294 (vectorize_loops): Update call to vect_set_dump_settings.
295 (execute_vect_slp): New function.
296 (gate_vect_slp): Likewise.
297 (struct gimple_opt_pass pass_slp_vectorize): New.
298 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
299 access its members.
300 (vec_info_for_bb): New function.
301 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
302 (VECTORIZATION_ENABLED): New macro.
303 (SLP_ENABLED, SLP_DISABLED): Likewise.
304 (vect_is_simple_use): Add bb_vec_info argument.
305 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
306 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
307 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
308 vect_schedule_slp, vect_analyze_slp): Likewise.
309 (vect_analyze_stmt): Add slp_tree argument.
310 (find_bb_location): Declare.
311 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
312 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
313 (vect_analyze_loop_operations, vect_analyze_loop,
314 get_initial_def_for_induction, vect_create_epilog_for_reduction,
315 vect_finalize_reduction, vectorizable_reduction,
316 vectorizable_live_operation, vect_transform_loop): Likewise.
317 * tree-data-ref.c (dr_analyze_innermost): Update comment,
318 skip evolution analysis if analyzing a basic block.
319 (dr_analyze_indices): Likewise.
320 (initialize_data_dependence_relation): Skip the test whether the
321 object is invariant for basic blocks.
322 (compute_all_dependences): Skip dependence analysis for data
323 references in basic blocks.
324 (find_data_references_in_stmt): Don't fail in case of invariant
325 access in basic block.
326 (find_data_references_in_bb): New function.
327 (find_data_references_in_loop): Move code to
328 find_data_references_in_bb and add a call to it.
329 (compute_data_dependences_for_bb): New function.
330 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
331 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
332 that STEP is 0.
333 (vect_analyze_data_ref_dependence): Check for interleaving in case of
334 unknown dependence in basic block and fail in case of dependence in
335 basic block.
336 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
337 dependence instances from either loop or basic block vectorization
338 info.
339 (vect_compute_data_ref_alignment): Check if it is loop vectorization
340 before calling nested_in_vect_loop_p.
341 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
342 dependence instances from either loop or basic block vectorization
343 info.
344 (vect_verify_datarefs_alignment): Likewise.
345 (vect_enhance_data_refs_alignment): Adjust function calls.
346 (vect_analyze_data_refs_alignment): Likewise.
347 (vect_analyze_group_access): Fix printing. Skip different checks if
348 DR_STEP is 0. Keep strided stores either in loop or basic block
349 vectorization data structure. Fix indentation.
350 (vect_analyze_data_ref_access): Fix comments, allow zero step in
351 basic blocks.
352 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
353 dependence instances from either loop or basic block vectorization
354 info.
355 (vect_analyze_data_refs): Update comment. Call
356 compute_data_dependences_for_bb to analyze basic blocks.
357 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
358 case of loop vectorization. In case of basic block vectorization use
359 data-ref itself as a base.
360 (vect_create_data_ref_ptr): In case of basic block vectorization:
361 don't advance the pointer, add new statements before the current
362 statement. Adjust function calls.
363 (vect_supportable_dr_alignment): Support only aligned accesses in
364 basic block vectorization.
365 * common.opt (ftree-slp-vectorize): New flag.
366 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
367 (vect_pattern_recog_1): Likewise.
368 * tree-vect-stmts.c (process_use): Likewise.
369 (vect_init_vector): Add new statements in the beginning of the basic
370 block in case of basic block SLP.
371 (vect_get_vec_def_for_operand): Adjust function calls.
372 (vect_finish_stmt_generation): Likewise.
373 (vectorizable_call): Add assert that it is loop vectorization, adjust
374 function calls.
375 (vectorizable_conversion, vectorizable_assignment): Likewise.
376 (vectorizable_operation): In case of basic block SLP, take
377 vectorization factor from statement's type and skip the relevance
378 check. Adjust function calls.
379 (vectorizable_type_demotion): Add assert that it is loop
380 vectorization, adjust function calls.
381 (vectorizable_type_promotion): Likewise.
382 (vectorizable_store): Check for outer loop only in case of loop
383 vectorization. Adjust function calls. For basic blocks, skip the
384 relevance check and don't advance pointers.
385 (vectorizable_load): Likewise.
386 (vectorizable_condition): Add assert that it is loop vectorization,
387 adjust function calls.
388 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
389 that it is not reduction, get vector type, call only supported
390 functions, skip loop specific parts.
391 (vect_transform_stmt): Check for outer loop only in case of loop
392 vectorization.
393 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
394 (vect_is_simple_use): Fix comment, add new argument, fix conditions
395 for external definition.
396 * passes.c (pass_slp_vectorize): New pass.
397 * tree-vect-slp.c (find_bb_location): New function.
398 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
399 check for patterns only in loops.
400 (vect_build_slp_tree): Add argument, adjust function calls, fail in
401 case of multiple types in basic block SLP.
402 (vect_mark_slp_stmts_relevant): New function.
403 (vect_supported_load_permutation_p): Fix comment.
404 (vect_analyze_slp_instance): Add argument. In case of basic block
405 SLP, take vectorization factor from statement's type, check that
406 unrolling factor is 1. Adjust function call. Save SLP instance in
407 either loop or basic block vectorization structure. Return FALSE,
408 if SLP failed.
409 (vect_analyze_slp): Add argument. Get strided stores groups from
410 either loop or basic block vectorization structure. Return FALSE
411 if basic block SLP failed.
412 (new_bb_vec_info): New function.
413 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
414 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
415 (vect_schedule_slp): Add argument. Get SLP instances from either
416 loop or basic block vectorization structure. Set vectorization factor
417 to be 1 for basic block SLP.
418 (vect_slp_transform_bb): New function.
419 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
420
421 2009-05-23 Mark Mitchell <mark@codesourcery.com>
422
423 * final.c (shorten_branches): Do not align labels for jump tables.
424 (final_scan_insn): Use JUMP_TABLE_DATA_P.
425
426 2009-05-23 Eric Botcazou <ebotcazou@adacore.com>
427
428 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
429 Remove outdated reference to flow.c and fix nits.
430 * doc/gccint.texi: Tweak RTL description.
431 * doc/rtl.texi: Likewise.
432
433 2009-05-23 Denis Chertykov <chertykov@gmail.com>
434
435 * config/avr/avr.c: Change my email address.
436 * config/avr/avr.h: Likewise.
437 * config/avr/avr.md: Likewise.
438 * config/avr/avr-protos.h: Likewise.
439 * config/avr/libgcc.S: Likewise.
440
441 2009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
442
443 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
444 (spu_split_load, spu_split_store): Change return type to int.
445 (spu_split_convert): Declare.
446 * config/spu/predicates.md (spu_mem_operand): Remove.
447 (spu_mov_operand): Update.
448 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
449 * config/spu/spu.c (regno_aligned_for_load): Remove.
450 (reg_aligned_for_addr, spu_expand_load): Define.
451 (spu_expand_extv): Reimplement and handle MEM.
452 (spu_expand_insv): Handle MEM.
453 (spu_sched_reorder): Handle insn's with length 0.
454 (spu_legitimate_address_p): Reimplement.
455 (store_with_one_insn_p): Return TRUE for any mode with size
456 larger than 16 bytes.
457 (address_needs_split): Define.
458 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
459 operands.
460 (spu_convert_move): Define.
461 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
462 (spu_split_store): Change all MEM's to TImode.
463 (spu_init_expanders): Preallocate registers that correspond to
464 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
465 mark_reg_pointer.
466 (spu_split_convert): Define.
467 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
468 (_move<mode>, _movdi, _movti): Update predicate and condition.
469 (load, store): Change to define_split.
470 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
471 extend<mode>ti2.
472 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
473 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
474 define_insn_and_split of lshr<mode>3.
475 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
476 (<v>ashr<mode>3_imm): Define.
477 (extv, extzv, insv): Allow MEM operands.
478 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
479 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
480 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
481 (_spu_convert2): Change to define_insn_and_split and remove the
482 corresponding define_peephole2.
483 (stack_protect_set, stack_protect_test, stack_protect_test_si):
484 Change predicates to memory_operand.
485
486 2009-05-22 Mark Mitchell <mark@codesourcery.com>
487
488 * config/arm/thumb2.md: Add 16-bit multiply instructions.
489
490 2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
491
492 PR tree-optimization/40219
493 * tree.c (iterative_hash_expr): Make sure the builtin function is
494 a normal builtin function and not a front end or back end builtin
495 before indexing into the built_in_decls array.
496
497 2009-05-22 Richard Guenther <rguenther@suse.de>
498
499 PR middle-end/38964
500 * alias.c (write_dependence_p): Do not use TBAA for answering
501 anti-dependence or output-dependence.
502 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
503 (emit_pointer_definition): Remove.
504 (emit_alias_warning): Likewise.
505 (find_what_var_points_to): Remove TBAA pruning code.
506 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
507 violations.
508 (compute_points_to_sets): Remove code computing the set of
509 dereferenced pointers.
510 * tree-data-ref.c (dr_may_alias_p): Properly use the split
511 oracle for querying anti and output dependencies.
512 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
513 if TBAA may be applied.
514 (refs_anti_dependent_p): New function.
515 (refs_output_dependent_p): Likewise.
516 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
517 (refs_output_dependent_p): Likewise.
518 * doc/tree-ssa.texi (Memory model): New section.
519 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
520 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
521 * cfgexpand.c (expand_gimple_basic_block): Do not handle
522 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
523 * expr.c (expand_expr_real_1): Likewise.
524 * gimple-low.c (lower_stmt): Likewise.
525 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
526 (dump_gimple_cdt): Remove.
527 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
528 (gimple_size): Likewise.
529 (walk_gimple_op): Likewise.
530 (is_gimple_stmt): Likewise.
531 (walk_stmt_load_store_addr_ops): Likewise.
532 (gimple_build_cdt): Remove.
533 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
534 * gimple.h (gimple_cdt_new_type): Remove.
535 (gimple_cdt_new_type_ptr): Likewise.
536 (gimple_cdt_set_new_type): Likewise.
537 (gimple_cdt_location): Likewise.
538 (gimple_cdt_location_ptr): Likewise.
539 (gimple_cdt_set_location): Likewise.
540 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
541 * tree-cfg.c (remove_useless_stmts_1): Do not handle
542 GIMPLE_CHANGE_DYNAMIC_TYPE.
543 (verify_types_in_gimple_stmt): Likewise.
544 * tree-inline.c (estimate_num_insns): Likewise.
545 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
546 (copy_decl_to_var): Likewise.
547 (copy_result_decl_to_var): Likewise.
548 * tree-pretty-print.c (dump_generic_node): Do not handle
549 CHANGE_DYNAMIC_TYPE_EXPR.
550 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
551 * tree-ssa-operands.c (get_expr_operands): Likewise.
552 * tree-ssa-structalias.c (struct variable_info): Remove
553 no_tbaa_pruning member.
554 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
555 (unify_nodes): Do not copy it.
556 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
557 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
558 (set_uids_in_ptset): Do not check it.
559 (find_what_var_points_to): Likewise.
560 (compute_tbaa_pruning): Remove.
561 (compute_points_to_sets): Do not call it.
562 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
563 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
564 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
565 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
566 (DECL_NO_TBAA_P): Likewise.
567 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
568 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
569 (expand_omp_atomic_pipeline): Do not set it.
570 * print-tree.c (print_node): Do not dump it.
571 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
572 redundant check.
573
574 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
575
576 PR target/39856
577 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
578 for clobber.
579
580 2009-05-22 Mark Mitchell <mark@codesourcery.com>
581
582 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
583 non-external.
584
585 2009-05-22 Ben Elliston <bje@au.ibm.com>
586
587 * Makefile.in (bversion.h, s-bversion): New targets.
588 (TOPLEV_H): Add bversion.h.
589 * toplev.h: Include "bversion.h".
590 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
591 the __format__ attribute only if compiling with the same version
592 of GCC as the sources (the "build version").
593
594 2009-05-22 Ben Elliston <bje@au.ibm.com>
595
596 * c-format.c (handle_format_attribute): Fix comment typo.
597
598 2009-05-21 Steve Ellcey <sje@cup.hp.com>
599
600 PR target/37846
601 * config/ia64/ia64.opt (mfused-madd): New.
602 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
603 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
604 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
605 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
606 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
607 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
608 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
609 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
610 instruction if !TARGET_FUSED_MADD.
611 (fpma, fpms): Remove colon from name.
612
613 2009-05-22 Richard Guenther <rguenther@suse.de>
614
615 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
616 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
617 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
618 TARGET_MEM_REF.
619 (create_expression_by_pieces): Only convert if necessary.
620 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
621 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
622
623 2009-05-21 Adam Nemet <anemet@caviumnetworks.com>
624
625 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
626 regular pattern from a template and rename it ...
627 (*extzv_truncsi_exts): ... to this.
628
629 2009-05-21 Richard Guenther <rguenther@suse.de>
630
631 * cgraph.h (struct cgraph_node): Remove inline_decl member.
632 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
633 (cgraph_default_inline_p): Likewise.
634 (cgraph_decide_inlining_incrementally): Likewise.
635
636 2009-05-21 H.J. Lu <hongjiu.lu@intel.com>
637 Uros Bizjak <ubizjak@gmail.com>
638
639 * config/i386/cpuid.h (bit_MOVBE): New.
640
641 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
642
643 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
644 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
645 (ix86_handle_option): Handle OPT_mmovbe.
646 (ix86_target_string): Add -mmovbe.
647 (pta_flags): Add PTA_MOVBE.
648 (processor_alias_table): Add PTA_MOVBE to "atom".
649 (override_options): Handle PTA_MOVBE.
650
651 * config/i386/i386.h (TARGET_MOVBE): New.
652
653 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
654 (*bswapsi_movbe): New.
655 (*bswapdi_movbe): Likewise.
656 (bswapdi2): Renamed to ...
657 (*bswapdi_1): This.
658 (bswapdi2): New expander.
659
660 * config/i386/i386.opt (mmovbe): New.
661
662 * doc/invoke.texi: Document -mmovbe.
663
664 2009-05-21 Taras Glek <tglek@mozilla.com>
665
666 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
667 * gcc-plugin.h (plugin_init): Updated signature.
668 * gcc-plugin.h (plugin_name_args): Moved to this header.
669 * doc/plugins.texi (plugin_init): Updated documention to reflect
670 API change.
671 * doc/plugins.texi (plugin_name_args): Added to documention.
672
673 2009-05-21 Mark Mitchell <mark@codesourcery.com>
674
675 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
676 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
677
678 2009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
679
680 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
681 JUMP_TABLE_DATA_P predicates where applicable.
682 * config/i386/predicates.md: Ditto.
683 * config/i386/sse.md: Ditto.
684
685 2009-05-21 Jakub Jelinek <jakub@redhat.com>
686
687 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
688 operand2 -128 override length_immediate attribute to 1.
689 * config/i386/predicates.md (constm128_operand): New predicate.
690
691 * config/i386/i386.c (memory_address_length): Handle %r12
692 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
693 also check REGNO.
694 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
695 mode look through optional ZERO_EXTEND and SUBREG.
696 * config/i386/i386.md (R12_REG): New define_constant.
697 (prefix_data16): For sse unit set also for MODE_TI insns.
698 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
699 insns set if operand 1 is ext_QIreg_operand.
700 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
701 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
702 immediate.
703 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
704 mode from MODE_DI to MODE_SI.
705 (movdi_1_rex64): Override modrm and length_immediate attributes
706 only for movabs (TYPE_IMOV, alternative 2).
707 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
708 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
709 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
710 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
711 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
712 prefix_rex attribute if DImode.
713 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
714 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
715 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
716 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
717 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
718 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
719 Likewise. For TYPE_IMOV clear length_immediate attribute.
720 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
721 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
722 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
723 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
724 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
725 or one operand TYPE_ISHIFT.
726 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
727 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
728 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
729 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
730 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
731 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
732 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
733 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
734 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
735 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
736 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
737 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
738 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
739 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
740 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
741 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
742 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
743 set mode attribute, don't override length attribute.
744 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
745 to 1.
746 (return_internal_long): Set length attribute to 2 instead of 1.
747 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
748 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
749 prefix_rex attribute.
750 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
751 New predicates.
752 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
753
754 2009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
755
756 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
757
758 2009-05-20 Ian Lance Taylor <iant@google.com>
759
760 * tree.c (build_tree_list_vec_stat): New function.
761 (ctor_to_vec): New function.
762 (build_nt_call_vec): New function.
763 (build_call_array): Change args to be a const pointer.
764 (build_call_vec): New function.
765 * tree.h (build_nt_call_vec): Declare.
766 (build_tree_list_vec_stat): Declare.
767 (build_tree_list_vec): Define.
768 (build_call_array): Update declaration.
769 (build_call_vec): Declare.
770 (ctor_to_vec): Declare.
771 * c-common.c (tree_vector_cache): New static variable.
772 (make_tree_vector): New function.
773 (release_tree_vector): New function.
774 (make_tree_vector_single): New function.
775 (make_tree_vector_copy): New function.
776 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
777 (make_tree_vector_single, make_tree_vector_copy): Declare.
778 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
779 (c_parser_expr_list): Don't manage cache here, instead call
780 make_tree_vector.
781 (c_parser_release_expr_list): Remove static function.
782 (c_parser_vec_to_tree_list): Remove static function.
783 (c_parser_attributes): Call build_tree_list_vec instead of
784 c_parser_vec_to_tree_list. Call release_tree_vector instead of
785 c_parser_release_expr_list.
786 (c_parser_postfix_expression_after_primary): Likewise.
787 (c_parser_objc_keywordexpr): Likewise.
788
789 2009-05-20 Sandra Loosemore <sandra@codesourcery.com>
790
791 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
792 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
793 TARGET_CONVERT_TO_TYPE.
794 * hooks.c (hook_tree_const_tree_null): Define.
795 * hooks.h (hook_tree_const_tree_null): Declare.
796 * target.h (struct gcc_target): Add invalid_parameter_type,
797 invalid_return_type, promoted_type, and convert_to_type fields.
798 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
799 (TARGET_INVALID_RETURN_TYPE): Define.
800 (TARGET_PROMOTED_TYPE): Define.
801 (TARGET_CONVERT_TO_TYPE): Define.
802 (TARGET_INITIALIZER): Update for new fields.
803 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
804 (grokparms): Check targetm.invalid_parameter_type.
805 * c-typeck.c (default_conversion): Check targetm.promoted_type.
806 * c-convert.c (convert): Check targetm.convert_to_type.
807
808 2009-05-20 Adam Nemet <anemet@caviumnetworks.com>
809
810 * config/mips/mips.md (*extenddi_truncate<mode>,
811 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
812 defintions.
813 (*extendhi_truncateqi): New define_insn_and_sptit.
814
815 2009-05-20 Jakub Jelinek <jakub@redhat.com>
816
817 PR middle-end/40204
818 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
819 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
820
821 2009-05-20 Eric Botcazou <ebotcazou@adacore.com>
822
823 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
824 the operand of VIEW_CONVERT_EXPR.
825
826 2009-05-20 H.J. Lu <hongjiu.lu@intel.com>
827
828 * config/i386/driver-i386.c (host_detect_local_cpu): Check
829 extended family and model for Intel processors. Support Intel
830 Atom.
831
832 2009-05-20 Olivier Hainque <hainque@adacore.com>
833
834 * gstab.h (stab_code_type): Define, to be used instead of the
835 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
836 notice.
837 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
838 occurrences by stab_code_type.
839 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
840
841 2009-05-20 Martin Jambor <mjambor@suse.cz>
842
843 * tree-flow.h (insert_edge_copies_seq): Undeclare.
844 (sra_insert_before): Likewise.
845 (sra_insert_after): Likewise.
846 (sra_init_cache): Likewise.
847 (sra_type_can_be_decomposed_p): Likewise.
848 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
849 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
850 (sra_insert_before): Likewise.
851 (sra_insert_after): Likewise.
852 (sra_init_cache): Likewise.
853 (insert_edge_copies_seq): Made static and moved upwards.
854
855 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
856 case.
857
858 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
859
860 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
861 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
862 simple copies.
863
864 2009-05-20 Richard Guenther <rguenther@suse.de>
865
866 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
867 with mismatched comparison modes.
868
869 2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
870
871 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
872 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
873 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
874 with shifts for Thumb2.
875 (orsi_notsi): New for orn.
876 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
877 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
878 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
879 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
880 Don't invert remainder for IOR.
881
882 2009-05-19 Zdenek Dvorak <ook@ucw.cz>
883
884 PR tree-optimization/40087
885 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
886 number_of_iterations_ne): Rename never_infinite argument.
887 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
888 number_of_iterations_le): Handle pointer-type ivs when
889 exit_must_be_taken is false.
890 (number_of_iterations_cond): Do not always assume that
891 exit_must_be_taken if the control variable is a pointer.
892
893 2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
894
895 * c-typeck.c (build_binary_op): Allow % on integal vectors.
896 * doc/extend.texi (Vector Extension): Document that % is allowed too.
897
898 2009-05-19 H.J. Lu <hongjiu.lu@intel.com>
899
900 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
901 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
902
903 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
904
905 PR c/40172
906 * c.opt (Wlogical-op): Disabled by default.
907 * c-opt (c_common_post_options): Do not enable Wlogical-op with
908 Wextra.
909 * doc/invoke.texi (Wlogical-op): Likewise.
910
911 2009-05-19 Eric Botcazou <ebotcazou@adacore.com>
912
913 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
914 into CASE_CONVERT.
915 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
916 Propagate the type of the first operand.
917 <ASSERT_EXPR>: Simplify.
918 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
919 Rewrite using the RHS code as discriminant.
920 <NOP_EXPR>: Turn into CASE_CONVERT.
921 <PLUS_EXPR>: Propagate the type of the first operand.
922
923 2009-05-19 Steve Ellcey <sje@cup.hp.com>
924
925 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
926 (ia64_dconst_0_375): New.
927 * config/ia64/ia64.c (ia64_override_options): Remove
928 -minline-sqrt-min-latency warning.
929 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
930 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
931 * config/ia64/ia64.md (*sqrt_approx): Remove.
932 (sqrtsf2): Remove #if 0.
933 (sqrtsf2_internal_thr): Rewrite and move to div.md.
934 (sqrtdf): Remove assert.
935 (sqrtdf2_internal_thr): Rewrite and move to div.md.
936 (sqrtxf2): Remove #if 0.
937 (sqrtxf2_internal_thr): Rewrite and move to div.md.
938 * div.md (sqrt_approx_rf): New.
939 (sqrtsf2_internal_thr): New implementation.
940 (sqrtsf2_internal_lat): New.
941 (sqrtdf2_internal_thr: New implementation.
942 (sqrtxf2_internal): New implementation.
943
944 2009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
945 Hans-Peter Nilsson <hp@axis.com>
946
947 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
948 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
949 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
950 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
951 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
952 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
953 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
954 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
955 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
956 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
957 * c-common.c: ...from here.
958
959 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
960
961 * c-common.c (warn_logical_operator): Remove unnecessary
962 conditionals.
963
964 2009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
965
966 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
967
968 2009-05-19 Ben Elliston <bje@au.ibm.com>
969
970 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
971 assignments with memcpy calls.
972 (add_fdes): Likewise.
973 (binary_search_unencoded_fdes): Likewise.
974 (linear_search_fdes): Eliminate type puns.
975
976 2009-05-19 Richard Guenther <rguenther@suse.de>
977
978 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
979 not falsely claim to have propagated into all uses.
980
981 2009-05-19 Ben Elliston <bje@au.ibm.com>
982
983 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
984 version to v3.0.
985
986 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
987
988 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
989 * config/sh/sh.c (sh_legitimate_address_p): Make static.
990 (TARGET_LEGITIMATE_ADDRESS_P): New.
991 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
992 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
993
994 2009-05-18 Dodji Seketeli <dodji@redhat.com>
995
996 PR debug/40109
997 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
998 child of the containing namespace's DIE.
999
1000 2009-05-18 Adam Nemet <anemet@caviumnetworks.com>
1001
1002 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
1003 *zero_extendhi_truncqi): Move after the zero_extend patterns.
1004 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
1005 extend patterns.
1006
1007 2009-05-18 H.J. Lu <hongjiu.lu@intel.com>
1008
1009 PR target/39942
1010 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
1011 gen_align with gen_pad.
1012 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
1013 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
1014
1015 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
1016 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
1017
1018 * config/i386/i386.md (align): Renamed to ...
1019 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
1020 ASM_OUTPUT_MAX_SKIP_PAD.
1021
1022 2009-05-18 Andreas Schwab <schwab@linux-m68k.org>
1023
1024 * config.gcc: Fix variable syntax.
1025
1026 PR target/39531
1027 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
1028 before calling exact_log2.
1029 (output_iorsi3): Likewise.
1030 (output_xorsi3): Likewise.
1031
1032 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1033
1034 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
1035 for the none zero constant operand except for EQ and NE
1036 comprisons even when the first operand is R0.
1037
1038 2009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
1039
1040 * config/s390/2064.md: Remove trailing whitespaces.
1041 * config/s390/2084.md: Likewise.
1042 * config/s390/constraints.md: Likewise.
1043 * config/s390/fixdfdi.h: Likewise.
1044 * config/s390/libgcc-glibc.ver: Likewise.
1045 * config/s390/s390-modes.def: Likewise.
1046 * config/s390/s390-protos.h: Likewise.
1047 * config/s390/s390.c: Likewise.
1048 * config/s390/s390.h: Likewise.
1049 * config/s390/s390.md: Likewise.
1050 * config/s390/tpf-unwind.h: Likewise.
1051
1052 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1053
1054 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
1055
1056 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1057
1058 M68K TLS support.
1059 * configure.ac (m68k-*-*): Check if binutils support TLS.
1060 * configure: Regenerate.
1061 * config/m68k/predicates.md (symbolic_operand): Extend comment.
1062 * config/m68k/constraints.md (Cu): New constraint.
1063 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
1064 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
1065 (movsi): Handle TLS symbols.
1066 (addsi3_5200): Handle XTLS symbols, indent.
1067 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
1068 (m68k_tls_reference_p): Declare.
1069 (m68k_legitimize_address): Declare.
1070 (m68k_unwrap_symbol): Declare.
1071 * config/m68k/m68k.opt (mxtls): New option.
1072 * config/m68k/m68k.c (ggc.h): Include.
1073 (m68k_output_dwarf_dtprel): Implement hook.
1074 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
1075 (m68k_expand_prologue): Load GOT pointer when function needs it.
1076 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
1077 (m68k_legitimate_constant_address_p): Same.
1078 (m68k_decompose_address): Handle TLS references.
1079 (m68k_get_gp): New static function.
1080 (enum m68k_reloc): New contants.
1081 (TLS_RELOC_P): New macro.
1082 (m68k_wrap_symbol): New static function.
1083 (m68k_unwrap_symbol): New function.
1084 (m68k_final_prescan_insn_1): New static function.
1085 (m68k_final_prescan_insn): New function.
1086 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
1087 functions.
1088 (legitimize_pic_address): Handle TLS references..
1089 (m68k_tls_get_addr, m68k_get_tls_get_addr)
1090 (m68k_libcall_value_in_a0_p)
1091 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
1092 (m68k_call_m68k_read_tp): Helper variables and functions for ...
1093 (m68k_legitimize_tls_address): Handle TLS references.
1094 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
1095 New functions.
1096 (m68k_legitimize_address): Handle TLS symbols.
1097 (m68k_get_reloc_decoration): New static function.
1098 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
1099 UNSPEC_RELOC32.
1100 (m68k_output_dwarf_dtprel): Implement hook.
1101 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
1102 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
1103 m68k_call_* routines.
1104 (sched_attr_op_type): Handle TLS symbols.
1105 (gt-m68k.h): Include.
1106 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
1107 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
1108
1109 2009-05-18 Martin Jambor <mjambor@suse.cz>
1110
1111 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
1112 (visit_store_addr_for_mod_analysis): New function.
1113 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
1114 (determine_cst_member_ptr): Use gimple_assign_single_p.
1115 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
1116 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
1117 operands. Don't check number of operands of a NOP_EXPR.
1118
1119 2009-05-18 Eric Fisher <joefoxreal@gmail.com>
1120
1121 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
1122
1123 2009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
1124
1125 PR c/40172
1126 * c-common.c (warn_logical_operator): Don't warn if one of
1127 expression isn't always true or false.
1128
1129 2009-05-17 Kai Tietz <kai.tietz@onevision.com>
1130
1131 * config/i386/biarch32.h: New file.
1132 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
1133
1134 2009-05-17 Adam Nemet <anemet@caviumnetworks.com>
1135
1136 * config/mips/mips.md (*zero_extend<mode>_trunchi,
1137 *zero_extend<mode>_truncqi): Merge these into ...
1138 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
1139 Name the pattern following this as *zero_extendhi_truncqi.
1140
1141 2009-05-16 Brad Lucier <lucier@math.purdue.edu>
1142
1143 PR middle-end/39301
1144 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
1145 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
1146 (output_info): Make field HOST_WIDEST_INT.
1147 (print_statistics): Use HOST_WIDEST_INT_PRINT.
1148 (dump_bitmat_statistics): Same.
1149
1150 2009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
1151
1152 * config.gcc (use_gcc_stdint): Set to wrap.
1153 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1154 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1155 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1156 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1157 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1158 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1159 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1160 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1161
1162 2009-05-16 Joseph Myers <joseph@codesourcery.com>
1163
1164 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
1165 tune_64.
1166 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
1167 Move definitions earlier.
1168 (OPT_ARCH64, OPT_ARCH32): Define.
1169 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
1170 and tune_64.
1171
1172 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
1173
1174 PR target/40153
1175 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
1176 implies.
1177
1178 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
1179
1180 * arm.md (movdi2): Copy non-reg values to DImode registers.
1181
1182 2009-05-16 Jakub Jelinek <jakub@redhat.com>
1183
1184 PR target/39942
1185 * final.c (label_to_max_skip): New function.
1186 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
1187 CODE_LABEL_NUMBER <= max_labelno.
1188 * output.h (label_to_max_skip): New prototype.
1189 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
1190 (ix86_avoid_jump_mispredicts): ... this. Don't define if
1191 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
1192 Handle CODE_LABELs with >= 16 byte alignment or with
1193 max_skip == (1 << align) - 1.
1194 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
1195 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
1196
1197 PR target/39942
1198 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
1199 .p2align 3 if MAX_SKIP is smaller than 7.
1200 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1201
1202 2009-05-15 Ian Lance Taylor <iant@google.com>
1203
1204 * alias.c (struct alias_set_entry_d): Rename from struct
1205 alias_set_entry. Change all uses.
1206 * except.c (struct call_site_record_d): Rename from struct
1207 call_site_record. Change all uses.
1208 * except.h (struct eh_region_d): Rename from struct eh_region.
1209 Change all uses.
1210 * gcse.c (struct hash_table_d): Rename from struct hash_table.
1211 Change all uses.
1212 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
1213 ivtype_map_elt. Change all uses.
1214 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
1215 Change all uses.
1216 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
1217 * graphite.h (struct name_tree_d): Rename from struct name_tree.
1218 Change all uses.
1219 (struct sese_d): Rename from struct sese. Change all uses.
1220 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
1221 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
1222 * optabs.h (struct optab_d): Rename from struct optab. Change all
1223 uses.
1224 (struct convert_optab_d): Rename from struct convert_optab.
1225 Change all uses.
1226 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
1227 ipa_opt_pass. Change all uses.
1228 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
1229 all uses.
1230
1231 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
1232 defined as a typedef.
1233 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
1234 defined as a tag.
1235
1236 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
1237
1238 PR 16302
1239 * fold-const.c (make_range,build_range_check,merge_ranges): Move
1240 declaration to...
1241 (merge_ranges): Returns bool.
1242 * tree.h (make_range): .. to here.
1243 (build_range_check): Likewise.
1244 (merge_ranges): Likewise. Renamed from merge_ranges.
1245 * c-typeck.c (parser_build_binary_op): Update calls to
1246 warn_logical_operator.
1247 * c-common.c (warn_logical_operator): Add new warning.
1248 * c-common.h (warn_logical_operator): Update declaration.
1249
1250 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
1251
1252 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1253
1254 2009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1255
1256 * doc/install.texi: Document MPC requirements, flags etc.
1257
1258 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
1259 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
1260 Evaluate constant arguments.
1261 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
1262 (fold_builtin_1): Likewise, also evaluate constant arguments.
1263 Remove superfluous break.
1264 (do_mpc_ckconv): New.
1265 * real.h: Include mpc.h.
1266 * toplev.c (print_version): Output MPC version info if available.
1267
1268 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1269
1270 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
1271
1272 2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
1273
1274 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
1275 only once.
1276
1277 2009-05-15 Jan Hubicka <jh@suse.cz>
1278
1279 * doc/invoke.texi (max-early-inliner-iterations): New flag.
1280 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
1281 (try_inline): Fix return value.
1282 (cgraph_decide_inlining_incrementally): Honor new value.
1283 (cgraph_early_inlining): Handle indirect inlining.
1284 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
1285
1286 2009-05-15 Jan Hubicka <jh@suse.cz>
1287
1288 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
1289 * cgraphunit.c (cgraph_finalize_function): Set it.
1290 (cgraph_expand_function): Use it.
1291
1292 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1293
1294 * real.c (encode_ieee_half): Define.
1295 (decode_ieee_half): Define.
1296 (ieee_half_format): Define.
1297 (arm_half_format): Define.
1298 * real.h (ieee_half_format): Declare.
1299 (arm_half_format): Declare.
1300
1301 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1302
1303 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
1304 swapped, and reversed optabs exist before trying to use them.
1305
1306 2009-05-15 Paul Brook <paul@codesourcery.com>
1307 Sandra Loosemore <sandra@codesourcery.com>
1308
1309 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
1310 loads. Allow PRE_DEC.
1311 (output_move_neon): Handle PRE_DEC.
1312 (arm_print_operand): Add 'A' for neon structure loads.
1313 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
1314 * config/arm/neon.md (neon_mov): Update comment.
1315 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
1316 calls.
1317 (Um): New constraint.
1318
1319 2009-05-15 Jan Hubicka <jh@suse.cz>
1320
1321 Revert the following patch until testsuite fallout is fixed:
1322 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1323 * cgraph.h (struct inline_summary): New filed self_wize,
1324 size_inlining_benefit, self_time and time_inlining_benefit.
1325 (struct cgraph_global_info): Replace insns by time ans size fields.
1326 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1327 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1328 (ipcp_update_callgraph): Do not touch function bodies.
1329 * ipa-inline.c: Include except.h
1330 (MAX_TIME): New constant.
1331 (overall_insns): Remove
1332 (overall_size, max_benefit): New static variables.
1333 (cgraph_estimate_time_after_inlining): New function.
1334 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1335 (cgraph_clone_inlined_nodes): Update size.
1336 (cgraph_mark_inline_edge): Update size.
1337 (cgraph_estimate_growth): Use size info.
1338 (cgraph_check_inline_limits): Check size.
1339 (cgraph_default_inline_p): Likewise.
1340 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1341 (cgraph_decide_recursive_inlining): Check size.
1342 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
1343 times.
1344 (cgraph_decide_inlining): Likewise.
1345 (cgraph_decide_inlining_incrementally): Likewise; honor
1346 PARAM_EARLY_INLINING_INSNS.
1347 (likely_eliminated_by_inlining_p): New predicate.
1348 (estimate_function_body_sizes): New function.
1349 (compute_inline_parameters): Use it.
1350 * except.c (must_not_throw_labels): New function.
1351 * except.h (must_not_throw_labels): Declare.
1352 * tree-inline.c (init_inline_once): Kill inlining_weigths
1353 * tree-ssa-structalias.c: Avoid uninitialized warning.
1354 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1355 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1356 (PARAM_INLINE_CALL_COST): Remove.
1357 (PARAM_EARLY_INLINING_INSNS): New.
1358
1359 2009-05-15 Richard Guenther <rguenther@suse.de>
1360
1361 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
1362 not TODO_update_ssa.
1363
1364 2009-05-15 Richard Guenther <rguenther@suse.de>
1365
1366 PR tree-optimization/39999
1367 * gimple.h (gimple_expr_type): Use the expression type looking
1368 through useless conversions.
1369 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
1370 (vn_nary_op_insert_stmt): Likewise.
1371 (simplify_binary_expression): Likewise.
1372
1373 2009-05-15 Richard Guenther <rguenther@suse.de>
1374
1375 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
1376 New options, enabled by default.
1377 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
1378 Document.
1379 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
1380 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
1381 * tree-ssa-structalias.c (gate_tree_pta): New function.
1382 (pass_build_alias): Use it.
1383
1384 2009-05-15 Joseph Myers <joseph@codesourcery.com>
1385
1386 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
1387 recurse on an invariant address if a conversion from a pointer
1388 type to a wider integer type is involved.
1389
1390 2009-05-15 Jan Hubicka <jh@suse.cz>
1391
1392 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1393 * cgraph.h (struct inline_summary): New filed self_wize,
1394 size_inlining_benefit, self_time and time_inlining_benefit.
1395 (struct cgraph_global_info): Replace insns by time ans size fields.
1396 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1397 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1398 (ipcp_update_callgraph): Do not touch function bodies.
1399 * ipa-inline.c: Include except.h
1400 (MAX_TIME): New constant.
1401 (overall_insns): Remove
1402 (overall_size, max_benefit): New static variables.
1403 (cgraph_estimate_time_after_inlining): New function.
1404 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1405 (cgraph_clone_inlined_nodes): Update size.
1406 (cgraph_mark_inline_edge): Update size.
1407 (cgraph_estimate_growth): Use size info.
1408 (cgraph_check_inline_limits): Check size.
1409 (cgraph_default_inline_p): Likewise.
1410 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1411 (cgraph_decide_recursive_inlining): Check size.
1412 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
1413 times.
1414 (cgraph_decide_inlining): Likewise.
1415 (cgraph_decide_inlining_incrementally): Likewise; honor
1416 PARAM_EARLY_INLINING_INSNS.
1417 (likely_eliminated_by_inlining_p): New predicate.
1418 (estimate_function_body_sizes): New function.
1419 (compute_inline_parameters): Use it.
1420 * except.c (must_not_throw_labels): New function.
1421 * except.h (must_not_throw_labels): Declare.
1422 * tree-inline.c (init_inline_once): Kill inlining_weigths
1423 * tree-ssa-structalias.c: Avoid uninitialized warning.
1424 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1425 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1426 (PARAM_INLINE_CALL_COST): Remove.
1427 (PARAM_EARLY_INLINING_INSNS): New.
1428 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
1429 (inline-call-cost): Remove.
1430 (early-inlining-insns): New.
1431
1432 2009-05-15 Eric Botcazou <ebotcazou@adacore.com>
1433
1434 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
1435 for bounds.
1436 (print_int_cst_bounds_in_octal_p): Likewise.
1437 (dbxout_type): Adjust calls to above functions. Be prepared to deal
1438 with subtypes.
1439 * dwarf2out.c (base_type_die): Likewise.
1440 (is_subrange_type): Delete.
1441 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
1442 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
1443 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
1444 the destination type is boolean.
1445 (build_range_check): Do not special-case subtypes.
1446 (fold_sign_changed_comparison): Likewise.
1447 (fold_unary): Likewise.
1448 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
1449 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
1450 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
1451 * tree.c (subrange_type_for_debug_p): New predicate based on the former
1452 is_subrange_type.
1453 * tree.h (subrange_type_for_debug_p): Declare.
1454 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
1455 (convert_affine_scev): Remove call to above function.
1456 (chrec_convert_aggressive): Likewise.
1457 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
1458 false for conversions involving subtypes.
1459 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
1460 (vrp_val_min): Likewise.
1461 (needs_overflow_infinity): Likewise.
1462 (extract_range_from_unary_expr): Likewise.
1463
1464 2009-05-15 Paolo Bonzini <bonzini@gnu.org>
1465
1466 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1467 * config/frv/frv.c: Likewise.
1468 * config/s390/s390.c: Likewise.
1469 * config/sparc/sparc.h: Likewise.
1470 * config/i386/i386.h: Likewise.
1471 * config/i386/i386.c: Likewise.
1472 * config/crx/crx.c: Likewise.
1473 * config/m68hc11/m68hc11.h: Likewise.
1474 * config/iq2000/iq2000.c: Likewise.
1475 * config/mn10300/mn10300.h: Likewise.
1476 * config/mn10300/mn10300.c: Likewise.
1477 * config/m68k/m68k.c: Likewise.
1478 * config/rs6000/rs6000.c: Likewise.
1479 * config/rs6000/xcoff.h: Likewise.
1480 * config/rs6000/linux64.h: Likewise.
1481 * config/rs6000/sysv4.h: Likewise.
1482 * config/score/score3.c: Likewise.
1483 * config/score/score7.c: Likewise.
1484 * config/score/score.c: Likewise.
1485 * config/arm/arm.md: Likewise.
1486 * config/mips/mips.c: Likewise.
1487 * config/mips/mips.md: Likewise.
1488 * config/bfin/bfin.h: Likewise.
1489 * config/pa/pa.c: Likewise.
1490 * config/pa/constraints.md: Likewise.
1491
1492 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
1493 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
1494 * config/pdp11/pdp11.h: Use memory_address_p instead.
1495
1496 2009-05-14 Ian Lance Taylor <iant@google.com>
1497
1498 * passes.c (finish_optimization_passes): Change i to int.
1499 * plugin.c (plugins_active_p): Change event to int.
1500 (dump_active_plugins): Likewise.
1501 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
1502 Add cast.
1503 * tree.c (tree_range_check_failed): Change c to unsigned int.
1504 (omp_clause_range_check_failed): Likewise.
1505 (build_common_builtin_nodes): Change mode to int. Add cast.
1506 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
1507 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
1508
1509 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
1510 ++ or -- with a variable of enum type.
1511
1512 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1513
1514 PR driver/40144
1515 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
1516
1517 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1518
1519 * store-motion.c: Do not include params.h
1520 * Makefile.in: Fix dependencies for various files.
1521
1522 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1523
1524 * auto-inc-dec.c: Fix pass description, remove apparent
1525 accidental duplication.
1526
1527 2009-05-14 H.J. Lu <hongjiu.lu@intel.com>
1528
1529 PR middle-end/40147
1530 * ipa-utils.h (memory_identifier_string): Moved to ...
1531 * tree.h (memory_identifier_string): Here. Add GTY(()).
1532
1533 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
1534
1535 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
1536 in the former documentation of...
1537 (GO_IF_LEGITIMATE_ADDRESS): ... this.
1538 * ira-conflicts.c (get_dup_num): Use address_operand.
1539 * targhooks.c (default_legitimate_address_p): New.
1540 * targhooks.h (default_legitimate_address_p): New.
1541 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
1542 Call hook.
1543 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
1544 * target.h (struct target): Add legitimate_address_p.
1545 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
1546 (TARGET_INITIALIZER): Include it.
1547
1548 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1549 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
1550 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
1551 (TARGET_LEGITIMATE_ADDRESS_P): New.
1552
1553 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1554 (REG_OK_STRICT_P): Delete.
1555 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
1556 (frv_legitimate_address_p_1): ... this.
1557 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
1558 (frv_legitimate_address_p_1): ... the renamed old
1559 frv_legitimate_address_p.
1560 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
1561 (TARGET_LEGITIMATE_ADDRESS_P): New.
1562
1563 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1564 * config/s390/s390-protos.h (legitimate_address_p): Remove.
1565 * config/s390/s390.c (legitimate_address_p): Rename to...
1566 (s390_legitimate_address_p): ... this, make static.
1567 (legitimize_address): Adjust call.
1568 (TARGET_LEGITIMATE_ADDRESS_P): New.
1569 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
1570
1571 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1572 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
1573 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
1574 (TARGET_LEGITIMATE_ADDRESS_P): New.
1575
1576 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1577 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
1578 * config/spu/spu.c (spu_legitimate_address): Rename to...
1579 (spu_legitimate_address_p): ... this, make static.
1580 (TARGET_LEGITIMATE_ADDRESS_P): New.
1581
1582 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1583 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
1584 * config/sparc/sparc.c (legitimate_address_p): Rename to...
1585 (sparc_legitimate_address_p): ... this, make static and return bool.
1586 (legitimize_address): Adjust call.
1587 (TARGET_LEGITIMATE_ADDRESS_P): New.
1588
1589 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1590 * config/i386/i386-protos.h (legitimate_address_p): Remove.
1591 * config/i386/i386.c (legitimate_address_p): Rename to...
1592 (ix86_legitimate_address_p): ... this, make static.
1593 (constant_address_p): Move after it, adjust call.
1594 (TARGET_LEGITIMATE_ADDRESS_P): New.
1595
1596 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1597 * config/avr/avr-protos.h (legitimate_address_p): Remove.
1598 * config/avr/avr.c (legitimate_address_p): Rename to...
1599 (avr_legitimate_address_p): ... this, make static.
1600 (legitimize_address): Adjust call.
1601 (TARGET_LEGITIMATE_ADDRESS_P): New.
1602
1603 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1604 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
1605 * config/crx/crx.c (crx_legitimate_address_p): Make static.
1606 (TARGET_LEGITIMATE_ADDRESS_P): New.
1607
1608 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1609 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
1610 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
1611 (TARGET_LEGITIMATE_ADDRESS_P): New.
1612
1613 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1614 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
1615 Remove.
1616 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
1617 Make static.
1618 (TARGET_LEGITIMATE_ADDRESS_P): New.
1619
1620 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1621 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
1622 Remove.
1623 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
1624 Rename to...
1625 (m68hc11_legitimate_address_p): ... this, make static.
1626 (go_if_legitimate_address_internal): Rename to...
1627 (m68hc11_legitimate_address_p_1): ... this.
1628 (legitimize_address): Adjust call.
1629 (TARGET_LEGITIMATE_ADDRESS_P): New.
1630
1631 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1632 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
1633 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
1634 (TARGET_LEGITIMATE_ADDRESS_P): New.
1635
1636 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1637 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
1638 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
1639 (mn10300_legitimate_address_p): ... this, make static.
1640 (TARGET_LEGITIMATE_ADDRESS_P): New.
1641
1642 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1643 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
1644 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
1645 (TARGET_LEGITIMATE_ADDRESS_P): New.
1646
1647 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1648 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
1649 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
1650 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1651 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
1652 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
1653 (rs6000_legitimate_address_p): ... this, make static.
1654 (TARGET_LEGITIMATE_ADDRESS_P): New.
1655 (REG_MODE_OK_FOR_BASE_P): Delete.
1656 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
1657
1658 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1659 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
1660 Delete.
1661 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
1662 static, adjust types.
1663 (TARGET_LEGITIMATE_ADDRESS_P): New.
1664
1665 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1666 * config/score/score.c (score_address_p): Rename to...
1667 (score_legitimate_address_p): ... this.
1668 (TARGET_LEGITIMATE_ADDRESS_P): New.
1669 * config/score/score3.c (score3_address_p): Rename to...
1670 (score3_legitimate_address_p): ... this.
1671 * config/score/score7.c (score7_address_p): Rename to...
1672 (score7_legitimate_address_p): ... this.
1673
1674 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
1675 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
1676 GO_IF_LEGITIMATE_ADDRESS): Delete.
1677 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
1678 thumb2_legitimate_address_p): Delete.
1679 (arm_legitimate_address_p): Rename to...
1680 (arm_legitimate_address_outer_p): ... this.
1681 * config/arm/constraints.md ("Uq"): Adjust call.
1682 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
1683 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
1684 (arm_legitimate_address_outer_p): ... this.
1685 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
1686 (TARGET_LEGITIMATE_ADDRESS_P): New.
1687
1688 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1689 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
1690 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
1691 (TARGET_LEGITIMATE_ADDRESS_P): New.
1692
1693 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1694 * config/vax/vax-protos.h (legitimate_address_p): Remove.
1695 * config/vax/vax.c (legitimate_address_p): Rename to...
1696 (vax_legitimate_address_p): ... this, make static.
1697 (TARGET_LEGITIMATE_ADDRESS_P): New.
1698
1699 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1700 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
1701 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
1702 (TARGET_LEGITIMATE_ADDRESS_P): New.
1703
1704 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1705 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
1706 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
1707 (mmix_legitimate_address_p): ... this, make static.
1708 (TARGET_LEGITIMATE_ADDRESS_P): New.
1709
1710 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1711 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
1712 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
1713 (TARGET_LEGITIMATE_ADDRESS_P): New.
1714
1715 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
1716
1717 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
1718 of MODE_COMPLEX_INT.
1719
1720 2009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1721
1722 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
1723 LCT_NORMAL in function call.
1724 * mips-tdump.c (print_file_desc): Add cast to enum type.
1725 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
1726 (mark_stabs): Add casts to enum types.
1727 (parse_stabs_common): Add casts to enum types.
1728
1729 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
1730
1731 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
1732 Check for invalid values of LETTER.
1733
1734 2009-05-13 Taras Glek <tglek@mozilla.com>
1735
1736 * attribs.c (register_attribute): moved out attribute registration into
1737 register_attribute.
1738 * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
1739 * gcc-plugin.h: Added forward decl for register_attribute.
1740 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
1741 * plugin.c (register_callback, invoke_plugin_callbacks): Added
1742 PLUGIN_ATTRIBUTES boilerplate.
1743
1744 2009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
1745
1746 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
1747 values even in sentinel and empty entries.
1748 (ms_printf_flag_specs): Likewise.
1749 (ms_scanf_flag_specs): Likewise.
1750 (ms_strftime_flag_specs): Likewise.
1751 (ms_print_char_table): Likewise.
1752 (ms_scan_char_table): Likewise.
1753 (ms_time_char_table): Likewise.
1754
1755 2009-05-13 Doug Kwan <dougkwan@google.com>
1756
1757 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
1758
1759 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
1760
1761 * config/mips/mips.md (store): Add attributes for QI and HI.
1762 Update comment.
1763 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
1764 (truncdi<mode>2): ... this new pattern.
1765
1766 2009-05-13 Brad Hards <bradh@kde.org>
1767
1768 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
1769
1770 2009-05-14 Jakub Jelinek <jakub@redhat.com>
1771 Ben Elliston <bje@au.ibm.com>
1772
1773 PR middle-end/40035
1774 * dse.c (check_mem_read_rtx): Guard against width == -1.
1775
1776 2009-05-13 Michael Matz <matz@suse.de>
1777
1778 PR middle-end/39976
1779 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
1780 (trivially_conflicts_p): New function.
1781 (insert_backedge_copies): Use it.
1782
1783 2009-05-13 Janis Johnson <janis187@us.ibm.com>
1784
1785 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
1786 (handle_stdc_pragma): Use new enum constant names.
1787 (handle_pragma_float_const_decimal64): Ditto.
1788
1789 2009-05-13 Ian Lance Taylor <iant@google.com>
1790
1791 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
1792 tree.def.
1793
1794 2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
1795
1796 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
1797 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
1798 multilibs.
1799 * config/m68k/m68k.h (FL_UCLINUX): Define.
1800
1801 2009-05-13 Jan Hubicka <jh@suse.cz>
1802
1803 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
1804
1805 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1806
1807 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
1808 unless -fschedule-insns is specified.
1809
1810 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1811
1812 PR target/39561
1813 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
1814 TARGET_EXPAND_CBRANCHDI4.
1815 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
1816 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
1817 (cmpeqdi): Fix comment.
1818
1819 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1820
1821 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
1822 (sh_legitimate_address_p): Likewise.
1823 * config/sh/sh.c (sh_legitimate_index_p): New.
1824 (sh_legitimate_address_p): Likewise.
1825 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
1826 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
1827 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
1828 (MAYBE_BASE_REGISTER_RTX_P): New macro.
1829 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
1830 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
1831 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
1832 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
1833 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
1834
1835 2009-05-12 Jan Hubicka <jh@suse.cz>
1836
1837 * tree-inline.c (estimate_operator_cost): Add operands;
1838 when division happens by constant, it is cheap.
1839 (estimate_num_insns): Loads and stores are not having cost of 0;
1840 EH magic stuff is cheap; when computing runtime cost of switch,
1841 use log2 base of amount of its cases; builtin_expect has cost of 0;
1842 compute cost for moving return value of call.
1843 (init_inline_once): Initialize time_based flags.
1844 * tree-inline.h (eni_weights_d): Add time_based flag.
1845
1846 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
1847
1848 * df-core.c: Update head documentation.
1849
1850 2009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1851
1852 PR bootstrap/40118
1853 * rs6000.c (rs6000_generate_compare): Use op1b instead of
1854 shadowing exisiting variable op1.
1855
1856 2009-05-12 Uros Bizjak <ubizjak@gmail.com>
1857
1858 PR target/37179
1859 * config/i386/driver-i386.c (processor_signatures): New enum.
1860 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
1861 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
1862 processor signature to detect geode processor.
1863
1864 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
1865
1866 Revert:
1867
1868 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
1869
1870 * optabs.c (prepare_cmp_insn): Temporarily disable test that
1871 causes spurious differences between trunk and cond-optab branch.
1872
1873 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
1874
1875 * dojump.c (compare_from_rtx): Delete.
1876 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
1877 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
1878 if the comparison does not satisfy the predicate; test predicates for
1879 operands 2 and 3 of a cstore pattern. Don't try cstore optab
1880 further if one existing pattern fails.
1881 * expr.h (compare_from_rtx): Delete.
1882 (prepare_operand): Declare it.
1883 * optabs.c: Change "lib call" to "libcall" throughout.
1884 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
1885 HAVE_conditional_trap, emit_cmp_insn): Delete.
1886 (can_compare_p): Delete cmp_optab case.
1887 (prepare_float_lib_cmp): Return an rtx and a machine mode.
1888 Accept other parameters by value.
1889 (prepare_operand): Make non-static.
1890 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
1891 other parameters by value. Try to widen operands here based on
1892 an optab_methods argument and looking at cbranch_optab.
1893 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
1894 loop. Use cbranch_optab directly.
1895 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
1896 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
1897 assertion.
1898 (emit_conditional_move, emit_conditional_add): Inline what's needed
1899 of compare_from_rtx, using new prepare_cmp_insn for the rest.
1900 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
1901 with COMPARE. Move cmov_optab and cstore_optab above
1902 with cbranch_optab, move cmp_optab down with ucmp_optab,
1903 remove tst_otpab. Do not initialize trap_rtx.
1904 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
1905 for trap code. Do not check HAVE_conditional_trap. Use
1906 prepare_cmp_insn. Accept no predicate for operand 3.
1907 * optabs.h (OTI_cmp): Mark as used only for libcalls.
1908 (OTI_ctrap, ctrap_optab): New.
1909 (tst_optab): Delete.
1910 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
1911 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
1912 with lookup of ctrap_optab.
1913 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
1914 setcc_gen_code): Delete.
1915 (ctrap_optab): New.
1916
1917 * combine.c (combine_simplify_rtx, simplify_set): Do not
1918 special case comparing against zero for cc0 machines.
1919 * simplify-rtx.c (simplify_binary_operation_1): Never remove
1920 COMPARE on cc0 machines.
1921 (simplify_relational_operation): Return a new expression when
1922 a COMPARE could be removed.
1923 * final.c (final_scan_insn): Compare cc_status values
1924 against LHS of a (compare FOO (const_int 0)) cc0 source.
1925 Also check if cc_status.value is the full compare.
1926
1927 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
1928 (cstoreMM4): Document.
1929 (conditional_trap): Document ctrapMM4 instead.
1930 (sync_compare_and_swapMM): Refer to cbranchcc4.
1931 (Dependent Patterns): Eliminate obsolete information referring to
1932 the old jump optimization phase.
1933 (Canonicalization): Include cbranchcc4 case, omit canonicalization
1934 of compares with 0 on cc0 machines.
1935 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
1936 avoiding references to cc0. Remove text about storing operands
1937 in cmpMM.
1938 * doc/tm.texi (Condition Codes): Include blurb on different
1939 condition code representations, separate into subsections for
1940 CC0, MODE_CC and conditional execution.
1941
1942 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
1943 alpha_emit_setcc): Accept operands and a machine mode.
1944 * config/alpha/alpha.c (alpha_emit_conditional_branch):
1945 Get code/op0/op1 from operands, use machine mode argument
1946 instead of alpha_compare.fp_p. Emit the branch here.
1947 (alpha_emit_setcc): Likewise, and return boolean.
1948 (alpha_emit_conditional_move): Likewise. Assert that
1949 cmp_op_mode == cmp_mode, and simplify accordingly.
1950 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
1951 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
1952 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
1953 Delete.
1954 (stack probe test): Use cbranchdi4.
1955 * config/alpha/predicates.md (alpha_cbranch_operator): New.
1956
1957 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
1958 * config/arc/arc.h (movsicc, movsfcc): Use it.
1959 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
1960 (cbranchsi4, cstoresi4): New.
1961 (cmpsi, bCC and sCC expanders): Remove.
1962
1963 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
1964 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
1965 * config/arm/predicates.md (arm_comparison_operator): Only include
1966 floating-point operators if there is a hardware floating-point unit.
1967 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
1968 deferring to cbranch_cc and cstore_cc respectively.
1969 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
1970 cbranch_cc, cstore_cc): New.
1971 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
1972 arm_compare_op1.
1973 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
1974
1975 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
1976 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
1977 as an argument.
1978 (adjust_insn_length): Adjust calls.
1979 (avr_reorg): Handle (compare (foo) (const_int 0)).
1980 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
1981 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
1982 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
1983 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
1984 (bCC): Remove.
1985 (cbranchqi4, cbranchhi4, cbranchsi4): New.
1986 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
1987
1988 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
1989 (cbranchsi4, cstorebi4, cstoresi4): New.
1990 (movbisi): This insn is duplicate, split it to zero_extend.
1991 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
1992 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
1993 (bfin_optimize_loop): Use cbranch expander.
1994 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
1995 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
1996 (bfin_bimode_comparison_operator): ... this.
1997 (bfin_direct_comparison_operator): New.
1998
1999 * config/cris/cris.c (cris_normal_notice_update_cc): Look
2000 inside (compare FOO (const_int 0)).
2001 (cris_rtx_costs): Handle ZERO_EXTRACT.
2002 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
2003 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
2004 (*tstdi_v32): Delete.
2005 (*cmpdi_non_v32): Add M alternative for operand 1.
2006 (cmpsi, cmp<mode>): Make private.
2007 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
2008 with COMPARE.
2009 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
2010
2011 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
2012 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
2013 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
2014 (cc_reg_operand): New.
2015 (any_cond): Delete.
2016 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
2017 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
2018 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
2019 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
2020 crx_expand_scond): Delete.
2021
2022 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
2023 (cbranchsi4): New.
2024 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
2025 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
2026
2027 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
2028 cstoresi4, cstoresf4, cstoredf4): New.
2029 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
2030 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2031 Receive the entire operands array.
2032 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
2033 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
2034 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2035 Get test/op0/op1 from the operands array.
2036 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
2037
2038 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
2039 (h8300_expand_store): New.
2040 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
2041 (const_int 0)).
2042 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
2043 (h8300_expand_store): New.
2044 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
2045 or do not try to produce (set (cc0) REG).
2046 (peepholes): Wrap arguments with COMPARE. Add a peephole to
2047 change a compare into a move to a scratch register. Disable some
2048 peepholes when comparing with zero.
2049 (tstsi, tsthi, tstsi, cmpqi): Make private.
2050 (cmphi): Delete.
2051 (bCC, sCC): Delete.
2052 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
2053 cstoresi4): New.
2054
2055 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
2056 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
2057 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
2058 (ix86_emit_i387_log1p): Use cbranchxf2.
2059 (ix86_expand_setcc): Return void.
2060 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
2061 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
2062 cmp<MODEF>, cmpcc): Remove.
2063 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
2064 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
2065 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
2066 (sCC and bCC expanders): Remove.
2067 (stack_protect_test): Use cbranchcc4.
2068
2069 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
2070 Delete.
2071 (ia64_expand_compare): Accept three rtx by reference and return void.
2072 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
2073 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
2074 from *expr. Update *expr with the BImode comparison to do.
2075 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
2076 cmptf, bCC, sCC, conditional_trap): Delete.
2077 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
2078 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
2079 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
2080 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
2081 * config/ia64/predicates.md (ia64_cbranch_operator): New.
2082
2083 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
2084 type of last argument.
2085 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
2086 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
2087 use machine mode argument instead of branch_type. Remove dead
2088 code for floating-point comparisons.
2089 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
2090 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
2091 Remove.
2092 (cbranchsi4, cstoresi4): New.
2093 * config/iq2000/predicates.md (reg_or_const_operand): New.
2094
2095 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
2096 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
2097 (b<code>_op): Rewrite to...
2098 (bcc_op): ... this, using match_operator.
2099 (s<code>_op): Rewrite to...
2100 (scc_op): ... this, using match_operator.
2101 (s<code>_24_op): Rewrite to...
2102 (scc_op_24): ... this, using match_operator.
2103 (s<code>_<mode>): Rewrite to...
2104 (cstore<mode>4): ... this, using match_operator.
2105 (s<code>_<mode>_24): Rewrite to...
2106 (cstore<mode>4_24): ... this, using match_operator.
2107 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
2108 m32c_unpend_compare, m32c_expand_scc): Delete.
2109 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
2110 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
2111 (m32c_expand_movcc): Change NE to EQ if necessary.
2112 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
2113
2114 * config/m32r/m32r-protos.h (gen_cond_store): New.
2115 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
2116 (gen_cond_store): New, from sCC patterns.
2117 (m32r_expand_block_move): Use cbranchsi4.
2118 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
2119 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
2120 (cbranchsi4, cstoresi4): New.
2121
2122 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
2123 Delete.
2124 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
2125 (m68hc11_notice_update_cc): Look into a compare with 0.
2126 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
2127 Delete.
2128 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
2129 cmphi, cmpqi, bCC): Delete.
2130 (cbranchsi4, cbranchhi4, cbranchqi4): New.
2131 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
2132 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
2133 sets with COMPARE.
2134
2135 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
2136 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
2137 * config/m68k/constraints.md (H): New.
2138 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
2139 the define_insn below.
2140 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
2141 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
2142 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
2143 patterns): Wrap RHS with COMPARE.
2144 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
2145 (*cmpdi_internal): Name this pattern.
2146 (cmpdi): Change to define_insn.
2147 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
2148 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
2149 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
2150 predicate.
2151 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
2152 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
2153 (conditional_trap): Change to...
2154 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
2155 (*conditional_trap): Use the ordered_comparison_operator and
2156 const1_operand predicates.
2157 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
2158 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
2159 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
2160 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
2161
2162 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
2163 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
2164 (mcore_gen_compare): New.
2165 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
2166 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
2167 (mcore_gen_compare): ... this.
2168 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
2169 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
2170 (stack probe pattern): Use cbranchsi4.
2171
2172 * config/mips/predicates.md (mips_cstore_operator): New.
2173 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
2174 * config/mips/mips.md (any_cond): Delete.
2175 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
2176 always succeed.
2177 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
2178 fixuns_truncsfdi2): Use cbranch patterns.
2179 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
2180 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
2181 Adjust call to mips_expand_conditional_branch.
2182 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
2183 cstore<GPR:mode>4.
2184 * config/mips/mips-protos.h (mips_expand_conditional_branch,
2185 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
2186 * config/mips/mips.c (cmp_operands): Delete.
2187 (mips_emit_compare): Get comparison operands from *op0/*op1.
2188 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
2189 that it succeeds. Use op0/op1 instead of cmp_operands.
2190 (mips_expand_conditional_branch, mips_expand_conditional_move,
2191 mips_expand_conditional_trap): Likewise.
2192 (mips_block_move_loop): Use cbranch patterns.
2193 * config/mips/mips.h (cmp_operands): Delete.
2194
2195 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
2196 (mmix_gen_compare_reg): Just return a register in the right CC mode.
2197 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
2198 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
2199 (*cmpcc_folded): Rename to...
2200 (*cmpdi_folded): this.
2201 (*cmpcc): Rename to...
2202 (*cmps): ... this.
2203 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
2204 (bCC): Remove.
2205 (cbranchdi4): New.
2206 (cbranchdf4): New. Handle invalid comparisons here.
2207 * config/mmix/predicates.md (float_comparison_operator): New.
2208
2209 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
2210 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
2211 * config/mn10300/mn10300.md (tst): Delete.
2212 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
2213 Name these patterns and wrap RHS in a compare.
2214 (*cmpsi): Make this pattern private. Include tst.
2215 (*cmpsf): Make this pattern private.
2216 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
2217 (compare with zero peepholes): Likewise.
2218 (bCC): Remove.
2219 (cbranchsi4, cbranchsf4): New.
2220 (casesi): Use cbranchsi4.
2221
2222 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
2223 hppa_branch_type): Delete.
2224 (return_addr_rtx): Use cbranchsi4.
2225 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
2226 Emit CCFPmode comparison here.
2227 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
2228 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
2229 hppa_branch_type): Delete.
2230 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
2231 (movsicc, movdicc): Remove references to hppa_compare_op0,
2232 hppa_compare_op1 and compare_from_rtx.
2233 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
2234 (casesi): Use cbranchsi4.
2235
2236 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
2237 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
2238 * config/pdp11/pdp11.md (register_or_const0_operand): New.
2239 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
2240 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
2241 (bCC): Delete.
2242 (cbranchdf4, cbranchhi4, cbranchqi4): New.
2243 (*branch, *branch_inverted): New.
2244
2245 * config/picochip/picochip.md (cbranchhi4): Use
2246 ordered_comparison_operator.
2247 (cmphi, bCC): Remove.
2248
2249 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
2250 (trap_comparison_operator): Delete.
2251 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
2252 rs6000_emit_cbranch): Accept mode and operands.
2253 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
2254 rs6000_compare_fp_p): Delete.
2255 (rs6000_generate_compare): Accept mode and comparison. Extract code
2256 and op0/op1 from there. Replace references to rs6000_compare_op0
2257 and rs6000_compare_op1.
2258 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
2259 extract result from passed operands.
2260 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
2261 extract loc from passed operands.
2262 (rs6000_emit_cmove): Likewise.
2263 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
2264 rs6000_compare_fp_p): Delete.
2265 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
2266 (cbranch<GPR>4, cbranch<FP>4): New.
2267 (cstore<mode>4): New. Consolidate here all choices about when to use
2268 portable or specialized sCC sequences.
2269 (stack_protect_test): Use cbranchsi4.
2270 (conditional_trap): Replace with ctrap<GPR>4.
2271 (conditional trap insn): Replace trap_comparison_operator with
2272 ordered_comparison_operator.
2273
2274 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
2275 (s390_emit_prologue): Use ctrap.
2276 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
2277 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
2278 New predicates replacing...
2279 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
2280 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
2281 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
2282 (add<mode>cc): Do not use s390_compare_op0/op1.
2283 (s<code>): Change to...
2284 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
2285 (seq): Change to...
2286 (cstorecc4): ... this. Handle EQ or NE equally.
2287 (*sne): Un-privatize for use in cstorecc4.
2288 (b<code>): Change to...
2289 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
2290 (conditional_trap): Replace with...
2291 (ctrap<GPR>4, ctrap<FP>4): ... these.
2292 (stack_protect): Use cbranchcc4.
2293
2294 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
2295 * config/score/score-protos.h (score_gen_cmp): Delete.
2296 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
2297 (score_block_move-loop): Use cbranchsi4.
2298 * config/score/score.md (cbranchsi4): New.
2299 (cmpsi, bCC): Delete.
2300 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
2301 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
2302 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
2303 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
2304 * config/score/score3.h (score3_gen_cmp): Delete.
2305 * config/score/score7.h (score7_gen_cmp): Delete.
2306
2307 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
2308 (sh_emit_scc_to_t): ... this. Return void.
2309 (from_compare): Rename to...
2310 (sh_emit_compare_and_branch): ... this.
2311 (sh_emit_compare_and_set): New.
2312 (sh_expand_t_scc): Accept operands.
2313 * config/sh/predicates.md (sh_float_comparison_operator): New.
2314 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
2315 (prepare_scc_operands): Rename to...
2316 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
2317 arguments.
2318 (sh_emit_cheap_store_flag): New.
2319 (sh_emit_set_t_insn): New.
2320 (from_compare): Rename to...
2321 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
2322 handling of TARGET_SH2E floating point to avoid recursive call.
2323 Generate branch here.
2324 (sh_emit_compare_and_set): New.
2325 (sh_expand_t_scc): Get op0/op1 from arguments.
2326 (sh_emit_cheap_store_flag): New.
2327 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
2328 cases.
2329 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
2330 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
2331 (movsicc, movdicc): Do nothing when it recreated operands from
2332 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
2333 prepare_scc_operands (now sh_emit_scc_to_t).
2334 (udivdi3): Use cstoresi4.
2335 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
2336 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
2337 (cbranchint4_media, cbranchfp4_media): New.
2338 (casesi): Use cbranchdi4.
2339 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
2340 Delete.
2341 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
2342 (movnegt): Remove second operand.
2343 (cbranchsf4, cbranchdf4): New.
2344 (stack_protect): Use cbranchdi4/cbranchsi4.
2345
2346 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
2347 (gen_compare_reg): Accept comparison, extract part of it to...
2348 (gen_compare_reg_1): ... this.
2349 (gen_compare_operator): Delete.
2350 (gen_v9_scc): Accept separate destination, comparison code and arms.
2351 Do not use sparc_compare_op0/sparc_compare_op1.
2352 (emit_scc_insn, emit_conditional_branch_insn): New.
2353 (emit_v9_brxx): Make static. Remove useless assertion.
2354 (sparc_emit_float_lib_cmp): Return RTL instead of calling
2355 emit_cmp_insn.
2356 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
2357 * config/sparc/sparc-protos.h (gen_compare_reg,
2358 sparc_emit_float_lib_cmp): Adjust prototype.
2359 (emit_scc_insn, emit_conditional_branch_insn): New.
2360 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
2361 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
2362 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
2363 iterators to the top.
2364 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
2365 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
2366 snedi_special_trunc): Delete.
2367 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
2368 and snedi_special_trunc.
2369 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
2370 cbranchdi4, cbranch<F:mode>4): New.
2371 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
2372 here. Use gen_compare_reg instead of gen_compare_operator.
2373 (conditional_trap): Replace with...
2374 (ctrapsi4, ctrapdi4): ... this.
2375 (stack_protect_test): Use cbranchcc4.
2376
2377 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
2378 argument to rtx.
2379 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
2380 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
2381 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
2382 from operands[0] or operands[3] depending on is_set.
2383 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
2384 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
2385 cmpdf, bCC), sCC: Remove.
2386 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
2387 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
2388 cstoredf4): New.
2389 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
2390 spu_emit_branch_or_set.
2391
2392 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
2393 Add two arguments.
2394 * config/stormy16/stormy16.h (xstormy16_compare_op0,
2395 xstormy16_compare_op1): Delete.
2396 * config/stormy16/stormy16.c (xstormy16_compare_op0,
2397 xstormy16_compare_op1): Delete.
2398 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
2399 Adjust calls.
2400 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
2401 (cmphi, cmpsi, bCC): Remove.
2402
2403 * config/v850/v850.md (tstsi, cmpsi): Fold into...
2404 (*cmpsi): ... this one.
2405 (cbranchsi4, cstoresi4): New.
2406 (bCC expanders): Delete.
2407 (sCC insns): Fold into...
2408 (*setcc): ... this one.
2409 (casesi): Do not use gen_cmpsi and gen_bgtu.
2410 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
2411 (movsicc): Simplify.
2412 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
2413
2414 * config/vax/vax-protos.h (cond_name): New.
2415 (vax_output_conditional_branch): Remove.
2416 * config/vax/vax.c (cond_name): New.
2417 (vax_output_conditional_branch): Remove.
2418 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
2419 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
2420 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
2421 (bit<VAXint>): Wrap source with (compare).
2422 (b<code> and following unnamed pattern): Rename to *branch and
2423 *branch_reversed. Change macroization to match_operator.
2424 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
2425
2426 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
2427 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
2428 Change last argument to machine_mode.
2429 (xtensa_expand_scc): Add machine_mode argument.
2430 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
2431 (gen_conditional_move, xtensa_expand_conditional_branch,
2432 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
2433 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
2434 Adjust operand numbers.
2435 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
2436 Delete.
2437 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
2438 (cmpsi, cmpsf, b<code>, s<code>): Delete.
2439 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
2440
2441 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
2442
2443 * optabs.c (prepare_cmp_insn): Temporarily disable test that
2444 causes spurious differences between trunk and cond-optab branch.
2445
2446 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
2447
2448 PR target/37137
2449 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
2450
2451 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
2452
2453 * tree.c (iterative_hash_pointer): Delete.
2454 (iterative_hash_expr): Short-circuit handling of NULL pointer.
2455 Hash UIDs and versions of SSA names. Don't special-case built-in
2456 function declarations.
2457
2458 2009-05-11 Ian Lance Taylor <iant@google.com>
2459
2460 PR bootstrap/40103
2461 * graphite.c: Force -Wc++-compat to only be a warning before
2462 #including "cloog/cloog.h".
2463
2464 2009-05-11 Martin Jambor <mjambor@suse.cz>
2465
2466 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
2467
2468 2009-05-11 Jan Hubicka <jh@suse.cz>
2469
2470 * tree-ssa-loop-ivcanon.c: Include target.h
2471 (struct loop_size): new structure.
2472 (constant_after_peeling): New predicate.
2473 (tree_estimate_loop_size): New function.
2474 (estimated_unrolled_size): Rewrite for new estimates.
2475 (try_unroll_loop_completely): Use new estimates.
2476 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
2477
2478 2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
2479
2480 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
2481 libcpp interface change.
2482 (spu_macro_to_expand): Likewise.
2483
2484 2009-05-11 Paolo Bonzini <bonzini@gnu.org>
2485
2486 PR tree-optimization/40026
2487 * gimplify.c (gimplify_init_constructor): Change initial conditional
2488 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
2489 optimize_compound_literals_in_ctor.
2490
2491 2009-05-11 Nathan Sidwell <nathan@codesourcery.com>
2492
2493 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
2494 New devices.
2495 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
2496
2497 2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
2498
2499 * tree-vect-data-refs.c (vect_analyze_group_access): Use
2500 HOST_WIDE_INT for gap.
2501
2502 2009-05-11 Ira Rosen <irar@il.ibm.com>
2503
2504 PR tree-optimization/40074
2505 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
2506 account in group size and step comparison.
2507
2508 2009-05-11 Richard Guenther <rguenther@suse.de>
2509
2510 * passes.c (init_optimization_passes): Strip now incorrect comment.
2511 (execute_function_todo): Do not set PROP_alias.
2512 * tree-pass.h (PROP_alias): Remove.
2513 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
2514 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
2515 * tree-nrv.c (pass_return_slot): Likewise.
2516 * tree-object-size.c (pass_object_sizes): Likewise.
2517 * tree-ssa-dom.c (pass_dominator): Likewise.
2518 (pass_phi_only_cprop): Likewise.
2519 * tree-ssa-dse.c (pass_dse): Likewise.
2520 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
2521 (pass_cselim): Likewise.
2522 * tree-ssa-pre.c (pass_pre): Likewise.
2523 (pass_fre): Likewise.
2524 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
2525 * tree-ssa-sink.c (pass_sink_code): Likewise.
2526 * tree-stdarg.c (pass_stdarg): Likewise.
2527 * tree-tailcall.c (pass_tail_calls): Likewise.
2528 * tree-vrp.c (pass_vrp): Likewise.
2529
2530 2009-05-10 Ian Lance Taylor <iant@google.com>
2531
2532 * basic-block.h (enum profile_status): Break out of struct
2533 control_flow_graph.
2534 * cgraph.h (struct inline_summary): Break out of struct
2535 cgraph_local_info.
2536 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
2537 of struct cgraph_order_sort.
2538 * combine.c (enum undo_kind): New enum, broken out of struct undo.
2539 * cse.c (struct branch_path): Break out of struct
2540 cse_basic_block_data.
2541 * except.h (enum eh_region_type): Break out of struct eh_region.
2542 * gcc.c (enum add_del): Break out of struct modify_target.
2543 * genrecog.c (enum decision_type): Break out of struct decision_test.
2544 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
2545 ggc_pch_data.
2546 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
2547 * regmove.c (enum match_use): New enum, broken out of struct match.
2548 * sched-int.h (enum post_call_group): New enum, broken out of
2549 struct deps.
2550 (struct deps_reg): Break out of struct deps.
2551 * target.h (struct asm_int_op): Break out of struct gcc_target.
2552 * tree-eh.c (struct goto_queue_node): Break out of struct
2553 leh_tf_state.
2554 * tree-inline.h (enum copy_body_cge_which): Break out of
2555 copy_body_data.
2556 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
2557
2558 * c-decl.c (in_struct, struct_types): New static variables.
2559 (pushtag): Add loc parameter. Change all callers.
2560 (lookup_tag): Add ploc parameter. Change all callers.
2561 (check_compound_literal_type): New function.
2562 (parser_xref_tag): Add loc parameter. Change all callers. If
2563 -Wc++-compat, warn about struct/union/enum types defined within a
2564 struct or union.
2565 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
2566 and loc parameters. Change all callers. Change error calls to
2567 error_at, using loc. For a redefinition, if the location of the
2568 original definition is known, report it. Set in_struct and
2569 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
2570 (finish_struct): Add new parameters enclosing_in_struct and
2571 enclosing_struct_types. Change all callers. Set
2572 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
2573 in the struct. If in a struct, add this struct to struct_types.
2574 (start_enum): Add loc parameter. Change all callers. Use
2575 error_at for errors, using loc. For a redefinition, if the
2576 location of the original definition is known, report it. If in a
2577 struct, add this enum type to struct_types. If -Wc++-compat warn
2578 if in sizeof, typeof, or alignof.
2579 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
2580 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
2581 (c_parser_enum_specifier): Get enum location for start_enum.
2582 (c_parser_struct_or_union_specifier): Get struct location for
2583 start_struct. Save in_struct and struct_types status between
2584 start_struct and finish_struct.
2585 (c_parser_cast_expression): Get location of cast.
2586 (c_parser_alignof_expression): Get location of type.
2587 (c_parser_postfix_expression): Likewise.
2588 (c_parser_postfix_expression_after_paren_type): Add type_loc
2589 parameter. Change all callers. Call check_compound_literal_type.
2590 Use type_loc for error about variable size type.
2591 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
2592 of an enum constant from an enum type defined in a struct or union.
2593 (c_cast_expr): Add loc parameter. Change all callers. If
2594 -Wc++-compat, warn about defining a type in a cast.
2595 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
2596 (start_enum, start_struct, finish_struct): Update declarations.
2597 (parser_xref_tag, c_cast_expr): Update declarations.
2598 (check_compound_literal_type): Declare.
2599
2600 2009-05-11 Ben Elliston <bje@au.ibm.com>
2601
2602 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
2603 for recent libcpp interface change.
2604 (rs6000_macro_to_expand): Likewise.
2605
2606 2009-05-10 Michael Matz <matz@suse.de>
2607
2608 PR target/40031
2609 * config/arm/arm.c (require_pic_register): Emit on entry edge,
2610 not at entry of function.
2611
2612 2009-05-10 Richard Guenther <rguenther@suse.de>
2613
2614 PR tree-optimization/40081
2615 Revert
2616 * tree-sra.c (instantiate_element): Instantiate scalar replacements
2617 using the main variant of the element type. Do not fiddle with
2618 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
2619
2620 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
2621 structs with volatile fields.
2622
2623 2009-05-10 Jan Hubicka <jh@suse.cz>
2624
2625 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
2626 (estimate_move_cost): Assert that it does not get called for
2627 VOID_TYPE_P.
2628 (estimate_num_insns): Skip VOID types in argument handling.
2629 (optimize_inline_calls): Delete unreachable blocks and verify that
2630 callgraph is valid.
2631
2632 2009-05-10 Jan Hubicka <jh@suse.cz>
2633
2634 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
2635 * cgraph.c (cgraph_mark_address_taken_node): New function.
2636 (dump_cgraph_node): Dump new flag.
2637 * cgraph.h (struct cgraph_node): Add address_taken.
2638 (cgraph_mark_address_taken_node): New function.
2639 * ipa.c (cgraph_postorder): Prioritize functions with address taken
2640 since new direct calls can be born.
2641
2642 2009-05-10 Joseph Myers <joseph@codesourcery.com>
2643
2644 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
2645 tok->val.node.node.
2646
2647 2009-05-10 Jan Hubicka <jh@suse.cz>
2648
2649 PR middle-end/40084
2650 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
2651 argument; rewrite.
2652 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
2653 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
2654 * tree-inline.c (copy_bb): Set frequency correctly.
2655 (fold_marked_statements): Update call to
2656 cgraph_update_edges_for_call_stmt.
2657
2658 2009-05-10 Joseph Myers <joseph@codesourcery.com>
2659
2660 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
2661 identifiers in diagnostics.
2662 * config/arm/arm.c (arm_handle_fndecl_attribute,
2663 arm_handle_isr_attribute): Likewise.
2664 * config/avr/avr.c (avr_handle_progmem_attribute,
2665 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
2666 * config/bfin/bfin.c (handle_int_attribute,
2667 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
2668 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
2669 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
2670 Likewise.
2671 * config/darwin.c (darwin_handle_kext_attribute,
2672 darwin_handle_weak_import_attribute): Likewise.
2673 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
2674 h8300_handle_eightbit_data_attribute,
2675 h8300_handle_tiny_data_attribute): Likewise.
2676 * config/i386/i386.c (ix86_handle_cconv_attribute,
2677 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
2678 * config/i386/winnt.c (ix86_handle_shared_attribute,
2679 ix86_handle_selectany_attribute): Likewise.
2680 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
2681 * config/m32c/m32c.c (function_vector_handler): Likewise.
2682 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
2683 m68hc11_handle_fntype_attribute): Likewise.
2684 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
2685 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
2686 * config/mips/mips.c (mips_insert_attributes,
2687 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
2688 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
2689 rs6000_handle_struct_attribute): Likewise.
2690 * config/sh/sh.c (sh_insert_attributes,
2691 sh_handle_resbank_handler_attribute,
2692 sh_handle_interrupt_handler_attribute,
2693 sh2a_handle_function_vector_handler_attribute,
2694 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
2695 Likewise.
2696 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
2697 * config/spu/spu.c (spu_handle_fndecl_attribute,
2698 spu_handle_vector_attribute): Likewise.
2699 * config/stormy16/stormy16.c
2700 (xstormy16_handle_interrupt_attribute): Likewise.
2701 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
2702 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
2703
2704 2009-05-10 Joseph Myers <joseph@codesourcery.com>
2705
2706 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
2707 (pp_translate_identifiers): New.
2708 (pp_identifier): Only conditionally translate identifier to locale
2709 character set.
2710 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
2711 (pp_base_tree_identifier): Only conditionally translate identifier
2712 to locale character set.
2713 * c-pretty-print.c (M_): Define.
2714 (pp_c_type_specifier, pp_c_primary_expression): Mark English
2715 fragments for conditional translation with M_.
2716 * tree-pretty-print.c (maybe_init_pretty_print): Disable
2717 identifier translation.
2718
2719 2009-05-10 Richard Guenther <rguenther@suse.de>
2720
2721 PR tree-optimization/40081
2722 * tree-sra.c (instantiate_element): Instantiate scalar replacements
2723 using the main variant of the element type. Do not fiddle with
2724 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
2725
2726 2009-05-09 Jan Hubicka <jh@suse.cz>
2727
2728 PR middle-end/40080
2729 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
2730 indirect calls; verify cgraph afterwards.
2731
2732 2009-05-09 Jan Hubicka <jh@suse.cz>
2733
2734 PR bootstrap/40082
2735 * ipa.c (update_inlined_to_pointer): New function.
2736 (cgraph_remove_unreachable_nodes): Use it.
2737
2738 2009-05-09 Jan Hubicka <jh@suse.cz>
2739
2740 * tree-eh.c (struct leh_state): Remove prev_try.
2741 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
2742 not track prev_try.
2743 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
2744 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
2745 remove_eh_handler_and_replace, foreach_reachable_handler,
2746 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
2747 * except.h (struct eh_region): Remove eh_region_u_cleanup.
2748 (gen_eh_region_cleanup): Update prototype.
2749
2750 2009-05-09 Jan Hubicka <jh@suse.cz>
2751
2752 PR middle-end/40043
2753 * except.c (copy_eh_region): Always set prev_try.
2754 (redirect_eh_edge_to_label): Find outer try.
2755 (foreach_reachable_handler): When looking for prev try
2756 handle case where previous try is not going to be taken.
2757
2758 2009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
2759
2760 PR tree-optimization/40049
2761 * tree-vect-stmts.c (vectorizable_operation): If the machine has
2762 only vector/vector shifts, convert the type of the constant to the
2763 appropriate type to avoid building incorrect trees, which
2764 eventually have problems with garbage collection.
2765
2766 2009-05-08 Joseph Myers <joseph@codesourcery.com>
2767
2768 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
2769 -1 for complex floating-point types if honoring signed zeros.
2770
2771 2009-05-08 Jan Hubicka <jh@suse.cz>
2772
2773 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
2774 argument; handle correctly when profile is absent.
2775 (build_cgraph_edges): Update.
2776 (rebuild_cgraph_edges): Update.
2777 * cgraph.c: Do not include varray.h.
2778 (cgraph_set_call_stmt_including_clones): New function.
2779 (cgraph_create_edge_including_clones): Likewise
2780 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
2781 (cgraph_update_edges_for_call_stmt): Handle clones.
2782 (cgraph_remove_node): Handle clone tree.
2783 (cgraph_remove_node_and_inline_clones): New function.
2784 (dump_cgraph_node): Dump clone tree.
2785 (cgraph_clone_node): Handle clone tree.
2786 (clone_function_name): Bring here from tree-inline.c.
2787 (cgraph_create_virtual_clone): New function.
2788 * cgraph.h (ipa_replace_map): Move here from ipa.h.
2789 (cgraph_clone_info): New function.
2790 (strut cgraph_node): Add clone_info and new clone tree pointers.
2791 (cgraph_remove_node_and_inline_clones,
2792 cgraph_set_call_stmt_including_clones,
2793 cgraph_create_edge_including_clones,
2794 cgraph_create_virtual_clone): Declare.
2795 (cgraph_function_versioning): Use VEC argument.
2796 (compute_call_stmt_bb_frequency): Update prototype.
2797 (cgraph_materialize_all_clones): New function.
2798 * ipa-cp.c (ipcp_update_cloned_node): Remove.
2799 (ipcp_create_replace_map): Update to VECtors.
2800 (ipcp_update_callgraph): Use virtual clones.
2801 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
2802 (ipcp_update_profiling): Do not update local profiling.
2803 (ipcp_insert_stage): Use VECtors and virtual clones.
2804 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
2805 (clone_of_p): New function.
2806 (cgraph_preserve_function_body_p): Use clone tree.
2807 (cgraph_optimize): Materialize clones.
2808 (cgraph_function_versioning): Update for VECtors.
2809 (save_inline_function_body): Use clone tree.
2810 (cgraph_materialize_clone): New function.
2811 (cgraph_materialize_all_clones): Likewise.
2812 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
2813 * ipa.c: Include gimple.h.
2814 (cgraph_remove_unreachable_nodes): Use clone tree.
2815 * ipa-prop.c (ipa_note_param_call): Update call to
2816 compute_call_stmt_bb_frequencycall.
2817 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
2818 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
2819 (copy_bb): Handle updating of clone tree; add new edge when new call
2820 appears.
2821 (expand_call_inline): Be strict about every call having edge.
2822 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
2823 (delete_unreachable_blocks_update_callgraph): New function.
2824 (tree_function_versioning): Use VECtors; always remove unreachable
2825 blocks and fold conditionals.
2826 * tree-inline.h: Do not include varray.h.
2827 (tree_function_versioning): Remove.
2828 * Makefile.in (GTFILES): Remove tree-inline.c
2829 * passes.c (do_per_function): Do only functions having body.
2830 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
2831 tree.
2832
2833 2009-05-08 H.J. Lu <hongjiu.lu@intel.com>
2834 Andrew Morrow <acm@google.com>
2835
2836 PR c/36892
2837 * c-common.c (c_common_attribute_table): Permit deprecated
2838 attribute to take an optional argument.
2839 (handle_deprecated_attribute): If the optional argument to
2840 __attribute__((deprecated)) is not a string ignore the attribute
2841 and emit a warning.
2842
2843 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
2844 * c-typeck.c (build_component_ref): Likewise.
2845 (build_external_ref): Likewise.
2846
2847 * toplev.c (warn_deprecated_use): Add an attribute argument.
2848 Emit the message associated with __attribute__((deprecated)).
2849
2850 * toplev.h (warn_deprecated_use): Updated.
2851
2852 * doc/extend.texi: Document new optional parameter to
2853 __attribute__((deprecated))
2854
2855 2009-05-08 Michael Eager <eager@eagercon.com>
2856
2857 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
2858 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
2859
2860 2009-05-08 Richard Guenther <rguenther@suse.de>
2861
2862 PR tree-optimization/40062
2863 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
2864 Avoid exponential behavior.
2865
2866 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
2867
2868 PR rtl-optimization/33928
2869 PR 26854
2870 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
2871 process_uses, build_single_def_use_links): New.
2872 (update_df): Update use_def_ref.
2873 (forward_propagate_into): Use get_def_for_use instead of use-def
2874 chains.
2875 (fwprop_init): Call build_single_def_use_links and let it initialize
2876 dataflow.
2877 (fwprop_done): Free use_def_ref.
2878 (fwprop_addr): Eliminate duplicate call to df_set_flags.
2879 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
2880 df_rd_simulate_one_insn): New.
2881 (df_rd_bb_local_compute_process_def): Update head comment.
2882 (df_chain_create_bb): Use the new RD simulation functions.
2883 * df.h (df_rd_simulate_artificial_defs_at_top,
2884 df_rd_simulate_one_insn): New.
2885 * opts.c (decode_options): Enable fwprop at -O1.
2886 * doc/invoke.texi (-fforward-propagate): Document this.
2887
2888 2009-05-08 Joseph Myers <joseph@codesourcery.com>
2889
2890 PR c/24581
2891 * c-typeck.c (build_binary_op): Handle arithmetic between one real
2892 and one complex operand specially.
2893 * tree-complex.c (some_nonzerop): Do not identify a real value as
2894 zero if flag_signed_zeros.
2895
2896 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
2897
2898 PR rtl-optimization/33928
2899 * loop-invariant.c (record_use): Fix && vs. || mishap.
2900
2901 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
2902
2903 PR rtl-optimization/33928
2904 * loop-invariant.c (struct use): Add addr_use_p.
2905 (struct def): Add n_addr_uses.
2906 (struct invariant): Add cheap_address.
2907 (create_new_invariant): Set cheap_address.
2908 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
2909 (record_uses): Pass df_ref to record_use.
2910 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
2911 used only as such.
2912
2913 2009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
2914
2915 * config/sh/sh.c: Do not include c-pragma.h.
2916
2917 2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
2918
2919 * config/spu/spu.c: Remove include of c-common.h.
2920
2921 2009-05-07 Janis Johnson <janis187@us.ibm.com>
2922
2923 PR c/39037
2924 * c-common.h (mark_valid_location_for_stdc_pragma,
2925 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
2926 clear_float_const_decimal64, float_const_decimal64_p): New.
2927 * c.opt (Wunsuffixed-float-constants): New.
2928 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
2929 unsuffixed float constant, handle new warning.
2930 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
2931 * c-decl.c (c_scope): New flag float_const_decimal64.
2932 (set_float_const_decimal64, clear_float_const_decimal64,
2933 float_const_decimal64_p): New.
2934 (push_scope): Set new flag.
2935 * c-parser.c (c_parser_translation_unit): Mark when it's valid
2936 to use STDC pragmas.
2937 (c_parser_external_declaration): Ditto.
2938 (c_parser_compound_statement_nostart): Ditto.
2939 * c-pragma.c (valid_location_for_stdc_pragma,
2940 mark_valid_location_for_stdc_pragma,
2941 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
2942 handle_pragma_float_const_decimal64): New.
2943 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
2944 * cp/semantics.c (valid_location_for_stdc_pragma_p,
2945 set_float_const_decimal64, clear_float_const_decimal64,
2946 float_const_decimal64_p): New dummy functions.
2947 * doc/extend.texi (Decimal Float): Remove statement that the
2948 pragma, and suffix for double constants, are not supported.
2949 * doc/invoke.texi (Warning Options): List new option.
2950 (-Wunsuffixed-float-constants): New.
2951
2952 2009-05-08 Steven Bosscher <steven@gcc.gnu.org>
2953
2954 * config/i386/i386.c: Do not include c-common.h.
2955
2956 2009-05-07 Mark Heffernan <meheff@google.com>
2957
2958 * doc/invoke.texi (Debugging Options): Document change of debugging
2959 dump location.
2960 * opts.c (decode_options): Make dump_base_name relative to
2961 aux_base_name directory.
2962
2963 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2964
2965 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
2966 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
2967
2968 2009-05-07 Rafael Avila de Espindola <espindola@google.com>
2969
2970 * Makefile.in (install-plugin): Simplify a bit.
2971
2972 2009-05-07 Paolo Bonzini <bonzini@gnu.org>
2973
2974 * Makefile.in (OBJS-common): Add regcprop.o.
2975 (regcprop.o): New.
2976 * timevar.def (TV_CPROP_REGISTERS): New.
2977 * regrename.c (regrename_optimize): Return 0.
2978 (rest_of_handle_regrename): Delete.
2979 (pass_rename_registers): Point to regrename_optimize.
2980 (struct value_data_entry, struct value_data,
2981 kill_value_one_regno, kill_value_regno, kill_value,
2982 set_value_regno, init_value_data, kill_clobbered_value,
2983 kill_set_value, kill_autoinc_value, copy_value,
2984 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
2985 replace_oldest_value_reg, replace_oldest_value_addr,
2986 replace_oldest_value_mem, copyprop_hardreg_forward_1,
2987 debug_value_data, validate_value_data): Move...
2988 * regcprop.c: ... here.
2989 (rest_of_handle_cprop): Delete.
2990 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
2991
2992 2009-05-07 Jakub Jelinek <jakub@redhat.com>
2993
2994 PR middle-end/40057
2995 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
2996 GEN_INT for 1 << bitnum.
2997 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
2998 build_int_cst_type.
2999
3000 2009-05-07 Uros Bizjak <ubizjak@gmail.com>
3001
3002 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
3003 Remove wrong description of "nand" operation.
3004
3005 2009-05-06 Richard Guenther <rguenther@suse.de>
3006 Adam Nemet <anemet@caviumnetworks.com>
3007
3008 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
3009 comment. Add that if LHS is not a gimple register, then RHS1 has
3010 to be a single object (GIMPLE_SINGLE_RHS).
3011
3012 2009-05-06 Adam Nemet <anemet@caviumnetworks.com>
3013
3014 * expr.c (get_def_for_expr): Move it up in the file.
3015 (store_field): When expanding a bit-field store, look at the
3016 defining gimple stmt for the masking conversion.
3017
3018 2009-05-06 Janis Johnson <janis187@us.ibm.com>
3019
3020 PR middle-end/39986
3021 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
3022 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
3023 32-bit memcpy into long.
3024
3025 2009-05-06 Jakub Jelinek <jakub@redhat.com>
3026
3027 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
3028 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
3029 new_reg_loc_descr.
3030 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
3031 instead of appending DW_OP_deref*.
3032
3033 2009-05-06 Michael Matz <matz@suse.de>
3034
3035 PR middle-end/40021
3036 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
3037 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
3038
3039 2009-05-06 Rafael Avila de Espindola <espindola@google.com>
3040
3041 * Makefile.in (install-plugin): Fix srcdir handling.
3042
3043 2009-05-06 Andrey Belevantsev <abel@ispras.ru>
3044
3045 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
3046 when processing for not_regs_needed bitmap.
3047 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
3048 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
3049 handling it for rhs.
3050
3051 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3052
3053 * config/i386/i386.md (unnamed inc/dec peephole): Use
3054 optimize_insn_for_size_p instead of optimize_size.
3055 * config/i386/predicates.md (incdec_operand): Likewise.
3056 (aligned_operand): Likewise.
3057 * config/i386/sse.md (divv8sf3): Likewise.
3058 (sqrtv8sf2): Likewise.
3059
3060 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3061
3062 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
3063
3064 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
3065
3066 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3067
3068 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
3069 ssemodesuffixf2c with avxmodesuffixf2c.
3070
3071 2009-05-06 Joseph Myers <joseph@codesourcery.com>
3072
3073 PR c/40032
3074 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
3075
3076 2009-05-05 Jakub Jelinek <jakub@redhat.com>
3077
3078 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
3079 (struct tree_base): Adjust spacing for 8 bit boundaries.
3080 (struct tree_decl_common): Add decl_by_reference_flag bit.
3081 (DECL_BY_REFERENCE): Adjust.
3082 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
3083 print DECL_BY_REFERENCE bit.
3084 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
3085 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
3086 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
3087 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
3088 unconditionally.
3089
3090 PR middle-end/39666
3091 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
3092 range of the type, but default label is missing, add it with one
3093 of the existing labels instead of adding a new label for it.
3094
3095 2009-05-05 Joseph Myers <joseph@codesourcery.com>
3096
3097 * dwarf.h: Remove.
3098
3099 2009-05-05 Rafael Avila de Espindola <espindola@google.com>
3100
3101 * Makefile.in (enable_plugin, plugin_includedir): New.
3102 (install): Depend on install-plugin.
3103 (PLUGIN_HEADERS): New.
3104 (install-plugin): New.
3105 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
3106
3107 2009-05-05 Richard Guenther <rguenther@suse.de>
3108
3109 PR tree-optimization/40022
3110 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
3111 the only vuse.
3112 (phivn_valid_p): Fix tuplification error, simplify.
3113 (phiprop_insert_phi): Add dumps.
3114 (propagate_with_phi): Simplify.
3115
3116 2009-05-05 Richard Guenther <rguenther@suse.de>
3117
3118 PR middle-end/40023
3119 * builtins.c (gimplify_va_arg_expr): Properly build the address.
3120
3121 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
3122
3123 * tree.h (strip_float_extensions): Remove duplicate declaration.
3124 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
3125 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
3126 block_ultimate_origin): Rearrange the declarations line to match the
3127 comment that indicates the .c file which the functions are defined.
3128 (dwarf2out_*, set_decl_rtl): Add comment.
3129 (get_base_address): Adjust comment.
3130 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
3131 declarations line and add comment.
3132 (is_builtin_name): Add blank after function name, for clarity.
3133
3134 2009-05-04 Joseph Myers <joseph@codesourcery.com>
3135
3136 * attribs.c (decl_attributes): Use %qE for identifiers in
3137 diagnostics.
3138 * cgraphunit.c (verify_cgraph_node): Translate function names to
3139 locale character set in diagnostics.
3140 * coverage.c (get_coverage_counts): Use %qE for identifiers in
3141 diagnostics.
3142 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
3143 Document that functions are named in UTF-8.
3144 * expr.c (expand_expr_real_1): Translate function names to locale
3145 character set in diagnostics.
3146 * gimplify.c (omp_notice_variable, omp_is_private,
3147 gimplify_scan_omp_clauses): Use %qE for identifiers in
3148 diagnostics.
3149 * langhooks.c (lhd_print_error_function): Translate function names
3150 to locale character set.
3151 * langhooks.h (decl_printable_name): Document that return value is
3152 in internal character set.
3153 * stmt.c: Include pretty-print.h
3154 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
3155 diagnostics.
3156 (resolve_operand_name_1): Translate named operand name to locale
3157 character set.
3158 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
3159 diagnostics.
3160 * toplev.c (announce_function): Translate function names to locale
3161 character set.
3162 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
3163 (default_tree_printer): Use pp_identifier or translate identifiers
3164 to locale character set. Mark "<anonymous>" for translation.
3165 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
3166 for identifiers in diagnostics.
3167 * tree.c (handle_dll_attribute): Use %qE for identifiers in
3168 diagnostics.
3169 * varasm.c (output_constructor): Use %qE for identifiers in
3170 diagnostics.
3171
3172 2009-05-04 Rafael Avila de Espindola <espindola@google.com>
3173
3174 * configure.ac: use ` ` instead of $()
3175 * configure: Regenerate.
3176
3177 2009-05-05 Ben Elliston <bje@au.ibm.com>
3178
3179 * config/pa/linux-atomic.c: Eliminate conditional include of
3180 errno.h on non-LP64 systems to simplify build requirements.
3181
3182 2009-05-04 Joseph Myers <joseph@codesourcery.com>
3183
3184 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
3185 diagnostics.
3186 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
3187 and pass value to identifier_to_locale.
3188 (warn_variable_length_array): Make name a tree.
3189 (grokdeclarator): Separate diagnostic texts for named and unnamed
3190 declarators. Use %qE for named declarators.
3191 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
3192 diagnostics.
3193 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
3194 identifiers in diagnostics.
3195 * c-typeck.c (push_member_name, start_init): Pass identifiers to
3196 identifier_to_locale. Mark "anonymous" strings for translation.
3197
3198 2009-05-04 Michael Eager <eager@eagercon.com>
3199
3200 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
3201 address for DImode/DFmode only if double-precision FP regs.
3202
3203 2009-05-04 Michael Eager <eager@eagercon.com>
3204
3205 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
3206 TARGET_SINGLE_FLOAT check.
3207
3208 2009-05-04 Michael Eager <eager@eagercon.com>
3209
3210 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
3211
3212 2009-05-04 Michael Eager <eager@eagercon.com>
3213
3214 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
3215 * config/rs6000/t-xilinx: New
3216
3217 2009-05-04 Paolo Bonzini <bonzini@gnu.org>
3218
3219 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
3220 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
3221 * gcc/explow.c (memory_address): Use target hook.
3222 * gcc/targhooks.c (default_legitimize_address): New.
3223 * gcc/targhooks.h (default_legitimize_address): New.
3224 * gcc/target.h (legitimize_address): New.
3225 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
3226 (TARGET_INITIALIZER): Include it.
3227 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
3228
3229 * config/bfin/bfin-protos.h (legitimize_address): Remove.
3230 * config/bfin/bfin.c (legitimize_address): Remove.
3231 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
3232 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
3233 Remove.
3234 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
3235 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
3236
3237 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
3238 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
3239 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
3240 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
3241 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
3242 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
3243 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
3244 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
3245 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
3246 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
3247 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
3248 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
3249 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
3250 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
3251 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
3252 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
3253 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
3254 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
3255 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
3256 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
3257 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
3258 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
3259 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
3260
3261 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
3262 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
3263 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
3264 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
3265 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
3266 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
3267 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
3268 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
3269 (thumb_legitimize_address): Delete.
3270 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
3271 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
3272 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
3273 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
3274 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
3275 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
3276 Delete.
3277 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
3278 Delete.
3279
3280 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
3281 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
3282 * config/m32r/m32r.c (m32r_legitimize_address): New.
3283 * config/m68k/m68k.c (m68k_legitimize_address): New.
3284 * config/score/score.c (score_legitimize_address): Standardize.
3285 * config/score/score3.c (score3_legitimize_address): Standardize.
3286 * config/score/score3.h (score3_legitimize_address): Adjust.
3287 * config/score/score7.c (score7_legitimize_address): Standardize.
3288 * config/score/score7.h (score7_legitimize_address): Adjust.
3289 * config/sh/sh.c (sh_legitimize_address): New.
3290 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
3291
3292 * gcc/config/s390/s390.c (legitimize_address): Rename to...
3293 (s390_legitimize_address): ... this.
3294 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
3295 (sparc_legitimize_address): ... this.
3296 * gcc/config/i386/i386.c (legitimize_address): Rename to...
3297 (ix86_legitimize_address): ... this.
3298 * gcc/config/avr/avr.c (legitimize_address): Rename to...
3299 (avr_legitimize_address): ... this.
3300 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
3301 (mn10300_legitimize_address): ... this.
3302 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
3303 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
3304 (alpha_expand_mov): Adjust call.
3305
3306 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
3307 * config/spu/spu.c (spu_legitimize_address): Likewise.
3308 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
3309 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
3310
3311 2009-05-04 Joseph Myers <joseph@codesourcery.com>
3312
3313 * intl.c (locale_encoding, locale_utf8): New.
3314 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
3315 * intl.h (locale_encoding, locale_utf8): Declare.
3316 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
3317 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
3318 New.
3319 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
3320 argument.
3321 (pp_tree_identifier): Define to call pp_base_tree_identifier.
3322 (pp_base_tree_identifier): Declare as function.
3323 (identifier_to_locale): Declare.
3324 * Makefile.in (pretty-print.o): Update dependencies.
3325 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
3326
3327 2009-05-04 Richard Guenther <rguenther@suse.de>
3328
3329 PR middle-end/40015
3330 * builtins.c (fold_builtin_memory_op): Do not decay to element
3331 type if the size matches the whole array.
3332
3333 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
3334
3335 * expmed.c (synth_mult): When trying out a shift, pass the result
3336 of a signed shift.
3337
3338 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
3339
3340 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
3341 (shiftsub1_cost): New.
3342 (init_expmed): Compute shiftsub1_cost.
3343 (synth_mult): Optimize multiplications by constants of the form
3344 -(2^^m-1) for some constant positive integer m.
3345
3346 2009-05-03 Richard Guenther <rguenther@suse.de>
3347
3348 PR c/39983
3349 * c-typeck.c (array_to_pointer_conversion): Do not built
3350 ADDR_EXPRs of arrays of pointer-to-element type.
3351 * c-gimplify.c (c_gimplify_expr): Revert change fixing
3352 up wrong ADDR_EXPRs after-the-fact.
3353 * c-common.c (strict_aliasing_warning): Strip pointer
3354 conversions for obtaining the original type.
3355 * builtins.c (fold_builtin_memset): Handle array types.
3356 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
3357 and array types
3358
3359 2009-05-03 Richard Guenther <rguenther@suse.de>
3360
3361 PR middle-end/23329
3362 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
3363 Do not lose casts from array types with unknown extent to array
3364 types with known extent.
3365 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
3366 alias set compatibility.
3367
3368 2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
3369
3370 * flags.h (extra_warnings): Delete.
3371 * toplev.c (process_options): Handle Wuninitialized here.
3372 * opts.c (extra_warnings): Delete.
3373 (set_Wextra): Delete.
3374 (common_handle_option): -Wextra can be handled automatically.
3375 * c-opts.c (c_common_handle_option): Delete obsolete code.
3376 (c_common_post_options): Simplify comment.
3377 * common.opt (W): Add Var.
3378 (Wextra): Add Var.
3379 (Wuninitialized): Initialize to -1.
3380
3381 2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
3382 Richard Guenther <rguenther@suse.de>
3383
3384 * expr.c (get_def_for_expr): New function.
3385 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
3386 SSA rather than trees.
3387 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
3388 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
3389
3390 2009-05-03 Joseph Myers <joseph@codesourcery.com>
3391
3392 * c-common.c (reswords): Add _Imaginary.
3393 * c-common.c (enum rid): Add RID_IMAGINARY.
3394
3395 2009-05-03 Paolo Bonzini <bonzini@gnu.org>
3396
3397 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
3398 Patch by Richard Guenther.
3399
3400 2009-05-03 Anatoly Sokolov <aesok@post.ru>
3401
3402 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
3403 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
3404 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
3405 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
3406 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
3407 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
3408 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
3409 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
3410 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
3411 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
3412 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
3413 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
3414 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
3415 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
3416 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
3417 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
3418 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
3419 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
3420
3421 2009-05-02 Richard Guenther <rguenther@suse.de>
3422
3423 PR tree-optimization/39940
3424 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
3425 doing so.
3426
3427 2009-05-02 Richard Guenther <rguenther@suse.de>
3428
3429 PR middle-end/40001
3430 * tree-ssa.c (execute_update_addresses_taken): Properly check
3431 if we can mark a variable DECL_GIMPLE_REG_P.
3432 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
3433 back to the end of the function.
3434 (is_gimple_reg_type): Remove complex type special casing.
3435 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
3436 if not optimizing.
3437
3438 2009-05-02 Ben Elliston <bje@au.ibm.com>
3439
3440 * doc/collect2.texi (Collect2): Document search path behaviour
3441 when configured with --with-ld.
3442
3443 2009-05-02 Jan Hubicka <jh@suse.cz>
3444
3445 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
3446 parameter; update callers.
3447 (coalesce_cost_edge): EH edges are costier because they needs
3448 splitting even if not critical and even more costier when there are
3449 multiple EH predecestors.
3450
3451 2009-05-02 Jan Hubicka <jh@suse.cz>
3452
3453 * except.c (remove_eh_handler_and_replace): Handle updating after
3454 removing TRY blocks.
3455
3456 2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
3457
3458 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
3459
3460 2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
3461
3462 * varasm.c: Do not include c-pragma.h.
3463 * attribs.c: Do not incude c-common.h.
3464
3465 2009-05-01 Michael Matz <matz@suse.de>
3466
3467 * calls.c (initialize_argument_information): Handle SSA names like
3468 decls with a non MEM_P DECL_RTL.
3469
3470 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
3471
3472 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
3473 * ipa-utils.c: Likewise.
3474 * ipa-type-escape.c: Likewise.
3475 * cgraphunit.c Do not include c-common.h.
3476 * ipa-pure-const.c: Likewise.
3477 * tree-if-conv.c: Likewise.
3478 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
3479 * ipa-struct-reorg.c: Likewise.
3480 * tree-nomudflap.c: Likewise.
3481 * tree-ssa-structalias.c: Likewise.
3482
3483 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
3484
3485 * store-motion.c: Many cleanups to make this pass a first-class
3486 citizen instead of an appendix to gcse load motion. Add TODO list
3487 to make this pass faster/cleaner/better.
3488
3489 (struct ls_expr): Post gcse.c-split cleanups.
3490 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
3491 "stores" field to "avail_stores".
3492 (pre_ldst_mems): Rename to store_motion_mems.
3493 (pre_ldst_table): Rename to store_motion_mems_table.
3494 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
3495 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
3496 (ldst_entry): Rename to st_expr_entry, update users.
3497 (free_ldst_entry): Rename to free_st_expr_entry, update users.
3498 (free_ldst_mems): Rename to free_store_motion_mems, update users.
3499 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
3500 update caller.
3501 (first_ls_expr): Rename to first_st_expr, update users.
3502 (next_ls_expr): Rename to next_st_expr, update users.
3503 (print_ldst_list): Rename to print_store_motion_mems. Print names of
3504 fields properly for store motion instead of names inherited from load
3505 motion in gcse.c.
3506 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
3507 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
3508 are done with it.
3509
3510 (ae_kill): Rename to st_kill, update users.
3511 (ae_gen): Rename to st_avloc, update users.
3512 (transp): Rename to st_transp, update users.
3513 (pre_insert_map): Rename to st_insert_map, update users.
3514 (pre_delete_map): Rename to st_delete_map, update users.
3515 (insert_store, build_store_vectors, free_store_memory,
3516 one_store_motion_pass): Update for abovementioned changes.
3517
3518 (gcse_subst_count, gcse_create_count): Remove.
3519 (one_store_motion_pass): New statistics counters "n_stores_deleted"
3520 and "n_stores_created", local variables.
3521
3522 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
3523 use for_each_rtx.
3524
3525 (regvec, compute_store_table_current_insn): Remove.
3526 (reg_set_info, reg_clear_last_set): Remove.
3527 (compute_store_table): Use DF caches instead of local dataflow
3528 solvers.
3529
3530 2009-05-01 Joseph Myers <joseph@codesourcery.com>
3531
3532 * c-objc-common.c (c_tree_printer): Print identifiers with
3533 pp_identifier, not pp_string. Mark "({anonymous})" for
3534 translation.
3535 * c-pretty-print.c (pp_c_ws_string): New.
3536 (pp_c_cv_qualifier, pp_c_type_specifier,
3537 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
3538 pp_c_storage_class_specifier, pp_c_function_specifier,
3539 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
3540 pp_c_primary_expression, pp_c_postfix_expression,
3541 pp_c_unary_expression, pp_c_shift_expression,
3542 pp_c_relational_expression, pp_c_equality_expression,
3543 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
3544 use pp_string and pp_c_ws_string in place of pp_identifier and
3545 pp_c_identifier for non-identifiers. Mark English strings for
3546 translation.
3547 * c-pretty-print.h (pp_c_ws_string): Declare.
3548
3549 2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
3550 Roland McGrath <roland@redhat.com>
3551
3552 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
3553 (ENABLE_LD_BUILDID): New configuration option.
3554 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
3555 (LINK_BUILDID_SPEC): New macro.
3556 (init_spec): If defined, prepend it between LINK_EH_SPEC and
3557 link_spec.
3558 * doc/install.texi: Document --enable-linker-build-id option.
3559 * configure: Rebuild.
3560 * config.in: Rebuild.
3561
3562 2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
3563
3564 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
3565 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
3566 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
3567 MIPS_GP_SAVE_AREA_SIZE.
3568 * config/mips/mips.c (struct mips_frame_info): Update comment
3569 before arg_pointer_offset and hard_frame_pointer_offset.
3570 (mips_compute_frame_info): Update diagram before function: to
3571 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
3572 indicate the position of frame_pointer_rtx with -fstack-protector and
3573 to show args_size. Don't allocate cprestore area for leaf functions
3574 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
3575 cprestore_size.
3576 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
3577
3578 2009-04-30 Michael Matz <matz@suse.de>
3579
3580 PR tree-optimization/39955
3581 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
3582
3583 2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
3584
3585 * ira.c (setup_cover_and_important_classes): Use safe macro
3586 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
3587 directly.
3588 * genpreds.c (write_tm_preds_h): Output suitable definition of
3589 REG_CLASS_FOR_CONSTRAINT.
3590
3591 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
3592
3593 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
3594 instead of an int.
3595 * bitmap.c (bitmap_descriptor): Likewise.
3596 * ggc-common.c (loc_descriptor): Likewise.
3597 * varray.c (varray_descriptor): Likewise.
3598 * vec.c (vec_descriptor): Likewise.
3599
3600 2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
3601
3602 * Makefile.in (dce.o): Add $(EXCEPT_H).
3603 * dce.c: Include except.h and delete redundant vector definitions.
3604 (deletable_insn_p): Return false for non-call insns that can throw
3605 if DF is running.
3606
3607 2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
3608
3609 * gcse.c (ae_gen): Remove.
3610 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
3611 and make non-static function to make it available in store-motion.c.
3612 Update call sites with search-and-replace.
3613 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
3614 extract_mentioned_regs, extract_mentioned_regs_helper,
3615 find_moveable_store, compute_store_table, load_kills_store, find_loads,
3616 store_killed_in_insn, store_killed_after, store_killed_before,
3617 build_store_vectors, insert_insn_start_basic_block, insert-store,
3618 remove_reachable_equiv_notes, replace_store_insn, delete_store,
3619 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
3620 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
3621 * store-motion.c: ...new file. Also copy data structures from gcse.c
3622 and clean up to remove parts not used by store motion.
3623 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
3624 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
3625
3626 2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3627
3628 PR target/38571
3629 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
3630 when optimizing for size.
3631
3632 2009-04-30 Hans-Peter Nilsson <hp@axis.com>
3633
3634 * gcse.c (gcse_constant_p): Fix typo in last change.
3635
3636 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
3637
3638 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
3639
3640 2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
3641
3642 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
3643
3644 2009-04-29 James E. Wilson <wilson@codesourcery.com>
3645
3646 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
3647 CONST_HIGH_PART result.
3648
3649 2009-04-29 Anatoly Sokolov <aesok@post.ru>
3650
3651 * config/avr/avr.c (initial_elimination_offset): Rename to
3652 avr_initial_elimination_offset.
3653 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
3654 change return type to bool.
3655 (avr_can_eliminate): New function.
3656 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
3657 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
3658 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
3659 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
3660 avr_initial_elimination_offset.
3661 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
3662 (avr_initial_elimination_offset): Define.
3663
3664 2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
3665 Steven Bosscher <steven@gcc.gnu.org>
3666
3667 PR rtl-optimization/39938
3668 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
3669 * cfgrtl.c: Include insn-attr.h.
3670 (rest_of_pass_free_cfg): New function.
3671 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
3672 * resource.c (init_resource_info): Remove call to df_analyze.
3673
3674 2009-04-29 Richard Guenther <rguenther@suse.de>
3675
3676 PR target/39943
3677 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
3678 allow conversion to signed integers.
3679
3680 2009-04-29 Richard Guenther <rguenther@suse.de>
3681
3682 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
3683 shifts of floating point vectors if the shift amount is
3684 a constant multiple of the element size.
3685
3686 2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
3687 Michael Matz <matz@suse.de>
3688
3689 PR middle-end/39927
3690 PR bootstrap/39929
3691 * tree-outof-ssa.c (emit_partition_copy): New function.
3692 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
3693 insert_part_to_rtx_on_edge): Perform the partition base var
3694 copy using emit_partition_copy.
3695 (insert_value_copy_on_edge): Convert constants to the right mode.
3696 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
3697 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
3698
3699 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3700
3701 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
3702 scan backwards to try to find a constant to initialize it.
3703
3704 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
3705 insn before the loop_end instruction, don't look past labels.
3706
3707 2009-04-29 Richard Guenther <rguenther@suse.de>
3708
3709 PR middle-end/39937
3710 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
3711 loose type conversions.
3712 (forward_propagate_addr_expr): Fix tuplification bug. Remove
3713 stmts only if there are no uses of its definition.
3714
3715 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3716
3717 * config/bfin/bfin.h (splitting_loops): Declare.
3718 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
3719 Reorder bit definitions to be ascending.
3720 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
3721 * config/bfin/bfin.c (splitting_loops): New variable.
3722 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
3723 (struct loop_info): Remove members INIT and LOOP_INIT.
3724 (bfin_optimize_loop): Don't set them. Reorder the code that generates
3725 the LSETUP sequence. Allow LC to be loaded from any register, but
3726 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
3727 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
3728 set to 1.
3729 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
3730 of reload_completed.
3731
3732 From Jie Zhang:
3733 * config/bfin/bfin.md (movsi_insn): Refine constraints.
3734
3735 2009-04-29 Rafael Avila de Espindola <espindola@google.com>
3736
3737 * Makefile.in (PLUGIN_VERSION_H): New.
3738 (OBJS-common): Remove plugin-version.o.
3739 (plugin.o): Depend on (PLUGIN_VERSION_H).
3740 (plugin-version.o): Remove.
3741 * configure: Regenerate
3742 * configure.ac: Create plugin-version.h.
3743 * gcc-plugin.h (plugin_gcc_version): Remove.
3744 (plugin_default_version_check): Change signature.
3745 * plugin-version.c: Remove.
3746 * plugin.c: Include plugin-version.h.
3747 (str_plugin_gcc_version_name): Remove.
3748 (try_init_one_plugin): Pass gcc version to plugin_init.
3749 (plugin_default_version_check): Both gcc and plugin versions are now
3750 arguments.
3751
3752 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3753
3754 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
3755 problematic last insns. Test for TYPE_CALL rather than CALL_P.
3756 Remove special case testing for last insn of inner loops. Don't fail
3757 if the loop ends with a jump, emit an extra nop instead.
3758
3759 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
3760 DREGS rather than comparing directly. Remove code that tries to
3761 account for latencies.
3762
3763 2009-04-29 Richard Guenther <rguenther@suse.de>
3764
3765 PR tree-optimization/39941
3766 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
3767 eliminating an indirect call.
3768
3769 2009-04-29 Richard Guenther <rguenther@suse.de>
3770
3771 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
3772 parameter. Allow invariants as base if !require_lvalue.
3773 (verify_gimple_assign_single): Adjust.
3774
3775 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3776
3777 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
3778 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
3779 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
3780 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
3781 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
3782 a VEC_SELECT.
3783 * config/bfin/bfin.c (bfin_expand_builtin,
3784 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
3785
3786 2009-04-28 Richard Guenther <rguenther@suse.de>
3787
3788 * tree-vect-loop.c (get_initial_def_for_induction): Use
3789 correct types for pointer increment.
3790
3791 2009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3792
3793 * toplev.c (print_version): Update GMP version string calculation.
3794
3795 2009-04-28 Eric Botcazou <ebotcazou@adacore.com>
3796
3797 PR rtl-optimization/39938
3798 * resource.c (init_resource_info): Add call to df_analyze.
3799
3800 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
3801
3802 * config/alpha/alpha.md (usegp): Cast the result of
3803 alpha_find_lo_sum_using_gp to enum attr_usegp.
3804 * config/alpha/alpha.c (override_options): Remove end-of-structure
3805 marker element from cpu_table. Use array size of cpu_table to handle
3806 -mcpu and -mtune options.
3807 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
3808
3809 2009-04-28 Joseph Myers <joseph@codesourcery.com>
3810
3811 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
3812 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
3813 tune_32 and tune_64.
3814 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3815 support on PowerPC.
3816 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
3817 * config/rs6000/option-defaults.h: ... here. New file.
3818 (OPT_64, OPT_32): Define.
3819 (MASK_64BIT): Define to 0 if not already defined.
3820 (OPT_ARCH64, OPT_ARCH32): Define.
3821 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
3822 and tune_64.
3823
3824 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3825
3826 * config/arm/arm.c (arm_override_options): Emit error on using
3827 fpa with AAPCS.
3828
3829 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
3830
3831 PR rtl-optimization/39914
3832 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3833 registers for allocnos created from user-defined variables only
3834 when not optimizing.
3835
3836 2009-04-28 Richard Guenther <rguenther@suse.de>
3837
3838 PR middle-end/39937
3839 * fold-const.c (fold_binary): Use distribute_real_division only
3840 on float types.
3841
3842 2009-04-28 Steve Ellcey <sje@cup.hp.com>
3843
3844 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
3845 add hpux-stdint.h to tm_file.
3846 (hppa[12]*-*-hpux11*): Ditto.
3847 (ia64*-*-hpux*): Ditto.
3848 * config/hpux-stdint.h: New.
3849 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
3850 __STDC_EXT__ for all compiles.
3851 * config/pa/pa-hpux.h: Ditto.
3852 * config/pa/pa-hpux10.h: Ditto.
3853 * config/pa/pa-hpux11.h: Ditto.
3854
3855 2009-04-28 Catherine Moore <clm@codesourcery.com>
3856
3857 * debug.h (set_name): Add comment.
3858
3859 2009-04-28 Andrew Pinski <pinskia@gmail.com>
3860
3861 PR target/39929
3862 * config/darwin.c (machopic_gen_offset): Check
3863 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
3864 * config/arm/arm.c (require_pic_register): Likewise.
3865
3866 2009-04-28 Paolo Bonzini <bonzini@gnu.org>
3867
3868 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
3869 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
3870 m32c_promote_prototypes): Delete.
3871
3872 2009-04-28 Michael Matz <matz@suse.de>
3873
3874 PR middle-end/39922
3875 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
3876 constants.
3877
3878 2009-04-28 Richard Guenther <rguenther@suse.de>
3879
3880 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
3881
3882 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3883
3884 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
3885 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
3886 * config/arm/arm-tune.md: Regenerate.
3887
3888 2009-04-28 Alexander Monakov <amonakov@ispras.ru>
3889
3890 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
3891 block if there are complex incoming edges.
3892 (sel_merge_blocks): Remove useless assert.
3893 (sel_redirect_edge_and_branch): Check that edge was redirected.
3894 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
3895 (sel_find_rgns): Delete declaration.
3896 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
3897 the region when it is not a preheader.
3898
3899 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
3900
3901 PR c/39323
3902 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
3903
3904 2009-04-28 Richard Guenther <rguenther@suse.de>
3905
3906 * tree.h (SSA_NAME_VALUE): Remove.
3907 (struct tree_ssa_name): Remove value_handle member.
3908 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
3909 array for jump threading.
3910 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
3911 SSA_NAME_VALUEs.
3912 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
3913 * tree-flow.h (threadedge_initialize_values): Declare.
3914 (threadedge_finalize_values): Likewise.
3915 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
3916 (SSA_NAME_VALUE): Define.
3917 (threadedge_initialize_values): New function.
3918 (threadedge_finalize_values): Likewise.
3919 * tree-ssa-dom.c (ssa_name_values): New global variable.
3920 (SSA_NAME_VALUE): Define.
3921 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
3922
3923 2009-04-28 Ira Rosen <irar@il.ibm.com>
3924
3925 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
3926 Use REPORT_VECTORIZED_LOCATIONS instead
3927 REPORT_VECTORIZED_LOOPS.
3928 * tree-vectorizer.c (vect_verbosity_level): Make static.
3929 (vect_loop_location): Rename to vect_location.
3930 (vect_set_verbosity_level): Update comment.
3931 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
3932 and vect_location.
3933 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
3934 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
3935 instead REPORT_UNVECTORIZED_LOOPS.
3936 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
3937 and vect_loop_def to vect_external_def and vect_internal_def.
3938 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
3939 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
3940 REPORT_UNVECTORIZED_LOCATIONS.
3941 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
3942 and vect_used_in_loop and to vect_unused_in_scope and
3943 vect_used_in_scope.
3944 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
3945 (vect_verbosity_level): Remove declaration.
3946 (vect_analyze_operations): Likewise.
3947 (vect_analyze_stmt): Declare.
3948 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
3949 REPORT_UNVECTORIZED_LOCATIONS.
3950 (vect_get_loop_niters): Fix indentation.
3951 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
3952 (vect_analyze_loop_operations): New function.
3953 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
3954 vect_analyze_operations.
3955 (vect_is_simple_reduction): Use new names.
3956 (vectorizable_live_operation, vect_transform_loop): Likewise.
3957 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
3958 to specify whether the data references can be a part of interleaving
3959 chain.
3960 (vect_analyze_data_ref_dependence): Use new names.
3961 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
3962 (vect_create_addr_base_for_vector_ref): Remove redundant code.
3963 * tree-vect-patterns.c (widened_name_p): Use new names.
3964 (vect_recog_dot_prod_pattern): Likewise.
3965 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
3966 (process_use, vect_mark_stmts_to_be_vectorized,
3967 vect_model_simple_cost, vect_model_store_cost,
3968 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
3969 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
3970 vectorizable_operation, vectorizable_type_demotion,
3971 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
3972 vectorizable_condition): Likewise.
3973 (vect_analyze_operations): Split into vect_analyze_loop_operations
3974 and ...
3975 (vect_analyze_stmt): ... new function.
3976 (new_stmt_vec_info): Use new names.
3977 (vect_is_simple_use): Use new names and fix comment.
3978 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
3979 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
3980
3981 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
3982
3983 PR target/39911
3984 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
3985 and integer modes for x87 operands. Do not ICE for unsupported size,
3986 generate error instead. Generate error for unsupported operand types.
3987 ['z']: Do not handle HImode memory operands specially. Warning
3988 for floating-point operands. Fallthru to 'Z' for unsupported operand
3989 types. Do not ICE for unsupported size, generate error instead.
3990 (output_387_binary_op): Use %Z to output operands.
3991 (output_fp_compare): Ditto.
3992 (output_387_reg_move): Ditto.
3993
3994 2009-04-28 Ben Elliston <bje@au.ibm.com>
3995
3996 PR c++/35652
3997 Revert:
3998
3999 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4000
4001 * builtins.c (c_strlen): Do not warn here.
4002 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
4003 * c-common.c (pointer_int_sum): Take an explicit location.
4004 Warn about offsets out of bounds.
4005 * c-common.h (pointer_int_sum): Adjust declaration.
4006
4007 2009-04-27 Ian Lance Taylor <iant@google.com>
4008
4009 * collect2.c (is_ctor_dtor): Change type of ret field in struct
4010 names to symkind.
4011 * dce.c (run_fast_df_dce): Change type of old_flags to int.
4012 * df-core.c (df_set_flags): Change return type to int. Change
4013 type of old_flags to int.
4014 (df_clear_flags): Likewise.
4015 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
4016 (df_get_conditional_uses): Likewise.
4017 * df.h (df_set_flags, df_clear_flags): Update declarations.
4018 * dwarf2out.c (struct indirect_string_node): Change type of form
4019 field to enum dwarf_form.
4020 (AT_string_form): Change return type to enum dwarf_form.
4021 * fixed-value.c (fixed_compare): Add cast to enum type.
4022 * fwprop.c (update_df): Change 0 to VOIDmode.
4023 * gensupport.c: Change 0 to UNKNOWN.
4024 * gimple.h (gimple_cond_code): Add cast to enum type.
4025 * haifa-sched.c (reemit_notes): Add cast to enum type.
4026 * hooks.c (hook_int_void_no_regs): Remove function.
4027 * hooks.h (hook_int_void_no_regs): Remove declaration.
4028 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
4029 * predict.c (combine_predictions_for_insn): Add casts to enum type.
4030 * real.c (real_arithmetic): Add cast to enum type.
4031 (real_compare): Likewise.
4032 * target.h (struct gcc_target): Change return type of
4033 branch_target_register_class to enum reg_class.
4034 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
4035 default_branch_target_register_class.
4036 * targhooks.c (default_branch_target_register_class): New function.
4037 * targhooks.h (default_branch_target_register_class): Declare.
4038 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
4039 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
4040 cast to int.
4041 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
4042 ERROR_MARK.
4043 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
4044 vect_uninitialized_def. Change 0 to ERROR_MARK.
4045 * tree-vect-stmts.c (supportable_widening_operation): Don't
4046 initialize icode1 and icode2.
4047 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
4048 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
4049 and to STD_C89.
4050 (cmn_err_flag_specs): Change 0 to STD_C89.
4051 (cmn_err_char_table): Likewise.
4052 * config/arm/arm.c (get_arm_condition_code): Change type of code
4053 to enum arm_cond_code.
4054 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
4055 (IWMMXT_BUILTIN2): Likewise.
4056 (neon_builtin_type_bits): Don't define typedef.
4057 (neon_builtin_datum): Change type of bits field to int.
4058 (arm_expand_neon_args): Add cast to enum type.
4059 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
4060 TLS_MODEL_NONE.
4061 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
4062 casts to enum type.
4063 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
4064 MIPS_FP_COND_f.
4065 * config/mips/mips.md (jal_macro): Return enum constant.
4066 (single_insn): Likewise.
4067 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
4068 CODE_FOR_nothing.
4069 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4070 casts to enum type.
4071 * config/s390/s390.c (s390_tune_flags): Change type to int.
4072 (s390_arch_flags): Likewise.
4073 (s390_handle_arch_option): Change flags field of struct pta to int.
4074 * config/s390/s390.h (s390_tune_flags): Update declaration.
4075 (s390_arch_flags): Likewise.
4076 * config/sh/sh.c (prepare_move_operands): Compare
4077 tls_symbolic_operand result with enum constant.
4078 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
4079 (sh_expand_prologue): Add cast to enum type.
4080 (sh_expand_epilogue): Likewise.
4081 (tls_symbolic_operand): Change return type to enum tls_model.
4082 (fpscr_set_from_mem): Add cast to enum type.
4083 (legitimize_pic_address): Compare tls_symbolic_operand result with
4084 enum constant.
4085 (sh_target_reg_class): Change return type to enum reg_class.
4086 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
4087 PROCESSOR_xxx.
4088 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
4089 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
4090 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
4091 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
4092 (delayed_branch, tls_call_delay): Likewise.
4093 (eligible_for_sibcall_delay): Likewise.
4094 (eligible_for_return_delay): Likewise.
4095 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
4096 (spu_expand_builtin_1): Likewise.
4097
4098 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
4099 for all types of conversions.
4100 (output_init_element): Issue -Wc++-compat warning if needed when
4101 initializing a bitfield with enum type.
4102 * c-parser.c (c_parser_expression): Set original_type to
4103 original_type of right hand operand of comman operator.
4104
4105 2009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4106
4107 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
4108 grammar nits.
4109 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
4110 * doc/cpp.texi (Standard Predefined Macros)
4111 (Implementation-defined behavior): Likewise.
4112 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
4113 * doc/gimple.texi (GIMPLE Exception Handling)
4114 (@code{GIMPLE_ASSIGN}): Likewise.
4115 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
4116 * doc/invoke.texi (Warning Options, Optimize Options)
4117 (AVR Options, Darwin Options): Likewise.
4118 (Optimize Options): Reformulate -fwhole-program description.
4119 * doc/loop.texi (Lambda): Likewise.
4120 * doc/md.texi (Output Template, Define Constraints)
4121 (Standard Names, Insn Splitting): Likewise.
4122 * doc/options.texi (Option properties): Likewise.
4123 * doc/passes.texi (Tree-SSA passes): Likewise.
4124 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
4125 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
4126 (File Names and DBX): Likewise.
4127 * doc/trouble.texi (Incompatibilities): Likewise.
4128
4129 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
4130
4131 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
4132 instruction is correct.
4133
4134 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
4135
4136 Allow non-constant arguments to conversion intrinsics.
4137 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
4138 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
4139 * spu.c (print_operand): Handle 'v' and 'w'.
4140 (exp2_immediate_p, spu_gen_exp2): Define.
4141 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
4142 spu_convtf_1): Update parameter descriptions.
4143 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
4144 * constraints.md ('v', 'w'): New.
4145 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
4146 Remove.
4147 (i2f, I2F): New define_mode_attr.
4148 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
4149 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
4150 fixuns_truncv4sfv4si2): Update to use mode attribute.
4151 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
4152 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
4153 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
4154 patterns for combine.
4155
4156 2009-04-27 Steven Bosscher <steven@gcc.gnu.org>
4157
4158 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
4159 (cprop, hoist, pre, store_motion): New debug counters.
4160 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
4161 is not an RTL pass anymore.
4162 (pass_profiling): Remove extern decl for pass removed in 2005.
4163 (pass_gcse, pass_jump_bypass): Remove.
4164 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
4165 to 0 for clean state.
4166 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
4167 * cse.c (gate_handle_cse_after_global_opts,
4168 rest_of_handle_cse_after_global_opts): New functions.
4169 (pass_cse_after_global_opts): New pass, does local CSE.
4170 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
4171 (TV_CPROP): New timevar.
4172 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
4173 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
4174 (gcse_main, recompute_all_luids): Remove.
4175 (compute_hash_table_work): Call max_reg_num instead of reading
4176 max_gcse_regno.
4177 (cprop_jump): Don't set run_jump_opt_after_gcse.
4178 (constprop_register): Always allow to alter jumps.
4179 (cprop_insn): Likewise.
4180 (do_local_cprop): Likewise.
4181 (local_cprop_pass): Likewise. Return non-zero if something changed.
4182 (cprop): Remove function, fold interesting bits into one_cprop_pass.
4183 (find_implicit_sets): Add note about missed optimization opportunity.
4184 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
4185 pass_rtl_cprop execute function.
4186 Don't bother tracking the pass number, each pass gets its own dumpfile
4187 now anyway.
4188 Always allow to alter jumpsand bypass jumps.
4189 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
4190 will just find no suitable set.
4191 (pre_edge_insert): Fix dumping, this function is for PRE only.
4192 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
4193 pass_rtl_pre execute function.
4194 (hoist_code): Return non-zero if something changed. Keep track of
4195 substitutions and insertions for statistics gathering similar to PRE.
4196 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
4197 called from the pass_rtl_hoist execute function. Show pass statistics.
4198 (compute_store_table): Use max_reg_num directly instead of using the
4199 formerly global max_gcse_regno.
4200 (build_store_vectors): Likewise.
4201 (replace_store_insn): Fix dumping.
4202 (store_motion): Rename to ...
4203 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
4204 pass, called from the pass_rtl_store_motion execute function. Keep
4205 track of substitutions and insertions for statistics gathering similar
4206 to PRE.
4207 (bypass_jumps): Remove, fold interesting bits into ...
4208 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
4209 from the pass_rtl_cprop execute function.
4210 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
4211 pass_jump_bypass): Remove.
4212 (gate_handle_gcse, rest_of_handle_gcse): Remove.
4213 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
4214 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
4215 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
4216 (gate_rtl_store_motion, execute_rtl_store_motion,
4217 pass_rtl_store_motion): New.
4218 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
4219 make it clear that -fcse-skip-blocks is a no-op for backward compat.
4220 * passes.c (init_optimization_passes): Remove pass_gcse and
4221 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
4222 and cse_after_global_opts in place of pass_gcse. Schedule cprop
4223 instead of pass_jump_bypass.
4224
4225 2009-04-27 Richard Guenther <rguenther@suse.de>
4226
4227 PR middle-end/39928
4228 * gimplify.c (gimplify_expr): If we are required to create
4229 a temporary make sure it ends up as register.
4230
4231 2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
4232
4233 PR target/39903
4234 * config/i386/i386.c (construct_container): Don't call
4235 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
4236 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
4237
4238 2009-04-27 Michael Matz <matz@suse.de>
4239
4240 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
4241 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
4242 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
4243 (dump_replaceable_exprs): Take a bitmap.
4244 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
4245 array.
4246 (expand_gimple_basic_block): Likewise.
4247 * tree-ssa-ter.c (struct temp_expr_table_d): Make
4248 replaceable_expressions member a bitmap.
4249 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
4250 (mark_replaceable): Likewise.
4251 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
4252 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
4253
4254 2009-04-27 Richard Guenther <rguenther@suse.de>
4255
4256 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
4257 (verify_stmts): Dispatch to gimple/type verification code.
4258 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
4259 issue with call argument types.
4260
4261 2009-04-27 Michael Matz <matz@suse.de>
4262
4263 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
4264 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
4265 to above.
4266
4267 2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
4268 Eric Botcazou <ebotcazou@adacore.com>
4269
4270 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
4271 a label's basic block.
4272 (mark_target_live_regs): Tidy and rework obsolete comments.
4273 Change back DF problem to LIVE. If a label starts a basic block,
4274 assume that all registers that used to be live then still are.
4275 (init_resource_info): If a label starts a basic block, set its
4276 BLOCK_FOR_INSN accordingly.
4277 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
4278
4279 2009-04-27 Richard Guenther <rguenther@suse.de>
4280
4281 * tree-flow-inline.h (function_ann): Remove.
4282 (get_function_ann): Likewise.
4283 * tree-dfa.c (create_function_ann): Remove.
4284 * tree-flow.h (struct static_var_ann_d): Remove.
4285 (struct function_ann_d): Likewise.
4286 (union tree_ann_d): Remove fdecl member.
4287 (function_ann_t): Remove.
4288 (function_ann, get_function_ann, create_function_ann): Remove
4289 declarations.
4290
4291 2009-04-27 Uros Bizjak <ubizjak@gmail.com>
4292
4293 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
4294
4295 2009-04-27 Jan Hubicka <jh@suse.cz>
4296
4297 * ipa-pure-const.c (struct funct_state_d): New fields
4298 state_previously_known, looping_previously_known; remove
4299 state_set_in_source.
4300 (analyze_function): Use new fields.
4301 (propagate): Avoid assumption that state_set_in_source imply
4302 nonlooping.
4303
4304 * tree-ssa-loop-niter.c (finite_loop_p): New function.
4305 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
4306 * cfgloop.h (finite_loop_p): Declare.
4307
4308 2009-04-26 Michael Matz <matz@suse.de>
4309
4310 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
4311
4312 2009-04-26 Michael Matz <matz@suse.de>
4313
4314 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
4315 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
4316 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
4317 pass_mark_used_blocks): Remove.
4318 * tree-optimize.c (pass_free_datastructures,
4319 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
4320 * passes.c (init_optimization_passes): Don't call
4321 pass_mark_used_blocks, remove dead code.
4322
4323 2009-04-26 H.J. Lu <hongjiu.lu@intel.com>
4324
4325 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
4326 * tree-ssa-live.h (register_ssa_partition): Likewise.
4327
4328 2009-04-26 Michael Matz <matz@suse.de>
4329
4330 Expand from SSA.
4331 * builtins.c (fold_builtin_next_arg): Handle SSA names.
4332 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
4333 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
4334 SSA names.
4335 (compare_pairs): Swap cost comparison.
4336 (coalesce_ssa_name): Don't use change_partition_var.
4337 * tree-nrv.c (struct nrv_data): Add modified member.
4338 (finalize_nrv_r): Set it.
4339 (tree_nrv): Use it to update statements.
4340 (pass_nrv): Require PROP_ssa.
4341 * tree-mudflap.c (mf_decl_cache_locals,
4342 mf_build_check_statement_for): Use make_rename_temp.
4343 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
4344 * alias.c (find_base_decl): Handle SSA names.
4345 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
4346 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
4347 * rtl.h (set_reg_attrs_for_parm): Declare.
4348 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
4349 to "optimized", remove unused locals at finish.
4350 (execute_free_datastructures): Make global, call
4351 delete_tree_cfg_annotations.
4352 (execute_free_cfg_annotations): Don't call
4353 delete_tree_cfg_annotations.
4354
4355 * ssaexpand.h: New file.
4356 * expr.c (toplevel): Include ssaexpand.h.
4357 (expand_assignment): Handle SSA names the same as register variables.
4358 (expand_expr_real_1): Expand SSA names.
4359 * cfgexpand.c (toplevel): Include ssaexpand.h.
4360 (SA): New global variable.
4361 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
4362 (SSAVAR): New macro.
4363 (set_rtl): New helper function.
4364 (add_stack_var): Deal with SSA names, use set_rtl.
4365 (expand_one_stack_var_at): Likewise.
4366 (expand_one_stack_var): Deal with SSA names.
4367 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
4368 before unique numbers.
4369 (expand_stack_vars): Use set_rtl.
4370 (expand_one_var): Accept SSA names, add asserts for them, feed them
4371 to above subroutines.
4372 (expand_used_vars): Expand all partitions (without default defs),
4373 then only the local decls (ignoring those expanded already).
4374 (expand_gimple_cond): Remove edges when jumpif() expands an
4375 unconditional jump.
4376 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
4377 or remove abnormal edges. Ignore insns setting the LHS of a TERed
4378 SSA name.
4379 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
4380 members of SA; deal with PARM_DECL partitions here; expand
4381 all PHI nodes, free tree datastructures and SA. Commit instructions
4382 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
4383 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
4384 info and statements at start, collect garbage at finish.
4385 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
4386 (VAR_ANN_PARTITION) Remove.
4387 (change_partition_var): Don't declare.
4388 (partition_to_var): Always return SSA names.
4389 (var_to_partition): Only accept SSA names.
4390 (register_ssa_partition): Only check argument.
4391 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
4392 member.
4393 (delete_var_map): Don't free it.
4394 (var_union): Only accept SSA names, simplify.
4395 (partition_view_init): Mark only useful SSA names as used.
4396 (partition_view_fini): Only deal with SSA names.
4397 (change_partition_var): Remove.
4398 (dump_var_map): Use ssa_name instead of partition_to_var member.
4399 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
4400 basic blocks.
4401 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
4402 (struct _elim_graph): New member const_dests; nodes member vector of
4403 ints.
4404 (set_location_for_edge): New static helper.
4405 (create_temp): Remove.
4406 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
4407 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4408 (new_elim_graph): Allocate const_dests member.
4409 (clean_elim_graph): Truncate const_dests member.
4410 (delete_elim_graph): Free const_dests member.
4411 (elim_graph_size): Adapt to new type of nodes member.
4412 (elim_graph_add_node): Likewise.
4413 (eliminate_name): Likewise.
4414 (eliminate_build): Don't take basic block argument, deal only with
4415 partition numbers, not variables.
4416 (get_temp_reg): New static helper.
4417 (elim_create): Use it, deal with RTL temporaries instead of trees.
4418 (eliminate_phi): Adjust all calls to new signature.
4419 (assign_vars, replace_use_variable, replace_def_variable): Remove.
4420 (rewrite_trees): Only do checking.
4421 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
4422 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
4423 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
4424 contains_tree_r, MAX_STMTS_IN_LATCH,
4425 process_single_block_loop_latch, analyze_edges_for_bb,
4426 perform_edge_inserts): Remove.
4427 (expand_phi_nodes): New global function.
4428 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
4429 functions, initialize new parameter, remember partitions having a
4430 default def.
4431 (finish_out_of_ssa): New global function.
4432 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
4433 don't reset in_ssa_p here, don't disable TER when mudflap.
4434 (pass_del_ssa): Remove.
4435 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
4436 partition members.
4437 (execute_free_datastructures): Declare.
4438 * Makefile.in (SSAEXPAND_H): New variable.
4439 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
4440 * basic-block.h (commit_one_edge_insertion): Declare.
4441 * passes.c (init_optimization_passes): Move pass_nrv and
4442 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
4443 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
4444 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
4445 (redirect_branch_edge): Deal with super block when expanding, split
4446 out jump patching itself into ...
4447 (patch_jump_insn): ... here, new static helper.
4448
4449 2009-04-26 Michael Matz <matz@suse.de>
4450
4451 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
4452 beyond num_ssa_names.
4453 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
4454 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
4455
4456 2009-04-26 Jakub Jelinek <jakub@redhat.com>
4457
4458 PR inline-asm/39543
4459 * fwprop.c (forward_propagate_asm): New function.
4460 (forward_propagate_and_simplify): Propagate also into __asm, if it
4461 doesn't increase the number of referenced registers.
4462
4463 PR c/39889
4464 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
4465
4466 2009-04-26 Jakub Jelinek <jakub@redhat.com>
4467
4468 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
4469 note_nonlocal_vla_type for nonlocal VLAs.
4470 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
4471 contains_remapped_vars, remap_vla_decls): New functions.
4472 (convert_nonlocal_reference_stmt): If not optimizing, call
4473 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
4474 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
4475 if it wasn't found in var_map.
4476 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
4477 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
4478 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
4479 declare_vars.
4480 * gimplify.c (nonlocal_vlas): New variable.
4481 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
4482 referenced VLAs.
4483 (gimplify_body): Create and destroy nonlocal_vlas.
4484
4485 * dwarf2out.c (loc_descr_plus_const): New function.
4486 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
4487 mem_loc_descriptor, loc_descriptor_from_tree_1,
4488 descr_info_loc, gen_variable_die): Use it.
4489
4490 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
4491 !TREE_STATIC VAR_DECLs.
4492 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
4493 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
4494 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
4495 DECL_BY_REFERENCE is valid.
4496 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
4497 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
4498 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
4499 Copy DECL_BY_REFERENCE.
4500 (struct nesting_copy_body_data): New type.
4501 (nesting_copy_decl): New function.
4502 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
4503 if they have variable length.
4504
4505 2009-04-26 Michael Matz <matz@suse.de>
4506
4507 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
4508 mark new temporaries for renaming.
4509
4510 2009-04-26 Joseph Myers <joseph@codesourcery.com>
4511
4512 PR c/39581
4513 * c-decl.c (global_bindings_p): Return negative value.
4514 (c_variable_size): New. Based on variable_size from
4515 stor-layout.c.
4516 (grokdeclarator): Call c_variable_size not variable_size.
4517
4518 2009-04-26 Uros Bizjak <ubizjak@gmail.com>
4519
4520 * config/i386/i386.c (print_operand) ['z']: Fix typo.
4521
4522 2009-04-26 Kai Tietz <kai.tietz@onevision.com>
4523
4524 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
4525 Redefine it to just use mingw/include.
4526 (ASM_SPEC): Rules for -m32 and -m64.
4527 (LINK_SPEC): Use Likewise.
4528 (SPEC_32): New define.
4529 (SPEC_64): Likewise.
4530 (SUB_LINK_SPEC): Likewise.
4531 (MULTILIB_DEFAULTS): New define.
4532 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
4533 Add multilib options.
4534 (MULTILIB_DIRNAMES): Likewise.
4535 (MULTILIB_OSDIRNAMES): Likewise.
4536 (LIBGCC): Likewise.
4537 (INSTALL_LIBGCC): Likewise.
4538
4539 2009-04-26 Joseph Myers <joseph@codesourcery.com>
4540
4541 PR c/39556
4542 * c-tree.h (enum c_inline_static_type): New.
4543 (record_inline_static): Declare.
4544 * c-decl.c (struct c_inline_static, c_inline_statics,
4545 record_inline_static, check_inline_statics): New.
4546 (pop_file_scope): Call check_inline_statics.
4547 (start_decl): Call record_inline_static instead of pedwarning
4548 directly for static in inline function.
4549 * c-typeck.c (build_external_ref): Call record_inline_static
4550 instead of pedwarning directly for static referenced in inline
4551 function.
4552
4553 2009-04-26 Steven Bosscher <steven@gcc.gnu.org>
4554
4555 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
4556 not new but only being rescanned.
4557 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
4558 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
4559 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
4560 record_set_info, compute_set, grealloc): Remove.
4561 (recompute_all_luids): New function.
4562 (gcse_main): Don't compute sets, and don't do related memory
4563 allocations/free-ing. If something changed before the end of the
4564 pass, update LUIDs using recompute_all_luids.
4565 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
4566 (free_gcse_mem): Don't free it either.
4567 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
4568 Use the df insn LUIDs.
4569 (load_killed_in_block): Likewise.
4570 (compute_hash_table_work): Don't compute reg_set_in_block.
4571 (compute_transp): Use DF_REG_DEF_CHAINs.
4572 (local_cprop_pass): Don't use compute_sets and related functions.
4573 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
4574 Use get_max_uid() instead of max_cuid.
4575 (insert_insn_end_basic_block, pre_insert_copy_insn,
4576 update_ld_motion_stores): Don't try to
4577 keep reg_set tables up to date.
4578 (pre_insert_copies): Use df insn LUIDs.
4579 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
4580 (reg_set_info): Don't use extra bitmap argument.
4581 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
4582 information to compute regs_set_in_block.
4583 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
4584 (bypass_jumps): Don't use compute_sets and friends.
4585
4586 2009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4587
4588 PR testsuite/39710
4589 * opts.c (undocumented_msg): Do not leave blank even with
4590 ENABLE_CHECKING.
4591
4592 2009-04-25 Joseph Myers <joseph@codesourcery.com>
4593
4594 * c-decl.c (build_enumerator): Allow values folding to integer
4595 constants but not integer constant expressions with a pedwarn if
4596 pedantic.
4597
4598 2009-04-25 Joseph Myers <joseph@codesourcery.com>
4599
4600 PR c/39582
4601 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
4602 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
4603 type is an integer constant.
4604
4605 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
4606
4607 PR target/39897
4608 * config/i386/i386.c (print_operand) ['z']: Revert handling of
4609 HImode operands.
4610
4611 2009-04-25 Joseph Myers <joseph@codesourcery.com>
4612
4613 PR c/39564
4614 * c-decl.c (grokdeclarator): Diagnose declarations of functions
4615 with variably modified return type and no storage class
4616 specifiers, except for the case of nested functions. Distinguish
4617 extern declarations of functions with variably modified return
4618 types from those of objects with variably modified types.
4619
4620 2009-04-25 Jan Hubicka <jh@suse.cz>
4621
4622 * tree.c (list_equal_p): New function.
4623 * tree.h (list_equal_p): Declare.
4624 * coretypes.h (edge_def, edge, const_edge, basic_block_def
4625 basic_block_def, basic_block, const_basic_block): New.
4626 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
4627 (redirect_eh_edge): New function.
4628 (make_eh_edge_update_phi): EH edges are not abnormal.
4629 * except.c: Include tree-flow.h.
4630 (list_match): New function.
4631 (eh_region_replaceable_by_p): New function.
4632 (replace_region): New function.
4633 (hash_type_list): New function.
4634 (hash_eh_region): New function.
4635 (eh_regions_equal_p): New function.
4636 (merge_peers): New function.
4637 (remove_unreachable_regions): Verify EH tree when checking;
4638 merge peers.
4639 (copy_eh_region_1): New function.
4640 (copy_eh_region): New function.
4641 (push_reachable_handler): New function.
4642 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
4643 regions without label but with live RESX.
4644 * except.h (redirect_eh_edge_to_label): New.
4645 * tree-flow.h (redirect_eh_edge): New.
4646 * coretypes.h (edge_def, edge, const_edge, basic_block_def
4647 basic_block_def, basic_block, const_basic_block): Remove.
4648 * Makefile.in (except.o): Add dependency on tree-flow.h
4649 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
4650 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
4651 Remove.
4652
4653 2009-04-25 Eric Botcazou <ebotcazou@adacore.com>
4654
4655 PR bootstrap/39645
4656 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
4657 on the destination of memcpy.
4658
4659 2009-04-25 Paolo Bonzini <bonzini@gnu.org>
4660
4661 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
4662 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
4663 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
4664
4665 2009-04-25 Jan Hubicka <jh@suse.cz>
4666
4667 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
4668 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
4669 to be reached by different label than left.
4670 (update_eh_edges): Update comment; remove edge_to_remove if possible
4671 and return true if suceeded.
4672 (cleanup_empty_eh): Accept sharing map; handle shared regions.
4673 (cleanup_eh): Compute sharing map.
4674 * except.c (remove_eh_handler_and_replace): Add argument if we should
4675 update regions.
4676 (remove_unreachable_regions): Update for label sharing.
4677 (label_to_region_map): Likewise.
4678 (get_next_region_sharing_label): New function.
4679 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
4680 prev_try pointers.
4681 (remove_eh_handler): Update.
4682 (remove_eh_region_and_replace_by_outer_of): New function.
4683 * except.h (struct eh_region): Add next_region_sharing_label.
4684 (remove_eh_region_and_replace_by_outer_of,
4685 get_next_region_sharing_label): Declare.
4686 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
4687
4688 2009-04-25 Jan Hubicka <jh@suse.cz>
4689
4690 * tree-cfg.c (split_critical_edges): Split also edges where we can't
4691 insert code even if they are not critical.
4692
4693 2009-04-25 Jan Hubicka <jh@suse.cz>
4694
4695 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
4696 (gimple_can_remove_branch_p): EH edges won't remove branch by
4697 redirection.
4698 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
4699 updating of non-abnormal EH edges.
4700 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
4701 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
4702 (split_critical_edges): Split also edges where emitting code on them
4703 will lead to splitting later.
4704
4705 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
4706 H.J. Lu <hongjiu.lu@intel.com>
4707
4708 PR target/39590
4709 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
4710 the configured assembler supports fildq and fistpq mnemonics.
4711 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
4712 * configure: Regenerated.
4713 * config.in: Ditto.
4714
4715 * config/i386/i386.c (print_operand): Handle 'Z'.
4716 ['z']: Remove handling of special fild/fist suffixes.
4717 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
4718 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
4719 suffix of fild insn.
4720 (*floatsi<mode>2_vector_mixed): Ditto.
4721 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
4722 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
4723 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4724 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
4725 * config/i386/gas.h (GAS_MNEMONICS): Remove.
4726
4727 2009-04-25 Ben Elliston <bje@au.ibm.com>
4728
4729 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
4730 the source of a set operation.
4731
4732 2009-04-25 Anatoly Sokolov <aesok@post.ru>
4733
4734 * target.h (struct gcc_target): Add case_values_threshold field.
4735 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
4736 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
4737 * targhooks.c (default_case_values_threshold): New function.
4738 * targhooks.h (default_case_values_threshold): Declare function.
4739 * stmt.c (expand_case): Use case_values_threshold target hook.
4740 * expr.h (case_values_threshold): Remove declartation.
4741 * expr.c (case_values_threshold): Remove function.
4742 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
4743
4744 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
4745 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
4746 (avr_case_values_threshold): Declare as static.
4747 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
4748
4749 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
4750 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
4751 (mn10300_case_values_threshold): New function.
4752
4753 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
4754
4755 * ira.c (setup_cover_and_important_classes): Add enum cast.
4756
4757 2009-04-24 Vladimir Makarov <vmakarov@redhat.com>
4758
4759 * genpreds.c (write_enum_constraint_num): Output definition of
4760 CONSTRAINT_NUM_DEFINED_P macro.
4761 * ira.c (setup_cover_and_important_classes): Use
4762 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
4763
4764 2009-04-24 DJ Delorie <dj@redhat.com>
4765
4766 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
4767 __SH2A_SINGLE_ONLY__ also.
4768
4769 2009-04-24 Steve Ellcey <sje@cup.hp.com>
4770
4771 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
4772 (movdf_internal): Ditto.
4773 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
4774 SFmode and DFmode constants.
4775 (ia64_print_operand): Add 'G' format for printing
4776 floating point constants.
4777
4778 2009-04-24 Richard Guenther <rguenther@suse.de>
4779
4780 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
4781 from unsigned additions.
4782
4783 2009-04-24 Joseph Myers <joseph@codesourcery.com>
4784
4785 * c-typeck.c (set_init_index): Allow array designators that are
4786 not integer constant expressions with a pedwarn if pedantic.
4787
4788 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
4789
4790 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
4791 zero if no overlap in nonzero bits between the operands.
4792
4793 2009-04-24 Ian Lance Taylor <iant@google.com>
4794
4795 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
4796 (record_dead_and_set_regs): Likewise.
4797 * df.h (struct df_mw_hardreg): Change flags field to int.
4798 (struct df_base_ref): Likewise.
4799 (struct df): Change changeable_flags field to int.
4800 * df-scan.c (df_defs_record): Change clobber_flags to int.
4801 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
4802 constants rather than #define macros.
4803 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
4804 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
4805 (enum dwarf_calling_convention): Likewise.
4806 (enum dwarf_line_number_x_ops): Likewise.
4807 (enum dwarf_call_frame_info): Likewise.
4808 (enum dwarf_source_language): Likewise.
4809 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
4810 (add_calling_convention_attribute): Likewise.
4811 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
4812 (combine_comparisons): Change compcode to int. Add cast to enum type.
4813 * genrecog.c (maybe_both_true_2): Change c to int.
4814 (write_switch): Likewise. Add cast to enum type.
4815 * gimplify.c (gimplify_omp_for): Handle return values from
4816 gimplify_expr using MIN rather than bitwise or.
4817 (gimplify_expr): Add cast to enum type.
4818 * ipa-prop.c (update_jump_functions_after_inlining): Change
4819 IPA_BOTTOM to IPA_JF_UNKNOWN.
4820 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
4821 Add casts to enum type.
4822 (setup_cover_and_important_classes): Change cl to int. Add casts
4823 to enum type.
4824 (setup_class_translate): Change cl and mode to int.
4825 (ira_init_once): Change mode to int.
4826 (free_register_move_costs): Likewise.
4827 (setup_prohibited_mode_move_regs): Add casts to enum type.
4828 * langhooks.c (add_builtin_function_common): Rework assertion that
4829 value fits bitfield.
4830 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
4831 * omega.c (omega_do_elimination): Avoid math on enum types.
4832 * optabs.c (expand_vec_shift_expr): Remove casts to int.
4833 * opts.c (set_debug_level): Change 2 to enum constant. Use new
4834 int local to handle integral_argment value.
4835 * regmove.c (try_auto_increment): Change PUT_MODE to
4836 PUT_REG_NOTE_KIND.
4837 * reload.c (push_secondary_reload): Add casts to enum type.
4838 (secondary_reload_class, find_valid_class): Likewise.
4839 * reload1.c (emit_input_reload_insns): Likewise.
4840 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
4841 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
4842 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
4843 constant.
4844 * tree.c (build_common_builtin_nodes): Add casts to enum type.
4845 * tree-complex.c (complex_lattice_t): Typedef to int rather than
4846 enum type.
4847 (expand_complex_libcall): Add casts to enum type.
4848 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
4849 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
4850 with ERROR_MARK, not NUM_TREE_CODES.
4851 (vect_create_epilog_for_reduction): Likewise.
4852 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
4853 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
4854 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
4855 enum machine_mode.
4856 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
4857 vect_unused_in_loop. Change 0 to loop_vect.
4858 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
4859 * var-tracking.c (get_init_value): Change return type to enum
4860 var_init_status.
4861 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
4862 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
4863 arm_fp_model.
4864 (arm_override_options): Add casts to enum type.
4865 (arm_emit_tls_decoration): Likewise.
4866 * config/i386/i386.c (ix86_function_specific_restore): Add casts
4867 to enum type.
4868 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
4869 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
4870 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
4871 enum type.
4872 * config/s390/s390.c (code_for_builtin_64): Change to array of
4873 enum insn_code.
4874 (code_for_builtin_31): Likewise.
4875 (s390_expand_builtin): Change code_for_builtin to enum insn_code
4876 const *.
4877 * config/sparc/sparc.c (sparc_override_options): Change value
4878 field in struct code_model to enum cmodel. In initializer change
4879 0 to NULL and add cast to enum type.
4880
4881 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
4882 Change all callers. Issue a -Wc++-compat warning using
4883 lhs_origtype if necessary.
4884 (convert_for_assignment): Issue -Wc++-compat warnings about
4885 invalid conversions to enum type on assignment.
4886 * c-common.h (build_modify_expr): Update declaration.
4887
4888 2009-04-24 Nick Clifton <nickc@redhat.com>
4889
4890 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
4891 (function_arg_advance): Likewise.
4892 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
4893 5th alternative.
4894
4895 2009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
4896
4897 * config/s390/constraints.md ('I', 'J'): Fix condition.
4898
4899 2009-04-24 Diego Novillo <dnovillo@google.com>
4900
4901 * gengtype-parse.c (parse_error): Add newline after message.
4902
4903 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
4904
4905 * config/i386/sse.md (avxmodesuffixs): Removed.
4906 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
4907 (*avx_pinsr<ssevecsize>): This.
4908
4909 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
4910
4911 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
4912 follow chains of regs with a single definition, and allow expressions
4913 that are function_invariant_p.
4914 (simple_rhs_p): Allow expressions that are function_invariant_p.
4915
4916 2009-04-24 Paolo Bonzini <bonzini@gnu.org>
4917
4918 PR middle-end/39867
4919 * fold-const.c (fold_cond_expr_with_comparison): When folding
4920 > and >= to MAX, make sure the MAX uses the same type as the
4921 comparison's operands.
4922
4923 2009-04-24 Nick Clifton <nickc@redhat.com>
4924
4925 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
4926 addressing for DImode accesses.
4927 (frv_print_operand_address): Handle PLUS case.
4928 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
4929
4930 2009-04-24 Jakub Jelinek <jakub@redhat.com>
4931
4932 PR rtl-optimization/39794
4933 * alias.c (canon_true_dependence): Add x_addr argument.
4934 * rtl.h (canon_true_dependence): Adjust prototype.
4935 * cse.c (check_dependence): Adjust canon_true_dependence callers.
4936 * cselib.c (cselib_invalidate_mem): Likewise.
4937 * gcse.c (compute_transp): Likewise.
4938 * dse.c (scan_reads_nospill): Likewise.
4939 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
4940 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
4941 canon_base_addr of the group, plus optional offset.
4942 (struct group_info): Rename canon_base_mem to
4943 canon_base_addr.
4944 (get_group_info): Set canon_base_addr to canon_rtx of base, not
4945 canon_rtx of base_mem.
4946
4947 2009-04-23 Paolo Bonzini <bonzini@gnu.org>
4948
4949 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
4950 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
4951
4952 2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4953
4954 * config/spu/spu-builtins.h: Delete file.
4955
4956 * config/spu/spu.h (enum spu_builtin_type): Move here from
4957 spu-builtins.h.
4958 (struct spu_builtin_description): Likewise. Add GTY marker.
4959 Do not use enum spu_function_code or enum insn_code.
4960 (spu_builtins): Add extern declaration.
4961
4962 * config/spu/spu.c: Do not include "spu-builtins.h".
4963 (enum spu_function_code, enum spu_builtin_type_index,
4964 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
4965 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
4966 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
4967 unsigned_V2DI_type_node): Move here from spu-builtins.h.
4968 (spu_builtin_types): Make static. Add GTY marker.
4969 (spu_builtins): Add extern declaration with GTY marker.
4970 Include "gt-spu.h".
4971
4972 * config/spu/spu-c.c: Do not include "spu-builtins.h".
4973 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
4974 Check programmatically whether all parameters are scalar.
4975
4976 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
4977
4978 2009-04-23 Eric Botcazou <ebotcazou@adacore.com>
4979
4980 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
4981 assignment from the constructor either if the target is volatile.
4982
4983 2009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
4984
4985 * config/arm/arm.md (insv): Do not share operands[0].
4986
4987 2009-04-23 Nathan Sidwell <nathan@codesourcery.com>
4988
4989 * config/vxlib-tls.c (active_tls_threads): Delete.
4990 (delete_hook_installed): New.
4991 (tls_delete_hook): Don't delete the delete hook.
4992 (tls_destructor): Delete it here.
4993 (__gthread_set_specific): Adjust installing the delete hook.
4994 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
4995 __gthread_leave_tsd_dtor_context.
4996
4997 2009-04-23 Rafael Avila de Espindola <espindola@google.com>
4998
4999 * c-format.c (gcc_tdiag_char_table): Add support for %E.
5000
5001 2009-04-23 Uros Bizjak <ubizjak@gmail.com>
5002
5003 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
5004 enum type.
5005 (alpha_rtx_costs): Ditto.
5006 (emit_unlikely_jump): Use add_reg_note.
5007 (emit_frame_store_1): Ditto.
5008 (alpha_expand_prologue): Ditto.
5009 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5010 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
5011
5012 2009-04-23 Nick Clifton <nickc@redhat.com>
5013
5014 * config/v850/v850.md (epilogue): Remove suppressed code.
5015 (return): Rename to return_simple and remove test of frame size.
5016 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
5017 to gen_return_simple.
5018
5019 2009-04-22 Jing Yu <jingyu@google.com>
5020
5021 PR testsuite/39781
5022 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5023
5024 2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
5025
5026 PR C/31499
5027 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
5028 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
5029 value is a VECTOR_CST, the element type is the element type of the
5030 vector.
5031
5032 2009-04-22 DJ Delorie <dj@redhat.com>
5033
5034 * config/m32c/m32c.h: Update GTY annotations to new syntax.
5035
5036 2009-04-22 Jakub Jelinek <jakub@redhat.com>
5037
5038 * alias.c (find_base_term): Move around LO_SUM case, so that
5039 CONST falls through into PLUS/MINUS handling.
5040
5041 PR c/39855
5042 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
5043 into 0, use omit_one_operand.
5044
5045 2009-04-23 Ben Elliston <bje@au.ibm.com>
5046
5047 * config/rs6000/linux-unwind.h (get_regs): Remove type
5048 puns. Change the type of `pc' to an array of unsigned ints and
5049 update all users. Constify frame24.
5050
5051 2009-04-22 DJ Delorie <dj@redhat.com>
5052
5053 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
5054 declarations before code.
5055 (current_function_special_page_vector): Likewise.
5056 (m32c_expand_insv): Silence a warning.
5057
5058 2009-04-21 Taras Glek <tglek@mozilla.com>
5059
5060 * alias.c: Update GTY annotations to new syntax.
5061 * basic-block.h: Likewise.
5062 * bitmap.h: Likewise.
5063 * c-common.h: Likewise.
5064 * c-decl.c: Likewise.
5065 * c-parser.c: Likewise.
5066 * c-pragma.c: Likewise.
5067 * c-tree.h: Likewise.
5068 * cfgloop.h: Likewise.
5069 * cgraph.h: Likewise.
5070 * config/alpha/alpha.c: Likewise.
5071 * config/arm/arm.h: Likewise.
5072 * config/avr/avr.h: Likewise.
5073 * config/bfin/bfin.c: Likewise.
5074 * config/cris/cris.c: Likewise.
5075 * config/darwin.c: Likewise.
5076 * config/frv/frv.c: Likewise.
5077 * config/i386/i386.c: Likewise.
5078 * config/i386/i386.h: Likewise.
5079 * config/i386/winnt.c: Likewise.
5080 * config/ia64/ia64.h: Likewise.
5081 * config/iq2000/iq2000.c: Likewise.
5082 * config/mips/mips.c: Likewise.
5083 * config/mmix/mmix.h: Likewise.
5084 * config/pa/pa.c: Likewise.
5085 * config/pa/pa.h: Likewise.
5086 * config/rs6000/rs6000.c: Likewise.
5087 * config/s390/s390.c: Likewise.
5088 * config/sparc/sparc.c: Likewise.
5089 * config/xtensa/xtensa.c: Likewise.
5090 * cselib.h: Likewise.
5091 * dbxout.c: Likewise.
5092 * dwarf2out.c: Likewise.
5093 * except.c: Likewise.
5094 * except.h: Likewise.
5095 * fixed-value.h: Likewise.
5096 * function.c: Likewise.
5097 * function.h: Likewise.
5098 * gimple.h: Likewise.
5099 * integrate.c: Likewise.
5100 * optabs.c: Likewise.
5101 * output.h: Likewise.
5102 * real.h: Likewise.
5103 * rtl.h: Likewise.
5104 * stringpool.c: Likewise.
5105 * tree-data-ref.c: Likewise.
5106 * tree-flow.h: Likewise.
5107 * tree-scalar-evolution.c: Likewise.
5108 * tree-ssa-address.c: Likewise.
5109 * tree-ssa-alias.h: Likewise.
5110 * tree-ssa-operands.h: Likewise.
5111 * tree.c: Likewise.
5112 * tree.h: Likewise.
5113 * varasm.c: Likewise.
5114 * varray.h: Likewise.
5115 * vec.h: Likewise.
5116 * coretypes.h: Do not define GTY macro if it is already defined.
5117 * doc/gty.texi: Update GTY documentation to new syntax.
5118 * gengtype-lex.l: Enforce attribute-like syntax for GTY
5119 annotations on structs.
5120 * gengtype-parse.c: Likewise.
5121
5122 2009-04-22 Mark Heffernan <meheff@google.com>
5123
5124 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
5125
5126 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
5127
5128 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
5129 where appropriate.
5130
5131 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
5132
5133 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
5134 the same as a PLUS without a shift. Increase the cost of a
5135 CONST_INT in MULT.
5136
5137 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5138
5139 * Makefile.in: Update dependencies.
5140 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
5141 * errors.h: Remove bogus comment about compatibility.
5142 (warning): Update declaration.
5143 * genautomata.c: Update all calls to warning.
5144 * gimple.c: Do not include errors.h. Include toplev.h.
5145 * tree-ssa-structalias.c: Do not include errors.h.
5146 * omega.c: Likewise.
5147 * tree-ssa-reassoc.c: Likewise.
5148 * config/spu/spu-c.c: Likewise.
5149 * config/spu/t-spu-elf: Update dependencies.
5150
5151 2009-04-22 Richard Guenther <rguenther@suse.de>
5152
5153 PR tree-optimization/39824
5154 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
5155 make sure the types are compatible.
5156
5157 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5158
5159 PR c++/14875
5160 * c-common.c (c_parse_error): Take a token_flags parameter.
5161 Use token_type for the token type instead.
5162 Pass token_flags to cpp_type2name.
5163 * c-common.h (c_parse_error): Update declaration.
5164 * c-parser.c (c_parser_error): Pass 0 as token flags.
5165
5166 2009-04-22 Andrey Belevantsev <abel@ispras.ru>
5167
5168 PR rtl-optimization/39580
5169 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
5170
5171 2009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5172
5173 * function.c (expand_function_end): Do not emit a jump to the "naked"
5174 return label for fall-through returns.
5175 * except.c (sjlj_emit_function_exit): Always place the call to the
5176 unregister function at the location installed by expand_function_end.
5177
5178 2009-04-22 Richard Guenther <rguenther@suse.de>
5179
5180 PR tree-optimization/39845
5181 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
5182 (gen_inbound_check): Likewise.
5183
5184 2009-04-22 Nathan Sidwell <nathan@codesourcery.com>
5185
5186 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
5187 padding for PPC.
5188 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
5189 * config/vxlib.c (__gthread_once): Add race guard for PPC.
5190
5191 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
5192
5193 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
5194 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
5195 shift counts to avoid out-of-bounds array accesses.
5196
5197 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
5198
5199 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
5200 (Pmode): Move above.
5201
5202 2009-04-22 Uros Bizjak <ubizjak@gmail.com>
5203
5204 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
5205 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
5206 GET_CODE macro. Use IN_RANGE macro where appropriate.
5207 * config/alpha/alpha.h: Ditto.
5208 * config/alpha/alpha.md: Ditto.
5209 * config/alpha/constraints.md: Ditto.
5210 * config/alpha/predicates.md: Ditto.
5211
5212 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
5213
5214 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
5215 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5216 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5217 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5218 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5219 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5220 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5221 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5222 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5223 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5224 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5225 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5226 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5227 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5228 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5229 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5230 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5231 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5232 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5233 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5234 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5235 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5236 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5237 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5238 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5239 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5240 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5241
5242 2009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5243
5244 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
5245 references from comments.
5246 * cfgbuild.c: (count_basic_blocks): Delete.
5247 (find_basic_blocks_1): Delete.
5248 (find_basic_blocks): Delete.
5249 * except.c (finish_eh_generation): Make static. Move comment from
5250 except.h here. Remove find_basic_blocks references from comments.
5251 * except.h (finish_eh_generation): Delete.
5252 * basic-block.h (find_basic_blocks): Delete.
5253 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
5254
5255 2009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
5256
5257 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
5258 (sdbout_parms): Likewise.
5259
5260 2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
5261
5262 * config/sh/sh.c (prepare_cbranch_operands): Use
5263 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
5264 (expand_cbranchdi4): Likewise.
5265 (from_compare): Add cast to enum type.
5266 (expand_cbranchsi4): Use add_reg_note.
5267 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
5268 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
5269 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
5270 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5271 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
5272 instead of CODE_FOR_nothing.
5273 (cbranchdi4): Likewise. Fix the order of arguments for
5274 gen_rtx_fmt_ee.
5275 (push_fpscr): Use add_reg_note.
5276 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
5277 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
5278
5279 2009-04-21 Joseph Myers <joseph@codesourcery.com>
5280
5281 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
5282 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
5283 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
5284 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
5285 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
5286 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
5287 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
5288 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
5289 config/alpha/x-vms, config/arc/t-arc,
5290 config/arm/README-interworking, config/arm/arm-c.c,
5291 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
5292 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
5293 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
5294 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
5295 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
5296 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
5297 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
5298 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
5299 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
5300 config/cris/t-elfmulti, config/crx/t-crx,
5301 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
5302 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
5303 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
5304 config/h8300/t-h8300, config/i386/athlon.md,
5305 config/i386/darwin-libgcc.10.4.ver,
5306 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
5307 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
5308 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
5309 config/i386/t-linux64, config/i386/t-nwld,
5310 config/i386/t-rtems-i386, config/i386/t-sol2-10,
5311 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
5312 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
5313 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
5314 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
5315 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
5316 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
5317 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
5318 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
5319 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
5320 config/m68k/t-uclinux, config/mcore/t-mcore,
5321 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
5322 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
5323 config/mips/crtn.asm, config/mips/irix-crti.asm,
5324 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
5325 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
5326 config/mips/mips-fixed.md, config/mips/sb1.md,
5327 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
5328 config/mips/t-iris6, config/mips/t-isa3264,
5329 config/mips/t-libgcc-mips16, config/mips/t-linux64,
5330 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
5331 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
5332 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
5333 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
5334 config/mn10300/t-linux, config/mn10300/t-mn10300,
5335 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
5336 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
5337 config/picochip/libgccExtras/clzsi2.asm,
5338 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
5339 config/rs6000/darwin-libgcc.10.4.ver,
5340 config/rs6000/darwin-libgcc.10.5.ver,
5341 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
5342 config/rs6000/t-aix43, config/rs6000/t-aix52,
5343 config/rs6000/t-darwin, config/rs6000/t-fprules,
5344 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
5345 config/rs6000/t-lynx, config/rs6000/t-netbsd,
5346 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
5347 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
5348 config/rs6000/t-rtems, config/rs6000/t-spe,
5349 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
5350 config/score/t-score-elf, config/sh/divcost-analysis,
5351 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
5352 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
5353 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
5354 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
5355 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
5356 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
5357 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
5358 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
5359 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
5360 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
5361 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
5362 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
5363 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
5364 limitx.h, version.c, xcoff.h: Add copyright and license notices.
5365 * config/h8300/genmova.sh: Include copyright and license notices
5366 in generated output.
5367 * config/h8300/mova.md: Regenerate.
5368 * doc/install.texi2html: Include word "Copyright" in copyright
5369 notice and use name "Free Software Foundation, Inc.".
5370 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
5371 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
5372 ChangeLog-2007, ChangeLog-2008: Correct dates.
5373
5374 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
5375
5376 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
5377 NE_EXPR operations as well.
5378 * c-parser.c (c_parser_condition): Do not set location information on
5379 the condition.
5380 (c_parser_conditional_expression): Likewise.
5381 (c_parser_binary_expression): Set location information on operators.
5382 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
5383 TRUTH_NOT_EXPR has been folded.
5384 * fold-const.c (fold_truth_not_expr): Copy location information from
5385 the incoming expression to the outgoing one.
5386 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
5387 recursive calls on the LHS of the operator but pass that of the
5388 operator to recursive calls on the RHS of the operator. Set it
5389 on the COND_EXPR.
5390 (shortcut_cond_expr): Set the locus of the operator on the second
5391 COND_EXPR and that of the expression on the first in degenerate cases.
5392 Pass the locus of the expression to calls to shortcut_cond_r.
5393 Set the locus of the 'then' block on the associated jump, if any.
5394 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
5395 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
5396 expression to call to gimplify_boolean_expr.
5397
5398 2009-04-21 Kai Tietz <kai.tietz@onevision.com>
5399
5400 * config.gcc: Add additional configuration for
5401 i686-w64-mingw* and x86_64-w64-mingw* triplet.
5402 * config/i386/mingw-w64.h: New mingw-w64 specific header.
5403 (CPP_SPEC): Redefine for allowing -municode option.
5404 (STARTFILE_SPEC): Likewise.
5405 * config/i386/t-mingw-w64: New.
5406 * config/i386/mingw-w64.opt: New.
5407 (municode): Add new target option.
5408 * doc/invoke.texi (municode): Add documentation for new option.
5409
5410 2009-04-21 Ian Lance Taylor <iant@google.com>
5411
5412 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5413 Correct test for number of arguments.
5414 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
5415
5416 2009-04-21 Andreas Schwab <schwab@linux-m68k.org>
5417
5418 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
5419 argument of emit_library_call.
5420
5421 2009-04-21 Richard Guenther <rguenther@suse.de>
5422
5423 PR middle-end/39829
5424 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
5425 inside VIEW_CONVERT_EXPRs.
5426
5427 2009-04-21 Martin Jambor <mjambor@suse.cz>
5428
5429 * tree-switch-conversion.c (build_constructors): Split a long line.
5430 (constructor_contains_same_values_p): New function.
5431 (build_one_array): Create assigns of constants if possible, do not
5432 call mark_sym_for_renaming, call update_stmt.
5433 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
5434 make_rename_temp. Do not call mark_symbols_for_renaming, call
5435 update_stmt.
5436 (gen_def_assigns): Do not call mark_symbols_for_renaming or
5437 find_new_referenced_vars, call update_stmt.
5438 (gen_inbound_check): Use create_tmp_var and create ssa names manually
5439 instead of calling make_rename_temp. Do not call
5440 find_new_referenced_vars or mark_symbols_for_renaming, call
5441 update_stmt.
5442
5443 2009-04-21 Richard Guenther <rguenther@suse.de>
5444
5445 PR tree-optimization/39827
5446 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
5447 (tree_ssa_phiprop): Pass the correct array size.
5448
5449 2009-04-21 Uros Bizjak <ubizjak@gmail.com>
5450
5451 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
5452
5453 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
5454
5455 PR 16202
5456 * c-typeck.c (lvalue_p): Move declaration ...
5457 * c-common.h (lvalue_p): ... to here.
5458 * c-common.c (candidate_equal_p): New.
5459 (add_tlist): Use it.
5460 (merge_tlist): Use it.
5461 (warn_for_collisions_1): Likewise.
5462 (warning_candidate_p): Accept more candidates.
5463 (verify_tree): A warning candidate can be an expression. Use
5464 candidate_equal_p.
5465
5466 2009-04-21 Ben Elliston <bje@au.ibm.com>
5467
5468 PR target/5267
5469 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
5470 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
5471 options. Remove -mcall-solaris documentation.
5472
5473 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5474
5475 PR c++/13358
5476 * doc/invoke.texi (-Wlong-long): Update description.
5477 * c-lex (interpret_integer): Only warn if there was no previous
5478 overflow and -Wlong-long is enabled.
5479 * c-decl.c (declspecs_add_type): Drop redundant flags.
5480 * c.opt (Wlong-long): Init to -1.
5481 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
5482 and front-end warn_long_long. Wlong-long only depends on other
5483 flags if it is uninitialized.
5484 * c-parser.c (disable_extension_diagnostics): warn_long_long is
5485 the same for CPP and FE.
5486 (restore_extension_diagnostics): Likewise.
5487
5488 2009-04-20 Ian Lance Taylor <iant@google.com>
5489
5490 Fix enum conversions which are invalid in C++:
5491 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
5492 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
5493 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
5494 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
5495 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
5496 (dbxout_parms): Likewise.
5497 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
5498 (df_clear_flags): Likewise.
5499 * df-problems.c (df_rd_bb_local_compute_process_def): Change
5500 top_flag parameter to int.
5501 (df_chain_create_bb_process_use): Likewise.
5502 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
5503 Remove cast.
5504 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
5505 (df_ref_create_structure, df_def_record_1): Likewise.
5506 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
5507 (df_notes_rescan): Change 0 to VOIDmode in function call.
5508 (df_get_call_refs, df_insn_refs_collect): Likewise.
5509 (df_bb_regs_collect): Likewise.
5510 (df_entry_block_defs_collect): Likewise.
5511 (df_exit_block_uses_collect): Likewise.
5512 * df.h: Update declarations.
5513 * double-int.c (double_int_divmod): Add cast to enum type.
5514 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
5515 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
5516 (based_loc_descr): Likewise.
5517 (loc_descriptor_from_tree_1): Change first_op and second_op to
5518 enum dwarf_location_atom. Add cast to enum type.
5519 * expmed.c (init_expmed): Change 0 to SET in function call.
5520 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
5521 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
5522 (do_store_flag): Likewise.
5523 * fixed-value.h (struct fixed_value): Change mode to enum
5524 machine_mode.
5525 * function.c (assign_parms): Change 0 to VOIDmode in function call.
5526 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
5527 function call.
5528 (insert_insn_decl, insert_decl, insert_state): Likewise.
5529 (automata_list_finish): Likewise.
5530 * genrecog.c (process_define_predicate): Add cast to enum type.
5531 * gensupport.c (init_predicate_table): Add cast to enum type.
5532 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
5533 function call.
5534 (gimple_build_call_1, gimple_build_label): Likewise.
5535 (gimple_build_goto, gimple_build_asm_1): Likewise.
5536 (gimple_build_switch_1, gimple_build_cdt): Likewise.
5537 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
5538 (enum fallback): Rename from enum fallback_t.
5539 (fallback_t): Typedef as int.
5540 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
5541 GSI_SAME_STMT in function call.
5542 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
5543 enum type.
5544 (setup_reg_class_relations): Likewise.
5545 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
5546 (setup_prohibited_class_mode_regs): Add cast to enum type.
5547 (setup_prohibited_mode_move_regs): Likewise.
5548 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
5549 (record_address_regs): Change i to enum reg_class.
5550 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
5551 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
5552 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
5553 (GET_MODE_2XWIDER_MODE): Likewise.
5554 (GET_CLASS_NARROWEST_MODE): Likewise.
5555 * omp-low.c (expand_omp_for): Add cast to enum type.
5556 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
5557 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
5558 * postreload.c (reload_cse_simplify_operands): Change rclass local
5559 to enum reg_class.
5560 * predict.c (combine_predictions_for_insn): Change best_predictor
5561 and predictor to enum br_predictor.
5562 (combine_predictions_for_bb): Likewise.
5563 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
5564 use SET_PREDICT_EXPR_OUTCOME.
5565 * real.c (real_arithmetic): Change icode to code in function call.
5566 * reginfo.c (init_move_cost): Add casts to enum type.
5567 (init_reg_sets_1, init_fake_stack_mems): Likewise.
5568 * regmove.c (regclass_compatible_p): Change class0 and class1 to
5569 enum reg_class.
5570 * reload.c (find_valid_class): Add casts to enum type.
5571 (push_reload): Change 0 to NO_REGS in function call.
5572 (find_reloads): Change this_alternative to array of enum
5573 reg_class. Remove some now-unnecessary casts.
5574 (make_memloc): Change 0 to VOIDmode in function call.
5575 * reload1.c (reload): Change 0 to VOIDmode in function call.
5576 (eliminate_regs_1, elimination_effects): Likewise.
5577 (eliminate_regs_in_insn): Likewise.
5578 (emit_input_reload_insns): Add cast to enum type.
5579 (delete_output_reload): Change 0 to VOIDmode in function call.
5580 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
5581 to enum type in function call.
5582 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
5583 (SET_PREDICT_EXPR_OUTCOME): Define.
5584 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
5585 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
5586 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
5587 (dump_function): Likewise.
5588 * tree-dump.h: Update declarations.
5589 * tree-pass.h: Update declarations.
5590 * varasm.c (assemble_integer): Change mclass to enum mode_class.
5591 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
5592 enum type.
5593 (arm_rtx_costs_1): Correct parenthesization.
5594 (arm_rtx_costs): Add casts to enum type.
5595 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
5596 (vfp_emit_fstmd): Use add_rg_note.
5597 (emit_multi_reg_push, emit_sfm): Likewise.
5598 (thumb_set_frame_pointer): Likewise.
5599 (arm_expand_prologue): Likewise.
5600 (arm_regno_class): Change return type to enum reg_class.
5601 (thumb1_expand_prologue): Use add_reg_note.
5602 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
5603 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
5604 in function call.
5605 * config/arm/gentune.sh: Add cast to enum type.
5606 * config/arm/arm-tune.md: Rebuild.
5607 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
5608 (ix86_split_fp_branch, predict_jump): Likewise.
5609 (ix86_expand_multi_arg_builtin): Change sub_code from enum
5610 insn_code to enum rtx_code.
5611 (ix86_builtin_vectorized_function): Add cast to enum type.
5612 * config/i386/i386.md (truncdfsf2): Change slot to enum
5613 ix86_stack_slot.
5614 (truncxf<mode>2, isinf<mode>2): Likewise.
5615 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
5616 enum type.
5617 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
5618 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
5619 (insert_bundle_state): Change 1 to INSERT in function call.
5620 (ia64_add_bundle_selector_before): Likewise.
5621 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
5622 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
5623 (restore_stack_nonlocal): Likewise.
5624 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
5625 function call.
5626 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
5627 function call.
5628 (mips_rtx_costs): Likewise.
5629 (mips_override_options): Add casts to enum type.
5630 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
5631 in function call.
5632 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
5633 (store_reg, set_reg_plus_d): Likewise.
5634 (hppa_expand_prologue, hppa_profile_hook): Likewise.
5635 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
5636 cast to enum type.
5637 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
5638 function call.
5639 (emit_unlikely_jump): Use add_reg_note.
5640 (rs6000_emit_allocate_stack): Likewise.
5641 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
5642 (output_toc): Change 1 to INSERT in function call.
5643 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
5644 (rs6000_initialize_trampoline): Likewise.
5645 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
5646 function call.
5647 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
5648 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
5649 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
5650 (save_gprs): Use add_reg_note.
5651 (s390_emit_prologue): Likewise.
5652 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5653 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
5654 (sparc_fold_builtin): Add cast to enum type.
5655 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
5656 enum insn_code.
5657 (spu_expand_prologue): Use add_reg_note.
5658 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
5659
5660 2009-04-20 Ian Lance Taylor <iant@google.com>
5661
5662 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
5663 (c_parser_postfix_expression_after_primary): Get VEC for list of
5664 arguments. Get original types of arguments. Call
5665 build_function_call_vec.
5666 (cached_expr_list_1, cached_expr_list_2): New static variables.
5667 (c_parser_expr_list): Change return type to VEC *. Add
5668 p_orig_types parameter. Change all callers.
5669 (c_parser_release_expr): New static function.
5670 (c_parser_vec_to_tree_list): New static function.
5671 * c-typeck.c (build_function_call): Rewrite to build a VEC and
5672 call build_function_call_vec.
5673 (build_function_call_vec): New function, based on old
5674 build_function_call.
5675 (convert_arguments): Remove nargs and argarray parameters. Change
5676 values to a VEC. Add origtypes parameter.
5677 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
5678 (convert_for_assignment): Add origtype parameter. Change all
5679 callers. If warn_cxx_compat, check for conversion to an enum
5680 type when calling a function.
5681 (store_init_value): Add origtype parameter. Change all callers.
5682 (digest_init): Likewise.
5683 (struct init_node): Add origtype field.
5684 (add_pending_init): Add origtype parameter. Change all callers.
5685 (output_init_element): Likewise.
5686 (output_pending_init_elements): Pass origtype from init_node to
5687 output_init_element.
5688 (process_init_element): Pass origtype from c_expr to
5689 output_init_element.
5690 (c_finish_return): Add origtype parameter. Change all callers.
5691 * c-common.c (sync_resolve_size): Change params to VEC *. Change
5692 caller.
5693 (sync_resolve_params): Likewise.
5694 (sync_resolve_return): Change params to first_param. Change caller.
5695 (resolve_overloaded_builtins): Change params to VEC *. Change
5696 callers. Save first parameter around call to build_function_call_vec.
5697 * c-decl.c (finish_decl): Add origtype parameter. Change all
5698 callers. Call build_function_call_vec rather than
5699 build_function_call for cleanup.
5700 * c-tree.h: Update declarations.
5701 * c-common.h: Update declarations.
5702 * stub-objc.c (objc_rewrite_function_call): Change parameter from
5703 params to first_param.
5704 * target.h (struct gcc_target): Change resolve_overloaded_builtin
5705 params parameter from tree to void *.
5706 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5707 Change arglist parameter to have type void *, and to be a pointer
5708 to a VEC.
5709 * config/rs6000/rs6000-protos.h
5710 (altivec_resolve_overloaded_builtin): Update declaration.
5711 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
5712 fnargs parameter to have type void *, and to be a pointer to a
5713 VEC. Call build_function_call_vec instead of
5714 build_function_call.
5715 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
5716
5717 2009-04-20 Joey Ye <joey.ye@intel.com>
5718 Xuepeng Guo <xuepeng.guo@intel.com>
5719 H.J. Lu <hongjiu.lu@intel.com>
5720
5721 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
5722
5723 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
5724 (IX86_LEA_PRIORITY): Likewise.
5725 (distance_non_agu_define): New function.
5726 (distance_agu_use): Likewise.
5727 (ix86_lea_for_add_ok): Likewise.
5728 (ix86_dep_by_shift_count): Likewise.
5729
5730 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
5731 should split for LEA.
5732
5733 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
5734 function.
5735 (ix86_dep_by_shift_count): Likewise.
5736
5737 2009-04-20 Richard Guenther <rguenther@suse.de>
5738
5739 * expr.c (handled_component_p): Move ...
5740 * tree.h (handled_component_p): ... here.
5741 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
5742 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
5743 and REALPART_EXPR to be in one group.
5744
5745 2009-04-20 Richard Guenther <rguenther@suse.de>
5746
5747 * basic-block.h (get_all_dominated_blocks): Declare.
5748 * dominance.c (get_all_dominated_blocks): New function.
5749 * tree-cfg.c (get_all_dominated_blocks): Remove.
5750 (remove_edge_and_dominated_blocks): Adjust.
5751 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
5752 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
5753 instead of recursing.
5754
5755 2009-04-20 Doug Kwan <dougkwan@google.com>
5756
5757 * cgraph.h (cgraph_node_ptr): New type for vector functions.
5758 (struct cgraph_node_set_def): New type.
5759 (cgraph_node_set) New type. Also declare vector functions.
5760 (struct cgraph_node_set_element_def): New type.
5761 (cgraph_node_set_element): Ditto.
5762 (cgraph_node_set_iterator): New iterator type.
5763 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
5764 cgraph_node_set_remove, dump_cgraph_node_set,
5765 debug_cgraph_node_set): New prototypes.
5766 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
5767 cgraph_node_set_size): New inlines.
5768 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
5769 including cgraph.h.
5770 (struct ipa_opt_pass): Add struct cgraph_node_set_def
5771 argument to function 'write_summary'.
5772 * ipa.c: Include ggc.h.
5773 (hash_cgraph_node_set_element,
5774 eq_cgraph_node_set_element, cgraph_node_set_new,
5775 cgraph_node_set_add, cgraph_node_set_remove,
5776 cgraph_node_set_find, dump_cgraph_node_set,
5777 debug_cgraph_node_set): New functions.
5778 * Makefile.in (ipa.o): Add dependency on GGC_H.
5779
5780 2009-04-20 Ira Rosen <irar@il.ibm.com>
5781
5782 PR tree-optimization/39675
5783 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
5784 check of the return code of vect_schedule_slp. Check that
5785 stmt_vec_info still exists for the statement, before checking its
5786 vectorization type.
5787
5788 2009-04-20 Michael Matz <matz@suse.de>
5789
5790 * Makefile.in (generated_files): Take out $(simple_generated_c).
5791
5792 2009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
5793
5794 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
5795 (UINTPTR_TYPE): Likewise.
5796
5797 2009-04-19 Joseph Myers <joseph@codesourcery.com>
5798
5799 PR c/37481
5800 * c-typeck.c (digest_init): Check for initializing an array with a
5801 string literal.
5802
5803 2009-04-19 Joseph Myers <joseph@codesourcery.com>
5804
5805 PR c/19771
5806 * c-semantics.c (pop_stmt_list): Propagate
5807 STATEMENT_LIST_HAS_LABEL to parent statement list.
5808
5809 2009-04-19 Adam Nemet <anemet@caviumnetworks.com>
5810
5811 * config/mips/mips.h (mips_tune_attr): New macro.
5812 * config/mips/mips.md (cpu): Use it.
5813
5814 2009-04-19 Joseph Myers <joseph@codesourcery.com>
5815
5816 PR c/38243
5817 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
5818 declaring a tag.
5819
5820 2009-04-19 Diego Novillo <dnovillo@google.com>
5821
5822 * toplev.c (compile_file): Move call to coverage_finish ...
5823 * cgraphunit.c (ipa_passes): ... here.
5824 Call cgraph_process_new_functions.
5825 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
5826 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
5827
5828 2009-04-19 Jan Hubicka <jh@suse.cz>
5829
5830 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
5831 cfun.
5832 (dump_cgraph_node): Dump can throw external flag.
5833 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
5834
5835 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
5836
5837 PR c/32061
5838 PR c++/36954
5839 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
5840 * common.opt (Wlogical-op): Move from here...
5841 * c.opt (Wlogical-op): ... to here.
5842 * c-typeck.c (parser_build_binary_op): Update call to
5843 warn_logical_operator.
5844 * c-opts.c (c_common_post_options): Enable warn_logical_op with
5845 extra_warnings.
5846 * c-common.c (warn_logical_op): Update.
5847 * c-common.h (warn_logical_op): Update declaration.
5848
5849 2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
5850
5851 * tree.c (protected_set_expr_location): Fix formatting.
5852
5853 2009-04-18 Joseph Myers <joseph@codesourcery.com>
5854
5855 PR c/27676
5856 * c-typeck.c (readonly_warning): new.
5857 (build_unary_op, build_modify_expr): Use readonly_warning for
5858 storing into something readonly but not const-qualified.
5859
5860 2009-04-18 Joseph Myers <joseph@codesourcery.com>
5861
5862 PR c/22367
5863 * c-typeck.c (build_unary_op): Check for taking address of
5864 expression of type void.
5865
5866 2009-04-18 Joseph Myers <joseph@codesourcery.com>
5867
5868 PR c/35210
5869 * c-typeck.c (build_function_call): Check for calling a function
5870 with qualified void return types. Call require_complete_type when
5871 generating a trap.
5872
5873 2009-04-18 Jan Hubicka <jh@suse.cz>
5874
5875 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
5876 Set nothrow flag.
5877 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
5878 can_throw_external flag.
5879 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
5880 * ipa-pure-const.c (ignore_edge): New function.
5881 (propagate): Compute order for NOTHROW computation; set NOTHROWs
5882 only over can_throw_external edges.
5883 (local_pure_const): Add nothrow flag.
5884 * ipa-utils.c (searchc): Add ignore_edge callback.
5885 (ipa_utils_reduced_inorder): Add ignore_edge callback.
5886 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
5887 (set_nothrow_function_flags): Update cgraph.
5888 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
5889
5890 2009-04-18 Richard Guenther <rguenther@suse.de>
5891
5892 PR middle-end/39804
5893 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
5894 (fold_stmt): ... this and ...
5895 (fold_stmt_inplace): ... this.
5896 (fold_stmt_1): Fold references in calls and asms.
5897 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
5898
5899 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
5900
5901 * tree-vrp.c (ssa_name_nonzero_p): Remove.
5902 * tree.h: Remove the prototype for ssa_name_nonzero_p.
5903
5904 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
5905
5906 * tree.c (function_args_count): Remove.
5907 * tree.h: Remove the prototype for function_args_count.
5908
5909 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
5910
5911 * tree-iterator.c (expr_only): Remove.
5912 * tree.h: Remove the prototype for expr_only.
5913
5914 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
5915
5916 * reginfo.c (cannot_change_mode_set_regs): Remove.
5917 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
5918
5919 2009-04-08 Anatoly Sokolov <aesok@post.ru>
5920
5921 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
5922 whether operands 0 and 1 overlaps.
5923
5924 2009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
5925
5926 PR middle-end/36902
5927 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
5928 pointer. Use warning_at instead of warning.
5929 (search_for_addr_array): Likewise.
5930 (check_array_bounds): Likewise.
5931 (check_all_array_refs): Check that the incoming edge is not in the
5932 list of edges to be removed.
5933 (check_all_array_refs): Avoid the temporal pointer.
5934 (vrp_visit_cond_stmt): Fix typo.
5935 (simplify_switch_using_ranges): Handle the case where the switch
5936 index is an integer constant.
5937
5938 2009-04-18 Adam Nemet <anemet@caviumnetworks.com>
5939
5940 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
5941
5942 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
5943
5944 * doc/extend.texi, doc/invoke.texi: Fix typos.
5945
5946 2009-04-17 Cary Coutant <ccoutant@google.com>
5947
5948 * tree-flow-inline.h (get_lineno): Fix inverted test.
5949
5950 2009-04-17 Diego Novillo <dnovillo@google.com>
5951
5952 * tree-ssa-pre.c (create_expression_by_pieces): Remove
5953 assertion for AVAIL_OUT.
5954
5955 2009-04-17 Mike Frysinger <vapier@gentoo.org>
5956
5957 PR target/38627
5958 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
5959 * config/sh/linux-atomic.asm: Likewise.
5960
5961 2009-04-17 Diego Novillo <dnovillo@google.com>
5962
5963 * except.c (debug_eh_tree): New.
5964 (struct eh_region, struct eh_status): Move ...
5965 * except.h: ... here.
5966 (add_type_for_runtime): Declare extern.
5967 (lookup_type_for_runtime): Likewise.
5968 (debug_eh_tree): Declare.
5969 * Makefile.in (GTFILES): List except.h before except.c
5970
5971 2009-04-17 Diego Novillo <dnovillo@google.com>
5972
5973 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
5974 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
5975 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
5976 (find_vars_r): ... here.
5977 * tree-flow.h (find_referenced_vars_in): Declare.
5978 * tree-ssa-pre.c (create_expression_by_pieces): Assert
5979 that AVAIL_OUT exists for BLOCK.
5980 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
5981 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
5982 (tree-parloops.o): Likewise.
5983
5984 2009-04-17 Simon Baldwin <simonb@google.com>
5985
5986 * toplev.c (default_tree_printer): Add handling for %E format.
5987
5988 2009-04-17 Diego Novillo <dnovillo@google.com>
5989
5990 * tree-pretty-print.c (dump_generic_node): Add break after
5991 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
5992 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
5993 FUNCTION_TYPE together. Call print_struct_decl when printing
5994 structures and TDF_SLIM is not given.
5995 (print_struct_decl): Fix logic for detecting recursion.
5996
5997 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
5998
5999 PR 31567
6000 * gcc.c (create_at_file): New.
6001 (compile_input_file_p): New.
6002 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
6003 * main.c (main): Update call to toplev_main.
6004 * toplev.c (toplev_main): Change signature. Call expandargv.
6005 * toplev.h (toplev_main): Change signature.
6006
6007 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6008
6009 * dwarf2out.c (field_byte_offset): Use the type size as the field size
6010 if the latter is not constant.
6011
6012 2009-04-17 David Edelsohn <edelsohn@gnu.org>
6013
6014 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
6015
6016 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6017
6018 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
6019 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
6020
6021 2009-04-17 Richard Guenther <rguenther@suse.de>
6022
6023 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6024 Handle component references view-converting an invariant address.
6025
6026 2009-04-17 Adam Nemet <anemet@caviumnetworks.com>
6027
6028 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
6029 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
6030 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
6031 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
6032 Use @deftypevr rather than @deftypevar.
6033
6034 2009-04-17 Richard Guenther <rguenther@suse.de>
6035
6036 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
6037 (get_prop_source_stmt): Likewise.
6038 (can_propagate_from): Likewise.
6039
6040 2009-04-17 Andrew Stubbs <ams@codesourcery.com>
6041
6042 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
6043 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
6044 (--with-multilib-list): Add default value.
6045 * configure: Regenerate.
6046 * Makefile.in (TM_ENDIAN_CONFIG): Define.
6047 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
6048 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
6049 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
6050 Don't add default cpu to multilib list unnecessarily, but do enable
6051 the relevant compiler option..
6052 Add support for --with-multilib-list=<blank> and
6053 --with-multilib-list=!<somelib> to supress unwanted multilibs.
6054 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
6055 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
6056 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
6057 TM_MULTILIB_CONFIG.
6058 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
6059 (MULTILIB_OSDIRNAMES): New variable.
6060 * config/sh/t-1e: Delete file.
6061 * config/sh/t-mlib-sh1: Delete file.
6062 * config/sh/t-mlib-sh2: Delete file.
6063 * config/sh/t-mlib-sh2a: Delete file.
6064 * config/sh/t-mlib-sh2a-nofpu: Delete file.
6065 * config/sh/t-mlib-sh2a-single: Delete file.
6066 * config/sh/t-mlib-sh2a-single-only: Delete file.
6067 * config/sh/t-mlib-sh2e: Delete file.
6068 * config/sh/t-mlib-sh3e: Delete file.
6069 * config/sh/t-mlib-sh4: Delete file.
6070 * config/sh/t-mlib-sh4-nofpu: Delete file.
6071 * config/sh/t-mlib-sh4-single: Delete file.
6072 * config/sh/t-mlib-sh4-single-only: Delete file.
6073 * config/sh/t-mlib-sh4a: Delete file.
6074 * config/sh/t-mlib-sh4a-nofpu: Delete file.
6075 * config/sh/t-mlib-sh4a-single: Delete file.
6076 * config/sh/t-mlib-sh4a-single-only: Delete file.
6077 * config/sh/t-mlib-sh4al: Delete file.
6078 * config/sh/t-mlib-sh5-32media: Delete file.
6079 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
6080 * config/sh/t-mlib-sh5-64media: Delete file.
6081 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
6082 * config/sh/t-mlib-sh5-compact: Delete file.
6083 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
6084 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
6085 * doc/install.texi (Options specification): Add
6086 --with-multilib-list and --with-endian.
6087
6088 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
6089
6090 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
6091 REVISION_c.
6092 (OBJS-common): Add plugin-version.o.
6093 (plugin-version.o): New.
6094 * gcc-plugin.h (plugin_gcc_version): New.
6095 (plugin_default_version_check): New.
6096 (plugin_init_func, plugin_init): Add version argument.
6097 * plugin-version.c: New.
6098 * plugin.c (str_plugin_gcc_version_name): New.
6099 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
6100 pass it to the init function.
6101 (plugin_default_version_check): New.
6102
6103 2009-04-17 Richard Guenther <rguenther@suse.de>
6104
6105 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
6106 for decl-vs-decl disambiguation.
6107
6108 2009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
6109
6110 * config/s390/s390.h (s390_tune_attr): New macro definition.
6111 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
6112
6113 2009-04-17 Richard Guenther <rguenther@suse.de>
6114
6115 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
6116 (fold_stmt_r): Likewise.
6117 (maybe_fold_reference): New function.
6118 (fold_gimple_assign): Handle cases fold_stmt_r did.
6119 (fold_stmt): Do not use fold_stmt_r.
6120 (fold_stmt_inplace): Likewise.
6121
6122 2009-04-17 Richard Guenther <rguenther@suse.de>
6123
6124 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
6125 (record_equivalences_from_stmt): Remove useless checks and
6126 simplifications.
6127 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
6128 the type is already suitable.
6129
6130 2009-04-17 Paolo Bonzini <bonzini@gnu.org>
6131
6132 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
6133
6134 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
6135
6136 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
6137 (CMPtype): Define as __gcc_CMPtype.
6138
6139 2009-04-17 Aurelien Jarno <aurelien@aurel32.net>
6140
6141 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
6142 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
6143
6144 2009-04-17 Richard Guenther <rguenther@suse.de>
6145
6146 PR tree-optimization/39746
6147 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
6148 special-casing for builtins and static variable use/def.
6149 (call_may_clobber_ref_p_1): Likewise.
6150
6151 2009-04-16 Ian Lance Taylor <iant@google.com>
6152
6153 * df.h: Include "timevar.h".
6154 (struct df_problem): Change tv_id field to timevar_id_t.
6155 * tree-pass.h: Include "timevar.h".
6156 (struct opt_pass): Change tv_id field to timevar_id_t.
6157 * timevar.h (timevar_id_t): Define TV_NONE.
6158 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
6159 TV_NONE rather than tv_id != 0.
6160 (execute_one_pass): Likewise.
6161 * Makefile.in (DF_H): Add $(TIMEVAR_H).
6162 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
6163 dependencies to $(TREE_PASS_H).
6164 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
6165 to TV_NONE.
6166 (pass_branch_target_load_optimize2): Likewise.
6167 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
6168 (pass_outof_cfg_layout_mode): Likewise.
6169 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
6170 (pass_rebuild_cgraph_edges): Likewise.
6171 (pass_remove_cgraph_callee_edges): Likewise.
6172 * df-core.c (pass_df_initialize_opt): Likewise.
6173 (pass_df_initialize_no_opt): Likewise.
6174 (pass_df_finish): Likewise.
6175 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
6176 * except.c (pass_set_nothrow_function_flags): Likewise.
6177 (pass_convert_to_eh_region_ranges): Likewise.
6178 * final.c (pass_compute_alignments): Likewise.
6179 * function.c (pass_instantiate_virtual_regs): Likewise.
6180 (pass_init_function): Likewise.
6181 (pass_leaf_regs): Likewise.
6182 (pass_match_asm_constraints): Likewise.
6183 * gimple-low.c (pass_lower_cf): Likewise.
6184 (pass_mark_used_blocks): Likewise.
6185 * init-regs.c (pass_initialize_regs): Likewise.
6186 * integrate.c (pass_initial_value_sets): Likewise.
6187 * ira.c (pass_ira): Likewise.
6188 * jump.c (pass_cleanup_barriers): Likewise.
6189 * omp-low.c (pass_expand_omp): Likewise.
6190 (pass_lower_omp): Likewise.
6191 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
6192 * recog.c (pass_split_all_insns): Likewise.
6193 (pass_split_after_reload): Likewise.
6194 (pass_split_before_regstack): Likewise.
6195 (pass_split_before_sched2): Likewise.
6196 (pass_split_for_shorten_branches): Likewise.
6197 * reginfo.c (pass_reginfo_init): Likewise.
6198 (pass_subregs_of_mode_init): Likewise.
6199 (pass_subregs_of_mode_finish): Likewise.
6200 * passes.c (pass_postreload): Likewise.
6201 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
6202 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
6203 (pass_warn_function_return): Likewise.
6204 (pass_warn_function_noreturn): Likewise.
6205 * tree-complex.c (pass_lower_complex): Likewise.
6206 (pass_lower_complex_O0): Likewise.
6207 * tree-if-conv.c (pass_if_conversion): Likewise.
6208 * tree-into-ssa.c (pass_build_ssa): Likewise.
6209 * tree-mudflap.c (pass_mudflap_1): Likewise.
6210 (pass_mudflap_2): Likewise.
6211 * tree-nomudflap.c (pass_mudflap_1): Likewise.
6212 (pass_mudflap_2): Likewise.
6213 * tree-nrv.c (pass_return_slot): Likewise.
6214 * tree-object-size.c (pass_object_sizes): Likewise.
6215 * tree-optimize.c (pass_all_optimizations): Likewise.
6216 (pass_early_local_passes): Likewise.
6217 (pass_all_early_optimizations): Likewise.
6218 (pass_cleanup_cfg): Likewise.
6219 (pass_cleanup_cfg_post_optimizing): Likewise.
6220 (pass_free_datastructures): Likewise.
6221 (pass_free_cfg_annotations): Likewise.
6222 (pass_fixup_cfg): Likewise.
6223 (pass_init_datastructures): Likewise.
6224 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
6225 (pass_late_warn_uninitialized): Likewise.
6226 (pass_update_address_taken): Likewise.
6227 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
6228 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
6229 (pass_cse_sincos): Likewise.
6230 (pass_convert_to_rsqrt): Likewise.
6231 * tree-ssa-structalias.c (pass_build_alias): Likewise.
6232 * tree-stdarg.c (pass_stdarg): Likewise.
6233 * tree-tailcall.c (pass_tail_recursion): Likewise.
6234 (pass_tail_calls): Likewise.
6235 * tree-vect-generic.c (pass_lower_vector): Likewise.
6236 (pass_lower_vector_ssa): Likewise.
6237 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
6238
6239 2009-04-16 Joseph Myers <joseph@codesourcery.com>
6240
6241 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
6242 XLR entry.
6243 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
6244 Handle -march=xlr.
6245 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
6246 logical and signext.
6247
6248 2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
6249
6250 PR target/39767
6251 * config/sh/predicates.md (arith_operand): Check if the operand
6252 of TRUNCATE is a REG.
6253
6254 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6255
6256 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
6257 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
6258
6259 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6260
6261 * tree-iterator.c (tsi_split_statement_list_after,
6262 tsi_split_statement_list_before): Remove.
6263 * tree-iterator.h: Remove the prototypes for
6264 tsi_split_statement_list_after and tsi_split_statement_list_before.
6265
6266 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6267
6268 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
6269 * tree-ssa-propagate.h: Remove the prototype for
6270 stmt_makes_single_load.
6271
6272 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6273
6274 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
6275 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
6276
6277 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6278
6279 * tree-iterator.c (EXPR_LAST_BODY): Remove.
6280
6281 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6282
6283 * except.c (eh_region_outer_p): Remove.
6284 * except.h: Remove the prototype for eh_region_outer_p.
6285
6286 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
6287
6288 * function.c (current_function_assembler_name): Remove.
6289 * function.h: Remove the prototype for
6290 current_function_assembler_name.
6291
6292 2009-04-16 Ian Lance Taylor <iant@google.com>
6293
6294 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
6295 (add_reg_note): Call alloc_reg_note.
6296 * rtl.h (alloc_reg_note): Declare.
6297 * combine.c (try_combine): Use alloc_reg_note.
6298 (recog_for_combine, move_deaths): Likewise.
6299 (distribute_notes): Use alloc_reg_note and add_reg_note.
6300 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
6301 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
6302 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
6303
6304 2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
6305
6306 PR rtl-optimization/39762
6307 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
6308 ira_may_move_out_cost): Add comments about way of their usage.
6309 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
6310
6311 * ira-conflicts.c (process_regs_for_copy): Use function
6312 ira_get_register_move_cost instead of global
6313 ira_register_move_cost.
6314
6315 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
6316 color_pass, move_spill_restore, update_curr_costs): Ditto.
6317
6318 * ira-lives.c (process_single_reg_class_operands): Ditto.
6319
6320 * ira-emit.c (emit_move_list): Ditto.
6321
6322 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
6323 (record_reg_classes): Ditto. Use functions
6324 ira_get_register_move_cost and ira_get_may_move_cost instead of
6325 global vars ira_register_move_cost, ira_may_move_out_cost and
6326 ira_may_move_in_cost.
6327 (record_address_regs): Don't call ira_init_register_move_cost.
6328 Use function ira_get_may_move_cost instead of global
6329 ira_may_move_in_cost.
6330 (process_bb_node_for_hard_reg_moves): Use function
6331 ira_get_register_move_cost instead of global ira_register_move_cost.
6332 (ira_costs): Don't call ira_init_register_move_cost.
6333
6334 2009-04-16 Richard Guenther <rguenther@suse.de>
6335
6336 * tree-cfg.c (verify_gimple_assign_binary):
6337 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
6338 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
6339 (create_general_new_stmt): Note that this function is broken.
6340
6341 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
6342
6343 * common.opt (fhelp): Add Var(help_flag).
6344 * gcc-plugin.h (plugin_info): Add help.
6345 * plugin.c (plugin_name_args): Add help.
6346 (register_plugin_info): Set plugin->help.
6347 (print_help_one_plugin): New.
6348 (print_plugins_help): New.
6349 * plugin.h (print_plugins_help): New.
6350 * toplev.c (toplev_main): Call print_plugins_help if needed.
6351
6352 2009-04-16 Richard Guenther <rguenther@suse.de>
6353
6354 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
6355 (gimple_ior_addresses_taken_1): New function.
6356 (gimple_ior_addresses_taken): Likewise.
6357 * gimple.h (struct gimple_statement_with_ops_base): Remove
6358 addresses_taken member.
6359 (gimple_ior_addresses_taken): Declare.
6360 (gimple_addresses_taken, gimple_addresses_taken_ptr,
6361 gimple_set_addresses_taken): Remove.
6362 * ipa-reference.c (mark_address): New function.
6363 (scan_stmt_for_static_refs): Use it for marking addresses taken.
6364 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
6365 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
6366 (gimple_add_to_addresses_taken): Remove.
6367 (get_tmr_operands): Call mark_address_taken.
6368 (get_asm_expr_operands): Likewise.
6369 (get_expr_operands): Likewise.
6370 (build_ssa_operands): Do not clear the addresses_taken bitmap.
6371 (free_stmt_operands): Do not free it.
6372 * tree-ssa.c (delete_tree_ssa): Likewise.
6373 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
6374
6375 2009-04-16 Richard Guenther <rguenther@suse.de>
6376
6377 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
6378 (walk_stmt_load_store_ops): Likewise.
6379 * gimple.c (get_base_loadstore): New function.
6380 (walk_stmt_load_store_addr_ops): Likewise.
6381 (walk_stmt_load_store_ops): Likewise.
6382 * ipa-pure-const.c (check_op): Simplify.
6383 (check_load, check_store): New functions.
6384 (check_stmt): Use walk_stmt_load_store_ops.
6385 * ipa-reference.c (mark_load): Adjust signature.
6386 (mark_store): Likewise.
6387 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
6388
6389 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
6390
6391 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
6392 (plugin_info): New.
6393 * opts.c (common_handle_option): Don't call print_version.
6394 * plugin.c (plugin_name_args): Add version.
6395 (register_plugin_info): New.
6396 (register_callback): Handle PLUGIN_INFO.
6397 (try_init_one_plugin): New.
6398 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
6399 if failed to init.
6400 (finalize_one_plugin): New.
6401 (finalize_plugins): New.
6402 (print_one_plugin): New.
6403 (print_plugins_versions): New.
6404 * plugin.h (print_plugins_versions): New.
6405 (finalize_plugins): New.
6406 * toplev.c (compile_file): Don't call initialize_plugins.
6407 (print_version): Call print_plugins_versions.
6408 (toplev_main): Call initialize_plugins. Print version if needed.
6409 Call finalize_plugins.
6410
6411 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
6412
6413 * common.opt (fversion): New.
6414 * gcc.c (print_version): New.
6415 (process_command): Don't print the version. Just set print_version.
6416 (main): Print version. Call subprocesses if print_version and
6417 verbose_flag are set.
6418 * opts.c (common_handle_option): Handle OPT_fversion.
6419
6420 2009-04-16 Richard Guenther <rguenther@suse.de>
6421 Ira Rosen <irar@il.ibm.com>
6422
6423 PR tree-optimization/39698
6424 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
6425 type of the reduction variable. Only generate the def if
6426 it is needed.
6427
6428 * omp-low.c (expand_omp_for_generic): When converting to a pointer
6429 make sure to first convert to an integer of the same precision.
6430 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
6431 the type of the evolution correctly in computing the new
6432 induction variable base.
6433
6434 2009-04-16 Richard Guenther <rguenther@suse.de>
6435
6436 PR middle-end/39625
6437 * tree-cfg.c (make_blocks): Split statements with to-be
6438 abnormal SSA names on the lhs.
6439
6440 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
6441
6442 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
6443 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
6444 * c-typeck.c (really_start_incremental_init): Likewise.
6445 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
6446 (TARGET_INITIALIZER): Remove it.
6447 * target.h (struct target): Remove vector_opaque_p.
6448 * tree.c (build_opaque_vector_type): New.
6449 * tree.h (TYPE_VECTOR_OPAQUE): New.
6450 (build_opaque_vector_type): Declare.
6451 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
6452 * config/rs6000/rs6000.c (build_opaque_vector_type,
6453 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
6454 (rs6000_init_builtins): Use build_opaque_vector_type for
6455 opaque_V4SI_type_node.
6456
6457 2009-04-15 Catherine Moore <clm@codesourcery.com>
6458
6459 * debug.h (set_name): Declare.
6460 * dwarf2out.c (dwarf2out_set_name): Declare.
6461 (dwarf2_debug_hooks): Add set_name.
6462 (find_AT_string): New.
6463 (add_AT_string): Call find_AT_string.
6464 (dwarf2out_set_name): New.
6465 * cp/decl.c (grokdeclarator): Call set_name.
6466 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
6467 * debug.c (do_nothing_debug_hooks): Likewise.
6468 * dbxout.c (dbx_debug_hooks): Likewise.
6469 * sdbout.c (sdb_debug_hooks): Likewise.
6470
6471 2009-04-15 Michael Eager <eager@eagercon.com>
6472
6473 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
6474 reg for single-precision FPU.
6475 * config/rs6000/rs6000.md (movsi_internal1): Only for
6476 !TARGET_SINGLE_FPU.
6477 (movsi_internal1_single): New. Add pattern to move SI values to/from
6478 single-precision FP regs.
6479
6480 2009-04-15 Richard Guenther <rguenther@suse.de>
6481
6482 * omp-low.c (lower_rec_input_clauses): Build correct address
6483 expressions.
6484 (expand_omp_for_generic): Fix multiplication type.
6485 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
6486 (generate_memset_zero): Fix types.
6487 * tree-profile.c (prepare_instrumented_value): Correctly
6488 widen a pointer.
6489
6490 2009-04-15 Ian Lance Taylor <iant@google.com>
6491
6492 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
6493 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
6494 for -Wall and for -Wc++-compat.
6495 (c_common_post_options): For C++, set warn_enum_compare if not
6496 already set.
6497 * c-tree.h (struct c_expr): Add field original_type.
6498 (build_external_ref): Update declaration.
6499 * c-parser.c (c_parser_braced_init): Set original_type.
6500 (c_parser_initelt): Likewise.
6501 (c_parser_expr_no_commas): Likewise.
6502 (c_parser_conditional_expression): Likewise.
6503 (c_parser_cast_expression): Likewise.
6504 (c_parser_unary_expression): Likewise. Pull setting of
6505 original_code to top of function.
6506 (c_parser_sizeof_expression): Set original_type.
6507 (c_parser_alignof_expression): Likewise.
6508 (c_parser_postfix_expression): Likewise. Pull setting of
6509 original_code to top of function.
6510 (c_parser_postfix_expression_after_paren_type): Set original_type.
6511 (c_parser_postfix_expression_after_primary): Likewise.
6512 (c_parser_expression): Likewise.
6513 * c-typeck.c (build_external_ref): Add type parameter. Change all
6514 callers.
6515 (c_expr_sizeof_expr): Set original_type field.
6516 (parser_build_unary_op): Likewise.
6517 (parser_build_binary_op): Likewise. Optionally warn about
6518 comparisons of enums of different types.
6519 (digest_init): Set original_type field.
6520 (really_start_incremental_init): Likewise.
6521 (push_init_level, pop_init_level): Likewise.
6522 * doc/invoke.texi (Warning Options): -Wenum-compare now
6523 supported in C.
6524
6525 2009-04-15 Richard Guenther <rguenther@suse.de>
6526
6527 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
6528 out a necessary conversion.
6529 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
6530 names we didn't value number.
6531 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
6532
6533 2009-04-15 Richard Guenther <rguenther@suse.de>
6534
6535 PR tree-optimization/39764
6536 * tree-ssa-ccp.c (get_value): Canonicalize value with
6537 canonicalize_float_value.
6538
6539 2009-04-15 Jan Hubicka <jh@suse.cz>
6540
6541 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
6542 Wrong version of patch.
6543
6544 2009-04-15 Jan Hubicka <jh@suse.cz>
6545
6546 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
6547
6548 2009-04-15 Nathan Sidwell <nathan@codesourcery.com>
6549
6550 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
6551 our distinct integral and vector types.
6552
6553 2009-04-15 Rafael Avila de Espindola <espindola@google.com>
6554
6555 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
6556 * init.c (build_vtbl_address): Remove call to assemble_external.
6557
6558 2009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
6559
6560 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
6561 output for other floating point modes.
6562
6563 2009-04-14 Diego Novillo <dnovillo@google.com>
6564
6565 * diagnostic.c (diagnostic_report_diagnostic): Do not
6566 warn about loaded plugins for DK_ERROR and DK_WARNING.
6567 * c-decl.c (declspecs_add_type): Move call to
6568 invoke_plugin_callbacks ...
6569 * c-parser.c (c_parser_declspecs): ... here.
6570 * plugin.c (dump_active_plugins): Tidy output.
6571
6572 2009-04-14 Diego Novillo <dnovillo@google.com>
6573 Le-Chun Wu <lcwu@google.com>
6574
6575 * configure.ac: Add --enable-plugin support.
6576 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
6577 * Makefile.in (PLUGIN_H): Define.
6578 Export ENABLE_PLUGIN and GMPINC to site.exp.
6579 Add PLUGINLIBS to link command.
6580 Add/modify dependencies for plugin.o and files including plugin.h.
6581 (plugin.o): New.
6582 * config.in: Regenerate.
6583
6584 * opts.c (common_handle_option): Handle OPT_fplugin_ and
6585 OPT_fplugin_arg_.
6586
6587 2009-04-14 Le-Chun Wu <lcwu@google.com>
6588
6589 * tree-pass.h (register_one_dump_file): Add a prototype for
6590 register_one_dump_file.
6591 * toplev.c (compile_file): Call initialize_plugins.
6592 (do_compile): Call invoke_plugin_callbacks.
6593 (toplev_main): Call invoke_plugin_callbacks.
6594 * common.opt: Add -fplugin= and -fplugin-arg-.
6595 * gcc-plugin.h: New public header file for plugins to include.
6596 * plugin.c: New source file.
6597 * plugin.h: New internal header file.
6598 * passes.c (register_one_dump_file): Make it external.
6599
6600 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
6601
6602 2009-04-14 Diego Novillo <dnovillo@google.com>
6603
6604 * doc/plugins.texi: New.
6605 * doc/gccint.texi: Add reference to Plugins chapter.
6606 * doc/invoke.texi: Document -fplugin and -fplugin-arg
6607 * diagnostic.c (diagnostic_report_diagnostic): Warn about
6608 loaded plugins, if any.
6609 * timevar.def (TV_PLUGIN_INIT): Define.
6610 (TV_PLUGIN_RUN): Define.
6611 * plugin.c: Include timevar.h
6612 (plugins_active_p): New.
6613 (dump_active_plugins): New.
6614 (debug_active_plugins): New.
6615
6616 2009-04-14 Joseph Myers <joseph@codesourcery.com>
6617
6618 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
6619 library paths.
6620 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
6621
6622 2009-04-14 Kazu Hirata <kazu@codesourcery.com>
6623
6624 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
6625 the same as a minus without a shift.
6626
6627 2009-04-14 Nick Clifton <nickc@redhat.com>
6628
6629 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
6630 comparisons with small integers will always produce a short
6631 branch.
6632
6633 2009-04-14 Rafael Avila de Espindola <espindola@google.com>
6634
6635 Merge:
6636 2008-12-19 Diego Novillo <dnovillo@google.com>
6637
6638 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
6639
6640 2009-04-14 Richard Guenther <rguenther@suse.de>
6641
6642 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
6643 verification.
6644 (verify_gimple_assign_binary): Likewise. Handle shifts and
6645 rotates correctly.
6646 (verify_gimple_phi): Print the mismatched argument position.
6647 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6648 Fix types.
6649 (vect_update_init_of_dr): Likewise.
6650 * matrix-reorg.c (transform_access_sites): Do what the
6651 comment suggests.
6652 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
6653
6654 2009-04-13 Michael Eager <eager@eagercon.com>
6655
6656 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
6657 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
6658 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
6659 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
6660 remove duplicate config
6661
6662 2009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6663
6664 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
6665 file_name:line_number type locator of the call site.
6666
6667 2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
6668
6669 * genautomata.c: Put blank after comma.
6670 (automaton_decls): New.
6671 (struct unit_usage): Add comments to member next.
6672 (store_alt_unit_usage): Keep the list ordered.
6673 (unit_present_on_list_p, equal_alternatives_p): New.
6674 (check_regexp_units_distribution): Check units distribution
6675 correctness correctly.
6676 (main): Don't write automata if error is found. Return correct
6677 exit code.
6678
6679 * config/m68k/cf.md (cfv4_ds): Remove.
6680 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
6681 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
6682
6683 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
6684 power4-load-ext, power4-store, power4-store-update,
6685 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
6686 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
6687 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
6688 power4-sqrt, power4-isync): Modify reservation to make correct
6689 unit distribution to automata.
6690
6691 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
6692 power5-store-update, power5-two, power5-three, power5-lmul,
6693 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
6694
6695 2009-04-13 Adam Nemet <anemet@caviumnetworks.com>
6696
6697 * except.c (pass_set_nothrow_function_flags): Set name and add
6698 TODO_dump_func.
6699 (set_nothrow_function_flags): Mention in the dump file when
6700 changing a function to nothrow.
6701
6702 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
6703
6704 PR/39066
6705 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
6706 instead of unsigned long.
6707
6708 2009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6709
6710 * config/arm/arm.c (return_used_this_function): Remove.
6711 (arm_output_function_prologue): Remove use of
6712 return_used_this_function.
6713 (output_return_instruction): Replace use of
6714 return_used_this_function
6715 by cfun->machine->return_used_this_function.
6716 (arm_output_epilogue): Likewise.
6717 (arm_output_function_epilogue): Likewise.
6718 (thumb_unexpanded_epilogue): Likewise.
6719 * config/arm/arm.h (struct machine_function):
6720 New member return_used_this_function.
6721
6722 2009-04-12 Mark Mitchell <mark@codesourcery.com>
6723
6724 * doc/install.texi: Correct description of default directory for
6725 --with-gxx-include-dir.
6726
6727 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
6728
6729 * fold-const.c (build_range_check): Properly deal with enumeral and
6730 boolean base types.
6731
6732 2009-04-12 Steven Bosscher <steven@gcc.gnu.org>
6733
6734 * doc/invoke.texi (max_gcse_passes): Remove documentation.
6735 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
6736 * params.h (MAX_GCSE_PASSES): Remove.
6737 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
6738 in sequence. Remove ability to run multiple passes.
6739 (bypass_jumps): Report run as third CPROP pass.
6740
6741 2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
6742
6743 PR middle-end/39651
6744 * except.c (can_throw_external): Look at each insn in a SEQUENCE
6745 when deciding whether the whole SEQUENCE can throw.
6746
6747 2009-04-12 Uros Bizjak <ubizjak@gmail.com>
6748
6749 PR target/39740
6750 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
6751 offseted label references.
6752
6753 2009-04-11 Jan Hubicka <jh@suse.cz>
6754
6755 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
6756
6757 2009-04-11 Richard Guenther <rguenther@suse.de>
6758
6759 PR middle-end/39732
6760 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
6761 return variables as TREE_ADDRESSABLE.
6762
6763 2009-04-11 Richard Guenther <rguenther@suse.de>
6764
6765 PR tree-optimization/39713
6766 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
6767 reference trees have SSA_NAME operands.
6768
6769 2009-04-11 Richard Guenther <rguenther@suse.de>
6770
6771 PR c/39712
6772 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
6773 address expressions.
6774
6775 2009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
6776
6777 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
6778 match changes in Cygwin 1.7
6779 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
6780 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
6781
6782 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
6783
6784 PR tree-optimization/39701
6785 * doc/invoke.texi (Optimization Options): Document change in
6786 meaning and initialization of -fdelete-null-pointer-checks.
6787
6788 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
6789
6790 PR middle-end/39701
6791 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
6792
6793 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
6794 here.
6795
6796 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
6797
6798 2009-04-10 Chao-ying Fu <fu@mips.com>
6799
6800 * doc/tm.texi (Instruction Output): Document
6801 TARGET_ASM_FINAL_POSTSCAN_INSN.
6802 * target.h (final_postscan_insn): New field in asm_out.
6803 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
6804 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
6805 * final.c (final_scan_insn): Call
6806 targetm.asm_out.final_postscan_insn after outputting
6807 an asm macro and a normal instruction.
6808
6809 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
6810 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
6811 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
6812 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
6813 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
6814
6815 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
6816
6817 PR middle-end/39701
6818 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
6819 variables as non-NULL even with -fdelete-null-pointer-checks.
6820
6821 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
6822
6823 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
6824
6825 2009-04-09 H.J. Lu <hongjiu.lu@intel.com>
6826
6827 PR target/39678
6828 * config/i386/i386.c (classify_argument): Handle SCmode with
6829 (bit_offset % 64) != 0.
6830
6831 2009-04-09 Sandra Loosemore <sandra@codesourcery.com>
6832
6833 * doc/invoke.texi (Optimize Options): Add cross-reference to
6834 -Q --help=optimizers examples.
6835
6836 2009-04-10 Ben Elliston <bje@au.ibm.com>
6837
6838 PR target/36800
6839 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
6840 regalign for the reg == fpr and TDmode case.
6841
6842 2009-04-09 David Ayers <ayers@fsfe.org>
6843
6844 PR objc/29200
6845 * objc/objc-act.c (warn_with_method): Remove helper function.
6846 (check_duplicates): Call warning and inform directly.
6847 (really_start_method): Likewise.
6848
6849 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
6850
6851 * expmed.c (expand_divmod): Always use a comparison for a division
6852 by a large unsigned integer.
6853
6854 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
6855 for things others than variables or functions as nonzero.
6856
6857 2009-04-09 Nick Clifton <nickc@redhat.com>
6858
6859 * unwind-compat.c: Change copyright header to refer to version
6860 3 of the GNU General Public License with version 3.1 of the
6861 GCC Runtime Library Exception and to point readers at the
6862 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
6863 * config/alpha/crtfastmath.c: Likewise.
6864 * config/alpha/linux-unwind.h: Likewise.
6865 * config/alpha/qrnnd.asm: Likewise.
6866 * config/alpha/vms-crt0-64.c: Likewise.
6867 * config/alpha/vms-crt0.c: Likewise.
6868 * config/alpha/vms-dwarf2.asm: Likewise.
6869 * config/alpha/vms-dwarf2eh.asm: Likewise.
6870 * config/alpha/vms-psxcrt0-64.c: Likewise.
6871 * config/alpha/vms-psxcrt0.c: Likewise.
6872 * config/alpha/vms_tramp.asm: Likewise.
6873 * config/arc/initfini.c: Likewise.
6874 * config/arc/lib1funcs.asm: Likewise.
6875 * config/arm/bpabi-v6m.S: Likewise.
6876 * config/arm/bpabi.S: Likewise.
6877 * config/arm/bpabi.c: Likewise.
6878 * config/arm/crti.asm: Likewise.
6879 * config/arm/crtn.asm: Likewise.
6880 * config/arm/ieee754-df.S: Likewise.
6881 * config/arm/ieee754-sf.S: Likewise.
6882 * config/arm/lib1funcs.asm: Likewise.
6883 * config/arm/libunwind.S: Likewise.
6884 * config/arm/linux-atomic.c: Likewise.
6885 * config/arm/mmintrin.h: Likewise.
6886 * config/arm/pr-support.c: Likewise.
6887 * config/arm/unaligned-funcs.c: Likewise.
6888 * config/arm/unwind-arm.c: Likewise.
6889 * config/arm/unwind-arm.h: Likewise.
6890 * config/avr/libgcc.S: Likewise.
6891 * config/bfin/crti.s: Likewise.
6892 * config/bfin/crtlibid.s: Likewise.
6893 * config/bfin/crtn.s: Likewise.
6894 * config/bfin/lib1funcs.asm: Likewise.
6895 * config/bfin/linux-unwind.h: Likewise.
6896 * config/cris/arit.c: Likewise.
6897 * config/cris/cris_abi_symbol.c: Likewise.
6898 * config/darwin-64.c: Likewise.
6899 * config/darwin-crt2.c: Likewise.
6900 * config/darwin-crt3.c: Likewise.
6901 * config/darwin.h: Likewise.
6902 * config/dbxelf.h: Likewise.
6903 * config/dfp-bit.c: Likewise.
6904 * config/dfp-bit.h: Likewise.
6905 * config/elfos.h: Likewise.
6906 * config/fixed-bit.c: Likewise.
6907 * config/fixed-bit.h: Likewise.
6908 * config/fp-bit.c: Likewise.
6909 * config/fp-bit.h: Likewise.
6910 * config/fr30/crti.asm: Likewise.
6911 * config/fr30/crtn.asm: Likewise.
6912 * config/fr30/lib1funcs.asm: Likewise.
6913 * config/freebsd-spec.h: Likewise.
6914 * config/frv/cmovd.c: Likewise.
6915 * config/frv/cmovh.c: Likewise.
6916 * config/frv/cmovw.c: Likewise.
6917 * config/frv/frvbegin.c: Likewise.
6918 * config/frv/frvend.c: Likewise.
6919 * config/frv/lib1funcs.asm: Likewise.
6920 * config/glibc-stdint.h: Likewise.
6921 * config/h8300/clzhi2.c: Likewise.
6922 * config/h8300/crti.asm: Likewise.
6923 * config/h8300/crtn.asm: Likewise.
6924 * config/h8300/ctzhi2.c: Likewise.
6925 * config/h8300/fixunssfsi.c: Likewise.
6926 * config/h8300/lib1funcs.asm: Likewise.
6927 * config/h8300/parityhi2.c: Likewise.
6928 * config/h8300/popcounthi2.c: Likewise.
6929 * config/i386/ammintrin.h: Likewise.
6930 * config/i386/att.h: Likewise.
6931 * config/i386/avxintrin.h: Likewise.
6932 * config/i386/biarch64.h: Likewise.
6933 * config/i386/bmmintrin.h: Likewise.
6934 * config/i386/cpuid.h: Likewise.
6935 * config/i386/cross-stdarg.h: Likewise.
6936 * config/i386/crtfastmath.c: Likewise.
6937 * config/i386/crtprec.c: Likewise.
6938 * config/i386/cygming-crtbegin.c: Likewise.
6939 * config/i386/cygming-crtend.c: Likewise.
6940 * config/i386/cygwin.asm: Likewise.
6941 * config/i386/emmintrin.h: Likewise.
6942 * config/i386/gmm_malloc.h: Likewise.
6943 * config/i386/gthr-win32.c: Likewise.
6944 * config/i386/i386.h: Likewise.
6945 * config/i386/immintrin.h: Likewise.
6946 * config/i386/linux-unwind.h: Likewise.
6947 * config/i386/linux64.h: Likewise.
6948 * config/i386/mm3dnow.h: Likewise.
6949 * config/i386/mmintrin-common.h: Likewise.
6950 * config/i386/mmintrin.h: Likewise.
6951 * config/i386/nmmintrin.h: Likewise.
6952 * config/i386/pmm_malloc.h: Likewise.
6953 * config/i386/pmmintrin.h: Likewise.
6954 * config/i386/smmintrin.h: Likewise.
6955 * config/i386/sol2-c1.asm: Likewise.
6956 * config/i386/sol2-ci.asm: Likewise.
6957 * config/i386/sol2-cn.asm: Likewise.
6958 * config/i386/sol2-gc1.asm: Likewise.
6959 * config/i386/tmmintrin.h: Likewise.
6960 * config/i386/unix.h: Likewise.
6961 * config/i386/w32-unwind.h: Likewise.
6962 * config/i386/wmmintrin.h: Likewise.
6963 * config/i386/x86-64.h: Likewise.
6964 * config/i386/x86intrin.h: Likewise.
6965 * config/i386/xmmintrin.h: Likewise.
6966 * config/ia64/crtbegin.asm: Likewise.
6967 * config/ia64/crtend.asm: Likewise.
6968 * config/ia64/crtfastmath.c: Likewise.
6969 * config/ia64/crti.asm: Likewise.
6970 * config/ia64/crtn.asm: Likewise.
6971 * config/ia64/fde-glibc.c: Likewise.
6972 * config/ia64/lib1funcs.asm: Likewise.
6973 * config/ia64/linux-unwind.h: Likewise.
6974 * config/ia64/quadlib.c: Likewise.
6975 * config/ia64/unwind-ia64.c: Likewise.
6976 * config/linux.h: Likewise.
6977 * config/m32c/m32c-lib1.S: Likewise.
6978 * config/m32c/m32c-lib2-trapv.c: Likewise.
6979 * config/m32c/m32c-lib2.c: Likewise.
6980 * config/m32r/initfini.c: Likewise.
6981 * config/m68hc11/larith.asm: Likewise.
6982 * config/m68hc11/m68hc11-crt0.S: Likewise.
6983 * config/m68k/cf.md: Likewise.
6984 * config/m68k/crti.s: Likewise.
6985 * config/m68k/crtn.s: Likewise.
6986 * config/m68k/lb1sf68.asm: Likewise.
6987 * config/m68k/linux-unwind.h: Likewise.
6988 * config/mcore/crti.asm: Likewise.
6989 * config/mcore/crtn.asm: Likewise.
6990 * config/mcore/lib1.asm: Likewise.
6991 * config/mips/linux-unwind.h: Likewise.
6992 * config/mips/loongson.h: Likewise.
6993 * config/mips/mips16.S: Likewise.
6994 * config/mmix/crti.asm: Likewise.
6995 * config/mmix/crtn.asm: Likewise.
6996 * config/pa/fptr.c: Likewise.
6997 * config/pa/hpux-unwind.h: Likewise.
6998 * config/pa/lib2funcs.asm: Likewise.
6999 * config/pa/linux-atomic.c: Likewise.
7000 * config/pa/linux-unwind.h: Likewise.
7001 * config/pa/milli64.S: Likewise.
7002 * config/pa/quadlib.c: Likewise.
7003 * config/pa/stublib.c: Likewise.
7004 * config/picochip/libgccExtras/adddi3.asm: Likewise.
7005 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
7006 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
7007 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
7008 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
7009 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
7010 * config/picochip/libgccExtras/divmod15.asm: Likewise.
7011 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
7012 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
7013 * config/picochip/libgccExtras/longjmp.asm: Likewise.
7014 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
7015 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
7016 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
7017 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
7018 * config/picochip/libgccExtras/setjmp.asm: Likewise.
7019 * config/picochip/libgccExtras/subdi3.asm: Likewise.
7020 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
7021 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
7022 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
7023 * config/rs6000/750cl.h: Likewise.
7024 * config/rs6000/altivec.h: Likewise.
7025 * config/rs6000/biarch64.h: Likewise.
7026 * config/rs6000/crtresfpr.asm: Likewise.
7027 * config/rs6000/crtresgpr.asm: Likewise.
7028 * config/rs6000/crtresxfpr.asm: Likewise.
7029 * config/rs6000/crtresxgpr.asm: Likewise.
7030 * config/rs6000/crtsavfpr.asm: Likewise.
7031 * config/rs6000/crtsavgpr.asm: Likewise.
7032 * config/rs6000/darwin-asm.h: Likewise.
7033 * config/rs6000/darwin-fallback.c: Likewise.
7034 * config/rs6000/darwin-fpsave.asm: Likewise.
7035 * config/rs6000/darwin-ldouble.c: Likewise.
7036 * config/rs6000/darwin-tramp.asm: Likewise.
7037 * config/rs6000/darwin-unwind.h: Likewise.
7038 * config/rs6000/darwin-vecsave.asm: Likewise.
7039 * config/rs6000/darwin-world.asm: Likewise.
7040 * config/rs6000/e500crtres32gpr.asm: Likewise.
7041 * config/rs6000/e500crtres64gpr.asm: Likewise.
7042 * config/rs6000/e500crtres64gprctr.asm: Likewise.
7043 * config/rs6000/e500crtrest32gpr.asm: Likewise.
7044 * config/rs6000/e500crtrest64gpr.asm: Likewise.
7045 * config/rs6000/e500crtresx32gpr.asm: Likewise.
7046 * config/rs6000/e500crtresx64gpr.asm: Likewise.
7047 * config/rs6000/e500crtsav32gpr.asm: Likewise.
7048 * config/rs6000/e500crtsav64gpr.asm: Likewise.
7049 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
7050 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
7051 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
7052 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
7053 * config/rs6000/eabi-ci.asm: Likewise.
7054 * config/rs6000/eabi-cn.asm: Likewise.
7055 * config/rs6000/eabi.asm: Likewise.
7056 * config/rs6000/linux-unwind.h: Likewise.
7057 * config/rs6000/linux64.h: Likewise.
7058 * config/rs6000/paired.h: Likewise.
7059 * config/rs6000/paired.md: Likewise.
7060 * config/rs6000/ppc64-fp.c: Likewise.
7061 * config/rs6000/ppu_intrinsics.h: Likewise.
7062 * config/rs6000/rs6000.h: Likewise.
7063 * config/rs6000/si2vmx.h: Likewise.
7064 * config/rs6000/sol-ci.asm: Likewise.
7065 * config/rs6000/sol-cn.asm: Likewise.
7066 * config/rs6000/spe.h: Likewise.
7067 * config/rs6000/spu2vmx.h: Likewise.
7068 * config/rs6000/sysv4.h: Likewise.
7069 * config/rs6000/tramp.asm: Likewise.
7070 * config/rs6000/vec_types.h: Likewise.
7071 * config/s390/linux-unwind.h: Likewise.
7072 * config/s390/tpf-unwind.h: Likewise.
7073 * config/score/crti.asm: Likewise.
7074 * config/score/crtn.asm: Likewise.
7075 * config/sh/crt1.asm: Likewise.
7076 * config/sh/crti.asm: Likewise.
7077 * config/sh/crtn.asm: Likewise.
7078 * config/sh/divtab-sh4-300.c: Likewise.
7079 * config/sh/divtab-sh4.c: Likewise.
7080 * config/sh/divtab.c: Likewise.
7081 * config/sh/lib1funcs-4-300.asm: Likewise.
7082 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
7083 * config/sh/lib1funcs.asm: Likewise.
7084 * config/sh/lib1funcs.h: Likewise.
7085 * config/sh/linux-atomic.asm: Likewise.
7086 * config/sh/linux-unwind.h: Likewise.
7087 * config/sh/shmedia.h: Likewise.
7088 * config/sh/sshmedia.h: Likewise.
7089 * config/sh/ushmedia.h: Likewise.
7090 * config/sparc/crtfastmath.c: Likewise.
7091 * config/sparc/linux-unwind.h: Likewise.
7092 * config/sparc/sol2-c1.asm: Likewise.
7093 * config/sparc/sol2-ci.asm: Likewise.
7094 * config/sparc/sol2-cn.asm: Likewise.
7095 * config/spu/divmodti4.c: Likewise.
7096 * config/spu/divv2df3.c: Likewise.
7097 * config/spu/float_disf.c: Likewise.
7098 * config/spu/float_unsdidf.c: Likewise.
7099 * config/spu/float_unsdisf.c: Likewise.
7100 * config/spu/float_unssidf.c: Likewise.
7101 * config/spu/mfc_multi_tag_release.c: Likewise.
7102 * config/spu/mfc_multi_tag_reserve.c: Likewise.
7103 * config/spu/mfc_tag_release.c: Likewise.
7104 * config/spu/mfc_tag_reserve.c: Likewise.
7105 * config/spu/mfc_tag_table.c: Likewise.
7106 * config/spu/multi3.c: Likewise.
7107 * config/spu/spu_internals.h: Likewise.
7108 * config/spu/spu_intrinsics.h: Likewise.
7109 * config/spu/spu_mfcio.h: Likewise.
7110 * config/spu/vec_types.h: Likewise.
7111 * config/spu/vmx2spu.h: Likewise.
7112 * config/stormy16/stormy16-lib2.c: Likewise.
7113 * config/svr4.h: Likewise.
7114 * config/sync.c: Likewise.
7115 * config/v850/lib1funcs.asm: Likewise.
7116 * config/vxlib-tls.c: Likewise.
7117 * config/vxlib.c: Likewise.
7118 * config/vxworks-dummy.h: Likewise.
7119 * config/xtensa/crti.asm: Likewise.
7120 * config/xtensa/crtn.asm: Likewise.
7121 * config/xtensa/ieee754-df.S: Likewise.
7122 * config/xtensa/ieee754-sf.S: Likewise.
7123 * config/xtensa/lib1funcs.asm: Likewise.
7124 * config/xtensa/lib2funcs.S: Likewise.
7125 * config/xtensa/linux-unwind.h: Likewise.
7126 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7127 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
7128 * coretypes.h: Likewise.
7129 * crtstuff.c: Likewise.
7130 * defaults.h: Likewise.
7131 * dwarf2.h: Likewise.
7132 * emutls.c: Likewise.
7133 * gbl-ctors.h: Likewise.
7134 * gcov-io.h: Likewise.
7135 * ginclude/float.h: Likewise.
7136 * ginclude/iso646.h: Likewise.
7137 * ginclude/stdarg.h: Likewise.
7138 * ginclude/stdbool.h: Likewise.
7139 * ginclude/stddef.h: Likewise.
7140 * ginclude/stdfix.h: Likewise.
7141 * ginclude/stdint-gcc.h: Likewise.
7142 * ginclude/tgmath.h: Likewise.
7143 * gthr-aix.h: Likewise.
7144 * gthr-dce.h: Likewise.
7145 * gthr-gnat.c: Likewise.
7146 * gthr-gnat.h: Likewise.
7147 * gthr-lynx.h: Likewise.
7148 * gthr-mipssde.h: Likewise.
7149 * gthr-nks.h: Likewise.
7150 * gthr-posix.c: Likewise.
7151 * gthr-posix.h: Likewise.
7152 * gthr-posix95.h: Likewise.
7153 * gthr-rtems.h: Likewise.
7154 * gthr-single.h: Likewise.
7155 * gthr-solaris.h: Likewise.
7156 * gthr-tpf.h: Likewise.
7157 * gthr-vxworks.h: Likewise.
7158 * gthr-win32.h: Likewise.
7159 * gthr.h: Likewise.
7160 * libgcc2.c: Likewise.
7161 * libgcc2.h: Likewise.
7162 * libgcov.c: Likewise.
7163 * tsystem.h: Likewise.
7164 * typeclass.h: Likewise.
7165 * unwind-c.c: Likewise.
7166 * unwind-compat.h: Likewise.
7167 * unwind-dw2-fde-compat.c: Likewise.
7168 * unwind-dw2-fde-darwin.c: Likewise.
7169 * unwind-dw2-fde-glibc.c: Likewise.
7170 * unwind-dw2-fde.c: Likewise.
7171 * unwind-dw2-fde.h: Likewise.
7172 * unwind-dw2.c: Likewise.
7173 * unwind-dw2.h: Likewise.
7174 * unwind-generic.h: Likewise.
7175 * unwind-pe.h: Likewise.
7176 * unwind-sjlj.c: Likewise.
7177 * unwind.inc: Likewise.
7178 * config/arm/neon-gen.ml: Change generated copyright header to
7179 refer to version 3 of the GNU General Public License with
7180 version 3.1 of the GCC Runtime Library Exception and to point
7181 readers at the COPYING3 and COPYING3.RUNTIME files and the
7182 FSF's license web page.
7183 * config/arm/arm_neon.h: Regenerate.
7184
7185 2009-04-09 Jakub Jelinek <jakub@redhat.com>
7186
7187 * config/cris/cris.md: Change copyright header to refer to version
7188 3 of the GNU General Public License.
7189 * doc/install.texi2html: Change copyright header to refer to version
7190 3 of the GNU General Public License and to point readers at the
7191 COPYING3 file and the FSF's license web page.
7192 * config/vax/linux.h: Likewise.
7193
7194 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
7195
7196 * config/i386/i386.md (cmpcc): New.
7197 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
7198 (sync_compare_and_swap_cc*): Delete.
7199
7200 * config/s390/s390.c (s390_compare_emitted): Remove.
7201 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
7202 s390_compare_emitted used to be handled. Assert that modes match.
7203 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
7204 refer to sync_compare_and_swap_ccsi.
7205 * config/s390/s390.h (s390_compare_emitted): Remove.
7206 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
7207 instead of s390_compare_emitted.
7208 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
7209 instead of s390_compare_emitted.
7210 * config/s390/s390.md (cmpcc): New.
7211 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
7212 CC_REGNUM, do not pretend it's set.
7213 (sync_compare_and_swap_cc*): Delete.
7214 * config/s390/predicates.md (cc_reg_operand): New.
7215
7216 * expr.c (sync_compare_and_swap_cc): Delete.
7217 * optabs.h (sync_compare_and_swap_cc): Delete.
7218 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
7219 is being used with can_compare_p.
7220 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
7221 (find_cc_set): New.
7222 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
7223 look for a MODE_CC set instead. Use emit_store_flag.
7224 (expand_compare_and_swap_loop): Likewise, with some additional
7225 complication to avoid a force_reg when useless. Use
7226 emit_cmp_and_jump_insns.
7227 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
7228 * doc/md.texi (sync_compare_and_swap_cc): Merge with
7229 sync_compare_and_swap documentation.
7230
7231 2009-04-09 Jan Hubicka <jh@suse.cz>
7232
7233 * except.c (find_prev_try): Break out from ....
7234 (duplicate_eh_regions): ... here; properly update prev_try pointers
7235 when duplication part of tree.
7236 (dump_eh_tree): Improve dumping.
7237 (verify_eh_region): New.
7238 (verify_eh_tree): Use it.
7239
7240 2009-04-06 Richard Guenther <rguenther@suse.de>
7241
7242 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
7243 &ARRAY addresses by adjusting their types and prepending
7244 a conversion.
7245 * tree-cfg.c (verify_gimple_assign_single): Verify that
7246 addresses are correct.
7247
7248 2009-04-09 Richard Guenther <rguenther@suse.de>
7249
7250 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
7251 indices into an array reference if possible.
7252 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7253 Fold POINTER_PLUS_EXPR statements with invariant address.
7254
7255 2009-04-09 Alan Modra <amodra@bigpond.net.au>
7256
7257 PR target/39634
7258 * config.gcc (powerpc64-*-linux*): Always build biarch.
7259
7260 2009-04-09 Joseph Myers <joseph@codesourcery.com>
7261
7262 PR c/39613
7263 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
7264 it and pedwarn if this results in an INTEGER_CST.
7265
7266 2009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7267
7268 * doc/install.texi: Update minimum GMP version. Remove obsolete
7269 text in MPFR section.
7270
7271 2009-04-08 Jakub Jelinek <jakub@redhat.com>
7272
7273 * dwarf2out.c (class_scope_p): New static inline.
7274 (class_or_namespace_scope_p): Use it.
7275 (gen_variable_die): Use DW_TAG_member tag for static data member
7276 declarations instead of DW_TAG_variable.
7277
7278 PR middle-end/39573
7279 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
7280 variables.
7281
7282 2009-04-08 Richard Guenther <rguenther@suse.de>
7283
7284 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
7285 valueize random data.
7286
7287 2009-04-08 David Edelsohn <edelsohn@gnu.org>
7288
7289 * config.gcc (aix tm_file): Add aix-stdint.h.
7290 (aix tm clause use_gcc_stdint): Set to wrap.
7291 * config/rs6000/aix-stdint.h: New file.
7292
7293 2009-04-08 Richard Guenther <rguenther@suse.de>
7294
7295 PR middle-end/36291
7296 * tree-dfa.c (add_referenced_var): Do not recurse into
7297 global initializers.
7298 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
7299 exposed variables.
7300 (fold_const_aggregate_ref): Likewise.
7301
7302 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
7303
7304 * recog.c (ordered_comparison_operator): New.
7305 * gensupport.c (std_preds): Add it.
7306 * doc/md.texi (Machine-Independent Predicates): Document it.
7307
7308 2009-04-08 Jan Hubicka <jh@suse.cz>
7309
7310 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
7311 * function.h (rtl_eh): Remove exception_handler_label_map.
7312 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
7313 remove_exception_handler_label, for_each_eh_label_1): Remove.
7314 (rtl_remove_unreachable_regions): Remove.
7315 (convert_from_eh_region_ranges): Do not remove unreachable regions.
7316 (find_exception_handler_labels): Don't build the hashtable.
7317 (maybe_remove_eh_handler): Remove.
7318 (for_each_eh_label): Rewrite to walk the tree.
7319 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
7320 * except.h (maybe_remove_eh_handler): Remove.
7321 * passes.c (init_optimization_passes): Schedule second EH cleanup
7322 before out-of-ssa.
7323 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
7324 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
7325
7326 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
7327
7328 * genoutput.c (validate_optab_operands): New.
7329 (gen_insn, gen_expand): Call it.
7330
7331 * genflags.c (gen_insn): Detect misused iterators.
7332 (main): Pass line_no to gen_insn, exit with status 1 on error.
7333
7334 * genextract.c (line_no): Make global.
7335 (VEC_safe_set_locstr): Change assertion to error message.
7336 (main): Exit with status 1 on error.
7337
7338 2009-04-08 Joseph Myers <joseph@codesourcery.com>
7339
7340 PR c/39614
7341 PR c/39673
7342 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7343 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7344 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
7345 * c-convert.c (convert): Do not call fold on results of conversion
7346 functions when the result is a C_MAYBE_CONST_EXPR.
7347 * c-parser.c (c_parser_postfix_expression): Do not fold condition
7348 of __builtin_choose_expr.
7349 * c-typeck.c (remove_c_maybe_const_expr): New.
7350 (build_unary_op, build_conditional_expr, build_compound_expr,
7351 build_binary_op, c_objc_common_truthvalue_conversion): Call
7352 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
7353 integer operands.
7354
7355 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
7356
7357 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
7358 CODE to produce a new one. Add a prototype to use fold_convert_const
7359
7360 2009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
7361
7362 PR bootstrap/39660
7363 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
7364 mix declarations and code.
7365
7366 2009-04-08 Ben Elliston <bje@au.ibm.com>
7367
7368 * gcc.c: Replace `CC' with `GCC' throughout.
7369
7370 2009-04-07 H.J. Lu <hongjiu.lu@intel.com>
7371
7372 * doc/invoke.texi: Document Atom support.
7373
7374 2009-04-07 Jason Merrill <jason@redhat.com>
7375
7376 PR c++/25185
7377 * c-common.h, c-common.c: Add flag_pretty_templates.
7378 * c-opts.c (c_common_handle_option): Set it.
7379 * c.opt: Add -fno-pretty-templates.
7380 * doc/invoke.texi (C++ Dialect Options): Likewise.
7381
7382 2009-04-07 Uros Bizjak <ubizjak@gmail.com>
7383
7384 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
7385 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
7386 (ia64_expand_builtin): Likewise.
7387
7388 2009-04-07 Martin Jambor <mjambor@suse.cz>
7389
7390 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
7391 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
7392 ADDR_EXPRS are include too.
7393
7394 2009-04-07 Richard Guenther <rguenther@suse.de>
7395
7396 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
7397 decls are only used if passes as parameters or if they are
7398 local statics and the call is not to a builtin.
7399 (call_may_clobber_ref_p_1): Likewise.
7400
7401 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
7402
7403 * expr.c (do_store_flag): Remove last argument. Simplify code
7404 to avoid duplication of tests already done by can_compare_p.
7405 (expand_expr_real_1): Adjust caller.
7406
7407 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
7408
7409 * optabs.c (can_compare_p): Test the predicate of a
7410 cbranch and cstore pattern.
7411
7412 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
7413
7414 * expr.c (convert_move): Use emit_store_flag instead of
7415 "emulating" it.
7416
7417 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
7418
7419 * config/i386/i386.c (ix86_compare_emitted): Remove.
7420 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
7421 ix86_compare_op0 like ix86_compare_emitted used to be handled.
7422 * config/i386/i386.h (ix86_compare_emitted): Remove.
7423 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
7424 instead of ix86_compare_emitted.
7425 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
7426
7427 2009-04-07 Andrew Stubbs <ams@codesourcery.com>
7428
7429 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
7430 Add t-sysroot-suffix to tmake_file.
7431 * config/print-sysroot-suffix.sh: New file.
7432 * config/t-sysroot-suffix: New file.
7433
7434 2009-04-07 Ben Elliston <bje@au.ibm.com>
7435
7436 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
7437 as the latter produces a warning when the target does not support
7438 infinity.
7439
7440 2009-04-07 Ben Elliston <bje@au.ibm.com>
7441
7442 * dfp.c: Replace type punning assignments with memcpy throughout.
7443 * Makefile.in (dfp.o-warn): Remove.
7444
7445 2009-04-07 Alan Modra <amodra@bigpond.net.au>
7446
7447 PR target/39634
7448 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
7449 Include soft-fp/t-softfp after rs6000/t-linux64.
7450
7451 2009-04-06 Eric Botcazou <ebotcazou@adacore.com>
7452
7453 * stor-layout.c (set_sizetype): Use the full precision of their
7454 machine mode for bitsize types.
7455
7456 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>
7457
7458 * config/i386/i386.md: Revert 2 accidental checkins.
7459
7460 2009-04-06 Joey Ye <joey.ye@intel.com>
7461 Xuepeng Guo <xuepeng.guo@intel.com>
7462 H.J. Lu <hongjiu.lu@intel.com>
7463
7464 Atom pipeline model, tuning and insn selection.
7465 * config.gcc (atom): Add atom config options and target.
7466
7467 * config/i386/atom.md: New.
7468
7469 * config/i386/i386.c (atom_cost): New cost.
7470 (m_ATOM): New macro flag.
7471 (initial_ix86_tune_features): Set m_ATOM.
7472 (x86_accumulate_outgoing_args): Likewise.
7473 (x86_arch_always_fancy_math_387): Likewise.
7474 (processor_target): Add Atom cost.
7475 (cpu_names): Add Atom cpu name.
7476 (override_options): Set Atom ISA.
7477 (ix86_issue_rate): New case PROCESSOR_ATOM.
7478 (ix86_adjust_cost): Likewise.
7479
7480 * config/i386/i386.h (TARGET_ATOM): New target macro.
7481 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
7482 (TARGET_OPT_AGU): New target option.
7483 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
7484 (processor_type): Add PROCESSOR_ATOM.
7485
7486 * config/i386/i386.md (cpu): Add new value "atom".
7487 (use_carry, movu): New attr.
7488 (atom.md): Include atom.md.
7489 (adddi3_carry_rex64): Set attr "use_carry".
7490 (addqi3_carry): Likewise.
7491 (addhi3_carry): Likewise.
7492 (addsi3_carry): Likewise.
7493 (*addsi3_carry_zext): Likewise.
7494 (subdi3_carry_rex64): Likewise.
7495 (subqi3_carry): Likewise.
7496 (subhi3_carry): Likewise.
7497 (subsi3_carry): Likewise.
7498 (x86_movdicc_0_m1_rex64): Likewise.
7499 (*x86_movdicc_0_m1_se): Likewise.
7500 (x86_movsicc_0_m1): Likewise.
7501 (*x86_movsicc_0_m1_se): Likewise.
7502 (*adddi_1_rex64): Emit add insn as much as possible.
7503 (*addsi_1): Likewise.
7504 (return_internal): Set atom_unit.
7505 (return_internal_long): Likewise.
7506 (return_pop_internal): Likewise.
7507 (*rcpsf2_sse): Set atom_sse_attr attr.
7508 (*qrt<mode>2_sse): Likewise.
7509 (*prefetch_sse): Likewise.
7510
7511 * config/i386/i386-c.c (ix86_target_macros_internal): New case
7512 PROCESSOR_ATOM.
7513 (ix86_target_macros_internal): Likewise.
7514
7515 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
7516 (*prefetch_sse_rex): Likewise.
7517 (sse_rcpv4sf2): Likewise.
7518 (sse_vmrcpv4sf2): Likewise.
7519 (sse_sqrtv4sf2): Likewise.
7520 (<sse>_vmsqrt<mode>2): Likewise.
7521 (sse_ldmxcsr): Likewise.
7522 (sse_stmxcsr): Likewise.
7523 (*sse_sfence): Likewise.
7524 (sse2_clflush): Likewise.
7525 (*sse2_mfence): Likewise.
7526 (*sse2_lfence): Likewise.
7527 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
7528 (<sse>_movup<ssemodesuffixf2c>): Likewise.
7529 (avx_movdqu<avxmodesuffix>): Likewise.
7530 (avx_lddqu<avxmodesuffix>): Likewise.
7531 (sse2_movntv2di): Change attr "type" to "ssemov".
7532 (sse2_movntsi): Likewise.
7533 (rsqrtv8sf2): Change attr "type" to "sseadd".
7534 (sse3_addsubv2df3): Set attr "atom_unit".
7535 (sse3_h<plusminus_insn>v4sf3): Likewise.
7536 (*sse2_pmaddwd): Likewise.
7537 (*vec_extractv2di_1_rex64): Likewise.
7538 (*vec_extractv2di_1_avx): Likewise.
7539 (sse2_psadbw): Likewise.
7540 (ssse3_phaddwv8hi3): Likewise.
7541 (ssse3_phaddwv4hi3): Likewise.
7542 (ssse3_phadddv4si3): Likewise.
7543 (ssse3_phadddv2si3): Likewise.
7544 (ssse3_phaddswv8hi3): Likewise.
7545 (ssse3_phaddswv4hi3): Likewise.
7546 (ssse3_phsubwv8hi3): Likewise.
7547 (ssse3_phsubwv4hi3): Likewise.
7548 (ssse3_phsubdv4si3): Likewise.
7549 (ssse3_phsubdv2si3): Likewise.
7550 (ssse3_phsubswv8hi3): Likewise.
7551 (ssse3_phsubswv4hi3): Likewise.
7552 (ssse3_pmaddubsw128): Likewise.
7553 (sse3_pmaddubsw: Likewise.
7554 (ssse3_palignrti): Likewise.
7555 (ssse3_palignrdi): Likewise.
7556
7557 2009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
7558
7559 * doc/install.texi (Specific): Fix two cross-references to MinGW.
7560
7561 2009-04-06 Richard Guenther <rguenther@suse.de>
7562
7563 PR tree-optimization/28868
7564 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
7565 of which PHI results we inserted.
7566 (insert_into_preds_of_block): Record inserted PHIs.
7567 (eliminate): Eliminate redundant PHI nodes.
7568 (init_pre): Init inserted_phi_names.
7569
7570 2009-04-06 Richard Guenther <rguenther@suse.de>
7571
7572 PR tree-optimization/39643
7573 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
7574 IMAGPART_EXPRs of complex constants.
7575 (execute_fold_all_builtins): If we folded a call queue
7576 TODO_update_address_taken.
7577
7578 2009-04-06 Jan Hubicka <jh@suse.cz>
7579
7580 PR middle-end/39659
7581 * except.c (remove_unreachable_regions): Propagate may_contain_throw
7582 flag.
7583
7584 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
7585
7586 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
7587 delay slot.
7588 (ic_invalidate_array): Likewise.
7589
7590 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
7591
7592 * calls.c (emit_library_call_value_1): Fix a problem with parameter
7593 alignment for library calls.
7594
7595 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
7596
7597 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
7598 (mingw32 tm clause use_gcc_stdint): Set to wrap.
7599 * config/i386/mingw-stdint.h: New file.
7600
7601 2009-04-05 Richard Guenther <rguenther@suse.de>
7602
7603 PR tree-optimization/39648
7604 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
7605 our &A vs. &A[0] IL deficiencies.
7606
7607 2009-04-04 Jan Hubicka <jh@suse.cz>
7608
7609 * except.c (sjlj_find_directly_reachable_regions): Be ready for
7610 removed toplevel regions.
7611 (sjlj_mark_call_sites): Likewise.
7612
7613 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
7614
7615 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
7616 (cygwin tm clause use_gcc_stdint): Set to wrap.
7617 * config/i386/cygwin-stdint.h: New file.
7618
7619 2009-04-04 Richard Guenther <rguenther@suse.de>
7620
7621 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
7622 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
7623 single-argument PHIs if we are in loop-closed SSA form.
7624 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
7625 for the pre-condition.
7626 (slpeel_tree_peel_loop_to_edge): Likewise.
7627 (vect_build_loop_niters): Take an optional sequence to append stmts.
7628 (vect_generate_tmps_on_preheader): Likewise.
7629 (vect_do_peeling_for_loop_bound): Take extra guards for the
7630 pre-condition.
7631 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
7632 the cost model check.
7633 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7634 guards if we are going to peel. Do not apply versioning in that case.
7635 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
7636 (vect_do_peeling_for_loop_bound): Likewise.
7637 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
7638 loop bound only record extra pre-conditions, do not apply loop
7639 versioning.
7640
7641 2009-04-04 Richard Guenther <rguenther@suse.de>
7642
7643 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
7644 renaming code.
7645
7646 2009-04-04 Jan Hubicka <jh@suse.cz>
7647
7648 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
7649 last_basic_block for size of bb->index indexed array.
7650 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
7651 compute_out, link_btr_uses, build_btr_def_use_webs,
7652 build_btr_def_use_webs, migrate_btr_defs): Likewise.
7653
7654 2009-04-04 Jan Hubicka <jh@suse.cz>
7655
7656 * except.c (remove_eh_handler_and_replace): Break out from ...
7657 (remove_eh_handler): ... here.
7658 (bring_to_root): New function.
7659 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
7660 handled ones, bring others to root of tree.
7661
7662 2009-04-04 Jan Hubicka <jh@suse.cz>
7663
7664 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
7665 (all_phis_safe_to_merge): New function.
7666 (update_info): New structure.
7667 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
7668 (cleanup_empty_eh): Update SSA if possible.
7669
7670 2009-04-04 Richard Guenther <rguenther@suse.de>
7671
7672 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
7673 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
7674 (append_vuse): Likewise.
7675
7676 2009-04-04 Jakub Jelinek <jakub@redhat.com>
7677
7678 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
7679 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
7680 instead of REG_UNSAVED for DW_CFA_undefined.
7681 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
7682 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
7683 outermost frame.
7684
7685 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
7686
7687 PR target/39501
7688 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
7689 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
7690 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
7691
7692 2009-04-04 Richard Guenther <rguenther@suse.de>
7693
7694 PR tree-optimization/8781
7695 PR tree-optimization/37892
7696 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
7697 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
7698 (valueize_refs): Call it for *& valueizations.
7699 (shared_reference_ops_from_ref): Rename to ...
7700 (valueize_shared_reference_ops_from_ref): ... this and valueize.
7701 (shared_reference_ops_from_call): Rename to ...
7702 (valueize_shared_reference_ops_from_call): ... this and valueize.
7703 (vn_reference_lookup): Update.
7704 (visit_reference_op_call): Likewise.
7705 * tree-ssa-pre.c (phi_translate_1): Fold *&.
7706 (eliminate): Value-replace the call address in call statements.
7707
7708 2009-04-04 Richard Guenther <rguenther@suse.de>
7709
7710 PR tree-optimization/39636
7711 * tree-ssa-forwprop.c
7712 (forward_propagate_addr_into_variable_array_index): Check for
7713 GIMPLE_ASSIGN before accessing the rhs code.
7714
7715 2009-04-03 Jason Merrill <jason@redhat.com>
7716
7717 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
7718
7719 2009-04-03 Steve Ellcey <sje@cup.hp.com>
7720
7721 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
7722 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
7723 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
7724 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
7725 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
7726 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
7727 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
7728 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
7729 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
7730 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
7731 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
7732 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
7733 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
7734 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
7735 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
7736 Use fr_reg_or_fp01_operand instead of fr_register_operand
7737
7738 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
7739 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
7740 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
7741
7742 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
7743
7744 PR rtl-optimization/39607
7745 PR rtl-optimization/39631
7746
7747 Revert:
7748
7749 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7750 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7751 instead of DF_LR_OUT.
7752 * ira-lives.c (process_bb_node_lives): Ditto.
7753 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7754 instead of DF_LR_{OUT,IN}.
7755 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7756 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7757
7758 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
7759
7760 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
7761 (execute_lower_omp): Always run but take the short way out if -fopenmp
7762 is not given.
7763 (gate_lower_omp): Remove, forcing the pass manager to always run the
7764 pass and always set PROP_gimple_lomp.
7765 (pass_lower_omp): Remove gate function.
7766 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
7767 PROP_trees. Instead, require it.
7768 * ipa-cp.c (pass_ipa_cp): Likewise.
7769 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
7770 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
7771 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
7772 and PROP_gimple_leh.
7773
7774 2009-04-03 Richard Guenther <rguenther@suse.de>
7775
7776 PR middle-end/13146
7777 PR tree-optimization/23940
7778 PR tree-optimization/33237
7779 PR middle-end/33974
7780 PR middle-end/34093
7781 PR tree-optimization/36201
7782 PR tree-optimization/36230
7783 PR tree-optimization/38049
7784 PR tree-optimization/38207
7785 PR tree-optimization/38230
7786 PR tree-optimization/38301
7787 PR tree-optimization/38585
7788 PR middle-end/38895
7789 PR tree-optimization/38985
7790 PR tree-optimization/39299
7791 * tree-ssa-structalias.h: Remove.
7792 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
7793 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
7794 (struct vuse_element_d): Remove.
7795 (struct vuse_vec_d): Likewise.
7796 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
7797 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
7798 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
7799 VUSE_ELEMENT_VAR): Likewise.
7800 (struct voptype_d): Likewise.
7801 (NUM_VOP_FREE_BUCKETS): Likewise.
7802 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
7803 (struct stmt_operands_d): Remove.
7804 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
7805 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
7806 VDEF_NUM, VDEF_VECT): Likewise.
7807 (copy_virtual_operands): Remove.
7808 (operand_build_cmp): Likewise.
7809 (create_ssa_artificial_load_stmt): Likewise.
7810 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
7811 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
7812 vuse_index and mayuse_index members. Pack and move done and iter_type
7813 members to the front.
7814 (SSA_OP_VMAYUSE): Remove.
7815 (SSA_OP_VIRTUAL_USES): Adjust.
7816 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
7817 (unlink_stmt_vdef): Declare.
7818 (add_to_addressable_set): Remove.
7819 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
7820 (vrp_visit_stmt): Likewise.
7821 * doc/tree-ssa.texi (Alias analysis): Update.
7822 * doc/invoke.texi (max-aliased-vops): Remove docs.
7823 (avg-aliased-vops): Likewise.
7824 * tree-into-ssa.c (syms_to_rename): Remove.
7825 (need_to_update_vops_p): Likewise.
7826 (need_to_initialize_update_ssa_p): Rename to ...
7827 (update_ssa_initialized_fn): ... this. Track function we are
7828 initialized for.
7829 (symbol_marked_for_renaming): Simplify.
7830 (add_new_name_mapping): Do not set need_to_update_vops_p.
7831 (dump_currdefs): Use SYMS_TO_RENAME.
7832 (rewrite_update_stmt): Always walk all uses/defs.
7833 (dump_update_ssa): Adjust.
7834 (init_update_ssa): Take function argument. Track what we are
7835 initialized for.
7836 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
7837 (create_new_def_for): Initialize for cfun, assert we are initialized
7838 for cfun.
7839 (mark_sym_for_renaming): Simplify.
7840 (mark_set_for_renaming): Do not initialize update-ssa.
7841 (need_ssa_update_p): Simplify. Take function argument.
7842 (name_mappings_registered_p): Assert we ask for the correct function.
7843 (name_registered_for_update_p): Likewise.
7844 (ssa_names_to_replace): Likewise.
7845 (release_ssa_name_after_update_ssa): Likewise.
7846 (update_ssa): Likewise. Use SYMS_TO_RENAME.
7847 (dump_decl_set): Do not print a newline.
7848 (debug_decl_set): Do it here.
7849 (dump_update_ssa): And here.
7850 * tree-ssa-loop-im.c (move_computations): Adjust.
7851 (movement_possibility): Likewise.
7852 (determine_max_movement): Likewise.
7853 (gather_mem_refs_stmt): Likewise.
7854 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
7855 or NAME_MEMORY_TAG.
7856 * tree-complex.c (update_all_vops): Remove.
7857 (expand_complex_move): Adjust.
7858 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
7859 Simplify test for memory referencing statement. Exclude
7860 non-invariant ADDR_EXPRs.
7861 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
7862 * tree-loop-distribution.c (generate_memset_zero): Adjust.
7863 (rdg_flag_uses): Likewise.
7864 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
7865 related code.
7866 (tree_optimize_tail_calls_1): Also split the
7867 edge from the entry block if we have degenerate PHI nodes in
7868 the first basic block.
7869 * tree.c (init_ttree): Remove memory-tag related code.
7870 (tree_code_size): Likewise.
7871 (tree_node_structure): Likewise.
7872 (build7_stat): Re-write to be build6_stat.
7873 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
7874 (SSA_VAR_P): Adjust.
7875 (struct tree_memory_tag): Remove.
7876 (struct tree_memory_partition_tag): Likewise.
7877 (union tree_node): Adjust.
7878 (build7): Re-write to be build6.
7879 * tree-pass.h (pass_reset_cc_flags): Remove.
7880 (TODO_update_address_taken): New flag.
7881 (pass_simple_dse): Remove.
7882 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
7883 * params.h (MAX_ALIASED_VOPS): Remove.
7884 (AVG_ALIASED_VOPS): Likewise.
7885 * omp-low.c (expand_omp_taskreg): Update SSA form.
7886 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
7887 aliases the lhs in a copy stmt.
7888 * tree-ssa-dse.c (struct address_walk_data): Remove.
7889 (memory_ssa_name_same): Likewise.
7890 (memory_address_same): Likewise.
7891 (get_kill_of_stmt_lhs): Likewise.
7892 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
7893 unused stores. Look through PHI nodes into post-dominated regions.
7894 (dse_optimize_stmt): Simplify. Properly remove stores.
7895 (tree_ssa_dse): Compute dominators.
7896 (execute_simple_dse): Remove.
7897 (pass_simple_dse): Likewise.
7898 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
7899 gimple_loaded_syms and gimple_stored_syms computation.
7900 * toplev.c (dump_memory_report): Dump alias and pta stats.
7901 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
7902 (vn_reference_eq): Likewise.
7903 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
7904 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
7905 valueize_vuses): Remove.
7906 (get_def_ref_stmt_vuses): Simplify. Rename to ...
7907 (get_def_ref_stmt_vuse): ... this.
7908 (vn_reference_lookup_2): New function.
7909 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
7910 walking equivalent vuses. Simplify.
7911 (vn_reference_lookup): Likewise.
7912 (vn_reference_insert): Likewise.
7913 (vn_reference_insert_pieces): Likewise.
7914 (visit_reference_op_call): Simplify.
7915 (visit_reference_op_load): Likewise.
7916 (visit_reference_op_store): Likewise.
7917 (init_scc_vn): Remove shared_lookup_vuses initialization.
7918 (free_scc_vn): Remove shared_lookup_vuses freeing.
7919 (sort_vuses, sort_vuses_heap): Remove.
7920 (get_ref_from_reference_ops): Export.
7921 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
7922 vector with single vuse pointer.
7923 (vn_reference_lookup_pieces, vn_reference_lookup,
7924 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
7925 (shared_vuses_from_stmt): Remove.
7926 (get_ref_from_reference_ops): Declare.
7927 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
7928 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
7929 memory-tag related code.
7930 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
7931 (likely_value): Add comment, skip static-chain of call statements.
7932 (surely_varying_stmt_p): Adjust.
7933 (gimplify_and_update_call_from_tree): Likewise.
7934 (execute_fold_all_builtins): Do not rebuild alias info.
7935 (gimplify_and_update_call_from_tree): Properly update VOPs.
7936 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
7937 (copy_ref_info): Remove memory-tag related code.
7938 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
7939 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
7940 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
7941 computation.
7942 * tree-ssa-dom.c (gimple_p): Remove typedef.
7943 (eliminate_redundant_computations): Adjust.
7944 (record_equivalences_from_stmt): Likewise.
7945 (avail_expr_hash): Likewise.
7946 (avail_expr_eq): Likewise.
7947 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
7948 (stmt_makes_single_load): Likewise.
7949 (stmt_makes_single_store): Likewise.
7950 * tree-ssa-alias.c: Rewrite completely.
7951 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
7952 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
7953 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
7954 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
7955 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
7956 Remove public functions.
7957 (pass_reset_cc_flags): Remove.
7958 (pass_build_alias): Move ...
7959 * tree-ssa-structalias.c (pass_build_alias): ... here.
7960 * tree-ssa-alias.c (may_be_aliased): Move ...
7961 * tree-flow-inline.h (may_be_aliased): ... here.
7962 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
7963 count_uses_and_derefs): Move ...
7964 * gimple.c: ... here.
7965 * gimple.h (count_uses_and_derefs): Declare.
7966 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
7967 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
7968 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
7969 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
7970 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
7971 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
7972 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
7973 New functions.
7974 * tree-dfa.c (refs_may_alias_p): Move ...
7975 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
7976 * tree-ssa-alias.h: New file.
7977 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
7978 (statement_sink_location): Likewise.
7979 * opts.c (decode_options): Do not adjust max-aliased-vops or
7980 avg-aliased-vops values.
7981 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
7982 (TV_CALL_CLOBBER): Likewise.
7983 (TV_FLOW_SENSITIVE): Likewise.
7984 (TV_FLOW_INSENSITIVE): Likewise.
7985 (TV_MEMORY_PARTITIONING): Likewise.
7986 (TV_ALIAS_STMT_WALK): New timevar.
7987 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
7988 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
7989 (get_address_description): Remove memory-tag related code.
7990 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
7991 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
7992 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
7993 and immediate uses in statements. Document.
7994 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
7995 (dump_symbols): Remove.
7996 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
7997 * alias.c (get_deref_alias_set): New function split out from ...
7998 (get_alias_set): ... here.
7999 * alias.h (get_deref_alias_set): Declare.
8000 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
8001 type parameter. Remove restrict pointer handling. Create a
8002 ref-all pointer in case type-based alias sets do not conflict.
8003 (vect_analyze_data_refs): Remove SMT related code.
8004 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
8005 (vectorizable_load): Likewise.
8006 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
8007 (DR_SYMBOL_TAG, DR_VOPS): Remove.
8008 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
8009 Ignore vops and SMTs.
8010 (dr_analyze_alias): Likewise..
8011 (free_data_ref): Likewise.
8012 (create_data_ref): Likewise.
8013 (analyze_all_data_dependences): Likewise.
8014 (get_references_in_stmt): Adjust.
8015 * tree-flow-inline.h (gimple_aliases_computed_p,
8016 gimple_addressable_vars, gimple_call_clobbered_vars,
8017 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
8018 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
8019 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
8020 gimple_mem_ref_stats): Remove.
8021 (gimple_vop): New function.
8022 (op_iter_next_use): Remove vuses and mayuses cases.
8023 (op_iter_next_def): Remove vdefs case.
8024 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
8025 (clear_and_done_ssa_iter): Do not set removed fields.
8026 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
8027 Assert we are not iterating over vuses or vdefs if not also
8028 iterating over uses or defs.
8029 (op_iter_init_use): Likewise.
8030 (op_iter_init_def): Likewise.
8031 (op_iter_next_vdef): Remove.
8032 (op_iter_next_mustdef): Likewise.
8033 (op_iter_init_vdef): Likewise.
8034 (compare_ssa_operands_equal): Likewise.
8035 (link_use_stmts_after): Handle vuse operand.
8036 (is_call_used): Use is_call_clobbered.
8037 (is_call_clobbered): Global variables are always call clobbered,
8038 query the call-clobbers bitmap.
8039 (mark_call_clobbered): Ignore global variables.
8040 (clear_call_clobbered): Likewise.
8041 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
8042 virtual operands sanity check.
8043 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
8044 Remove.
8045 (TARGET_MEM_REF): Remove TMR_TAG operand.
8046 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
8047 Remove call-clobber related code.
8048 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
8049 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
8050 partitions or escape reason.
8051 (get_single_def_stmt, get_single_def_stmt_from_phi,
8052 get_single_def_stmt_with_phi): Remove.
8053 (dump_referenced_vars): Tidy.
8054 (get_ref_base_and_extent): Allow bare decls.
8055 (collect_dfa_stats): Adjust.
8056 * graphite.c (rename_variables_in_stmt): Adjust.
8057 (graphite_copy_stmts_from_block): Likewise.
8058 (translate_clast): Likewise.
8059 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
8060 (EXPR_DIES): New.
8061 (translate_vuse_through_block): Use the oracle.
8062 (phi_translate_1): Adjust.
8063 (value_dies_in_block_x): Use the oracle. Cache the outcome
8064 in EXPR_DIES.
8065 (valid_in_sets): Check if the VUSE for
8066 a REFERENCE is available.
8067 (eliminate): Do not remove stmts during elimination,
8068 instead queue and remove them afterwards.
8069 (do_pre): Do not rebuild alias info.
8070 (pass_pre): Run TODO_rebuild_alias before PRE.
8071 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
8072 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
8073 (mark_all_v_defs_stmt): Remove.
8074 (mark_all_v_defs_seq): Adjust.
8075 (sra_replace): Likewise.
8076 (scalarize_use): Likewise.
8077 (scalarize_copy): Likewise.
8078 (scalarize_init): Likewise.
8079 (scalarize_ldst): Likewise.
8080 (todoflags): Remove.
8081 (tree_sra): Do not rebuild alias info.
8082 (tree_sra_early): Adjust.
8083 (pass_sra): Run TODO_update_address_taken before SRA.
8084 * tree-predcom.c (set_alias_info): Remove.
8085 (prepare_initializers_chain): Do not call it.
8086 (mark_virtual_ops_for_renaming): Adjust.
8087 (mark_virtual_ops_for_renaming_list): Remove.
8088 (initialize_root_vars): Adjust.
8089 (initialize_root_vars_lm): Likewise.
8090 (prepare_initializers_chain): Likewise.
8091 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
8092 (may_propagate_copy_into_stmt): Likewise.
8093 (merge_alias_info): Do nothing for now.
8094 (propagate_tree_value_into_stmt): Adjust.
8095 (stmt_may_generate_copy): Likewise.
8096 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
8097 not mark symbols for renaming.
8098 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
8099 with the same statement, make sure to update the new pointed-to one.
8100 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
8101 call statements, do not mark symbols for renaming.
8102 (mark_operand_necessary): Dump something.
8103 (ref_may_be_aliased): New function.
8104 (mark_aliased_reaching_defs_necessary_1): New helper function.
8105 (mark_aliased_reaching_defs_necessary): Likewise.
8106 (mark_all_reaching_defs_necessary_1): Likewise.
8107 (mark_all_reaching_defs_necessary): Likewise.
8108 (propagate_necessity): Do not process virtual PHIs. For
8109 non-aliased loads mark all reaching definitions as necessary.
8110 For aliased loads and stores mark the immediate dominating
8111 aliased clobbers as necessary.
8112 (visited): New global static.
8113 (perform_tree_ssa_dce): Free visited bitmap after propagating
8114 necessity.
8115 (remove_dead_phis): Perform simple dead virtual PHI removal.
8116 (remove_dead_stmt): Properly unlink virtual operands when
8117 removing stores.
8118 (eliminate_unnecessary_stmts): Schedule PHI removal after
8119 stmt removal.
8120 * tree-ssa-ter.c (is_replaceable_p): Adjust.
8121 (process_replaceable): Likewise.
8122 (find_replaceable_in_bb): Likewise.
8123 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
8124 based on the single gimple vop.
8125 (verify_flow_insensitive_alias_info): Remove.
8126 (verify_flow_sensitive_alias_info): Likewise.
8127 (verify_call_clobbering): Likewise.
8128 (verify_memory_partitions): Likewise.
8129 (verify_alias_info): Likewise.
8130 (verify_ssa): Adjust..
8131 (execute_update_addresses_taken): Export. Update SSA
8132 manually. Optimize only when optimizing. Use a local bitmap.
8133 (pass_update_address_taken): Remove TODO_update_ssa, add
8134 TODO_dump_func.
8135 (pass_update_address_taken): Just use TODO_update_address_taken.
8136 (init_tree_ssa): Do not initialize addressable_vars.
8137 (verify_ssa): Verify new VUSE / VDEF properties.
8138 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
8139 Do not call verify_alias_info.
8140 (delete_tree_ssa): Clear the VUSE, VDEF operands.
8141 Do not free the loaded and stored syms bitmaps. Reset the escaped
8142 and callused solutions. Do not free addressable_vars.
8143 Remove memory-tag related code.
8144 (warn_uninitialized_var): Aliases are always available.
8145 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
8146 * lambda-code.c (can_put_in_inner_loop): Adjust.
8147 (can_put_after_inner_loop): Likewise.
8148 (perfect_nestify): Likewise.
8149 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
8150 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
8151 (vectorizable_conversion): Do not mark symbols for renaming.
8152 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
8153 (expand_call_inline): Unlink the calls virtual operands before
8154 replacing it.
8155 (tree_function_versioning): Do not call update_ssa if we are not
8156 updating clones. Simplify.
8157 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
8158 (propagate_with_phi): Likewise..
8159 * tree-outof-ssa.c (create_temp): Remove memory tag and call
8160 clobber code. Assert we are not aliased or global.
8161 * tree-flow.h: Include tree-ssa-alias.h
8162 (enum escape_type): Remove.
8163 (struct mem_sym_stats_d): Likewise.
8164 (struct mem_ref_stats_d): Likewise.
8165 (struct gimple_df): Add vop member. Remove global_var,
8166 call_clobbered_vars, call_used_vars, addressable_vars,
8167 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
8168 escaped and callused members.
8169 (struct ptr_info_def): Remove all members, add points-to solution
8170 member pt.
8171 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
8172 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
8173 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
8174 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
8175 (tree-ssa-alias.o): Likewise.
8176 (toplev.o): Add tree-ssa-alias.h
8177 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
8178 * gimple.c (gimple_set_bb): Fix off-by-one error.
8179 (is_gimple_reg): Do not handle memory tags.
8180 (gimple_copy): Also copy virtual operands.
8181 Delay updating the statement. Do not reset loaded and stored syms.
8182 (gimple_set_stored_syms): Remove.
8183 (gimple_set_loaded_syms): Likewise.
8184 (gimple_call_copy_skip_args): Copy the virtual operands
8185 and mark the new statement modified.
8186 * tree-ssa-structalias.c (may_alias_p): Remove.
8187 (set_uids_in_ptset): Take the alias set to prune with as
8188 parameter. Fold in the alias test of may_alias_p.
8189 (compute_points_to_sets): Compute whether a ptr is dereferenced
8190 in a local sbitmap.
8191 (process_constraint): Deal with &ANYTHING on the lhs, reject all
8192 other ADDRESSOF constraints on the lhs.
8193 (get_constraint_for_component_ref): Assert that we don't get
8194 ADDRESSOF constraints from the base of the reference.
8195 Properly generate UNKNOWN_OFFSET for DEREF if needed.
8196 (struct variable_info): Remove collapsed_to member.
8197 (get_varinfo_fc): Remove.
8198 (new_var_info): Do not set collapsed_to.
8199 (dump_constraint): Do not follow cycles.
8200 (dump_constraint_graph): Likewise.
8201 (build_pred_graph): Likewise.
8202 (build_succ_graph): Likewise.
8203 (rewrite_constraints): Likewise.
8204 (do_simple_structure_copy): Remove.
8205 (do_rhs_deref_structure_copy): Remove.
8206 (do_lhs_deref_structure_copy): Remove.
8207 (collapse_rest_of_var): Remove.
8208 (do_structure_copy): Re-implement.
8209 (pta_stats): New global variable.
8210 (dump_pta_stats): New function.
8211 (struct constraint_expr): Make offset signed.
8212 (UNKNOWN_OFFSET): Define special value.
8213 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
8214 (solution_set_expand): New helper function split out from ...
8215 (do_sd_constraint): ... here.
8216 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
8217 (do_ds_constraint): Likewise.
8218 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
8219 and CALLUSED = *CALLUSED.
8220 (set_union_with_increment): Make inc argument signed.
8221 (type_safe): Remove.
8222 (get_constraint_for_ptr_offset): Handle unknown and negative
8223 constant offsets.
8224 (first_vi_for_offset): Handle offsets before start. Bail
8225 out early for offsets beyond the variable extent.
8226 (first_or_preceding_vi_for_offset): New function.
8227 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
8228 Together with ESCAPED = *ESCAPED this properly computes reachability.
8229 (find_what_var_points_to): New function.
8230 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
8231 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
8232 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
8233 pt_solutions_intersect): New functions.
8234 (compute_call_used_vars): Remove.
8235 (compute_may_aliases): New main entry into PTA computation.
8236 * gimple.h (gimple_p): New typedef.
8237 (struct gimple_statement_base): Remove references_memory_p.
8238 (struct gimple_statement_with_memory_ops_base): Remove
8239 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
8240 members.
8241 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
8242 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
8243 gimple_set_references_memory): Remove.
8244 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
8245 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
8246 New functions.
8247 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
8248 (verify_expr): Allow RESULT_DECL.
8249 (gimple_duplicate_bb): Do not copy virtual operands.
8250 (gimple_duplicate_sese_region): Adjust.
8251 (gimple_duplicate_sese_tail): Likewise.
8252 (mark_virtual_ops_in_region): Remove.
8253 (move_sese_region_to_fn): Do not call it.
8254 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
8255 and pass_simple_dse.
8256 (execute_function_todo): Handle TODO_update_address_taken,
8257 call execute_update_addresses_taken for TODO_rebuild_alias.
8258 (execute_todo): Adjust.
8259 (execute_one_pass): Init dump files early.
8260 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
8261 call-clobbered.
8262 (create_general_new_stmt): Clear vops.
8263 * tree-ssa-reassoc.c (get_rank): Adjust.
8264 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
8265 symbols for renaming.
8266 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
8267 (PARAM_AVG_ALIASED_VOPS): Likewise.
8268 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
8269 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
8270 * tree-ssa-operands.c: Simplify for new virtual operand representation.
8271 (operand_build_cmp, copy_virtual_operands,
8272 create_ssa_artificial_load_stmt, add_to_addressable_set,
8273 gimple_add_to_addresses_taken): Remove public functions.
8274 (unlink_stmt_vdef): New function.
8275
8276 2009-04-03 Alan Modra <amodra@bigpond.net.au>
8277
8278 * config.gcc (powerpc-*-linux*): Merge variants.
8279
8280 2009-04-02 Chao-ying Fu <fu@mips.com>
8281 James Grosbach <james.grosbach@microchip.com>
8282
8283 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
8284 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
8285 cop0_sp_offset.
8286 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
8287 keep_interrupts_masked_p, use_debug_exception_return_p.
8288 (mips_attribute_table): Add interrupt, use_shadow_register_set,
8289 keep_interrupts_masked, use_debug_exception_return.
8290 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
8291 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
8292 New functions.
8293 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
8294 (mips_print_operand): Process COP0 registers to print $0 .. $31
8295 correctly for GAS to process.
8296 (mips_interrupt_extra_call_saved_reg_p): New function.
8297 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
8298 extra registers.
8299 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
8300 (mips_compute_frame_info): Add supports for interrupt context that
8301 includes doubleword accumulators and COP0 registers.
8302 (mips_for_each_saved_acc): New function.
8303 (mips_for_each_saved_gpr_and_fpr): Change the function name from
8304 mips_for_each_saved_reg.
8305 (mips_save_reg): Save accumulators.
8306 (mips_kernel_reg_p): A new for_each_rtx callback.
8307 (mips_expand_prologue): Support interrupt handlers.
8308 (mips_restore_reg): Restore accumulators.
8309 (mips_expand_epilogue): Support interrupt handlers.
8310 (mips_can_use_return_insn): Return false for interrupt handlers.
8311 (mips_epilogue_uses): New function.
8312 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
8313 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
8314 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
8315 cop0_move): New instructions.
8316 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
8317 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
8318 defines.
8319 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
8320 New defines.
8321 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
8322 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
8323 interrupt handlers, we use K0 as the temporary register.
8324 (EPILOGUE_USES): Change to a function call.
8325 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
8326 handlers, we use K0 as the temporary register.
8327
8328 * doc/extend.texi (Function Attributes): Document interrupt,
8329 use_shadow_register_set, keep_interrupts_masked,
8330 use_debug_exception_return for MIPS attributes.
8331
8332 2009-04-03 Alan Modra <amodra@bigpond.net.au>
8333
8334 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
8335 Remove a number of t-files from tmake_file.
8336 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
8337 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
8338 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
8339 target_prototype, not TARGET_PROTOTYPE.
8340 (LINK_OS_GNU_SPEC): Define.
8341 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
8342 and darwin-ldoubdle.c.
8343
8344 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8345
8346 PR driver/39293
8347 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
8348 (cpp_options): Ditto.
8349 (default_compilers): Ditto.
8350 (display_help): Ditto.
8351 (process_command): Ditto.
8352 (do_spec_1): Ditto.
8353 (set_input): Use lbasename instead of duplicate code.
8354 (save_temps_prefix): New static for -save-temps=obj.
8355 (save_temps_length): Ditto.
8356
8357 * doc/invoke.texi (-save-temps=obj): Document new variant to
8358 -save-temps switch.
8359
8360 2009-04-02 Jeff Law <law@redhat.com>
8361
8362 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
8363 variable.
8364
8365 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
8366
8367 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
8368 * configure: Regenerated.
8369
8370 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
8371
8372 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
8373 share the argument list.
8374
8375 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
8376
8377 Merge
8378
8379 2009-02-12 Diego Novillo <dnovillo@google.com>
8380
8381 * varpool.c (debug_varpool): New.
8382 * cgraph.h (debug_varpool): Declare.
8383
8384 2009-04-02 Jan Hubicka <jh@suse.cz>
8385
8386 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
8387 pass.
8388
8389 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
8390
8391 * config/i386/i386.c (ix86_abi): Move initialization to ...
8392 (override_options): Here.
8393
8394 2009-04-02 Christian Bruel <christian.bruel@st.com>
8395
8396 * config/sh/sh.c (sh_dwarf_register_span): New function.
8397 (TARGET_DWARF_REGISTER_SPAN): Define.
8398 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
8399
8400 2009-04-02 Ira Rosen <irar@il.ibm.com>
8401
8402 PR tree-optimization/39595
8403 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
8404 interleaved loads group is not greater than the SLP group size.
8405
8406 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
8407
8408 * builtins.c (is_builtin_name): New.
8409 (called_as_built_in): Use is_builtin_name.
8410 * tree.h (is_builtin_name): New.
8411 * varasm.c (incorporeal_function_p): Use is_builtin_name
8412
8413 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
8414
8415 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
8416
8417 2009-04-02 Dodji Seketeli <dodji@redhat.com>
8418
8419 PR c++/26693
8420 * c-decl.c (clone_underlying_type): Move this ...
8421 * c-common.c (set_underlying_type): ... here.
8422 Also, make sure the function properly sets TYPE_STUB_DECL() on
8423 the newly created typedef variant type.
8424 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
8425 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
8426 points.
8427
8428 2009-04-02 Richard Guenther <rguenther@suse.de>
8429
8430 PR tree-optimization/37221
8431 * tree-flow.h (degenerate_phi_result): Declare.
8432 * tree-ssa-dom.c (degenerate_phi_result): Export.
8433 * tree-scalar-evolution.c (analyze_initial_condition): If
8434 the initial condition is defined by a degenerate PHI node
8435 use the degenerate value.
8436
8437 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
8438
8439 PR rtl-optimization/39588
8440 * combine.c (merge_outer_ops): Do not set the constant when this
8441 is not necessary.
8442 (simplify_shift_const_1): Do not modify it either in this case.
8443
8444 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
8445
8446 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
8447 tuning is deprecated if -mtune value is set to an Itanium1 variant.
8448
8449 2009-04-01 Janis Johnson <janis187@us.ibm.com>
8450
8451 PR c/29027
8452 * c-lex.c (interpret_float): Default (no suffix) is double.
8453
8454 2009-04-1 Xinliang David Li <davidxl@google.com>
8455
8456 * config/i386/i386.c (legitimate_constant_p): Recognize
8457 all one vector constant.
8458
8459 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8460
8461 * config/vax/vax.c: Add #includes to silence warnings.
8462 Change #include order to silence two warnings.
8463
8464 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8465
8466 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
8467 (ASM_SPEC): Pass -k to the assembler for PIC code.
8468
8469 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8470
8471 * config.gcc: Add vax-*-linux* to the switch.
8472 * config/vax/linux.h: New file. (TARGET_VERSION,
8473 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
8474
8475 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8476
8477 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
8478 Use predicate macros instead of GET_CODE() == foo.
8479 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
8480 ashlsi3, rotrsi3, <unnamed>): Likewise.
8481
8482 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8483
8484 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
8485 jbbccihi, jbbccisi): Remova trailing whitespace.
8486 * config/vax/constraints.md: Likewise.
8487 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
8488 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
8489 * config/vax/predicates.md: Likewise.
8490 * config/vax/vax.c (print_operand_address, vax_output_int_move,
8491 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
8492 * config/vax/vax.h: Likewise.
8493 * config/vax/vax.md (nonlocal_goto): Likewise.
8494
8495 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8496
8497 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
8498 (indirectable_address_p, adjacent_operands_p): Add spaces around
8499 braces.
8500 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
8501
8502 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8503
8504 * config/vax/vax.c (legitimate_constant_address_p,
8505 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
8506 index_term_p, reg_plus_index_p, legitimate_address_p,
8507 vax_mode_dependent_address_p): Update comments to match functions
8508 modified by the recent int->bool conversion.
8509
8510 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8511
8512 * config/vax/builtins.md: Update copyright message.
8513 * config/vax/constraints.md: Likewise.
8514 * config/vax/netbsd-elf.h: Likewise.
8515 * config/vax/predicates.md: Likewise.
8516 * config/vax/vax-protos.h: Likewise.
8517 * config/vax/vax.c: Likewise.
8518 * config/vax/vax.h: Likewise.
8519 * config/vax/vax.md: Likewise.
8520 * config/vax/vax.opt: Likewise.
8521
8522 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
8523
8524 * config/vax/builtins.md (ffssi2, ffssi2_internal,
8525 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
8526 * config/vax/constraints.md (B, R): Likewise.
8527 * config/vax/predicates.md (external_memory_operand,
8528 nonimmediate_addsub_di_operand): Likewise.
8529 * config/vax/vax.c (vax_output_int_add): Likewise.
8530 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
8531 untyped_call): Likewise.
8532
8533 2009-04-01 Matt Thomas <matt@3am-software.com>
8534
8535 * config/vax/predicates.md: New file.
8536 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
8537 external_const_operand, nonsymbolic_operand, external_memory_operand,
8538 indirect_memory_operand, indexed_memory_operand,
8539 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
8540 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
8541 predicate.
8542 * config/vax/constraints.md: New file.
8543 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
8544 New constraint.
8545 * config/vax/builtins.md: New file.
8546 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
8547 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
8548 jbbccisi): Define.
8549 * config/vax/vax.opt (mqmath): Add option.
8550 * config/vax/vax.md (isfx): Extend with DI.
8551 (VAXintQH, VAXintQHSD): Define.
8552 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
8553 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
8554 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
8555 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
8556 (movdi): Update constraints and use vax_output_int_move().
8557 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
8558 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
8559 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
8560 nonlocal_goto): New.
8561 (mov<mode>): Extend accepted operand types.
8562 (subdi3_old): Rename from subdi3, change update constraints and use
8563 a new implementation.
8564 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
8565 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
8566 MOVE_RATIO, CLEAR_RATIO): Define.
8567 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
8568 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
8569 (PRINT_OPERAND): Redefine using a function instead of inlined code.
8570 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
8571 (split_quadword_operands): Make static and really allow variable
8572 splitting.
8573 (print_operand_address): Update for PIC generation.
8574 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
8575 indexable_address_p, fixup_mathdi_operand,
8576 vax_expand_addsub_di_operands, adjacent_operands_p): New.
8577 (vax_float_literal, legitimate_constant_p,
8578 indirectable_constant_address_p, index_term_p,
8579 reg_plus_index_p): Return bool instead of int.
8580 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
8581 where needed.
8582 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
8583 generation.
8584 (vax_output_conditional_branch): Indent.
8585 (legitimate_constant_address_p, indirectable_constant_address_p,
8586 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
8587 vax_mode_dependent_address_p): Return bool instead of int, update for
8588 PIC generation.
8589 * config/vax/vax-protos.h (legitimate_constant_address_p,
8590 legitimate_constant_p, legitimate_address_p,
8591 vax_mode_dependent_address_p): Change declaration to bool.
8592 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
8593 vax_expand_addsub_di_operands, vax_output_int_subtract,
8594 vax_output_movmemsi): Declare.
8595 (split_quadword_operands, vax_float_literal): Delete declaration.
8596 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
8597 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
8598 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
8599 ASM_OUTPUT_DWARF_PCREL): Define.
8600 (ASM_SPEC): Change definition to allow PIC generation.
8601
8602 2009-04-01 Steve Ellcey <sje@cup.hp.com>
8603
8604 * doc/sourcebuild.texi: Update front-end requirements.
8605
8606 2009-04-01 Jakub Jelinek <jakub@redhat.com>
8607
8608 PR target/39226
8609 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
8610 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
8611 (booldi3_internal3): Use boolean_or_operator instead of
8612 boolean_operator.
8613
8614 2009-04-01 Joseph Myers <joseph@codesourcery.com>
8615
8616 PR c/39605
8617 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
8618 declarator whose size is not an integer constant expression but
8619 folds to an integer constant, then treat it as a constant
8620 subsequently.
8621
8622 2009-04-01 Richard Guenther <rguenther@suse.de>
8623
8624 * fold-const.c (fold_plusminus_mult_expr): Do not fold
8625 i * 4 + 2 to (i * 2 + 1) * 2.
8626
8627 2009-04-01 Jakub Jelinek <jakub@redhat.com>
8628
8629 PR c/37772
8630 * c-parser.c (c_parser_asm_statement): Skip until close paren and
8631 return if c_parser_asm_string_literal returned NULL.
8632
8633 2009-04-01 Nick Clifton <nickc@redhat.com>
8634
8635 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
8636 already defined.
8637 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
8638 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
8639 other typedefs to avoid conflicts with libgcc2.c. Define labels
8640 to gain 16-bit bit-manipulation functions from libgcc2.c and then
8641 include it.
8642 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
8643 to gain 16-bit trapping arithmetic functions from libgcc2.c and
8644 then include it.
8645
8646 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
8647
8648 * varasm.c (default_function_rodata_section): Declare DOT as
8649 const char*.
8650
8651 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
8652 Andrey Galkin <agalkin@hypercom.com>
8653
8654 PR/39492
8655 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
8656 Make object_name unique for each process.
8657
8658 2009-04-01 Jakub Jelinek <jakub@redhat.com>
8659
8660 PR other/39591
8661 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
8662 addressable variables in the parallel that could go out of scope while
8663 running queued tasks.
8664
8665 2009-04-01 Anatoly Sokolov <aesok@post.ru>
8666
8667 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
8668 (CASE_VALUES_THRESHOLD): Redefine.
8669 * config/avr/avr.c (avr_override_options): Remove initialization of
8670 avr_case_values_threshold variable.
8671 (avr_case_values_threshold): Remove variable. Add new function.
8672 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
8673 * config/avr/avr.opt (mno-tablejump): Remove option.
8674 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
8675
8676 2009-04-01 DJ Delorie <dj@redhat.com>
8677
8678 * varasm.c (default_function_rodata_section): Don't assume
8679 anything about where the first '.' in the section name is.
8680
8681 2009-04-01 Alan Modra <amodra@bigpond.net.au>
8682
8683 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
8684 rs6000_emit_stack_tie.
8685
8686 2009-03-31 Ian Lance Taylor <iant@google.com>
8687
8688 * tree-eh.c (tree_remove_unreachable_handlers): Compare
8689 gimple_code with GIMPLE_RESX, not RESX.
8690
8691 2009-03-31 Joseph Myers <joseph@codesourcery.com>
8692
8693 * c-common.c (c_get_ident): New.
8694 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
8695
8696 2009-04-01 Ben Elliston <bje@au.ibm.com>
8697
8698 * config/rs6000/sysv4.opt (msdata): Improve option description.
8699
8700 2009-03-31 Steve Ellcey <sje@cup.hp.com>
8701
8702 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
8703 (divdf3_internal_lat): Remove.
8704 (divxf3_internal_lat): Remove.
8705 (divxf3_internal_thr): Remove.
8706 (divxf): Use divxf3_internal.
8707 * config/ia64/div.md (divsf3_internal_lat): New.
8708 (divdf3_internal_lat): New.
8709 (divxf3_internal): New.
8710
8711 2009-03-31 Joseph Myers <joseph@codesourcery.com>
8712
8713 PR c/448
8714 * Makefile.in (USE_GCC_STDINT): Define.
8715 (stmp-int-hdrs): Install stdint.h if applicable.
8716 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
8717 if known.
8718 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
8719 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
8720 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
8721 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8722 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8723 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8724 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8725 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8726 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
8727 (c_common_nodes_and_builtins): Initialize
8728 underlying_wchar_type_node. Do not initialize
8729 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
8730 nodes for new types.
8731 (c_stddef_cpp_builtins): Define macros for new types.
8732 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
8733 Remove.
8734 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
8735 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
8736 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
8737 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
8738 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
8739 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
8740 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
8741 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
8742 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
8743 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
8744 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
8745 int16_type_node, int32_type_node, int64_type_node,
8746 uint8_type_node, uint16_type_node, c_uint32_type_node,
8747 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
8748 int_least32_type_node, int_least64_type_node,
8749 uint_least8_type_node, uint_least16_type_node,
8750 uint_least32_type_node, uint_least64_type_node,
8751 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
8752 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
8753 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
8754 uintptr_type_node): Define.
8755 * c-cppbuiltin.c (builtin_define_constants,
8756 builtin_define_type_minmax): New.
8757 (builtin_define_stdint_macros): Define more macros.
8758 (c_cpp_builtins): Define more limit macros.
8759 (type_suffix): New.
8760 (builtin_define_type_max): Define in terms of
8761 builtin_define_type_minmax. Remove is_long parameter. All
8762 callers changed.
8763 * config.gcc (use_gcc_stdint): Define.
8764 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
8765 Add newlib-stdint.h for generic targets.
8766 * config/glibc-stdint.h, config/newlib-stdint.h,
8767 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
8768 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
8769 * config/score/score.h (UINTPTR_TYPE): Define.
8770 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
8771 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
8772 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8773 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8774 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8775 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8776 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8777 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
8778 * config/spu/spu.h (STDINT_LONG32): Define.
8779 * configure.ac (use_gcc_stdint): Substitute.
8780 * configure: Regenerate.
8781 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
8782 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
8783 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
8784 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
8785 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
8786 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
8787 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
8788 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
8789 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
8790 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
8791 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
8792 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
8793 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
8794 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
8795 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
8796 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
8797 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
8798 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
8799 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
8800 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
8801 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
8802 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
8803 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
8804 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8805 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8806 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8807 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8808 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8809 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
8810
8811 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
8812
8813 * loop-iv.c (suitable_set_for_replacement): Renamed from
8814 simplify_using_assignment; changed to return bool and to accept new
8815 args DEST and SRC. Return true iff we find a source/destination pair
8816 that can be used to make a replacement, and fill SRC and DEST if so.
8817 Remove arg ALTERED. Don't deal with altered regs here. All callers
8818 changed.
8819 (simplify_using_initial_values): Deal with altered regs here and track
8820 more precisely the effect they have on the validity of our expression.
8821
8822 * loop-iv.c (simplify_using_condition): A condition of the form
8823 (EQ REG CONST) can be used to simply make a substitution.
8824 (simplify_using_initial_values): Keep track of conditions we have seen
8825 and keep using them to simplify new expressions, while applying the
8826 same substitutions to them as to the expression.
8827
8828 * simplify-rtx.c (simplify_relational_operation_1): Simplify
8829 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
8830 GEU/LTU reversed.
8831
8832 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
8833 changed. Use this when trying to improve the upper bound.
8834 Generate the comparison by using simplify_gen_relational.
8835
8836 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
8837
8838 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
8839 functions.
8840 (simplify_using_assignment, simplify_using_initial_values): Call
8841 replace_in_expr to make replacements. Call replace_single_def_regs
8842 once on the initial version of the expression.
8843
8844 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8845
8846 PR target/27237
8847 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
8848
8849 2009-03-31 Richard Guenther <rguenther@suse.de>
8850
8851 PR middle-end/31029
8852 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
8853 equality comparisons. Fold C - X CMP X if C % 2 == 1.
8854
8855 2009-03-31 Richard Guenther <rguenther@suse.de>
8856
8857 * tree.h (div_if_zero_remainder): Declare.
8858 * fold-const.c (div_if_zero_remainder): Export.
8859 * tree-ssa-forwprop.c
8860 (forward_propagate_addr_into_variable_array_index): Handle
8861 constant array index addition outside of the variable index.
8862
8863 2009-03-31 Joseph Myers <joseph@codesourcery.com>
8864
8865 PR target/39592
8866 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
8867 define_splits, floatunssi<mode>2): Require x87 conversions from
8868 DImode to be permitted.
8869
8870 2009-03-31 Joseph Myers <joseph@codesourcery.com>
8871
8872 PR preprocessor/15638
8873 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
8874
8875 2009-03-31 Richard Guenther <rguenther@suse.de>
8876
8877 PR middle-end/23401
8878 PR middle-end/27810
8879 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
8880 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
8881 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
8882 a separate statement.
8883 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
8884 (lookup_tmp_var): Likewise.
8885 (is_gimple_formal_tmp_or_call_rhs): Remove.
8886 (is_gimple_reg_or_call_rhs): Rename to ...
8887 (is_gimple_reg_rhs_or_call): ... this.
8888 (is_gimple_mem_or_call_rhs): Rename to ...
8889 (is_gimple_mem_rhs_or_call): ... this.
8890 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
8891 DECL_GIMPLE_REG_P only if is_formal is true.
8892 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
8893 for non-proper post-modify expression gimplification.
8894 (gimplify_self_mod_expr): For post-modify expressions gimplify
8895 the lvalue to a minimal lvalue.
8896 (rhs_predicate_for): Remove formal temp case.
8897 (gimplify_modify_expr_rhs): Likewise.
8898 (gimplify_addr_expr): Use is_gimple_reg.
8899 (gimplify_expr): Remove formal temp cases.
8900 (gimple_regimplify_operands): Likewise.
8901 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
8902 and FILTER_EXPR like constants.
8903 * gimple.c (walk_gimple_op): Fix val_only initialization, use
8904 is_gimple_reg.
8905 (is_gimple_formal_tmp_rhs): Remove.
8906 (is_gimple_reg_rhs): Remove special casing.
8907 (is_gimple_mem_rhs): Fix.
8908 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
8909 (is_gimple_formal_tmp_var): Remove.
8910 (is_gimple_formal_tmp_reg): Likewise.
8911 (is_gimple_min_lval): Allow invariant component ref parts.
8912 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
8913 is_gimple_formal_tmp_reg): Remove declarations.
8914 * tree-cfg.c (verify_expr): Verify that variables with address
8915 taken do not have DECL_GIMPLE_REG_P set.
8916 * tree-mudflap.c (mf_build_check_statement_for): Use
8917 force_gimple_operand instead of gimplify_expr.
8918
8919 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
8920
8921 * modulo-sched.c (sms_schedule_by_order): Pass the actual
8922 schedulable rows to compute_split_row.
8923
8924 2009-03-31 Ben Elliston <bje@au.ibm.com>
8925
8926 PR target/31635
8927 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
8928 OPT_mvrsave.
8929
8930 2009-03-31 Alan Modra <amodra@bigpond.net.au>
8931
8932 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
8933 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
8934 * configure: Regenerate.
8935 * config.in: Regenerate.
8936 * config/rs6000/rs6000.opt (mtls-markers): Add.
8937 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
8938 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
8939 (tls_ld_aix, tls_ld_sysv): Likewise.
8940 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
8941 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
8942
8943 2009-03-31 Alan Modra <amodra@bigpond.net.au>
8944
8945 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
8946
8947 2009-03-30 Jan Hubicka <jh@suse.cz>
8948
8949 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
8950 out of RESX.
8951 (tree_remove_unreachable_handlers): Cleanup EH predecestor
8952 detection and label handling.
8953
8954 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8955
8956 * ira-int.h (ira_allocno): Rename left_conflicts_num to
8957 left_conflicts_size.
8958 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
8959 ALLOCNO_LEFT_CONFLICTS_SIZE.
8960
8961 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
8962 remove_allocno_from_bucket_and_push,
8963 allocno_spill_priority_compare, push_allocnos_to_stack,
8964 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
8965 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
8966 (setup_allocno_left_conflicts_num): Ditto. Rename to
8967 setup_allocno_left_conflicts_size.
8968 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
8969 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
8970 setup_allocno_left_conflicts_size instead of
8971 setup_allocno_left_conflicts_num.
8972
8973 * ira-build.c (ira_create_allocno): Use
8974 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
8975 ALLOCNO_LEFT_CONFLICTS_NUM.
8976
8977 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8978
8979 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8980 instead of DF_LR_OUT.
8981
8982 * ira-lives.c (process_bb_node_lives): Ditto.
8983
8984 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8985 instead of DF_LR_{OUT,IN}.
8986
8987 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8988
8989 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8990
8991 2009-03-30 Jan Hubicka <jh@suse.cz>
8992
8993 * except.c (label_to_region_map): Fix thinko.
8994
8995 2009-03-30 Steve Ellcey <sje@cup.hp.com>
8996
8997 PR middle-end/38237
8998 * tree.h (tree_find_value): New declaration.
8999 * tree.c (tree_find_value): New function.
9000 * varasm.c (assemble_external): Avoid duplicate entries on lists.
9001
9002 2009-03-30 Jakub Jelinek <jakub@redhat.com>
9003
9004 PR debug/39563
9005 * c-decl.c (struct c_binding): Add locus field.
9006 (bind): Add locus argument, set locus field from it.
9007 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
9008 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
9009 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
9010 implicitly_declare, undeclared_variable, lookup_label,
9011 declare_label, c_make_fname_decl, c_builtin_function,
9012 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
9013 bind callers.
9014
9015 2009-03-30 H.J. Lu <hongjiu.lu@intel.com>
9016
9017 PR target/38781
9018 * config/i386/i386.c (classify_argument): Check total size of
9019 structure.
9020
9021 2009-03-30 Martin Jambor <mjambor@suse.cz>
9022
9023 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
9024 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
9025 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
9026 respectively.
9027
9028 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
9029 seen_variable_array_ref while also traversing a union.
9030
9031 * tree-inline.c (optimize_inline_calls): Do not call
9032 cgraph_node_remove_callees.
9033 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
9034 (pass_remove_cgraph_callee_edges): New variable.
9035 * passes.c (init_optimization_passes): Add
9036 pass_remove_cgraph_callee_edges after early inlining and before all
9037 late intraprocedural passes.
9038
9039 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
9040
9041 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9042
9043 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
9044 Fix typos in names.
9045
9046 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9047
9048 * combine.c (simplify_comparison): Use have_insn_for.
9049 * dojump.c (do_jump): Likewise.
9050
9051 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9052
9053 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
9054 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
9055 sparc_compare_op0 like sparc_compare_emitted used to be handled.
9056 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
9057 instead of sparc_compare_emitted.
9058 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
9059 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
9060 instead of sparc_compare_emitted.
9061
9062 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9063
9064 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
9065 enter/exit cfglayout mode.
9066 (pass_partition_block): Require it.
9067 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
9068 (combine_instructions): Track basic blocks instead of labels.
9069 (update_cfg_for_uncondjump): New.
9070 (try_combine): Use it. Update jumps after rescanning.
9071 (pass_combine): Require PROP_cfglayout.
9072 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
9073
9074 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9075
9076 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
9077 Provide/destroy PROP_cfglayout respectively.
9078 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
9079 * tree-pass.h (PROP_cfglayout): New.
9080
9081 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
9082
9083 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
9084 fold_convert_const_fixed_from_fixed,
9085 fold_convert_const_fixed_from_int,
9086 fold_convert_const_fixed_from_real, fold_negate_const): Do not
9087 set TREE_CONSTANT_OVERFLOW.
9088 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
9089 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
9090
9091 2009-03-30 Ira Rosen <irar@il.ibm.com>
9092
9093 * tree-vect-loop-manip.c: New file.
9094 * tree-vectorizer.c: Update documentation and included files.
9095 (vect_loop_location): Make extern.
9096 (rename_use_op): Move to tree-vect-loop-manip.c
9097 (rename_variables_in_bb, rename_variables_in_loop,
9098 slpeel_update_phis_for_duplicate_loop,
9099 slpeel_update_phi_nodes_for_guard1,
9100 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
9101 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
9102 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
9103 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
9104 find_loop_location): Likewise.
9105 (new_stmt_vec_info): Move to tree-vect-stmts.c.
9106 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
9107 get_vectype_for_scalar_type, vect_is_simple_use,
9108 supportable_widening_operation, supportable_narrowing_operation):
9109 Likewise.
9110 (bb_in_loop_p): Move to tree-vect-loop.c.
9111 (new_loop_vec_info, destroy_loop_vec_info,
9112 reduction_code_for_scalar_code, report_vect_op,
9113 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
9114 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
9115 (vect_supportable_dr_alignment): Likewise.
9116 * tree-vectorizer.h (tree-data-ref.h): Include.
9117 (vect_loop_location): Declare.
9118 Reorganize function declarations according to the new file structure.
9119 * tree-vect-loop.c: New file.
9120 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
9121 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
9122 * tree-vect-data-refs.c: New file.
9123 * tree-vect-patterns.c (timevar.h): Don't include.
9124 * tree-vect-stmts.c: New file.
9125 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
9126 tree-vect-slp.c, tree-vect-loop.c.
9127 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
9128 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
9129 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
9130 (tree-vect-analyze.o): Remove.
9131 (tree-vect-transform.o): Likewise.
9132 (tree-vect-data-refs.o): Add rule.
9133 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
9134 tree-vect-slp.o): Likewise.
9135 (tree-vect-patterns.o): Remove redundant dependencies.
9136 (tree-vectorizer.o): Likewise.
9137 * tree-vect-slp.c: New file.
9138
9139 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9140
9141 * optc-gen.awk: Warn if an option flag has multiple different
9142 help strings.
9143
9144 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
9145
9146 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
9147 -floop-block): Document dependences on PPL, CLooG and Graphite.
9148
9149 2009-03-30 Joseph Myers <joseph@codesourcery.com>
9150
9151 PR rtl-optimization/323
9152 * c-common.c (c_fully_fold, convert_and_check,
9153 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
9154 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
9155 * c-common.def (EXCESS_PRECISION_EXPR): New.
9156 * c-cppbuiltin.c (builtin_define_float_constants): Define
9157 constants with enough digits for long double.
9158 * c-lex.c (interpret_float): Interpret constant with excess
9159 precision where appropriate.
9160 * c-opts.c (c_common_post_options): Set
9161 flag_excess_precision_cmdline. Give an error for
9162 -fexcess-precision=standard for C++ for processors where the
9163 option is significant.
9164 * c-parser.c (c_parser_conditional_expression): Handle excess
9165 precision in condition.
9166 * c-typeck.c (convert_arguments): Handle arguments with excess
9167 precision.
9168 (build_unary_op): Move excess precision outside operation.
9169 (build_conditional_expr): Likewise.
9170 (build_compound_expr): Likewise.
9171 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
9172 (build_modify_expr): Handle excess precision in RHS.
9173 (convert_for_assignment): Handle excess precision in converted
9174 value.
9175 (digest_init, output_init_element, process_init_element): Handle
9176 excess precision in initializer.
9177 (c_finish_return): Handle excess precision in return value.
9178 (build_binary_op): Handle excess precision in operands and add
9179 excess precision as needed for operation.
9180 * common.opt (-fexcess-precision=): New option.
9181 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
9182 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9183 For standard excess precision, output explicit conversion to and
9184 truncation from XFmode.
9185 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
9186 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
9187 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
9188 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
9189 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
9190 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
9191 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
9192 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
9193 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
9194 define_splits, sqrt<mode>2): Disable where appropriate for
9195 standard excess precision.
9196 * convert.c (convert_to_real): Do not shorten arithmetic to type
9197 for which excess precision would be used.
9198 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
9199 * doc/invoke.texi (-fexcess-precision=): Document option.
9200 (-mfpmath=): Correct index entry.
9201 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
9202 flag_excess_precision): New.
9203 * langhooks.c (lhd_post_options): Set
9204 flag_excess_precision_cmdline.
9205 * opts.c (common_handle_option): Handle -fexcess-precision=.
9206 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
9207 init_excess_precision): New.
9208 (lang_dependent_init_target): Call init_excess_precision.
9209 * tree.c (excess_precision_type): New.
9210 * tree.h (excess_precision_type): Declare.
9211
9212 2009-03-30 Joseph Myers <joseph@codesourcery.com>
9213
9214 PR c/35235
9215 * c-typeck.c (build_component_ref): Do not copy qualifiers from
9216 non-lvalue to component.
9217
9218 2009-03-29 Joseph Myers <joseph@codesourcery.com>
9219
9220 PR preprocessor/34695
9221 * Makefile.in (c-opts.o): Depend on c-tree.h.
9222 * c-common.c: Move down include of diagnostic.h.
9223 (done_lexing, c_cpp_error): New.
9224 * c-common.h (done_lexing): Declare.
9225 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
9226 (parse_in).
9227 * c-opts.c: Include c-tree.h.
9228 (c_common_init_options): Set preprocessor error callback.
9229 (c_common_handle_option): Do not set preprocessor
9230 inhibit_warnings, warnings_are_errors, warn_system_headers,
9231 pedantic_errors or inhibit_warnings flags.
9232 (c_common_post_options): Do not check cpp_errors (parse_in).
9233 (c_common_finish): Do not output dependencies if there were
9234 errors. Do not check return value of cpp_finish.
9235 * c-ppoutput.c (pp_file_change): Set input_location.
9236 * c-tree.h (c_cpp_error): Declare.
9237 * diagnostic.c (diagnostic_set_info_translated): Also initialize
9238 override_column.
9239 (diagnostic_build_prefix): Check override_column.
9240 * diagnostic.h (diagnostic_info): Add override_column field.
9241 (diagnostic_override_column): Define.
9242
9243 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
9244
9245 * c-common.c (c_expand_expr, c_staticp): Remove.
9246 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
9247 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
9248 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
9249 * c-gimplify.c (gimplify_compound_literal_expr,
9250 optimize_compound_literals_in_ctor): Remove.
9251 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
9252 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
9253 * c-semantics.c (emit_local_var): Remove.
9254
9255 * langhooks-def.h (lhd_expand_expr): Remove.
9256 * langhooks.c (lhd_expand_expr): Remove.
9257 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
9258
9259 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
9260 handling from c-semantics.c; don't call into langhook.
9261 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
9262 * gimplify.c (gimplify_compound_literal_expr,
9263 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
9264 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
9265 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
9266 as was done in c-gimplify.c.
9267 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
9268 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
9269 Move from c-common.h.
9270 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
9271
9272 * tree.c (staticp): Do not call langhook.
9273 * langhooks.c (lhd_staticp): Delete.
9274 * langhooks-def.h (lhd_staticp): Delete prototype.
9275 (LANG_HOOKS_STATICP): Delete.
9276 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
9277
9278 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
9279 instead of DECL_STMTs.
9280
9281 2009-03-29 Joseph Myers <joseph@codesourcery.com>
9282
9283 PR c/456
9284 PR c/5675
9285 PR c/19976
9286 PR c/29116
9287 PR c/31871
9288 PR c/35198
9289 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
9290 void_type_node.
9291 (fold_call_expr): Return a NOP_EXPR from folding rather than the
9292 contained expression.
9293 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
9294 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
9295 conditional expressions for C.
9296 (decl_constant_value_for_optimization): Move from
9297 decl_constant_value_for_broken_optimization in c-typeck.c. Check
9298 whether optimizing and that the expression is a VAR_DECL not of
9299 array type instead of doing such checks in the caller. Do not
9300 check pedantic. Call gcc_unreachable for C++.
9301 * c-common.def (C_MAYBE_CONST_EXPR): New.
9302 * c-common.h (c_fully_fold, c_save_expr,
9303 decl_constant_value_for_optimization): New prototypes.
9304 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9305 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9306 EXPR_INT_CONST_OPERANDS): Define.
9307 * c-convert.c (convert): Strip nops from expression.
9308 * c-decl.c (groktypename): Take extra parameters expr and
9309 expr_const_operands. Update call to grokdeclarator.
9310 (start_decl): Update call to grokdeclarator. Add statement for
9311 expressions used in type of decl.
9312 (grokparm): Update call to grokdeclarator.
9313 (push_parm_decl): Update call to grokdeclarator.
9314 (build_compound_literal): Add parameter non_const and build a
9315 C_MAYBE_COSNT_EXPR if applicable.
9316 (grokdeclarator): Take extra parameters expr and
9317 expr_const_operands. Track expressions used in declaration
9318 specifiers and declarators. Fold array sizes and track whether
9319 they are constant expressions and whether they are integer
9320 constant expressions.
9321 (parser_xref_tag): Set expr and expr_const_operands fields in
9322 return value.
9323 (grokfield): Update call to grokdeclarator.
9324 (start_function): Update call to grokdeclarator.
9325 (build_null_declspecs): Set expr and expr_const_operands fields in
9326 return value.
9327 (declspecs_add_type): Handle expressions in typeof specifiers.
9328 * c-parser.c (c_parser_declspecs): Set expr and
9329 expr_const_operands fields for declaration specifiers.
9330 (c_parser_enum_specifier): Likewise.
9331 (c_parser_struct_or_union_specifier): Likewise.
9332 (c_parser_typeof_specifier): Likewise. Update call to
9333 groktypename. Fold expression as needed. Return expressions with
9334 type instead of adding statements.
9335 (c_parser_attributes): Update calls to c_parser_expr_list.
9336 (c_parser_statement_after_labels): Fold expression before passing
9337 to objc_build_throw_stmt.
9338 (c_parser_condition): Fold expression.
9339 (c_parser_asm_operands): Fold expression.
9340 (c_parser_conditional_expression): Use c_save_expr. Update call
9341 to build_conditional_expr.
9342 (c_parser_alignof_expression): Update call to groktypename.
9343 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
9344 original_code. Fold expression argument of va_arg. Create
9345 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
9346 argument to va_arg. Update calls to groktypename. Fold array
9347 index for offsetof. Verify that first argument to
9348 __builtin_choose_expr has integer type.
9349 (c_parser_postfix_expression_after_paren_type): Update calls to
9350 groktypename and build_compound_literal. Handle expressions with
9351 side effects in type name.
9352 (c_parser_postfix_expression_after_primary): Update call to
9353 c_parser_expr_list. Set original_code for calls to
9354 __builtin_constant_p.
9355 (c_parser_expr_list): Take extra parameter fold_p. Fold
9356 expressions if requested.
9357 (c_parser_objc_type_name): Update call to groktypename.
9358 (c_parser_objc_synchronized_statement): Fold expression.
9359 (c_parser_objc_receiver): Fold expression.
9360 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
9361 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
9362 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
9363 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
9364 (struct c_typespec): Add elements expr and expr_const_operands.
9365 (struct c_declspecs): Add elements expr and expr_const_operands.
9366 (groktypename, build_conditional_expr, build_compound_literal):
9367 Update prototypes.
9368 (in_late_binary_op): Declare.
9369 * c-typeck.c (note_integer_operands): New function.
9370 (in_late_binary_op): New variable.
9371 (decl_constant_value_for_broken_optimization): Move to c-common.c
9372 and rename to decl_constant_value_for_optimization.
9373 (default_function_array_conversion): Do not strip nops.
9374 (default_conversion): Do not call
9375 decl_constant_value_for_broken_optimization.
9376 (build_array_ref): Do not fold result.
9377 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
9378 result when operand is a VLA.
9379 (c_expr_sizeof_type): Update call to groktypename. Handle
9380 expressions included in type name. Use C_MAYBE_CONST_EXPR for
9381 result when operand names a VLA type.
9382 (build_function_call): Update call to build_compound_literal.
9383 Only fold result for calls to __builtin_* functions. Strip
9384 NOP_EXPR from INTEGER_CST returned from such functions. Fold
9385 the function designator.
9386 (convert_arguments): Fold arguments. Update call to
9387 convert_for_assignment.
9388 (build_unary_op): Handle increment and decrement of
9389 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
9390 decrement earlier. Fold operand of increment and decrement.
9391 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
9392 built for integer operand. Wrap returns that are INTEGER_CSTs
9393 without being integer constant expressions or that have integer
9394 constant operands without being INTEGER_CSTs.
9395 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
9396 (build_conditional_expr): Add operand ifexp_bcp. Track whether
9397 result is an integer constant expression or can be used in
9398 unevaluated parts of one and avoid folding and wrap as
9399 appropriate. Fold operands before possibly doing -Wsign-compare
9400 warnings.
9401 (build_compound_expr): Wrap result for C99 if operands can be used
9402 in integer constant expressions.
9403 (build_c_cast): Update call to digest_init. Do not ignore
9404 overflow from casting floating-point constants to integers. Wrap
9405 results that could be confused with integer constant expressions,
9406 null pointer constants or floating-point constants.
9407 (c_cast_expr): Update call to groktypename. Handle expressions
9408 included in type name.
9409 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
9410 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
9411 Update calls to convert_for_assignment.
9412 (convert_for_assignment): Take new parameter
9413 null_pointer_constant. Do not strip nops or call
9414 decl_constant_value_for_broken_optimization. Set
9415 in_late_binary_op for conversions to boolean.
9416 (store_init_value): Update call to digest_init.
9417 (digest_init): Take new parameter null_pointer_constant. Do not
9418 call decl_constant_value_for_broken_optimization. pedwarn for
9419 initializers not constant expressions. Update calls to
9420 convert_for_assignment.
9421 (constructor_nonconst): New.
9422 (struct constructor_stack): Add nonconst element.
9423 (really_start_incremental_init, push_init_level, pop_init_level):
9424 Handle constructor_nonconst and nonconst element.
9425 (set_init_index): Call constant_expression_warning for array
9426 designators.
9427 (output_init_element): Fold value. Set constructor_nonconst as
9428 applicable. pedwarn for initializers not constant expressions.
9429 Update call to digest_init. Call constant_expression_warning
9430 where constant initializers are required.
9431 (process_init_element): Use c_save_expr.
9432 (c_finish_goto_ptr): Fold expression.
9433 (c_finish_return): Fold return value. Update call to
9434 convert_for_assignment.
9435 (c_start_case): Fold switch expression.
9436 (c_process_expr_stmt): Fold expression.
9437 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
9438 ensure statement expression is not evaluated in constant expression.
9439 (build_binary_op): Track whether results are integer constant
9440 expressions or may occur in such, disable folding and wrap results
9441 as applicable. Fold operands for -Wsign-compare warnings unless
9442 in_late_binary_op.
9443 (c_objc_common_truthvalue_conversion): Handle results folded to
9444 integer constants that are not integer constant expressions.
9445 * doc/extend.texi: Document when typeof operands are evaluated,
9446 that condition of __builtin_choose_expr is an integer constant
9447 expression, and more about use of __builtin_constant_p in
9448 initializers.
9449
9450 2009-03-29 Richard Guenther <rguenther@suse.de>
9451
9452 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
9453 propagate addresses of array references.
9454
9455 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
9456
9457 * regmove.c (perhaps_ends_bb_p): Remove.
9458 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
9459 from INSN and check that the main loop stays within that basic block.
9460 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
9461 (regmove_forward_pass): Split out from regmove_optimize. Use
9462 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
9463 (regmove_backward_pass): Split out from regmove_optimize. Use
9464 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
9465 (regmove_optimize): Simplify.
9466
9467 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
9468
9469 PR target/39545
9470 * config/i386/i386.c (classify_argument): Ignore flexible array
9471 member in struct and warn ABI change.
9472
9473 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
9474
9475 * config/i386/i386-protos.h (ix86_agi_dependent): New.
9476
9477 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
9478 (ix86_adjust_cost): Updated.
9479
9480 2009-03-29 Jan Hubicka <jh@suse.cz>
9481
9482 PR middle-end/28850
9483 * tree-pass.h (pass_cleanup_eh): New function.
9484 (remove_unreachable_regions): Break code handling RTL
9485 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
9486 that can not be reached by runtime.
9487 (can_be_reached_by_runtime): New function.
9488 (label_to_region_map): New function.
9489 (num_eh_regions): New function.
9490 (rtl_remove_unreachable_regions): New function.
9491 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
9492 (remove_eh_region): New function.
9493 * except.h: Include sbitmap and vecprim.
9494 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
9495 num_eh_regions): Declare.
9496 * passes.c (init_optimization_passes): Schedule cleanup_eh.
9497 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
9498 * tree-eh.c (tree_remove_unreachable_handlers): New function.
9499 (tree_empty_eh_handler_p): New function.
9500 (cleanup_empty_eh): New function.
9501 (cleanup_eh): New function.
9502 (pass_cleanup_eh): New function.
9503
9504 2009-03-29 Jan Hubicka <jh@suse.cz>
9505
9506 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
9507 for removed regions.
9508
9509 2009-03-29 Jan Hubicka <jh@suse.cz>
9510
9511 * except.c (dump_eh_tree): Dump all datastructures.
9512
9513 2009-03-29 Jan Hubicka <jh@suse.cz>
9514
9515 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
9516 (duplicate_eh_regions_1): Likewise.
9517 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
9518 vector; call EH verification.
9519 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
9520 Be ready for region being removed.
9521
9522 2009-03-29 Jan Hubicka <jh@suse.cz>
9523
9524 * bitmap.c (bitmap_last_set_bit): New function.
9525 * bitmap.h (bitmap_last_set_bit): Declare.
9526
9527 2009-03-29 David Ayers <ayers@fsfe.org>
9528
9529 PR objc/27377
9530 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
9531 by calling objc_compare_types and surpress warnings about
9532 incompatible C pointers that are compatible ObjC pointers.
9533
9534 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
9535
9536 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
9537 call initialize_inline_failed.
9538 (initialize_inline_failed): Move it from here ...
9539 * cgraph.c (initialize_inline_failed): ... to here.
9540 (cgraph_create_edge): Call initialize_inline_failed rather than
9541 setting inline_failed directly.
9542
9543 2009-03-29 Ben Elliston <bje@au.ibm.com>
9544
9545 PR target/32542
9546 * sysv4.opt (msdata): Improve comment.
9547 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
9548 * sysv4.h (SVR4_ASM_SPEC): Likewise.
9549
9550 2009-03-29 Ben Elliston <bje@au.ibm.com>
9551
9552 PR target/30451
9553 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
9554 load and store attributes.
9555
9556 2009-03-29 Ben Elliston <bje@au.ibm.com>
9557
9558 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
9559 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
9560 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
9561 * doc/extend.texi (X86 Built-in Functions): Add index entries for
9562 __builtin_infq and __builtin_huge_valq.
9563
9564 2009-03-28 Anatoly Sokolov <aesok@post.ru>
9565
9566 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
9567 atmega8m1 devices.
9568 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9569 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
9570
9571 2009-03-28 Xinliang David Li <davidxl@google.com>
9572
9573 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
9574 (do_dbg_cnt): New function.
9575
9576 2009-03-28 Jan Hubicka <jh@suse.cz>
9577
9578 Merge from pretty-ipa:
9579
9580 2009-03-27 Jan Hubicka <jh@suse.cz>
9581
9582 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
9583 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
9584 * passes.c (function_called_by_processed_nodes_p): New.
9585 * ipa-pure-const.c (check_call): Fix handling of operands.
9586 (analyze_function): Dump debug output for skipped bodies.
9587 (local_pure_const): Use function_called_by_processed_nodes_p.
9588 * dwarf2out.c (reference_to_unused): Use output.
9589 * passes.c (do_per_function_toporder): Likewise.
9590
9591 2008-11-12 Jan Hubicka <jh@suse.cz>
9592
9593 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
9594 * ipa-pure-const.c (funct_state_d): Add can throw field; make
9595 state_set_in_source enum
9596 (check_decl): Ignore memory tags; do not set fake looping flags;
9597 dump diagnostics.
9598 (check_operand, check_tree, check_rhs_var, check_lhs_var,
9599 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
9600 (check_call, analyze_function): Rewrite.
9601 (check_stmt): New.
9602 (add_new_function): Update call of analyze_function.
9603 (generate_summary): Add call of analyze_function.
9604 (propagate): Propagate can_throw; handle state_set_in_source correctly.
9605 (local_pure_const): New function.
9606 (pass_local_pure_const): New pass.
9607 * ipa-inline.c (inline_transform): Set after_inlining.
9608 * tree-eh.c (stmt_can_throw_external): New.
9609 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
9610 work with aliasing built.
9611 * tree-flow.h (stmt_can_throw_external): New.
9612 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
9613 and local pure/const pass in early and late optimization queue.
9614
9615 2009-03-28 Martin Jambor <mjambor@suse.cz>
9616
9617 * fold-const.c (get_pointer_modulus_and_residue): New parameter
9618 allow_func_align.
9619 (fold_binary): Allow function decl aligment consideration is the
9620 second argument is integer constant one.
9621 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
9622 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
9623 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
9624
9625 2009-03-28 Jan Hubicka <jh@suse.cz>
9626
9627 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
9628 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
9629 * function.h (rtl_data): Add nothrow flag.
9630 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
9631 set DECL_NOTHROW for AVAILABLE functions.
9632
9633 2009-03-28 Jakub Jelinek <jakub@redhat.com>
9634
9635 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
9636 following vector keyword has expansion starting with pixel or bool
9637 keyword, expand vector to __vector and pixel or bool to __pixel or
9638 __bool.
9639
9640 PR c++/39554
9641 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
9642 warn_if_disallowed_function_p): Removed.
9643 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
9644 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
9645 warning_if_disallowed_function_p.
9646 * flags.h (warn_if_disallowed_function_p,
9647 warn_disallowed_functions): Removed.
9648 * common.opt (Wdisallowed-function-list=): Removed.
9649 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
9650
9651 2009-03-28 Richard Guenther <rguenther@suse.de>
9652
9653 PR tree-optimization/38723
9654 * tree-ssa-pre.c (compute_avail): Add all default definitions to
9655 the entry block.
9656
9657 2009-03-28 Jan Hubicka <jh@suse.cz>
9658
9659 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
9660 test introduced by my previous patch.
9661
9662 2009-03-28 Richard Guenther <rguenther@suse.de>
9663
9664 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
9665 the PHIs value undefined.
9666
9667 2009-03-28 Jan Hubicka <jh@suse.cz>
9668
9669 * tree-pass.h (pass_fixup_cfg): New pass.
9670 * ipa-inline.c (inline_transform): Set
9671 always_inline_functions_inlined/after_inlining.
9672 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
9673 (pass_fixup_cfg): New pass.
9674 * passes.c (init_optimization_passes): Add fixup_cfg.
9675
9676 2009-03-28 Richard Guenther <rguenther@suse.de>
9677
9678 PR tree-optimization/38458
9679 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
9680 argument use the arguments copy-of value.
9681
9682 2009-03-28 Richard Guenther <rguenther@suse.de>
9683
9684 PR tree-optimization/38180
9685 * tree-ssa-ccp.c (get_default_value): Simplify.
9686 (likely_value): Likewise.
9687 (surely_varying_stmt_p): Properly handle VOP case.
9688 (ccp_initialize): Likewise.
9689 (ccp_fold): Handle propagating through *&.
9690 (fold_const_aggregate_ref): Also handle decls.
9691
9692 2009-03-28 Jan Hubicka <jh@suse.cz>
9693
9694 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
9695 * cgraph.h (cgraph_node): Likewise.
9696 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
9697 (cgraph_reset_node): Use process flag.
9698 (cgraph_mark_functions_to_output): Likewise.
9699 (cgraph_expand_function): Likewise.
9700 (cgraph_expand_all_functions): Likewise.
9701 (cgraph_output_in_order): Likewise.
9702 * dwarf2out.c (reference_to_unused): Likewise.
9703 * passes.c do_per_function_toporder): Likewise.
9704
9705 2009-03-28 Jan Hubicka <jh@suse.cz>
9706
9707 Bring from lto-branch:
9708
9709 2008-09-03 Doug Kwan <dougkwan@google.com>
9710
9711 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
9712 enums instead of reason strings.
9713 * cgraph.c (cgraph_create_edge): Same.
9714 (cgraph_inline_failed_string): New function.
9715 * cgraph.h (cgraph_inline_failed_t): New enum type.
9716 (cgraph_inline_failed_string): New prototype.
9717 (struct cgraph_edge): Change type of INLINED_FAILED from constant
9718 char pointer to cgraph_inline_failed_t.
9719 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
9720 (cgraph_default_inline_p): Ditto.
9721 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
9722 to cgraph_inline_failed_t pointer.
9723 * cif-code.def: New file.
9724 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
9725 reason string.
9726 (cgraph_check_inline_limits): Change type of REASON to pointer to
9727 cgraph_inline_failed_t. Replace reason strings with enums.
9728 (cgraph_default_inline_p): Ditto.
9729 (cgraph_recursive_inlining_p): Ditto.
9730 (update_caller_keys): Change type of FAILED_REASON to
9731 cgraph_inline_failed_t.
9732 (cgraph_set_inline_failed): Change type of REASON to pointer to
9733 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
9734 convert enums to strings for text output.
9735 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
9736 to be of type cgraph_inline_failed_t. Replace reason strings with
9737 enums. Call cgraph_inline_failed_string to covert enums
9738 to strings for text output.
9739 (cgraph_decide_inlining): Replace reason strings with enums.
9740 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
9741 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
9742 for text output.
9743 * tree-inline.c (expand_call_inline): Change type of REASON
9744 to cgraph_inline_failed_t. Replace reason strings with enums.
9745 Call cgraph_inline_failed_string for text output.
9746 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
9747 (cgraph.o): Ditto.
9748
9749 2009-03-28 Jan Hubicka <jh@suse.cz>
9750
9751 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
9752 cgraph_clone_node): Remove master clone handling.
9753 (cgraph_is_master_clone, cgraph_master_clone): Remove.
9754 * cgraph.h (master_clone): Remove.
9755 (cgraph_is_master_clone, cgraph_master_clone): Remove.
9756 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
9757 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
9758
9759 2009-03-28 Jan Hubicka <jh@suse.cz>
9760
9761 * cgraph.c (cgraph_function_body_availability): Functions declared
9762 inline are always safe to assume that it is not going to be replaced.
9763
9764 2009-03-28 Richard Guenther <rguenther@suse.de>
9765
9766 PR tree-optimization/38513
9767 * tree-ssa-pre.c (eliminate): Remove redundant stores.
9768 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
9769 EXC_PTR_EXPR and FILTER_EXPR.
9770 (get_ref_from_reference_ops): Likewise.
9771
9772 2009-03-28 Richard Guenther <rguenther@suse.de>
9773
9774 PR tree-optimization/38968
9775 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
9776 Use FLOOR_MOD_EXPR to compute misalignment.
9777
9778 2009-03-28 Richard Guenther <rguenther@suse.de>
9779
9780 PR tree-optimization/37795
9781 * tree.h (combine_comparisons): Declare.
9782 * fold-const.c (combine_comparisons): Export.
9783 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
9784 comparisons.
9785 (ifcombine_iforif): Use combine_comparisons.
9786
9787 2009-03-28 Jan Hubicka <jh@suse.cz>
9788
9789 * tree-eh.c (inlinable_call_p): New function.
9790 (make_eh_edges): Use it.
9791 (verify_eh_edges): Use it.
9792 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
9793 * except.c (reachable_next_level): Add inlinable_function argument
9794 (sjlj_find_directly_reachable_regions): Update.
9795 (add_reachable_handler): Do not set saw_any_handlers.
9796 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
9797 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
9798 Add new inlinable call parameter.
9799 (can_throw_internal, can_throw_external): Update.
9800 * except.h (can_throw_internal_1, can_throw_external_1,
9801 foreach_reachable_handler): Update declaration.
9802
9803 2009-03-28 Joseph Myers <joseph@codesourcery.com>
9804
9805 * config/arm/t-arm-coff, config/h8300/coff.h,
9806 config/i386/i386-aout.h, config/i386/i386-coff.h,
9807 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
9808 config/pdp11/2bsd.h, config/rs6000/aix41.h,
9809 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
9810 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
9811 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
9812 sys-types.h: Remove.
9813 * Makefile.in: Remove protoize and fixproto support and references
9814 in comments.
9815 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
9816 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
9817 Remove.
9818 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
9819 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
9820 unprotoize$(exeext).
9821 (rest.encap): Don't depend on $(STMP_FIXPROTO)
9822 (.PHONY): Don't depend on proto.
9823 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
9824 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
9825 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
9826 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
9827 build/gen-protos.o, build/scan.o, xsys-protos.h,
9828 build/fix-header$(build_exeext), build/fix-header.o,
9829 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
9830 stmp-install-fixproto): Remove.
9831 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
9832 SYSCALLS.c or fixproto files.
9833 (install-common): Don't install protoize.
9834 (install-headers-tar, install-headers-cpio, install-headers-cp):
9835 Don't depend on $(STMP_FIXPROTO).
9836 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
9837 install fixproto files or write out fixproto settings.
9838 (uninstall): Don't uninstall protoize.
9839 * config.gcc (use_fixproto): Remove.
9840 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
9841 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
9842 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
9843 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
9844 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
9845 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
9846 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
9847 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
9848 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
9849 * config/t-vxworks (STMP_FIXPROTO): Remove.
9850 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
9851 STMP_FIXPROTO): Remove.
9852 * config.in, configure: Regenerate.
9853 * crtstuff.c (gid_t, uid_t): Don't undefine.
9854 * doc/install.texi: Change m68k-coff to m68k-elf in example.
9855 (arm-*-coff, arm-*-aout: Remove target entries.
9856 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
9857 Remove mention of AIX 4.1.
9858 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
9859 * doc/invoke.texi (Running Protoize): Remove.
9860 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
9861 (Protoize Caveats): Remove.
9862 * tsystem.h: Update comments on headers assumed to exist.
9863
9864 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
9865
9866 * genautomata.c: Add a new year to the copyright. Add a new
9867 reference.
9868 (struct insn_reserv_decl): Add comments for member bypass_list.
9869 (find_bypass): Remove.
9870 (insert_bypass): New.
9871 (process_decls): Use insert_bypass.
9872 (output_internal_insn_latency_func): Output all bypasses with the
9873 same input insn in one switch case.
9874
9875 * rtl.def (define_bypass): Describe bypass choice.
9876 * doc/md.texi (define_bypass): Ditto.
9877
9878 2009-03-27 Richard Guenther <rguenther@suse.de>
9879
9880 * gimplify.c (mark_addressable): Export.
9881 * tree-flow.h (mark_addressable): Declare.
9882 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
9883 * tree-ssa.c (verify_phi_args): Verify that address taken
9884 variables have TREE_ADDRESSABLE set.
9885
9886 2009-03-27 Richard Guenther <rguenther@suse.de>
9887
9888 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
9889 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
9890 Do not mark decls TREE_ADDRESSABLE.
9891 (build_fold_addr_expr): Adjust.
9892 (fold_addr_expr): Remove.
9893 (fold_unary): Use build_fold_addr_expr.
9894 (fold_comparison): Likewise.
9895 (split_address_to_core_and_offset): Likewise.
9896 * coverage.c (tree_coverage_counter_addr): Mark the array decl
9897 TREE_ADDRESSABLE.
9898 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
9899 (gimplify_modify_expr_to_memcpy): Mark source and destination
9900 addressable.
9901 * omp-low.c (create_omp_child_function): Mark the object decl
9902 TREE_ADDRESSABLE.
9903 (lower_rec_input_clauses): Mark the var we take the address of
9904 TREE_ADDRESSABLE.
9905 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
9906
9907 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9908
9909 PR middle-end/39315
9910 * cfgexpand.c (expand_one_stack_var_at): Change alignment
9911 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
9912
9913 2009-03-27 Richard Guenther <rguenther@suse.de>
9914
9915 PR tree-optimization/39120
9916 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
9917 constraints.
9918 (handle_lhs_call): Process return constraints. Add escape
9919 constraints if necessary.
9920 (handle_const_call): Fill out return constraints. Make nested
9921 case more precise. Avoid consttmp if possible.
9922 (handle_pure_call): Fill out return constraints. Avoid
9923 callused if possible.
9924 (find_func_aliases): Simplify call handling.
9925
9926 2009-03-27 Richard Guenther <rguenther@suse.de>
9927
9928 PR tree-optimization/39120
9929 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
9930 as a representative.
9931 (solve_graph): Do propagate CALLUSED.
9932 (handle_pure_call): Use a scalar constraint from CALLUSED for
9933 the return value.
9934 (find_what_p_points_to): CALLUSED shall not appear in poins-to
9935 solutions.
9936
9937 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9938
9939 PR c/39323
9940 * c-common.c (handle_aligned_attribute): Properly check alignment
9941 overflow. Use (1U << i) instead of (1 << i).
9942
9943 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
9944
9945 * expr.h (get_mem_align_offset): Updated.
9946
9947 * tree.h (tree_decl_common): Change align to "unsigned int" and
9948 move it before pointer_alias_set.
9949
9950 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9951 Jakub Jelinek <jakub@redhat.com>
9952
9953 PR target/38034
9954 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
9955 gr_register_operand with gr_reg_or_0_operand.
9956 (cmpxchg_rel_di): Likewise.
9957 (sync_lock_test_and_set<mode>): Likewise.
9958
9959 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9960
9961 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
9962 (true_regnum): Likewise.
9963
9964 * rtlanal.c (subreg_info): Moved to ...
9965 * rtl.h (subreg_info): Here. New.
9966 (subreg_get_info): New.
9967
9968 * rtlanal.c (subreg_get_info): Make it extern.
9969
9970 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
9971
9972 PR target/39472
9973 * config/i386/i386.c (ix86_abi): New.
9974 (override_options): Handle -mabi=.
9975 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
9976 (ix86_call_abi_override): Likewise.
9977 (init_cumulative_args): Likewise.
9978 (function_arg_advance): Likewise.
9979 (function_arg_64): Likewise.
9980 (function_arg): Likewise.
9981 (ix86_pass_by_reference): Likewise.
9982 (ix86_function_value_regno_p): Likewise.
9983 (ix86_build_builtin_va_list_abi): Likewise.
9984 (setup_incoming_varargs_64): Likewise.
9985 (is_va_list_char_pointer): Likewise.
9986 (ix86_init_machine_status): Likewise.
9987 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
9988 (ix86_function_type_abi): Return enum calling_abi. Rewrite
9989 for 64bit. Replace DEFAULT_ABI with ix86_abi.
9990 (ix86_function_abi): Make it static and return enum calling_abi.
9991 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
9992 with ix86_abi.
9993 (ix86_fn_abi_va_list): Updated.
9994
9995 * config/i386/i386.h (ix86_abi): New.
9996 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
9997 (CONDITIONAL_REGISTER_USAGE): Likewise.
9998 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
9999 (machine_function): Likewise.
10000
10001 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
10002 with ix86_abi.
10003 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
10004 (STACK_BOUNDARY): Likewise.
10005 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
10006
10007 * config/i386/i386.opt (mabi=): New.
10008
10009 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
10010 return enum calling_abi.
10011 (ix86_function_type_abi): Likewise.
10012 (ix86_function_abi): Removed.
10013
10014 * doc/invoke.texi: Document -mabi= option for x86.
10015
10016 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10017
10018 * builtins.c (real_dconstp): Delete.
10019 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
10020
10021 2009-03-27 Dodji Seketeli <dodji@redhat.com>
10022 Jakub Jelinek <jakub@redhat.com>
10023
10024 PR debug/37959
10025 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
10026 (gen_subprogram_die): When a function is explicit, generate the
10027 DW_AT_explicit attribute.
10028 * langhooks.h (struct lang_hooks_for_decls): Add
10029 function_decl_explicit_p langhook.
10030 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
10031 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
10032
10033 2009-03-27 Jakub Jelinek <jakub@redhat.com>
10034
10035 * builtins.c (fold_builtin_memory_op): Optimize memmove
10036 into memcpy if we can prove source and destination don't overlap.
10037
10038 * tree-inline.c: Include gt-tree-inline.h.
10039 (clone_fn_id_num): New variable.
10040 (clone_function_name): New function.
10041 (tree_function_versioning): Use it.
10042 * Makefile.in (GTFILES): Add tree-inline.c.
10043
10044 2009-03-27 Mark Mitchell <mark@codesourcery.com>
10045
10046 * BASE-VER: Change to 4.5.0.
10047
10048 2009-03-27 Xinliang David Li <davidxl@google.com>
10049
10050 PR tree-optimization/39557
10051 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
10052
10053 2009-03-27 Xinliang David Li <davidxl@google.com>
10054
10055 PR tree-optimization/39548
10056 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
10057 candidate check.
10058
10059 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10060
10061 * c-common.c (pointer_int_sum): Use %wd on return from
10062 tree_low_cst.
10063
10064 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10065
10066 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
10067 on return from tree_low_cst.
10068
10069 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
10070
10071 PR c++/36799
10072 * ginclude/stdarg.h (va_copy): Define also for
10073 __GXX_EXPERIMENTAL_CXX0X__.
10074
10075 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10076
10077 PR c++/35652
10078 * builtins.h (c_strlen): Do not warn here.
10079 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
10080 * c-common.c (pointer_int_sum): Take an explicit location.
10081 Warn about offsets out of bounds.
10082 * c-common.h (pointer_int_sum): Adjust declaration.
10083
10084 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10085
10086 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
10087 markup glitch.
10088
10089 2009-03-26 Jakub Jelinek <jakub@redhat.com>
10090
10091 PR c++/39554
10092 * opts.c (warn_if_disallowed_function_p): Don't assume
10093 get_callee_fndecl must return non-NULL.
10094
10095 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
10096
10097 PR rtl-optimization/39522
10098 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
10099 when reg_reloaded_valid is set.
10100
10101 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10102
10103 * config/spu/divv2df3.c: New file.
10104 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
10105 (DPBIT_FUNCS): Filter out _div_df.
10106
10107 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
10108
10109 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
10110 a jump insn, count that jump in the distance to the loop start.
10111
10112 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
10113
10114 PR target/39523
10115 * config/sh/sh.c (calc_live_regs): Fix condition for global
10116 registers except PIC_OFFSET_TABLE_REGNUM.
10117
10118 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
10119
10120 PR/39518
10121 * doc/invoke.texi (-mconsole): New.
10122 (-mcygwin): New.
10123 (-mno-cygwin): New.
10124 (-mdll): New.
10125 (-mnop-fun-dllimport): New.
10126 (-mthread): New.
10127 (-mwin32): New.
10128 (-mwindows): New.
10129 (sub section "i386 and x86-64 Windows Options"): New.
10130
10131 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
10132
10133 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
10134 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
10135
10136 2009-03-25 Richard Guenther <rguenther@suse.de>
10137
10138 PR middle-end/39497
10139 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
10140 of -Wno-error.
10141
10142 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
10143
10144 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
10145 neither of haifa/selective schedulers are working.
10146
10147 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10148
10149 * doc/invoke.texi (Debugging Options): Fix description of
10150 -fno-merge-debug-strings.
10151
10152 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
10153
10154 * config/cris/libgcc.ver: New version-script.
10155 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
10156
10157 * configure.ac <GAS features, nop mnemonic>: Add pattern
10158 crisv32-*-* for "nop".
10159 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
10160 * configure: Regenerate.
10161
10162 2009-03-24 Ira Rosen <irar@il.ibm.com>
10163
10164 PR tree-optimization/39529
10165 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
10166 mark_sym_for_renaming for the tag copied to the new vector
10167 pointer.
10168
10169 2009-03-24 Arthur Loiret <aloiret@debian.org>
10170
10171 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
10172 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
10173 EXTRA_SPEC_FUNCTIONS.
10174 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
10175 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
10176 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
10177 -march and -mtune options.
10178
10179 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
10180
10181 * config/m68k/t-rtems: Add m5329 multilib.
10182
10183 2009-03-24 Dodji Seketeli <dodji@redhat.com>
10184 Jakub Jelinek <jakub@redhat.com>
10185
10186 PR debug/39524
10187 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
10188 nodes.
10189
10190 2009-03-23 Jakub Jelinek <jakub@redhat.com>
10191
10192 PR c/39495
10193 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
10194 instead of c_parser_expression_conv, if original_code isn't one of the
10195 4 allowed comparison codes, fail.
10196
10197 2009-03-23 Richard Guenther <rguenther@suse.de>
10198
10199 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
10200 * tree.h (struct tree_type): Likewise.
10201 * reload.h (struct insn_chain): Likewise.
10202 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
10203 * function.h (struct function): Likewise.
10204 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
10205
10206 2009-03-23 Jakub Jelinek <jakub@redhat.com>
10207
10208 PR tree-optimization/39516
10209 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
10210
10211 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
10212
10213 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
10214 should be set true if BITS_PER_WORD of target is bigger than 32
10215
10216 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
10217
10218 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
10219 Translate -B-options to -rpath-link. Correct existing
10220 rpath-link and conditionalize on !nostdlib.
10221
10222 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10223
10224 * doc/extend.texi (Function Attributes, Variable Attributes):
10225 Fix typos.
10226 * doc/invoke.texi (Debugging Options, Optimize Options)
10227 (i386 and x86-64 Options, MCore Options): Likewise.
10228
10229 2009-03-20 Jakub Jelinek <jakub@redhat.com>
10230
10231 PR debug/37890
10232 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
10233 it for block local namespace aliases.
10234 (gen_decl_die): Pass context_die to gen_namespace_die.
10235
10236 2009-03-19 Jakub Jelinek <jakub@redhat.com>
10237
10238 PR c/39495
10239 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
10240 minimum or maximum value.
10241
10242 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
10243
10244 * reginfo.c (globalize_reg): Recompute derived reg sets.
10245
10246 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
10247
10248 PR target/39063
10249 * libgcc2.c (mprotect): Do not use signed arguments for
10250 VirtualProtect, use DWORD arguments. Also fix the 'may
10251 be used uninitialized' warning for the np variable.
10252
10253 2009-03-19 Jakub Jelinek <jakub@redhat.com>
10254
10255 PR target/39496
10256 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
10257 functions using regparm calling conventions when not optimizing.
10258 (ix86_function_sseregparm): Similarly for sseregparm calling
10259 conventions.
10260
10261 2009-03-19 Li Feng <nemokingdom@gmail.com>
10262
10263 PR middle-end/39500
10264 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
10265 dependence if the first conflict is after niter iterations.
10266
10267 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
10268
10269 PR middle-end/38609
10270 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
10271 functions with dynamic stack-pointer adjustments.
10272
10273 2009-03-19 Ben Elliston <bje@au.ibm.com>
10274
10275 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
10276 option; change to -msdata=data.
10277
10278 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10279
10280 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
10281 and -fopenmp.
10282
10283 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
10284
10285 PR target/35180
10286 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
10287
10288 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
10289
10290 * doc/invoke.texi (Code Gen Options): Expand discussion of
10291 -fno-common.
10292
10293 2009-03-18 Jakub Jelinek <jakub@redhat.com>
10294
10295 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
10296 * matrix-reorg.c (struct matrix_info): Likewise.
10297 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
10298 * rtl.h (struct mem_attrs): Likewise.
10299 * df.h (struct df): Likewise.
10300 * tree-data-ref.h (struct data_dependence_relation): Likewise.
10301 * ira-int.h (struct ira_allocno): Likewise.
10302 * df-scan.c (struct df_collection_rec): Likewise.
10303 * ira.c (struct equivalence): Likewise.
10304 * function.c (struct temp_slot): Likewise.
10305 * cfgloop.h (struct loop): Likewise.
10306
10307 PR debug/39485
10308 * function.c (use_register_for_decl): When not optimizing, disregard
10309 register keyword for variables with types containing methods.
10310
10311 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
10312
10313 PR middle-end/39447
10314 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
10315 (is_simple_operand): Call contains_component_ref_p before calling data
10316 reference analysis that would fail on COMPONENT_REFs.
10317
10318 * tree-vrp.c (search_for_addr_array): Fix formatting.
10319
10320 2009-03-18 Richard Guenther <rguenther@suse.de>
10321
10322 * tree-vect-transform.c (vect_loop_versioning): Fold the
10323 generated comparisons.
10324 * tree-vectorizer.c (set_prologue_iterations): Likewise.
10325 (slpeel_tree_peel_loop_to_edge): Likewise.
10326
10327 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10328
10329 PR middle-end/37805
10330 * opts.c (print_specific_help): In addition to `undocumented',
10331 accept `separate' and `joined' flags if passed alone. Describe
10332 output by the first matched one of those.
10333 (common_handle_option): Skip over empty strings.
10334 * gcc.c (display_help): Fix help string for `--help='.
10335 * doc/invoke.texi (Option Summary, Overall Options): With
10336 `--help=', classes and qualifiers can both be repeated, but
10337 only the latter can be negated. One should not pass only
10338 negated qualifiers. Fix markup and examples.
10339
10340 Revert
10341 2008-10-14 Jakub Jelinek <jakub@redhat.com>
10342 PR middle-end/37805
10343 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
10344 and -fhelp=separate.
10345
10346 2009-03-17 Jing Yu <jingyu@google.com>
10347
10348 PR middle-end/39378
10349 * function.h (struct rtl_data): Move is_thunk from here...
10350 (struct function): ...to here.
10351 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
10352 * varasm.c (assemble_start_function): Change is_thunk from crtl to
10353 cfun.
10354 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
10355 cfun.
10356 (alpha_does_function_need_gp, alpha_start_function): Likewise.
10357 (alpha_output_function_end_prologue): Likewise.
10358 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
10359 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
10360 (rs6000_output_function_epilogue): Likewise.
10361 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
10362
10363 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
10364
10365 PR target/39482
10366 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
10367 from different units in a single alternative.
10368 (*truncdfsf_i387): Ditto.
10369 (*truncxfsf2_mixed): Ditto.
10370 (*truncxfdf2_mixed): Ditto.
10371
10372 2009-03-17 Jakub Jelinek <jakub@redhat.com>
10373
10374 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
10375 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
10376
10377 PR debug/39474
10378 * tree-ssa-live.c (remove_unused_locals): Don't remove local
10379 unused non-artificial variables when not optimizing.
10380
10381 PR debug/39471
10382 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
10383 DW_TAG_imported_module even if decl is IMPORTED_DECL with
10384 NAMESPACE_DECL in its DECL_INITIAL.
10385
10386 PR middle-end/39443
10387 * optabs.c (set_user_assembler_libfunc): New function.
10388 * expr.h (set_user_assembler_libfunc): New prototype.
10389 * c-common.c: Include libfuncs.h.
10390 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
10391 for memcmp, memset, memcpy, memmove and abort.
10392 * Makefile.in (c-common.o): Depend on libfuncs.h.
10393
10394 PR debug/39412
10395 * dwarf2out.c (gen_inlined_enumeration_type_die,
10396 gen_inlined_structure_type_die, gen_inlined_union_type_die,
10397 gen_tagged_type_instantiation_die): Removed.
10398 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
10399 do nothing.
10400
10401 2009-03-17 Janis Johnson <janis187@us.ibm.com>
10402
10403 PR testsuite/38526
10404 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
10405 its use.
10406 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
10407 (check-parallel-%): Ditto.
10408 (check-consistency): Ditto.
10409
10410 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
10411
10412 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
10413 local variable rhs by NULL_TREE.
10414
10415 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
10416
10417 PR target/39477
10418 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
10419
10420 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
10421
10422 PR target/39476
10423 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
10424
10425 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
10426
10427 PR target/39473
10428 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
10429 for ms->sysv ABI calls only in 64bit mode.
10430
10431 * config/i386/i386.md (untyped_call): Support 32bit.
10432
10433 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
10434
10435 * doc/extend.texi: Replace x86_65 with x86_64.
10436
10437 2009-03-16 Jakub Jelinek <jakub@redhat.com>
10438
10439 PR tree-optimization/39455
10440 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
10441 mismatches for POINTER_TYPE_P (type).
10442 (number_of_iterations_le): Likewise.
10443
10444 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
10445
10446 * config/picochip/picochip.c: Removed profiling support.
10447 * config/picochip/picochip.md: Removed profiling instruction.
10448 * config/picochip/picochip.h: Removed profiling builtin.
10449
10450 2009-03-16 Joseph Myers <joseph@codesourcery.com>
10451
10452 * doc/install.texi (--with-host-libstdcxx): Document.
10453
10454 2009-03-14 Anatoly Sokolov <aesok@post.ru>
10455
10456 PR target/34299
10457 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
10458 generate a warning if the function name does not begin with
10459 "__vector" and the function has either the 'signal' or 'interrupt'
10460 attribute, from here to ...
10461 (avr_declare_function_name): ...here. New function.
10462 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
10463 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
10464
10465 2009-03-14 Jakub Jelinek <jakub@redhat.com>
10466
10467 PR bootstrap/39454
10468 * cse.c (fold_rtx): Don't modify original const_arg1 when
10469 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
10470 separate variable instead.
10471 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
10472 from out of range shift counts.
10473 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
10474
10475 2009-03-13 Catherine Moore <clm@codesourcery.com>
10476
10477 * config/i386/x-mingw32 (host-mingw32.o): Replace
10478 diagnostic.h with $(DIAGNOSTIC_H).
10479
10480 2009-03-12 Jakub Jelinek <jakub@redhat.com>
10481
10482 PR target/39431
10483 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
10484 predicate.
10485 * config/i386/sync.md (sync_compare_and_swap<mode>,
10486 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
10487 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
10488 into a register.
10489 (sync_double_compare_and_swapdi_pic,
10490 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
10491 cmpxchg8b_pic_memory_operand instead of just memory_operand.
10492
10493 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10494
10495 PR target/39445
10496 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
10497
10498 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10499
10500 PR target/39327
10501 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
10502 (avx_addsubv4df3): Likewise.
10503 (*avx_addsubv4sf3): Likewise.
10504 (sse3_addsubv4sf3): Likewise.
10505
10506 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10507
10508 PR target/38824
10509 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
10510
10511 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
10512
10513 PR debug/39432
10514 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
10515 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
10516 registers for allocnos created from user-defined variables.
10517
10518 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10519
10520 PR target/39181
10521 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
10522 of non-integer mode as well.
10523
10524 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
10525
10526 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
10527 for functions for which the parameter types are unknown.
10528
10529 2009-03-11 Jakub Jelinek <jakub@redhat.com>
10530
10531 PR target/39137
10532 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
10533 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
10534 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
10535 * config/i386/i386.c (ix86_local_alignment): For
10536 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
10537 long long variables on the stack to avoid dynamic realignment.
10538 Allow the first argument to be a decl rather than type.
10539 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
10540
10541 2009-03-11 Nick Clifton <nickc@redhat.com>
10542
10543 PR target/5362
10544 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
10545 options.
10546 Add description to mno-lsim option.
10547 * config/mcore/mcore.h: Remove comment about deprecated m4align
10548 option.
10549 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
10550 * doc/invoke.texi: Add description of mno-lsim and
10551 mstack-increment options.
10552
10553 * config/fr30/fr30.opt: Document the -mno-lsim option.
10554 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
10555 and -mno-lsim options.
10556
10557 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10558
10559 * fold-const.c (fold_comparison): Only call fold_inf_compare
10560 if the mode supports infinities.
10561
10562 2009-03-11 Jason Merrill <jason@redhat.com>
10563
10564 PR debug/39086
10565 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
10566 end already did. Notice GIMPLE_CALL modifications of the result.
10567 Don't copy debug information from an ignored decl or a decl from
10568 another function.
10569
10570 2009-03-10 Richard Guenther <rguenther@suse.de>
10571 Nathan Froyd <froydnj@codesourcery.com>
10572
10573 PR middle-end/37850
10574 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
10575 (__divMODE3): Likewise.
10576
10577 2009-03-09 Jakub Jelinek <jakub@redhat.com>
10578
10579 PR tree-optimization/39394
10580 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
10581 DECL_SIZE_UNIT of variable length FIELD_DECLs.
10582
10583 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10584
10585 * recog.c (verfiy_changes): Disallow renaming of hard regs in
10586 inline asms for register asm ("") declarations.
10587
10588 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
10589
10590 * fold-const.c (fold_unary): Fix comment.
10591
10592 2009-03-07 Jan Hubicka <jh@suse.cz>
10593
10594 PR target/39361
10595 * tree-inline.c (setup_one_parameter): Do replacement of const
10596 argument by constant in SSA form.
10597
10598 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10599
10600 PR middle-end/38028
10601 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
10602 determine alignment passed to assign_stack_local.
10603 (assign_parms_unsplit_complex): Likewise.
10604 * except.c (sjlj_build_landing_pads): Likewise.
10605
10606 2009-03-06 Jakub Jelinek <jakub@redhat.com>
10607
10608 PR middle-end/39360
10609 * tree-flow.h (add_referenced_var): Return bool instead of void.
10610 * tree-dfa.c (add_referenced_var): Return result of
10611 referenced_var_check_and_insert call.
10612 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
10613 of referenced_var_check_and_insert.
10614
10615 PR debug/39372
10616 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
10617 (gen_variable_die): Emit DW_AT_location on abstract static variable's
10618 DIE, don't emit it if abstract origin already has it.
10619 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
10620 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
10621
10622 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10623
10624 * genpreds.c (needs_variable): Fix parentheses at variable name
10625 detection.
10626 (write_tm_constrs_h): Indent generated code.
10627
10628 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10629
10630 * doc/extend.texi (Function Attributes): Add documentation
10631 for isr attributes.
10632
10633 2009-03-06 Jakub Jelinek <jakub@redhat.com>
10634
10635 PR debug/39387
10636 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
10637 take locus from its DECL_SOURCE_LOCATION instead of input_location.
10638
10639 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
10640
10641 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
10642 the loop as bad.
10643
10644 2009-03-05 Jakub Jelinek <jakub@redhat.com>
10645
10646 PR debug/39379
10647 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
10648 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
10649
10650 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
10651
10652 * config/i386/i386.md (R8_REG, R9_REG): New constants.
10653 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
10654 constants instead of magic numbers.
10655 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
10656 (QI_REG_P): Ditto.
10657 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
10658 (x86_64_ms_abi_int_parameter_registers): Ditto.
10659 (x86_64_int_return_registers): Ditto.
10660 (ix86_maybe_switch_abi): Ditto.
10661 (ix86_expand_call): Ditto for clobbered_registers array.
10662 (ix86_hard_regno_mode_ok): Ditto.
10663 (x86_extended_QIreg_mentioned_p): Ditto.
10664
10665 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
10666
10667 PR tree-optimization/39349
10668 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
10669
10670 * combine.c (gen_lowpart_for_combine): Use omode when generating
10671 clobber.
10672
10673 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
10674
10675 PR rtl-optimization/39235
10676 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
10677
10678 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
10679
10680 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
10681
10682 2009-03-04 Richard Guenther <rguenther@suse.de>
10683
10684 PR tree-optimization/39362
10685 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
10686 that occur in abnormal PHIs should be varying.
10687
10688 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
10689
10690 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
10691 Extend comments.
10692 (simple_iv): Take loop as an argument instead of statement.
10693 * tree-scalar-evolution.h (simple_iv): Declaration changed.
10694 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
10695 to simple_iv.
10696 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
10697 Ditto.
10698 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
10699 * matrix-reorg.c (analyze_transpose): Ditto.
10700 * tree-data-ref.c (dr_analyze_innermost): Ditto.
10701 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
10702 * tree-predcom.c (ref_at_iteration): Ditto.
10703 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
10704
10705 2009-03-04 Richard Guenther <rguenther@suse.de>
10706
10707 PR tree-optimization/39358
10708 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
10709 escaped_id and callused_id.
10710 (solve_graph): Likewise.
10711
10712 2009-03-04 Richard Guenther <rguenther@suse.de>
10713
10714 PR tree-optimization/39339
10715 * tree-sra.c (try_instantiate_multiple_fields): Make it
10716 no longer ICE on the above.
10717
10718 2009-03-03 Joseph Myers <joseph@codesourcery.com>
10719
10720 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
10721 that fits within Pmode.
10722
10723 2009-03-03 Steve Ellcey <sje@cup.hp.com>
10724
10725 PR middle-end/10109
10726 * tm.texi (LIBCALL_VALUE): Update description.
10727
10728 2009-03-03 Steve Ellcey <sje@cup.hp.com>
10729
10730 PR middle-end/34443
10731 * doc/extend.texi (section): Update description.
10732
10733 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
10734
10735 PR middle-end/39345
10736 * tree-inline.c (remapped_type): New.
10737 (can_be_nonlocal): Call remapped_type instead of remap_type.
10738
10739 2009-03-03 Jakub Jelinek <jakub@redhat.com>
10740
10741 PR fortran/39354
10742 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
10743 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
10744
10745 2009-03-03 Richard Guenther <rguenther@suse.de>
10746
10747 PR middle-end/39272
10748 * tree.c (tree_nonartificial_location): New function.
10749 * tree.h (tree_nonartificial_location): Declare.
10750 * builtins.c (expand_builtin_memory_chk): Provide location
10751 of the call location for artificial function pieces.
10752 (maybe_emit_chk_warning): Likewise.
10753 (maybe_emit_sprintf_chk_warning): Likewise.
10754 (maybe_emit_free_warning): Likewise.
10755 * expr.c (expand_expr_real_1): Likewise.
10756
10757 2009-03-03 Jakub Jelinek <jakub@redhat.com>
10758
10759 PR tree-optimization/39343
10760 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
10761 COMPONENT_REF t has ARRAY_TYPE.
10762
10763 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
10764
10765 PR middle-end/39335
10766 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
10767 when the type precision of the induction variable should be
10768 larger than the type precision of nit.
10769 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
10770 * graphite.c (graphite_loop_normal_form): Same.
10771 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
10772
10773 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
10774
10775 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
10776 (*call_1_rex64_ms_sysv): Use named constants instead of magic
10777 numbers to describe clobbered registers.
10778 (*call_value_0_rex64_ms_sysv): Ditto.
10779 * config/i386/mmx.md (mmx_emms): Ditto.
10780 (mmx_femms): Ditto.
10781
10782 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
10783
10784 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
10785 of ABI_64.
10786
10787 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10788
10789 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
10790 (spu_section_type_flags): New function.
10791
10792 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
10793
10794 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
10795 reg_class_contents of FLOAT_REGS into a temporary.
10796
10797 2009-03-02 Richard Guenther <rguenther@suse.de>
10798 Ira Rosen <irar@il.ibm.com>
10799
10800 PR tree-optimization/39318
10801 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
10802 information to the vectorized statement.
10803
10804 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
10805
10806 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
10807 variable. Use defined names instead of magic constants for REX SSE
10808 registers.
10809
10810 2009-03-01 Richard Guenther <rguenther@suse.de>
10811
10812 PR tree-optimization/39331
10813 * omp-low.c (lower_send_shared_vars): Do not receive new
10814 values for the reference of DECL_BY_REFERENCE parms or results.
10815
10816 2009-03-01 Jan Hubicka <jh@suse.cz>
10817
10818 PR debug/39267
10819 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
10820 BLOCK_NONLOCALIZED_VAR): New macros.
10821 (tree_block): Add nonlocalized_vars.
10822 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
10823 gen_decl_die): Add origin argument. Allow generation of die with
10824 origin at hand only.
10825 (gen_member_die, gen_type_die_with_usage, force_decl_die,
10826 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
10827 of gen_*.
10828 (gen_block_die): Fix checking for unused blocks.
10829 (process_scope_var): Break out from .... ; work with origins only.
10830 (decls_for_scope) ... here; process nonlocalized list.
10831 (dwarf2out_ignore_block): Look for nonlocalized vars.
10832 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
10833 vars.
10834 (dump_scope_block): Dump them.
10835 * tree-inline.c (remap_decls): Handle nonlocalized vars.
10836 (remap_block): Likewise.
10837 (can_be_nonlocal): New predicate.
10838 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
10839
10840 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10841
10842 * configure: Regenerate.
10843
10844 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10845
10846 * optc-gen.awk: No need to duplicate option flags twice.
10847 Reuse help texts for duplicate options which do not have any.
10848
10849 * gcc.c (display_help): Document --version.
10850
10851 * gcc.c (main): If print_help_list and verbose_flag, ensure
10852 driver output comes before subprocess output.
10853
10854 * optc-gen.awk: Assign all remaining fields to help string,
10855 space-separated, for multi-line help in *.opt.
10856
10857 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
10858 -Wno-pedantic-ms-format is for MinGW targets only.
10859
10860 * doc/options.texi (Option file format): Fix bad indentation,
10861 restoring dropped sentence.
10862
10863 2009-02-28 Jan Hubicka <jh@suse.cz>
10864
10865 * tree-inline.c (tree_function_versioning): Output debug info.
10866
10867 2009-02-28 Jan Hubicka <jh@suse.cz>
10868
10869 PR debug/39267
10870 * tree-inline.c (setup_one_parameter): Do not copy propagate
10871 arguments when not optimizing.
10872
10873 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
10874
10875 PR target/39327
10876 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
10877 (avx_addsubv4df3): Likewise.
10878 (*avx_addsubv4sf3): Likewise.
10879 (sse3_addsubv4sf3): Likewise.
10880 (*avx_addsubv2df3): Likewise.
10881 (sse3_addsubv2df3): Likewise.
10882 (avx_unpckhps256): Correct item selectors.
10883 (avx_unpcklps256): Likewise.
10884 (avx_unpckhpd256): Likewise.
10885 (avx_unpcklpd256): Likewise.
10886
10887 2009-02-28 Jan Hubicka <jh@suse.cz>
10888
10889 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
10890 static vars.
10891 (copy_arguments_for_versioning): If var is declared don't declare it.
10892 (tree_function_versioning): First setup substitutions and then copy
10893 args.
10894
10895 2009-02-27 Jan Hubicka <jh@suse.cz>
10896
10897 PR debug/39267
10898 * cgraph.h (varpool_output_debug_info): Remove.
10899 * cgraphunit.c (varpool_output_debug_info): Remove.
10900 * dwarf2out.c (deferred_locations_struct): New struct
10901 (deferred_locations): New type.
10902 (deferred_locations_list): New static var.
10903 (deffer_location): New function.
10904 (gen_variable_die): Use it.
10905 (decls_for_scope): Output info on local static vars.
10906 (dwarf2out_finish): Process deferred locations.
10907 * varpool.c (varpool_output_debug_info): Remove.
10908
10909 2009-02-27 Jan Hubicka <jh@suse.cz>
10910
10911 PR debug/39267
10912 * tree.h (TREE_PROTECTED): Fix comment.
10913 (BLOCK_HANDLER_BLOCK): Remove.
10914 (struct tree_block): Remove handler_block add body_block.
10915 (inlined_function_outer_scope_p): New.
10916 (is_body_block): Remove.
10917 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
10918 * dwarf2out.c (is_inlined_entry_point): Remove.
10919 (add_high_low_attributes): Use inlined_function_outer_scope_p.
10920 (gen_block_die): Use is_inlined_entry_point check. Remove body block
10921 code.
10922 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
10923 * gimplify.c (gimplify_expr): Gimplify body blocks.
10924 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
10925 block with multiple subblocks.
10926 (dump_scope_block): Prettier output; dump more flags and info.
10927 (dump_scope_blocks): New.
10928 (remove_unused_locals): Use dump_scope_blocks.
10929 * tree-flow.h (dump_scope_blocks): Declare.
10930 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
10931 * stmt.c (is_body_block): Remove.
10932 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
10933 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
10934
10935 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
10936
10937 PR middle-end/39308
10938 * graphite.c (graphite_loop_normal_form): Do not call
10939 number_of_iterations_exit from a gcc_assert.
10940
10941 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10942
10943 * config/s390/s390.c (s390_swap_cmp): Look for conditional
10944 jumps if COND is NULL.
10945 (find_cond_jump): New function.
10946 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
10947 * config/s390/s390.md: Remove z10_cobra attribute value.
10948
10949 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
10950
10951 * config/alpha/alpha.h (alpha_expand_mov): Return false if
10952 force_const_mem returns NULL_RTX.
10953
10954 2009-02-26 Jan Hubicka <jh@suse.cz>
10955
10956 PR debug/39267
10957 * cgraph.h (varpool_output_debug_info): Remove.
10958 * cgraphunit.c (varpool_output_debug_info): Remove.
10959 * dwarf2out.c (deferred_locations_struct): New struct
10960 (deferred_locations): New type.
10961 (deferred_locations_list): New static var.
10962 (deffer_location): New function.
10963 (gen_variable_die): Use it.
10964 (decls_for_scope): Output info on local static vars.
10965 (dwarf2out_finish): Process deferred locations.
10966 * varpool.c (varpool_output_debug_info): Remove.
10967
10968 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
10969
10970 PR rtl-optimization/39241
10971 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
10972 to subreg_offset_representable_p.
10973
10974 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
10975
10976 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
10977 execute function prototype. Get f and nregs from max_reg_num
10978 and get_insns. Remove the first backward pass as it's dead,
10979 guard the forward pass by flag_expensive_optimizations.
10980 (rest_of_handle_regmove): Delete.
10981 (pass_regmove): Replace it with regmove_optimize.
10982
10983 2009-02-25 Martin Jambor <mjambor@suse.cz>
10984
10985 PR tree-optimization/39259
10986 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
10987 calls_alloca function flags.
10988 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
10989 calls are detected.
10990
10991 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
10992
10993 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
10994 flags_set_1_rtx, flags_set_1_set): Delete.
10995 (regmove_optimize): Do not call mark_flags_life_zones.
10996
10997 2009-02-24 Julian Brown <julian@codesourcery.com>
10998
10999 PR target/35965
11000 * config/arm/arm.c (require_pic_register): Only set
11001 cfun->machine->pic_reg once per function.
11002
11003 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
11004
11005 * doc/invoke.texi (Link Options): Document an easier way to pass
11006 options that take arguments to the GNU linker using -Xlinker and -Wl.
11007
11008 2009-02-24 Steve Ellcey <sje@cup.hp.com>
11009
11010 PR target/33785
11011 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
11012
11013 2009-02-24 Richard Guenther <rguenther@suse.de>
11014
11015 PR debug/39285
11016 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
11017
11018 2009-02-24 Richard Guenther <rguenther@suse.de>
11019 Zdenek Dvorak <ook@ucw.cz>
11020
11021 PR tree-optimization/39233
11022 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
11023 from converting them to a generic type.
11024
11025 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
11026
11027 PR tree-optimization/39260
11028 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
11029 contains a condition with a real type.
11030 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
11031
11032 2009-02-23 Jason Merrill <jason@redhat.com>
11033
11034 PR c++/38880
11035 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
11036 narrowing_initializer_constant_valid_p.
11037 (narrowing_initializer_constant_valid_p): Don't return
11038 null_pointer_node for adding a pointer to itself.
11039
11040 2009-02-23 Jan Hubicka <jh@suse.cz>
11041
11042 PR c/12245
11043 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
11044 resizing.
11045
11046 2009-02-23 Jan Hubicka <jh@suse.cz>
11047
11048 PR tree-optimization/37709
11049 * tree.c (block_ultimate_origin): Move here from dwarf2out.
11050 * tree.h (block_ultimate_origin): Declare.
11051 * dwarf2out.c (block_ultimate_origin): Move to tree.c
11052 * tree-ssa-live.c (remove_unused_scope_block_p):
11053 Eliminate blocks containig no instructions nor live variables nor
11054 nested blocks.
11055 (dump_scope_block): New function.
11056 (remove_unused_locals): Enable removal of dead blocks by default;
11057 enable dumping at TDF_DETAILS.
11058
11059 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
11060
11061 * config/i386/i386.c (classify_argument): Don't allow COImode
11062 and OImode.
11063 (function_arg_advance_32): Don't allow OImode.
11064 (function_arg_32): Likewise.
11065 (function_value_32): Likewise.
11066 (return_in_memory_32): Likewise.
11067 (function_arg_64): Remove OImode comment.
11068
11069 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
11070
11071 PR target/39261
11072 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11073 ix86_expand_vector_set for V4DImode in 64bit mode only.
11074 (ix86_expand_vector_init_one_var): Likewise.
11075
11076 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
11077
11078 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
11079
11080 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
11081
11082 PR bootstrap/39257
11083 * loop-iv.c: Revert last change.
11084 * emit-rtl.c: Likewise.
11085
11086 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
11087
11088 PR target/39256
11089 * config/i386/i386.c (type_natural_mode): Remove an extra
11090 space in the warning message.
11091 (function_value_32): Handle 32-byte vector modes.
11092 (return_in_memory_32): Likewise.
11093
11094 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
11095
11096 * loop-iv.c (truncate_value): New function.
11097 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
11098 of lowpart_subreg.
11099 (lowpart_subreg): Move to...
11100 * emit-rtl.c: ...here.
11101
11102 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
11103
11104 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
11105 accidental and undocumented change at revision 140860.
11106
11107 2009-02-21 Joseph Myers <joseph@codesourcery.com>
11108
11109 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
11110 take gimple_seq * arguments.
11111 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
11112 types_compatible_p langhook.
11113
11114 2009-02-20 Mark Mitchell <mark@codesourcery.com>
11115 Joseph Myers <joseph@codesourcery.com>
11116
11117 * config/arm/arm.c (arm_builtin_va_list): New function.
11118 (arm_expand_builtin_va_start): Likewise.
11119 (arm_gimplify_va_arg_expr): Likewise.
11120 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
11121 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
11122 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
11123 (va_list_type): New variable.
11124 (arm_mangle_type): Mangle va_list_type appropriately.
11125
11126 2009-02-20 Jakub Jelinek <jakub@redhat.com>
11127
11128 PR middle-end/39157
11129 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
11130 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
11131 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
11132 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
11133 parameter to 1000 for -O1 by default.
11134 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
11135 parameter.
11136 * loop-invariant.c: Include params.h.
11137 (move_loop_invariants): Don't call move_single_loop_invariants on
11138 very large loops.
11139
11140 2009-02-20 Jaka Mocnik <jaka@xlab.si>
11141
11142 * calls.c (emit_library_call_value_1): Use slot_offset instead of
11143 offset when calculating bounds for indexing stack_usage_map. Fixes
11144 a buffer overflow with certain target setups.
11145
11146 2009-02-20 Jakub Jelinek <jakub@redhat.com>
11147
11148 PR target/39240
11149 * calls.c (expand_call): Clear try_tail_call if caller and callee
11150 disagree in promotion of function return value.
11151
11152 2009-02-19 Jakub Jelinek <jakub@redhat.com>
11153
11154 PR target/39175
11155 * c-common.c (c_determine_visibility): If visibility changed and
11156 DECL_RTL has been already set, call make_decl_rtl to update symbol
11157 flags.
11158
11159 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
11160
11161 PR c++/39188
11162 * varasm.c (assemble_variable): Don't check DECL_NAME when
11163 globalizing a variable.
11164
11165 2009-02-19 Joseph Myers <joseph@codesourcery.com>
11166
11167 PR c/38483
11168 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
11169 expression before any __builtin_trap call.
11170 * c-typeck.c (build_function_call): Convert and check function
11171 arguments before generating a call to a trap. Evaluate the
11172 function arguments before the trap.
11173
11174 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
11175
11176 PR target/39228
11177 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
11178 (UNSPEC_FXAM_MEM): New unspec.
11179 (fxam<mode>2_i387_with_temp): New insn and split pattern.
11180 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
11181 memory using fxam<mode>2_i387_with_temp to remove excess precision.
11182
11183 2009-02-19 Richard Guenther <rguenther@suse.de>
11184
11185 PR tree-optimization/39207
11186 PR tree-optimization/39074
11187 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
11188 storedanything_tree): New.
11189 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
11190 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
11191 (build_succ_graph): Add edges from STOREDANYTHING to all
11192 non-direct nodes.
11193 (init_base_vars): Initialize STOREDANYTHING.
11194 (compute_points_to_sets): Free substitution info after
11195 building the succ graph.
11196 (ipa_pta_execute): Likewise.
11197
11198 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
11199 field.
11200 (do_ds_constraint): Do not add to special var or non-pointer
11201 field solutions.
11202 (type_could_have_pointers): Split out from ...
11203 (could_have_pointers): ... here. For arrays use the element type.
11204 (create_variable_info_for): Initialize may_have_pointers.
11205 (new_var_info): Likewise.
11206 (handle_lhs_call): Make the HEAP variable unknown-sized.
11207 (intra_create_variable_infos): Use a type with pointers for
11208 PARM_NOALIAS, make it unknown-sized.
11209
11210 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
11211
11212 PR target/39224
11213 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
11214
11215 2009-02-18 Jason Merrill <jason@redhat.com>
11216
11217 PR target/39179
11218 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
11219 value if DECL_EXTERNAL.
11220 * tree-sra.c (sra_walk_gimple_assign): Likewise.
11221 * target.h (gcc_target::binds_local_p): Clarify "module".
11222 * tree.h (TREE_PUBLIC): Clarify "module".
11223
11224 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
11225
11226 PR target/38891
11227 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
11228 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
11229
11230 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
11231
11232 PR target/39082
11233 * c.opt (Wabi): Support C and ObjC.
11234 (Wpsabi): New.
11235
11236 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
11237
11238 * config/i386/i386.c (classify_argument): Warn once about the ABI
11239 change when passing union with long double.
11240
11241 * doc/invoke.texi: Update -Wabi for warning psABI changes.
11242
11243 2009-02-18 Joseph Myers <joseph@codesourcery.com>
11244
11245 PR c/35447
11246 * c-parser.c (c_parser_compound_statement): Always enter and leave
11247 a scope.
11248
11249 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11250
11251 PR target/34587
11252 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
11253
11254 2009-02-18 Jakub Jelinek <jakub@redhat.com>
11255
11256 PR tree-optimization/36922
11257 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
11258 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
11259 Likewise.
11260
11261 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11262
11263 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
11264 to 0 for EABI64.
11265
11266 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11267
11268 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
11269
11270 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11271
11272 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
11273 tree sharing.
11274
11275 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
11276 Richard Sandiford <rdsandiford@googlemail.com>
11277
11278 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
11279 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
11280 (loongson_biadd): ...this.
11281
11282 2009-02-17 Richard Guenther <rguenther@suse.de>
11283
11284 PR tree-optimization/39202
11285 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
11286 a var make sure to follow existing collapses.
11287
11288 2009-02-17 Richard Guenther <rguenther@suse.de>
11289
11290 PR middle-end/39214
11291 * langhooks.c (lhd_print_error_function): Check for NULL block.
11292
11293 2009-02-17 Richard Guenther <rguenther@suse.de>
11294
11295 PR tree-optimization/39204
11296 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
11297 of the PHI arg.
11298
11299 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
11300
11301 * config/soft-fp/double.h: Update from glibc CVS.
11302
11303 2009-02-17 Richard Guenther <rguenther@suse.de>
11304
11305 PR tree-optimization/39207
11306 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
11307 strict-aliasing warnings for pointers pointing to NULL.
11308
11309 2009-02-16 Joseph Myers <joseph@codesourcery.com>
11310
11311 PR c/35446
11312 * c-parser.c (c_parser_braced_init): Call pop_init_level when
11313 skipping until next close brace.
11314
11315 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
11316
11317 PR target/37049
11318 * config/i386/i386.c (ix86_expand_push): Set memory alignment
11319 to function argument boundary.
11320
11321 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
11322
11323 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
11324 in the lea_add. Reload eventually constraints it properly.
11325 * config/picochip/constraints.md: Remove the target constraint
11326 "b", since it is not needed anymore.
11327
11328 2009-02-16 Jakub Jelinek <jakub@redhat.com>
11329
11330 * gthr-dce.h: Uglify function parameter and local variable names.
11331 * gthr-gnat.h: Likewise.
11332 * gthr-mipssde.h: Likewise.
11333 * gthr-nks.h: Likewise.
11334 * gthr-posix95.h: Likewise.
11335 * gthr-posix.h: Likewise.
11336 * gthr-rtems.h: Likewise.
11337 * gthr-single.h: Likewise.
11338 * gthr-solaris.h: Likewise.
11339 * gthr-tpf.h: Likewise.
11340 * gthr-vxworks.h: Likewise.
11341 * gthr-win32.h: Likewise.
11342
11343 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
11344
11345 PR target/39196
11346 * config/i386/i386.md: Restrict the new peephole2 to move
11347 between MMX/SSE registers.
11348
11349 2009-02-15 Richard Guenther <rguenther@suse.de>
11350
11351 Revert
11352 2009-02-13 Richard Guenther <rguenther@suse.de>
11353
11354 * configure.ac: Enable LFS.
11355 * configure: Re-generate.
11356 * config.in: Likewise.
11357
11358 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11359
11360 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
11361 spu_srqwbyte, spu_srqwbytebc): Define.
11362 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
11363 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
11364 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
11365 "shrqby_<mode>"): New insn-and-split patterns.
11366 * config/spu/spu.c (expand_builtin_args): Determine and return
11367 number of operands using spu_builtin_description data.
11368 (spu_expand_builtin_1): Use it.
11369
11370 2009-02-13 Steve Ellcey <sje@cup.hp.com>
11371
11372 PR target/38056
11373 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
11374 TARGET_CONST_GP.
11375
11376 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11377
11378 PR target/39149
11379 * config/i386/i386.c (override_options): Correct warning
11380 messages for -malign-loops, -malign-jumps and -malign-functions.
11381
11382 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11383
11384 PR target/39152
11385 * config/i386/i386.md: Restrict the new peephole2 to move
11386 between the general purpose registers.
11387
11388 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11389
11390 PR target/39162
11391 * config/i386/i386.c (type_natural_mode): Add a new argument.
11392 Return the original mode and warn ABI change if vector size is 32byte.
11393 (function_arg_advance): Updated.
11394 (function_arg): Likewise.
11395 (ix86_function_value): Likewise.
11396 (ix86_return_in_memory): Likewise.
11397 (ix86_sol10_return_in_memory): Likewise.
11398 (ix86_gimplify_va_arg): Likewise.
11399 (function_arg_32): Don't warn ABX ABI change here.
11400 (function_arg_64): Likewise.
11401
11402 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
11403
11404 * loop-iv.c (implies_p): In the final case, test that operands 0
11405 of the two comparisons match.
11406
11407 * config/bfin/bfin.c (find_prev_insn_start): New function.
11408 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
11409 (find_next_insn_start): Move.
11410
11411 2009-02-13 Richard Guenther <rguenther@suse.de>
11412
11413 * configure.ac: Enable LFS.
11414 * configure: Re-generate.
11415 * config.in: Likewise.
11416
11417 2009-02-13 Joseph Myers <joseph@codesourcery.com>
11418
11419 PR c/35444
11420 * c-parser.c (c_parser_parms_list_declarator): Discard pending
11421 sizes on syntax error after some arguments have been parsed.
11422
11423 2009-02-12 Jakub Jelinek <jakub@redhat.com>
11424
11425 * doc/invoke.texi (-fira): Remove.
11426
11427 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11428
11429 * caller-save.c: Replace regclass.c with reginfo.c in comments.
11430 * recog.c: Likewise.
11431 * rtl.h: Likewise.
11432
11433 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
11434
11435 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
11436 (umul_ppmm): Likewise.
11437 (count_leading_zeros): Likewise.
11438 (count_trailing_zeros): Likewise.
11439 (UMUL_TIME): Likewise.
11440
11441 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11442
11443 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
11444 soft-fp/t-softfp to tmake_file.
11445
11446 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
11447 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
11448 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
11449 IA64_BUILTIN_INFQ]: New.
11450 (ia64_init_builtins): Initialize __builtin_infq,
11451 __builtin_fabsq and __builtin_copysignq if not HPUX.
11452 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
11453 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
11454
11455 * config/ia64/lib1funcs.asm (__divtf3): Define only if
11456 SHARED is defined.
11457 (__fixtfti): Likewise.
11458 (__fixunstfti): Likewise.
11459 (__floattitf): Likewise.
11460
11461 * config/ia64/libgcc-glibc.ver: New.
11462 * config/ia64/t-fprules-softfp: Likewise.
11463 * config/ia64/sfp-machine.h: Likewise.
11464
11465 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
11466 (LIBGCC2_TF_CEXT): Likewise.
11467 (TF_SIZE): Likewise.
11468 (TARGET_INIT_LIBFUNCS): Likewise.
11469
11470 * config/ia64/t-glibc (SHLINB_MAPFILES):
11471 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
11472
11473 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11474
11475 * config/i386/i386.c (construct_container): Rewrite processing
11476 BLKmode with X86_64_SSE_CLASS.
11477
11478 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
11479
11480 PR target/39152
11481 * config/i386/i386.md: Replace simplify_replace_rtx with
11482 replace_rtx in the new peephole2.
11483
11484 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
11485
11486 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
11487 loop unrolling do not happen at -O2.
11488
11489 2009-02-12 Michael Matz <matz@suse.de>
11490
11491 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
11492
11493 2009-02-12 Jakub Jelinek <jakub@redhat.com>
11494
11495 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
11496 for -g3.
11497
11498 2009-02-12 Ben Elliston <bje@au.ibm.com>
11499
11500 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
11501 patterns when updating the back chain. Missed in the 2009-02-10
11502 change.
11503
11504 2009-02-11 Janis Johnson <janis187@us.ibm.com>
11505
11506 * doc/extend.texi (Decimal Floating Types): Update identifier of
11507 draft TR and list of missing support.
11508
11509 2009-02-11 Jakub Jelinek <jakub@redhat.com>
11510
11511 PR middle-end/39154
11512 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
11513 bit to variable length decl's flags, add it also to its
11514 pointer replacement variable.
11515
11516 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
11517 Jakub Jelinek <jakub@redhat.com>
11518
11519 PR target/39118
11520 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
11521 (memory_blockage): New expander.
11522 (*memory_blockage): New insn pattern.
11523 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
11524 instead of general blockage at the end of function prologue when
11525 frame pointer is used to access red zone area. Do not emit blockage
11526 when profiling, it is emitted in generic code.
11527 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
11528 function epilogue when frame pointer is used to access red zone area.
11529
11530 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
11531
11532 PR target/38824
11533 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
11534 by arithmetic with memory operands.
11535 * config/i386/predicates.md (commutative_operator): New.
11536
11537 2009-02-10 Janis Johnson <janis187@us.ibm.com>
11538
11539 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
11540 bulleted lists.
11541
11542 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
11543
11544 * alias.h (record_alias_subset): Declare.
11545 * alias.c (record_alias_subset): Make global.
11546
11547 2009-02-10 Nick Clifton <nickc@redhat.com>
11548
11549 * tree-parloops.c: Change license to GPLv3.
11550 * ipa-struct-reorg.c: Change license to GPLv3.
11551 * ipa-struct-reorg.h: Change license to GPLv3.
11552
11553 2009-02-10 Steve Ellcey <sje@cup.hp.com>
11554
11555 PR c/39084
11556 * c-decl.c (start_struct): Return NULL on error.
11557
11558 2009-02-10 Jakub Jelinek <jakub@redhat.com>
11559
11560 PR middle-end/39124
11561 * cfgloopmanip.c (remove_path): Call remove_bbs after
11562 cancel_loop_tree, not before it.
11563
11564 PR target/39139
11565 * function.h (struct function): Add has_local_explicit_reg_vars bit.
11566 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
11567 VAR_DECLs were seen.
11568 * tree-ssa-live.c (remove_unused_locals): Recompute
11569 cfun->has_local_explicit_reg_vars.
11570 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
11571 copies or clearings if cfun->has_local_explicit_reg_vars.
11572
11573 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
11574
11575 PR target/39118
11576 * config/i386/i386.c (expand_prologue): Emit blockage at the end
11577 of function prologue when frame pointer is used to access
11578 red zone area.
11579
11580 2009-02-10 Richard Guenther <rguenther@suse.de>
11581
11582 PR middle-end/39127
11583 * gimplify.c (gimple_regimplify_operands): Always look if
11584 we need to create a temporary.
11585
11586 2009-02-10 Richard Guenther <rguenther@suse.de>
11587
11588 PR tree-optimization/39132
11589 * tree-loop-distribution.c (todo): New global var.
11590 (generate_memset_zero): Trigger TODO_rebuild_alias.
11591 (tree_loop_distribution): Return todo.
11592
11593 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
11594
11595 PR target/39119
11596 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
11597 (x86_64_reg_class_name): Removed.
11598 (classify_argument): Return 0 if bytes > 32. Return 0 if the
11599 first one isn't X86_64_SSE_CLASS or any other ones aren't
11600 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
11601 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
11602 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
11603 and 3 X86_64_SSEUP_CLASS.
11604 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
11605 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
11606
11607 2009-02-10 Ben Elliston <bje@au.ibm.com>
11608
11609 * config/rs6000/rs6000.md (allocate_stack): Always use an update
11610 form instruction to update the stack back chain word, even if the
11611 user has disabled the generation of update instructions.
11612 (movdi_<mode>_update_stack): New.
11613 (movsi_update_stack): Likewise.
11614 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
11615 always use an update form instruction to update the stack back
11616 chain word.
11617
11618 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
11619
11620 PR middle-end/38953
11621 * graphite.c (if_region_set_false_region): After moving a region in
11622 the false branch of a condition, remove the empty dummy basic block.
11623 (gloog): Remove wrong fix for PR38953.
11624
11625 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11626
11627 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
11628 generation due to implicit sign extension.
11629
11630 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
11631
11632 PR middle-end/38981
11633 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
11634 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
11635
11636 2009-02-09 Richard Guenther <rguenther@suse.de>
11637
11638 PR middle-end/35202
11639 * convert.c (convert_to_real): Disable (float)fn((double)x)
11640 to fnf(x) conversion if errno differences may occur and
11641 -fmath-errno is set.
11642
11643 2009-02-07 Anatoly Sokolov <aesok@post.ru>
11644
11645 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
11646 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11647 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
11648
11649 2009-02-06 Joseph Myers <joseph@codesourcery.com>
11650
11651 PR c/35434
11652 * c-common.c (handle_alias_attribute): Disallow attribute for
11653 anything not a FUNCTION_DECL or VAR_DECL.
11654
11655 2009-02-06 Janis Johnson <janis187@us.ibm.com>
11656
11657 PR c/39035
11658 * real.c (do_compare): Special-case compare of zero against
11659 decimal float value.
11660
11661 2009-02-06 Joseph Myers <joseph@codesourcery.com>
11662
11663 PR c/36432
11664 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
11665 as indicating flexible array members unless the field itself is
11666 being declarared as the incomplete array.
11667
11668 2009-02-06 Jan Hubicka <jh@suse.cz>
11669
11670 PR tree-optimization/38844
11671 * ipa-inline.c (try_inline): Stop inlining recursion when edge
11672 is already inlined.
11673
11674 2009-02-06 Richard Guenther <rguenther@suse.de>
11675
11676 PR middle-end/38977
11677 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
11678 fork because we may expand it as __gcov_fork.
11679
11680 2009-02-06 Nick Clifton <nickc@redhat.com>
11681
11682 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
11683
11684 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
11685
11686 PR tree-optimization/35659
11687 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
11688 vn_phi_eq): Shortcut if hashcode does not match.
11689 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
11690 NULL operands.
11691 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
11692 and avoid iterative_hash_expr.
11693 (FOR_EACH_VALUE_ID_IN_SET): New.
11694 (value_id_compare): Remove.
11695 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
11696 sort expressions by value id.
11697
11698 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
11699
11700 PR target/38991
11701 * config/sh/predicates.md (general_movsrc_operand): Don't check
11702 the subreg of system registers here.
11703
11704 2009-02-05 Jakub Jelinek <jakub@redhat.com>
11705
11706 PR c++/39106
11707 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
11708 on the copied decl.
11709
11710 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
11711
11712 PR rtl-optimization/39110
11713 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
11714 addresses, not aligned ones.
11715
11716 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
11717 Richard Guenther <rguenther@suse.de>
11718
11719 PR tree-optimization/39100
11720 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
11721 comment says and add edges.
11722
11723 2009-02-05 Joseph Myers <joseph@codesourcery.com>
11724
11725 PR c/35435
11726 * c-common.c (handle_tls_model_attribute): Ignore attribute for
11727 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
11728
11729 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
11730
11731 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
11732 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
11733 register_bb_in_sese, new_sese, free_sese): Moved.
11734 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
11735 outermost_loop_in_scop, build_scop_iteration_domain,
11736 expand_scalar_variables_ssa_name, get_vdef_before_scop,
11737 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
11738 Use loop_in_sese_p instead of loop_in_scop_p.
11739 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
11740 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
11741 (scopdet_basic_block_info): Fix bug in scop detection.
11742 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
11743 eq_loop_to_cloog_loop): Remove.
11744 (nb_loops_around_loop_in_scop, nb_loop
11745 ref_nb_loops): Moved here...
11746 * graphite.h (ref_nb_loops): ... from here.
11747 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
11748 (loop_domain_dim, loop_iteration_vector_dim): Remove.
11749 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
11750 * testsuite/gcc.dg/graphite/scop-19.c: New
11751
11752 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
11753 Hans-Peter Nilsson <hp@axis.com>
11754
11755 PR rtl-optimization/37889
11756 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
11757 Move offset handling from PLUS to before the switch. Use new
11758 arguments when considering SYMBOL_REFs too.
11759 (rtx_addr_can_trap_p): Pass dummy offset and size.
11760 (enum may_trap_p_flags): Remove.
11761 (may_trap_p_1): Pass size from MEM_SIZE.
11762
11763 PR rtl-optimization/38921
11764 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
11765 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
11766 * rtlanal.c (may_trap_after_code_motion_p): Delete.
11767 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
11768
11769 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
11770
11771 AVX Programming Reference (January, 2009)
11772 * config/i386/sse.md (*vpclmulqdq): New.
11773
11774 2009-02-04 Jakub Jelinek <jakub@redhat.com>
11775
11776 PR tree-optimization/38977
11777 PR gcov-profile/38292
11778 * calls.c (special_function_p): Disregard __builtin_ prefix.
11779
11780 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
11781
11782 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
11783 non-indexable addresses even before reload.
11784
11785 2009-02-03 Joseph Myers <joseph@codesourcery.com>
11786
11787 PR c/29129
11788 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
11789 as having variable size. Do not give an error for unnamed
11790 parameters with [*] declarators. Give a warning for type names
11791 with [*] declarators and mark them as variable size.
11792 * c-parser.c (c_parser_sizeof_expression): Do not give an error
11793 for sizeof applied to [*] type names.
11794
11795 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
11796
11797 PR C++/36607
11798 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
11799
11800 2009-02-03 Jakub Jelinek <jakub@redhat.com>
11801
11802 * gcc.c (process_command): Update copyright notice dates.
11803 * gcov.c (print_version): Likewise.
11804 * gcov-dump.c (print_version): Likewise.
11805 * mips-tfile.c (main): Likewise.
11806 * mips-tdump.c (main): Likewise.
11807
11808 2009-02-03 Joseph Myers <joseph@codesourcery.com>
11809
11810 PR c/35433
11811 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
11812 for composite type involving a zero-length array type.
11813
11814 2009-02-03 Jakub Jelinek <jakub@redhat.com>
11815
11816 PR target/35318
11817 * function.c (match_asm_constraints_1): Skip over
11818 initial optional % in the constraint.
11819
11820 PR inline-asm/39059
11821 * c-parser.c (c_parser_postfix_expression): If fixed point is not
11822 supported, don't accept FIXED_CSTs.
11823 * c-decl.c (finish_declspecs): Error if fixed point is not supported
11824 and _Sat is used without _Fract/_Accum. Set specs->type to
11825 integer_type_node for cts_fract/cts_accum if fixed point is not
11826 supported.
11827
11828 2009-02-02 Catherine Moore <clm@codesourcery.com>
11829
11830 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
11831
11832 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
11833
11834 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
11835 (ABI_HAS_64BIT_SYMBOLS): Use it.
11836 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
11837
11838 2009-02-02 Paul Brook <paul@codesourcery.com>
11839
11840 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
11841
11842 2009-02-02 Jakub Jelinek <jakub@redhat.com>
11843
11844 PR inline-asm/39058
11845 * recog.h (asm_operand_ok): Add constraints argument.
11846 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
11847 recurse on matching constraint.
11848 (check_asm_operands): Pass constraints as 3rd argument to
11849 asm_operand_ok. Don't look up matching constraint here.
11850 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
11851 to asm_operand_ok.
11852
11853 2009-02-02 Ben Elliston <bje@au.ibm.com>
11854
11855 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
11856 TARGET_NARROW_VOLATILE_BITFIELD macro names.
11857
11858 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11859
11860 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
11861 information. Remove some obsolete information. Reorganize.
11862
11863 * config/pa/fptr.c: Revert license to GPL 2.
11864 * config/pa/milli64.S: Likewise.
11865
11866 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
11867
11868 PR target/38904
11869 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
11870 LIBRARY name in, instead of hard-coding it.
11871 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
11872 extra target make frag to tmake_files according to EH model.
11873 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
11874 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
11875 frags that define makefile variable EH_MODEL appropriately.
11876 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
11877 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
11878 to "-sjlj" according to type of EH configured.
11879 (LIBGCC_SONAME): Concatenate it to shared library base name.
11880 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
11881 to "_sjlj" according to type of EH configured.
11882 (LIBGCC_SONAME): Concatenate it to shared library base name.
11883 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
11884 (SHLIB_LINK): Add missing semicolon to if-else construct.
11885 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
11886 string value of "pe_dll" command-line option.
11887 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
11888 (SHLIB_SONAME): Use it when overriding t-cygming default.
11889 (SHLIB_IMPLIB): Override t-cygming default.
11890 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
11891 string value of "pe_dll" command-line option.
11892
11893 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
11894
11895 PR target/38952
11896 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
11897 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
11898
11899 2009-01-31 Richard Guenther <rguenther@suse.de>
11900
11901 PR tree-optimization/38937
11902 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
11903 computing the transitive closure.
11904
11905 2009-01-30 Richard Guenther <rguenther@suse.de>
11906
11907 PR tree-optimization/39041
11908 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
11909 Propagate variable indices only if the types match for this stmt.
11910
11911 2009-01-30 Jakub Jelinek <jakub@redhat.com>
11912
11913 PR target/39013
11914 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
11915 inline but never defined.
11916
11917 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
11918
11919 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
11920 (*insv_h_di_reg_extimm): New insn.
11921 (*insv_l<mode>_reg_extimm): New insn.
11922
11923 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
11924
11925 * config/picochip/picochip.c (flag_conserve_stack): set
11926 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
11927 fconserve-stack. Reduce call-overhead used by inliner.
11928
11929 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
11930
11931 PR/38157
11932 * common.opt (flag_conserve_stack): Initialised to zero.
11933
11934 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
11935
11936 PR/39002
11937 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
11938 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
11939 method.
11940
11941 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
11942
11943 * ira-color.c (allocno_reload_assign): Update comments.
11944 * regmove.c (regmove_optimize): Likewise.
11945
11946 * ra.h: Removed.
11947
11948 2009-01-29 Robert Millan <rmh@aybabtu.com>
11949
11950 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
11951 * config/i386/kopensolaris-gnu.h: New file. Undefine
11952 `MD_UNWIND_SUPPORT'.
11953 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
11954
11955 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
11956
11957 PR tree-optimization/39007
11958 * tree-loop-distribution.c (generate_builtin): Use
11959 recompute_dominator to compute the immediate dominator of the
11960 basic block just after the loop.
11961
11962 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11963
11964 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
11965 (ASM_OUTPUT_DWARF_PCREL): Define.
11966
11967 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
11968
11969 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
11970 * doc/passes.texi: Remove entries about regclass, local-alloc, and
11971 global. Modify entries about regmove and IRA.
11972
11973 * ra-conflict.c: Remove the file.
11974
11975 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
11976
11977 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
11978 (pass_regclass_init): Rename to pass_reginfo_init.
11979
11980 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
11981
11982 * toplev.h (flag_ira): Remove.
11983
11984 * caller-save.c (setup_save_areas): Remove flag_ira.
11985
11986 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
11987
11988 * global.c: Remove the file.
11989
11990 * opts.c (decode_options): Remove flag_ira.
11991
11992 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
11993
11994 * regmove.c: Modify file description.
11995 (find_use_as_address, try_auto_increment): Define them only if
11996 AUTO_INC_DEC is defined.
11997 (replacement_quality, replace_in_call_usage, fixup_match_1,
11998 stable_and_no_regs_but_for_p): Remove.
11999 (reg_set_in_bb): Make it static.
12000 (regmove_optimize): Remove flag_ira and code which worked for
12001 !flag_ira.
12002
12003 * local-alloc.c: Remove the file.
12004
12005 * common.opt (fira): Remove.
12006
12007 * ira.c: Include except.h.
12008 (eliminable_regset): Move from global.c.
12009 (mark_elimination): Ditto. Remove flag_ira.
12010 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
12011 equiv_mem_modified, validate_equiv_mem_from_store,
12012 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
12013 contains_replace_regs, memref_referenced_p, memref_used_between_p,
12014 no_equiv, recorded_label_ref): Move from local-alloc.c.
12015 (update_equiv_regs): Ditto. Make it static.
12016 (print_insn_chain, print_insn_chains): Move it from global.c.
12017 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
12018 (build_insn_chain): Ditto. Make it static.
12019 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
12020 Rename to init_live_subregs.
12021 (gate_ira): Remove flag_ira.
12022
12023 * regclass.c: Rename reginfo.c. Change file description.
12024 (FORBIDDEN_INC_DEC_CLASSES): Remove.
12025 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
12026 (init_reg_sets_1): Remove code for evaluation of
12027 reg_class_superclasses and losing_caller_save_reg_set.
12028 (init_regs): Remove init_reg_autoinc.
12029 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
12030 ok_for_base_p_nonstrict): Remove.
12031 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
12032 (pass_regclass_init): Rename to pass_reginfo_init. Modify
12033 corresponding entries.
12034 (dump_regclass, record_operand_costs, scan_one_insn,
12035 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
12036 record_address_regs, auto_inc_dec_reg_p): Remove.
12037 (gt-regclass.h): Rename to gt-reginfo.h.
12038
12039 * rtl.h (dump_global_regs, retry_global_alloc,
12040 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
12041
12042 * Makefile.in (RA_H): Remove.
12043 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
12044 Rename regclass.o to reginfo.o.
12045 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
12046 gt-reginfo.h.
12047 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
12048 (GTFILES): Rename regclass.c to reginfo.c.
12049
12050 * passes.c (init_optimization_passes): Remove pass_local_alloc and
12051 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
12052
12053 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
12054 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
12055 Remove flag_ira.
12056 (finish_spills): Ditto. Remove code for !flag_ira.
12057
12058 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
12059
12060 PR middle-end/35854
12061 * doc/invoke.texi (rtl debug options): Complete rewrite.
12062 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
12063 to auto_inc_dec".
12064 * mode-switching.c (pass_mode_switching): Rename pass from
12065 "mode-sw" to "mode_sw".
12066 * except.c (pass_convert_to_eh_ranges): Rename pass from
12067 "eh-ranges" to "eh_ranges".
12068 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
12069 to "subreg1".
12070
12071
12072 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
12073 Alexander Monakov <amonakov@ispras.ru>
12074
12075 PR middle-end/38857
12076 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
12077 register.
12078 (move_exprs_to_boundary): Change return type and pass through
12079 should_move from move_op. Relax assert. Update usage ...
12080 (schedule_expr_on_boundary): ... here. Use should_move instead of
12081 cant_move.
12082 (move_op_orig_expr_found): Indicate that insn was disconnected from
12083 stream.
12084 (code_motion_process_successors): Do not call after_merge_succs
12085 callback if original expression was not found when traversing any of
12086 the branches.
12087 (code_motion_path_driver): Change return type. Update prototype.
12088 (move_op): Update comment. Add a new parameter (should_move). Update
12089 prototype. Set *should_move based on indication provided by
12090 move_op_orig_expr_found.
12091
12092 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
12093
12094 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
12095 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
12096 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
12097 * config/rs6000/rs6000.c (rs6000_override_options): Default
12098 avoid-indexed-addresses on for Power6, off for everything else.
12099 (avoiding_indexed_address_p): New function.
12100 (rs6000_legitimize_address): Use it.
12101 (rs6000_legitimate_address): Likewise.
12102 * config/rs6000/rs6000.md (movXX_updateX): Likewise
12103
12104 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
12105
12106 PR tree-optimization/38997
12107 * tree-loop-distribution.c (generate_memset_zero): Use
12108 POINTER_PLUS_EXPR for a pointer addition.
12109
12110 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
12111
12112 * config/s390/s390.md (bswap<mode>2): New pattern added.
12113
12114 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12115
12116 * config/s390/s390.md (*tls_load_31): Added type attribute.
12117
12118 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12119
12120 * config/s390/s390.md: Fix a few comments.
12121
12122 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12123
12124 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
12125 (*tm<mode>_full): Fixed z10prop attribute.
12126 (*tst<mode>_extimm): Fixed z10prop attribute.
12127 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
12128 (*tstqiCCT_cconly): Fixed z10prop attribute.
12129 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
12130 (*movsi_larl): Fixed z10prop attribute.
12131 (*movsi_zarch): Fixed z10prop attribute.
12132 (*movsi_eas): Fixed z10prop attribute.
12133 (*movhi): Fixed z10prop attribute.
12134 (*movqi): Fixed z10prop attribute.
12135 (*movstrictqi): Fixed z10prop attribute.
12136 (*mov<mode>): Fixed z10prop attribute.
12137 (*movcc): Fixed z10prop attribute.
12138 (*sethighpartdi_64): Fixed z10prop attribute.
12139 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
12140 (*negdi2_sign_cc): Fixed z10prop attribute.
12141 (*negdi2_sign): Fixed z10prop attribute.
12142 (*absdi2_sign_cc): Fixed z10prop attribute.
12143 (*absdi2_sign): Fixed z10prop attribute.
12144 (*negabsdi2_sign_cc): Fixed z10prop attribute.
12145 (*negabsdi2_sign): Fixed z10prop attribute.
12146 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
12147 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
12148 (doloop_si64): Fixed z10prop attribute.
12149 (doloop_si31): Fixed z10prop attribute.
12150 (doloop_long): Fixed z10prop attribute.
12151 (indirect_jump): Fixed z10prop attribute.
12152 (nop): Fixed z10prop attribute.
12153 (main_base_64): Fixed z10prop attribute.
12154 (reload_base_64): Fixed z10prop attribute.
12155
12156 2009-01-28 Jakub Jelinek <jakub@redhat.com>
12157
12158 PR rtl-optimization/38740
12159 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
12160 if !optimize.
12161 * config/mips/mips.c (mips_reorg): Likewise.
12162
12163 2009-01-28 Richard Guenther <rguenther@suse.de>
12164
12165 PR tree-optimization/38926
12166 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
12167 with the correct value id to a value.
12168 (do_regular_insertion): Use the value number of edoubleprime
12169 for the value number of the expr.
12170
12171 Revert
12172 2008-08-21 Richard Guenther <rguenther@suse.de>
12173
12174 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
12175 a PHI ask VN if it is already available.
12176 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
12177 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
12178
12179 2009-01-28 Jakub Jelinek <jakub@redhat.com>
12180
12181 PR middle-end/38934
12182 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
12183 set to varying whenever max has TREE_OVERFLOW set, similarly
12184 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
12185
12186 2009-01-28 Richard Guenther <rguenther@suse.de>
12187
12188 PR middle-end/38908
12189 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
12190 uninitialized aggregate uses in call arguments.
12191
12192 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
12193
12194 PR tree-optimization/38984
12195 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
12196 the nothing_id variable if -fno-delete-null-pointer-checks.
12197
12198 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
12199
12200 PR target/38988
12201 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
12202 (set_got_offset_rex64): Ditto.
12203
12204 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
12205
12206 PR target/38941
12207 * doc/extend.texi: Improve local variable with asm reg.
12208
12209 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
12210
12211 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
12212 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
12213 was not supplied then set warn_packed_bitfield_compat to the
12214 default value of 1.
12215 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
12216 against 1.
12217
12218 2009-01-27 Richard Guenther <rguenther@suse.de>
12219
12220 PR tree-optimization/38503
12221 * cfgexpand.c (expand_gimple_basic_block): Ignore
12222 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
12223 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
12224 variables that cannot have TBAA applied.
12225 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
12226 statements.
12227
12228 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
12229
12230 PR middle-end/38969
12231 * calls.c (initialize_argument_information): Do not wrap complex
12232 arguments in SAVE_EXPR.
12233
12234 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
12235
12236 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
12237 (INSTALL_LIBGCC): Revert typo commit.
12238
12239 2009-01-26 Richard Guenther <rguenther@suse.de>
12240
12241 PR tree-optimization/38745
12242 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
12243 from special handling.
12244
12245 2009-01-26 Richard Guenther <rguenther@suse.de>
12246
12247 PR tree-optimization/38745
12248 * tree-ssa.c (execute_update_addresses_taken): Do not include
12249 variables that cannot possibly be a register in not_reg_needs.
12250 Do not clear TREE_ADDRESSABLE on vars that may not become
12251 registers.
12252 * tree-ssa.c (update_alias_info_1): Include those in the set
12253 of addressable vars.
12254
12255 2009-01-26 Richard Guenther <rguenther@suse.de>
12256
12257 PR middle-end/38851
12258 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
12259 * tree-ssa-dse.c: Include langhooks.h
12260 (execute_simple_dse): Remove stores with zero size.
12261
12262 2009-01-24 Jakub Jelinek <jakub@redhat.com>
12263
12264 PR c/38957
12265 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
12266 as PLUS_EXPR.
12267
12268 2009-01-24 Julian Brown <julian@codesourcery.com>
12269
12270 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
12271 config/arm/linux-atomic.c.
12272 * config/arm/linux-atomic.c: New.
12273
12274 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
12275
12276 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
12277 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
12278 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
12279
12280 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
12281
12282 PR c/38938
12283 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
12284 properly.
12285
12286 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
12287
12288 PR tree-optimization/38953
12289 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
12290 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
12291 (gloog): Split the exit of the scop when the scop exit is a loop exit.
12292 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
12293 changed the CFG.
12294
12295 2009-01-24 Paul Brook <paul@codesourcery.com>
12296
12297 * config/arm/neon.md (neon_type): Move to arm.md.
12298 (neon_mov<VSTRUCT>): Add neon_type attribute.
12299 * config/arm/arm.md (neon_type): Move to here.
12300 (conds): Add "unconditioal" and use as default for NEON insns.
12301
12302 2009-01-24 Ben Elliston <bje@au.ibm.com>
12303
12304 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
12305 void *' warning from -Wc++-compat.
12306 * Makefile.in (dominance.o-warn): Remove.
12307
12308 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
12309
12310 PR tree-optimization/38932
12311 * fold-const.c (fold_unary_ignore_overflow): New.
12312 * tree.h (fold_unary_ignore_overflow): Declare.
12313 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
12314 * tree-ssa-sccvn.c (visit_reference_op_load,
12315 simplify_unary_expression): Likewise.
12316
12317 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
12318
12319 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
12320 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
12321 regardless of their type.
12322 * c-common.c (handle_packed_attribute): Don't ignore packed on
12323 bitfields.
12324 * c.opt (Wpacked-bitfield-compat): New warning option.
12325 * stor-layout.c (place_field): Warn if offset of a field changed.
12326 * doc/extend.texi (packed): Mention the ABI change.
12327 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
12328 (Warning Options): Add it to the list.
12329
12330 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
12331
12332 * c-opts.c (c_common_post_options): Fix a typo in comments.
12333
12334 2009-01-22 Steve Ellcey <sje@cup.hp.com>
12335
12336 PR middle-end/38615
12337 * gimplify.c (gimplify_init_constructor): Fix promotion of const
12338 variables to static.
12339 * doc/invoke.texi (-fmerge-all-constants): Update description.
12340
12341 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
12342
12343 PR target/38931
12344 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
12345 (*movdi_1_rex64): Use type "mmx" for alternative 5.
12346
12347 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
12348
12349 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
12350 a word boundary.
12351 (LOCAL_ALIGNMENT): Similarly.
12352
12353 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
12354 Joseph Myers <joseph@codesourcery.com>
12355
12356 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
12357 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
12358 * config/arm/arm-tune.md: Regenerate.
12359 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
12360 -march=iwmmxt2.
12361
12362 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
12363
12364 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
12365 version number to five.
12366
12367 2009-01-22 Dodji Seketeli <dodji@redhat.com>
12368
12369 PR c++/38930
12370 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
12371 * c-common.c (set_underlying_type): Likewise.
12372 (is_typedef_decl ): Likewise
12373 * tree.h: Likewise
12374 (set_underlying_type): Likewise.
12375 (is_typedef_type): Likewise.
12376
12377 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
12378
12379 PR middle-end/38587
12380 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
12381 crossing setjmps.
12382
12383 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
12384
12385 PR bootstrap/37660
12386 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
12387 (LIBGCC_SPEC): Don't define.
12388 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
12389
12390 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
12391
12392 PR rtl-optimization/38879
12393 * alias.c (base_alias_check): Unaligned access via AND address can
12394 alias all surrounding object types except those with sizes equal
12395 or wider than the size of unaligned access.
12396
12397 2009-01-21 Dodji Seketeli <dodji@redhat.com>
12398
12399 PR c++/26693
12400 * c-decl.c (clone_underlying_type): Move this ...
12401 * c-common.c (set_underlying_type): ... here.
12402 Also, make sure the function properly sets TYPE_STUB_DECL() on
12403 the newly created typedef variant type.
12404 (is_typedef_decl ): New entry point.
12405 * tree.h: Added a new member member_types_needing_access_check to
12406 struct tree_decl_non_common.
12407 (set_underlying_type): New entry point.
12408 (is_typedef_type): Likewise.
12409
12410 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
12411
12412 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
12413 Check whether two instructions have memory references that
12414 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
12415 are helper functions for traversing.
12416 * alias.h (insn_alias_sets_confilict_p): New prototypes.
12417 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
12418 not to draw dependency edge for instructions with non-conflicting
12419 alias sets.
12420
12421 2009-01-20 Joseph Myers <joseph@codesourcery.com>
12422
12423 PR other/38758
12424 * longlong.h: Update copyright years. Use soft-fp license notice.
12425 Sync __clz_tab declaration with glibc.
12426
12427 2009-01-20 Steve Ellcey <sje@cup.hp.com>
12428
12429 PR target/30687
12430 * doc/extend.texi (syscall_linkage): New.
12431 (version_id): Modify.
12432
12433 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
12434 Richard Guenther <rguenther@suse.de>
12435
12436 PR tree-optimization/38747
12437 PR tree-optimization/38748
12438 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
12439 conversion if the base address is an indirect reference and the
12440 aliasing sets could cause issues.
12441
12442 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
12443
12444 * common.opt (fgraphite, fgraphite-identity): Add comment for
12445 explaining why these options are not documented.
12446
12447 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
12448
12449 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
12450 gimple_call_lhs is NULL.
12451
12452 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
12453
12454 PR target/38868
12455 * emit-rtl.c (adjust_address_1): Make sure memref is never
12456 overwritten.
12457
12458 2009-01-20 Ben Elliston <bje@au.ibm.com>
12459
12460 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
12461 const qualifier from arg parameter. Remove unnecessary cast to char *.
12462 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
12463 const qualifier from arg 2.
12464
12465 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
12466
12467 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
12468
12469 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
12470
12471 PR c/38869
12472 * rtl.h (reinit_regs): New prototype.
12473 * regclass.c: Include ira.h.
12474 (reinit_regs): New.
12475 * Makefile.in (regclass.o): Add ira.h.
12476 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
12477
12478 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
12479
12480 PR target/38736
12481 * c-common.c (handle_aligned_attribute): Use
12482 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
12483 default alignment value.
12484
12485 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
12486
12487 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
12488 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
12489
12490 * doc/extend.texi: Update __attribute__ ((aligned)). Document
12491 __BIGGEST_ALIGNMENT__.
12492
12493 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
12494
12495 2009-01-18 Richard Guenther <rguenther@suse.de>
12496
12497 PR tree-optimization/38819
12498 * tree-flow.h (operation_could_trap_helper_p): Declare.
12499 * tree-eh.c (operation_could_trap_helper_p): Export.
12500 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
12501 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
12502 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
12503 are about to insert a possibly trapping instruction and fail
12504 in this case.
12505
12506 2009-01-18 Andreas Schwab <schwab@suse.de>
12507
12508 * doc/install.texi (Configuration): Remove obsolete paragraph
12509 about use of --with-gnu-ld with --with-gnu-as.
12510
12511 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
12512
12513 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
12514 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
12515 Follow spelling conventions.
12516
12517 2009-01-18 Ben Elliston <bje@au.ibm.com>
12518
12519 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
12520 C++ warning about implicit conversion from void * to struct
12521 bitmap_head_def *.
12522 (bitmap_obstack_free): Likewise for bitmap_element *.
12523 * Makefile.in (bitmap.o-warn): Remove.
12524
12525 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
12526
12527 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
12528
12529 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
12530 Tobias Grosser <tobi.grosser@amd.com>
12531
12532 * graphite.c (graphite_trans_scop_block): Do not block single
12533 nested loops.
12534
12535 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
12536
12537 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
12538 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
12539 test with assertion.
12540
12541 2009-01-16 Richard Guenther <rguenther@suse.de>
12542
12543 PR tree-optimization/38835
12544 PR middle-end/36227
12545 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
12546 and INT + PTR -> (INT)(PTR p+ INT) folding.
12547 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
12548
12549 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
12550
12551 PR target/38554
12552 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
12553 the subreg from a lowpart subreg if it is also casting the value.
12554
12555 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
12556 Tobias Grosser <tobi.grosser@amd.com>
12557
12558 * graphite.c (compare_prefix_loops): New.
12559 (build_scop_canonical_schedules): Rewritten.
12560 (graphite_transform_loops): Move build_scop_canonical_schedules
12561 after build_scop_iteration_domain.
12562
12563 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
12564 Tobias Grosser <tobi.grosser@amd.com>
12565
12566 * graphite.c (add_conditions_to_domain): Add the loops to
12567 the dimension of the iteration domain. Do copy the domain
12568 only when it exists.
12569 (build_scop_conditions_1): Do not call add_conditions_to_domain.
12570 (add_conditions_to_constraints): New.
12571 (can_generate_code_stmt, can_generate_code): Removed.
12572 (gloog): Do not call can_generate_code.
12573 (graphite_transform_loops): Call add_conditions_to_constraints
12574 after building the iteration domain.
12575
12576 2009-01-16 Jakub Jelinek <jakub@redhat.com>
12577
12578 PR tree-optimization/38789
12579 * tree-ssa-threadedge.c
12580 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
12581 __builtin_constant_p.
12582
12583 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
12584
12585 * dce.c (delete_unmarked_insns): Reversed the order that insns are
12586 examined before deleting them.
12587
12588 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
12589
12590 * function.c (aggregate_value_p): Correctly extract the function
12591 type from CALL_EXPR_FN lookup.
12592
12593 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
12594
12595 * config/picochip/picochip.c (picochip_override_options): Revert
12596 CFI asm flag disable commited previously.
12597
12598 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
12599 Tobias Grosser <tobi.grosser@amd.com>
12600 Jan Sjodin <jan.sjodin@amd.com>
12601
12602 * graphite.c (scan_tree_for_params): On substractions negate
12603 all the coefficients of the term.
12604 (clast_to_gcc_expression_red): New. Handle reduction expressions
12605 of more than two operands.
12606 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
12607 (get_vdef_before_scop): Handle also the case of default definitions.
12608
12609 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
12610
12611 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
12612 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
12613 Also use them when walking CALL_INSN_FUNCTION_USAGE.
12614
12615 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
12616 Joey Ye <joey.ye@intel.com>
12617
12618 PR middle-end/37843
12619 * cfgexpand.c (expand_stack_alignment): Don't update stack
12620 boundary nor check incoming stack boundary here.
12621 (gimple_expand_cfg): Update stack boundary and check incoming
12622 stack boundary here.
12623
12624 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
12625
12626 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
12627
12628 2009-01-14 Jakub Jelinek <jakub@redhat.com>
12629
12630 PR rtl-optimization/38245
12631 * calls.c (expand_call): Add stack arguments to
12632 CALL_INSN_FUNCTION_USAGE even for pure calls (when
12633 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
12634 in regs and partially in memory or BLKmode arguments.
12635 (emit_library_call_value_1): Add stack arguments to
12636 CALL_INSN_FUNCTION_USAGE even for pure calls (when
12637 ACCUMULATE_OUTGOING_ARGS).
12638 * dce.c: Include tm_p.h.
12639 (find_call_stack_args): New function.
12640 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
12641 argument.
12642 (mark_insn): Call find_call_stack_args for CALL_Ps.
12643 (prescan_insns_for_dce): Walk insns backwards in bb rather than
12644 forwards. Allocate and free arg_stores bitmap if needed, pass it
12645 down to deletable_insn_p, don't mark stores set in arg_stores
12646 bitmap, clear the bitmap at the beginning of each bb.
12647 * Makefile.in (dce.o): Depend on $(TM_P_H).
12648
12649 2009-01-14 Michael Meissner <gnu@the-meissners.org>
12650
12651 PR target/22599
12652 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
12653 to make sure the insn is a conditional test (bug 22599). Reformat a
12654 few long lines.
12655
12656 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
12657
12658 PR middle-end/38431
12659 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
12660 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
12661 (gloog): Do not call cleanup_tree_cfg.
12662 (graphite_transform_loops): Call cleanup_tree_cfg after all
12663 scops have been code generated.
12664
12665 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
12666 * doc/gty.texi (Invoking the garbage collector): Added new node
12667 and section documenting ggc_collect.
12668
12669 2009-01-14 Richard Guenther <rguenther@suse.de>
12670
12671 PR tree-optimization/38826
12672 PR middle-end/38477
12673 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
12674 initialization notes only if we actually emitted a warning.
12675 (intra_create_variable_infos): Add constraints for a result decl
12676 that is passed by hidden reference.
12677 (build_pred_graph): Mark all related variables non-direct on
12678 address-taking.
12679
12680 2009-01-14 Nick Clifton <nickc@redhat.com>
12681
12682 * ira-conflicts.c: Include addresses.h for the definition of
12683 base_reg_class.
12684 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
12685 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
12686
12687 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
12688
12689 PR target/38811
12690 * Makefile.in (ira-lives.o): Add except.h.
12691
12692 * ira-lives.c: Include except.h.
12693 (process_bb_node_lives): Process can_throw_internal.
12694
12695 2009-01-13 Jakub Jelinek <jakub@redhat.com>
12696
12697 PR rtl-optimization/38774
12698 * combine.c (simplify_set): When undoing cc_use change, don't do
12699 PUT_CODE on the newly created comparison, but instead put back the
12700 old comparison.
12701
12702 2009-01-13 Joseph Myers <joseph@codesourcery.com>
12703
12704 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
12705 values. Remove duplicate arm8 entry.
12706
12707 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
12708
12709 PR tree-optimization/38786
12710 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
12711 the SSA_NAME case of expand_scalar_variables_expr.
12712 Set the type of an expression to the type of its assign statement.
12713 (expand_scalar_variables_expr): Also gather the scalar computation
12714 used to index the memory access. Do not pass loop_p.
12715 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
12716 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
12717 the gimple_stmt_iterator where it inserts new code.
12718 Do not pass loop_p.
12719 (copy_bb_and_scalar_dependences): Do not pass loop_p.
12720 (translate_clast): Update call to copy_bb_and_scalar_dependences.
12721
12722 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
12723
12724 * graphite.h (debug_value): Removed.
12725 * graphite.c (debug_value): Removed.
12726
12727 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
12728
12729 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
12730 ldrd/strd with two 32-bit instructions.
12731
12732 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
12733
12734 * config/arm/arm.c (struct processors): Pass for speed down into
12735 cost helper functions.
12736 (const_ok_for_op): Handle COMPARE and inequality nodes.
12737 (arm_rtx_costs_1): Rewrite.
12738 (arm_size_rtx_costs): Update prototype.
12739 (arm_rtx_costs): Pass speed down to helper functions.
12740 (arm_slowmul_rtx_costs): Rework cost calculations.
12741 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
12742 (arm_9e_rtx_costs): Likewise.
12743
12744 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
12745
12746 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
12747 relocations of local symbols wider than UNITS_PER_WORD are not valid.
12748 (alpha_legitimize_address): Do not split local symbols wider than
12749 UNITS_PER_WORD into HIGH/LO_SUM parts.
12750
12751 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
12752
12753 PR bootstrap/38580
12754 * gcc.c (process_command): Replace call to execvp with calls
12755 to pex_one and exit.
12756
12757 2009-01-03 Anatoly Sokolov <aesok@post.ru>
12758
12759 PR target/29141
12760 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
12761 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
12762 variant for devices with 3-byte PC.
12763 (__tablejump_elpm__): New.
12764
12765 2009-01-12 Jakub Jelinek <jakub@redhat.com>
12766
12767 PR c/32041
12768 * c-parser.c (c_parser_postfix_expression): Allow `->' in
12769 offsetof member-designator, handle it as `[0].'.
12770
12771 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12772
12773 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
12774 function when not using named sections on targets with named sections
12775 if branch distance is less than 262132.
12776
12777 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
12778
12779 * combine.c (combine_instructions): Recompute
12780 optimize_this_for_speed_p for each BB in the main combine loop.
12781
12782 2009-01-12 Tomas Bily <tbily@suse.cz>
12783
12784 PR middlend/38385
12785 * tree-loop-distribution.c (prop_phis): New function.
12786 (generate_builtin): Call prop_phis.
12787 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
12788
12789 2009-01-12 Jakub Jelinek <jakub@redhat.com>
12790
12791 PR tree-optimization/38807
12792 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
12793 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
12794
12795 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
12796
12797 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
12798 subreg of op0 to the original op0.
12799
12800 2009-01-11 Laurent GUERBY <laurent@guerby.net>
12801
12802 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
12803
12804 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
12805
12806 PR debug/7055
12807 * mips-tfile.c (parse_def): Fix parsing of def strings
12808 starting with digits.
12809
12810 2009-01-10 Jakub Jelinek <jakub@redhat.com>
12811
12812 PR target/38695
12813 * config/arm/arm.c (arm_is_long_call_p): Don't call
12814 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
12815
12816 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
12817
12818 * regrename.c (regrename_optimize): Fix dumping.
12819 (find_oldest_value_reg): Preserve REG_POINTER.
12820 (copy_hardreg_forward_1): Likewise.
12821
12822 2009-01-09 Diego Novillo <dnovillo@google.com>
12823
12824 * gimple.h (struct gimple_statement_base) <uid>: Document
12825 the restrictions on its use.
12826 (gimple_uid): Tidy.
12827 (gimple_set_uid): Tidy.
12828
12829 2009-01-09 Jakub Jelinek <jakub@redhat.com>
12830
12831 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
12832 zero guard even if align_bytes != 0 and count is smaller than
12833 size_needed.
12834
12835 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
12836
12837 PR rtl-optimization/38495
12838 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
12839 (add_range_and_copies_from_move_list): Print all added ranges.
12840 Add ranges to memory optimized destination.
12841
12842 2009-01-09 Jakub Jelinek <jakub@redhat.com>
12843
12844 PR target/38686
12845 PR target/38708
12846 * config/i386/i386.c (override_options): Reject
12847 -mstringop-strategy=rep_8byte with -m32.
12848 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
12849 to 1. Do count comparison against epilogue_size_needed at compile
12850 time even when count_exp was constant forced into register. For
12851 size_needed don't jump to epilogue, instead just avoid aligning
12852 and invoke the body algorithm. If need_zero_guard, add zero guard
12853 even if count is non-zero, but smaller than size_needed + number of
12854 bytes that could be stored for alignment.
12855 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
12856 to 1. If need_zero_guard, add zero guard even if count is non-zero,
12857 but smaller than size_needed + number of bytes that could be stored
12858 for alignment. Compare size_needed with epilogue_size_needed instead
12859 of desired_align - align, don't adjust size_needed, pass
12860 epilogue_size_needed to the epilogue expanders.
12861
12862 PR c/35742
12863 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
12864
12865 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12866
12867 * pa.c (last_address): Change to unsigned.
12868 (update_total_code_bytes): Change argument to unsigned. Don't
12869 check if insn addresses are set.
12870 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
12871 addresses are not set.
12872 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
12873
12874 2009-01-09 Nick Clifton <nickc@redhat.com>
12875
12876 * config/sh/symbian.c: Replace uses of DECL_INLINE with
12877 DECL_DECLARED_INLINE_P.
12878
12879 2009-01-09 Jakub Jelinek <jakub@redhat.com>
12880
12881 PR middle-end/38347
12882 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
12883 GET_MODE (op0) in operand_subword_force calls.
12884
12885 PR middle-end/38771
12886 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
12887 fold_convert arg0 operands to TREE_TYPE (op0) first.
12888
12889 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
12890
12891 * params.def (ira-max-conflict-table-size): Decrease default value
12892 to 1000.
12893
12894 2009-01-08 Jakub Jelinek <jakub@redhat.com>
12895
12896 PR tree-optimization/37031
12897 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
12898 on parameter_set.
12899 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
12900 allocate it using gc instead of heap, use VEC_quick_push instead of
12901 VEC_safe_push.
12902 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
12903 instead of heap, use VEC_quick_push instead of VEC_safe_push.
12904 * tree-data-ref.h (struct access_matrix): Change matrix to gc
12905 allocated vector from heap allocated.
12906 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
12907 * tree-loop-linear.c (linear_transform_loops): Allocate nest
12908 vector only after perfect_loop_nest_depth call.
12909
12910 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
12911 Jan Sjodin <jan.sjodin@amd.com>
12912
12913 PR tree-optimization/38559
12914 * graphite.c (debug_value, copy_constraint,
12915 swap_constraint_variables, scale_constraint_variable, ): New.
12916 (get_lower_bound, get_upper_bound): Removed.
12917 (graphite_trans_bb_strip_mine): Clean up this code that works
12918 only for constant number of iterations. Fully copy upper and
12919 lower bound constraints, not only the constant part of them.
12920 * graphite.h (debug_value): Declared.
12921
12922 2009-01-08 Ira Rosen <irar@il.ibm.com>
12923
12924 PR tree-optimization/37194
12925 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
12926 Don't add the cost of cost model guard in prologue to scalar
12927 outside cost in case of known number of iterations.
12928
12929 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
12930 Alan Modra <amodra@bigpond.net.au>
12931
12932 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
12933 non-word-aligned REG+CONST addressing.
12934
12935 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
12936
12937 PR target/38706
12938 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
12939 free_after_compilation when outputting a thunk.
12940 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
12941 Do not call free_after_compilation here.
12942
12943 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
12944
12945 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
12946 (ix86_valid_target_attribute_inner_p): Ditto.
12947
12948 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
12949
12950 PR tree-optimization/38492
12951 PR tree-optimization/38498
12952 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
12953 * tree-chrec.h (scev_is_linear_expression): Declared.
12954 * graphite.c (graphite_cannot_represent_loop_niter): New.
12955 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
12956 (graphite_loop_normal_form): Use gcc_assert.
12957 (scan_tree_for_params): Use CASE_CONVERT.
12958 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
12959 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
12960 Use gcc_assert. Discard scops that contain unhandled cases.
12961 (build_scop_conditions): Return a boolean status for unhandled cases.
12962 (strip_mine_profitable_p): Print the loop number, not its depth.
12963 (is_interchange_valid): Pass the depth of the loop nest, don't
12964 recompute it wrongly.
12965 (graphite_trans_bb_block): Same.
12966 (graphite_trans_bb_block): Print tentative of loop blocking.
12967 (graphite_trans_scop_block): Do not print that the loop has been
12968 blocked.
12969 (graphite_transform_loops): Do not handle scops that contain condition
12970 scalar phi nodes.
12971
12972 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
12973
12974 AVX Programming Reference (December, 2008)
12975 * config/i386/avxintrin.h (_mm256_stream_si256): New.
12976 (_mm256_stream_pd): Likewise.
12977 (_mm256_stream_ps): Likewise.
12978
12979 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
12980 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
12981 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
12982 (bdesc_special_args): Add __builtin_ia32_movntdq256,
12983 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
12984 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
12985 (ix86_expand_special_args_builtin): Likewise.
12986
12987 * config/i386/sse.md (AVXMODEDI): New.
12988 (avx_movnt<mode>): Likewise.
12989 (avx_movnt<mode>): Likewise.
12990 (<sse>_movnt<mode>): Remove AVX support.
12991 (sse2_movntv2di): Likewise.
12992
12993 2009-01-07 Richard Guenther <rguenther@suse.de>
12994
12995 PR middle-end/38751
12996 * fold-const.c (extract_muldiv): Remove obsolete comment.
12997 (fold_plusminus_mult_expr): Undo MINUS_EXPR
12998 to PLUS_EXPR canonicalization for the canonicalization.
12999
13000 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
13001
13002 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
13003 hosted cross-compilers generating less efficient code.
13004
13005 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13006
13007 * function.h (rtl_data): Add a dbr_scheduled_p field.
13008 * reorg.c (dbr_schedule): Set it.
13009 (gate_handle_delay_slots): Check it.
13010 * config/mips/mips.c (mips_base_delayed_branch): Delete.
13011 (mips_reorg): Check flag_delayed_branch instead of
13012 mips_base_delayed_branch.
13013 (mips_override_options): Don't set mips_base_delayed_branch
13014 or flag_delayed_branch.
13015
13016 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13017
13018 PR rtl-optimization/38426.
13019 * ira.c (ira): Set current_function_is_leaf earlier.
13020
13021 2009-01-06 Jakub Jelinek <jakub@redhat.com>
13022
13023 PR rtl-optimization/38722
13024 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
13025 too early, only set a flag and modify after last possible
13026 undo_all point.
13027
13028 2009-01-06 Janis Johnson <janis187@us.ibm.com>
13029
13030 PR c/34252
13031 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
13032 * real.c (decimal_single_format): Correct values of emin and emax.
13033 (decimal_double_format): Ditto.
13034 (decimal_quad_format): Ditto.
13035 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
13036 computation of DECnn_MIN and DECnn_MAX for corrected values of
13037 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
13038 __DECnn_MIN__, and adjust its computation for the corrected value
13039 of emin.
13040
13041 2009-01-06 Jan Hubicka <jh@suse.cz>
13042
13043 PR target/38744
13044 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
13045
13046 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
13047
13048 * doc/contrib.texi (Contributors): Slightly adjust the end note.
13049 Add Robert Clark to the list of testers.
13050
13051 2009-01-06 Jan Hubicka <jh@suse.cz>
13052 Kai Tietz <kai.tietz@onevision.com>
13053
13054 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
13055 * config/i386/i386.c (ix86_expand_call): Add clobbers.
13056
13057 2009-01-06 Jan Hubicka <jh@suse.cz>
13058 Kai Tietz <kai.tietz@onevision.com>
13059
13060 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
13061 for w64 ABI.
13062 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
13063 (ix86_nsaved_regs): Count only general purpose regs.
13064 (ix86_nsaved_sseregs): New.
13065 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
13066 to 16 for w64; compute padding and size of sse reg save area.
13067 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
13068 general purpose regs.
13069 (ix86_emit_save_sse_regs_using_mov): New.
13070 (ix86_expand_prologue): Save SSE regs if needed.
13071 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
13072 (ix86_emit_restore_sse_regs_using_mov): New.
13073 (ix86_expand_epilogue): Save SSE regs if needed.
13074
13075 2009-01-06 Jan Hubicka <jh@suse.cz>
13076 Kai Tietz <kai.tietz@onevision.com>
13077
13078 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
13079 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
13080 functions when accumulate outgoing args is off.
13081
13082 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
13083
13084 PR bootstrap/38742
13085 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
13086 before using pseudos_have_intersected_live_ranges_p.
13087
13088 * ira-int.h (ira_assert): Always define.
13089
13090 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
13091
13092 AVX Programming Reference (December, 2008)
13093 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
13094 (_mm256_permute2_pd): Likewise.
13095 (_mm_permute2_ps): Likewise.
13096 (_mm256_permute2_ps): Likewise.
13097 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
13098 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
13099
13100 * config/i386/i386.c (ix86_builtins): Remove
13101 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
13102 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
13103 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
13104 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
13105 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
13106 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
13107 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
13108 __builtin_ia32_vpermil2ps256.
13109 (ix86_init_mmx_sse_builtins): Updated.
13110 (ix86_expand_args_builtin): Likewise.
13111
13112 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13113
13114 * pa.c (output_call): Relocate non-jump insns in the delay slot of
13115 long absolute calls when generating PA 2.0 code.
13116
13117 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
13118
13119 PR rtl-optimization/38583
13120 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
13121
13122 * params.def (ira-max-conflict-table-size): New.
13123
13124 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
13125
13126 * ira.h (ira_conflicts_p): New external definition.
13127
13128 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
13129 table. Report this. Return result of building.
13130 (ira_build_conflicts): Use ira_conflicts_p. Check result of
13131 building conflict table.
13132
13133 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
13134 (ira_color): Use ira_conflicts_p.
13135
13136 * global.c: Include ira.h.
13137 (pseudo_for_reload_consideration_p, build_insn_chain): Use
13138 ira_conflicts_p.
13139
13140 * Makefile.in (global.o): Add ira.h.
13141
13142 * ira-build.c (mark_all_loops_for_removal,
13143 propagate_some_info_from_allocno): New.
13144 (remove_unnecessary_allocnos): Call
13145 propagate_some_info_from_allocno.
13146 (remove_low_level_allocnos): New.
13147 (remove_unnecessary_regions): Add parameter. Call
13148 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
13149 parameter to remove_unnecessary_regions.
13150 (ira_build): Remove all regions but root if the conflict table was
13151 not built. Update conflict hard regs for allocnos crossing calls.
13152
13153 * ira.c (ira_conflicts_p): New global.
13154 (ira): Define and use ira_conflicts_p.
13155
13156 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13157 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
13158 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
13159
13160 2009-01-06 Ben Elliston <bje@au.ibm.com>
13161
13162 * gengtype-lex.l (YY_NO_INPUT): Define.
13163
13164 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
13165
13166 PR c/34911
13167 * c-common.c (handle_vector_size_attribute): Also reject
13168 BOOLEAN_TYPE types.
13169
13170 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
13171
13172 PR tree-optimization/38492
13173 * graphite.c (rename_map_elt, debug_rename_elt,
13174 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
13175 rename_map_elt_info, eq_rename_map_elts,
13176 get_new_name_from_old_name, bb_in_sese_p): Moved around.
13177 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
13178 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
13179 (sese_build_livein_liveouts): New.
13180 (new_sese, free_sese): New.
13181 (new_scop): Call new_sese.
13182 (free_scop): Call free_sese.
13183 (rename_variables_from_edge, rename_phis_end_scop): Removed.
13184 (register_old_new_names): Renamed register_old_and_new_names.
13185 (register_scop_liveout_renames, add_loop_exit_phis,
13186 insert_loop_close_phis, struct igp,
13187 default_liveout_before_guard, add_guard_exit_phis,
13188 insert_guard_phis, copy_renames): New.
13189 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
13190 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
13191 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
13192 (scop_adjust_phis_for_liveouts): New.
13193 (gloog): Call scop_adjust_phis_for_liveouts.
13194
13195 * graphite.h (struct sese): Documented. Added fields liveout,
13196 num_ver and livein.
13197 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
13198 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
13199 (struct scop): Added field liveout_renames.
13200 (SCOP_LIVEOUT_RENAMES): New.
13201
13202 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
13203
13204 PR tree-optimization/38510
13205 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
13206 (translate_clast): Call recompute_all_dominators before
13207 graphite_verify.
13208 (gloog): Call recompute_all_dominators before graphite_verify.
13209
13210 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
13211 Jan Sjodin <jan.sjodin@amd.com>
13212
13213 PR tree-optimization/38500
13214 * graphite.c (create_sese_edges): Call fix_loop_structure after
13215 splitting blocks.
13216
13217 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
13218
13219 * config.gcc: Add m32r*-*-rtems*.
13220 * config/m32r/rtems.h: New file.
13221
13222 2009-01-05 Ben Elliston <bje@au.ibm.com>
13223
13224 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
13225 (.po.pox): Likewise.
13226 (po/gcc.pot): Likewise.
13227
13228 2009-01-04 David S. Miller <davem@davemloft.net>
13229
13230 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
13231 (STARTING_FRAME_OFFSET): Always set to zero.
13232
13233 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
13234
13235 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
13236 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
13237 fixed-point types, and vectors of the same.
13238
13239 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
13240
13241 * config/mips/sync.md (*mb_barrier): Rename to...
13242 (*memory_barrier): ...this.
13243
13244 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
13245
13246 * doc/extend.texi (Function Attributes): Move @cindex after @item
13247 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
13248 and put in alphabetical order. Fix 'target' name and put in order.
13249 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
13250 typos.
13251
13252 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
13253
13254 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
13255 (memory_barrier): Expand as unspec instead of unspec_volatile.
13256 Remove mem:BLK from insn operands. Use Pmode scratch register.
13257 (*memory_barrier): Define as unspec instead of unspec_volatile.
13258 Use (match_dup 0) as input operand.
13259
13260 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
13261 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
13262 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
13263 scratch register. Remove operand 1.
13264 (*stbar): Define as unspec instead of unspec_volatile.
13265 Use (match_dup 0) as input operand, remove (const_int 8).
13266 (*membar): Define as unspec instead of unspec_volatile.
13267 Use (match_dup 0) as input operand, remove input operand 2.
13268
13269 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
13270 (memory_barrier): Expand as unspec instead of unspec_volatile.
13271 Remove mem:BLK from insn operands. Use Pmode scratch register.
13272 (*memory_barrier): Define as unspec instead of unspec_volatile.
13273 Use (match_dup 0) as input operand.
13274
13275 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
13276 Remove mem:BLK from insn operands. Use Pmode scratch register.
13277 Set volatile flag on operand 0.
13278 (*memory_barrier): New insn pattern.
13279
13280 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
13281 insn operands.
13282 (*memory_barrier): Use (match_dup 0) as input operand.
13283
13284 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
13285 Remove mem:BLK from insn operands. Use Pmode scratch register.
13286 Set volatile flag on operand 0.
13287 (*mb_internal): New insn pattern.
13288
13289 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
13290
13291 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
13292
13293 PR middle-end/38586
13294 * function.c (struct temp_slot): Move to the section of the file
13295 that deals with temp slots. Remove field 'address'.
13296 (temp_slot_address_table): New hash table of address -> temp slot.
13297 (struct temp_slot_address_entry): New struct, items for the table.
13298 (temp_slot_address_compute_hash, temp_slot_address_hash,
13299 temp_slot_address_eq, insert_temp_slot_address): Support functions
13300 for the new table.
13301 (find_temp_slot_from_address): Rewrite to use the new hash table.
13302 (remove_unused_temp_slot_addresses): Remove addresses of temp
13303 slots that have been made available.
13304 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
13305 worker function for remove_unused_temp_slot_addresses.
13306 (assign_stack_temp_for_type): Don't clear the temp slot address list.
13307 Add the temp slot address to the address -> temp slot map.
13308 (update_temp_slot_address): Update via insert_temp_slot_address.
13309 (free_temp_slots): Call remove_unused_temp_slot_addresses.
13310 (pop_temp_slots): Likewise.
13311 (init_temp_slots): Allocate the address -> temp slot map, or empty
13312 the map if it is already allocated.
13313 (prepare_function_start): Initialize temp slot processing.
13314
13315 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
13316
13317 PR middle-end/38584
13318 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
13319 Calculate the size of all stack vars assuming no packing of stack
13320 vars will happen, replacing a quadratic algorithm with a linear one.
13321
13322 2009-01-03 Jakub Jelinek <jakub@redhat.com>
13323
13324 PR target/38707
13325 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
13326 can't be used.
13327
13328 2009-01-03 Diego Novillo <dnovillo@google.com>
13329
13330 * doc/contrib.texi: Update contributions.
13331
13332 2009-01-03 Jakub Jelinek <jakub@redhat.com>
13333
13334 PR c++/38705
13335 * builtins.c (fold_builtin_memory_op): Give up if either operand
13336 is volatile. Set srctype or desttype to non-qualified version
13337 of the other type.
13338
13339 PR c/38700
13340 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
13341 and FUNCTION_DECLs.
13342
13343 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
13344
13345 PR rtl-optimization/35805
13346 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
13347 problem if fast dce is able to remove any instructions.
13348 * dce.c (dce_process_block): Fix dump message.
13349
13350 2009-01-02 Mark Mitchell <mark@codesourcery.com>
13351
13352 PR 33649
13353 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
13354
13355 2009-01-02 Jakub Jelinek <jakub@redhat.com>
13356
13357 PR middle-end/38690
13358 * tree-flow.h (op_code_prio, op_prio): New prototypes.
13359 * tree-pretty-print.c (op_code_prio): New function.
13360 (op_prio): No longer static. Use op_code_prio.
13361 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
13362 Use op_prio and op_code_prio to determine if () should be
13363 printed around operand(s) or not.
13364
13365 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
13366 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
13367 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
13368 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
13369 pp_character instead of pp_string for single letter printing.
13370
13371 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
13372
13373 * doc/extend.texi: Fix '#pragma GCC option' typo.
13374
13375 2009-01-02 Richard Guenther <rguenther@suse.de>
13376
13377 * doc/install.texi (--enable-checking): Mention different
13378 default for stage1.
13379 (--enable-stage1-checking): Document.
13380
13381 2009-01-01 Andrew Pinski <pinskia@gmail.com>
13382
13383 PR middle-end/30142
13384 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
13385 case to be an error.
13386
13387 2009-01-02 Ben Elliston <bje@au.ibm.com>
13388
13389 * config/fp-bit.h (pack_d): Constify argument.
13390 * config/fp-bit.c (makenan): Constify return type. Remove casts.
13391 (isnan): Constify argument.
13392 (isinf): Likewise.
13393 (iszero): Likewise.
13394 (pack_d): Likewise.
13395 (_fpadd_parts): Constify return type.
13396 (_fpmul_parts): Likewise.
13397 (_fpdiv_parts): Likewise.
13398
13399 2009-01-01 Jakub Jelinek <jakub@redhat.com>
13400
13401 PR c/36489
13402 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
13403 warn about overwriting initializer with side-effects or
13404 -Woverride-init if !IMPLICIT.
13405 (output_init_element): Likewise. Pass IMPLICIT down to
13406 add_pending_init.
13407 (process_init_element): Add IMPLICIT argument. Pass it down
13408 to output_init_element.
13409 (push_init_element, pop_init_level, set_designator): Adjust
13410 process_init_element callers.
13411 (set_nonincremental_init, set_nonincremental_init_from_string):
13412 Adjust add_pending_init callers.
13413 (output_pending_init_elements): Adjust output_init_element callers.
13414 * c-tree.h (process_init_element): Adjust prototype.
13415 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
13416 process_init_element callers.
13417
13418 \f
13419 Copyright (C) 2009 Free Software Foundation, Inc.
13420
13421 Copying and distribution of this file, with or without modification,
13422 are permitted in any medium without royalty provided the copyright
13423 notice and this notice are preserved.