]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Fix for PR c++/PR39754
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
233215fe
DK
12009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2
3 PR target/37216
4
5 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
6 macro definition for support of three-operand format aligned
7 .comm directive in assembler on cygwin/pe/mingw target OS.
8 * configure: Regenerate.
9 * config.h: Regenerate.
10
11 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
12 aligned form of .comm directive if -mpe-aligned-commons is in effect.
13 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
14
15 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
16 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
17
24adb18f
IR
182009-05-28 Ira Rosen <irar@il.ibm.com>
19
20 PR tree-optimization/40254
21 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
22 in analysis of basic blocks.
23
2c5bfdf7
AN
242009-05-28 Adam Nemet <anemet@caviumnetworks.com>
25
26 PR middle-end/33699
27 * target.h (struct gcc_target): Fix indentation. Add
28 const_anchor.
29 * target-def.h (TARGET_CONST_ANCHOR): New macro.
30 (TARGET_INITIALIZER): Use it.
31 * cse.c (CHEAPER): Move it up to the other macros.
32 (insert): Rename this ...
33 (insert_with_costs): ... to this. Add cost parameters. Update
34 function comment.
35 (insert): New function. Call insert_with_costs.
36 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
37 find_reg_offset_for_const, try_const_anchors): New functions.
38 (cse_insn): Call try_const_anchors. Adjust cost of src_related
39 when using a const-anchor. Call insert_const_anchors.
40 * config/mips/mips.c (mips_set_mips16_mode): Set
41 targetm.const_anchor.
42 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
43
9e6aced0
AO
442009-05-28 Alexandre Oliva <aoliva@redhat.com>
45
46 * tree-inline.c (remap_decls): Enable nonlocalized variables
47 when not optimizing.
48
89fbbe4e
AO
492009-05-28 Alexandre Oliva <aoliva@redhat.com>
50
51 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
52 Simplify other tests involving optimize.
53
e455776a
TT
542009-05-27 Tom Tromey <tromey@redhat.com>
55
56 * unwind-dw2.c (_Unwind_DebugHook): New function.
57 (uw_install_context): Call _Unwind_DebugHook.
58
cea32bca
TT
592009-05-27 Tom Tromey <tromey@redhat.com>
60
61 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
62
c607156f
ILT
632009-05-27 Ian Lance Taylor <iant@google.com>
64
65 * Makefile.in (LINKER, LINKER_FLAGS): Define.
66 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
67 (ALL_LINKERFLAGS): Define.
68 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
69 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
70 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
71 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
72 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
73 $(LINKER_FOR_BUILD).
74 (build/gcov-iov$(build_exeext)): Likewise.
75
ec0a1343
JB
762009-05-27 Julian Brown <julian@codesourcery.com>
77
78 * gcse.c (target.h): Include.
79 (can_assign_to_reg_without_clobbers_p): Check that the target allows
80 copy of argument to a pseudo register.
81
ac80ba07
DN
822009-05-27 Diego Novillo <dnovillo@google.com>
83
84 * tree-ssa-live.c (dump_scope_block): Document arguments.
85 (dump_scope_blocks): Document.
86 (debug_scope_blocks): New.
87 * tree-flow.h (debug_scope_blocks): Declare.
88
d1803a17
DC
892009-05-21 Denis Chertykov <denisc@overta.ru>
90
ac80ba07 91 * doc/contrib.texi (Contributors): add myself to the list.
d1803a17 92
51fb7760 932009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
94
95 * expr.c (target_align): New function. Alignment the TARGET of an
96 assignment may be assume to have.
97 (highest_pow2_factor_for_target): Use it instead of relying on
98 immediate tree attributes of TARGET, not necessarily honored when
99 intermediate bitfields are involved.
100
634fa334
L
1012009-05-27 H.J. Lu <hongjiu.lu@intel.com>
102
103 PR target/40266
104 * config/i386/driver-i386.c (host_detect_local_cpu): Support
105 AVX, SSE4, AES, PCLMUL and POPCNT.
106
65332587
DN
1072009-05-27 Diego Novillo <dnovillo@google.com>
108
109 * tree-pretty-print.c (dump_location): New.
110 (dump_generic_node): Call it.
111 Factor code to handle BLOCK nodes ...
112 (dump_block_node): ... here.
113
3e17e31d
RAE
1142009-05-27 Rafael Avila de Espindola <espindola@google.com>
115
116 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h with
117 it.
118 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
119 included.
120 * gcc-plugin.h: Include config.h and system.h.
121 (IN_GCC): Define if not defined.
122
5e370570
HPN
1232009-05-27 Hans-Peter Nilsson <hp@axis.com>
124
125 PR middle-end/40249
126 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
127 with -fno-inline.
128
d000f0d9
SZ
1292009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
130
131 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
132 applicable.
133 * config/m32r/m32r.h: Ditto.
134 * config/m32r/m32r.md: Ditto.
135 * config/m32r/predicates.md: Ditto.
136
82f331ff
AO
1372009-05-27 Alexandre Oliva <aoliva@redhat.com>
138
139 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
140
ae2392a9
BS
1412009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
142
143 * doc/plugins.texi
144 (Loading plugins): typo.
145 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
146 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
147 (Interacting with the GCC Garbage Collector): Added new section.
148 (Giving information about a plugin): Added new section for
149 PLUGIN_INFO.
150 * testsuite/gcc.dg/plugin/plugin.exp: Added ggcplug.c test plugin
151 with ggcplug-test-1.c for testing PLUGIN_GGC_MARKING etc...
152 * testsuite/gcc.dg/plugin/ggcplug-test-1.c: Added new file.
153 * testsuite/gcc.dg/plugin/ggcplug.c: Added new file.
154 * ggc.h (ggc_register_root_tab): Added declaration.
155 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
156 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
157 (register_callback): Improved comment in declaration.
158 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for
159 vectors.
160 (extra_root_vec) Added static variable for dynamic roots
161 registration.
162 (ggc_register_root_tab) Added new routine.
163 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
164 PLUGIN_GGC_MARKING event.
165 * ggc-zone.c: Include plugin.h.
166 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
167 * ggc-page.c: Include plugin.h.
168 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
169 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
170 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
171 (register_callback): check lack of callbacks for
172 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
173 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
174 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
175 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
176 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
177 dependency on plugin.h.
178 (plugin.o): Added dependency on ggc.h...
179
f0cfd3a8
RG
1802009-05-26 Richard Guenther <rguenther@suse.de>
181
182 PR middle-end/40248
183 Revert
184 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
185 with mismatched comparison modes.
186
187 * expr.c (expand_expr_real_1): Expand the operand of a
188 VIEW_CONVERT_EXPR in its natural mode.
189
7980bfb8
ILT
1902009-05-26 Ian Lance Taylor <iant@google.com>
191
192 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
193 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
194 (ALL_COMPILERFLAGS): Define.
195 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
196 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
197 (collect2$(exeext), collect2.o): Likewise.
198 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
199 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
200 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
201 (libbackend.o, intl.o, cppdefault.o): Likewise.
202 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
203 (build/%.o): Use $(COMPILER_FOR_BUILD).
204 (build/gen%$(build_exeext)): Likewise.
205 (build/gcov-iov$(build_exeext)): LIkewise.
206 * config/t-darwin (darwin.o): Use $(COMPILER).
207 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
208 * config/t-sol2 (sol2-c.o): Likewise.
209 (sol2.o): Likewise.
210 * config/t-vxworks (vxworks.o): Likewise.
211 * config/x-darwin (host-darwin.o): Likewise.
212 * config/x-hpux (host-hpux.o): Likewise.
213 * config/x-linux (host-linux.o): Likewise.
214 * config/x-solaris (host-solaris.o): Likewise.
215 * config/alpha/x-alpha (driver-alpha.o): Likewise.
216 * config/arm/t-arm (arm-c.o): Likewise.
217 * config/arm/t-pe (pe.o): Likewise.
218 * config/arm/t-wince-pe (pe.o): Likewise.
219 * config/i386/t-cygming (winnt.o): Likewise.
220 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
221 * config/i386/t-cygwin (cygwin1.o): Likewise.
222 (cygwin2.o): Likewise.
223 * config/i386/t-i386 (i386-c.o): Likewise.
224 * config/i386/t-interix (winnt.o): Likewise.
225 * config/i386/t-netware (netware.o): Likewise.
226 * config/i386/t-nwld (nwld.o): Likewise.
227 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
228 * config/i386/x-i386 (driver-i386.o): Likewise.
229 * config/i386/x-cygwin (host-cygwin.o): Likewise.
230 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
231 * config/ia64/t-ia64 (ia64-c.o): Likewise.
232 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
233 * config/mips/x-native (driver-native.o): Likewise.
234 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
235 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
236 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
237 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
238 * config/score/t-score-elf (score7.o): Likewise.
239 (score3.o): Likewise.
240 * config/sh/t-sh (sh-c.o): Likewise.
241 * config/sh/t-symbian (sh-c.o): Likewise.
242 (symbian.o): Likewise.
243 * config/spu/t-spu-elf (spu-c.o): Likewise.
244 * config/v850/t-v850 (v850-c.o): Likewise.
245 * config/v850/t-v850e (v850-c.o): Likewise.
246
23977d3c
RG
2472009-05-26 Richard Guenther <rguenther@suse.de>
248
249 PR tree-optimization/40122
250 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
251 VECTOR_CSTs if possible.
252 (fold_gimple_assign): Likewise.
253
3d62b895
RG
2542009-05-26 Richard Guenther <rguenther@suse.de>
255
256 PR middle-end/40252
257 * fold-const.c (fold_binary): Use the correct types for building
258 rotates.
259
12346147
RG
2602009-05-26 Richard Guenther <rguenther@suse.de>
261
262 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
263 redundant calls to merge_alias_info.
264 (bump_vector_ptr): Likewise.
265 * tree-ssa-copy.c (merge_alias_info): Remove.
266 (replace_exp_1): Remove call to merge_alias_info.
267 (propagate_tree_value): Likewise.
268 (fini_copy_prop): Propagate points-to info.
269 * tree-flow.h (merge_alias_info): Remove.
270
807d5e6f
HS
2712009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
272
273 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
274
85057983
JH
2752009-05-25 Jan Hubicka <jh@suse.cz>
276
277 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
278 * cgraph.h (struct inline_summary): New filed self_wize,
279 size_inlining_benefit, self_time and time_inlining_benefit.
280 (struct cgraph_global_info): Replace insns by time ans size fields.
281 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
282 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
283 (ipcp_update_callgraph): Do not touch function bodies.
284 * ipa-inline.c: Include except.h
285 (MAX_TIME): New constant.
286 (overall_insns): Remove.
287 (leaf_node_p): New.
288 (overall_size, max_benefit): New static variables.
289 (cgraph_estimate_time_after_inlining): New function.
290 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
291 (cgraph_clone_inlined_nodes): Update size.
292 (cgraph_mark_inline_edge): Update size.
293 (cgraph_estimate_growth): Use size info.
294 (cgraph_check_inline_limits): Check size.
295 (cgraph_default_inline_p): Likewise.
296 (cgraph_edge_badness): Compute badness based on benefit and size cost.
297 (cgraph_decide_recursive_inlining): Check size.
298 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
299 times.
300 (cgraph_decide_inlining): Likewise.
301 (cgraph_decide_inlining_incrementally): Likewise; honor
302 PARAM_EARLY_INLINING_INSNS.
303 (likely_eliminated_by_inlining_p): New predicate.
304 (estimate_function_body_sizes): New function.
305 (compute_inline_parameters): Use it.
306 * except.c (must_not_throw_labels): New function.
307 * except.h (must_not_throw_labels): Declare.
308 * tree-inline.c (init_inline_once): Kill inlining_weigths
309 * tree-ssa-structalias.c: Avoid uninitialized warning.
310 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
311 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
312 (PARAM_INLINE_CALL_COST): Remove.
313 (PARAM_EARLY_INLINING_INSNS): New.
314
01df5c8a
RG
3152009-05-25 Richard Guenther <rguenther@suse.de>
316
317 PR tree-optimization/36327
318 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
319 callback for reference translation or lookup at the point
320 of may-defs.
321 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
322 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
323 for union COMPONENT_REFs.
324 (vn_reference_lookup_3): New callback. Lookup from memset
325 and CONSTRUCTOR assignment, translate through struct copies.
326 (vn_reference_lookup_pieces): Make sure to not free the
327 passed operands array. Adjust walk_non_aliased_vuses call.
328 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
329 make sure we do not leak memory.
330
6b8ed145
RG
3312009-05-25 Richard Guenther <rguenther@suse.de>
332
333 * tree-ssa-alias.h (dump_points_to_solution): Declare.
334 * tree-inline.c (expand_call_inline): Reset the escaped and
335 callused solutions.
336 * tree-ssa-structalias.c (pass_build_ealias): New.
337 * tree-pass.h (pass_build_ealias): Declare.
338 * passes.c (init_optimization_passes): Add PTA during
339 early optimizations.
340 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
341 and CALLUSED solutions.
342 (dump_points_to_solution): New function, split out from ...
343 (dump_points_to_info_for): ... here.
344 * tree-parloops.c (parallelize_loops): Reset the escaped and
345 callused solutions.
346
0adcf178
RO
3472009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
348
349 PR bootstrap/40027
350 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
351 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
352
12aaf609
IR
3532009-05-25 Ira Rosen <irar@il.ibm.com>
354
355 PR tree-optimization/40238
356 * tree-vect-stmts.c (vect_init_vector): Insert initialization
357 statements after basic block's labels.
358 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
359 to free the allocated memory.
360
7f9a14e3
KK
3612009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
362
363 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
364 return address with a USE.
365
b842d478
RG
3662009-05-24 Richard Guenther <rguenther@suse.de>
367
368 PR middle-end/40233
369 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
370 array type from the main variant of the inner type.
371
8db7b33f
JBG
3722009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
373
374 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
375 definition to bool (from int) to un-break build.
376 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
377
cff4e50d
PB
3782009-05-24 Paolo Bonzini <bonzini@gnu.org>
379
380 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
381 discard_stmt_changes): Delete.
382 * tree-ssa-operands.c (scb_stack): Delete.
383 (init_ssa_operands): Do not initialize it.
384 (fini_ssa_operands): Do not free it.
385 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
386
387 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
388 update_stmt, remove the others. Fix comments.
389 * tree-dfa.c (optimize_stack_restore): Likewise.
390 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
391 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
392 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
393 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
394 Likewise.
395 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
396 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
397 (dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
398 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
399 (stmts_to_rescan): Change item type to gimple.
400 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
401
a70d6342
IR
4022009-05-24 Ira Rosen <irar@il.ibm.com>
403
404 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
405 * tree-pass.h (pass_slp_vectorize): New pass.
406 * params.h (SLP_MAX_INSNS_IN_BB): Define.
407 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
408 * tree-vectorizer.c (timevar.h): Include.
409 (user_vect_verbosity_level): Declare.
410 (vect_location): Fix comment.
411 (vect_set_verbosity_level): Update user_vect_verbosity_level
412 instead of vect_verbosity_level.
413 (vect_set_dump_settings): Add an argument. Ignore user defined
414 verbosity if dump flags require higher level of verbosity. Print to
415 stderr only for loop vectorization.
416 (vectorize_loops): Update call to vect_set_dump_settings.
417 (execute_vect_slp): New function.
418 (gate_vect_slp): Likewise.
419 (struct gimple_opt_pass pass_slp_vectorize): New.
420 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
421 access its members.
422 (vec_info_for_bb): New function.
423 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
424 (VECTORIZATION_ENABLED): New macro.
425 (SLP_ENABLED, SLP_DISABLED): Likewise.
426 (vect_is_simple_use): Add bb_vec_info argument.
427 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
428 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
429 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
430 vect_schedule_slp, vect_analyze_slp): Likewise.
431 (vect_analyze_stmt): Add slp_tree argument.
432 (find_bb_location): Declare.
433 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
434 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
435 (vect_analyze_loop_operations, vect_analyze_loop,
436 get_initial_def_for_induction, vect_create_epilog_for_reduction,
437 vect_finalize_reduction, vectorizable_reduction,
438 vectorizable_live_operation, vect_transform_loop): Likewise.
439 * tree-data-ref.c (dr_analyze_innermost): Update comment,
440 skip evolution analysis if analyzing a basic block.
441 (dr_analyze_indices): Likewise.
442 (initialize_data_dependence_relation): Skip the test whether the
443 object is invariant for basic blocks.
444 (compute_all_dependences): Skip dependence analysis for data
445 references in basic blocks.
446 (find_data_references_in_stmt): Don't fail in case of invariant
447 access in basic block.
448 (find_data_references_in_bb): New function.
449 (find_data_references_in_loop): Move code to
782dc37a 450 find_data_references_in_bb and add a call to it.
a70d6342
IR
451 (compute_data_dependences_for_bb): New function.
452 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
453 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
454 that STEP is 0.
455 (vect_analyze_data_ref_dependence): Check for interleaving in case of
456 unknown dependence in basic block and fail in case of dependence in
457 basic block.
458 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
459 dependence instances from either loop or basic block vectorization
460 info.
461 (vect_compute_data_ref_alignment): Check if it is loop vectorization
462 before calling nested_in_vect_loop_p.
463 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
464 dependence instances from either loop or basic block vectorization
465 info.
466 (vect_verify_datarefs_alignment): Likewise.
467 (vect_enhance_data_refs_alignment): Adjust function calls.
468 (vect_analyze_data_refs_alignment): Likewise.
469 (vect_analyze_group_access): Fix printing. Skip different checks if
470 DR_STEP is 0. Keep strided stores either in loop or basic block
471 vectorization data structure. Fix indentation.
472 (vect_analyze_data_ref_access): Fix comments, allow zero step in
473 basic blocks.
474 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
475 dependence instances from either loop or basic block vectorization
476 info.
477 (vect_analyze_data_refs): Update comment. Call
478 compute_data_dependences_for_bb to analyze basic blocks.
479 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
480 case of loop vectorization. In case of basic block vectorization use
782dc37a 481 data-ref itself as a base.
a70d6342
IR
482 (vect_create_data_ref_ptr): In case of basic block vectorization:
483 don't advance the pointer, add new statements before the current
484 statement. Adjust function calls.
485 (vect_supportable_dr_alignment): Support only aligned accesses in
486 basic block vectorization.
487 * common.opt (ftree-slp-vectorize): New flag.
488 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
489 (vect_pattern_recog_1): Likewise.
490 * tree-vect-stmts.c (process_use): Likewise.
491 (vect_init_vector): Add new statements in the beginning of the basic
492 block in case of basic block SLP.
493 (vect_get_vec_def_for_operand): Adjust function calls.
494 (vect_finish_stmt_generation): Likewise.
495 (vectorizable_call): Add assert that it is loop vectorization, adjust
496 function calls.
497 (vectorizable_conversion, vectorizable_assignment): Likewise.
498 (vectorizable_operation): In case of basic block SLP, take
499 vectorization factor from statement's type and skip the relevance
500 check. Adjust function calls.
501 (vectorizable_type_demotion): Add assert that it is loop
502 vectorization, adjust function calls.
503 (vectorizable_type_promotion): Likewise.
504 (vectorizable_store): Check for outer loop only in case of loop
505 vectorization. Adjust function calls. For basic blocks, skip the
506 relevance check and don't advance pointers.
507 (vectorizable_load): Likewise.
508 (vectorizable_condition): Add assert that it is loop vectorization,
509 adjust function calls.
510 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
511 that it is not reduction, get vector type, call only supported
782dc37a 512 functions, skip loop specific parts.
a70d6342
IR
513 (vect_transform_stmt): Check for outer loop only in case of loop
514 vectorization.
515 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
516 (vect_is_simple_use): Fix comment, add new argument, fix conditions
517 for external definition.
518 * passes.c (pass_slp_vectorize): New pass.
519 * tree-vect-slp.c (find_bb_location): New function.
520 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
521 check for patterns only in loops.
522 (vect_build_slp_tree): Add argument, adjust function calls, fail in
523 case of multiple types in basic block SLP.
524 (vect_mark_slp_stmts_relevant): New function.
525 (vect_supported_load_permutation_p): Fix comment.
526 (vect_analyze_slp_instance): Add argument. In case of basic block
527 SLP, take vectorization factor from statement's type, check that
528 unrolling factor is 1. Adjust function call. Save SLP instance in
529 either loop or basic block vectorization structure. Return FALSE,
530 if SLP failed.
531 (vect_analyze_slp): Add argument. Get strided stores groups from
532 either loop or basic block vectorization structure. Return FALSE
533 if basic block SLP failed.
534 (new_bb_vec_info): New function.
535 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
536 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
537 (vect_schedule_slp): Add argument. Get SLP instances from either
538 loop or basic block vectorization structure. Set vectorization factor
539 to be 1 for basic block SLP.
540 (vect_slp_transform_bb): New function.
541 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
542
0676c393
MM
5432009-05-23 Mark Mitchell <mark@codesourcery.com>
544
545 * final.c (shorten_branches): Do not align labels for jump tables.
546 (final_scan_insn): Use JUMP_TABLE_DATA_P.
547
94324dae
EB
5482009-05-23 Eric Botcazou <ebotcazou@adacore.com>
549
550 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
551 Remove outdated reference to flow.c and fix nits.
552 * doc/gccint.texi: Tweak RTL description.
553 * doc/rtl.texi: Likewise.
554
92bffc14
DC
5552009-05-23 Denis Chertykov <chertykov@gmail.com>
556
557 * config/avr/avr.c: Change my email address.
558 * config/avr/avr.h: Likewise.
559 * config/avr/avr.md: Likewise.
560 * config/avr/avr-protos.h: Likewise.
561 * config/avr/libgcc.S: Likewise.
562
eec9405e
TS
5632009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
564
565 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
566 (spu_split_load, spu_split_store): Change return type to int.
567 (spu_split_convert): Declare.
568 * config/spu/predicates.md (spu_mem_operand): Remove.
569 (spu_mov_operand): Update.
570 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
571 * config/spu/spu.c (regno_aligned_for_load): Remove.
572 (reg_aligned_for_addr, spu_expand_load): Define.
573 (spu_expand_extv): Reimplement and handle MEM.
574 (spu_expand_insv): Handle MEM.
575 (spu_sched_reorder): Handle insn's with length 0.
576 (spu_legitimate_address_p): Reimplement.
577 (store_with_one_insn_p): Return TRUE for any mode with size
578 larger than 16 bytes.
579 (address_needs_split): Define.
580 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
581 operands.
582 (spu_convert_move): Define.
782dc37a 583 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
584 (spu_split_store): Change all MEM's to TImode.
585 (spu_init_expanders): Preallocate registers that correspond to
586 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
587 mark_reg_pointer.
588 (spu_split_convert): Define.
589 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
590 (_move<mode>, _movdi, _movti): Update predicate and condition.
591 (load, store): Change to define_split.
592 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
593 extend<mode>ti2.
594 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
595 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
596 define_insn_and_split of lshr<mode>3.
597 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
598 (<v>ashr<mode>3_imm): Define.
599 (extv, extzv, insv): Allow MEM operands.
600 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
601 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
602 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
603 (_spu_convert2): Change to define_insn_and_split and remove the
604 corresponding define_peephole2.
605 (stack_protect_set, stack_protect_test, stack_protect_test_si):
606 Change predicates to memory_operand.
607
7d31a807
MM
6082009-05-22 Mark Mitchell <mark@codesourcery.com>
609
610 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 611
d021d274
MM
6122009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
613
614 PR tree-optimization/40219
615 * tree.c (iterative_hash_expr): Make sure the builtin function is
616 a normal builtin function and not a front end or back end builtin
617 before indexing into the built_in_decls array.
618
4d7a65ea
RG
6192009-05-22 Richard Guenther <rguenther@suse.de>
620
621 PR middle-end/38964
622 * alias.c (write_dependence_p): Do not use TBAA for answering
623 anti-dependence or output-dependence.
782dc37a 624 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
625 (emit_pointer_definition): Remove.
626 (emit_alias_warning): Likewise.
627 (find_what_var_points_to): Remove TBAA pruning code.
628 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
629 violations.
630 (compute_points_to_sets): Remove code computing the set of
631 dereferenced pointers.
632 * tree-data-ref.c (dr_may_alias_p): Properly use the split
633 oracle for querying anti and output dependencies.
634 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
635 if TBAA may be applied.
636 (refs_anti_dependent_p): New function.
637 (refs_output_dependent_p): Likewise.
638 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
639 (refs_output_dependent_p): Likewise.
640 * doc/tree-ssa.texi (Memory model): New section.
641 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
642 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
643 * cfgexpand.c (expand_gimple_basic_block): Do not handle
644 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
645 * expr.c (expand_expr_real_1): Likewise.
646 * gimple-low.c (lower_stmt): Likewise.
647 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
648 (dump_gimple_cdt): Remove.
649 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
650 (gimple_size): Likewise.
651 (walk_gimple_op): Likewise.
652 (is_gimple_stmt): Likewise.
653 (walk_stmt_load_store_addr_ops): Likewise.
654 (gimple_build_cdt): Remove.
655 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
656 * gimple.h (gimple_cdt_new_type): Remove.
657 (gimple_cdt_new_type_ptr): Likewise.
658 (gimple_cdt_set_new_type): Likewise.
659 (gimple_cdt_location): Likewise.
660 (gimple_cdt_location_ptr): Likewise.
661 (gimple_cdt_set_location): Likewise.
662 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
663 * tree-cfg.c (remove_useless_stmts_1): Do not handle
664 GIMPLE_CHANGE_DYNAMIC_TYPE.
665 (verify_types_in_gimple_stmt): Likewise.
666 * tree-inline.c (estimate_num_insns): Likewise.
667 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
668 (copy_decl_to_var): Likewise.
669 (copy_result_decl_to_var): Likewise.
670 * tree-pretty-print.c (dump_generic_node): Do not handle
671 CHANGE_DYNAMIC_TYPE_EXPR.
672 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
673 * tree-ssa-operands.c (get_expr_operands): Likewise.
674 * tree-ssa-structalias.c (struct variable_info): Remove
675 no_tbaa_pruning member.
676 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
677 (unify_nodes): Do not copy it.
678 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
679 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
680 (set_uids_in_ptset): Do not check it.
681 (find_what_var_points_to): Likewise.
682 (compute_tbaa_pruning): Remove.
683 (compute_points_to_sets): Do not call it.
684 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
685 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
686 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
687 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
688 (DECL_NO_TBAA_P): Likewise.
689 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
690 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
691 (expand_omp_atomic_pipeline): Do not set it.
692 * print-tree.c (print_node): Do not dump it.
693 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
694 redundant check.
695
83a6ac60
VM
6962009-05-22 Vladimir Makarov <vmakarov@redhat.com>
697
698 PR target/39856
699 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
700 for clobber.
701
fe2978fb
MM
7022009-05-22 Mark Mitchell <mark@codesourcery.com>
703
704 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
705 non-external.
706
134ef638
BE
7072009-05-22 Ben Elliston <bje@au.ibm.com>
708
709 * Makefile.in (bversion.h, s-bversion): New targets.
710 (TOPLEV_H): Add bversion.h.
711 * toplev.h: Include "bversion.h".
712 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
713 the __format__ attribute only if compiling with the same version
714 of GCC as the sources (the "build version").
715
52fc669d
BE
7162009-05-22 Ben Elliston <bje@au.ibm.com>
717
718 * c-format.c (handle_format_attribute): Fix comment typo.
719
583ca921
SE
7202009-05-21 Steve Ellcey <sje@cup.hp.com>
721
722 PR target/37846
723 * config/ia64/ia64.opt (mfused-madd): New.
724 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
725 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
726 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
727 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
728 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
729 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
730 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
731 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
732 instruction if !TARGET_FUSED_MADD.
733 (fpma, fpms): Remove colon from name.
734
150e3929
RG
7352009-05-22 Richard Guenther <rguenther@suse.de>
736
737 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
738 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
739 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
740 TARGET_MEM_REF.
741 (create_expression_by_pieces): Only convert if necessary.
742 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
743 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
744
9a2b090c
AN
7452009-05-21 Adam Nemet <anemet@caviumnetworks.com>
746
747 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
748 regular pattern from a template and rename it ...
749 (*extzv_truncsi_exts): ... to this.
750
33b92c9d
RG
7512009-05-21 Richard Guenther <rguenther@suse.de>
752
753 * cgraph.h (struct cgraph_node): Remove inline_decl member.
754 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
755 (cgraph_default_inline_p): Likewise.
756 (cgraph_decide_inlining_incrementally): Likewise.
757
cabf85c3
L
7582009-05-21 H.J. Lu <hongjiu.lu@intel.com>
759 Uros Bizjak <ubizjak@gmail.com>
760
761 * config/i386/cpuid.h (bit_MOVBE): New.
762
763 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
764
765 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
766 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
767 (ix86_handle_option): Handle OPT_mmovbe.
768 (ix86_target_string): Add -mmovbe.
769 (pta_flags): Add PTA_MOVBE.
770 (processor_alias_table): Add PTA_MOVBE to "atom".
771 (override_options): Handle PTA_MOVBE.
772
773 * config/i386/i386.h (TARGET_MOVBE): New.
774
775 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
776 (*bswapsi_movbe): New.
777 (*bswapdi_movbe): Likewise.
778 (bswapdi2): Renamed to ...
779 (*bswapdi_1): This.
780 (bswapdi2): New expander.
781
782 * config/i386/i386.opt (mmovbe): New.
783
784 * doc/invoke.texi: Document -mmovbe.
785
9fefa0aa
TG
7862009-05-21 Taras Glek <tglek@mozilla.com>
787
788 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
789 * gcc-plugin.h (plugin_init): Updated signature.
790 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
791 * doc/plugins.texi (plugin_init): Updated documention to reflect
792 API change.
9fefa0aa
TG
793 * doc/plugins.texi (plugin_name_args): Added to documention.
794
1ea9fe56
MM
7952009-05-21 Mark Mitchell <mark@codesourcery.com>
796
797 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
798 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
799
52f84254
SZ
8002009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
801
802 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
803 JUMP_TABLE_DATA_P predicates where applicable.
804 * config/i386/predicates.md: Ditto.
805 * config/i386/sse.md: Ditto.
806
a952487c
JJ
8072009-05-21 Jakub Jelinek <jakub@redhat.com>
808
93cac287
JJ
809 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
810 operand2 -128 override length_immediate attribute to 1.
811 * config/i386/predicates.md (constm128_operand): New predicate.
812
a952487c
JJ
813 * config/i386/i386.c (memory_address_length): Handle %r12
814 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
815 also check REGNO.
816 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
817 mode look through optional ZERO_EXTEND and SUBREG.
818 * config/i386/i386.md (R12_REG): New define_constant.
819 (prefix_data16): For sse unit set also for MODE_TI insns.
820 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
821 insns set if operand 1 is ext_QIreg_operand.
822 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
823 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
824 immediate.
825 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
826 mode from MODE_DI to MODE_SI.
827 (movdi_1_rex64): Override modrm and length_immediate attributes
828 only for movabs (TYPE_IMOV, alternative 2).
829 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
830 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
831 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
832 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
833 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
834 prefix_rex attribute if DImode.
835 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
836 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
837 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
838 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
839 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
840 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
841 Likewise. For TYPE_IMOV clear length_immediate attribute.
842 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
843 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
844 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
845 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
846 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
847 or one operand TYPE_ISHIFT.
848 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
849 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
850 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
851 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
852 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
853 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
854 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
855 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
856 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
857 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
858 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
859 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
860 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
861 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
862 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
863 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
864 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
865 set mode attribute, don't override length attribute.
866 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
867 to 1.
868 (return_internal_long): Set length attribute to 2 instead of 1.
869 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
870 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
871 prefix_rex attribute.
782dc37a
UB
872 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
873 New predicates.
874 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 875
64af62c2
RR
8762009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
877
878 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
879
c166b898
ILT
8802009-05-20 Ian Lance Taylor <iant@google.com>
881
882 * tree.c (build_tree_list_vec_stat): New function.
883 (ctor_to_vec): New function.
884 (build_nt_call_vec): New function.
885 (build_call_array): Change args to be a const pointer.
886 (build_call_vec): New function.
887 * tree.h (build_nt_call_vec): Declare.
888 (build_tree_list_vec_stat): Declare.
889 (build_tree_list_vec): Define.
890 (build_call_array): Update declaration.
891 (build_call_vec): Declare.
892 (ctor_to_vec): Declare.
893 * c-common.c (tree_vector_cache): New static variable.
894 (make_tree_vector): New function.
895 (release_tree_vector): New function.
896 (make_tree_vector_single): New function.
897 (make_tree_vector_copy): New function.
898 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
899 (make_tree_vector_single, make_tree_vector_copy): Declare.
900 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
901 (c_parser_expr_list): Don't manage cache here, instead call
902 make_tree_vector.
903 (c_parser_release_expr_list): Remove static function.
904 (c_parser_vec_to_tree_list): Remove static function.
905 (c_parser_attributes): Call build_tree_list_vec instead of
906 c_parser_vec_to_tree_list. Call release_tree_vector instead of
907 c_parser_release_expr_list.
908 (c_parser_postfix_expression_after_primary): Likewise.
909 (c_parser_objc_keywordexpr): Likewise.
910
40449a90
SL
9112009-05-20 Sandra Loosemore <sandra@codesourcery.com>
912
913 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
914 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
915 TARGET_CONVERT_TO_TYPE.
916 * hooks.c (hook_tree_const_tree_null): Define.
917 * hooks.h (hook_tree_const_tree_null): Declare.
918 * target.h (struct gcc_target): Add invalid_parameter_type,
919 invalid_return_type, promoted_type, and convert_to_type fields.
920 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
921 (TARGET_INVALID_RETURN_TYPE): Define.
922 (TARGET_PROMOTED_TYPE): Define.
923 (TARGET_CONVERT_TO_TYPE): Define.
924 (TARGET_INITIALIZER): Update for new fields.
925 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
926 (grokparms): Check targetm.invalid_parameter_type.
927 * c-typeck.c (default_conversion): Check targetm.promoted_type.
928 * c-convert.c (convert): Check targetm.convert_to_type.
929
642d97ff
AN
9302009-05-20 Adam Nemet <anemet@caviumnetworks.com>
931
932 * config/mips/mips.md (*extenddi_truncate<mode>,
933 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
934 defintions.
935 (*extendhi_truncateqi): New define_insn_and_sptit.
936
776248b8
JJ
9372009-05-20 Jakub Jelinek <jakub@redhat.com>
938
939 PR middle-end/40204
940 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 941 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 942
d98e8686
EB
9432009-05-20 Eric Botcazou <ebotcazou@adacore.com>
944
945 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
946 the operand of VIEW_CONVERT_EXPR.
947
37c50435
L
9482009-05-20 H.J. Lu <hongjiu.lu@intel.com>
949
950 * config/i386/driver-i386.c (host_detect_local_cpu): Check
951 extended family and model for Intel processors. Support Intel
952 Atom.
953
dbb6088f
OH
9542009-05-20 Olivier Hainque <hainque@adacore.com>
955
956 * gstab.h (stab_code_type): Define, to be used instead of the
957 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
958 notice.
959 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
960 occurrences by stab_code_type.
961 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
962
7ec49257
MJ
9632009-05-20 Martin Jambor <mjambor@suse.cz>
964
965 * tree-flow.h (insert_edge_copies_seq): Undeclare.
966 (sra_insert_before): Likewise.
967 (sra_insert_after): Likewise.
968 (sra_init_cache): Likewise.
969 (sra_type_can_be_decomposed_p): Likewise.
970 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
971 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
972 (sra_insert_before): Likewise.
973 (sra_insert_after): Likewise.
974 (sra_init_cache): Likewise.
975 (insert_edge_copies_seq): Made static and moved upwards.
976
977 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
978 case.
979
980 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
981
982 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
983 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
984 simple copies.
985
0328ae4d
RG
9862009-05-20 Richard Guenther <rguenther@suse.de>
987
988 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
989 with mismatched comparison modes.
990
a7994a57 9912009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 992
a7994a57 993 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
994 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
995 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
996 with shifts for Thumb2.
997 (orsi_notsi): New for orn.
998 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
999 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
1000 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
1001 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
1002 Don't invert remainder for IOR.
a7994a57 1003
e36dc339
ZD
10042009-05-19 Zdenek Dvorak <ook@ucw.cz>
1005
1006 PR tree-optimization/40087
1007 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
1008 number_of_iterations_ne): Rename never_infinite argument.
1009 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
1010 number_of_iterations_le): Handle pointer-type ivs when
1011 exit_must_be_taken is false.
1012 (number_of_iterations_cond): Do not always assume that
1013 exit_must_be_taken if the control variable is a pointer.
1014
5cfd5d9b
AP
10152009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
1016
1017 * c-typeck.c (build_binary_op): Allow % on integal vectors.
1018 * doc/extend.texi (Vector Extension): Document that % is allowed too.
1019
2f1c7156
L
10202009-05-19 H.J. Lu <hongjiu.lu@intel.com>
1021
1022 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
1023 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
1024
7bb27074
MLI
10252009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1026
1027 PR c/40172
1028 * c.opt (Wlogical-op): Disabled by default.
1029 * c-opt (c_common_post_options): Do not enable Wlogical-op with
1030 Wextra.
1031 * doc/invoke.texi (Wlogical-op): Likewise.
1032
5aefc6a0
EB
10332009-05-19 Eric Botcazou <ebotcazou@adacore.com>
1034
1035 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
1036 into CASE_CONVERT.
1037 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
1038 Propagate the type of the first operand.
1039 <ASSERT_EXPR>: Simplify.
1040 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
1041 Rewrite using the RHS code as discriminant.
1042 <NOP_EXPR>: Turn into CASE_CONVERT.
1043 <PLUS_EXPR>: Propagate the type of the first operand.
1044
f3a83111
SE
10452009-05-19 Steve Ellcey <sje@cup.hp.com>
1046
1047 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
1048 (ia64_dconst_0_375): New.
1049 * config/ia64/ia64.c (ia64_override_options): Remove
1050 -minline-sqrt-min-latency warning.
1051 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
1052 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
1053 * config/ia64/ia64.md (*sqrt_approx): Remove.
1054 (sqrtsf2): Remove #if 0.
1055 (sqrtsf2_internal_thr): Rewrite and move to div.md.
1056 (sqrtdf): Remove assert.
1057 (sqrtdf2_internal_thr): Rewrite and move to div.md.
1058 (sqrtxf2): Remove #if 0.
1059 (sqrtxf2_internal_thr): Rewrite and move to div.md.
1060 * div.md (sqrt_approx_rf): New.
1061 (sqrtsf2_internal_thr): New implementation.
1062 (sqrtsf2_internal_lat): New.
1063 (sqrtdf2_internal_thr: New implementation.
1064 (sqrtxf2_internal): New implementation.
1065
1ffc7157
FXC
10662009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
1067 Hans-Peter Nilsson <hp@axis.com>
1068
1069 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
1070 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
1071 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
1072 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
1073 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
1074 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
1075 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
1076 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
1077 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
1078 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
1079 * c-common.c: ...from here.
1080
db91d9ef
MLI
10812009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1082
1083 * c-common.c (warn_logical_operator): Remove unnecessary
1084 conditionals.
1085
bbb9d91f
KG
10862009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1087
1088 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
1089
ce883f54
BE
10902009-05-19 Ben Elliston <bje@au.ibm.com>
1091
1092 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
1093 assignments with memcpy calls.
1094 (add_fdes): Likewise.
1095 (binary_search_unencoded_fdes): Likewise.
1096 (linear_search_fdes): Eliminate type puns.
1097
377f099a
RG
10982009-05-19 Richard Guenther <rguenther@suse.de>
1099
1100 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
1101 not falsely claim to have propagated into all uses.
1102
848bc769
BE
11032009-05-19 Ben Elliston <bje@au.ibm.com>
1104
1105 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
1106 version to v3.0.
1107
1bb99877
KK
11082009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1109
1110 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
1111 * config/sh/sh.c (sh_legitimate_address_p): Make static.
1112 (TARGET_LEGITIMATE_ADDRESS_P): New.
1113 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1114 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1115
82725547
DS
11162009-05-18 Dodji Seketeli <dodji@redhat.com>
1117
1118 PR debug/40109
1119 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
1120 child of the containing namespace's DIE.
1121
f6a1e430
AN
11222009-05-18 Adam Nemet <anemet@caviumnetworks.com>
1123
1124 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
1125 *zero_extendhi_truncqi): Move after the zero_extend patterns.
1126 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
1127 extend patterns.
1128
6a90d232
L
11292009-05-18 H.J. Lu <hongjiu.lu@intel.com>
1130
1131 PR target/39942
1132 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
1133 gen_align with gen_pad.
1134 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
1135 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
1136
1137 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
1138 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
1139
1140 * config/i386/i386.md (align): Renamed to ...
1141 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
1142 ASM_OUTPUT_MAX_SKIP_PAD.
1143
c4406f74
AS
11442009-05-18 Andreas Schwab <schwab@linux-m68k.org>
1145
06555043
AS
1146 * config.gcc: Fix variable syntax.
1147
c4406f74
AS
1148 PR target/39531
1149 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
1150 before calling exact_log2.
1151 (output_iorsi3): Likewise.
1152 (output_xorsi3): Likewise.
1153
99052692
KK
11542009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1155
1156 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
1157 for the none zero constant operand except for EQ and NE
1158 comprisons even when the first operand is R0.
1159
f4aa3848
AK
11602009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
1161
1162 * config/s390/2064.md: Remove trailing whitespaces.
1163 * config/s390/2084.md: Likewise.
1164 * config/s390/constraints.md: Likewise.
1165 * config/s390/fixdfdi.h: Likewise.
1166 * config/s390/libgcc-glibc.ver: Likewise.
1167 * config/s390/s390-modes.def: Likewise.
1168 * config/s390/s390-protos.h: Likewise.
1169 * config/s390/s390.c: Likewise.
1170 * config/s390/s390.h: Likewise.
1171 * config/s390/s390.md: Likewise.
1172 * config/s390/tpf-unwind.h: Likewise.
1173
ab7256e4
MK
11742009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1175
1176 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
1177
75df395f
MK
11782009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1179
1180 M68K TLS support.
1181 * configure.ac (m68k-*-*): Check if binutils support TLS.
1182 * configure: Regenerate.
1183 * config/m68k/predicates.md (symbolic_operand): Extend comment.
1184 * config/m68k/constraints.md (Cu): New constraint.
1185 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
1186 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
1187 (movsi): Handle TLS symbols.
1188 (addsi3_5200): Handle XTLS symbols, indent.
1189 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
1190 (m68k_tls_reference_p): Declare.
1191 (m68k_legitimize_address): Declare.
1192 (m68k_unwrap_symbol): Declare.
1193 * config/m68k/m68k.opt (mxtls): New option.
1194 * config/m68k/m68k.c (ggc.h): Include.
1195 (m68k_output_dwarf_dtprel): Implement hook.
1196 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
1197 (m68k_expand_prologue): Load GOT pointer when function needs it.
1198 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
1199 (m68k_legitimate_constant_address_p): Same.
1200 (m68k_decompose_address): Handle TLS references.
1201 (m68k_get_gp): New static function.
1202 (enum m68k_reloc): New contants.
1203 (TLS_RELOC_P): New macro.
1204 (m68k_wrap_symbol): New static function.
1205 (m68k_unwrap_symbol): New function.
1206 (m68k_final_prescan_insn_1): New static function.
1207 (m68k_final_prescan_insn): New function.
1208 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
1209 functions.
1210 (legitimize_pic_address): Handle TLS references..
1211 (m68k_tls_get_addr, m68k_get_tls_get_addr)
1212 (m68k_libcall_value_in_a0_p)
1213 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
1214 (m68k_call_m68k_read_tp): Helper variables and functions for ...
1215 (m68k_legitimize_tls_address): Handle TLS references.
1216 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
1217 New functions.
1218 (m68k_legitimize_address): Handle TLS symbols.
1219 (m68k_get_reloc_decoration): New static function.
1220 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
1221 UNSPEC_RELOC32.
1222 (m68k_output_dwarf_dtprel): Implement hook.
1223 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
1224 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
1225 m68k_call_* routines.
1226 (sched_attr_op_type): Handle TLS symbols.
1227 (gt-m68k.h): Include.
1228 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
1229 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
1230
8b75fc9b
MJ
12312009-05-18 Martin Jambor <mjambor@suse.cz>
1232
1233 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
1234 (visit_store_addr_for_mod_analysis): New function.
1235 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
1236 (determine_cst_member_ptr): Use gimple_assign_single_p.
1237 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
1238 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
1239 operands. Don't check number of operands of a NOP_EXPR.
1240
f133d4a2
EF
12412009-05-18 Eric Fisher <joefoxreal@gmail.com>
1242
1243 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
1244
ae8af500
L
12452009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
1246
1247 PR c/40172
1248 * c-common.c (warn_logical_operator): Don't warn if one of
1249 expression isn't always true or false.
1250
25e8fde8
KT
12512009-05-17 Kai Tietz <kai.tietz@onevision.com>
1252
ae8af500
L
1253 * config/i386/biarch32.h: New file.
1254 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 1255
ef67af22
AN
12562009-05-17 Adam Nemet <anemet@caviumnetworks.com>
1257
1258 * config/mips/mips.md (*zero_extend<mode>_trunchi,
1259 *zero_extend<mode>_truncqi): Merge these into ...
1260 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
1261 Name the pattern following this as *zero_extendhi_truncqi.
1262
e2d87023
BL
12632009-05-16 Brad Lucier <lucier@math.purdue.edu>
1264
1265 PR middle-end/39301
1266 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
1267 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
1268 (output_info): Make field HOST_WIDEST_INT.
1269 (print_statistics): Use HOST_WIDEST_INT_PRINT.
1270 (dump_bitmat_statistics): Same.
1271
428ddbf0
FXC
12722009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
1273
1274 * config.gcc (use_gcc_stdint): Set to wrap.
1275 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1276 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1277 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1278 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1279 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1280 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1281 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1282 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1283
1ab8a8c2
JM
12842009-05-16 Joseph Myers <joseph@codesourcery.com>
1285
1286 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
1287 tune_64.
1288 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
1289 Move definitions earlier.
1290 (OPT_ARCH64, OPT_ARCH32): Define.
1291 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
1292 and tune_64.
1293
70544f44
RE
12942009-05-16 Richard Earnshaw <rearnsha@arm.com>
1295
1296 PR target/40153
1297 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
1298 implies.
1299
6241ded1
RE
13002009-05-16 Richard Earnshaw <rearnsha@arm.com>
1301
1302 * arm.md (movdi2): Copy non-reg values to DImode registers.
1303
a99c6711
JJ
13042009-05-16 Jakub Jelinek <jakub@redhat.com>
1305
40a8f07a
JJ
1306 PR target/39942
1307 * final.c (label_to_max_skip): New function.
1308 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
1309 CODE_LABEL_NUMBER <= max_labelno.
1310 * output.h (label_to_max_skip): New prototype.
1311 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
1312 (ix86_avoid_jump_mispredicts): ... this. Don't define if
1313 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
1314 Handle CODE_LABELs with >= 16 byte alignment or with
1315 max_skip == (1 << align) - 1.
1316 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
1317 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
1318
a99c6711
JJ
1319 PR target/39942
1320 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
1321 .p2align 3 if MAX_SKIP is smaller than 7.
1322 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1323
7e5487a2
ILT
13242009-05-15 Ian Lance Taylor <iant@google.com>
1325
1326 * alias.c (struct alias_set_entry_d): Rename from struct
1327 alias_set_entry. Change all uses.
1328 * except.c (struct call_site_record_d): Rename from struct
1329 call_site_record. Change all uses.
1330 * except.h (struct eh_region_d): Rename from struct eh_region.
1331 Change all uses.
1332 * gcse.c (struct hash_table_d): Rename from struct hash_table.
1333 Change all uses.
1334 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
1335 ivtype_map_elt. Change all uses.
1336 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
1337 Change all uses.
1338 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
1339 * graphite.h (struct name_tree_d): Rename from struct name_tree.
1340 Change all uses.
1341 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
1342 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
1343 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
1344 * optabs.h (struct optab_d): Rename from struct optab. Change all
1345 uses.
1346 (struct convert_optab_d): Rename from struct convert_optab.
1347 Change all uses.
1348 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
1349 ipa_opt_pass. Change all uses.
1350 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
1351 all uses.
1352
1353 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
1354 defined as a typedef.
1355 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
1356 defined as a tag.
1357
a243fb4a
MLI
13582009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
1359
1360 PR 16302
1361 * fold-const.c (make_range,build_range_check,merge_ranges): Move
1362 declaration to...
1363 (merge_ranges): Returns bool.
1364 * tree.h (make_range): .. to here.
1365 (build_range_check): Likewise.
1366 (merge_ranges): Likewise. Renamed from merge_ranges.
1367 * c-typeck.c (parser_build_binary_op): Update calls to
1368 warn_logical_operator.
1369 * c-common.c (warn_logical_operator): Add new warning.
1370 * c-common.h (warn_logical_operator): Update declaration.
1371
1b53c5f3
MLI
13722009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
1373
782dc37a 1374 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 1375
c128599a
KG
13762009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1377
f9bab007
KG
1378 * doc/install.texi: Document MPC requirements, flags etc.
1379
c128599a
KG
1380 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
1381 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
1382 Evaluate constant arguments.
1383 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
1384 (fold_builtin_1): Likewise, also evaluate constant arguments.
1385 Remove superfluous break.
1386 (do_mpc_ckconv): New.
1387 * real.h: Include mpc.h.
1388 * toplev.c (print_version): Output MPC version info if available.
1389
d33e4b70
SL
13902009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1391
782dc37a 1392 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 1393
a02ab464
L
13942009-05-15 H.J. Lu <hongjiu.lu@intel.com>
1395
1396 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
1397 only once.
1398
796bda22
JH
13992009-05-15 Jan Hubicka <jh@suse.cz>
1400
1401 * doc/invoke.texi (max-early-inliner-iterations): New flag.
1402 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
1403 (try_inline): Fix return value.
1404 (cgraph_decide_inlining_incrementally): Honor new value.
1405 (cgraph_early_inlining): Handle indirect inlining.
1406 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
1407
d88e5c37
JH
14082009-05-15 Jan Hubicka <jh@suse.cz>
1409
1410 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
1411 * cgraphunit.c (cgraph_finalize_function): Set it.
1412 (cgraph_expand_function): Use it.
1413
ae63687c
SL
14142009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1415
1416 * real.c (encode_ieee_half): Define.
1417 (decode_ieee_half): Define.
1418 (ieee_half_format): Define.
1419 (arm_half_format): Define.
1420 * real.h (ieee_half_format): Declare.
1421 (arm_half_format): Declare.
1422
1bd74ad9
SL
14232009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1424
1425 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
1426 swapped, and reversed optabs exist before trying to use them.
1427
dc34db56
PB
14282009-05-15 Paul Brook <paul@codesourcery.com>
1429 Sandra Loosemore <sandra@codesourcery.com>
1430
dc34db56
PB
1431 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
1432 loads. Allow PRE_DEC.
1433 (output_move_neon): Handle PRE_DEC.
1434 (arm_print_operand): Add 'A' for neon structure loads.
1435 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
1436 * config/arm/neon.md (neon_mov): Update comment.
1437 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
1438 calls.
1439 (Um): New constraint.
1440
1d405d7b
JH
14412009-05-15 Jan Hubicka <jh@suse.cz>
1442
1443 Revert the following patch until testsuite fallout is fixed:
1444 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1445 * cgraph.h (struct inline_summary): New filed self_wize,
1446 size_inlining_benefit, self_time and time_inlining_benefit.
1447 (struct cgraph_global_info): Replace insns by time ans size fields.
1448 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1449 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1450 (ipcp_update_callgraph): Do not touch function bodies.
1451 * ipa-inline.c: Include except.h
782dc37a 1452 (MAX_TIME): New constant.
1d405d7b
JH
1453 (overall_insns): Remove
1454 (overall_size, max_benefit): New static variables.
1455 (cgraph_estimate_time_after_inlining): New function.
1456 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1457 (cgraph_clone_inlined_nodes): Update size.
1458 (cgraph_mark_inline_edge): Update size.
1459 (cgraph_estimate_growth): Use size info.
1460 (cgraph_check_inline_limits): Check size.
1461 (cgraph_default_inline_p): Likewise.
1462 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1463 (cgraph_decide_recursive_inlining): Check size.
00c5fa1b
EB
1464 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
1465 times.
1d405d7b 1466 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
1467 (cgraph_decide_inlining_incrementally): Likewise; honor
1468 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
1469 (likely_eliminated_by_inlining_p): New predicate.
1470 (estimate_function_body_sizes): New function.
1471 (compute_inline_parameters): Use it.
1472 * except.c (must_not_throw_labels): New function.
1473 * except.h (must_not_throw_labels): Declare.
1474 * tree-inline.c (init_inline_once): Kill inlining_weigths
1475 * tree-ssa-structalias.c: Avoid uninitialized warning.
1476 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1477 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1478 (PARAM_INLINE_CALL_COST): Remove.
1479 (PARAM_EARLY_INLINING_INSNS): New.
1480
7ffa47ca
RG
14812009-05-15 Richard Guenther <rguenther@suse.de>
1482
1483 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
1484 not TODO_update_ssa.
1485
828552ed
RG
14862009-05-15 Richard Guenther <rguenther@suse.de>
1487
1488 PR tree-optimization/39999
1489 * gimple.h (gimple_expr_type): Use the expression type looking
1490 through useless conversions.
1491 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
1492 (vn_nary_op_insert_stmt): Likewise.
1493 (simplify_binary_expression): Likewise.
1494
248fc9f3
RG
14952009-05-15 Richard Guenther <rguenther@suse.de>
1496
1497 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
1498 New options, enabled by default.
1499 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
1500 Document.
1501 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
1502 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
1503 * tree-ssa-structalias.c (gate_tree_pta): New function.
1504 (pass_build_alias): Use it.
1505
16b29cc4
JM
15062009-05-15 Joseph Myers <joseph@codesourcery.com>
1507
1508 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
1509 recurse on an invariant address if a conversion from a pointer
1510 type to a wider integer type is involved.
1511
125cae84
JH
15122009-05-15 Jan Hubicka <jh@suse.cz>
1513
1514 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1515 * cgraph.h (struct inline_summary): New filed self_wize,
1516 size_inlining_benefit, self_time and time_inlining_benefit.
1517 (struct cgraph_global_info): Replace insns by time ans size fields.
1518 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1519 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1520 (ipcp_update_callgraph): Do not touch function bodies.
1521 * ipa-inline.c: Include except.h
782dc37a 1522 (MAX_TIME): New constant.
125cae84
JH
1523 (overall_insns): Remove
1524 (overall_size, max_benefit): New static variables.
1525 (cgraph_estimate_time_after_inlining): New function.
1526 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1527 (cgraph_clone_inlined_nodes): Update size.
1528 (cgraph_mark_inline_edge): Update size.
1529 (cgraph_estimate_growth): Use size info.
1530 (cgraph_check_inline_limits): Check size.
1531 (cgraph_default_inline_p): Likewise.
1532 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1533 (cgraph_decide_recursive_inlining): Check size.
00c5fa1b
EB
1534 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
1535 times.
125cae84 1536 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
1537 (cgraph_decide_inlining_incrementally): Likewise; honor
1538 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
1539 (likely_eliminated_by_inlining_p): New predicate.
1540 (estimate_function_body_sizes): New function.
1541 (compute_inline_parameters): Use it.
1542 * except.c (must_not_throw_labels): New function.
1543 * except.h (must_not_throw_labels): Declare.
1544 * tree-inline.c (init_inline_once): Kill inlining_weigths
1545 * tree-ssa-structalias.c: Avoid uninitialized warning.
1546 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1547 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1548 (PARAM_INLINE_CALL_COST): Remove.
1549 (PARAM_EARLY_INLINING_INSNS): New.
1550 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
1551 (inline-call-cost): Remove.
1552 (early-inlining-insns): New.
1553
84fb43a1
EB
15542009-05-15 Eric Botcazou <ebotcazou@adacore.com>
1555
1556 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
1557 for bounds.
1558 (print_int_cst_bounds_in_octal_p): Likewise.
1559 (dbxout_type): Adjust calls to above functions. Be prepared to deal
1560 with subtypes.
1561 * dwarf2out.c (base_type_die): Likewise.
1562 (is_subrange_type): Delete.
1563 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
1564 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
1565 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
1566 the destination type is boolean.
1567 (build_range_check): Do not special-case subtypes.
1568 (fold_sign_changed_comparison): Likewise.
1569 (fold_unary): Likewise.
1570 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
1571 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
1572 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
1573 * tree.c (subrange_type_for_debug_p): New predicate based on the former
1574 is_subrange_type.
1575 * tree.h (subrange_type_for_debug_p): Declare.
1576 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
1577 (convert_affine_scev): Remove call to above function.
1578 (chrec_convert_aggressive): Likewise.
1579 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
1580 false for conversions involving subtypes.
1581 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
1582 (vrp_val_min): Likewise.
1583 (needs_overflow_infinity): Likewise.
1584 (extract_range_from_unary_expr): Likewise.
1585
331d9186
PB
15862009-05-15 Paolo Bonzini <bonzini@gnu.org>
1587
e9351712
L
1588 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1589 * config/frv/frv.c: Likewise.
1590 * config/s390/s390.c: Likewise.
1591 * config/sparc/sparc.h: Likewise.
1592 * config/i386/i386.h: Likewise.
1593 * config/i386/i386.c: Likewise.
1594 * config/crx/crx.c: Likewise.
1595 * config/m68hc11/m68hc11.h: Likewise.
1596 * config/iq2000/iq2000.c: Likewise.
1597 * config/mn10300/mn10300.h: Likewise.
1598 * config/mn10300/mn10300.c: Likewise.
1599 * config/m68k/m68k.c: Likewise.
1600 * config/rs6000/rs6000.c: Likewise.
1601 * config/rs6000/xcoff.h: Likewise.
1602 * config/rs6000/linux64.h: Likewise.
1603 * config/rs6000/sysv4.h: Likewise.
1604 * config/score/score3.c: Likewise.
1605 * config/score/score7.c: Likewise.
1606 * config/score/score.c: Likewise.
1607 * config/arm/arm.md: Likewise.
1608 * config/mips/mips.c: Likewise.
1609 * config/mips/mips.md: Likewise.
1610 * config/bfin/bfin.h: Likewise.
1611 * config/pa/pa.c: Likewise.
1612 * config/pa/constraints.md: Likewise.
1613
1614 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
1615 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
1616 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 1617
09639a83
ILT
16182009-05-14 Ian Lance Taylor <iant@google.com>
1619
1620 * passes.c (finish_optimization_passes): Change i to int.
1621 * plugin.c (plugins_active_p): Change event to int.
1622 (dump_active_plugins): Likewise.
1623 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
1624 Add cast.
1625 * tree.c (tree_range_check_failed): Change c to unsigned int.
1626 (omp_clause_range_check_failed): Likewise.
1627 (build_common_builtin_nodes): Change mode to int. Add cast.
1628 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
1629 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
1630
1631 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
1632 ++ or -- with a variable of enum type.
1633
c04a56bf
SB
16342009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1635
1636 PR driver/40144
1637 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
1638
237ee620
SB
16392009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1640
1641 * store-motion.c: Do not include params.h
1642 * Makefile.in: Fix dependencies for various files.
1643
1154c4fa
SB
16442009-05-14 Steven Bosscher <steven@gcc.gnu.org>
1645
1646 * auto-inc-dec.c: Fix pass description, remove apparent
1647 accidental duplication.
1648
61c27353
L
16492009-05-14 H.J. Lu <hongjiu.lu@intel.com>
1650
1651 PR middle-end/40147
1652 * ipa-utils.h (memory_identifier_string): Moved to ...
1653 * tree.h (memory_identifier_string): Here. Add GTY(()).
1654
c6c3dba9
PB
16552009-05-14 Paolo Bonzini <bonzini@gnu.org>
1656
1657 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
1658 in the former documentation of...
1659 (GO_IF_LEGITIMATE_ADDRESS): ... this.
1660 * ira-conflicts.c (get_dup_num): Use address_operand.
1661 * targhooks.c (default_legitimate_address_p): New.
1662 * targhooks.h (default_legitimate_address_p): New.
1663 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
1664 Call hook.
1665 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
1666 * target.h (struct target): Add legitimate_address_p.
1667 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
1668 (TARGET_INITIALIZER): Include it.
1669
1670 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1671 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
1672 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
1673 (TARGET_LEGITIMATE_ADDRESS_P): New.
1674
1675 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1676 (REG_OK_STRICT_P): Delete.
1677 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
1678 (frv_legitimate_address_p_1): ... this.
1679 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
1680 (frv_legitimate_address_p_1): ... the renamed old
1681 frv_legitimate_address_p.
1682 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
1683 (TARGET_LEGITIMATE_ADDRESS_P): New.
1684
1685 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1686 * config/s390/s390-protos.h (legitimate_address_p): Remove.
1687 * config/s390/s390.c (legitimate_address_p): Rename to...
1688 (s390_legitimate_address_p): ... this, make static.
1689 (legitimize_address): Adjust call.
1690 (TARGET_LEGITIMATE_ADDRESS_P): New.
1691 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
1692
1693 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1694 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
1695 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
1696 (TARGET_LEGITIMATE_ADDRESS_P): New.
1697
1698 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1699 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
1700 * config/spu/spu.c (spu_legitimate_address): Rename to...
1701 (spu_legitimate_address_p): ... this, make static.
1702 (TARGET_LEGITIMATE_ADDRESS_P): New.
1703
1704 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1705 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
1706 * config/sparc/sparc.c (legitimate_address_p): Rename to...
1707 (sparc_legitimate_address_p): ... this, make static and return bool.
1708 (legitimize_address): Adjust call.
1709 (TARGET_LEGITIMATE_ADDRESS_P): New.
1710
1711 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1712 * config/i386/i386-protos.h (legitimate_address_p): Remove.
1713 * config/i386/i386.c (legitimate_address_p): Rename to...
1714 (ix86_legitimate_address_p): ... this, make static.
1715 (constant_address_p): Move after it, adjust call.
1716 (TARGET_LEGITIMATE_ADDRESS_P): New.
1717
1718 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1719 * config/avr/avr-protos.h (legitimate_address_p): Remove.
1720 * config/avr/avr.c (legitimate_address_p): Rename to...
1721 (avr_legitimate_address_p): ... this, make static.
1722 (legitimize_address): Adjust call.
1723 (TARGET_LEGITIMATE_ADDRESS_P): New.
1724
1725 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1726 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
1727 * config/crx/crx.c (crx_legitimate_address_p): Make static.
1728 (TARGET_LEGITIMATE_ADDRESS_P): New.
1729
1730 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1731 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
1732 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
1733 (TARGET_LEGITIMATE_ADDRESS_P): New.
1734
1735 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1736 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
1737 Remove.
1738 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
1739 Make static.
1740 (TARGET_LEGITIMATE_ADDRESS_P): New.
1741
1742 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1743 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
1744 Remove.
1745 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
1746 Rename to...
1747 (m68hc11_legitimate_address_p): ... this, make static.
1748 (go_if_legitimate_address_internal): Rename to...
1749 (m68hc11_legitimate_address_p_1): ... this.
1750 (legitimize_address): Adjust call.
1751 (TARGET_LEGITIMATE_ADDRESS_P): New.
1752
1753 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
1754 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
1755 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
1756 (TARGET_LEGITIMATE_ADDRESS_P): New.
1757
1758 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1759 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
1760 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
1761 (mn10300_legitimate_address_p): ... this, make static.
1762 (TARGET_LEGITIMATE_ADDRESS_P): New.
1763
1764 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1765 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
1766 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
1767 (TARGET_LEGITIMATE_ADDRESS_P): New.
1768
1769 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1770 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
1771 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
1772 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1773 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
1774 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
1775 (rs6000_legitimate_address_p): ... this, make static.
1776 (TARGET_LEGITIMATE_ADDRESS_P): New.
1777 (REG_MODE_OK_FOR_BASE_P): Delete.
1778 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
1779
1780 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1781 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
1782 Delete.
1783 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
1784 static, adjust types.
1785 (TARGET_LEGITIMATE_ADDRESS_P): New.
1786
1787 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1788 * config/score/score.c (score_address_p): Rename to...
1789 (score_legitimate_address_p): ... this.
1790 (TARGET_LEGITIMATE_ADDRESS_P): New.
1791 * config/score/score3.c (score3_address_p): Rename to...
1792 (score3_legitimate_address_p): ... this.
1793 * config/score/score7.c (score7_address_p): Rename to...
1794 (score7_legitimate_address_p): ... this.
1795
1796 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
1797 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
1798 GO_IF_LEGITIMATE_ADDRESS): Delete.
1799 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
1800 thumb2_legitimate_address_p): Delete.
1801 (arm_legitimate_address_p): Rename to...
1802 (arm_legitimate_address_outer_p): ... this.
1803 * config/arm/constraints.md ("Uq"): Adjust call.
1804 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
1805 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
1806 (arm_legitimate_address_outer_p): ... this.
1807 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
1808 (TARGET_LEGITIMATE_ADDRESS_P): New.
1809
1810 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1811 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
1812 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
1813 (TARGET_LEGITIMATE_ADDRESS_P): New.
1814
1815 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1816 * config/vax/vax-protos.h (legitimate_address_p): Remove.
1817 * config/vax/vax.c (legitimate_address_p): Rename to...
1818 (vax_legitimate_address_p): ... this, make static.
1819 (TARGET_LEGITIMATE_ADDRESS_P): New.
1820
1821 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1822 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
1823 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
1824 (TARGET_LEGITIMATE_ADDRESS_P): New.
1825
1826 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1827 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
1828 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
1829 (mmix_legitimate_address_p): ... this, make static.
1830 (TARGET_LEGITIMATE_ADDRESS_P): New.
1831
1832 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1833 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
1834 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
1835 (TARGET_LEGITIMATE_ADDRESS_P): New.
1836
3bd0d9c8
PB
18372009-05-14 Paolo Bonzini <bonzini@gnu.org>
1838
1839 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
1840 of MODE_COMPLEX_INT.
1841
fe049033
RO
18422009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1843
1844 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
1845 LCT_NORMAL in function call.
1846 * mips-tdump.c (print_file_desc): Add cast to enum type.
1847 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
1848 (mark_stabs): Add casts to enum types.
1849 (parse_stabs_common): Add casts to enum types.
16f7ad42 1850
b0907a6c
AN
18512009-05-13 Adam Nemet <anemet@caviumnetworks.com>
1852
1853 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
1854 Check for invalid values of LETTER.
1855
d1c8e08a
TG
18562009-05-13 Taras Glek <tglek@mozilla.com>
1857
16f7ad42
TG
1858 * attribs.c (register_attribute): moved out attribute registration into
1859 register_attribute.
1860 * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
1861 * gcc-plugin.h: Added forward decl for register_attribute.
1862 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
1863 * plugin.c (register_callback, invoke_plugin_callbacks): Added
1864 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 1865
4ed7f970
DK
18662009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
1867
1868 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
1869 values even in sentinel and empty entries.
1870 (ms_printf_flag_specs): Likewise.
1871 (ms_scanf_flag_specs): Likewise.
1872 (ms_strftime_flag_specs): Likewise.
1873 (ms_print_char_table): Likewise.
1874 (ms_scan_char_table): Likewise.
1875 (ms_time_char_table): Likewise.
1876
3d8fa148
DK
18772009-05-13 Doug Kwan <dougkwan@google.com>
1878
1879 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
1880
f06257d3
AN
18812009-05-13 Adam Nemet <anemet@caviumnetworks.com>
1882
1883 * config/mips/mips.md (store): Add attributes for QI and HI.
1884 Update comment.
1885 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
1886 (truncdi<mode>2): ... this new pattern.
1887
fb201767
BH
18882009-05-13 Brad Hards <bradh@kde.org>
1889
1890 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
1891
c7bda60e 18922009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
1893 Ben Elliston <bje@au.ibm.com>
1894
1895 PR middle-end/40035
1896 * dse.c (check_mem_read_rtx): Guard against width == -1.
1897
ce985b43
MM
18982009-05-13 Michael Matz <matz@suse.de>
1899
1900 PR middle-end/39976
1901 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
1902 (trivially_conflicts_p): New function.
1903 (insert_backedge_copies): Use it.
1904
7de1d221
JJ
19052009-05-13 Janis Johnson <janis187@us.ibm.com>
1906
1907 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
1908 (handle_stdc_pragma): Use new enum constant names.
1909 (handle_pragma_float_const_decimal64): Ditto.
1910
bfefafc6
ILT
19112009-05-13 Ian Lance Taylor <iant@google.com>
1912
1913 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
1914 tree.def.
1915
286c4fcb
NS
19162009-05-13 Nathan Sidwell <nathan@codesourcery.com>
1917
1918 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
1919 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
1920 multilibs.
1921 * config/m68k/m68k.h (FL_UCLINUX): Define.
1922
ebaa6ea7
JH
19232009-05-13 Jan Hubicka <jh@suse.cz>
1924
1925 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
1926
2b703e1a
KK
19272009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1928
1929 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
1930 unless -fschedule-insns is specified.
1931
c3537723
KK
19322009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1933
1934 PR target/39561
1935 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
1936 TARGET_EXPAND_CBRANCHDI4.
1937 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
1938 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
1939 (cmpeqdi): Fix comment.
1940
cdeed45a
KK
19412009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1942
1943 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
1944 (sh_legitimate_address_p): Likewise.
1945 * config/sh/sh.c (sh_legitimate_index_p): New.
1946 (sh_legitimate_address_p): Likewise.
1947 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
1948 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
1949 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
1950 (MAYBE_BASE_REGISTER_RTX_P): New macro.
1951 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
1952 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
1953 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
1954 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
1955 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
1956
02f0b13a
JH
19572009-05-12 Jan Hubicka <jh@suse.cz>
1958
1959 * tree-inline.c (estimate_operator_cost): Add operands;
1960 when division happens by constant, it is cheap.
1961 (estimate_num_insns): Loads and stores are not having cost of 0;
1962 EH magic stuff is cheap; when computing runtime cost of switch,
1963 use log2 base of amount of its cases; builtin_expect has cost of 0;
1964 compute cost for moving return value of call.
1965 (init_inline_once): Initialize time_based flags.
1966 * tree-inline.h (eni_weights_d): Add time_based flag.
1967
ecb7f6de
PB
19682009-05-12 Paolo Bonzini <bonzini@gnu.org>
1969
1970 * df-core.c: Update head documentation.
1971
c24151ce
MM
19722009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1973
1974 PR bootstrap/40118
1975 * rs6000.c (rs6000_generate_compare): Use op1b instead of
1976 shadowing exisiting variable op1.
1977
fbdf817d
UB
19782009-05-12 Uros Bizjak <ubizjak@gmail.com>
1979
704bf7c8 1980 PR target/37179
fbdf817d
UB
1981 * config/i386/driver-i386.c (processor_signatures): New enum.
1982 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
1983 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
1984 processor signature to detect geode processor.
1985
5e8d1826
PB
19862009-05-12 Paolo Bonzini <bonzini@gnu.org>
1987
1988 Revert:
1989
1990 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
1991
1992 * optabs.c (prepare_cmp_insn): Temporarily disable test that
1993 causes spurious differences between trunk and cond-optab branch.
1994
f90b7a5a
PB
19952009-05-12 Paolo Bonzini <bonzini@gnu.org>
1996
fbdf817d
UB
1997 * dojump.c (compare_from_rtx): Delete.
1998 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
1999 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
2000 if the comparison does not satisfy the predicate; test predicates for
2001 operands 2 and 3 of a cstore pattern. Don't try cstore optab
2002 further if one existing pattern fails.
fbdf817d 2003 * expr.h (compare_from_rtx): Delete.
f90b7a5a 2004 (prepare_operand): Declare it.
fbdf817d 2005 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 2006 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
2007 HAVE_conditional_trap, emit_cmp_insn): Delete.
2008 (can_compare_p): Delete cmp_optab case.
f90b7a5a 2009 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
2010 Accept other parameters by value.
2011 (prepare_operand): Make non-static.
2012 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
2013 other parameters by value. Try to widen operands here based on
2014 an optab_methods argument and looking at cbranch_optab.
2015 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
2016 loop. Use cbranch_optab directly.
2017 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
2018 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
2019 assertion.
2020 (emit_conditional_move, emit_conditional_add): Inline what's needed
2021 of compare_from_rtx, using new prepare_cmp_insn for the rest.
2022 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
2023 with COMPARE. Move cmov_optab and cstore_optab above
2024 with cbranch_optab, move cmp_optab down with ucmp_optab,
2025 remove tst_otpab. Do not initialize trap_rtx.
2026 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
2027 for trap code. Do not check HAVE_conditional_trap. Use
2028 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
2029 * optabs.h (OTI_cmp): Mark as used only for libcalls.
2030 (OTI_ctrap, ctrap_optab): New.
2031 (tst_optab): Delete.
2032 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
2033 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
2034 with lookup of ctrap_optab.
2035 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
2036 setcc_gen_code): Delete.
2037 (ctrap_optab): New.
2038
2039 * combine.c (combine_simplify_rtx, simplify_set): Do not
2040 special case comparing against zero for cc0 machines.
f90b7a5a
PB
2041 * simplify-rtx.c (simplify_binary_operation_1): Never remove
2042 COMPARE on cc0 machines.
2043 (simplify_relational_operation): Return a new expression when
2044 a COMPARE could be removed.
fbdf817d
UB
2045 * final.c (final_scan_insn): Compare cc_status values
2046 against LHS of a (compare FOO (const_int 0)) cc0 source.
2047 Also check if cc_status.value is the full compare.
f90b7a5a 2048
fbdf817d
UB
2049 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
2050 (cstoreMM4): Document.
f90b7a5a 2051 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 2052 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
2053 (Dependent Patterns): Eliminate obsolete information referring to
2054 the old jump optimization phase.
fbdf817d 2055 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
2056 of compares with 0 on cc0 machines.
2057 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
2058 avoiding references to cc0. Remove text about storing operands
2059 in cmpMM.
2060 * doc/tm.texi (Condition Codes): Include blurb on different
2061 condition code representations, separate into subsections for
2062 CC0, MODE_CC and conditional execution.
2063
fbdf817d
UB
2064 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
2065 alpha_emit_setcc): Accept operands and a machine mode.
2066 * config/alpha/alpha.c (alpha_emit_conditional_branch):
2067 Get code/op0/op1 from operands, use machine mode argument
2068 instead of alpha_compare.fp_p. Emit the branch here.
2069 (alpha_emit_setcc): Likewise, and return boolean.
2070 (alpha_emit_conditional_move): Likewise. Assert that
2071 cmp_op_mode == cmp_mode, and simplify accordingly.
2072 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
2073 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
2074 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
2075 Delete.
2076 (stack probe test): Use cbranchdi4.
2077 * config/alpha/predicates.md (alpha_cbranch_operator): New.
2078
2079 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
2080 * config/arc/arc.h (movsicc, movsfcc): Use it.
2081 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
2082 (cbranchsi4, cstoresi4): New.
2083 (cmpsi, bCC and sCC expanders): Remove.
2084
2085 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
2086 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
2087 * config/arm/predicates.md (arm_comparison_operator): Only include
2088 floating-point operators if there is a hardware floating-point unit.
2089 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
2090 deferring to cbranch_cc and cstore_cc respectively.
2091 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
2092 cbranch_cc, cstore_cc): New.
2093 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 2094 arm_compare_op1.
fbdf817d
UB
2095 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
2096
2097 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
2098 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
2099 as an argument.
2100 (adjust_insn_length): Adjust calls.
2101 (avr_reorg): Handle (compare (foo) (const_int 0)).
2102 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
2103 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
2104 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
2105 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
2106 (bCC): Remove.
2107 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
2108 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
2109
fbdf817d
UB
2110 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
2111 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 2112 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
2113 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
2114 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
2115 (bfin_optimize_loop): Use cbranch expander.
2116 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
2117 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
2118 (bfin_bimode_comparison_operator): ... this.
2119 (bfin_direct_comparison_operator): New.
f90b7a5a 2120
fbdf817d
UB
2121 * config/cris/cris.c (cris_normal_notice_update_cc): Look
2122 inside (compare FOO (const_int 0)).
2123 (cris_rtx_costs): Handle ZERO_EXTRACT.
2124 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
2125 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
2126 (*tstdi_v32): Delete.
2127 (*cmpdi_non_v32): Add M alternative for operand 1.
2128 (cmpsi, cmp<mode>): Make private.
2129 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
2130 with COMPARE.
2131 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
2132
2133 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
2134 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
2135 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
2136 (cc_reg_operand): New.
2137 (any_cond): Delete.
fbdf817d
UB
2138 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
2139 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
2140 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
2141 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
2142 crx_expand_scond): Delete.
2143
2144 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
2145 (cbranchsi4): New.
2146 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
2147 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
2148
2149 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
2150 cstoresi4, cstoresf4, cstoredf4): New.
2151 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
2152 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2153 Receive the entire operands array.
2154 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
2155 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
2156 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2157 Get test/op0/op1 from the operands array.
2158 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
2159
2160 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
2161 (h8300_expand_store): New.
2162 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
2163 (const_int 0)).
2164 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
2165 (h8300_expand_store): New.
2166 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
2167 or do not try to produce (set (cc0) REG).
2168 (peepholes): Wrap arguments with COMPARE. Add a peephole to
2169 change a compare into a move to a scratch register. Disable some
2170 peepholes when comparing with zero.
2171 (tstsi, tsthi, tstsi, cmpqi): Make private.
2172 (cmphi): Delete.
2173 (bCC, sCC): Delete.
2174 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
2175 cstoresi4): New.
f90b7a5a
PB
2176
2177 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
2178 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
2179 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
2180 (ix86_emit_i387_log1p): Use cbranchxf2.
2181 (ix86_expand_setcc): Return void.
2182 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
2183 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
2184 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
2185 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
2186 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
2187 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
2188 (sCC and bCC expanders): Remove.
2189 (stack_protect_test): Use cbranchcc4.
2190
fbdf817d
UB
2191 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
2192 Delete.
2193 (ia64_expand_compare): Accept three rtx by reference and return void.
2194 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
2195 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
2196 from *expr. Update *expr with the BImode comparison to do.
2197 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
2198 cmptf, bCC, sCC, conditional_trap): Delete.
2199 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
2200 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
2201 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
2202 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
2203 * config/ia64/predicates.md (ia64_cbranch_operator): New.
2204
2205 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
2206 type of last argument.
2207 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
2208 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
2209 use machine mode argument instead of branch_type. Remove dead
2210 code for floating-point comparisons.
2211 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
2212 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
2213 Remove.
2214 (cbranchsi4, cstoresi4): New.
2215 * config/iq2000/predicates.md (reg_or_const_operand): New.
2216
2217 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
2218 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
2219 (b<code>_op): Rewrite to...
2220 (bcc_op): ... this, using match_operator.
2221 (s<code>_op): Rewrite to...
2222 (scc_op): ... this, using match_operator.
2223 (s<code>_24_op): Rewrite to...
2224 (scc_op_24): ... this, using match_operator.
2225 (s<code>_<mode>): Rewrite to...
2226 (cstore<mode>4): ... this, using match_operator.
2227 (s<code>_<mode>_24): Rewrite to...
2228 (cstore<mode>4_24): ... this, using match_operator.
2229 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
2230 m32c_unpend_compare, m32c_expand_scc): Delete.
2231 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
2232 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
2233 (m32c_expand_movcc): Change NE to EQ if necessary.
2234 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
2235
2236 * config/m32r/m32r-protos.h (gen_cond_store): New.
2237 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
2238 (gen_cond_store): New, from sCC patterns.
2239 (m32r_expand_block_move): Use cbranchsi4.
2240 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
2241 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
2242 (cbranchsi4, cstoresi4): New.
2243
2244 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
2245 Delete.
2246 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 2247 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
2248 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
2249 Delete.
2250 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
2251 cmphi, cmpqi, bCC): Delete.
2252 (cbranchsi4, cbranchhi4, cbranchqi4): New.
2253 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
2254 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
2255 sets with COMPARE.
2256
2257 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
2258 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
2259 * config/m68k/constraints.md (H): New.
2260 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
2261 the define_insn below.
2262 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
2263 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
2264 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
2265 patterns): Wrap RHS with COMPARE.
2266 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
2267 (*cmpdi_internal): Name this pattern.
2268 (cmpdi): Change to define_insn.
2269 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
2270 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
2271 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
2272 predicate.
2273 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
2274 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
2275 (conditional_trap): Change to...
2276 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
2277 (*conditional_trap): Use the ordered_comparison_operator and
2278 const1_operand predicates.
2279 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
2280 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
2281 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
2282 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
2283
2284 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
2285 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
2286 (mcore_gen_compare): New.
2287 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
2288 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
2289 (mcore_gen_compare): ... this.
2290 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
2291 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
2292 (stack probe pattern): Use cbranchsi4.
2293
2294 * config/mips/predicates.md (mips_cstore_operator): New.
2295 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
2296 * config/mips/mips.md (any_cond): Delete.
2297 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
2298 always succeed.
2299 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
2300 fixuns_truncsfdi2): Use cbranch patterns.
2301 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
2302 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
2303 Adjust call to mips_expand_conditional_branch.
2304 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
2305 cstore<GPR:mode>4.
2306 * config/mips/mips-protos.h (mips_expand_conditional_branch,
2307 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
2308 * config/mips/mips.c (cmp_operands): Delete.
2309 (mips_emit_compare): Get comparison operands from *op0/*op1.
2310 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
2311 that it succeeds. Use op0/op1 instead of cmp_operands.
2312 (mips_expand_conditional_branch, mips_expand_conditional_move,
2313 mips_expand_conditional_trap): Likewise.
2314 (mips_block_move_loop): Use cbranch patterns.
2315 * config/mips/mips.h (cmp_operands): Delete.
2316
2317 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
2318 (mmix_gen_compare_reg): Just return a register in the right CC mode.
2319 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
2320 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
2321 (*cmpcc_folded): Rename to...
2322 (*cmpdi_folded): this.
2323 (*cmpcc): Rename to...
2324 (*cmps): ... this.
2325 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
2326 (bCC): Remove.
2327 (cbranchdi4): New.
2328 (cbranchdf4): New. Handle invalid comparisons here.
2329 * config/mmix/predicates.md (float_comparison_operator): New.
2330
2331 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
2332 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
2333 * config/mn10300/mn10300.md (tst): Delete.
2334 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
2335 Name these patterns and wrap RHS in a compare.
2336 (*cmpsi): Make this pattern private. Include tst.
2337 (*cmpsf): Make this pattern private.
2338 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
2339 (compare with zero peepholes): Likewise.
2340 (bCC): Remove.
2341 (cbranchsi4, cbranchsf4): New.
2342 (casesi): Use cbranchsi4.
2343
2344 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
2345 hppa_branch_type): Delete.
2346 (return_addr_rtx): Use cbranchsi4.
2347 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
2348 Emit CCFPmode comparison here.
2349 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
2350 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
2351 hppa_branch_type): Delete.
2352 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
2353 (movsicc, movdicc): Remove references to hppa_compare_op0,
2354 hppa_compare_op1 and compare_from_rtx.
2355 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
2356 (casesi): Use cbranchsi4.
2357
2358 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
2359 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
2360 * config/pdp11/pdp11.md (register_or_const0_operand): New.
2361 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
2362 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
2363 (bCC): Delete.
2364 (cbranchdf4, cbranchhi4, cbranchqi4): New.
2365 (*branch, *branch_inverted): New.
2366
2367 * config/picochip/picochip.md (cbranchhi4): Use
2368 ordered_comparison_operator.
2369 (cmphi, bCC): Remove.
2370
2371 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
2372 (trap_comparison_operator): Delete.
2373 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
2374 rs6000_emit_cbranch): Accept mode and operands.
2375 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
2376 rs6000_compare_fp_p): Delete.
2377 (rs6000_generate_compare): Accept mode and comparison. Extract code
2378 and op0/op1 from there. Replace references to rs6000_compare_op0
2379 and rs6000_compare_op1.
2380 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
2381 extract result from passed operands.
2382 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
2383 extract loc from passed operands.
2384 (rs6000_emit_cmove): Likewise.
2385 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
2386 rs6000_compare_fp_p): Delete.
2387 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
2388 (cbranch<GPR>4, cbranch<FP>4): New.
2389 (cstore<mode>4): New. Consolidate here all choices about when to use
2390 portable or specialized sCC sequences.
2391 (stack_protect_test): Use cbranchsi4.
2392 (conditional_trap): Replace with ctrap<GPR>4.
2393 (conditional trap insn): Replace trap_comparison_operator with
2394 ordered_comparison_operator.
2395
2396 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
2397 (s390_emit_prologue): Use ctrap.
2398 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
2399 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
2400 New predicates replacing...
2401 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
2402 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
2403 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
2404 (add<mode>cc): Do not use s390_compare_op0/op1.
2405 (s<code>): Change to...
2406 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
2407 (seq): Change to...
2408 (cstorecc4): ... this. Handle EQ or NE equally.
2409 (*sne): Un-privatize for use in cstorecc4.
2410 (b<code>): Change to...
2411 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
2412 (conditional_trap): Replace with...
2413 (ctrap<GPR>4, ctrap<FP>4): ... these.
2414 (stack_protect): Use cbranchcc4.
2415
2416 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
2417 * config/score/score-protos.h (score_gen_cmp): Delete.
2418 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
2419 (score_block_move-loop): Use cbranchsi4.
2420 * config/score/score.md (cbranchsi4): New.
2421 (cmpsi, bCC): Delete.
2422 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
2423 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
2424 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
2425 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
2426 * config/score/score3.h (score3_gen_cmp): Delete.
2427 * config/score/score7.h (score7_gen_cmp): Delete.
2428
2429 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
2430 (sh_emit_scc_to_t): ... this. Return void.
2431 (from_compare): Rename to...
2432 (sh_emit_compare_and_branch): ... this.
2433 (sh_emit_compare_and_set): New.
2434 (sh_expand_t_scc): Accept operands.
2435 * config/sh/predicates.md (sh_float_comparison_operator): New.
2436 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
2437 (prepare_scc_operands): Rename to...
2438 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
2439 arguments.
2440 (sh_emit_cheap_store_flag): New.
f90b7a5a 2441 (sh_emit_set_t_insn): New.
fbdf817d
UB
2442 (from_compare): Rename to...
2443 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
2444 handling of TARGET_SH2E floating point to avoid recursive call.
2445 Generate branch here.
2446 (sh_emit_compare_and_set): New.
2447 (sh_expand_t_scc): Get op0/op1 from arguments.
2448 (sh_emit_cheap_store_flag): New.
2449 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
2450 cases.
f90b7a5a 2451 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
2452 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
2453 (movsicc, movdicc): Do nothing when it recreated operands from
2454 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
2455 prepare_scc_operands (now sh_emit_scc_to_t).
2456 (udivdi3): Use cstoresi4.
2457 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
2458 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
2459 (cbranchint4_media, cbranchfp4_media): New.
2460 (casesi): Use cbranchdi4.
2461 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
2462 Delete.
2463 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
2464 (movnegt): Remove second operand.
2465 (cbranchsf4, cbranchdf4): New.
2466 (stack_protect): Use cbranchdi4/cbranchsi4.
2467
2468 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
2469 (gen_compare_reg): Accept comparison, extract part of it to...
2470 (gen_compare_reg_1): ... this.
2471 (gen_compare_operator): Delete.
2472 (gen_v9_scc): Accept separate destination, comparison code and arms.
2473 Do not use sparc_compare_op0/sparc_compare_op1.
2474 (emit_scc_insn, emit_conditional_branch_insn): New.
2475 (emit_v9_brxx): Make static. Remove useless assertion.
2476 (sparc_emit_float_lib_cmp): Return RTL instead of calling
2477 emit_cmp_insn.
2478 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
2479 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
2480 sparc_emit_float_lib_cmp): Adjust prototype.
2481 (emit_scc_insn, emit_conditional_branch_insn): New.
2482 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
2483 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
2484 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
2485 iterators to the top.
2486 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
2487 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 2488 snedi_special_trunc): Delete.
fbdf817d 2489 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 2490 and snedi_special_trunc.
fbdf817d
UB
2491 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
2492 cbranchdi4, cbranch<F:mode>4): New.
2493 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
2494 here. Use gen_compare_reg instead of gen_compare_operator.
2495 (conditional_trap): Replace with...
2496 (ctrapsi4, ctrapdi4): ... this.
2497 (stack_protect_test): Use cbranchcc4.
2498
2499 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
2500 argument to rtx.
2501 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
2502 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
2503 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
2504 from operands[0] or operands[3] depending on is_set.
2505 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
2506 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
2507 cmpdf, bCC), sCC: Remove.
2508 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
2509 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
2510 cstoredf4): New.
2511 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
2512 spu_emit_branch_or_set.
2513
2514 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
2515 Add two arguments.
2516 * config/stormy16/stormy16.h (xstormy16_compare_op0,
2517 xstormy16_compare_op1): Delete.
2518 * config/stormy16/stormy16.c (xstormy16_compare_op0,
2519 xstormy16_compare_op1): Delete.
2520 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
2521 Adjust calls.
2522 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
2523 (cmphi, cmpsi, bCC): Remove.
2524
2525 * config/v850/v850.md (tstsi, cmpsi): Fold into...
2526 (*cmpsi): ... this one.
2527 (cbranchsi4, cstoresi4): New.
2528 (bCC expanders): Delete.
2529 (sCC insns): Fold into...
2530 (*setcc): ... this one.
2531 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
2532 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
2533 (movsicc): Simplify.
2534 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
2535
fbdf817d
UB
2536 * config/vax/vax-protos.h (cond_name): New.
2537 (vax_output_conditional_branch): Remove.
2538 * config/vax/vax.c (cond_name): New.
2539 (vax_output_conditional_branch): Remove.
2540 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
2541 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
2542 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
2543 (bit<VAXint>): Wrap source with (compare).
2544 (b<code> and following unnamed pattern): Rename to *branch and
2545 *branch_reversed. Change macroization to match_operator.
2546 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
2547
2548 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
2549 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
2550 Change last argument to machine_mode.
2551 (xtensa_expand_scc): Add machine_mode argument.
2552 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
2553 (gen_conditional_move, xtensa_expand_conditional_branch,
2554 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
2555 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
2556 Adjust operand numbers.
2557 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
2558 Delete.
2559 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
2560 (cmpsi, cmpsf, b<code>, s<code>): Delete.
2561 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 2562
16670495
PB
25632009-05-12 Paolo Bonzini <bonzini@gnu.org>
2564
2565 * optabs.c (prepare_cmp_insn): Temporarily disable test that
2566 causes spurious differences between trunk and cond-optab branch.
2567
4a4a4e99
AO
25682009-05-12 Alexandre Oliva <aoliva@redhat.com>
2569
2570 PR target/37137
2571 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
2572
72b9acff
AO
25732009-05-12 Alexandre Oliva <aoliva@redhat.com>
2574
2575 * tree.c (iterative_hash_pointer): Delete.
2576 (iterative_hash_expr): Short-circuit handling of NULL pointer.
2577 Hash UIDs and versions of SSA names. Don't special-case built-in
2578 function declarations.
2579
b7dd69ac
ILT
25802009-05-11 Ian Lance Taylor <iant@google.com>
2581
2582 PR bootstrap/40103
2583 * graphite.c: Force -Wc++-compat to only be a warning before
2584 #including "cloog/cloog.h".
2585
ed102b70
MJ
25862009-05-11 Martin Jambor <mjambor@suse.cz>
2587
2588 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
2589
08f1af2e
JH
25902009-05-11 Jan Hubicka <jh@suse.cz>
2591
2592 * tree-ssa-loop-ivcanon.c: Include target.h
2593 (struct loop_size): new structure.
2594 (constant_after_peeling): New predicate.
2595 (tree_estimate_loop_size): New function.
2596 (estimated_unrolled_size): Rewrite for new estimates.
2597 (try_unroll_loop_completely): Use new estimates.
2598 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
2599
a7d39bd3
AP
26002009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
2601
2602 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
2603 libcpp interface change.
2604 (spu_macro_to_expand): Likewise.
2605
f5a1f0d0
PB
26062009-05-11 Paolo Bonzini <bonzini@gnu.org>
2607
2608 PR tree-optimization/40026
2609 * gimplify.c (gimplify_init_constructor): Change initial conditional
2610 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
2611 optimize_compound_literals_in_ctor.
2612
c260f01f
NS
26132009-05-11 Nathan Sidwell <nathan@codesourcery.com>
2614
2615 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
2616 New devices.
2617 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
2618
df398a37
L
26192009-05-11 H.J. Lu <hongjiu.lu@intel.com>
2620
2621 * tree-vect-data-refs.c (vect_analyze_group_access): Use
2622 HOST_WIDE_INT for gap.
2623
4da39468
IR
26242009-05-11 Ira Rosen <irar@il.ibm.com>
2625
2626 PR tree-optimization/40074
2627 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
2628 account in group size and step comparison.
2629
4effdf02
RG
26302009-05-11 Richard Guenther <rguenther@suse.de>
2631
2632 * passes.c (init_optimization_passes): Strip now incorrect comment.
2633 (execute_function_todo): Do not set PROP_alias.
2634 * tree-pass.h (PROP_alias): Remove.
2635 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
2636 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
2637 * tree-nrv.c (pass_return_slot): Likewise.
2638 * tree-object-size.c (pass_object_sizes): Likewise.
2639 * tree-ssa-dom.c (pass_dominator): Likewise.
2640 (pass_phi_only_cprop): Likewise.
2641 * tree-ssa-dse.c (pass_dse): Likewise.
2642 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
2643 (pass_cselim): Likewise.
2644 * tree-ssa-pre.c (pass_pre): Likewise.
2645 (pass_fre): Likewise.
2646 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
2647 * tree-ssa-sink.c (pass_sink_code): Likewise.
2648 * tree-stdarg.c (pass_stdarg): Likewise.
2649 * tree-tailcall.c (pass_tail_calls): Likewise.
2650 * tree-vrp.c (pass_vrp): Likewise.
2651
24b97832
ILT
26522009-05-10 Ian Lance Taylor <iant@google.com>
2653
2654 * basic-block.h (enum profile_status): Break out of struct
2655 control_flow_graph.
2656 * cgraph.h (struct inline_summary): Break out of struct
2657 cgraph_local_info.
2658 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
2659 of struct cgraph_order_sort.
fbdf817d 2660 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
2661 * cse.c (struct branch_path): Break out of struct
2662 cse_basic_block_data.
2663 * except.h (enum eh_region_type): Break out of struct eh_region.
2664 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 2665 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
2666 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
2667 ggc_pch_data.
fbdf817d
UB
2668 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
2669 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
2670 * sched-int.h (enum post_call_group): New enum, broken out of
2671 struct deps.
2672 (struct deps_reg): Break out of struct deps.
2673 * target.h (struct asm_int_op): Break out of struct gcc_target.
2674 * tree-eh.c (struct goto_queue_node): Break out of struct
2675 leh_tf_state.
2676 * tree-inline.h (enum copy_body_cge_which): Break out of
2677 copy_body_data.
2678 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
2679
2680 * c-decl.c (in_struct, struct_types): New static variables.
2681 (pushtag): Add loc parameter. Change all callers.
2682 (lookup_tag): Add ploc parameter. Change all callers.
2683 (check_compound_literal_type): New function.
2684 (parser_xref_tag): Add loc parameter. Change all callers. If
2685 -Wc++-compat, warn about struct/union/enum types defined within a
2686 struct or union.
2687 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
2688 and loc parameters. Change all callers. Change error calls to
2689 error_at, using loc. For a redefinition, if the location of the
2690 original definition is known, report it. Set in_struct and
fbdf817d 2691 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
2692 (finish_struct): Add new parameters enclosing_in_struct and
2693 enclosing_struct_types. Change all callers. Set
2694 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
2695 in the struct. If in a struct, add this struct to struct_types.
2696 (start_enum): Add loc parameter. Change all callers. Use
2697 error_at for errors, using loc. For a redefinition, if the
2698 location of the original definition is known, report it. If in a
2699 struct, add this enum type to struct_types. If -Wc++-compat warn
2700 if in sizeof, typeof, or alignof.
fbdf817d
UB
2701 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
2702 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
2703 (c_parser_enum_specifier): Get enum location for start_enum.
2704 (c_parser_struct_or_union_specifier): Get struct location for
2705 start_struct. Save in_struct and struct_types status between
2706 start_struct and finish_struct.
2707 (c_parser_cast_expression): Get location of cast.
2708 (c_parser_alignof_expression): Get location of type.
2709 (c_parser_postfix_expression): Likewise.
2710 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
2711 parameter. Change all callers. Call check_compound_literal_type.
2712 Use type_loc for error about variable size type.
2713 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
2714 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
2715 (c_cast_expr): Add loc parameter. Change all callers. If
2716 -Wc++-compat, warn about defining a type in a cast.
2717 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
2718 (start_enum, start_struct, finish_struct): Update declarations.
2719 (parser_xref_tag, c_cast_expr): Update declarations.
2720 (check_compound_literal_type): Declare.
2721
7a2738fa
BE
27222009-05-11 Ben Elliston <bje@au.ibm.com>
2723
2724 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
2725 for recent libcpp interface change.
2726 (rs6000_macro_to_expand): Likewise.
2727
af618949
MM
27282009-05-10 Michael Matz <matz@suse.de>
2729
2730 PR target/40031
2731 * config/arm/arm.c (require_pic_register): Emit on entry edge,
2732 not at entry of function.
2733
b7d7a473
RG
27342009-05-10 Richard Guenther <rguenther@suse.de>
2735
2736 PR tree-optimization/40081
2737 Revert
2738 * tree-sra.c (instantiate_element): Instantiate scalar replacements
2739 using the main variant of the element type. Do not fiddle with
2740 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
2741
2742 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
2743 structs with volatile fields.
2744
078c3644
JH
27452009-05-10 Jan Hubicka <jh@suse.cz>
2746
2747 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
2748 (estimate_move_cost): Assert that it does not get called for
2749 VOID_TYPE_P.
078c3644
JH
2750 (estimate_num_insns): Skip VOID types in argument handling.
2751 (optimize_inline_calls): Delete unreachable blocks and verify that
2752 callgraph is valid.
2753
39ff5a96
JH
27542009-05-10 Jan Hubicka <jh@suse.cz>
2755
2756 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
2757 * cgraph.c (cgraph_mark_address_taken_node): New function.
2758 (dump_cgraph_node): Dump new flag.
2759 * cgraph.h (struct cgraph_node): Add address_taken.
2760 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
2761 * ipa.c (cgraph_postorder): Prioritize functions with address taken
2762 since new direct calls can be born.
2763
9a0c6187
JM
27642009-05-10 Joseph Myers <joseph@codesourcery.com>
2765
2766 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
2767 tok->val.node.node.
2768
4b685e14
JH
27692009-05-10 Jan Hubicka <jh@suse.cz>
2770
2771 PR middle-end/40084
fb0be169
EB
2772 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
2773 argument; rewrite.
4b685e14
JH
2774 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
2775 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
2776 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
2777 (fold_marked_statements): Update call to
2778 cgraph_update_edges_for_call_stmt.
4b685e14 2779
29d08eba
JM
27802009-05-10 Joseph Myers <joseph@codesourcery.com>
2781
2782 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
2783 identifiers in diagnostics.
2784 * config/arm/arm.c (arm_handle_fndecl_attribute,
2785 arm_handle_isr_attribute): Likewise.
2786 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 2787 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
2788 * config/bfin/bfin.c (handle_int_attribute,
2789 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
2790 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
2791 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
2792 Likewise.
2793 * config/darwin.c (darwin_handle_kext_attribute,
2794 darwin_handle_weak_import_attribute): Likewise.
2795 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
2796 h8300_handle_eightbit_data_attribute,
2797 h8300_handle_tiny_data_attribute): Likewise.
2798 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 2799 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
2800 * config/i386/winnt.c (ix86_handle_shared_attribute,
2801 ix86_handle_selectany_attribute): Likewise.
2802 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
2803 * config/m32c/m32c.c (function_vector_handler): Likewise.
2804 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
2805 m68hc11_handle_fntype_attribute): Likewise.
2806 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
2807 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
2808 * config/mips/mips.c (mips_insert_attributes,
2809 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
2810 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
2811 rs6000_handle_struct_attribute): Likewise.
2812 * config/sh/sh.c (sh_insert_attributes,
2813 sh_handle_resbank_handler_attribute,
2814 sh_handle_interrupt_handler_attribute,
2815 sh2a_handle_function_vector_handler_attribute,
2816 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
2817 Likewise.
2818 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
2819 * config/spu/spu.c (spu_handle_fndecl_attribute,
2820 spu_handle_vector_attribute): Likewise.
2821 * config/stormy16/stormy16.c
2822 (xstormy16_handle_interrupt_attribute): Likewise.
2823 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
2824 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
2825
f41c4af3
JM
28262009-05-10 Joseph Myers <joseph@codesourcery.com>
2827
782dc37a 2828 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
2829 (pp_translate_identifiers): New.
2830 (pp_identifier): Only conditionally translate identifier to locale
2831 character set.
2832 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
2833 (pp_base_tree_identifier): Only conditionally translate identifier
2834 to locale character set.
2835 * c-pretty-print.c (M_): Define.
2836 (pp_c_type_specifier, pp_c_primary_expression): Mark English
2837 fragments for conditional translation with M_.
2838 * tree-pretty-print.c (maybe_init_pretty_print): Disable
2839 identifier translation.
2840
896d7dbd
RG
28412009-05-10 Richard Guenther <rguenther@suse.de>
2842
2843 PR tree-optimization/40081
2844 * tree-sra.c (instantiate_element): Instantiate scalar replacements
2845 using the main variant of the element type. Do not fiddle with
2846 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
2847
9a23acef
JH
28482009-05-09 Jan Hubicka <jh@suse.cz>
2849
2850 PR middle-end/40080
2851 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
2852 indirect calls; verify cgraph afterwards.
2853
d563610d
JH
28542009-05-09 Jan Hubicka <jh@suse.cz>
2855
2856 PR bootstrap/40082
2857 * ipa.c (update_inlined_to_pointer): New function.
2858 (cgraph_remove_unreachable_nodes): Use it.
2859
f08a18d0
JH
28602009-05-09 Jan Hubicka <jh@suse.cz>
2861
2862 * tree-eh.c (struct leh_state): Remove prev_try.
2863 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
2864 not track prev_try.
2865 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
2866 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
2867 remove_eh_handler_and_replace, foreach_reachable_handler,
2868 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
2869 * except.h (struct eh_region): Remove eh_region_u_cleanup.
2870 (gen_eh_region_cleanup): Update prototype.
2871
0afd7219
JH
28722009-05-09 Jan Hubicka <jh@suse.cz>
2873
2874 PR middle-end/40043
2875 * except.c (copy_eh_region): Always set prev_try.
2876 (redirect_eh_edge_to_label): Find outer try.
2877 (foreach_reachable_handler): When looking for prev try
2878 handle case where previous try is not going to be taken.
2879
ad6c0864
MM
28802009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
2881
2882 PR tree-optimization/40049
2883 * tree-vect-stmts.c (vectorizable_operation): If the machine has
2884 only vector/vector shifts, convert the type of the constant to the
2885 appropriate type to avoid building incorrect trees, which
2886 eventually have problems with garbage collection.
2887
c94f9067
JM
28882009-05-08 Joseph Myers <joseph@codesourcery.com>
2889
2890 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
2891 -1 for complex floating-point types if honoring signed zeros.
2892
9187e02d
JH
28932009-05-08 Jan Hubicka <jh@suse.cz>
2894
20acb8a2
EB
2895 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
2896 argument; handle correctly when profile is absent.
9187e02d
JH
2897 (build_cgraph_edges): Update.
2898 (rebuild_cgraph_edges): Update.
20acb8a2
EB
2899 * cgraph.c: Do not include varray.h.
2900 (cgraph_set_call_stmt_including_clones): New function.
2901 (cgraph_create_edge_including_clones): Likewise
2902 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
2903 (cgraph_update_edges_for_call_stmt): Handle clones.
2904 (cgraph_remove_node): Handle clone tree.
2905 (cgraph_remove_node_and_inline_clones): New function.
2906 (dump_cgraph_node): Dump clone tree.
2907 (cgraph_clone_node): Handle clone tree.
20acb8a2 2908 (clone_function_name): Bring here from tree-inline.c.
9187e02d 2909 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
2910 * cgraph.h (ipa_replace_map): Move here from ipa.h.
2911 (cgraph_clone_info): New function.
9187e02d 2912 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
2913 (cgraph_remove_node_and_inline_clones,
2914 cgraph_set_call_stmt_including_clones,
2915 cgraph_create_edge_including_clones,
2916 cgraph_create_virtual_clone): Declare.
9187e02d
JH
2917 (cgraph_function_versioning): Use VEC argument.
2918 (compute_call_stmt_bb_frequency): Update prototype.
2919 (cgraph_materialize_all_clones): New function.
2920 * ipa-cp.c (ipcp_update_cloned_node): Remove.
2921 (ipcp_create_replace_map): Update to VECtors.
2922 (ipcp_update_callgraph): Use virtual clones.
2923 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
2924 (ipcp_update_profiling): Do not update local profiling.
2925 (ipcp_insert_stage): Use VECtors and virtual clones.
2926 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
2927 (clone_of_p): New function.
2928 (cgraph_preserve_function_body_p): Use clone tree.
2929 (cgraph_optimize): Materialize clones.
2930 (cgraph_function_versioning): Update for VECtors.
2931 (save_inline_function_body): Use clone tree.
20acb8a2
EB
2932 (cgraph_materialize_clone): New function.
2933 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
2934 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
2935 * ipa.c: Include gimple.h.
2936 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
2937 * ipa-prop.c (ipa_note_param_call): Update call to
2938 compute_call_stmt_bb_frequencycall.
9187e02d 2939 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 2940 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
2941 (copy_bb): Handle updating of clone tree; add new edge when new call
2942 appears.
2943 (expand_call_inline): Be strict about every call having edge.
2944 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
2945 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
2946 (tree_function_versioning): Use VECtors; always remove unreachable
2947 blocks and fold conditionals.
2948 * tree-inline.h: Do not include varray.h.
9187e02d
JH
2949 (tree_function_versioning): Remove.
2950 * Makefile.in (GTFILES): Remove tree-inline.c
2951 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
2952 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
2953 tree.
9187e02d 2954
9b86d6bb
L
29552009-05-08 H.J. Lu <hongjiu.lu@intel.com>
2956 Andrew Morrow <acm@google.com>
2957
2958 PR c/36892
2959 * c-common.c (c_common_attribute_table): Permit deprecated
2960 attribute to take an optional argument.
2961 (handle_deprecated_attribute): If the optional argument to
2962 __attribute__((deprecated)) is not a string ignore the attribute
2963 and emit a warning.
2964
2965 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
2966 * c-typeck.c (build_component_ref): Likewise.
2967 (build_external_ref): Likewise.
2968
2969 * toplev.c (warn_deprecated_use): Add an attribute argument.
2970 Emit the message associated with __attribute__((deprecated)).
2971
2972 * toplev.h (warn_deprecated_use): Updated.
2973
2974 * doc/extend.texi: Document new optional parameter to
2975 __attribute__((deprecated))
2976
82ad047f
ME
29772009-05-08 Michael Eager <eager@eagercon.com>
2978
2979 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
2980 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
2981
788d3075
RG
29822009-05-08 Richard Guenther <rguenther@suse.de>
2983
2984 PR tree-optimization/40062
2985 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
2986 Avoid exponential behavior.
2987
00952e97
PB
29882009-05-08 Paolo Bonzini <bonzini@gnu.org>
2989
2990 PR rtl-optimization/33928
2991 PR 26854
2992 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
2993 process_uses, build_single_def_use_links): New.
2994 (update_df): Update use_def_ref.
2995 (forward_propagate_into): Use get_def_for_use instead of use-def
2996 chains.
2997 (fwprop_init): Call build_single_def_use_links and let it initialize
2998 dataflow.
2999 (fwprop_done): Free use_def_ref.
3000 (fwprop_addr): Eliminate duplicate call to df_set_flags.
3001 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
3002 df_rd_simulate_one_insn): New.
3003 (df_rd_bb_local_compute_process_def): Update head comment.
3004 (df_chain_create_bb): Use the new RD simulation functions.
3005 * df.h (df_rd_simulate_artificial_defs_at_top,
3006 df_rd_simulate_one_insn): New.
3007 * opts.c (decode_options): Enable fwprop at -O1.
3008 * doc/invoke.texi (-fforward-propagate): Document this.
3009
2ca862e9
JM
30102009-05-08 Joseph Myers <joseph@codesourcery.com>
3011
3012 PR c/24581
3013 * c-typeck.c (build_binary_op): Handle arithmetic between one real
3014 and one complex operand specially.
3015 * tree-complex.c (some_nonzerop): Do not identify a real value as
3016 zero if flag_signed_zeros.
3017
3e807ffc
PB
30182009-05-08 Paolo Bonzini <bonzini@gnu.org>
3019
3020 PR rtl-optimization/33928
7925c06c 3021 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 3022
1bfdbb29
PB
30232009-05-08 Paolo Bonzini <bonzini@gnu.org>
3024
3025 PR rtl-optimization/33928
e913423f
EB
3026 * loop-invariant.c (struct use): Add addr_use_p.
3027 (struct def): Add n_addr_uses.
3028 (struct invariant): Add cheap_address.
3029 (create_new_invariant): Set cheap_address.
3030 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
3031 (record_uses): Pass df_ref to record_use.
3032 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
3033 used only as such.
1bfdbb29 3034
702cb2a0
KK
30352009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
3036
3037 * config/sh/sh.c: Do not include c-pragma.h.
3038
5e8df753
AP
30392009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
3040
3041 * config/spu/spu.c: Remove include of c-common.h.
3042
6ec637a4
JJ
30432009-05-07 Janis Johnson <janis187@us.ibm.com>
3044
3045 PR c/39037
3046 * c-common.h (mark_valid_location_for_stdc_pragma,
3047 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
3048 clear_float_const_decimal64, float_const_decimal64_p): New.
3049 * c.opt (Wunsuffixed-float-constants): New.
3050 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
3051 unsuffixed float constant, handle new warning.
3052 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
3053 * c-decl.c (c_scope): New flag float_const_decimal64.
3054 (set_float_const_decimal64, clear_float_const_decimal64,
3055 float_const_decimal64_p): New.
3056 (push_scope): Set new flag.
3057 * c-parser.c (c_parser_translation_unit): Mark when it's valid
3058 to use STDC pragmas.
3059 (c_parser_external_declaration): Ditto.
3060 (c_parser_compound_statement_nostart): Ditto.
3061 * c-pragma.c (valid_location_for_stdc_pragma,
3062 mark_valid_location_for_stdc_pragma,
3063 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
3064 handle_pragma_float_const_decimal64): New.
3065 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
3066 * cp/semantics.c (valid_location_for_stdc_pragma_p,
3067 set_float_const_decimal64, clear_float_const_decimal64,
3068 float_const_decimal64_p): New dummy functions.
3069 * doc/extend.texi (Decimal Float): Remove statement that the
3070 pragma, and suffix for double constants, are not supported.
3071 * doc/invoke.texi (Warning Options): List new option.
3072 (-Wunsuffixed-float-constants): New.
3073
45b9b2e9
SB
30742009-05-08 Steven Bosscher <steven@gcc.gnu.org>
3075
3076 * config/i386/i386.c: Do not include c-common.h.
3077
e71da632
MH
30782009-05-07 Mark Heffernan <meheff@google.com>
3079
3080 * doc/invoke.texi (Debugging Options): Document change of debugging
3081 dump location.
e913423f 3082 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
3083 aux_base_name directory.
3084
fe4c7bc6
HS
30852009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
3086
3087 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
3088 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
3089
3b3e44eb
RAE
30902009-05-07 Rafael Avila de Espindola <espindola@google.com>
3091
3092 * Makefile.in (install-plugin): Simplify a bit.
3093
fac41238
PB
30942009-05-07 Paolo Bonzini <bonzini@gnu.org>
3095
3096 * Makefile.in (OBJS-common): Add regcprop.o.
3097 (regcprop.o): New.
3098 * timevar.def (TV_CPROP_REGISTERS): New.
3099 * regrename.c (regrename_optimize): Return 0.
3100 (rest_of_handle_regrename): Delete.
3101 (pass_rename_registers): Point to regrename_optimize.
3102 (struct value_data_entry, struct value_data,
3103 kill_value_one_regno, kill_value_regno, kill_value,
3104 set_value_regno, init_value_data, kill_clobbered_value,
3105 kill_set_value, kill_autoinc_value, copy_value,
3106 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
3107 replace_oldest_value_reg, replace_oldest_value_addr,
3108 replace_oldest_value_mem, copyprop_hardreg_forward_1,
3109 debug_value_data, validate_value_data): Move...
3110 * regcprop.c: ... here.
3111 (rest_of_handle_cprop): Delete.
3112 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
3113
472e0df9
JJ
31142009-05-07 Jakub Jelinek <jakub@redhat.com>
3115
3116 PR middle-end/40057
3117 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
3118 GEN_INT for 1 << bitnum.
3119 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
3120 build_int_cst_type.
3121
0d50d55a
UB
31222009-05-07 Uros Bizjak <ubizjak@gmail.com>
3123
3124 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 3125 Remove wrong description of "nand" operation.
0d50d55a 3126
22f597f1
RG
31272009-05-06 Richard Guenther <rguenther@suse.de>
3128 Adam Nemet <anemet@caviumnetworks.com>
3129
3130 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
3131 comment. Add that if LHS is not a gimple register, then RHS1 has
3132 to be a single object (GIMPLE_SINGLE_RHS).
3133
641cac0b
AN
31342009-05-06 Adam Nemet <anemet@caviumnetworks.com>
3135
3136 * expr.c (get_def_for_expr): Move it up in the file.
3137 (store_field): When expanding a bit-field store, look at the
3138 defining gimple stmt for the masking conversion.
3139
5a5c6435
JJ
31402009-05-06 Janis Johnson <janis187@us.ibm.com>
3141
3142 PR middle-end/39986
3143 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
3144 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
3145 32-bit memcpy into long.
3146
96474f36
JJ
31472009-05-06 Jakub Jelinek <jakub@redhat.com>
3148
3149 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
3150 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
3151 new_reg_loc_descr.
3152 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
3153 instead of appending DW_OP_deref*.
3154
529ff441
MM
31552009-05-06 Michael Matz <matz@suse.de>
3156
3157 PR middle-end/40021
3158 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
3159 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
3160
9419a9fd
RAE
31612009-05-06 Rafael Avila de Espindola <espindola@google.com>
3162
3163 * Makefile.in (install-plugin): Fix srcdir handling.
3164
fff1894c
AB
31652009-05-06 Andrey Belevantsev <abel@ispras.ru>
3166
3167 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
3168 when processing for not_regs_needed bitmap.
3169 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
3170 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
3171 handling it for rhs.
3172
700ae70c
L
31732009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3174
ab3426a7 3175 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 3176 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
3177 * config/i386/predicates.md (incdec_operand): Likewise.
3178 (aligned_operand): Likewise.
3179 * config/i386/sse.md (divv8sf3): Likewise.
3180 (sqrtv8sf2): Likewise.
3181
67341fb5
L
31822009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3183
3184 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
3185
3186 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
3187
87946f42
L
31882009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3189
3190 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
3191 ssemodesuffixf2c with avxmodesuffixf2c.
3192
1202aec1
JM
31932009-05-06 Joseph Myers <joseph@codesourcery.com>
3194
3195 PR c/40032
aa016ff7 3196 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 3197
6e57a01d
JJ
31982009-05-05 Jakub Jelinek <jakub@redhat.com>
3199
3200 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
3201 (struct tree_base): Adjust spacing for 8 bit boundaries.
3202 (struct tree_decl_common): Add decl_by_reference_flag bit.
3203 (DECL_BY_REFERENCE): Adjust.
3204 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
3205 print DECL_BY_REFERENCE bit.
3206 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
3207 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
3208 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
3209 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
3210 unconditionally.
3211
32f579f6
JJ
3212 PR middle-end/39666
3213 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
3214 range of the type, but default label is missing, add it with one
3215 of the existing labels instead of adding a new label for it.
3216
617ab743
JM
32172009-05-05 Joseph Myers <joseph@codesourcery.com>
3218
3219 * dwarf.h: Remove.
3220
bf016de8
RAE
32212009-05-05 Rafael Avila de Espindola <espindola@google.com>
3222
3223 * Makefile.in (enable_plugin, plugin_includedir): New.
3224 (install): Depend on install-plugin.
3225 (PLUGIN_HEADERS): New.
3226 (install-plugin): New.
3227 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
3228
7f8fdb9f
RG
32292009-05-05 Richard Guenther <rguenther@suse.de>
3230
3231 PR tree-optimization/40022
3232 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
3233 the only vuse.
3234 (phivn_valid_p): Fix tuplification error, simplify.
3235 (phiprop_insert_phi): Add dumps.
3236 (propagate_with_phi): Simplify.
3237
8d972839
RG
32382009-05-05 Richard Guenther <rguenther@suse.de>
3239
3240 PR middle-end/40023
aa016ff7 3241 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 3242
66ba9b0b
SZ
32432009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
3244
3245 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
3246 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
3247 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
3248 block_ultimate_origin): Rearrange the declarations line to match the
3249 comment that indicates the .c file which the functions are defined.
3250 (dwarf2out_*, set_decl_rtl): Add comment.
3251 (get_base_address): Adjust comment.
3252 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
3253 declarations line and add comment.
3254 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 3255
4f1e4960
JM
32562009-05-04 Joseph Myers <joseph@codesourcery.com>
3257
3258 * attribs.c (decl_attributes): Use %qE for identifiers in
3259 diagnostics.
3260 * cgraphunit.c (verify_cgraph_node): Translate function names to
3261 locale character set in diagnostics.
3262 * coverage.c (get_coverage_counts): Use %qE for identifiers in
3263 diagnostics.
3264 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
3265 Document that functions are named in UTF-8.
3266 * expr.c (expand_expr_real_1): Translate function names to locale
3267 character set in diagnostics.
3268 * gimplify.c (omp_notice_variable, omp_is_private,
3269 gimplify_scan_omp_clauses): Use %qE for identifiers in
3270 diagnostics.
3271 * langhooks.c (lhd_print_error_function): Translate function names
3272 to locale character set.
3273 * langhooks.h (decl_printable_name): Document that return value is
3274 in internal character set.
3275 * stmt.c: Include pretty-print.h
3276 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
3277 diagnostics.
3278 (resolve_operand_name_1): Translate named operand name to locale
3279 character set.
3280 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
3281 diagnostics.
3282 * toplev.c (announce_function): Translate function names to locale
3283 character set.
3284 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
3285 (default_tree_printer): Use pp_identifier or translate identifiers
3286 to locale character set. Mark "<anonymous>" for translation.
3287 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
3288 for identifiers in diagnostics.
3289 * tree.c (handle_dll_attribute): Use %qE for identifiers in
3290 diagnostics.
3291 * varasm.c (output_constructor): Use %qE for identifiers in
3292 diagnostics.
3293
40540e68
RAE
32942009-05-04 Rafael Avila de Espindola <espindola@google.com>
3295
3296 * configure.ac: use ` ` instead of $()
3297 * configure: Regenerate.
3298
33fc884c
BE
32992009-05-05 Ben Elliston <bje@au.ibm.com>
3300
3301 * config/pa/linux-atomic.c: Eliminate conditional include of
3302 errno.h on non-LP64 systems to simplify build requirements.
3303
88388a52
JM
33042009-05-04 Joseph Myers <joseph@codesourcery.com>
3305
3306 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
3307 diagnostics.
3308 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
3309 and pass value to identifier_to_locale.
3310 (warn_variable_length_array): Make name a tree.
3311 (grokdeclarator): Separate diagnostic texts for named and unnamed
3312 declarators. Use %qE for named declarators.
3313 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
3314 diagnostics.
3315 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
3316 identifiers in diagnostics.
3317 * c-typeck.c (push_member_name, start_init): Pass identifiers to
3318 identifier_to_locale. Mark "anonymous" strings for translation.
3319
960c5c79
ME
33202009-05-04 Michael Eager <eager@eagercon.com>
3321
3322 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 3323 address for DImode/DFmode only if double-precision FP regs.
960c5c79 3324
d083fbba
ME
33252009-05-04 Michael Eager <eager@eagercon.com>
3326
3327 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
3328 TARGET_SINGLE_FLOAT check.
3329
c3ba8d32
ME
33302009-05-04 Michael Eager <eager@eagercon.com>
3331
3332 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
3333
edce9f18
ME
33342009-05-04 Michael Eager <eager@eagercon.com>
3335
3336 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
3337 * config/rs6000/t-xilinx: New
3338
506d7b68
PB
33392009-05-04 Paolo Bonzini <bonzini@gnu.org>
3340
e913423f 3341 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
3342 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
3343 * gcc/explow.c (memory_address): Use target hook.
3344 * gcc/targhooks.c (default_legitimize_address): New.
3345 * gcc/targhooks.h (default_legitimize_address): New.
3346 * gcc/target.h (legitimize_address): New.
3347 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
3348 (TARGET_INITIALIZER): Include it.
3349 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
3350
3351 * config/bfin/bfin-protos.h (legitimize_address): Remove.
3352 * config/bfin/bfin.c (legitimize_address): Remove.
3353 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
3354 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
3355 Remove.
506d7b68
PB
3356 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
3357 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
3358
3359 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
3360 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
3361 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
3362 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
3363 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
3364 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
3365 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
3366 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
3367 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
3368 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
3369 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
3370 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
3371 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
3372 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
3373 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
3374 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
3375 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
3376 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
3377 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
3378 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
3379 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
3380 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
3381 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
3382
3383 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
3384 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
3385 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
3386 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
3387 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
3388 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
3389 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
3390 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
3391 (thumb_legitimize_address): Delete.
3392 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
3393 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
3394 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
3395 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
3396 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
3397 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
3398 Delete.
3399 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
3400 Delete.
506d7b68
PB
3401
3402 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
3403 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
3404 * config/m32r/m32r.c (m32r_legitimize_address): New.
3405 * config/m68k/m68k.c (m68k_legitimize_address): New.
3406 * config/score/score.c (score_legitimize_address): Standardize.
3407 * config/score/score3.c (score3_legitimize_address): Standardize.
3408 * config/score/score3.h (score3_legitimize_address): Adjust.
3409 * config/score/score7.c (score7_legitimize_address): Standardize.
3410 * config/score/score7.h (score7_legitimize_address): Adjust.
3411 * config/sh/sh.c (sh_legitimize_address): New.
3412 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
3413
3414 * gcc/config/s390/s390.c (legitimize_address): Rename to...
3415 (s390_legitimize_address): ... this.
3416 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
3417 (sparc_legitimize_address): ... this.
3418 * gcc/config/i386/i386.c (legitimize_address): Rename to...
3419 (ix86_legitimize_address): ... this.
3420 * gcc/config/avr/avr.c (legitimize_address): Rename to...
3421 (avr_legitimize_address): ... this.
3422 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
3423 (mn10300_legitimize_address): ... this.
3424 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
3425 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
3426 (alpha_expand_mov): Adjust call.
3427
3428 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
3429 * config/spu/spu.c (spu_legitimize_address): Likewise.
3430 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
3431 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
3432
a3af5087
JM
34332009-05-04 Joseph Myers <joseph@codesourcery.com>
3434
3435 * intl.c (locale_encoding, locale_utf8): New.
3436 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
3437 * intl.h (locale_encoding, locale_utf8): Declare.
3438 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
3439 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
3440 New.
3441 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
3442 argument.
3443 (pp_tree_identifier): Define to call pp_base_tree_identifier.
3444 (pp_base_tree_identifier): Declare as function.
3445 (identifier_to_locale): Declare.
3446 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 3447 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 3448
ea5cd5f1
RG
34492009-05-04 Richard Guenther <rguenther@suse.de>
3450
3451 PR middle-end/40015
3452 * builtins.c (fold_builtin_memory_op): Do not decay to element
3453 type if the size matches the whole array.
3454
ddc2690a
KH
34552009-05-04 Kazu Hirata <kazu@codesourcery.com>
3456
3457 * expmed.c (synth_mult): When trying out a shift, pass the result
3458 of a signed shift.
3459
ef268d34
KH
34602009-05-04 Kazu Hirata <kazu@codesourcery.com>
3461
3462 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
3463 (shiftsub1_cost): New.
3464 (init_expmed): Compute shiftsub1_cost.
3465 (synth_mult): Optimize multiplications by constants of the form
3466 -(2^^m-1) for some constant positive integer m.
3467
255d3827
RG
34682009-05-03 Richard Guenther <rguenther@suse.de>
3469
3470 PR c/39983
3471 * c-typeck.c (array_to_pointer_conversion): Do not built
3472 ADDR_EXPRs of arrays of pointer-to-element type.
3473 * c-gimplify.c (c_gimplify_expr): Revert change fixing
3474 up wrong ADDR_EXPRs after-the-fact.
3475 * c-common.c (strict_aliasing_warning): Strip pointer
3476 conversions for obtaining the original type.
3477 * builtins.c (fold_builtin_memset): Handle array types.
3478 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
3479 and array types
3480
16c33770
RG
34812009-05-03 Richard Guenther <rguenther@suse.de>
3482
3483 PR middle-end/23329
3484 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
3485 Do not lose casts from array types with unknown extent to array
3486 types with known extent.
3487 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
3488 alias set compatibility.
3489
62a67c94
MLI
34902009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
3491
3492 * flags.h (extra_warnings): Delete.
3493 * toplev.c (process_options): Handle Wuninitialized here.
3494 * opts.c (extra_warnings): Delete.
3495 (set_Wextra): Delete.
3496 (common_handle_option): -Wextra can be handled automatically.
3497 * c-opts.c (c_common_handle_option): Delete obsolete code.
3498 (c_common_post_options): Simplify comment.
3499 * common.opt (W): Add Var.
3500 (Wextra): Add Var.
3501 (Wuninitialized): Initialize to -1.
3502
8c7926c4
AN
35032009-05-03 Adam Nemet <anemet@caviumnetworks.com>
3504 Richard Guenther <rguenther@suse.de>
3505
3506 * expr.c (get_def_for_expr): New function.
3507 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
3508 SSA rather than trees.
3509 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
3510 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
3511
fa5da7de
JM
35122009-05-03 Joseph Myers <joseph@codesourcery.com>
3513
3514 * c-common.c (reswords): Add _Imaginary.
3515 * c-common.c (enum rid): Add RID_IMAGINARY.
3516
2ddd5020
PB
35172009-05-03 Paolo Bonzini <bonzini@gnu.org>
3518
3519 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
3520 Patch by Richard Guenther.
3521
aea88c05
AS
35222009-05-03 Anatoly Sokolov <aesok@post.ru>
3523
3524 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
3525 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
3526 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
3527 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
3528 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
3529 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
3530 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
3531 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
3532 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
3533 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
3534 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
3535 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
3536 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
3537 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
3538 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
3539 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
3540 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
3541 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
3542
85e59f3a
RG
35432009-05-02 Richard Guenther <rguenther@suse.de>
3544
3545 PR tree-optimization/39940
3546 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
3547 doing so.
3548
4636b850
RG
35492009-05-02 Richard Guenther <rguenther@suse.de>
3550
3551 PR middle-end/40001
3552 * tree-ssa.c (execute_update_addresses_taken): Properly check
3553 if we can mark a variable DECL_GIMPLE_REG_P.
3554 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
3555 back to the end of the function.
3556 (is_gimple_reg_type): Remove complex type special casing.
3557 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
3558 if not optimizing.
3559
5e10cb5a
BE
35602009-05-02 Ben Elliston <bje@au.ibm.com>
3561
3562 * doc/collect2.texi (Collect2): Document search path behaviour
3563 when configured with --with-ld.
3564
048bf48b
JH
35652009-05-02 Jan Hubicka <jh@suse.cz>
3566
3567 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
3568 parameter; update callers.
aa016ff7
UB
3569 (coalesce_cost_edge): EH edges are costier because they needs
3570 splitting even if not critical and even more costier when there are
3571 multiple EH predecestors.
048bf48b 3572
d5c5f9ab
JH
35732009-05-02 Jan Hubicka <jh@suse.cz>
3574
3575 * except.c (remove_eh_handler_and_replace): Handle updating after
3576 removing TRY blocks.
3577
2ed1959a
EB
35782009-05-02 Eric Botcazou <ebotcazou@adacore.com>
3579
3580 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
3581
d363a7e7
SB
35822009-05-02 Steven Bosscher <steven@gcc.gnu.org>
3583
3584 * varasm.c: Do not include c-pragma.h.
3585 * attribs.c: Do not incude c-common.h.
3586
9c3d55b4
MM
35872009-05-01 Michael Matz <matz@suse.de>
3588
3589 * calls.c (initialize_argument_information): Handle SSA names like
3590 decls with a non MEM_P DECL_RTL.
3591
ea264ca5
SB
35922009-05-01 Steven Bosscher <steven@gcc.gnu.org>
3593
3594 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
3595 * ipa-utils.c: Likewise.
3596 * ipa-type-escape.c: Likewise.
3597 * cgraphunit.c Do not include c-common.h.
3598 * ipa-pure-const.c: Likewise.
3599 * tree-if-conv.c: Likewise.
3600 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
3601 * ipa-struct-reorg.c: Likewise.
3602 * tree-nomudflap.c: Likewise.
3603 * tree-ssa-structalias.c: Likewise.
3604
6c5d4d1a
SB
36052009-05-01 Steven Bosscher <steven@gcc.gnu.org>
3606
3607 * store-motion.c: Many cleanups to make this pass a first-class
3608 citizen instead of an appendix to gcse load motion. Add TODO list
3609 to make this pass faster/cleaner/better.
3610
3611 (struct ls_expr): Post gcse.c-split cleanups.
3612 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
3613 "stores" field to "avail_stores".
3614 (pre_ldst_mems): Rename to store_motion_mems.
3615 (pre_ldst_table): Rename to store_motion_mems_table.
3616 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
3617 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
3618 (ldst_entry): Rename to st_expr_entry, update users.
3619 (free_ldst_entry): Rename to free_st_expr_entry, update users.
3620 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
3621 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
3622 update caller.
6c5d4d1a
SB
3623 (first_ls_expr): Rename to first_st_expr, update users.
3624 (next_ls_expr): Rename to next_st_expr, update users.
3625 (print_ldst_list): Rename to print_store_motion_mems. Print names of
3626 fields properly for store motion instead of names inherited from load
3627 motion in gcse.c.
3628 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
3629 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
3630 are done with it.
3631
3632 (ae_kill): Rename to st_kill, update users.
3633 (ae_gen): Rename to st_avloc, update users.
3634 (transp): Rename to st_transp, update users.
3635 (pre_insert_map): Rename to st_insert_map, update users.
3636 (pre_delete_map): Rename to st_delete_map, update users.
3637 (insert_store, build_store_vectors, free_store_memory,
3638 one_store_motion_pass): Update for abovementioned changes.
3639
3640 (gcse_subst_count, gcse_create_count): Remove.
3641 (one_store_motion_pass): New statistics counters "n_stores_deleted"
3642 and "n_stores_created", local variables.
3643
3644 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
3645 use for_each_rtx.
3646
3647 (regvec, compute_store_table_current_insn): Remove.
3648 (reg_set_info, reg_clear_last_set): Remove.
3649 (compute_store_table): Use DF caches instead of local dataflow
3650 solvers.
3651
b02cec6e
JM
36522009-05-01 Joseph Myers <joseph@codesourcery.com>
3653
3654 * c-objc-common.c (c_tree_printer): Print identifiers with
3655 pp_identifier, not pp_string. Mark "({anonymous})" for
3656 translation.
3657 * c-pretty-print.c (pp_c_ws_string): New.
3658 (pp_c_cv_qualifier, pp_c_type_specifier,
3659 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
3660 pp_c_storage_class_specifier, pp_c_function_specifier,
3661 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
3662 pp_c_primary_expression, pp_c_postfix_expression,
3663 pp_c_unary_expression, pp_c_shift_expression,
3664 pp_c_relational_expression, pp_c_equality_expression,
3665 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
3666 use pp_string and pp_c_ws_string in place of pp_identifier and
3667 pp_c_identifier for non-identifiers. Mark English strings for
3668 translation.
3669 * c-pretty-print.h (pp_c_ws_string): Declare.
3670
cd533689
PP
36712009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
3672 Roland McGrath <roland@redhat.com>
3673
aa016ff7 3674 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
3675 (ENABLE_LD_BUILDID): New configuration option.
3676 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
3677 (LINK_BUILDID_SPEC): New macro.
3678 (init_spec): If defined, prepend it between LINK_EH_SPEC and
3679 link_spec.
3680 * doc/install.texi: Document --enable-linker-build-id option.
3681 * configure: Rebuild.
3682 * config.in: Rebuild.
3683
ba6adec4
AN
36842009-04-30 Adam Nemet <anemet@caviumnetworks.com>
3685
3686 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
3687 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
3688 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
3689 MIPS_GP_SAVE_AREA_SIZE.
3690 * config/mips/mips.c (struct mips_frame_info): Update comment
3691 before arg_pointer_offset and hard_frame_pointer_offset.
3692 (mips_compute_frame_info): Update diagram before function: to
3693 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
3694 indicate the position of frame_pointer_rtx with -fstack-protector and
3695 to show args_size. Don't allocate cprestore area for leaf functions
3696 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
3697 cprestore_size.
3698 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
3699
48f5b722
MM
37002009-04-30 Michael Matz <matz@suse.de>
3701
ba6adec4
AN
3702 PR tree-optimization/39955
3703 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 3704
b65d6744
DK
37052009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
3706
3707 * ira.c (setup_cover_and_important_classes): Use safe macro
3708 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
3709 directly.
3710 * genpreds.c (write_tm_preds_h): Output suitable definition of
3711 REG_CLASS_FOR_CONSTRAINT.
3712
f136c8ae
RAE
37132009-04-30 Rafael Avila de Espindola <espindola@google.com>
3714
3715 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
3716 instead of an int.
3717 * bitmap.c (bitmap_descriptor): Likewise.
3718 * ggc-common.c (loc_descriptor): Likewise.
3719 * varray.c (varray_descriptor): Likewise.
3720 * vec.c (vec_descriptor): Likewise.
3721
43fcece8 37222009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
3723
3724 * Makefile.in (dce.o): Add $(EXCEPT_H).
3725 * dce.c: Include except.h and delete redundant vector definitions.
3726 (deletable_insn_p): Return false for non-call insns that can throw
3727 if DF is running.
3728
df35c271
SB
37292009-04-30 Steven Bosscher <steven@gcc.gnu.org>
3730
3731 * gcse.c (ae_gen): Remove.
3732 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
3733 and make non-static function to make it available in store-motion.c.
3734 Update call sites with search-and-replace.
3735 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
3736 extract_mentioned_regs, extract_mentioned_regs_helper,
3737 find_moveable_store, compute_store_table, load_kills_store, find_loads,
3738 store_killed_in_insn, store_killed_after, store_killed_before,
3739 build_store_vectors, insert_insn_start_basic_block, insert-store,
3740 remove_reachable_equiv_notes, replace_store_insn, delete_store,
3741 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
3742 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
3743 * store-motion.c: ...new file. Also copy data structures from gcse.c
3744 and clean up to remove parts not used by store motion.
3745 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
3746 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
3747
f711a87a
RR
37482009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3749
3750 PR target/38571
3751 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
3752 when optimizing for size.
3753
fa5ed76e
HPN
37542009-04-30 Hans-Peter Nilsson <hp@axis.com>
3755
3756 * gcse.c (gcse_constant_p): Fix typo in last change.
3757
0acbbdb0
RAE
37582009-04-30 Rafael Avila de Espindola <espindola@google.com>
3759
3760 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
3761
82f5c05d
AK
37622009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
3763
3764 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
3765
6d8f135b
JW
37662009-04-29 James E. Wilson <wilson@codesourcery.com>
3767
3768 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
3769 CONST_HIGH_PART result.
3770
c21ca196
AS
37712009-04-29 Anatoly Sokolov <aesok@post.ru>
3772
3773 * config/avr/avr.c (initial_elimination_offset): Rename to
3774 avr_initial_elimination_offset.
3775 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
3776 change return type to bool.
3777 (avr_can_eliminate): New function.
3778 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
3779 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
3780 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 3781 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
3782 avr_initial_elimination_offset.
3783 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
3784 (avr_initial_elimination_offset): Define.
3785
2a34bece 37862009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 3787 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
3788
3789 PR rtl-optimization/39938
3790 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
3791 * cfgrtl.c: Include insn-attr.h.
3792 (rest_of_pass_free_cfg): New function.
3793 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
3794 * resource.c (init_resource_info): Remove call to df_analyze.
3795
5dc7911e
RG
37962009-04-29 Richard Guenther <rguenther@suse.de>
3797
3798 PR target/39943
3799 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
3800 allow conversion to signed integers.
3801
1fe479fd
RG
38022009-04-29 Richard Guenther <rguenther@suse.de>
3803
3804 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
3805 shifts of floating point vectors if the shift amount is
3806 a constant multiple of the element size.
3807
8e001680
AK
38082009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
3809 Michael Matz <matz@suse.de>
3810
3811 PR middle-end/39927
3812 PR bootstrap/39929
3813 * tree-outof-ssa.c (emit_partition_copy): New function.
3814 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
3815 insert_part_to_rtx_on_edge): Perform the partition base var
3816 copy using emit_partition_copy.
3817 (insert_value_copy_on_edge): Convert constants to the right mode.
3818 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
3819 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
3820
e50e3081
BS
38212009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3822
3823 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
3824 scan backwards to try to find a constant to initialize it.
3825
4e5d521b
BS
3826 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
3827 insn before the loop_end instruction, don't look past labels.
3828
7c90021d
RG
38292009-04-29 Richard Guenther <rguenther@suse.de>
3830
3831 PR middle-end/39937
3832 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
3833 loose type conversions.
3834 (forward_propagate_addr_expr): Fix tuplification bug. Remove
3835 stmts only if there are no uses of its definition.
3836
97a988bc
BS
38372009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3838
3839 * config/bfin/bfin.h (splitting_loops): Declare.
3840 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
3841 Reorder bit definitions to be ascending.
3842 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
3843 * config/bfin/bfin.c (splitting_loops): New variable.
3844 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
3845 (struct loop_info): Remove members INIT and LOOP_INIT.
3846 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
3847 the LSETUP sequence. Allow LC to be loaded from any register, but
3848 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
3849 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
3850 set to 1.
3851 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
3852 of reload_completed.
aa016ff7 3853
97a988bc
BS
3854 From Jie Zhang:
3855 * config/bfin/bfin.md (movsi_insn): Refine constraints.
3856
0c463e16
RAE
38572009-04-29 Rafael Avila de Espindola <espindola@google.com>
3858
3859 * Makefile.in (PLUGIN_VERSION_H): New.
3860 (OBJS-common): Remove plugin-version.o.
3861 (plugin.o): Depend on (PLUGIN_VERSION_H).
3862 (plugin-version.o): Remove.
3863 * configure: Regenerate
3864 * configure.ac: Create plugin-version.h.
3865 * gcc-plugin.h (plugin_gcc_version): Remove.
3866 (plugin_default_version_check): Change signature.
3867 * plugin-version.c: Remove.
3868 * plugin.c: Include plugin-version.h.
3869 (str_plugin_gcc_version_name): Remove.
3870 (try_init_one_plugin): Pass gcc version to plugin_init.
3871 (plugin_default_version_check): Both gcc and plugin versions are now
3872 arguments.
3873
307e7eab
BS
38742009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3875
3876 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
3877 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
3878 Remove special case testing for last insn of inner loops. Don't fail
3879 if the loop ends with a jump, emit an extra nop instead.
307e7eab 3880
c5d96723
BS
3881 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
3882 DREGS rather than comparing directly. Remove code that tries to
3883 account for latencies.
3884
de0b4ad5
RG
38852009-04-29 Richard Guenther <rguenther@suse.de>
3886
3887 PR tree-optimization/39941
3888 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
3889 eliminating an indirect call.
3890
3a19701a
RG
38912009-04-29 Richard Guenther <rguenther@suse.de>
3892
3893 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
3894 parameter. Allow invariants as base if !require_lvalue.
3895 (verify_gimple_assign_single): Adjust.
3896
a0a31d1e
BS
38972009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
3898
3899 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
3900 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
3901 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
3902 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
3903 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
3904 a VEC_SELECT.
aa016ff7
UB
3905 * config/bfin/bfin.c (bfin_expand_builtin,
3906 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 3907
795bd26a
RG
39082009-04-28 Richard Guenther <rguenther@suse.de>
3909
3910 * tree-vect-loop.c (get_initial_def_for_induction): Use
3911 correct types for pointer increment.
3912
04be270f
KG
39132009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3914
3915 * toplev.c (print_version): Update GMP version string calculation.
3916
e1a3b85c
EB
39172009-04-28 Eric Botcazou <ebotcazou@adacore.com>
3918
3919 PR rtl-optimization/39938
3920 * resource.c (init_resource_info): Add call to df_analyze.
3921
8224166e
UB
39222009-04-28 Uros Bizjak <ubizjak@gmail.com>
3923
3924 * config/alpha/alpha.md (usegp): Cast the result of
3925 alpha_find_lo_sum_using_gp to enum attr_usegp.
3926 * config/alpha/alpha.c (override_options): Remove end-of-structure
3927 marker element from cpu_table. Use array size of cpu_table to handle
3928 -mcpu and -mtune options.
3929 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
3930
c5f0fe67
JM
39312009-04-28 Joseph Myers <joseph@codesourcery.com>
3932
3933 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
3934 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
3935 tune_32 and tune_64.
3936 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3937 support on PowerPC.
3938 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
3939 * config/rs6000/option-defaults.h: ... here. New file.
3940 (OPT_64, OPT_32): Define.
3941 (MASK_64BIT): Define to 0 if not already defined.
3942 (OPT_ARCH64, OPT_ARCH32): Define.
3943 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
3944 and tune_64.
3945
0c48a567
RR
39462009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3947
3948 * config/arm/arm.c (arm_override_options): Emit error on using
3949 fpa with AAPCS.
3950
f1028b9d
UB
39512009-04-28 Uros Bizjak <ubizjak@gmail.com>
3952
3953 PR rtl-optimization/39914
3954 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3955 registers for allocnos created from user-defined variables only
3956 when not optimizing.
3957
e0dd989a
RG
39582009-04-28 Richard Guenther <rguenther@suse.de>
3959
3960 PR middle-end/39937
3961 * fold-const.c (fold_binary): Use distribute_real_division only
3962 on float types.
3963
9a17c91d
SE
39642009-04-28 Steve Ellcey <sje@cup.hp.com>
3965
3966 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
3967 add hpux-stdint.h to tm_file.
3968 (hppa[12]*-*-hpux11*): Ditto.
3969 (ia64*-*-hpux*): Ditto.
3970 * config/hpux-stdint.h: New.
60839f5d 3971 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 3972 __STDC_EXT__ for all compiles.
60839f5d
EB
3973 * config/pa/pa-hpux.h: Ditto.
3974 * config/pa/pa-hpux10.h: Ditto.
3975 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 3976
af04e659
CM
39772009-04-28 Catherine Moore <clm@codesourcery.com>
3978
3979 * debug.h (set_name): Add comment.
3980
04ef80ce
AP
39812009-04-28 Andrew Pinski <pinskia@gmail.com>
3982
3983 PR target/39929
3984 * config/darwin.c (machopic_gen_offset): Check
3985 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
3986 * config/arm/arm.c (require_pic_register): Likewise.
3987
65ad77af
PB
39882009-04-28 Paolo Bonzini <bonzini@gnu.org>
3989
8224166e
UB
3990 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
3991 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
3992 m32c_promote_prototypes): Delete.
65ad77af 3993
1b15a008
MM
39942009-04-28 Michael Matz <matz@suse.de>
3995
3996 PR middle-end/39922
3997 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
3998 constants.
3999
7569a6cc
RG
40002009-04-28 Richard Guenther <rguenther@suse.de>
4001
f1028b9d 4002 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 4003
ead204d9
RR
40042009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4005
4006 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
4007 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
4008 * config/arm/arm-tune.md: Regenerate.
4009
f2c45f08 40102009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 4011
f2c45f08
AM
4012 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
4013 block if there are complex incoming edges.
4014 (sel_merge_blocks): Remove useless assert.
4015 (sel_redirect_edge_and_branch): Check that edge was redirected.
4016 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
4017 (sel_find_rgns): Delete declaration.
4018 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
4019 the region when it is not a preheader.
4020
7a00d767
UB
40212009-04-28 Uros Bizjak <ubizjak@gmail.com>
4022
4023 PR c/39323
4024 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
4025
448ee662
RG
40262009-04-28 Richard Guenther <rguenther@suse.de>
4027
4028 * tree.h (SSA_NAME_VALUE): Remove.
4029 (struct tree_ssa_name): Remove value_handle member.
4030 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
4031 array for jump threading.
4032 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
4033 SSA_NAME_VALUEs.
4034 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
4035 * tree-flow.h (threadedge_initialize_values): Declare.
4036 (threadedge_finalize_values): Likewise.
4037 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
4038 (SSA_NAME_VALUE): Define.
4039 (threadedge_initialize_values): New function.
4040 (threadedge_finalize_values): Likewise.
4041 * tree-ssa-dom.c (ssa_name_values): New global variable.
4042 (SSA_NAME_VALUE): Define.
f1028b9d 4043 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 4044
8644a673
IR
40452009-04-28 Ira Rosen <irar@il.ibm.com>
4046
4047 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4048 Use REPORT_VECTORIZED_LOCATIONS instead
4049 REPORT_VECTORIZED_LOOPS.
4050 * tree-vectorizer.c (vect_verbosity_level): Make static.
4051 (vect_loop_location): Rename to vect_location.
4052 (vect_set_verbosity_level): Update comment.
4053 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
4054 and vect_location.
4055 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
4056 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
4057 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
4058 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
4059 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 4060 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 4061 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
4062 REPORT_UNVECTORIZED_LOCATIONS.
4063 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
4064 and vect_used_in_loop and to vect_unused_in_scope and
4065 vect_used_in_scope.
4066 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
4067 (vect_verbosity_level): Remove declaration.
4068 (vect_analyze_operations): Likewise.
4069 (vect_analyze_stmt): Declare.
4070 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
4071 REPORT_UNVECTORIZED_LOCATIONS.
4072 (vect_get_loop_niters): Fix indentation.
4073 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
4074 (vect_analyze_loop_operations): New function.
4075 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
4076 vect_analyze_operations.
4077 (vect_is_simple_reduction): Use new names.
4078 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
4079 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
4080 to specify whether the data references can be a part of interleaving
4081 chain.
8644a673
IR
4082 (vect_analyze_data_ref_dependence): Use new names.
4083 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
4084 (vect_create_addr_base_for_vector_ref): Remove redundant code.
4085 * tree-vect-patterns.c (widened_name_p): Use new names.
4086 (vect_recog_dot_prod_pattern): Likewise.
4087 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
4088 (process_use, vect_mark_stmts_to_be_vectorized,
4089 vect_model_simple_cost, vect_model_store_cost,
4090 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
4091 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
4092 vectorizable_operation, vectorizable_type_demotion,
4093 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
4094 vectorizable_condition): Likewise.
4095 (vect_analyze_operations): Split into vect_analyze_loop_operations
4096 and ...
4097 (vect_analyze_stmt): ... new function.
4098 (new_stmt_vec_info): Use new names.
4099 (vect_is_simple_use): Use new names and fix comment.
4100 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
4101 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
4102
b91322f2
UB
41032009-04-28 Uros Bizjak <ubizjak@gmail.com>
4104
4105 PR target/39911
4106 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
4107 and integer modes for x87 operands. Do not ICE for unsupported size,
4108 generate error instead. Generate error for unsupported operand types.
4109 ['z']: Do not handle HImode memory operands specially. Warning
4110 for floating-point operands. Fallthru to 'Z' for unsupported operand
4111 types. Do not ICE for unsupported size, generate error instead.
4112 (output_387_binary_op): Use %Z to output operands.
4113 (output_fp_compare): Ditto.
4114 (output_387_reg_move): Ditto.
4115
b2ed71b6
BE
41162009-04-28 Ben Elliston <bje@au.ibm.com>
4117
4118 PR c++/35652
4119 Revert:
4120
4121 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4122
4123 * builtins.c (c_strlen): Do not warn here.
4124 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
4125 * c-common.c (pointer_int_sum): Take an explicit location.
4126 Warn about offsets out of bounds.
4127 * c-common.h (pointer_int_sum): Adjust declaration.
4128
81f40b79
ILT
41292009-04-27 Ian Lance Taylor <iant@google.com>
4130
4131 * collect2.c (is_ctor_dtor): Change type of ret field in struct
4132 names to symkind.
4133 * dce.c (run_fast_df_dce): Change type of old_flags to int.
4134 * df-core.c (df_set_flags): Change return type to int. Change
4135 type of old_flags to int.
4136 (df_clear_flags): Likewise.
4137 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
4138 (df_get_conditional_uses): Likewise.
4139 * df.h (df_set_flags, df_clear_flags): Update declarations.
4140 * dwarf2out.c (struct indirect_string_node): Change type of form
4141 field to enum dwarf_form.
4142 (AT_string_form): Change return type to enum dwarf_form.
4143 * fixed-value.c (fixed_compare): Add cast to enum type.
4144 * fwprop.c (update_df): Change 0 to VOIDmode.
4145 * gensupport.c: Change 0 to UNKNOWN.
4146 * gimple.h (gimple_cond_code): Add cast to enum type.
4147 * haifa-sched.c (reemit_notes): Add cast to enum type.
4148 * hooks.c (hook_int_void_no_regs): Remove function.
4149 * hooks.h (hook_int_void_no_regs): Remove declaration.
4150 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 4151 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
4152 * real.c (real_arithmetic): Add cast to enum type.
4153 (real_compare): Likewise.
4154 * target.h (struct gcc_target): Change return type of
4155 branch_target_register_class to enum reg_class.
4156 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
4157 default_branch_target_register_class.
7a00d767 4158 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 4159 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 4160 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
4161 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
4162 cast to int.
4163 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
4164 ERROR_MARK.
4165 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
4166 vect_uninitialized_def. Change 0 to ERROR_MARK.
4167 * tree-vect-stmts.c (supportable_widening_operation): Don't
4168 initialize icode1 and icode2.
7a00d767 4169 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
4170 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
4171 and to STD_C89.
4172 (cmn_err_flag_specs): Change 0 to STD_C89.
4173 (cmn_err_char_table): Likewise.
4174 * config/arm/arm.c (get_arm_condition_code): Change type of code
4175 to enum arm_cond_code.
4176 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
4177 (IWMMXT_BUILTIN2): Likewise.
4178 (neon_builtin_type_bits): Don't define typedef.
4179 (neon_builtin_datum): Change type of bits field to int.
4180 (arm_expand_neon_args): Add cast to enum type.
4181 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
4182 TLS_MODEL_NONE.
4183 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
4184 casts to enum type.
4185 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
4186 MIPS_FP_COND_f.
4187 * config/mips/mips.md (jal_macro): Return enum constant.
4188 (single_insn): Likewise.
4189 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
4190 CODE_FOR_nothing.
4191 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4192 casts to enum type.
4193 * config/s390/s390.c (s390_tune_flags): Change type to int.
4194 (s390_arch_flags): Likewise.
7a00d767 4195 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
4196 * config/s390/s390.h (s390_tune_flags): Update declaration.
4197 (s390_arch_flags): Likewise.
4198 * config/sh/sh.c (prepare_move_operands): Compare
4199 tls_symbolic_operand result with enum constant.
4200 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
4201 (sh_expand_prologue): Add cast to enum type.
4202 (sh_expand_epilogue): Likewise.
4203 (tls_symbolic_operand): Change return type to enum tls_model.
4204 (fpscr_set_from_mem): Add cast to enum type.
4205 (legitimize_pic_address): Compare tls_symbolic_operand result with
4206 enum constant.
4207 (sh_target_reg_class): Change return type to enum reg_class.
4208 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
4209 PROCESSOR_xxx.
7a00d767
UB
4210 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
4211 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
4212 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
4213 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
4214 (delayed_branch, tls_call_delay): Likewise.
4215 (eligible_for_sibcall_delay): Likewise.
4216 (eligible_for_return_delay): Likewise.
4217 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
4218 (spu_expand_builtin_1): Likewise.
4219
4220 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
4221 for all types of conversions.
4222 (output_init_element): Issue -Wc++-compat warning if needed when
4223 initializing a bitfield with enum type.
4224 * c-parser.c (c_parser_expression): Set original_type to
4225 original_type of right hand operand of comman operator.
4226
e4ae5e77
RW
42272009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4228
4229 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
4230 grammar nits.
7a00d767 4231 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
4232 * doc/cpp.texi (Standard Predefined Macros)
4233 (Implementation-defined behavior): Likewise.
7a00d767 4234 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
4235 * doc/gimple.texi (GIMPLE Exception Handling)
4236 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 4237 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
4238 * doc/invoke.texi (Warning Options, Optimize Options)
4239 (AVR Options, Darwin Options): Likewise.
4240 (Optimize Options): Reformulate -fwhole-program description.
4241 * doc/loop.texi (Lambda): Likewise.
4242 * doc/md.texi (Output Template, Define Constraints)
4243 (Standard Names, Insn Splitting): Likewise.
4244 * doc/options.texi (Option properties): Likewise.
4245 * doc/passes.texi (Tree-SSA passes): Likewise.
4246 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
4247 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
4248 (File Names and DBX): Likewise.
4249 * doc/trouble.texi (Incompatibilities): Likewise.
4250
1883802f 42512009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
4252
4253 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
4254 instruction is correct.
4255
1883802f 42562009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
4257
4258 Allow non-constant arguments to conversion intrinsics.
4259 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
4260 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
4261 * spu.c (print_operand): Handle 'v' and 'w'.
4262 (exp2_immediate_p, spu_gen_exp2): Define.
4263 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
4264 spu_convtf_1): Update parameter descriptions.
7a00d767 4265 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
4266 * constraints.md ('v', 'w'): New.
4267 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
4268 Remove.
4269 (i2f, I2F): New define_mode_attr.
4270 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
4271 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
4272 fixuns_truncv4sfv4si2): Update to use mode attribute.
4273 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
4274 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
4275 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
4276 patterns for combine.
4277
5f39ad47
SB
42782009-04-27 Steven Bosscher <steven@gcc.gnu.org>
4279
4280 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
4281 (cprop, hoist, pre, store_motion): New debug counters.
4282 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
4283 is not an RTL pass anymore.
4284 (pass_profiling): Remove extern decl for pass removed in 2005.
4285 (pass_gcse, pass_jump_bypass): Remove.
4286 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
4287 to 0 for clean state.
4288 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
4289 * cse.c (gate_handle_cse_after_global_opts,
4290 rest_of_handle_cse_after_global_opts): New functions.
4291 (pass_cse_after_global_opts): New pass, does local CSE.
4292 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
4293 (TV_CPROP): New timevar.
4294 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
4295 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
4296 (gcse_main, recompute_all_luids): Remove.
4297 (compute_hash_table_work): Call max_reg_num instead of reading
4298 max_gcse_regno.
4299 (cprop_jump): Don't set run_jump_opt_after_gcse.
4300 (constprop_register): Always allow to alter jumps.
4301 (cprop_insn): Likewise.
4302 (do_local_cprop): Likewise.
4303 (local_cprop_pass): Likewise. Return non-zero if something changed.
4304 (cprop): Remove function, fold interesting bits into one_cprop_pass.
4305 (find_implicit_sets): Add note about missed optimization opportunity.
4306 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
4307 pass_rtl_cprop execute function.
4308 Don't bother tracking the pass number, each pass gets its own dumpfile
4309 now anyway.
4310 Always allow to alter jumpsand bypass jumps.
4311 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
4312 will just find no suitable set.
4313 (pre_edge_insert): Fix dumping, this function is for PRE only.
4314 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
4315 pass_rtl_pre execute function.
4316 (hoist_code): Return non-zero if something changed. Keep track of
4317 substitutions and insertions for statistics gathering similar to PRE.
4318 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
4319 called from the pass_rtl_hoist execute function. Show pass statistics.
4320 (compute_store_table): Use max_reg_num directly instead of using the
4321 formerly global max_gcse_regno.
4322 (build_store_vectors): Likewise.
4323 (replace_store_insn): Fix dumping.
4324 (store_motion): Rename to ...
4325 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
4326 pass, called from the pass_rtl_store_motion execute function. Keep
4327 track of substitutions and insertions for statistics gathering similar
4328 to PRE.
4329 (bypass_jumps): Remove, fold interesting bits into ...
4330 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
4331 from the pass_rtl_cprop execute function.
4332 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
4333 pass_jump_bypass): Remove.
4334 (gate_handle_gcse, rest_of_handle_gcse): Remove.
4335 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
4336 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
4337 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
4338 (gate_rtl_store_motion, execute_rtl_store_motion,
4339 pass_rtl_store_motion): New.
4340 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
4341 make it clear that -fcse-skip-blocks is a no-op for backward compat.
4342 * passes.c (init_optimization_passes): Remove pass_gcse and
4343 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
4344 and cse_after_global_opts in place of pass_gcse. Schedule cprop
4345 instead of pass_jump_bypass.
4346
c685de4a
RG
43472009-04-27 Richard Guenther <rguenther@suse.de>
4348
4349 PR middle-end/39928
4350 * gimplify.c (gimplify_expr): If we are required to create
4351 a temporary make sure it ends up as register.
4352
72d41f29
L
43532009-04-27 H.J. Lu <hongjiu.lu@intel.com>
4354
4355 PR target/39903
4356 * config/i386/i386.c (construct_container): Don't call
4357 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
4358 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
4359
e97809c6
MM
43602009-04-27 Michael Matz <matz@suse.de>
4361
4362 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
4363 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
4364 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
4365 (dump_replaceable_exprs): Take a bitmap.
4366 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
4367 array.
4368 (expand_gimple_basic_block): Likewise.
4369 * tree-ssa-ter.c (struct temp_expr_table_d): Make
4370 replaceable_expressions member a bitmap.
4371 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
4372 (mark_replaceable): Likewise.
4373 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
4374 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
4375
211ca15c
RG
43762009-04-27 Richard Guenther <rguenther@suse.de>
4377
4378 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
4379 (verify_stmts): Dispatch to gimple/type verification code.
4380 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
4381 issue with call argument types.
4382
fca5f3d1
MM
43832009-04-27 Michael Matz <matz@suse.de>
4384
4385 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
4386 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
4387 to above.
4388
a1fa3e79 43892009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 4390 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
4391
4392 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
4393 a label's basic block.
4394 (mark_target_live_regs): Tidy and rework obsolete comments.
4395 Change back DF problem to LIVE. If a label starts a basic block,
4396 assume that all registers that used to be live then still are.
4397 (init_resource_info): If a label starts a basic block, set its
4398 BLOCK_FOR_INSN accordingly.
4399 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
4400
33b223c0
RG
44012009-04-27 Richard Guenther <rguenther@suse.de>
4402
4403 * tree-flow-inline.h (function_ann): Remove.
4404 (get_function_ann): Likewise.
4405 * tree-dfa.c (create_function_ann): Remove.
4406 * tree-flow.h (struct static_var_ann_d): Remove.
4407 (struct function_ann_d): Likewise.
4408 (union tree_ann_d): Remove fdecl member.
4409 (function_ann_t): Remove.
4410 (function_ann, get_function_ann, create_function_ann): Remove
4411 declarations.
4412
e3136fa2
UB
44132009-04-27 Uros Bizjak <ubizjak@gmail.com>
4414
4415 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
4416
f87c9042
JH
44172009-04-27 Jan Hubicka <jh@suse.cz>
4418
4419 * ipa-pure-const.c (struct funct_state_d): New fields
4420 state_previously_known, looping_previously_known; remove
4421 state_set_in_source.
4422 (analyze_function): Use new fields.
4423 (propagate): Avoid assumption that state_set_in_source imply
4424 nonlooping.
4425
4426 * tree-ssa-loop-niter.c (finite_loop_p): New function.
4427 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
4428 * cfgloop.h (finite_loop_p): Declare.
4429
33abd718
MM
44302009-04-26 Michael Matz <matz@suse.de>
4431
e3136fa2 4432 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 4433
ddc34084
MM
44342009-04-26 Michael Matz <matz@suse.de>
4435
4436 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
4437 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
4438 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
4439 pass_mark_used_blocks): Remove.
4440 * tree-optimize.c (pass_free_datastructures,
4441 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
4442 * passes.c (init_optimization_passes): Don't call
4443 pass_mark_used_blocks, remove dead code.
4444
1fec7ed4
L
44452009-04-26 H.J. Lu <hongjiu.lu@intel.com>
4446
4447 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
4448 * tree-ssa-live.h (register_ssa_partition): Likewise.
4449
4e3825db
MM
44502009-04-26 Michael Matz <matz@suse.de>
4451
4452 Expand from SSA.
4453 * builtins.c (fold_builtin_next_arg): Handle SSA names.
4454 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
4455 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
4456 SSA names.
4457 (compare_pairs): Swap cost comparison.
4458 (coalesce_ssa_name): Don't use change_partition_var.
4459 * tree-nrv.c (struct nrv_data): Add modified member.
4460 (finalize_nrv_r): Set it.
4461 (tree_nrv): Use it to update statements.
4462 (pass_nrv): Require PROP_ssa.
4463 * tree-mudflap.c (mf_decl_cache_locals,
4464 mf_build_check_statement_for): Use make_rename_temp.
4465 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
4466 * alias.c (find_base_decl): Handle SSA names.
4467 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
4468 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
4469 * rtl.h (set_reg_attrs_for_parm): Declare.
4470 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
4471 to "optimized", remove unused locals at finish.
4472 (execute_free_datastructures): Make global, call
4473 delete_tree_cfg_annotations.
4474 (execute_free_cfg_annotations): Don't call
4475 delete_tree_cfg_annotations.
4476
4477 * ssaexpand.h: New file.
4478 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 4479 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
4480 (expand_expr_real_1): Expand SSA names.
4481 * cfgexpand.c (toplevel): Include ssaexpand.h.
4482 (SA): New global variable.
4483 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
4484 (SSAVAR): New macro.
4485 (set_rtl): New helper function.
4486 (add_stack_var): Deal with SSA names, use set_rtl.
4487 (expand_one_stack_var_at): Likewise.
4488 (expand_one_stack_var): Deal with SSA names.
4489 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
4490 before unique numbers.
4491 (expand_stack_vars): Use set_rtl.
4492 (expand_one_var): Accept SSA names, add asserts for them, feed them
4493 to above subroutines.
4494 (expand_used_vars): Expand all partitions (without default defs),
4495 then only the local decls (ignoring those expanded already).
4496 (expand_gimple_cond): Remove edges when jumpif() expands an
4497 unconditional jump.
4498 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
4499 or remove abnormal edges. Ignore insns setting the LHS of a TERed
4500 SSA name.
4501 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
4502 members of SA; deal with PARM_DECL partitions here; expand
4503 all PHI nodes, free tree datastructures and SA. Commit instructions
4504 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
4505 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
4506 info and statements at start, collect garbage at finish.
4507 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
4508 (VAR_ANN_PARTITION) Remove.
4509 (change_partition_var): Don't declare.
4510 (partition_to_var): Always return SSA names.
4511 (var_to_partition): Only accept SSA names.
4512 (register_ssa_partition): Only check argument.
4513 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
4514 member.
4515 (delete_var_map): Don't free it.
4516 (var_union): Only accept SSA names, simplify.
4517 (partition_view_init): Mark only useful SSA names as used.
4518 (partition_view_fini): Only deal with SSA names.
4519 (change_partition_var): Remove.
4520 (dump_var_map): Use ssa_name instead of partition_to_var member.
4521 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
4522 basic blocks.
4523 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
4524 (struct _elim_graph): New member const_dests; nodes member vector of
4525 ints.
4526 (set_location_for_edge): New static helper.
4527 (create_temp): Remove.
4528 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 4529 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
4530 (new_elim_graph): Allocate const_dests member.
4531 (clean_elim_graph): Truncate const_dests member.
4532 (delete_elim_graph): Free const_dests member.
4533 (elim_graph_size): Adapt to new type of nodes member.
4534 (elim_graph_add_node): Likewise.
4535 (eliminate_name): Likewise.
4536 (eliminate_build): Don't take basic block argument, deal only with
4537 partition numbers, not variables.
4538 (get_temp_reg): New static helper.
4539 (elim_create): Use it, deal with RTL temporaries instead of trees.
4540 (eliminate_phi): Adjust all calls to new signature.
4541 (assign_vars, replace_use_variable, replace_def_variable): Remove.
4542 (rewrite_trees): Only do checking.
4543 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
4544 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
4545 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
4546 contains_tree_r, MAX_STMTS_IN_LATCH,
4547 process_single_block_loop_latch, analyze_edges_for_bb,
4548 perform_edge_inserts): Remove.
4549 (expand_phi_nodes): New global function.
4550 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
4551 functions, initialize new parameter, remember partitions having a
4552 default def.
4553 (finish_out_of_ssa): New global function.
4554 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
4555 don't reset in_ssa_p here, don't disable TER when mudflap.
4556 (pass_del_ssa): Remove.
4557 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
4558 partition members.
4559 (execute_free_datastructures): Declare.
4560 * Makefile.in (SSAEXPAND_H): New variable.
4561 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
4562 * basic-block.h (commit_one_edge_insertion): Declare.
4563 * passes.c (init_optimization_passes): Move pass_nrv and
4564 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
4565 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
4566 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
4567 (redirect_branch_edge): Deal with super block when expanding, split
4568 out jump patching itself into ...
4569 (patch_jump_insn): ... here, new static helper.
4570
17c665a9
MM
45712009-04-26 Michael Matz <matz@suse.de>
4572
4573 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
4574 beyond num_ssa_names.
4575 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
4576 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
4577
92061771
JJ
45782009-04-26 Jakub Jelinek <jakub@redhat.com>
4579
ce372372
JJ
4580 PR inline-asm/39543
4581 * fwprop.c (forward_propagate_asm): New function.
4582 (forward_propagate_and_simplify): Propagate also into __asm, if it
4583 doesn't increase the number of referenced registers.
4584
92061771
JJ
4585 PR c/39889
4586 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
4587
45882009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
4589
4590 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
4591 note_nonlocal_vla_type for nonlocal VLAs.
4592 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
4593 contains_remapped_vars, remap_vla_decls): New functions.
4594 (convert_nonlocal_reference_stmt): If not optimizing, call
4595 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
4596 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
4597 if it wasn't found in var_map.
4598 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
4599 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
4600 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
4601 declare_vars.
4602 * gimplify.c (nonlocal_vlas): New variable.
4603 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
4604 referenced VLAs.
4605 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 4606
4561e242
JJ
4607 * dwarf2out.c (loc_descr_plus_const): New function.
4608 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
4609 mem_loc_descriptor, loc_descriptor_from_tree_1,
4610 descr_info_loc, gen_variable_die): Use it.
4611
a9548ddf
JJ
4612 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
4613 !TREE_STATIC VAR_DECLs.
4614 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
4615 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
4616 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
4617 DECL_BY_REFERENCE is valid.
4618 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
4619 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
4620 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
4621 Copy DECL_BY_REFERENCE.
4622 (struct nesting_copy_body_data): New type.
4623 (nesting_copy_decl): New function.
4624 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
4625 if they have variable length.
4626
10555d08
MM
46272009-04-26 Michael Matz <matz@suse.de>
4628
4629 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
4630 mark new temporaries for renaming.
4631
e11187cc
JM
46322009-04-26 Joseph Myers <joseph@codesourcery.com>
4633
4634 PR c/39581
4635 * c-decl.c (global_bindings_p): Return negative value.
4636 (c_variable_size): New. Based on variable_size from
4637 stor-layout.c.
4638 (grokdeclarator): Call c_variable_size not variable_size.
4639
f6a51d31
UB
46402009-04-26 Uros Bizjak <ubizjak@gmail.com>
4641
4642 * config/i386/i386.c (print_operand) ['z']: Fix typo.
4643
4b97723d
KT
46442009-04-26 Kai Tietz <kai.tietz@onevision.com>
4645
4646 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
4647 Redefine it to just use mingw/include.
4648 (ASM_SPEC): Rules for -m32 and -m64.
4649 (LINK_SPEC): Use Likewise.
4650 (SPEC_32): New define.
4651 (SPEC_64): Likewise.
4652 (SUB_LINK_SPEC): Likewise.
4653 (MULTILIB_DEFAULTS): New define.
4654 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
4655 Add multilib options.
4656 (MULTILIB_DIRNAMES): Likewise.
4657 (MULTILIB_OSDIRNAMES): Likewise.
4658 (LIBGCC): Likewise.
4659 (INSTALL_LIBGCC): Likewise.
4660
991d6621
JM
46612009-04-26 Joseph Myers <joseph@codesourcery.com>
4662
4663 PR c/39556
4664 * c-tree.h (enum c_inline_static_type): New.
4665 (record_inline_static): Declare.
4666 * c-decl.c (struct c_inline_static, c_inline_statics,
4667 record_inline_static, check_inline_statics): New.
4668 (pop_file_scope): Call check_inline_statics.
4669 (start_decl): Call record_inline_static instead of pedwarning
4670 directly for static in inline function.
4671 * c-typeck.c (build_external_ref): Call record_inline_static
4672 instead of pedwarning directly for static referenced in inline
4673 function.
4674
4a81774c
SB
46752009-04-26 Steven Bosscher <steven@gcc.gnu.org>
4676
4677 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
4678 not new but only being rescanned.
4679 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
4680 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
4681 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
4682 record_set_info, compute_set, grealloc): Remove.
4683 (recompute_all_luids): New function.
4684 (gcse_main): Don't compute sets, and don't do related memory
4685 allocations/free-ing. If something changed before the end of the
4686 pass, update LUIDs using recompute_all_luids.
4687 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
4688 (free_gcse_mem): Don't free it either.
4689 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
4690 Use the df insn LUIDs.
4691 (load_killed_in_block): Likewise.
4692 (compute_hash_table_work): Don't compute reg_set_in_block.
4693 (compute_transp): Use DF_REG_DEF_CHAINs.
4694 (local_cprop_pass): Don't use compute_sets and related functions.
4695 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
4696 Use get_max_uid() instead of max_cuid.
4697 (insert_insn_end_basic_block, pre_insert_copy_insn,
4698 update_ld_motion_stores): Don't try to
4699 keep reg_set tables up to date.
4700 (pre_insert_copies): Use df insn LUIDs.
4701 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
4702 (reg_set_info): Don't use extra bitmap argument.
4703 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
4704 information to compute regs_set_in_block.
4705 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
4706 (bypass_jumps): Don't use compute_sets and friends.
4707
e8f99a9d
RW
47082009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4709
4710 PR testsuite/39710
4711 * opts.c (undocumented_msg): Do not leave blank even with
4712 ENABLE_CHECKING.
4713
6895bac8
JM
47142009-04-25 Joseph Myers <joseph@codesourcery.com>
4715
4716 * c-decl.c (build_enumerator): Allow values folding to integer
4717 constants but not integer constant expressions with a pedwarn if
4718 pedantic.
4719
24070fcb
JM
47202009-04-25 Joseph Myers <joseph@codesourcery.com>
4721
4722 PR c/39582
4723 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
4724 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
4725 type is an integer constant.
4726
d6d89aa1
UB
47272009-04-25 Uros Bizjak <ubizjak@gmail.com>
4728
4729 PR target/39897
4730 * config/i386/i386.c (print_operand) ['z']: Revert handling of
4731 HImode operands.
4732
92f6fd0b
JM
47332009-04-25 Joseph Myers <joseph@codesourcery.com>
4734
4735 PR c/39564
4736 * c-decl.c (grokdeclarator): Diagnose declarations of functions
4737 with variably modified return type and no storage class
4738 specifiers, except for the case of nested functions. Distinguish
4739 extern declarations of functions with variably modified return
4740 types from those of objects with variably modified types.
4741
a3710436
JH
47422009-04-25 Jan Hubicka <jh@suse.cz>
4743
4744 * tree.c (list_equal_p): New function.
4745 * tree.h (list_equal_p): Declare.
4746 * coretypes.h (edge_def, edge, const_edge, basic_block_def
4747 basic_block_def, basic_block, const_basic_block): New.
4748 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
4749 (redirect_eh_edge): New function.
4750 (make_eh_edge_update_phi): EH edges are not abnormal.
4751 * except.c: Include tree-flow.h.
4752 (list_match): New function.
4753 (eh_region_replaceable_by_p): New function.
4754 (replace_region): New function.
4755 (hash_type_list): New function.
4756 (hash_eh_region): New function.
4757 (eh_regions_equal_p): New function.
4758 (merge_peers): New function.
4759 (remove_unreachable_regions): Verify EH tree when checking;
4760 merge peers.
4761 (copy_eh_region_1): New function.
4762 (copy_eh_region): New function.
4763 (push_reachable_handler): New function.
4764 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
4765 regions without label but with live RESX.
4766 * except.h (redirect_eh_edge_to_label): New.
4767 * tree-flow.h (redirect_eh_edge): New.
4768 * coretypes.h (edge_def, edge, const_edge, basic_block_def
4769 basic_block_def, basic_block, const_basic_block): Remove.
4770 * Makefile.in (except.o): Add dependency on tree-flow.h
4771 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
4772 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
4773 Remove.
4774
3764d512
EB
47752009-04-25 Eric Botcazou <ebotcazou@adacore.com>
4776
4777 PR bootstrap/39645
4778 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
4779 on the destination of memcpy.
4780
1c62e8f2
PB
47812009-04-25 Paolo Bonzini <bonzini@gnu.org>
4782
4783 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
4784 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
4785 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
4786
496a4ef5
JH
47872009-04-25 Jan Hubicka <jh@suse.cz>
4788
4789 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
4790 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
4791 to be reached by different label than left.
4792 (update_eh_edges): Update comment; remove edge_to_remove if possible
4793 and return true if suceeded.
4794 (cleanup_empty_eh): Accept sharing map; handle shared regions.
4795 (cleanup_eh): Compute sharing map.
4796 * except.c (remove_eh_handler_and_replace): Add argument if we should
4797 update regions.
4798 (remove_unreachable_regions): Update for label sharing.
4799 (label_to_region_map): Likewise.
4800 (get_next_region_sharing_label): New function.
4801 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
4802 prev_try pointers.
4803 (remove_eh_handler): Update.
4804 (remove_eh_region_and_replace_by_outer_of): New function.
4805 * except.h (struct eh_region): Add next_region_sharing_label.
4806 (remove_eh_region_and_replace_by_outer_of,
4807 get_next_region_sharing_label): Declare.
4808 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
4809
48102009-04-25 Jan Hubicka <jh@suse.cz>
4811
4812 * tree-cfg.c (split_critical_edges): Split also edges where we can't
4813 insert code even if they are not critical.
4814
48152009-04-25 Jan Hubicka <jh@suse.cz>
4816
4817 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
4818 (gimple_can_remove_branch_p): EH edges won't remove branch by
4819 redirection.
4820 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
4821 updating of non-abnormal EH edges.
4822 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
4823 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
4824 (split_critical_edges): Split also edges where emitting code on them
4825 will lead to splitting later.
4826
a3a5e3d1
UB
48272009-04-25 Uros Bizjak <ubizjak@gmail.com>
4828 H.J. Lu <hongjiu.lu@intel.com>
4829
4830 PR target/39590
4831 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
4832 the configured assembler supports fildq and fistpq mnemonics.
4833 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
4834 * configure: Regenerated.
4835 * config.in: Ditto.
4836
4837 * config/i386/i386.c (print_operand): Handle 'Z'.
4838 ['z']: Remove handling of special fild/fist suffixes.
4839 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
4840 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
4841 suffix of fild insn.
4842 (*floatsi<mode>2_vector_mixed): Ditto.
4843 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
4844 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
4845 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4846 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
4847 * config/i386/gas.h (GAS_MNEMONICS): Remove.
4848
23750d7f
BE
48492009-04-25 Ben Elliston <bje@au.ibm.com>
4850
4851 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
4852 the source of a set operation.
4853
e6ff3083
AS
48542009-04-25 Anatoly Sokolov <aesok@post.ru>
4855
4856 * target.h (struct gcc_target): Add case_values_threshold field.
4857 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
4858 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
4859 * targhooks.c (default_case_values_threshold): New function.
4860 * targhooks.h (default_case_values_threshold): Declare function.
4861 * stmt.c (expand_case): Use case_values_threshold target hook.
4862 * expr.h (case_values_threshold): Remove declartation.
4863 * expr.c (case_values_threshold): Remove function.
4864 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
4865
4866 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
4867 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
4868 (avr_case_values_threshold): Declare as static.
4869 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
4870
4871 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
4872 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
4873 (mn10300_case_values_threshold): New function.
4874
569c72fc
L
48752009-04-24 H.J. Lu <hongjiu.lu@intel.com>
4876
4877 * ira.c (setup_cover_and_important_classes): Add enum cast.
4878
ff3cb468
VM
48792009-04-24 Vladimir Makarov <vmakarov@redhat.com>
4880
4881 * genpreds.c (write_enum_constraint_num): Output definition of
4882 CONSTRAINT_NUM_DEFINED_P macro.
4883 * ira.c (setup_cover_and_important_classes): Use
4884 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
4885
4f7be849
DD
48862009-04-24 DJ Delorie <dj@redhat.com>
4887
4888 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
4889 __SH2A_SINGLE_ONLY__ also.
4890
735b94a7
SE
48912009-04-24 Steve Ellcey <sje@cup.hp.com>
4892
4893 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
4894 (movdf_internal): Ditto.
4895 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
4896 SFmode and DFmode constants.
4897 (ia64_print_operand): Add 'G' format for printing
4898 floating point constants.
4899
77a30264
RG
49002009-04-24 Richard Guenther <rguenther@suse.de>
4901
4902 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
4903 from unsigned additions.
4904
2b6da65c
JM
49052009-04-24 Joseph Myers <joseph@codesourcery.com>
4906
4907 * c-typeck.c (set_init_index): Allow array designators that are
4908 not integer constant expressions with a pedwarn if pedantic.
4909
f5a17c43
BS
49102009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
4911
4912 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
4913 zero if no overlap in nonzero bits between the operands.
4914
32e8bb8e
ILT
49152009-04-24 Ian Lance Taylor <iant@google.com>
4916
4917 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
4918 (record_dead_and_set_regs): Likewise.
4919 * df.h (struct df_mw_hardreg): Change flags field to int.
4920 (struct df_base_ref): Likewise.
4921 (struct df): Change changeable_flags field to int.
4922 * df-scan.c (df_defs_record): Change clobber_flags to int.
4923 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
4924 constants rather than #define macros.
4925 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
4926 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
4927 (enum dwarf_calling_convention): Likewise.
4928 (enum dwarf_line_number_x_ops): Likewise.
4929 (enum dwarf_call_frame_info): Likewise.
4930 (enum dwarf_source_language): Likewise.
4931 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
4932 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
4933 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
4934 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
4935 * genrecog.c (maybe_both_true_2): Change c to int.
4936 (write_switch): Likewise. Add cast to enum type.
4937 * gimplify.c (gimplify_omp_for): Handle return values from
4938 gimplify_expr using MIN rather than bitwise or.
4939 (gimplify_expr): Add cast to enum type.
4940 * ipa-prop.c (update_jump_functions_after_inlining): Change
4941 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
4942 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
4943 Add casts to enum type.
32e8bb8e
ILT
4944 (setup_cover_and_important_classes): Change cl to int. Add casts
4945 to enum type.
4946 (setup_class_translate): Change cl and mode to int.
4947 (ira_init_once): Change mode to int.
4948 (free_register_move_costs): Likewise.
4949 (setup_prohibited_mode_move_regs): Add casts to enum type.
4950 * langhooks.c (add_builtin_function_common): Rework assertion that
4951 value fits bitfield.
4952 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
4953 * omega.c (omega_do_elimination): Avoid math on enum types.
4954 * optabs.c (expand_vec_shift_expr): Remove casts to int.
4955 * opts.c (set_debug_level): Change 2 to enum constant. Use new
4956 int local to handle integral_argment value.
4957 * regmove.c (try_auto_increment): Change PUT_MODE to
4958 PUT_REG_NOTE_KIND.
4959 * reload.c (push_secondary_reload): Add casts to enum type.
4960 (secondary_reload_class, find_valid_class): Likewise.
4961 * reload1.c (emit_input_reload_insns): Likewise.
4962 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
4963 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
4964 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
4965 constant.
4966 * tree.c (build_common_builtin_nodes): Add casts to enum type.
4967 * tree-complex.c (complex_lattice_t): Typedef to int rather than
4968 enum type.
4969 (expand_complex_libcall): Add casts to enum type.
4970 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
4971 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
4972 with ERROR_MARK, not NUM_TREE_CODES.
4973 (vect_create_epilog_for_reduction): Likewise.
4974 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 4975 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
4976 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
4977 enum machine_mode.
4978 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
4979 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 4980 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
4981 * var-tracking.c (get_init_value): Change return type to enum
4982 var_init_status.
4983 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
4984 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
4985 arm_fp_model.
4986 (arm_override_options): Add casts to enum type.
4987 (arm_emit_tls_decoration): Likewise.
4988 * config/i386/i386.c (ix86_function_specific_restore): Add casts
4989 to enum type.
4990 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
4991 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
4992 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
4993 enum type.
4994 * config/s390/s390.c (code_for_builtin_64): Change to array of
4995 enum insn_code.
4996 (code_for_builtin_31): Likewise.
4997 (s390_expand_builtin): Change code_for_builtin to enum insn_code
4998 const *.
4999 * config/sparc/sparc.c (sparc_override_options): Change value
5000 field in struct code_model to enum cmodel. In initializer change
5001 0 to NULL and add cast to enum type.
5002
5003 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
5004 Change all callers. Issue a -Wc++-compat warning using
5005 lhs_origtype if necessary.
5006 (convert_for_assignment): Issue -Wc++-compat warnings about
5007 invalid conversions to enum type on assignment.
5008 * c-common.h (build_modify_expr): Update declaration.
5009
ac4fc08a
NC
50102009-04-24 Nick Clifton <nickc@redhat.com>
5011
5012 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
5013 (function_arg_advance): Likewise.
5014 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
5015 5th alternative.
5016
f22e891a
AK
50172009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
5018
5019 * config/s390/constraints.md ('I', 'J'): Fix condition.
5020
ad58aabe
DN
50212009-04-24 Diego Novillo <dnovillo@google.com>
5022
5023 * gengtype-parse.c (parse_error): Add newline after message.
5024
879a4a01
L
50252009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5026
5027 * config/i386/sse.md (avxmodesuffixs): Removed.
5028 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
5029 (*avx_pinsr<ssevecsize>): This.
5030
f63426af
BS
50312009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5032
5033 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
5034 follow chains of regs with a single definition, and allow expressions
5035 that are function_invariant_p.
ce72fe6c 5036 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 5037
30349c74
PB
50382009-04-24 Paolo Bonzini <bonzini@gnu.org>
5039
5040 PR middle-end/39867
5041 * fold-const.c (fold_cond_expr_with_comparison): When folding
5042 > and >= to MAX, make sure the MAX uses the same type as the
5043 comparison's operands.
5044
8d8256c1
NC
50452009-04-24 Nick Clifton <nickc@redhat.com>
5046
5047 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
5048 addressing for DImode accesses.
5049 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 5050 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 5051
6216f94e
JJ
50522009-04-24 Jakub Jelinek <jakub@redhat.com>
5053
5054 PR rtl-optimization/39794
5055 * alias.c (canon_true_dependence): Add x_addr argument.
5056 * rtl.h (canon_true_dependence): Adjust prototype.
5057 * cse.c (check_dependence): Adjust canon_true_dependence callers.
5058 * cselib.c (cselib_invalidate_mem): Likewise.
5059 * gcse.c (compute_transp): Likewise.
5060 * dse.c (scan_reads_nospill): Likewise.
5061 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
5062 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
5063 canon_base_addr of the group, plus optional offset.
5064 (struct group_info): Rename canon_base_mem to
5065 canon_base_addr.
5066 (get_group_info): Set canon_base_addr to canon_rtx of base, not
5067 canon_rtx of base_mem.
5068
6de7a512
PB
50692009-04-23 Paolo Bonzini <bonzini@gnu.org>
5070
5071 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
5072 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
5073
4a3a2376
UW
50742009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5075
5076 * config/spu/spu-builtins.h: Delete file.
5077
5078 * config/spu/spu.h (enum spu_builtin_type): Move here from
5079 spu-builtins.h.
5080 (struct spu_builtin_description): Likewise. Add GTY marker.
5081 Do not use enum spu_function_code or enum insn_code.
5082 (spu_builtins): Add extern declaration.
5083
5084 * config/spu/spu.c: Do not include "spu-builtins.h".
5085 (enum spu_function_code, enum spu_builtin_type_index,
5086 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
5087 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
5088 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
5089 unsigned_V2DI_type_node): Move here from spu-builtins.h.
5090 (spu_builtin_types): Make static. Add GTY marker.
5091 (spu_builtins): Add extern declaration with GTY marker.
5092 Include "gt-spu.h".
5093
5094 * config/spu/spu-c.c: Do not include "spu-builtins.h".
5095 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
5096 Check programmatically whether all parameters are scalar.
5097
5098 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
5099
bbaba73f
EB
51002009-04-23 Eric Botcazou <ebotcazou@adacore.com>
5101
5102 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
5103 assignment from the constructor either if the target is volatile.
5104
ee93c1c6
DJ
51052009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
5106
5107 * config/arm/arm.md (insv): Do not share operands[0].
5108
b2f21330
NS
51092009-04-23 Nathan Sidwell <nathan@codesourcery.com>
5110
5111 * config/vxlib-tls.c (active_tls_threads): Delete.
5112 (delete_hook_installed): New.
5113 (tls_delete_hook): Don't delete the delete hook.
5114 (tls_destructor): Delete it here.
5115 (__gthread_set_specific): Adjust installing the delete hook.
5116 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
5117 __gthread_leave_tsd_dtor_context.
5118
4782dfa7
RAE
51192009-04-23 Rafael Avila de Espindola <espindola@google.com>
5120
5121 * c-format.c (gcc_tdiag_char_table): Add support for %E.
5122
bf758008
UB
51232009-04-23 Uros Bizjak <ubizjak@gmail.com>
5124
5125 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
5126 enum type.
5127 (alpha_rtx_costs): Ditto.
5128 (emit_unlikely_jump): Use add_reg_note.
5129 (emit_frame_store_1): Ditto.
5130 (alpha_expand_prologue): Ditto.
5131 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5132 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
5133
7323a100
NC
51342009-04-23 Nick Clifton <nickc@redhat.com>
5135
5136 * config/v850/v850.md (epilogue): Remove suppressed code.
5137 (return): Rename to return_simple and remove test of frame size.
5138 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
5139 to gen_return_simple.
5140
360032ba
JY
51412009-04-22 Jing Yu <jingyu@google.com>
5142
5143 PR testsuite/39781
5144 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5145
53650abe
AP
51462009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
5147
5148 PR C/31499
5149 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
5150 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
5151 value is a VECTOR_CST, the element type is the element type of the
5152 vector.
5153
89043e8a
DD
51542009-04-22 DJ Delorie <dj@redhat.com>
5155
5156 * config/m32c/m32c.h: Update GTY annotations to new syntax.
5157
023f059b
JJ
51582009-04-22 Jakub Jelinek <jakub@redhat.com>
5159
5160 * alias.c (find_base_term): Move around LO_SUM case, so that
5161 CONST falls through into PLUS/MINUS handling.
5162
2c0eba5a
JJ
5163 PR c/39855
5164 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
5165 into 0, use omit_one_operand.
5166
9a461028
BE
51672009-04-23 Ben Elliston <bje@au.ibm.com>
5168
5169 * config/rs6000/linux-unwind.h (get_regs): Remove type
5170 puns. Change the type of `pc' to an array of unsigned ints and
5171 update all users. Constify frame24.
5172
653e2568
DD
51732009-04-22 DJ Delorie <dj@redhat.com>
5174
5175 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
5176 declarations before code.
5177 (current_function_special_page_vector): Likewise.
5178 (m32c_expand_insv): Silence a warning.
5179
60839f5d 51802009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
5181
5182 * alias.c: Update GTY annotations to new syntax.
5183 * basic-block.h: Likewise.
5184 * bitmap.h: Likewise.
5185 * c-common.h: Likewise.
5186 * c-decl.c: Likewise.
5187 * c-parser.c: Likewise.
5188 * c-pragma.c: Likewise.
5189 * c-tree.h: Likewise.
5190 * cfgloop.h: Likewise.
5191 * cgraph.h: Likewise.
5192 * config/alpha/alpha.c: Likewise.
5193 * config/arm/arm.h: Likewise.
5194 * config/avr/avr.h: Likewise.
5195 * config/bfin/bfin.c: Likewise.
5196 * config/cris/cris.c: Likewise.
5197 * config/darwin.c: Likewise.
5198 * config/frv/frv.c: Likewise.
5199 * config/i386/i386.c: Likewise.
5200 * config/i386/i386.h: Likewise.
5201 * config/i386/winnt.c: Likewise.
5202 * config/ia64/ia64.h: Likewise.
5203 * config/iq2000/iq2000.c: Likewise.
5204 * config/mips/mips.c: Likewise.
5205 * config/mmix/mmix.h: Likewise.
5206 * config/pa/pa.c: Likewise.
5207 * config/pa/pa.h: Likewise.
5208 * config/rs6000/rs6000.c: Likewise.
5209 * config/s390/s390.c: Likewise.
5210 * config/sparc/sparc.c: Likewise.
5211 * config/xtensa/xtensa.c: Likewise.
5212 * cselib.h: Likewise.
5213 * dbxout.c: Likewise.
5214 * dwarf2out.c: Likewise.
5215 * except.c: Likewise.
5216 * except.h: Likewise.
5217 * fixed-value.h: Likewise.
5218 * function.c: Likewise.
5219 * function.h: Likewise.
5220 * gimple.h: Likewise.
5221 * integrate.c: Likewise.
5222 * optabs.c: Likewise.
5223 * output.h: Likewise.
5224 * real.h: Likewise.
5225 * rtl.h: Likewise.
5226 * stringpool.c: Likewise.
5227 * tree-data-ref.c: Likewise.
5228 * tree-flow.h: Likewise.
5229 * tree-scalar-evolution.c: Likewise.
5230 * tree-ssa-address.c: Likewise.
5231 * tree-ssa-alias.h: Likewise.
5232 * tree-ssa-operands.h: Likewise.
5233 * tree.c: Likewise.
5234 * tree.h: Likewise.
5235 * varasm.c: Likewise.
5236 * varray.h: Likewise.
5237 * vec.h: Likewise.
bf758008 5238 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
5239 * doc/gty.texi: Update GTY documentation to new syntax.
5240 * gengtype-lex.l: Enforce attribute-like syntax for GTY
5241 annotations on structs.
5242 * gengtype-parse.c: Likewise.
5243
a123d175
MH
52442009-04-22 Mark Heffernan <meheff@google.com>
5245
bf758008 5246 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 5247
4c7c486a
KH
52482009-04-22 Kazu Hirata <kazu@codesourcery.com>
5249
5250 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
5251 where appropriate.
5252
6e782a29
KH
52532009-04-22 Kazu Hirata <kazu@codesourcery.com>
5254
5255 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
5256 the same as a PLUS without a shift. Increase the cost of a
5257 CONST_INT in MULT.
5258
38d2336a
MLI
52592009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5260
5261 * Makefile.in: Update dependencies.
bf758008 5262 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
5263 * errors.h: Remove bogus comment about compatibility.
5264 (warning): Update declaration.
5265 * genautomata.c: Update all calls to warning.
5266 * gimple.c: Do not include errors.h. Include toplev.h.
5267 * tree-ssa-structalias.c: Do not include errors.h.
5268 * omega.c: Likewise.
5269 * tree-ssa-reassoc.c: Likewise.
5270 * config/spu/spu-c.c: Likewise.
5271 * config/spu/t-spu-elf: Update dependencies.
5272
aea4deba
RG
52732009-04-22 Richard Guenther <rguenther@suse.de>
5274
5275 PR tree-optimization/39824
5276 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
5277 make sure the types are compatible.
5278
cfc93532
MLI
52792009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5280
5281 PR c++/14875
5282 * c-common.c (c_parse_error): Take a token_flags parameter.
5283 Use token_type for the token type instead.
5284 Pass token_flags to cpp_type2name.
5285 * c-common.h (c_parse_error): Update declaration.
5286 * c-parser.c (c_parser_error): Pass 0 as token flags.
5287
8632d02a
AB
52882009-04-22 Andrey Belevantsev <abel@ispras.ru>
5289
5290 PR rtl-optimization/39580
5291 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
5292
4c33221c
UW
52932009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5294
5295 * function.c (expand_function_end): Do not emit a jump to the "naked"
5296 return label for fall-through returns.
5297 * except.c (sjlj_emit_function_exit): Always place the call to the
5298 unregister function at the location installed by expand_function_end.
5299
9925bce0
RG
53002009-04-22 Richard Guenther <rguenther@suse.de>
5301
5302 PR tree-optimization/39845
5303 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
5304 (gen_inbound_check): Likewise.
5305
24a40b35
NS
53062009-04-22 Nathan Sidwell <nathan@codesourcery.com>
5307
5308 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
5309 padding for PPC.
5310 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
5311 * config/vxlib.c (__gthread_once): Add race guard for PPC.
5312
6c34a092
PB
53132009-04-22 Paolo Bonzini <bonzini@gnu.org>
5314
5315 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
5316 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
5317 shift counts to avoid out-of-bounds array accesses.
5318
baa48dfa
PB
53192009-04-22 Paolo Bonzini <bonzini@gnu.org>
5320
5321 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
5322 (Pmode): Move above.
5323
7d83f4f5
UB
53242009-04-22 Uros Bizjak <ubizjak@gmail.com>
5325
5326 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
5327 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
5328 GET_CODE macro. Use IN_RANGE macro where appropriate.
5329 * config/alpha/alpha.h: Ditto.
5330 * config/alpha/alpha.md: Ditto.
5331 * config/alpha/constraints.md: Ditto.
5332 * config/alpha/predicates.md: Ditto.
5333
3ad606bc
PB
53342009-04-22 Paolo Bonzini <bonzini@gnu.org>
5335
5336 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
5337 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5338 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5339 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5340 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5341 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5342 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5343 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5344 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5345 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5346 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5347 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5348 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5349 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5350 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5351 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5352 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5353 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5354 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5355 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5356 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5357 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5358 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5359 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5360 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5361 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5362 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5363
3cabd6d1
LB
53642009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5365
5366 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
5367 references from comments.
5368 * cfgbuild.c: (count_basic_blocks): Delete.
5369 (find_basic_blocks_1): Delete.
5370 (find_basic_blocks): Delete.
5371 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 5372 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
5373 * except.h (finish_eh_generation): Delete.
5374 * basic-block.h (find_basic_blocks): Delete.
5375 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
5376
270d1bcd
DK
53772009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
5378
5379 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
5380 (sdbout_parms): Likewise.
5381
b757d36f
KK
53822009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
5383
5384 * config/sh/sh.c (prepare_cbranch_operands): Use
5385 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
5386 (expand_cbranchdi4): Likewise.
5387 (from_compare): Add cast to enum type.
5388 (expand_cbranchsi4): Use add_reg_note.
5389 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
5390 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
5391 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
5392 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5393 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
5394 instead of CODE_FOR_nothing.
5395 (cbranchdi4): Likewise. Fix the order of arguments for
5396 gen_rtx_fmt_ee.
5397 (push_fpscr): Use add_reg_note.
5398 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
5399 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
5400
ad41bd84
JM
54012009-04-21 Joseph Myers <joseph@codesourcery.com>
5402
5403 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
5404 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
5405 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
5406 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
5407 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
5408 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
5409 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
5410 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
5411 config/alpha/x-vms, config/arc/t-arc,
5412 config/arm/README-interworking, config/arm/arm-c.c,
5413 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
5414 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
5415 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
5416 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
5417 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
5418 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
5419 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
5420 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
5421 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
5422 config/cris/t-elfmulti, config/crx/t-crx,
5423 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
5424 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
5425 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
5426 config/h8300/t-h8300, config/i386/athlon.md,
5427 config/i386/darwin-libgcc.10.4.ver,
5428 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
5429 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
5430 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
5431 config/i386/t-linux64, config/i386/t-nwld,
5432 config/i386/t-rtems-i386, config/i386/t-sol2-10,
5433 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
5434 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
5435 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
5436 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
5437 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
5438 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
5439 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
5440 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
5441 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
5442 config/m68k/t-uclinux, config/mcore/t-mcore,
5443 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
5444 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
5445 config/mips/crtn.asm, config/mips/irix-crti.asm,
5446 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
5447 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
5448 config/mips/mips-fixed.md, config/mips/sb1.md,
5449 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
5450 config/mips/t-iris6, config/mips/t-isa3264,
5451 config/mips/t-libgcc-mips16, config/mips/t-linux64,
5452 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
5453 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
5454 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
5455 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
5456 config/mn10300/t-linux, config/mn10300/t-mn10300,
5457 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
5458 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
5459 config/picochip/libgccExtras/clzsi2.asm,
5460 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
5461 config/rs6000/darwin-libgcc.10.4.ver,
5462 config/rs6000/darwin-libgcc.10.5.ver,
5463 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
5464 config/rs6000/t-aix43, config/rs6000/t-aix52,
5465 config/rs6000/t-darwin, config/rs6000/t-fprules,
5466 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
5467 config/rs6000/t-lynx, config/rs6000/t-netbsd,
5468 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
5469 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
5470 config/rs6000/t-rtems, config/rs6000/t-spe,
5471 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
5472 config/score/t-score-elf, config/sh/divcost-analysis,
5473 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
5474 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
5475 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
5476 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
5477 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
5478 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
5479 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
5480 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
5481 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
5482 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
5483 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
5484 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
5485 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
5486 limitx.h, version.c, xcoff.h: Add copyright and license notices.
5487 * config/h8300/genmova.sh: Include copyright and license notices
5488 in generated output.
5489 * config/h8300/mova.md: Regenerate.
5490 * doc/install.texi2html: Include word "Copyright" in copyright
5491 notice and use name "Free Software Foundation, Inc.".
5492 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
5493 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
5494 ChangeLog-2007, ChangeLog-2008: Correct dates.
5495
ca80e52b
EB
54962009-04-21 Eric Botcazou <ebotcazou@adacore.com>
5497
5498 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
5499 NE_EXPR operations as well.
5500 * c-parser.c (c_parser_condition): Do not set location information on
5501 the condition.
5502 (c_parser_conditional_expression): Likewise.
5503 (c_parser_binary_expression): Set location information on operators.
5504 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
5505 TRUTH_NOT_EXPR has been folded.
5506 * fold-const.c (fold_truth_not_expr): Copy location information from
5507 the incoming expression to the outgoing one.
5508 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
5509 recursive calls on the LHS of the operator but pass that of the
5510 operator to recursive calls on the RHS of the operator. Set it
5511 on the COND_EXPR.
5512 (shortcut_cond_expr): Set the locus of the operator on the second
5513 COND_EXPR and that of the expression on the first in degenerate cases.
5514 Pass the locus of the expression to calls to shortcut_cond_r.
5515 Set the locus of the 'then' block on the associated jump, if any.
5516 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
5517 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
5518 expression to call to gimplify_boolean_expr.
5519
35091630
KT
55202009-04-21 Kai Tietz <kai.tietz@onevision.com>
5521
5522 * config.gcc: Add additional configuration for
5523 i686-w64-mingw* and x86_64-w64-mingw* triplet.
5524 * config/i386/mingw-w64.h: New mingw-w64 specific header.
5525 (CPP_SPEC): Redefine for allowing -municode option.
5526 (STARTFILE_SPEC): Likewise.
5527 * config/i386/t-mingw-w64: New.
5528 * config/i386/mingw-w64.opt: New.
5529 (municode): Add new target option.
5530 * doc/invoke.texi (municode): Add documentation for new option.
5531
0267afc4
ILT
55322009-04-21 Ian Lance Taylor <iant@google.com>
5533
5534 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5535 Correct test for number of arguments.
5536 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
5537
2ba9daa7
AS
55382009-04-21 Andreas Schwab <schwab@linux-m68k.org>
5539
5540 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
5541 argument of emit_library_call.
5542
ad8a1ac0
RG
55432009-04-21 Richard Guenther <rguenther@suse.de>
5544
5545 PR middle-end/39829
5546 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
5547 inside VIEW_CONVERT_EXPRs.
5548
7156c8ab
MJ
55492009-04-21 Martin Jambor <mjambor@suse.cz>
5550
5551 * tree-switch-conversion.c (build_constructors): Split a long line.
5552 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
5553 (build_one_array): Create assigns of constants if possible, do not
5554 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
5555 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
5556 make_rename_temp. Do not call mark_symbols_for_renaming, call
5557 update_stmt.
5558 (gen_def_assigns): Do not call mark_symbols_for_renaming or
5559 find_new_referenced_vars, call update_stmt.
5560 (gen_inbound_check): Use create_tmp_var and create ssa names manually
5561 instead of calling make_rename_temp. Do not call
5562 find_new_referenced_vars or mark_symbols_for_renaming, call
5563 update_stmt.
5564
2970ccb3
RG
55652009-04-21 Richard Guenther <rguenther@suse.de>
5566
5567 PR tree-optimization/39827
7d83f4f5 5568 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
5569 (tree_ssa_phiprop): Pass the correct array size.
5570
47f402d1
UB
55712009-04-21 Uros Bizjak <ubizjak@gmail.com>
5572
5573 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
5574
1e4ae551
MLI
55752009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
5576
5577 PR 16202
5578 * c-typeck.c (lvalue_p): Move declaration ...
5579 * c-common.h (lvalue_p): ... to here.
5580 * c-common.c (candidate_equal_p): New.
5581 (add_tlist): Use it.
5582 (merge_tlist): Use it.
5583 (warn_for_collisions_1): Likewise.
5584 (warning_candidate_p): Accept more candidates.
5585 (verify_tree): A warning candidate can be an expression. Use
5586 candidate_equal_p.
5587
244609a6
BE
55882009-04-21 Ben Elliston <bje@au.ibm.com>
5589
5590 PR target/5267
5591 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
5592 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
5593 options. Remove -mcall-solaris documentation.
5594
9c650d90
MLI
55952009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5596
5597 PR c++/13358
5598 * doc/invoke.texi (-Wlong-long): Update description.
5599 * c-lex (interpret_integer): Only warn if there was no previous
5600 overflow and -Wlong-long is enabled.
5601 * c-decl.c (declspecs_add_type): Drop redundant flags.
5602 * c.opt (Wlong-long): Init to -1.
5603 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
5604 and front-end warn_long_long. Wlong-long only depends on other
5605 flags if it is uninitialized.
5606 * c-parser.c (disable_extension_diagnostics): warn_long_long is
5607 the same for CPP and FE.
5608 (restore_extension_diagnostics): Likewise.
5609
bbbbb16a
ILT
56102009-04-20 Ian Lance Taylor <iant@google.com>
5611
5612 Fix enum conversions which are invalid in C++:
47f402d1
UB
5613 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
5614 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
5615 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
5616 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 5617 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 5618 (dbxout_parms): Likewise.
47f402d1 5619 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
5620 (df_clear_flags): Likewise.
5621 * df-problems.c (df_rd_bb_local_compute_process_def): Change
5622 top_flag parameter to int.
5623 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
5624 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
5625 Remove cast.
bbbbb16a
ILT
5626 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
5627 (df_ref_create_structure, df_def_record_1): Likewise.
5628 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
5629 (df_notes_rescan): Change 0 to VOIDmode in function call.
5630 (df_get_call_refs, df_insn_refs_collect): Likewise.
5631 (df_bb_regs_collect): Likewise.
5632 (df_entry_block_defs_collect): Likewise.
5633 (df_exit_block_uses_collect): Likewise.
5634 * df.h: Update declarations.
5635 * double-int.c (double_int_divmod): Add cast to enum type.
5636 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
5637 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
5638 (based_loc_descr): Likewise.
5639 (loc_descriptor_from_tree_1): Change first_op and second_op to
5640 enum dwarf_location_atom. Add cast to enum type.
5641 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 5642 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
5643 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
5644 (do_store_flag): Likewise.
5645 * fixed-value.h (struct fixed_value): Change mode to enum
5646 machine_mode.
47f402d1 5647 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
5648 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
5649 function call.
5650 (insert_insn_decl, insert_decl, insert_state): Likewise.
5651 (automata_list_finish): Likewise.
5652 * genrecog.c (process_define_predicate): Add cast to enum type.
5653 * gensupport.c (init_predicate_table): Add cast to enum type.
5654 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
5655 function call.
5656 (gimple_build_call_1, gimple_build_label): Likewise.
5657 (gimple_build_goto, gimple_build_asm_1): Likewise.
5658 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 5659 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
5660 (enum fallback): Rename from enum fallback_t.
5661 (fallback_t): Typedef as int.
5662 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
5663 GSI_SAME_STMT in function call.
5664 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
5665 enum type.
5666 (setup_reg_class_relations): Likewise.
47f402d1 5667 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
5668 (setup_prohibited_class_mode_regs): Add cast to enum type.
5669 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 5670 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
5671 (record_address_regs): Change i to enum reg_class.
5672 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
5673 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
5674 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
5675 (GET_MODE_2XWIDER_MODE): Likewise.
5676 (GET_CLASS_NARROWEST_MODE): Likewise.
5677 * omp-low.c (expand_omp_for): Add cast to enum type.
5678 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
5679 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
5680 * postreload.c (reload_cse_simplify_operands): Change rclass local
5681 to enum reg_class.
5682 * predict.c (combine_predictions_for_insn): Change best_predictor
5683 and predictor to enum br_predictor.
5684 (combine_predictions_for_bb): Likewise.
5685 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
5686 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 5687 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
5688 * reginfo.c (init_move_cost): Add casts to enum type.
5689 (init_reg_sets_1, init_fake_stack_mems): Likewise.
5690 * regmove.c (regclass_compatible_p): Change class0 and class1 to
5691 enum reg_class.
5692 * reload.c (find_valid_class): Add casts to enum type.
5693 (push_reload): Change 0 to NO_REGS in function call.
5694 (find_reloads): Change this_alternative to array of enum
5695 reg_class. Remove some now-unnecessary casts.
5696 (make_memloc): Change 0 to VOIDmode in function call.
5697 * reload1.c (reload): Change 0 to VOIDmode in function call.
5698 (eliminate_regs_1, elimination_effects): Likewise.
5699 (eliminate_regs_in_insn): Likewise.
5700 (emit_input_reload_insns): Add cast to enum type.
5701 (delete_output_reload): Change 0 to VOIDmode in function call.
5702 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
5703 to enum type in function call.
5704 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
5705 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 5706 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
5707 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
5708 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
5709 (dump_function): Likewise.
5710 * tree-dump.h: Update declarations.
5711 * tree-pass.h: Update declarations.
5712 * varasm.c (assemble_integer): Change mclass to enum mode_class.
5713 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
5714 enum type.
5715 (arm_rtx_costs_1): Correct parenthesization.
5716 (arm_rtx_costs): Add casts to enum type.
5717 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
5718 (vfp_emit_fstmd): Use add_rg_note.
5719 (emit_multi_reg_push, emit_sfm): Likewise.
5720 (thumb_set_frame_pointer): Likewise.
5721 (arm_expand_prologue): Likewise.
5722 (arm_regno_class): Change return type to enum reg_class.
5723 (thumb1_expand_prologue): Use add_reg_note.
5724 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
5725 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
5726 in function call.
5727 * config/arm/gentune.sh: Add cast to enum type.
5728 * config/arm/arm-tune.md: Rebuild.
5729 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
5730 (ix86_split_fp_branch, predict_jump): Likewise.
5731 (ix86_expand_multi_arg_builtin): Change sub_code from enum
5732 insn_code to enum rtx_code.
5733 (ix86_builtin_vectorized_function): Add cast to enum type.
5734 * config/i386/i386.md (truncdfsf2): Change slot to enum
5735 ix86_stack_slot.
5736 (truncxf<mode>2, isinf<mode>2): Likewise.
5737 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
5738 enum type.
5739 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
5740 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
5741 (insert_bundle_state): Change 1 to INSERT in function call.
5742 (ia64_add_bundle_selector_before): Likewise.
5743 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
5744 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
5745 (restore_stack_nonlocal): Likewise.
5746 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
5747 function call.
5748 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
5749 function call.
5750 (mips_rtx_costs): Likewise.
5751 (mips_override_options): Add casts to enum type.
5752 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
5753 in function call.
5754 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
5755 (store_reg, set_reg_plus_d): Likewise.
5756 (hppa_expand_prologue, hppa_profile_hook): Likewise.
5757 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
5758 cast to enum type.
5759 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
5760 function call.
5761 (emit_unlikely_jump): Use add_reg_note.
5762 (rs6000_emit_allocate_stack): Likewise.
5763 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
5764 (output_toc): Change 1 to INSERT in function call.
5765 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
5766 (rs6000_initialize_trampoline): Likewise.
5767 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
5768 function call.
5769 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
5770 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
5771 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
5772 (save_gprs): Use add_reg_note.
5773 (s390_emit_prologue): Likewise.
47f402d1 5774 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
5775 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
5776 (sparc_fold_builtin): Add cast to enum type.
5777 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
5778 enum insn_code.
5779 (spu_expand_prologue): Use add_reg_note.
47f402d1 5780 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
5781
57822009-04-20 Ian Lance Taylor <iant@google.com>
5783
5784 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
5785 (c_parser_postfix_expression_after_primary): Get VEC for list of
5786 arguments. Get original types of arguments. Call
5787 build_function_call_vec.
5788 (cached_expr_list_1, cached_expr_list_2): New static variables.
5789 (c_parser_expr_list): Change return type to VEC *. Add
5790 p_orig_types parameter. Change all callers.
5791 (c_parser_release_expr): New static function.
5792 (c_parser_vec_to_tree_list): New static function.
5793 * c-typeck.c (build_function_call): Rewrite to build a VEC and
5794 call build_function_call_vec.
5795 (build_function_call_vec): New function, based on old
5796 build_function_call.
5797 (convert_arguments): Remove nargs and argarray parameters. Change
5798 values to a VEC. Add origtypes parameter.
47f402d1 5799 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
5800 (convert_for_assignment): Add origtype parameter. Change all
5801 callers. If warn_cxx_compat, check for conversion to an enum
5802 type when calling a function.
5803 (store_init_value): Add origtype parameter. Change all callers.
5804 (digest_init): Likewise.
5805 (struct init_node): Add origtype field.
5806 (add_pending_init): Add origtype parameter. Change all callers.
5807 (output_init_element): Likewise.
5808 (output_pending_init_elements): Pass origtype from init_node to
5809 output_init_element.
f28a61ab 5810 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
5811 output_init_element.
5812 (c_finish_return): Add origtype parameter. Change all callers.
5813 * c-common.c (sync_resolve_size): Change params to VEC *. Change
5814 caller.
5815 (sync_resolve_params): Likewise.
47f402d1 5816 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 5817 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 5818 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
5819 * c-decl.c (finish_decl): Add origtype parameter. Change all
5820 callers. Call build_function_call_vec rather than
5821 build_function_call for cleanup.
5822 * c-tree.h: Update declarations.
5823 * c-common.h: Update declarations.
5824 * stub-objc.c (objc_rewrite_function_call): Change parameter from
5825 params to first_param.
5826 * target.h (struct gcc_target): Change resolve_overloaded_builtin
5827 params parameter from tree to void *.
5828 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5829 Change arglist parameter to have type void *, and to be a pointer
5830 to a VEC.
5831 * config/rs6000/rs6000-protos.h
5832 (altivec_resolve_overloaded_builtin): Update declaration.
5833 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
5834 fnargs parameter to have type void *, and to be a pointer to a
5835 VEC. Call build_function_call_vec instead of
5836 build_function_call.
47f402d1 5837 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 5838
6ff078d4 58392009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 5840 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
5841 H.J. Lu <hongjiu.lu@intel.com>
5842
5843 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
5844
5845 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
5846 (IX86_LEA_PRIORITY): Likewise.
5847 (distance_non_agu_define): New function.
5848 (distance_agu_use): Likewise.
5849 (ix86_lea_for_add_ok): Likewise.
5850 (ix86_dep_by_shift_count): Likewise.
5851
5852 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
5853 should split for LEA.
5854
5855 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
5856 function.
5857 (ix86_dep_by_shift_count): Likewise.
5858
87a5b4cc
RG
58592009-04-20 Richard Guenther <rguenther@suse.de>
5860
5861 * expr.c (handled_component_p): Move ...
5862 * tree.h (handled_component_p): ... here.
5863 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
5864 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
5865 and REALPART_EXPR to be in one group.
5866
438c239d
RG
58672009-04-20 Richard Guenther <rguenther@suse.de>
5868
5869 * basic-block.h (get_all_dominated_blocks): Declare.
5870 * dominance.c (get_all_dominated_blocks): New function.
5871 * tree-cfg.c (get_all_dominated_blocks): Remove.
5872 (remove_edge_and_dominated_blocks): Adjust.
5873 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
5874 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
5875 instead of recursing.
5876
fed5ae11
DK
58772009-04-20 Doug Kwan <dougkwan@google.com>
5878
5879 * cgraph.h (cgraph_node_ptr): New type for vector functions.
5880 (struct cgraph_node_set_def): New type.
5881 (cgraph_node_set) New type. Also declare vector functions.
5882 (struct cgraph_node_set_element_def): New type.
5883 (cgraph_node_set_element): Ditto.
5884 (cgraph_node_set_iterator): New iterator type.
5885 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
5886 cgraph_node_set_remove, dump_cgraph_node_set,
5887 debug_cgraph_node_set): New prototypes.
5888 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
5889 cgraph_node_set_size): New inlines.
5890 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
5891 including cgraph.h.
5892 (struct ipa_opt_pass): Add struct cgraph_node_set_def
5893 argument to function 'write_summary'.
5894 * ipa.c: Include ggc.h.
5895 (hash_cgraph_node_set_element,
5896 eq_cgraph_node_set_element, cgraph_node_set_new,
5897 cgraph_node_set_add, cgraph_node_set_remove,
5898 cgraph_node_set_find, dump_cgraph_node_set,
5899 debug_cgraph_node_set): New functions.
5900 * Makefile.in (ipa.o): Add dependency on GGC_H.
5901
c4551b28
IR
59022009-04-20 Ira Rosen <irar@il.ibm.com>
5903
5904 PR tree-optimization/39675
2ba9daa7 5905 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
5906 check of the return code of vect_schedule_slp. Check that
5907 stmt_vec_info still exists for the statement, before checking its
5908 vectorization type.
c4551b28 5909
21a495fb
MM
59102009-04-20 Michael Matz <matz@suse.de>
5911
5912 * Makefile.in (generated_files): Take out $(simple_generated_c).
5913
8e208874
DK
59142009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
5915
5916 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
5917 (UINTPTR_TYPE): Likewise.
5918
a45e580b
JM
59192009-04-19 Joseph Myers <joseph@codesourcery.com>
5920
5921 PR c/37481
5922 * c-typeck.c (digest_init): Check for initializing an array with a
5923 string literal.
5924
20845d35
JM
59252009-04-19 Joseph Myers <joseph@codesourcery.com>
5926
5927 PR c/19771
5928 * c-semantics.c (pop_stmt_list): Propagate
5929 STATEMENT_LIST_HAS_LABEL to parent statement list.
5930
28143fdd
AN
59312009-04-19 Adam Nemet <anemet@caviumnetworks.com>
5932
5933 * config/mips/mips.h (mips_tune_attr): New macro.
5934 * config/mips/mips.md (cpu): Use it.
5935
da377db9
JM
59362009-04-19 Joseph Myers <joseph@codesourcery.com>
5937
5938 PR c/38243
5939 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
5940 declaring a tag.
5941
3baf459d
DN
59422009-04-19 Diego Novillo <dnovillo@google.com>
5943
5944 * toplev.c (compile_file): Move call to coverage_finish ...
5945 * cgraphunit.c (ipa_passes): ... here.
5946 Call cgraph_process_new_functions.
5947 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
5948 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
5949
b6fa5b01
JH
59502009-04-19 Jan Hubicka <jh@suse.cz>
5951
47f402d1
UB
5952 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
5953 cfun.
b6fa5b01
JH
5954 (dump_cgraph_node): Dump can throw external flag.
5955 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
5956
ca409efd
MLI
59572009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
5958
5959 PR c/32061
5960 PR c++/36954
5961 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
5962 * common.opt (Wlogical-op): Move from here...
5963 * c.opt (Wlogical-op): ... to here.
5964 * c-typeck.c (parser_build_binary_op): Update call to
5965 warn_logical_operator.
5966 * c-opts.c (c_common_post_options): Enable warn_logical_op with
5967 extra_warnings.
5968 * c-common.c (warn_logical_op): Update.
5969 * c-common.h (warn_logical_op): Update declaration.
5970
9db4cdd3
EB
59712009-04-19 Eric Botcazou <ebotcazou@adacore.com>
5972
5973 * tree.c (protected_set_expr_location): Fix formatting.
5974
f37acdf9
JM
59752009-04-18 Joseph Myers <joseph@codesourcery.com>
5976
5977 PR c/27676
5978 * c-typeck.c (readonly_warning): new.
5979 (build_unary_op, build_modify_expr): Use readonly_warning for
5980 storing into something readonly but not const-qualified.
5981
2b4b7036
JM
59822009-04-18 Joseph Myers <joseph@codesourcery.com>
5983
5984 PR c/22367
5985 * c-typeck.c (build_unary_op): Check for taking address of
5986 expression of type void.
5987
3ce62965
JM
59882009-04-18 Joseph Myers <joseph@codesourcery.com>
5989
5990 PR c/35210
5991 * c-typeck.c (build_function_call): Check for calling a function
5992 with qualified void return types. Call require_complete_type when
5993 generating a trap.
5994
2505c5ed
JH
59952009-04-18 Jan Hubicka <jh@suse.cz>
5996
5997 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
5998 Set nothrow flag.
5999 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
6000 can_throw_external flag.
6001 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
6002 * ipa-pure-const.c (ignore_edge): New function.
6003 (propagate): Compute order for NOTHROW computation; set NOTHROWs
6004 only over can_throw_external edges.
6005 (local_pure_const): Add nothrow flag.
6006 * ipa-utils.c (searchc): Add ignore_edge callback.
6007 (ipa_utils_reduced_inorder): Add ignore_edge callback.
6008 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
6009 (set_nothrow_function_flags): Update cgraph.
6010 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
6011
2586ba4b
RG
60122009-04-18 Richard Guenther <rguenther@suse.de>
6013
6014 PR middle-end/39804
6015 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
6016 (fold_stmt): ... this and ...
6017 (fold_stmt_inplace): ... this.
6018 (fold_stmt_1): Fold references in calls and asms.
6019 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
6020
1eefab17
KH
60212009-04-18 Kazu Hirata <kazu@codesourcery.com>
6022
6023 * tree-vrp.c (ssa_name_nonzero_p): Remove.
6024 * tree.h: Remove the prototype for ssa_name_nonzero_p.
6025
aa424b01
KH
60262009-04-18 Kazu Hirata <kazu@codesourcery.com>
6027
6028 * tree.c (function_args_count): Remove.
6029 * tree.h: Remove the prototype for function_args_count.
6030
613a896b
KH
60312009-04-18 Kazu Hirata <kazu@codesourcery.com>
6032
6033 * tree-iterator.c (expr_only): Remove.
6034 * tree.h: Remove the prototype for expr_only.
6035
579e694c
KH
60362009-04-18 Kazu Hirata <kazu@codesourcery.com>
6037
6038 * reginfo.c (cannot_change_mode_set_regs): Remove.
6039 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
6040
ee7e3ad3
AS
60412009-04-08 Anatoly Sokolov <aesok@post.ru>
6042
6043 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
6044 whether operands 0 and 1 overlaps.
6045
92ef7fb1
MLI
60462009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
6047
6048 PR middle-end/36902
6049 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
6050 pointer. Use warning_at instead of warning.
6051 (search_for_addr_array): Likewise.
6052 (check_array_bounds): Likewise.
6053 (check_all_array_refs): Check that the incoming edge is not in the
6054 list of edges to be removed.
6055 (check_all_array_refs): Avoid the temporal pointer.
6056 (vrp_visit_cond_stmt): Fix typo.
6057 (simplify_switch_using_ranges): Handle the case where the switch
6058 index is an integer constant.
6059
0e097268
AN
60602009-04-18 Adam Nemet <anemet@caviumnetworks.com>
6061
6062 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
6063
c782f1dd
KH
60642009-04-18 Kazu Hirata <kazu@codesourcery.com>
6065
6066 * doc/extend.texi, doc/invoke.texi: Fix typos.
6067
668fb0e8
CC
60682009-04-17 Cary Coutant <ccoutant@google.com>
6069
6070 * tree-flow-inline.h (get_lineno): Fix inverted test.
6071
4d4014c1
DN
60722009-04-17 Diego Novillo <dnovillo@google.com>
6073
6074 * tree-ssa-pre.c (create_expression_by_pieces): Remove
6075 assertion for AVAIL_OUT.
6076
2984e1b6
MF
60772009-04-17 Mike Frysinger <vapier@gentoo.org>
6078
6079 PR target/38627
6080 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
6081 * config/sh/linux-atomic.asm: Likewise.
6082
9994a182
DN
60832009-04-17 Diego Novillo <dnovillo@google.com>
6084
6085 * except.c (debug_eh_tree): New.
6086 (struct eh_region, struct eh_status): Move ...
6087 * except.h: ... here.
6088 (add_type_for_runtime): Declare extern.
6089 (lookup_type_for_runtime): Likewise.
6090 (debug_eh_tree): Declare.
6091 * Makefile.in (GTFILES): List except.h before except.c
6092
07485407
DN
60932009-04-17 Diego Novillo <dnovillo@google.com>
6094
47f402d1 6095 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
6096 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6097 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
6098 (find_vars_r): ... here.
6099 * tree-flow.h (find_referenced_vars_in): Declare.
6100 * tree-ssa-pre.c (create_expression_by_pieces): Assert
6101 that AVAIL_OUT exists for BLOCK.
6102 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
6103 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
6104 (tree-parloops.o): Likewise.
6105
4e53d196
SB
61062009-04-17 Simon Baldwin <simonb@google.com>
6107
6108 * toplev.c (default_tree_printer): Add handling for %E format.
6109
413d3aa8
DN
61102009-04-17 Diego Novillo <dnovillo@google.com>
6111
47f402d1
UB
6112 * tree-pretty-print.c (dump_generic_node): Add break after
6113 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
6114 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
6115 FUNCTION_TYPE together. Call print_struct_decl when printing
6116 structures and TDF_SLIM is not given.
413d3aa8
DN
6117 (print_struct_decl): Fix logic for detecting recursion.
6118
5a691e98
RAE
61192009-04-17 Rafael Avila de Espindola <espindola@google.com>
6120
6121 PR 31567
6122 * gcc.c (create_at_file): New.
6123 (compile_input_file_p): New.
6124 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
6125 * main.c (main): Update call to toplev_main.
6126 * toplev.c (toplev_main): Change signature. Call expandargv.
6127 * toplev.h (toplev_main): Change signature.
6128
9eacf7a6
EB
61292009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6130
6131 * dwarf2out.c (field_byte_offset): Use the type size as the field size
6132 if the latter is not constant.
6133
58298177
DE
61342009-04-17 David Edelsohn <edelsohn@gnu.org>
6135
6136 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
6137
5b4c43d7
EB
61382009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6139
6140 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
6141 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
6142
b51605c4
RG
61432009-04-17 Richard Guenther <rguenther@suse.de>
6144
6145 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6146 Handle component references view-converting an invariant address.
6147
9e3be889
AN
61482009-04-17 Adam Nemet <anemet@caviumnetworks.com>
6149
6150 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
6151 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
6152 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
6153 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
6154 Use @deftypevr rather than @deftypevar.
6155
7c3e9dc3
RG
61562009-04-17 Richard Guenther <rguenther@suse.de>
6157
47f402d1 6158 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
6159 (get_prop_source_stmt): Likewise.
6160 (can_propagate_from): Likewise.
6161
aca600aa
AS
61622009-04-17 Andrew Stubbs <ams@codesourcery.com>
6163
6164 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
6165 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
6166 (--with-multilib-list): Add default value.
6167 * configure: Regenerate.
6168 * Makefile.in (TM_ENDIAN_CONFIG): Define.
6169 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
6170 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
6171 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
6172 Don't add default cpu to multilib list unnecessarily, but do enable
6173 the relevant compiler option..
6174 Add support for --with-multilib-list=<blank> and
6175 --with-multilib-list=!<somelib> to supress unwanted multilibs.
6176 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
6177 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
6178 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
6179 TM_MULTILIB_CONFIG.
6180 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
6181 (MULTILIB_OSDIRNAMES): New variable.
6182 * config/sh/t-1e: Delete file.
6183 * config/sh/t-mlib-sh1: Delete file.
6184 * config/sh/t-mlib-sh2: Delete file.
6185 * config/sh/t-mlib-sh2a: Delete file.
6186 * config/sh/t-mlib-sh2a-nofpu: Delete file.
6187 * config/sh/t-mlib-sh2a-single: Delete file.
6188 * config/sh/t-mlib-sh2a-single-only: Delete file.
6189 * config/sh/t-mlib-sh2e: Delete file.
6190 * config/sh/t-mlib-sh3e: Delete file.
6191 * config/sh/t-mlib-sh4: Delete file.
6192 * config/sh/t-mlib-sh4-nofpu: Delete file.
6193 * config/sh/t-mlib-sh4-single: Delete file.
6194 * config/sh/t-mlib-sh4-single-only: Delete file.
6195 * config/sh/t-mlib-sh4a: Delete file.
6196 * config/sh/t-mlib-sh4a-nofpu: Delete file.
6197 * config/sh/t-mlib-sh4a-single: Delete file.
6198 * config/sh/t-mlib-sh4a-single-only: Delete file.
6199 * config/sh/t-mlib-sh4al: Delete file.
6200 * config/sh/t-mlib-sh5-32media: Delete file.
6201 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
6202 * config/sh/t-mlib-sh5-64media: Delete file.
6203 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
6204 * config/sh/t-mlib-sh5-compact: Delete file.
6205 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
6206 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
6207 * doc/install.texi (Options specification): Add
6208 --with-multilib-list and --with-endian.
6209
cf8aba7f
RAE
62102009-04-17 Rafael Avila de Espindola <espindola@google.com>
6211
6212 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
6213 REVISION_c.
6214 (OBJS-common): Add plugin-version.o.
6215 (plugin-version.o): New.
6216 * gcc-plugin.h (plugin_gcc_version): New.
6217 (plugin_default_version_check): New.
6218 (plugin_init_func, plugin_init): Add version argument.
6219 * plugin-version.c: New.
6220 * plugin.c (str_plugin_gcc_version_name): New.
6221 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
6222 pass it to the init function.
6223 (plugin_default_version_check): New.
6224
61e20b90
RG
62252009-04-17 Richard Guenther <rguenther@suse.de>
6226
6227 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
6228 for decl-vs-decl disambiguation.
6229
90c6fd8a
AK
62302009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
6231
6232 * config/s390/s390.h (s390_tune_attr): New macro definition.
6233 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
6234
9fe9fe04
RG
62352009-04-17 Richard Guenther <rguenther@suse.de>
6236
6237 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
6238 (fold_stmt_r): Likewise.
6239 (maybe_fold_reference): New function.
6240 (fold_gimple_assign): Handle cases fold_stmt_r did.
6241 (fold_stmt): Do not use fold_stmt_r.
6242 (fold_stmt_inplace): Likewise.
6243
7e673273
RG
62442009-04-17 Richard Guenther <rguenther@suse.de>
6245
6246 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
6247 (record_equivalences_from_stmt): Remove useless checks and
6248 simplifications.
6249 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
6250 the type is already suitable.
6251
fabf2749
PB
62522009-04-17 Paolo Bonzini <bonzini@gnu.org>
6253
6254 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
6255
68f7b061
UB
62562009-04-17 Uros Bizjak <ubizjak@gmail.com>
6257
6258 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
6259 (CMPtype): Define as __gcc_CMPtype.
6260
532bfb0a
AJ
62612009-04-17 Aurelien Jarno <aurelien@aurel32.net>
6262
6263 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
6264 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
6265
e3ac77ff
RG
62662009-04-17 Richard Guenther <rguenther@suse.de>
6267
6268 PR tree-optimization/39746
6269 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
6270 special-casing for builtins and static variable use/def.
6271 (call_may_clobber_ref_p_1): Likewise.
6272
7072a650
ILT
62732009-04-16 Ian Lance Taylor <iant@google.com>
6274
6275 * df.h: Include "timevar.h".
6276 (struct df_problem): Change tv_id field to timevar_id_t.
6277 * tree-pass.h: Include "timevar.h".
6278 (struct opt_pass): Change tv_id field to timevar_id_t.
6279 * timevar.h (timevar_id_t): Define TV_NONE.
6280 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
6281 TV_NONE rather than tv_id != 0.
6282 (execute_one_pass): Likewise.
6283 * Makefile.in (DF_H): Add $(TIMEVAR_H).
6284 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
6285 dependencies to $(TREE_PASS_H).
6286 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
6287 to TV_NONE.
6288 (pass_branch_target_load_optimize2): Likewise.
6289 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
6290 (pass_outof_cfg_layout_mode): Likewise.
6291 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
6292 (pass_rebuild_cgraph_edges): Likewise.
6293 (pass_remove_cgraph_callee_edges): Likewise.
6294 * df-core.c (pass_df_initialize_opt): Likewise.
6295 (pass_df_initialize_no_opt): Likewise.
6296 (pass_df_finish): Likewise.
6297 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
6298 * except.c (pass_set_nothrow_function_flags): Likewise.
6299 (pass_convert_to_eh_region_ranges): Likewise.
6300 * final.c (pass_compute_alignments): Likewise.
6301 * function.c (pass_instantiate_virtual_regs): Likewise.
6302 (pass_init_function): Likewise.
6303 (pass_leaf_regs): Likewise.
6304 (pass_match_asm_constraints): Likewise.
6305 * gimple-low.c (pass_lower_cf): Likewise.
6306 (pass_mark_used_blocks): Likewise.
6307 * init-regs.c (pass_initialize_regs): Likewise.
6308 * integrate.c (pass_initial_value_sets): Likewise.
6309 * ira.c (pass_ira): Likewise.
6310 * jump.c (pass_cleanup_barriers): Likewise.
6311 * omp-low.c (pass_expand_omp): Likewise.
6312 (pass_lower_omp): Likewise.
6313 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
6314 * recog.c (pass_split_all_insns): Likewise.
6315 (pass_split_after_reload): Likewise.
6316 (pass_split_before_regstack): Likewise.
6317 (pass_split_before_sched2): Likewise.
6318 (pass_split_for_shorten_branches): Likewise.
6319 * reginfo.c (pass_reginfo_init): Likewise.
6320 (pass_subregs_of_mode_init): Likewise.
6321 (pass_subregs_of_mode_finish): Likewise.
6322 * passes.c (pass_postreload): Likewise.
6323 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
6324 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
6325 (pass_warn_function_return): Likewise.
6326 (pass_warn_function_noreturn): Likewise.
6327 * tree-complex.c (pass_lower_complex): Likewise.
6328 (pass_lower_complex_O0): Likewise.
6329 * tree-if-conv.c (pass_if_conversion): Likewise.
6330 * tree-into-ssa.c (pass_build_ssa): Likewise.
6331 * tree-mudflap.c (pass_mudflap_1): Likewise.
6332 (pass_mudflap_2): Likewise.
6333 * tree-nomudflap.c (pass_mudflap_1): Likewise.
6334 (pass_mudflap_2): Likewise.
6335 * tree-nrv.c (pass_return_slot): Likewise.
6336 * tree-object-size.c (pass_object_sizes): Likewise.
6337 * tree-optimize.c (pass_all_optimizations): Likewise.
6338 (pass_early_local_passes): Likewise.
6339 (pass_all_early_optimizations): Likewise.
6340 (pass_cleanup_cfg): Likewise.
6341 (pass_cleanup_cfg_post_optimizing): Likewise.
6342 (pass_free_datastructures): Likewise.
6343 (pass_free_cfg_annotations): Likewise.
6344 (pass_fixup_cfg): Likewise.
6345 (pass_init_datastructures): Likewise.
6346 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
6347 (pass_late_warn_uninitialized): Likewise.
6348 (pass_update_address_taken): Likewise.
6349 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
6350 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
6351 (pass_cse_sincos): Likewise.
6352 (pass_convert_to_rsqrt): Likewise.
6353 * tree-ssa-structalias.c (pass_build_alias): Likewise.
6354 * tree-stdarg.c (pass_stdarg): Likewise.
6355 * tree-tailcall.c (pass_tail_recursion): Likewise.
6356 (pass_tail_calls): Likewise.
6357 * tree-vect-generic.c (pass_lower_vector): Likewise.
6358 (pass_lower_vector_ssa): Likewise.
6359 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
6360
0051ef59
JM
63612009-04-16 Joseph Myers <joseph@codesourcery.com>
6362
6363 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
6364 XLR entry.
6365 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
6366 Handle -march=xlr.
6367 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
6368 logical and signext.
6369
b3f8558a
KK
63702009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
6371
6372 PR target/39767
6373 * config/sh/predicates.md (arith_operand): Check if the operand
6374 of TRUNCATE is a REG.
6375
f57597d9
KH
63762009-04-16 Kazu Hirata <kazu@codesourcery.com>
6377
6378 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
6379 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
6380
b172d063
KH
63812009-04-16 Kazu Hirata <kazu@codesourcery.com>
6382
6383 * tree-iterator.c (tsi_split_statement_list_after,
6384 tsi_split_statement_list_before): Remove.
6385 * tree-iterator.h: Remove the prototypes for
532bfb0a 6386 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 6387
78fe4f1f
KH
63882009-04-16 Kazu Hirata <kazu@codesourcery.com>
6389
6390 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
6391 * tree-ssa-propagate.h: Remove the prototype for
6392 stmt_makes_single_load.
6393
43dd3201
KH
63942009-04-16 Kazu Hirata <kazu@codesourcery.com>
6395
6396 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
6397 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
6398
4252a4aa
KH
63992009-04-16 Kazu Hirata <kazu@codesourcery.com>
6400
6401 * tree-iterator.c (EXPR_LAST_BODY): Remove.
6402
bfb69968
KH
64032009-04-16 Kazu Hirata <kazu@codesourcery.com>
6404
6405 * except.c (eh_region_outer_p): Remove.
6406 * except.h: Remove the prototype for eh_region_outer_p.
6407
c7db7fa5
KH
64082009-04-16 Kazu Hirata <kazu@codesourcery.com>
6409
6410 * function.c (current_function_assembler_name): Remove.
6411 * function.h: Remove the prototype for
6412 current_function_assembler_name.
6413
efc0b2bd
ILT
64142009-04-16 Ian Lance Taylor <iant@google.com>
6415
532bfb0a 6416 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
6417 (add_reg_note): Call alloc_reg_note.
6418 * rtl.h (alloc_reg_note): Declare.
6419 * combine.c (try_combine): Use alloc_reg_note.
6420 (recog_for_combine, move_deaths): Likewise.
6421 (distribute_notes): Use alloc_reg_note and add_reg_note.
6422 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
6423 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
6424 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
6425
6080348f
VM
64262009-04-16 Vladimir Makarov <vmakarov@redhat.com>
6427
6428 PR rtl-optimization/39762
6429 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
6430 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 6431 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 6432
6080348f
VM
6433 * ira-conflicts.c (process_regs_for_copy): Use function
6434 ira_get_register_move_cost instead of global
6435 ira_register_move_cost.
6436
6437 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
6438 color_pass, move_spill_restore, update_curr_costs): Ditto.
6439
6440 * ira-lives.c (process_single_reg_class_operands): Ditto.
6441
6442 * ira-emit.c (emit_move_list): Ditto.
6443
6444 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
6445 (record_reg_classes): Ditto. Use functions
6446 ira_get_register_move_cost and ira_get_may_move_cost instead of
6447 global vars ira_register_move_cost, ira_may_move_out_cost and
6448 ira_may_move_in_cost.
6449 (record_address_regs): Don't call ira_init_register_move_cost.
6450 Use function ira_get_may_move_cost instead of global
6451 ira_may_move_in_cost.
6452 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 6453 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 6454 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 6455
646bea10
RG
64562009-04-16 Richard Guenther <rguenther@suse.de>
6457
6458 * tree-cfg.c (verify_gimple_assign_binary):
6459 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
6460 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
6461 (create_general_new_stmt): Note that this function is broken.
6462
02e819ff
RAE
64632009-04-16 Rafael Avila de Espindola <espindola@google.com>
6464
6465 * common.opt (fhelp): Add Var(help_flag).
6466 * gcc-plugin.h (plugin_info): Add help.
6467 * plugin.c (plugin_name_args): Add help.
6468 (register_plugin_info): Set plugin->help.
6469 (print_help_one_plugin): New.
6470 (print_plugins_help): New.
6471 * plugin.h (print_plugins_help): New.
6472 * toplev.c (toplev_main): Call print_plugins_help if needed.
6473
ccacdf06
RG
64742009-04-16 Richard Guenther <rguenther@suse.de>
6475
6476 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
6477 (gimple_ior_addresses_taken_1): New function.
6478 (gimple_ior_addresses_taken): Likewise.
6479 * gimple.h (struct gimple_statement_with_ops_base): Remove
6480 addresses_taken member.
6481 (gimple_ior_addresses_taken): Declare.
6482 (gimple_addresses_taken, gimple_addresses_taken_ptr,
6483 gimple_set_addresses_taken): Remove.
6484 * ipa-reference.c (mark_address): New function.
6485 (scan_stmt_for_static_refs): Use it for marking addresses taken.
6486 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
6487 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
6488 (gimple_add_to_addresses_taken): Remove.
6489 (get_tmr_operands): Call mark_address_taken.
6490 (get_asm_expr_operands): Likewise.
6491 (get_expr_operands): Likewise.
6492 (build_ssa_operands): Do not clear the addresses_taken bitmap.
6493 (free_stmt_operands): Do not free it.
6494 * tree-ssa.c (delete_tree_ssa): Likewise.
6495 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
6496
346ef3fa
RG
64972009-04-16 Richard Guenther <rguenther@suse.de>
6498
6499 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
6500 (walk_stmt_load_store_ops): Likewise.
6501 * gimple.c (get_base_loadstore): New function.
6502 (walk_stmt_load_store_addr_ops): Likewise.
6503 (walk_stmt_load_store_ops): Likewise.
6504 * ipa-pure-const.c (check_op): Simplify.
6505 (check_load, check_store): New functions.
6506 (check_stmt): Use walk_stmt_load_store_ops.
6507 * ipa-reference.c (mark_load): Adjust signature.
6508 (mark_store): Likewise.
6509 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
6510
44e9f006
RAE
65112009-04-16 Rafael Avila de Espindola <espindola@google.com>
6512
6513 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
6514 (plugin_info): New.
6515 * opts.c (common_handle_option): Don't call print_version.
6516 * plugin.c (plugin_name_args): Add version.
6517 (register_plugin_info): New.
6518 (register_callback): Handle PLUGIN_INFO.
6519 (try_init_one_plugin): New.
6520 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
6521 if failed to init.
6522 (finalize_one_plugin): New.
6523 (finalize_plugins): New.
6524 (print_one_plugin): New.
6525 (print_plugins_versions): New.
6526 * plugin.h (print_plugins_versions): New.
6527 (finalize_plugins): New.
6528 * toplev.c (compile_file): Don't call initialize_plugins.
6529 (print_version): Call print_plugins_versions.
6530 (toplev_main): Call initialize_plugins. Print version if needed.
6531 Call finalize_plugins.
6532
41fd0f9b
RAE
65332009-04-16 Rafael Avila de Espindola <espindola@google.com>
6534
6535 * common.opt (fversion): New.
6536 * gcc.c (print_version): New.
6537 (process_command): Don't print the version. Just set print_version.
6538 (main): Print version. Call subprocesses if print_version and
6539 verbose_flag are set.
6540 * opts.c (common_handle_option): Handle OPT_fversion.
6541
550918ca 65422009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 6543 Ira Rosen <irar@il.ibm.com>
550918ca
RG
6544
6545 PR tree-optimization/39698
6546 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
6547 type of the reduction variable. Only generate the def if
6548 it is needed.
6549
6550 * omp-low.c (expand_omp_for_generic): When converting to a pointer
6551 make sure to first convert to an integer of the same precision.
6552 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
6553 the type of the evolution correctly in computing the new
6554 induction variable base.
6555
54634841
RG
65562009-04-16 Richard Guenther <rguenther@suse.de>
6557
6558 PR middle-end/39625
6559 * tree-cfg.c (make_blocks): Split statements with to-be
6560 abnormal SSA names on the lhs.
6561
b6fc2cdb
PB
65622009-04-16 Paolo Bonzini <bonzini@gnu.org>
6563
6564 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
6565 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
6566 * c-typeck.c (really_start_incremental_init): Likewise.
6567 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
6568 (TARGET_INITIALIZER): Remove it.
6569 * target.h (struct target): Remove vector_opaque_p.
6570 * tree.c (build_opaque_vector_type): New.
6571 * tree.h (TYPE_VECTOR_OPAQUE): New.
6572 (build_opaque_vector_type): Declare.
6573 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
6574 * config/rs6000/rs6000.c (build_opaque_vector_type,
6575 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
6576 (rs6000_init_builtins): Use build_opaque_vector_type for
6577 opaque_V4SI_type_node.
6578
a417cdd9
CM
65792009-04-15 Catherine Moore <clm@codesourcery.com>
6580
532bfb0a
AJ
6581 * debug.h (set_name): Declare.
6582 * dwarf2out.c (dwarf2out_set_name): Declare.
6583 (dwarf2_debug_hooks): Add set_name.
6584 (find_AT_string): New.
6585 (add_AT_string): Call find_AT_string.
6586 (dwarf2out_set_name): New.
6587 * cp/decl.c (grokdeclarator): Call set_name.
6588 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
6589 * debug.c (do_nothing_debug_hooks): Likewise.
6590 * dbxout.c (dbx_debug_hooks): Likewise.
6591 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 6592
60839f5d 65932009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 6594
532bfb0a
AJ
6595 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
6596 reg for single-precision FPU.
6597 * config/rs6000/rs6000.md (movsi_internal1): Only for
6598 !TARGET_SINGLE_FPU.
6599 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
6600 single-precision FP regs.
6601
ada39f0b
RG
66022009-04-15 Richard Guenther <rguenther@suse.de>
6603
6604 * omp-low.c (lower_rec_input_clauses): Build correct address
6605 expressions.
6606 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 6607 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
6608 (generate_memset_zero): Fix types.
6609 * tree-profile.c (prepare_instrumented_value): Correctly
6610 widen a pointer.
6611
6866c6e8
ILT
66122009-04-15 Ian Lance Taylor <iant@google.com>
6613
6614 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
6615 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
6616 for -Wall and for -Wc++-compat.
6617 (c_common_post_options): For C++, set warn_enum_compare if not
6618 already set.
6619 * c-tree.h (struct c_expr): Add field original_type.
6620 (build_external_ref): Update declaration.
6621 * c-parser.c (c_parser_braced_init): Set original_type.
6622 (c_parser_initelt): Likewise.
6623 (c_parser_expr_no_commas): Likewise.
6624 (c_parser_conditional_expression): Likewise.
6625 (c_parser_cast_expression): Likewise.
6626 (c_parser_unary_expression): Likewise. Pull setting of
6627 original_code to top of function.
6628 (c_parser_sizeof_expression): Set original_type.
6629 (c_parser_alignof_expression): Likewise.
6630 (c_parser_postfix_expression): Likewise. Pull setting of
6631 original_code to top of function.
532bfb0a 6632 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
6633 (c_parser_postfix_expression_after_primary): Likewise.
6634 (c_parser_expression): Likewise.
6635 * c-typeck.c (build_external_ref): Add type parameter. Change all
6636 callers.
6637 (c_expr_sizeof_expr): Set original_type field.
6638 (parser_build_unary_op): Likewise.
6639 (parser_build_binary_op): Likewise. Optionally warn about
6640 comparisons of enums of different types.
6641 (digest_init): Set original_type field.
6642 (really_start_incremental_init): Likewise.
6643 (push_init_level, pop_init_level): Likewise.
6644 * doc/invoke.texi (Warning Options): -Wenum-compare now
6645 supported in C.
6646
f116fecf
RG
66472009-04-15 Richard Guenther <rguenther@suse.de>
6648
6649 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
6650 out a necessary conversion.
6651 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
6652 names we didn't value number.
6653 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
6654
25e20805
RG
66552009-04-15 Richard Guenther <rguenther@suse.de>
6656
6657 PR tree-optimization/39764
6658 * tree-ssa-ccp.c (get_value): Canonicalize value with
6659 canonicalize_float_value.
6660
90cc3676
JH
66612009-04-15 Jan Hubicka <jh@suse.cz>
6662
6663 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
6664 Wrong version of patch.
6665
6d14c006
JH
66662009-04-15 Jan Hubicka <jh@suse.cz>
6667
6668 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
6669
5afaa917
NS
66702009-04-15 Nathan Sidwell <nathan@codesourcery.com>
6671
6672 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
6673 our distinct integral and vector types.
6674
3b482fca
RAE
66752009-04-15 Rafael Avila de Espindola <espindola@google.com>
6676
6677 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
6678 * init.c (build_vtbl_address): Remove call to assemble_external.
6679
6cd1d2e2
DJ
66802009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
6681
6682 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
6683 output for other floating point modes.
6684
dab71827
DN
66852009-04-14 Diego Novillo <dnovillo@google.com>
6686
6687 * diagnostic.c (diagnostic_report_diagnostic): Do not
6688 warn about loaded plugins for DK_ERROR and DK_WARNING.
6689 * c-decl.c (declspecs_add_type): Move call to
6690 invoke_plugin_callbacks ...
6691 * c-parser.c (c_parser_declspecs): ... here.
6692 * plugin.c (dump_active_plugins): Tidy output.
6693
68a607d8
DN
66942009-04-14 Diego Novillo <dnovillo@google.com>
6695 Le-Chun Wu <lcwu@google.com>
6696
6697 * configure.ac: Add --enable-plugin support.
6698 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
6699 * Makefile.in (PLUGIN_H): Define.
6700 Export ENABLE_PLUGIN and GMPINC to site.exp.
6701 Add PLUGINLIBS to link command.
6702 Add/modify dependencies for plugin.o and files including plugin.h.
6703 (plugin.o): New.
6704 * config.in: Regenerate.
2ba9daa7 6705
68a607d8
DN
6706 * opts.c (common_handle_option): Handle OPT_fplugin_ and
6707 OPT_fplugin_arg_.
6708
67092009-04-14 Le-Chun Wu <lcwu@google.com>
6710
6711 * tree-pass.h (register_one_dump_file): Add a prototype for
6712 register_one_dump_file.
6713 * toplev.c (compile_file): Call initialize_plugins.
6714 (do_compile): Call invoke_plugin_callbacks.
6715 (toplev_main): Call invoke_plugin_callbacks.
6716 * common.opt: Add -fplugin= and -fplugin-arg-.
6717 * gcc-plugin.h: New public header file for plugins to include.
6718 * plugin.c: New source file.
6719 * plugin.h: New internal header file.
6720 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 6721
68a607d8
DN
6722 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
6723
67242009-04-14 Diego Novillo <dnovillo@google.com>
6725
6726 * doc/plugins.texi: New.
6727 * doc/gccint.texi: Add reference to Plugins chapter.
6728 * doc/invoke.texi: Document -fplugin and -fplugin-arg
6729 * diagnostic.c (diagnostic_report_diagnostic): Warn about
6730 loaded plugins, if any.
6731 * timevar.def (TV_PLUGIN_INIT): Define.
6732 (TV_PLUGIN_RUN): Define.
6733 * plugin.c: Include timevar.h
6734 (plugins_active_p): New.
6735 (dump_active_plugins): New.
6736 (debug_active_plugins): New.
6737
50617257
JM
67382009-04-14 Joseph Myers <joseph@codesourcery.com>
6739
6740 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
6741 library paths.
6742 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
6743
b32f6fff
KH
67442009-04-14 Kazu Hirata <kazu@codesourcery.com>
6745
6746 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
6747 the same as a minus without a shift.
6748
85d04fa2
NC
67492009-04-14 Nick Clifton <nickc@redhat.com>
6750
6751 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
6752 comparisons with small integers will always produce a short
6753 branch.
6754
e495a0c8
RAE
67552009-04-14 Rafael Avila de Espindola <espindola@google.com>
6756
6757 Merge:
e495a0c8
RAE
6758 2008-12-19 Diego Novillo <dnovillo@google.com>
6759
532bfb0a 6760 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 6761
ad41bd84 67622009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
6763
6764 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
6765 verification.
6766 (verify_gimple_assign_binary): Likewise. Handle shifts and
6767 rotates correctly.
6768 (verify_gimple_phi): Print the mismatched argument position.
6769 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6770 Fix types.
6771 (vect_update_init_of_dr): Likewise.
6772 * matrix-reorg.c (transform_access_sites): Do what the
6773 comment suggests.
6774 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
6775
60839f5d 67762009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
6777
6778 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
6779 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
6780 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 6781 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
6782 remove duplicate config
6783
b0e2d008
DR
67842009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6785
6786 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
6787 file_name:line_number type locator of the call site.
2ba9daa7 6788
1244a8b7
VM
67892009-04-13 Vladimir Makarov <vmakarov@redhat.com>
6790
6791 * genautomata.c: Put blank after comma.
6792 (automaton_decls): New.
6793 (struct unit_usage): Add comments to member next.
6794 (store_alt_unit_usage): Keep the list ordered.
6795 (unit_present_on_list_p, equal_alternatives_p): New.
6796 (check_regexp_units_distribution): Check units distribution
6797 correctness correctly.
6798 (main): Don't write automata if error is found. Return correct
6799 exit code.
2ba9daa7 6800
1244a8b7
VM
6801 * config/m68k/cf.md (cfv4_ds): Remove.
6802 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
6803 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
6804
6805 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
6806 power4-load-ext, power4-store, power4-store-update,
6807 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
6808 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
6809 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
6810 power4-sqrt, power4-isync): Modify reservation to make correct
6811 unit distribution to automata.
6812
6813 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
6814 power5-store-update, power5-two, power5-three, power5-lmul,
6815 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 6816
f7dd1864
AN
68172009-04-13 Adam Nemet <anemet@caviumnetworks.com>
6818
6819 * except.c (pass_set_nothrow_function_flags): Set name and add
6820 TODO_dump_func.
6821 (set_nothrow_function_flags): Mention in the dump file when
6822 changing a function to nothrow.
6823
59a1171f
OS
68242009-04-13 Ozkan Sezer <sezeroz@gmail.com>
6825
6826 PR/39066
6827 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
6828 instead of unsigned long.
6829
934c2060
RR
68302009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6831
f7dd1864
AN
6832 * config/arm/arm.c (return_used_this_function): Remove.
6833 (arm_output_function_prologue): Remove use of
934c2060 6834 return_used_this_function.
f7dd1864 6835 (output_return_instruction): Replace use of
934c2060
RR
6836 return_used_this_function
6837 by cfun->machine->return_used_this_function.
f7dd1864
AN
6838 (arm_output_epilogue): Likewise.
6839 (arm_output_function_epilogue): Likewise.
6840 (thumb_unexpanded_epilogue): Likewise.
6841 * config/arm/arm.h (struct machine_function):
934c2060 6842 New member return_used_this_function.
f7dd1864 6843
ae5cc016
MM
68442009-04-12 Mark Mitchell <mark@codesourcery.com>
6845
6846 * doc/install.texi: Correct description of default directory for
6847 --with-gxx-include-dir.
6848
a0ce68df 68492009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
6850
6851 * fold-const.c (build_range_check): Properly deal with enumeral and
6852 boolean base types.
6853
3906a4a1
SB
68542009-04-12 Steven Bosscher <steven@gcc.gnu.org>
6855
6856 * doc/invoke.texi (max_gcse_passes): Remove documentation.
6857 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
6858 * params.h (MAX_GCSE_PASSES): Remove.
6859 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
6860 in sequence. Remove ability to run multiple passes.
6861 (bypass_jumps): Report run as third CPROP pass.
6862
efaadb93
AN
68632009-04-12 Adam Nemet <anemet@caviumnetworks.com>
6864
6865 PR middle-end/39651
6866 * except.c (can_throw_external): Look at each insn in a SEQUENCE
6867 when deciding whether the whole SEQUENCE can throw.
6868
4c48007b
UB
68692009-04-12 Uros Bizjak <ubizjak@gmail.com>
6870
6871 PR target/39740
6872 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
6873 offseted label references.
6874
b4104018
JH
68752009-04-11 Jan Hubicka <jh@suse.cz>
6876
6877 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
6878
32848948
RG
68792009-04-11 Richard Guenther <rguenther@suse.de>
6880
6881 PR middle-end/39732
6882 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
6883 return variables as TREE_ADDRESSABLE.
6884
8810712e
RG
68852009-04-11 Richard Guenther <rguenther@suse.de>
6886
6887 PR tree-optimization/39713
6888 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
6889 reference trees have SSA_NAME operands.
6890
fa78c0c1
RG
68912009-04-11 Richard Guenther <rguenther@suse.de>
6892
6893 PR c/39712
6894 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
6895 address expressions.
6896
4d722130
DK
68972009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
6898
6899 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
6900 match changes in Cygwin 1.7
6901 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
6902 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
6903
567a90f5
PB
69042009-04-10 Paolo Bonzini <bonzini@gnu.org>
6905
6906 PR tree-optimization/39701
6907 * doc/invoke.texi (Optimization Options): Document change in
6908 meaning and initialization of -fdelete-null-pointer-checks.
6909
1ad2f450
L
69102009-04-10 H.J. Lu <hongjiu.lu@intel.com>
6911
6912 PR middle-end/39701
6913 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
6914
6915 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
6916 here.
6917
6918 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
6919
1afc5373
CF
69202009-04-10 Chao-ying Fu <fu@mips.com>
6921
6922 * doc/tm.texi (Instruction Output): Document
6923 TARGET_ASM_FINAL_POSTSCAN_INSN.
6924 * target.h (final_postscan_insn): New field in asm_out.
6925 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
6926 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
6927 * final.c (final_scan_insn): Call
6928 targetm.asm_out.final_postscan_insn after outputting
6929 an asm macro and a normal instruction.
6930
6931 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
6932 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
6933 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
6934 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
6935 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
6936
4d35e75c
PB
69372009-04-10 Paolo Bonzini <bonzini@gnu.org>
6938
6939 PR middle-end/39701
1ad2f450
L
6940 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
6941 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 6942
62c49b83
L
69432009-04-10 H.J. Lu <hongjiu.lu@intel.com>
6944
6945 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
6946
80558628
L
69472009-04-09 H.J. Lu <hongjiu.lu@intel.com>
6948
6949 PR target/39678
6950 * config/i386/i386.c (classify_argument): Handle SCmode with
6951 (bit_offset % 64) != 0.
6952
8c70d28b
SL
69532009-04-09 Sandra Loosemore <sandra@codesourcery.com>
6954
6955 * doc/invoke.texi (Optimize Options): Add cross-reference to
6956 -Q --help=optimizers examples.
6957
e1ff19bf
BE
69582009-04-10 Ben Elliston <bje@au.ibm.com>
6959
6960 PR target/36800
6961 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
6962 regalign for the reg == fpr and TDmode case.
6963
52daca75
DA
69642009-04-09 David Ayers <ayers@fsfe.org>
6965
6966 PR objc/29200
6967 * objc/objc-act.c (warn_with_method): Remove helper function.
6968 (check_duplicates): Call warning and inform directly.
6969 (really_start_method): Likewise.
6970
b45f0e58
PB
69712009-04-09 Paolo Bonzini <bonzini@gnu.org>
6972
6973 * expmed.c (expand_divmod): Always use a comparison for a division
6974 by a large unsigned integer.
6975
1ad2f450
L
6976 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
6977 for things others than variables or functions as nonzero.
b45f0e58 6978
748086b7
JJ
69792009-04-09 Nick Clifton <nickc@redhat.com>
6980
6981 * unwind-compat.c: Change copyright header to refer to version
6982 3 of the GNU General Public License with version 3.1 of the
6983 GCC Runtime Library Exception and to point readers at the
7a715bba 6984 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
6985 * config/alpha/crtfastmath.c: Likewise.
6986 * config/alpha/linux-unwind.h: Likewise.
6987 * config/alpha/qrnnd.asm: Likewise.
6988 * config/alpha/vms-crt0-64.c: Likewise.
6989 * config/alpha/vms-crt0.c: Likewise.
6990 * config/alpha/vms-dwarf2.asm: Likewise.
6991 * config/alpha/vms-dwarf2eh.asm: Likewise.
6992 * config/alpha/vms-psxcrt0-64.c: Likewise.
6993 * config/alpha/vms-psxcrt0.c: Likewise.
6994 * config/alpha/vms_tramp.asm: Likewise.
6995 * config/arc/initfini.c: Likewise.
6996 * config/arc/lib1funcs.asm: Likewise.
6997 * config/arm/bpabi-v6m.S: Likewise.
6998 * config/arm/bpabi.S: Likewise.
6999 * config/arm/bpabi.c: Likewise.
7000 * config/arm/crti.asm: Likewise.
7001 * config/arm/crtn.asm: Likewise.
7002 * config/arm/ieee754-df.S: Likewise.
7003 * config/arm/ieee754-sf.S: Likewise.
7004 * config/arm/lib1funcs.asm: Likewise.
7005 * config/arm/libunwind.S: Likewise.
7006 * config/arm/linux-atomic.c: Likewise.
7007 * config/arm/mmintrin.h: Likewise.
7008 * config/arm/pr-support.c: Likewise.
7009 * config/arm/unaligned-funcs.c: Likewise.
7010 * config/arm/unwind-arm.c: Likewise.
7011 * config/arm/unwind-arm.h: Likewise.
7012 * config/avr/libgcc.S: Likewise.
7013 * config/bfin/crti.s: Likewise.
7014 * config/bfin/crtlibid.s: Likewise.
7015 * config/bfin/crtn.s: Likewise.
7016 * config/bfin/lib1funcs.asm: Likewise.
7017 * config/bfin/linux-unwind.h: Likewise.
7018 * config/cris/arit.c: Likewise.
7019 * config/cris/cris_abi_symbol.c: Likewise.
7020 * config/darwin-64.c: Likewise.
7021 * config/darwin-crt2.c: Likewise.
7022 * config/darwin-crt3.c: Likewise.
7023 * config/darwin.h: Likewise.
7024 * config/dbxelf.h: Likewise.
7025 * config/dfp-bit.c: Likewise.
7026 * config/dfp-bit.h: Likewise.
7027 * config/elfos.h: Likewise.
7028 * config/fixed-bit.c: Likewise.
7029 * config/fixed-bit.h: Likewise.
7030 * config/fp-bit.c: Likewise.
7031 * config/fp-bit.h: Likewise.
7032 * config/fr30/crti.asm: Likewise.
7033 * config/fr30/crtn.asm: Likewise.
7034 * config/fr30/lib1funcs.asm: Likewise.
7035 * config/freebsd-spec.h: Likewise.
7036 * config/frv/cmovd.c: Likewise.
7037 * config/frv/cmovh.c: Likewise.
7038 * config/frv/cmovw.c: Likewise.
7039 * config/frv/frvbegin.c: Likewise.
7040 * config/frv/frvend.c: Likewise.
7041 * config/frv/lib1funcs.asm: Likewise.
7042 * config/glibc-stdint.h: Likewise.
7043 * config/h8300/clzhi2.c: Likewise.
7044 * config/h8300/crti.asm: Likewise.
7045 * config/h8300/crtn.asm: Likewise.
7046 * config/h8300/ctzhi2.c: Likewise.
7047 * config/h8300/fixunssfsi.c: Likewise.
7048 * config/h8300/lib1funcs.asm: Likewise.
7049 * config/h8300/parityhi2.c: Likewise.
7050 * config/h8300/popcounthi2.c: Likewise.
7051 * config/i386/ammintrin.h: Likewise.
7052 * config/i386/att.h: Likewise.
7053 * config/i386/avxintrin.h: Likewise.
7054 * config/i386/biarch64.h: Likewise.
7055 * config/i386/bmmintrin.h: Likewise.
7056 * config/i386/cpuid.h: Likewise.
7057 * config/i386/cross-stdarg.h: Likewise.
7058 * config/i386/crtfastmath.c: Likewise.
7059 * config/i386/crtprec.c: Likewise.
7060 * config/i386/cygming-crtbegin.c: Likewise.
7061 * config/i386/cygming-crtend.c: Likewise.
7062 * config/i386/cygwin.asm: Likewise.
7063 * config/i386/emmintrin.h: Likewise.
7064 * config/i386/gmm_malloc.h: Likewise.
7065 * config/i386/gthr-win32.c: Likewise.
7066 * config/i386/i386.h: Likewise.
7067 * config/i386/immintrin.h: Likewise.
7068 * config/i386/linux-unwind.h: Likewise.
7069 * config/i386/linux64.h: Likewise.
7070 * config/i386/mm3dnow.h: Likewise.
7071 * config/i386/mmintrin-common.h: Likewise.
7072 * config/i386/mmintrin.h: Likewise.
7073 * config/i386/nmmintrin.h: Likewise.
7074 * config/i386/pmm_malloc.h: Likewise.
7075 * config/i386/pmmintrin.h: Likewise.
7076 * config/i386/smmintrin.h: Likewise.
7077 * config/i386/sol2-c1.asm: Likewise.
7078 * config/i386/sol2-ci.asm: Likewise.
7079 * config/i386/sol2-cn.asm: Likewise.
7080 * config/i386/sol2-gc1.asm: Likewise.
7081 * config/i386/tmmintrin.h: Likewise.
7082 * config/i386/unix.h: Likewise.
7083 * config/i386/w32-unwind.h: Likewise.
7084 * config/i386/wmmintrin.h: Likewise.
7085 * config/i386/x86-64.h: Likewise.
7086 * config/i386/x86intrin.h: Likewise.
7087 * config/i386/xmmintrin.h: Likewise.
7088 * config/ia64/crtbegin.asm: Likewise.
7089 * config/ia64/crtend.asm: Likewise.
7090 * config/ia64/crtfastmath.c: Likewise.
7091 * config/ia64/crti.asm: Likewise.
7092 * config/ia64/crtn.asm: Likewise.
7093 * config/ia64/fde-glibc.c: Likewise.
7094 * config/ia64/lib1funcs.asm: Likewise.
7095 * config/ia64/linux-unwind.h: Likewise.
7096 * config/ia64/quadlib.c: Likewise.
7097 * config/ia64/unwind-ia64.c: Likewise.
7098 * config/linux.h: Likewise.
7099 * config/m32c/m32c-lib1.S: Likewise.
7100 * config/m32c/m32c-lib2-trapv.c: Likewise.
7101 * config/m32c/m32c-lib2.c: Likewise.
7102 * config/m32r/initfini.c: Likewise.
7103 * config/m68hc11/larith.asm: Likewise.
7104 * config/m68hc11/m68hc11-crt0.S: Likewise.
7105 * config/m68k/cf.md: Likewise.
7106 * config/m68k/crti.s: Likewise.
7107 * config/m68k/crtn.s: Likewise.
7108 * config/m68k/lb1sf68.asm: Likewise.
7109 * config/m68k/linux-unwind.h: Likewise.
7110 * config/mcore/crti.asm: Likewise.
7111 * config/mcore/crtn.asm: Likewise.
7112 * config/mcore/lib1.asm: Likewise.
7113 * config/mips/linux-unwind.h: Likewise.
7114 * config/mips/loongson.h: Likewise.
7115 * config/mips/mips16.S: Likewise.
7116 * config/mmix/crti.asm: Likewise.
7117 * config/mmix/crtn.asm: Likewise.
7118 * config/pa/fptr.c: Likewise.
7119 * config/pa/hpux-unwind.h: Likewise.
7120 * config/pa/lib2funcs.asm: Likewise.
7121 * config/pa/linux-atomic.c: Likewise.
7122 * config/pa/linux-unwind.h: Likewise.
7123 * config/pa/milli64.S: Likewise.
7124 * config/pa/quadlib.c: Likewise.
7125 * config/pa/stublib.c: Likewise.
7126 * config/picochip/libgccExtras/adddi3.asm: Likewise.
7127 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
7128 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
7129 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
7130 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
7131 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
7132 * config/picochip/libgccExtras/divmod15.asm: Likewise.
7133 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
7134 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
7135 * config/picochip/libgccExtras/longjmp.asm: Likewise.
7136 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
7137 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
7138 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
7139 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
7140 * config/picochip/libgccExtras/setjmp.asm: Likewise.
7141 * config/picochip/libgccExtras/subdi3.asm: Likewise.
7142 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
7143 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
7144 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
7145 * config/rs6000/750cl.h: Likewise.
7146 * config/rs6000/altivec.h: Likewise.
7147 * config/rs6000/biarch64.h: Likewise.
7148 * config/rs6000/crtresfpr.asm: Likewise.
7149 * config/rs6000/crtresgpr.asm: Likewise.
7150 * config/rs6000/crtresxfpr.asm: Likewise.
7151 * config/rs6000/crtresxgpr.asm: Likewise.
7152 * config/rs6000/crtsavfpr.asm: Likewise.
7153 * config/rs6000/crtsavgpr.asm: Likewise.
7154 * config/rs6000/darwin-asm.h: Likewise.
7155 * config/rs6000/darwin-fallback.c: Likewise.
7156 * config/rs6000/darwin-fpsave.asm: Likewise.
7157 * config/rs6000/darwin-ldouble.c: Likewise.
7158 * config/rs6000/darwin-tramp.asm: Likewise.
7159 * config/rs6000/darwin-unwind.h: Likewise.
7160 * config/rs6000/darwin-vecsave.asm: Likewise.
7161 * config/rs6000/darwin-world.asm: Likewise.
7162 * config/rs6000/e500crtres32gpr.asm: Likewise.
7163 * config/rs6000/e500crtres64gpr.asm: Likewise.
7164 * config/rs6000/e500crtres64gprctr.asm: Likewise.
7165 * config/rs6000/e500crtrest32gpr.asm: Likewise.
7166 * config/rs6000/e500crtrest64gpr.asm: Likewise.
7167 * config/rs6000/e500crtresx32gpr.asm: Likewise.
7168 * config/rs6000/e500crtresx64gpr.asm: Likewise.
7169 * config/rs6000/e500crtsav32gpr.asm: Likewise.
7170 * config/rs6000/e500crtsav64gpr.asm: Likewise.
7171 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
7172 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
7173 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
7174 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
7175 * config/rs6000/eabi-ci.asm: Likewise.
7176 * config/rs6000/eabi-cn.asm: Likewise.
7177 * config/rs6000/eabi.asm: Likewise.
7178 * config/rs6000/linux-unwind.h: Likewise.
7179 * config/rs6000/linux64.h: Likewise.
7180 * config/rs6000/paired.h: Likewise.
7181 * config/rs6000/paired.md: Likewise.
7182 * config/rs6000/ppc64-fp.c: Likewise.
7183 * config/rs6000/ppu_intrinsics.h: Likewise.
7184 * config/rs6000/rs6000.h: Likewise.
7185 * config/rs6000/si2vmx.h: Likewise.
7186 * config/rs6000/sol-ci.asm: Likewise.
7187 * config/rs6000/sol-cn.asm: Likewise.
7188 * config/rs6000/spe.h: Likewise.
7189 * config/rs6000/spu2vmx.h: Likewise.
7190 * config/rs6000/sysv4.h: Likewise.
7191 * config/rs6000/tramp.asm: Likewise.
7192 * config/rs6000/vec_types.h: Likewise.
7193 * config/s390/linux-unwind.h: Likewise.
7194 * config/s390/tpf-unwind.h: Likewise.
7195 * config/score/crti.asm: Likewise.
7196 * config/score/crtn.asm: Likewise.
7197 * config/sh/crt1.asm: Likewise.
7198 * config/sh/crti.asm: Likewise.
7199 * config/sh/crtn.asm: Likewise.
7200 * config/sh/divtab-sh4-300.c: Likewise.
7201 * config/sh/divtab-sh4.c: Likewise.
7202 * config/sh/divtab.c: Likewise.
7203 * config/sh/lib1funcs-4-300.asm: Likewise.
7204 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
7205 * config/sh/lib1funcs.asm: Likewise.
7206 * config/sh/lib1funcs.h: Likewise.
7207 * config/sh/linux-atomic.asm: Likewise.
7208 * config/sh/linux-unwind.h: Likewise.
7209 * config/sh/shmedia.h: Likewise.
7210 * config/sh/sshmedia.h: Likewise.
7211 * config/sh/ushmedia.h: Likewise.
7212 * config/sparc/crtfastmath.c: Likewise.
7213 * config/sparc/linux-unwind.h: Likewise.
7214 * config/sparc/sol2-c1.asm: Likewise.
7215 * config/sparc/sol2-ci.asm: Likewise.
7216 * config/sparc/sol2-cn.asm: Likewise.
7217 * config/spu/divmodti4.c: Likewise.
7218 * config/spu/divv2df3.c: Likewise.
7219 * config/spu/float_disf.c: Likewise.
7220 * config/spu/float_unsdidf.c: Likewise.
7221 * config/spu/float_unsdisf.c: Likewise.
7222 * config/spu/float_unssidf.c: Likewise.
7223 * config/spu/mfc_multi_tag_release.c: Likewise.
7224 * config/spu/mfc_multi_tag_reserve.c: Likewise.
7225 * config/spu/mfc_tag_release.c: Likewise.
7226 * config/spu/mfc_tag_reserve.c: Likewise.
7227 * config/spu/mfc_tag_table.c: Likewise.
7228 * config/spu/multi3.c: Likewise.
7229 * config/spu/spu_internals.h: Likewise.
7230 * config/spu/spu_intrinsics.h: Likewise.
7231 * config/spu/spu_mfcio.h: Likewise.
7232 * config/spu/vec_types.h: Likewise.
7233 * config/spu/vmx2spu.h: Likewise.
7234 * config/stormy16/stormy16-lib2.c: Likewise.
7235 * config/svr4.h: Likewise.
7236 * config/sync.c: Likewise.
7237 * config/v850/lib1funcs.asm: Likewise.
7238 * config/vxlib-tls.c: Likewise.
7239 * config/vxlib.c: Likewise.
7240 * config/vxworks-dummy.h: Likewise.
7241 * config/xtensa/crti.asm: Likewise.
7242 * config/xtensa/crtn.asm: Likewise.
7243 * config/xtensa/ieee754-df.S: Likewise.
7244 * config/xtensa/ieee754-sf.S: Likewise.
7245 * config/xtensa/lib1funcs.asm: Likewise.
7246 * config/xtensa/lib2funcs.S: Likewise.
7247 * config/xtensa/linux-unwind.h: Likewise.
7248 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7249 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
7250 * coretypes.h: Likewise.
7251 * crtstuff.c: Likewise.
7252 * defaults.h: Likewise.
7253 * dwarf2.h: Likewise.
7254 * emutls.c: Likewise.
7255 * gbl-ctors.h: Likewise.
7256 * gcov-io.h: Likewise.
7257 * ginclude/float.h: Likewise.
7258 * ginclude/iso646.h: Likewise.
7259 * ginclude/stdarg.h: Likewise.
7260 * ginclude/stdbool.h: Likewise.
7261 * ginclude/stddef.h: Likewise.
7262 * ginclude/stdfix.h: Likewise.
7263 * ginclude/stdint-gcc.h: Likewise.
7264 * ginclude/tgmath.h: Likewise.
7265 * gthr-aix.h: Likewise.
7266 * gthr-dce.h: Likewise.
7267 * gthr-gnat.c: Likewise.
7268 * gthr-gnat.h: Likewise.
7269 * gthr-lynx.h: Likewise.
7270 * gthr-mipssde.h: Likewise.
7271 * gthr-nks.h: Likewise.
7272 * gthr-posix.c: Likewise.
7273 * gthr-posix.h: Likewise.
7274 * gthr-posix95.h: Likewise.
7275 * gthr-rtems.h: Likewise.
7276 * gthr-single.h: Likewise.
7277 * gthr-solaris.h: Likewise.
7278 * gthr-tpf.h: Likewise.
7279 * gthr-vxworks.h: Likewise.
7280 * gthr-win32.h: Likewise.
7281 * gthr.h: Likewise.
7282 * libgcc2.c: Likewise.
7283 * libgcc2.h: Likewise.
7284 * libgcov.c: Likewise.
7285 * tsystem.h: Likewise.
7286 * typeclass.h: Likewise.
7287 * unwind-c.c: Likewise.
7288 * unwind-compat.h: Likewise.
7289 * unwind-dw2-fde-compat.c: Likewise.
7290 * unwind-dw2-fde-darwin.c: Likewise.
7291 * unwind-dw2-fde-glibc.c: Likewise.
7292 * unwind-dw2-fde.c: Likewise.
7293 * unwind-dw2-fde.h: Likewise.
7294 * unwind-dw2.c: Likewise.
7295 * unwind-dw2.h: Likewise.
7296 * unwind-generic.h: Likewise.
7297 * unwind-pe.h: Likewise.
7298 * unwind-sjlj.c: Likewise.
7299 * unwind.inc: Likewise.
7300 * config/arm/neon-gen.ml: Change generated copyright header to
7301 refer to version 3 of the GNU General Public License with
7302 version 3.1 of the GCC Runtime Library Exception and to point
7303 readers at the COPYING3 and COPYING3.RUNTIME files and the
7304 FSF's license web page.
7305 * config/arm/arm_neon.h: Regenerate.
7306
73072009-04-09 Jakub Jelinek <jakub@redhat.com>
7308
7309 * config/cris/cris.md: Change copyright header to refer to version
7310 3 of the GNU General Public License.
7311 * doc/install.texi2html: Change copyright header to refer to version
7312 3 of the GNU General Public License and to point readers at the
7313 COPYING3 file and the FSF's license web page.
7314 * config/vax/linux.h: Likewise.
7315
4a77c72b
PB
73162009-04-09 Paolo Bonzini <bonzini@gnu.org>
7317
1ad2f450
L
7318 * config/i386/i386.md (cmpcc): New.
7319 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
7320 (sync_compare_and_swap_cc*): Delete.
7321
7322 * config/s390/s390.c (s390_compare_emitted): Remove.
7323 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
7324 s390_compare_emitted used to be handled. Assert that modes match.
7325 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
7326 refer to sync_compare_and_swap_ccsi.
7327 * config/s390/s390.h (s390_compare_emitted): Remove.
7328 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
7329 instead of s390_compare_emitted.
7330 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
7331 instead of s390_compare_emitted.
7332 * config/s390/s390.md (cmpcc): New.
7333 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
7334 CC_REGNUM, do not pretend it's set.
7335 (sync_compare_and_swap_cc*): Delete.
7336 * config/s390/predicates.md (cc_reg_operand): New.
7337
7338 * expr.c (sync_compare_and_swap_cc): Delete.
7339 * optabs.h (sync_compare_and_swap_cc): Delete.
7340 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
7341 is being used with can_compare_p.
7342 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
7343 (find_cc_set): New.
7344 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
7345 look for a MODE_CC set instead. Use emit_store_flag.
7346 (expand_compare_and_swap_loop): Likewise, with some additional
7347 complication to avoid a force_reg when useless. Use
7348 emit_cmp_and_jump_insns.
7349 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
7350 * doc/md.texi (sync_compare_and_swap_cc): Merge with
7351 sync_compare_and_swap documentation.
4a77c72b 7352
0c0efb33
JH
73532009-04-09 Jan Hubicka <jh@suse.cz>
7354
7355 * except.c (find_prev_try): Break out from ....
7356 (duplicate_eh_regions): ... here; properly update prev_try pointers
7357 when duplication part of tree.
7358 (dump_eh_tree): Improve dumping.
7359 (verify_eh_region): New.
7360 (verify_eh_tree): Use it.
7361
22a65a54
RG
73622009-04-06 Richard Guenther <rguenther@suse.de>
7363
7364 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
7365 &ARRAY addresses by adjusting their types and prepending
7366 a conversion.
7367 * tree-cfg.c (verify_gimple_assign_single): Verify that
7368 addresses are correct.
7369
f76968e6
RG
73702009-04-09 Richard Guenther <rguenther@suse.de>
7371
7372 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
7373 indices into an array reference if possible.
7374 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7375 Fold POINTER_PLUS_EXPR statements with invariant address.
7376
c90c5fb5
AM
73772009-04-09 Alan Modra <amodra@bigpond.net.au>
7378
7379 PR target/39634
7380 * config.gcc (powerpc64-*-linux*): Always build biarch.
7381
17cede2e
JM
73822009-04-09 Joseph Myers <joseph@codesourcery.com>
7383
7384 PR c/39613
7385 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
7386 it and pedwarn if this results in an INTEGER_CST.
7387
a3337ea2
KG
73882009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7389
7390 * doc/install.texi: Update minimum GMP version. Remove obsolete
7391 text in MPFR section.
7392
ce9ba79b
JJ
73932009-04-08 Jakub Jelinek <jakub@redhat.com>
7394
7395 * dwarf2out.c (class_scope_p): New static inline.
7396 (class_or_namespace_scope_p): Use it.
7397 (gen_variable_die): Use DW_TAG_member tag for static data member
7398 declarations instead of DW_TAG_variable.
7399
4f0ae266
JJ
7400 PR middle-end/39573
7401 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
7402 variables.
7403
d27f0ddc
RG
74042009-04-08 Richard Guenther <rguenther@suse.de>
7405
7406 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
7407 valueize random data.
7408
557cc596
DE
74092009-04-08 David Edelsohn <edelsohn@gnu.org>
7410
7411 * config.gcc (aix tm_file): Add aix-stdint.h.
7412 (aix tm clause use_gcc_stdint): Set to wrap.
7413 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 7414
75ccc1e7
RG
74152009-04-08 Richard Guenther <rguenther@suse.de>
7416
7417 PR middle-end/36291
7418 * tree-dfa.c (add_referenced_var): Do not recurse into
7419 global initializers.
7420 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
7421 exposed variables.
7422 (fold_const_aggregate_ref): Likewise.
7423
c6963675
PB
74242009-04-08 Paolo Bonzini <bonzini@gnu.org>
7425
6c44cf79
L
7426 * recog.c (ordered_comparison_operator): New.
7427 * gensupport.c (std_preds): Add it.
c6963675
PB
7428 * doc/md.texi (Machine-Independent Predicates): Document it.
7429
6d07ad98
JH
74302009-04-08 Jan Hubicka <jh@suse.cz>
7431
7432 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
7433 * function.h (rtl_eh): Remove exception_handler_label_map.
7434 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
7435 remove_exception_handler_label, for_each_eh_label_1): Remove.
7436 (rtl_remove_unreachable_regions): Remove.
7437 (convert_from_eh_region_ranges): Do not remove unreachable regions.
7438 (find_exception_handler_labels): Don't build the hashtable.
7439 (maybe_remove_eh_handler): Remove.
7440 (for_each_eh_label): Rewrite to walk the tree.
7441 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
7442 * except.h (maybe_remove_eh_handler): Remove.
7443 * passes.c (init_optimization_passes): Schedule second EH cleanup
7444 before out-of-ssa.
7445 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
7446 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
7447
7ddf71e3
PB
74482009-04-08 Paolo Bonzini <bonzini@gnu.org>
7449
7450 * genoutput.c (validate_optab_operands): New.
7451 (gen_insn, gen_expand): Call it.
7452
7453 * genflags.c (gen_insn): Detect misused iterators.
7454 (main): Pass line_no to gen_insn, exit with status 1 on error.
7455
7456 * genextract.c (line_no): Make global.
7457 (VEC_safe_set_locstr): Change assertion to error message.
7458 (main): Exit with status 1 on error.
7459
4d84fe7c
JM
74602009-04-08 Joseph Myers <joseph@codesourcery.com>
7461
7462 PR c/39614
7463 PR c/39673
7464 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7465 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7466 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
7467 * c-convert.c (convert): Do not call fold on results of conversion
7468 functions when the result is a C_MAYBE_CONST_EXPR.
7469 * c-parser.c (c_parser_postfix_expression): Do not fold condition
7470 of __builtin_choose_expr.
7471 * c-typeck.c (remove_c_maybe_const_expr): New.
7472 (build_unary_op, build_conditional_expr, build_compound_expr,
7473 build_binary_op, c_objc_common_truthvalue_conversion): Call
7474 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
7475 integer operands.
7476
60839f5d 74772009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 7478
2ba9daa7 7479 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 7480 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 7481
8e481a2c
DS
74822009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
7483
7484 PR bootstrap/39660
7485 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
7486 mix declarations and code.
7487
ee618c17
BE
74882009-04-08 Ben Elliston <bje@au.ibm.com>
7489
7490 * gcc.c: Replace `CC' with `GCC' throughout.
7491
f2a758a2
L
74922009-04-07 H.J. Lu <hongjiu.lu@intel.com>
7493
7494 * doc/invoke.texi: Document Atom support.
7495
6ea2bd47
JM
74962009-04-07 Jason Merrill <jason@redhat.com>
7497
7498 PR c++/25185
7499 * c-common.h, c-common.c: Add flag_pretty_templates.
7500 * c-opts.c (c_common_handle_option): Set it.
7501 * c.opt: Add -fno-pretty-templates.
7502 * doc/invoke.texi (C++ Dialect Options): Likewise.
7503
fcb82ab0
UB
75042009-04-07 Uros Bizjak <ubizjak@gmail.com>
7505
7506 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
7507 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
7508 (ia64_expand_builtin): Likewise.
7509
dc5e7298
MJ
75102009-04-07 Martin Jambor <mjambor@suse.cz>
7511
7512 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
7513 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
7514 ADDR_EXPRS are include too.
7515
0609b355
RG
75162009-04-07 Richard Guenther <rguenther@suse.de>
7517
7518 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
7519 decls are only used if passes as parameters or if they are
7520 local statics and the call is not to a builtin.
7521 (call_may_clobber_ref_p_1): Likewise.
7522
d8e535fa
PB
75232009-04-07 Paolo Bonzini <bonzini@gnu.org>
7524
7525 * expr.c (do_store_flag): Remove last argument. Simplify code
7526 to avoid duplication of tests already done by can_compare_p.
7527 (expand_expr_real_1): Adjust caller.
7528
c3c64f50
PB
75292009-04-07 Paolo Bonzini <bonzini@gnu.org>
7530
fcb82ab0
UB
7531 * optabs.c (can_compare_p): Test the predicate of a
7532 cbranch and cstore pattern.
c3c64f50 7533
9a53bc17
PB
75342009-04-07 Paolo Bonzini <bonzini@gnu.org>
7535
fcb82ab0
UB
7536 * expr.c (convert_move): Use emit_store_flag instead of
7537 "emulating" it.
9a53bc17 7538
67b8f1c1
PB
75392009-04-07 Paolo Bonzini <bonzini@gnu.org>
7540
fcb82ab0
UB
7541 * config/i386/i386.c (ix86_compare_emitted): Remove.
7542 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
7543 ix86_compare_op0 like ix86_compare_emitted used to be handled.
7544 * config/i386/i386.h (ix86_compare_emitted): Remove.
7545 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
7546 instead of ix86_compare_emitted.
7547 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 7548
44509946
AS
75492009-04-07 Andrew Stubbs <ams@codesourcery.com>
7550
7551 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
7552 Add t-sysroot-suffix to tmake_file.
7553 * config/print-sysroot-suffix.sh: New file.
7554 * config/t-sysroot-suffix: New file.
7555
ca22d882
BE
75562009-04-07 Ben Elliston <bje@au.ibm.com>
7557
7558 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
7559 as the latter produces a warning when the target does not support
7560 infinity.
7561
95aac11b
BE
75622009-04-07 Ben Elliston <bje@au.ibm.com>
7563
7564 * dfp.c: Replace type punning assignments with memcpy throughout.
7565 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 7566
633dd061
AM
75672009-04-07 Alan Modra <amodra@bigpond.net.au>
7568
7569 PR target/39634
7570 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
7571 Include soft-fp/t-softfp after rs6000/t-linux64.
7572
fe0a25ec
EB
75732009-04-06 Eric Botcazou <ebotcazou@adacore.com>
7574
7575 * stor-layout.c (set_sizetype): Use the full precision of their
7576 machine mode for bitsize types.
7577
0c011bc3
L
75782009-04-06 H.J. Lu <hongjiu.lu@intel.com>
7579
7580 * config/i386/i386.md: Revert 2 accidental checkins.
7581
b6837b94 75822009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 7583 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
7584 H.J. Lu <hongjiu.lu@intel.com>
7585
7586 Atom pipeline model, tuning and insn selection.
7587 * config.gcc (atom): Add atom config options and target.
7588
7589 * config/i386/atom.md: New.
7590
7591 * config/i386/i386.c (atom_cost): New cost.
7592 (m_ATOM): New macro flag.
7593 (initial_ix86_tune_features): Set m_ATOM.
7594 (x86_accumulate_outgoing_args): Likewise.
7595 (x86_arch_always_fancy_math_387): Likewise.
7596 (processor_target): Add Atom cost.
7597 (cpu_names): Add Atom cpu name.
7598 (override_options): Set Atom ISA.
7599 (ix86_issue_rate): New case PROCESSOR_ATOM.
7600 (ix86_adjust_cost): Likewise.
7601
7602 * config/i386/i386.h (TARGET_ATOM): New target macro.
7603 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
7604 (TARGET_OPT_AGU): New target option.
7605 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
7606 (processor_type): Add PROCESSOR_ATOM.
7607
7608 * config/i386/i386.md (cpu): Add new value "atom".
7609 (use_carry, movu): New attr.
7610 (atom.md): Include atom.md.
7611 (adddi3_carry_rex64): Set attr "use_carry".
7612 (addqi3_carry): Likewise.
7613 (addhi3_carry): Likewise.
7614 (addsi3_carry): Likewise.
7615 (*addsi3_carry_zext): Likewise.
7616 (subdi3_carry_rex64): Likewise.
7617 (subqi3_carry): Likewise.
7618 (subhi3_carry): Likewise.
7619 (subsi3_carry): Likewise.
7620 (x86_movdicc_0_m1_rex64): Likewise.
7621 (*x86_movdicc_0_m1_se): Likewise.
7622 (x86_movsicc_0_m1): Likewise.
7623 (*x86_movsicc_0_m1_se): Likewise.
7624 (*adddi_1_rex64): Emit add insn as much as possible.
7625 (*addsi_1): Likewise.
7626 (return_internal): Set atom_unit.
7627 (return_internal_long): Likewise.
7628 (return_pop_internal): Likewise.
7629 (*rcpsf2_sse): Set atom_sse_attr attr.
7630 (*qrt<mode>2_sse): Likewise.
7631 (*prefetch_sse): Likewise.
7632
7633 * config/i386/i386-c.c (ix86_target_macros_internal): New case
7634 PROCESSOR_ATOM.
7635 (ix86_target_macros_internal): Likewise.
7636
7637 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
7638 (*prefetch_sse_rex): Likewise.
7639 (sse_rcpv4sf2): Likewise.
7640 (sse_vmrcpv4sf2): Likewise.
7641 (sse_sqrtv4sf2): Likewise.
7642 (<sse>_vmsqrt<mode>2): Likewise.
7643 (sse_ldmxcsr): Likewise.
7644 (sse_stmxcsr): Likewise.
7645 (*sse_sfence): Likewise.
7646 (sse2_clflush): Likewise.
7647 (*sse2_mfence): Likewise.
7648 (*sse2_lfence): Likewise.
7649 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
7650 (<sse>_movup<ssemodesuffixf2c>): Likewise.
7651 (avx_movdqu<avxmodesuffix>): Likewise.
7652 (avx_lddqu<avxmodesuffix>): Likewise.
7653 (sse2_movntv2di): Change attr "type" to "ssemov".
7654 (sse2_movntsi): Likewise.
7655 (rsqrtv8sf2): Change attr "type" to "sseadd".
7656 (sse3_addsubv2df3): Set attr "atom_unit".
7657 (sse3_h<plusminus_insn>v4sf3): Likewise.
7658 (*sse2_pmaddwd): Likewise.
7659 (*vec_extractv2di_1_rex64): Likewise.
7660 (*vec_extractv2di_1_avx): Likewise.
7661 (sse2_psadbw): Likewise.
7662 (ssse3_phaddwv8hi3): Likewise.
7663 (ssse3_phaddwv4hi3): Likewise.
7664 (ssse3_phadddv4si3): Likewise.
7665 (ssse3_phadddv2si3): Likewise.
7666 (ssse3_phaddswv8hi3): Likewise.
7667 (ssse3_phaddswv4hi3): Likewise.
7668 (ssse3_phsubwv8hi3): Likewise.
7669 (ssse3_phsubwv4hi3): Likewise.
7670 (ssse3_phsubdv4si3): Likewise.
7671 (ssse3_phsubdv2si3): Likewise.
7672 (ssse3_phsubswv8hi3): Likewise.
7673 (ssse3_phsubswv4hi3): Likewise.
7674 (ssse3_pmaddubsw128): Likewise.
7675 (sse3_pmaddubsw: Likewise.
7676 (ssse3_palignrti): Likewise.
7677 (ssse3_palignrdi): Likewise.
7678
53e350d3
GP
76792009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
7680
7681 * doc/install.texi (Specific): Fix two cross-references to MinGW.
7682
439ef907
RG
76832009-04-06 Richard Guenther <rguenther@suse.de>
7684
7685 PR tree-optimization/28868
7686 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
7687 of which PHI results we inserted.
7688 (insert_into_preds_of_block): Record inserted PHIs.
7689 (eliminate): Eliminate redundant PHI nodes.
7690 (init_pre): Init inserted_phi_names.
7691
4bad83f5
RG
76922009-04-06 Richard Guenther <rguenther@suse.de>
7693
7694 PR tree-optimization/39643
7695 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
7696 IMAGPART_EXPRs of complex constants.
7697 (execute_fold_all_builtins): If we folded a call queue
7698 TODO_update_address_taken.
7699
570c4247
JH
77002009-04-06 Jan Hubicka <jh@suse.cz>
7701
7702 PR middle-end/39659
7703 * except.c (remove_unreachable_regions): Propagate may_contain_throw
7704 flag.
7705
a460d7a1
AS
77062009-04-06 Andrew Stubbs <ams@codesourcery.com>
7707
7708 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
7709 delay slot.
7710 (ic_invalidate_array): Likewise.
7711
60839f5d 77122009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
7713
7714 * calls.c (emit_library_call_value_1): Fix a problem with parameter
7715 alignment for library calls.
7716
7d253f6e
DS
77172009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
7718
7719 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
7720 (mingw32 tm clause use_gcc_stdint): Set to wrap.
7721 * config/i386/mingw-stdint.h: New file.
7722
941c3614
RB
77232009-04-05 Richard Guenther <rguenther@suse.de>
7724
7725 PR tree-optimization/39648
7726 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
7727 our &A vs. &A[0] IL deficiencies.
7728
12633413
JH
77292009-04-04 Jan Hubicka <jh@suse.cz>
7730
941c3614
RB
7731 * except.c (sjlj_find_directly_reachable_regions): Be ready for
7732 removed toplevel regions.
12633413
JH
7733 (sjlj_mark_call_sites): Likewise.
7734
bb2aaded
DK
77352009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
7736
7737 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
7738 (cygwin tm clause use_gcc_stdint): Set to wrap.
7739 * config/i386/cygwin-stdint.h: New file.
7740
86290011
RG
77412009-04-04 Richard Guenther <rguenther@suse.de>
7742
7743 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
7744 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
7745 single-argument PHIs if we are in loop-closed SSA form.
7746 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
7747 for the pre-condition.
7748 (slpeel_tree_peel_loop_to_edge): Likewise.
7749 (vect_build_loop_niters): Take an optional sequence to append stmts.
7750 (vect_generate_tmps_on_preheader): Likewise.
7751 (vect_do_peeling_for_loop_bound): Take extra guards for the
7752 pre-condition.
7753 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
7754 the cost model check.
7755 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 7756 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
7757 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
7758 (vect_do_peeling_for_loop_bound): Likewise.
7759 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
7760 loop bound only record extra pre-conditions, do not apply loop
7761 versioning.
7762
5eeeac64
RG
77632009-04-04 Richard Guenther <rguenther@suse.de>
7764
7765 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
7766 renaming code.
7767
1ff7d06b
JH
77682009-04-04 Jan Hubicka <jh@suse.cz>
7769
7770 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
7771 last_basic_block for size of bb->index indexed array.
7772 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
7773 compute_out, link_btr_uses, build_btr_def_use_webs,
7774 build_btr_def_use_webs, migrate_btr_defs): Likewise.
7775
14925fcd
JH
77762009-04-04 Jan Hubicka <jh@suse.cz>
7777
7778 * except.c (remove_eh_handler_and_replace): Break out from ...
7779 (remove_eh_handler): ... here.
7780 (bring_to_root): New function.
7781 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
7782 handled ones, bring others to root of tree.
7783
4e6d1743
JH
77842009-04-04 Jan Hubicka <jh@suse.cz>
7785
4cb735f7
JH
7786 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
7787 (all_phis_safe_to_merge): New function.
7788 (update_info): New structure.
7789 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
7790 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 7791
c6803d43
RG
77922009-04-04 Richard Guenther <rguenther@suse.de>
7793
7794 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
7795 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
7796 (append_vuse): Likewise.
7797
54f5943c
JJ
77982009-04-04 Jakub Jelinek <jakub@redhat.com>
7799
7800 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
7801 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
7802 instead of REG_UNSAVED for DW_CFA_undefined.
7803 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
7804 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
7805 outermost frame.
7806
aad2bccb
RE
78072009-04-04 Richard Earnshaw <rearnsha@arm.com>
7808
7809 PR target/39501
7810 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
7811 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
7812 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
7813
aa7069aa
RG
78142009-04-04 Richard Guenther <rguenther@suse.de>
7815
7816 PR tree-optimization/8781
7817 PR tree-optimization/37892
7818 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
7819 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
7820 (valueize_refs): Call it for *& valueizations.
7821 (shared_reference_ops_from_ref): Rename to ...
7822 (valueize_shared_reference_ops_from_ref): ... this and valueize.
7823 (shared_reference_ops_from_call): Rename to ...
7824 (valueize_shared_reference_ops_from_call): ... this and valueize.
7825 (vn_reference_lookup): Update.
7826 (visit_reference_op_call): Likewise.
7827 * tree-ssa-pre.c (phi_translate_1): Fold *&.
7828 (eliminate): Value-replace the call address in call statements.
7829
cd15ad3e
RG
78302009-04-04 Richard Guenther <rguenther@suse.de>
7831
7832 PR tree-optimization/39636
7833 * tree-ssa-forwprop.c
7834 (forward_propagate_addr_into_variable_array_index): Check for
7835 GIMPLE_ASSIGN before accessing the rhs code.
7836
462f3262
JM
78372009-04-03 Jason Merrill <jason@redhat.com>
7838
7839 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
7840
6adb807e
SE
78412009-04-03 Steve Ellcey <sje@cup.hp.com>
7842
7843 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
7844 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
7845 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
7846 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
7847 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
7848 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
7849 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
7850 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
7851 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
7852 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
7853 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
7854 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
7855 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
7856 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
7857 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
7858 Use fr_reg_or_fp01_operand instead of fr_register_operand
7859
7860 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
7861 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
7862 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
7863
174b3107
VM
78642009-04-03 Vladimir Makarov <vmakarov@redhat.com>
7865
b844e5d8
L
7866 PR rtl-optimization/39607
7867 PR rtl-optimization/39631
7a715bba
UB
7868
7869 Revert:
2ba9daa7 7870
174b3107
VM
7871 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7872 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7873 instead of DF_LR_OUT.
7874 * ira-lives.c (process_bb_node_lives): Ditto.
7875 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7876 instead of DF_LR_{OUT,IN}.
7877 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7878 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7879
535b544a
SB
78802009-04-03 Steven Bosscher <steven@gcc.gnu.org>
7881
7882 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
7883 (execute_lower_omp): Always run but take the short way out if -fopenmp
7884 is not given.
7885 (gate_lower_omp): Remove, forcing the pass manager to always run the
7886 pass and always set PROP_gimple_lomp.
7887 (pass_lower_omp): Remove gate function.
7888 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
7889 PROP_trees. Instead, require it.
7890 * ipa-cp.c (pass_ipa_cp): Likewise.
7891 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
7892 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
7893 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
7894 and PROP_gimple_leh.
7895
5006671f
RG
78962009-04-03 Richard Guenther <rguenther@suse.de>
7897
7898 PR middle-end/13146
7899 PR tree-optimization/23940
7900 PR tree-optimization/33237
7901 PR middle-end/33974
7902 PR middle-end/34093
7903 PR tree-optimization/36201
7904 PR tree-optimization/36230
7905 PR tree-optimization/38049
7906 PR tree-optimization/38207
7907 PR tree-optimization/38230
7908 PR tree-optimization/38301
7909 PR tree-optimization/38585
7910 PR middle-end/38895
7911 PR tree-optimization/38985
7912 PR tree-optimization/39299
7913 * tree-ssa-structalias.h: Remove.
7914 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
7915 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
7916 (struct vuse_element_d): Remove.
7917 (struct vuse_vec_d): Likewise.
7918 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
7919 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
7920 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
7921 VUSE_ELEMENT_VAR): Likewise.
7922 (struct voptype_d): Likewise.
7923 (NUM_VOP_FREE_BUCKETS): Likewise.
7924 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
7925 (struct stmt_operands_d): Remove.
7926 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
7927 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
7928 VDEF_NUM, VDEF_VECT): Likewise.
7929 (copy_virtual_operands): Remove.
7930 (operand_build_cmp): Likewise.
7931 (create_ssa_artificial_load_stmt): Likewise.
7932 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
7933 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
7934 vuse_index and mayuse_index members. Pack and move done and iter_type
7935 members to the front.
7936 (SSA_OP_VMAYUSE): Remove.
7937 (SSA_OP_VIRTUAL_USES): Adjust.
7938 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
7939 (unlink_stmt_vdef): Declare.
7940 (add_to_addressable_set): Remove.
7941 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
7942 (vrp_visit_stmt): Likewise.
7943 * doc/tree-ssa.texi (Alias analysis): Update.
7944 * doc/invoke.texi (max-aliased-vops): Remove docs.
7945 (avg-aliased-vops): Likewise.
7946 * tree-into-ssa.c (syms_to_rename): Remove.
7947 (need_to_update_vops_p): Likewise.
7948 (need_to_initialize_update_ssa_p): Rename to ...
7949 (update_ssa_initialized_fn): ... this. Track function we are
7950 initialized for.
7951 (symbol_marked_for_renaming): Simplify.
7952 (add_new_name_mapping): Do not set need_to_update_vops_p.
7953 (dump_currdefs): Use SYMS_TO_RENAME.
7954 (rewrite_update_stmt): Always walk all uses/defs.
7955 (dump_update_ssa): Adjust.
7956 (init_update_ssa): Take function argument. Track what we are
7957 initialized for.
7958 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
7959 (create_new_def_for): Initialize for cfun, assert we are initialized
7960 for cfun.
7961 (mark_sym_for_renaming): Simplify.
7962 (mark_set_for_renaming): Do not initialize update-ssa.
7963 (need_ssa_update_p): Simplify. Take function argument.
7964 (name_mappings_registered_p): Assert we ask for the correct function.
7965 (name_registered_for_update_p): Likewise.
7966 (ssa_names_to_replace): Likewise.
7967 (release_ssa_name_after_update_ssa): Likewise.
7968 (update_ssa): Likewise. Use SYMS_TO_RENAME.
7969 (dump_decl_set): Do not print a newline.
7970 (debug_decl_set): Do it here.
7971 (dump_update_ssa): And here.
7972 * tree-ssa-loop-im.c (move_computations): Adjust.
7973 (movement_possibility): Likewise.
7974 (determine_max_movement): Likewise.
7975 (gather_mem_refs_stmt): Likewise.
7976 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
7977 or NAME_MEMORY_TAG.
7978 * tree-complex.c (update_all_vops): Remove.
7979 (expand_complex_move): Adjust.
7980 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
7981 Simplify test for memory referencing statement. Exclude
7982 non-invariant ADDR_EXPRs.
7983 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
7984 * tree-loop-distribution.c (generate_memset_zero): Adjust.
7985 (rdg_flag_uses): Likewise.
7986 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
7987 related code.
7988 (tree_optimize_tail_calls_1): Also split the
7989 edge from the entry block if we have degenerate PHI nodes in
7990 the first basic block.
7991 * tree.c (init_ttree): Remove memory-tag related code.
7992 (tree_code_size): Likewise.
7993 (tree_node_structure): Likewise.
7994 (build7_stat): Re-write to be build6_stat.
7995 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
7996 (SSA_VAR_P): Adjust.
7997 (struct tree_memory_tag): Remove.
7998 (struct tree_memory_partition_tag): Likewise.
7999 (union tree_node): Adjust.
8000 (build7): Re-write to be build6.
8001 * tree-pass.h (pass_reset_cc_flags): Remove.
8002 (TODO_update_address_taken): New flag.
8003 (pass_simple_dse): Remove.
8004 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
8005 * params.h (MAX_ALIASED_VOPS): Remove.
8006 (AVG_ALIASED_VOPS): Likewise.
8007 * omp-low.c (expand_omp_taskreg): Update SSA form.
8008 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
8009 aliases the lhs in a copy stmt.
8010 * tree-ssa-dse.c (struct address_walk_data): Remove.
8011 (memory_ssa_name_same): Likewise.
8012 (memory_address_same): Likewise.
8013 (get_kill_of_stmt_lhs): Likewise.
8014 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
8015 unused stores. Look through PHI nodes into post-dominated regions.
8016 (dse_optimize_stmt): Simplify. Properly remove stores.
8017 (tree_ssa_dse): Compute dominators.
8018 (execute_simple_dse): Remove.
8019 (pass_simple_dse): Likewise.
8020 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
8021 gimple_loaded_syms and gimple_stored_syms computation.
8022 * toplev.c (dump_memory_report): Dump alias and pta stats.
8023 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
8024 (vn_reference_eq): Likewise.
8025 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
8026 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
8027 valueize_vuses): Remove.
8028 (get_def_ref_stmt_vuses): Simplify. Rename to ...
8029 (get_def_ref_stmt_vuse): ... this.
8030 (vn_reference_lookup_2): New function.
8031 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
8032 walking equivalent vuses. Simplify.
8033 (vn_reference_lookup): Likewise.
8034 (vn_reference_insert): Likewise.
8035 (vn_reference_insert_pieces): Likewise.
8036 (visit_reference_op_call): Simplify.
8037 (visit_reference_op_load): Likewise.
8038 (visit_reference_op_store): Likewise.
8039 (init_scc_vn): Remove shared_lookup_vuses initialization.
8040 (free_scc_vn): Remove shared_lookup_vuses freeing.
8041 (sort_vuses, sort_vuses_heap): Remove.
8042 (get_ref_from_reference_ops): Export.
8043 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
8044 vector with single vuse pointer.
8045 (vn_reference_lookup_pieces, vn_reference_lookup,
8046 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
8047 (shared_vuses_from_stmt): Remove.
8048 (get_ref_from_reference_ops): Declare.
8049 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
8050 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
8051 memory-tag related code.
8052 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
8053 (likely_value): Add comment, skip static-chain of call statements.
8054 (surely_varying_stmt_p): Adjust.
8055 (gimplify_and_update_call_from_tree): Likewise.
8056 (execute_fold_all_builtins): Do not rebuild alias info.
8057 (gimplify_and_update_call_from_tree): Properly update VOPs.
8058 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
8059 (copy_ref_info): Remove memory-tag related code.
8060 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
8061 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
8062 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
8063 computation.
8064 * tree-ssa-dom.c (gimple_p): Remove typedef.
8065 (eliminate_redundant_computations): Adjust.
8066 (record_equivalences_from_stmt): Likewise.
8067 (avail_expr_hash): Likewise.
8068 (avail_expr_eq): Likewise.
7a715bba 8069 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
8070 (stmt_makes_single_load): Likewise.
8071 (stmt_makes_single_store): Likewise.
8072 * tree-ssa-alias.c: Rewrite completely.
8073 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
8074 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
8075 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
8076 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
8077 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
8078 Remove public functions.
8079 (pass_reset_cc_flags): Remove.
8080 (pass_build_alias): Move ...
8081 * tree-ssa-structalias.c (pass_build_alias): ... here.
8082 * tree-ssa-alias.c (may_be_aliased): Move ...
8083 * tree-flow-inline.h (may_be_aliased): ... here.
8084 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
8085 count_uses_and_derefs): Move ...
8086 * gimple.c: ... here.
8087 * gimple.h (count_uses_and_derefs): Declare.
8088 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
8089 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
8090 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
8091 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
8092 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
8093 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
8094 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
8095 New functions.
8096 * tree-dfa.c (refs_may_alias_p): Move ...
8097 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
8098 * tree-ssa-alias.h: New file.
8099 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
8100 (statement_sink_location): Likewise.
8101 * opts.c (decode_options): Do not adjust max-aliased-vops or
8102 avg-aliased-vops values.
8103 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
8104 (TV_CALL_CLOBBER): Likewise.
8105 (TV_FLOW_SENSITIVE): Likewise.
8106 (TV_FLOW_INSENSITIVE): Likewise.
8107 (TV_MEMORY_PARTITIONING): Likewise.
8108 (TV_ALIAS_STMT_WALK): New timevar.
8109 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
8110 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
8111 (get_address_description): Remove memory-tag related code.
8112 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
8113 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
8114 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
8115 and immediate uses in statements. Document.
8116 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
8117 (dump_symbols): Remove.
8118 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
8119 * alias.c (get_deref_alias_set): New function split out from ...
8120 (get_alias_set): ... here.
8121 * alias.h (get_deref_alias_set): Declare.
8122 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
8123 type parameter. Remove restrict pointer handling. Create a
8124 ref-all pointer in case type-based alias sets do not conflict.
8125 (vect_analyze_data_refs): Remove SMT related code.
8126 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
8127 (vectorizable_load): Likewise.
8128 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
8129 (DR_SYMBOL_TAG, DR_VOPS): Remove.
8130 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
8131 Ignore vops and SMTs.
8132 (dr_analyze_alias): Likewise..
8133 (free_data_ref): Likewise.
8134 (create_data_ref): Likewise.
8135 (analyze_all_data_dependences): Likewise.
8136 (get_references_in_stmt): Adjust.
8137 * tree-flow-inline.h (gimple_aliases_computed_p,
8138 gimple_addressable_vars, gimple_call_clobbered_vars,
8139 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
8140 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
8141 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
8142 gimple_mem_ref_stats): Remove.
8143 (gimple_vop): New function.
8144 (op_iter_next_use): Remove vuses and mayuses cases.
8145 (op_iter_next_def): Remove vdefs case.
8146 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
8147 (clear_and_done_ssa_iter): Do not set removed fields.
8148 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
8149 Assert we are not iterating over vuses or vdefs if not also
8150 iterating over uses or defs.
8151 (op_iter_init_use): Likewise.
8152 (op_iter_init_def): Likewise.
8153 (op_iter_next_vdef): Remove.
8154 (op_iter_next_mustdef): Likewise.
8155 (op_iter_init_vdef): Likewise.
8156 (compare_ssa_operands_equal): Likewise.
8157 (link_use_stmts_after): Handle vuse operand.
8158 (is_call_used): Use is_call_clobbered.
8159 (is_call_clobbered): Global variables are always call clobbered,
8160 query the call-clobbers bitmap.
8161 (mark_call_clobbered): Ignore global variables.
8162 (clear_call_clobbered): Likewise.
8163 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
8164 virtual operands sanity check.
8165 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
8166 Remove.
8167 (TARGET_MEM_REF): Remove TMR_TAG operand.
8168 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
8169 Remove call-clobber related code.
8170 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
8171 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
8172 partitions or escape reason.
8173 (get_single_def_stmt, get_single_def_stmt_from_phi,
8174 get_single_def_stmt_with_phi): Remove.
8175 (dump_referenced_vars): Tidy.
8176 (get_ref_base_and_extent): Allow bare decls.
8177 (collect_dfa_stats): Adjust.
8178 * graphite.c (rename_variables_in_stmt): Adjust.
8179 (graphite_copy_stmts_from_block): Likewise.
8180 (translate_clast): Likewise.
8181 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
8182 (EXPR_DIES): New.
8183 (translate_vuse_through_block): Use the oracle.
8184 (phi_translate_1): Adjust.
8185 (value_dies_in_block_x): Use the oracle. Cache the outcome
8186 in EXPR_DIES.
8187 (valid_in_sets): Check if the VUSE for
8188 a REFERENCE is available.
8189 (eliminate): Do not remove stmts during elimination,
8190 instead queue and remove them afterwards.
8191 (do_pre): Do not rebuild alias info.
8192 (pass_pre): Run TODO_rebuild_alias before PRE.
8193 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
8194 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
8195 (mark_all_v_defs_stmt): Remove.
8196 (mark_all_v_defs_seq): Adjust.
8197 (sra_replace): Likewise.
8198 (scalarize_use): Likewise.
8199 (scalarize_copy): Likewise.
8200 (scalarize_init): Likewise.
8201 (scalarize_ldst): Likewise.
8202 (todoflags): Remove.
8203 (tree_sra): Do not rebuild alias info.
8204 (tree_sra_early): Adjust.
8205 (pass_sra): Run TODO_update_address_taken before SRA.
8206 * tree-predcom.c (set_alias_info): Remove.
8207 (prepare_initializers_chain): Do not call it.
8208 (mark_virtual_ops_for_renaming): Adjust.
8209 (mark_virtual_ops_for_renaming_list): Remove.
8210 (initialize_root_vars): Adjust.
8211 (initialize_root_vars_lm): Likewise.
8212 (prepare_initializers_chain): Likewise.
8213 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
8214 (may_propagate_copy_into_stmt): Likewise.
8215 (merge_alias_info): Do nothing for now.
8216 (propagate_tree_value_into_stmt): Adjust.
8217 (stmt_may_generate_copy): Likewise.
8218 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
8219 not mark symbols for renaming.
8220 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
8221 with the same statement, make sure to update the new pointed-to one.
8222 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
8223 call statements, do not mark symbols for renaming.
8224 (mark_operand_necessary): Dump something.
8225 (ref_may_be_aliased): New function.
8226 (mark_aliased_reaching_defs_necessary_1): New helper function.
8227 (mark_aliased_reaching_defs_necessary): Likewise.
8228 (mark_all_reaching_defs_necessary_1): Likewise.
8229 (mark_all_reaching_defs_necessary): Likewise.
8230 (propagate_necessity): Do not process virtual PHIs. For
8231 non-aliased loads mark all reaching definitions as necessary.
8232 For aliased loads and stores mark the immediate dominating
8233 aliased clobbers as necessary.
8234 (visited): New global static.
8235 (perform_tree_ssa_dce): Free visited bitmap after propagating
8236 necessity.
8237 (remove_dead_phis): Perform simple dead virtual PHI removal.
8238 (remove_dead_stmt): Properly unlink virtual operands when
8239 removing stores.
8240 (eliminate_unnecessary_stmts): Schedule PHI removal after
8241 stmt removal.
8242 * tree-ssa-ter.c (is_replaceable_p): Adjust.
8243 (process_replaceable): Likewise.
8244 (find_replaceable_in_bb): Likewise.
8245 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
8246 based on the single gimple vop.
8247 (verify_flow_insensitive_alias_info): Remove.
8248 (verify_flow_sensitive_alias_info): Likewise.
8249 (verify_call_clobbering): Likewise.
8250 (verify_memory_partitions): Likewise.
8251 (verify_alias_info): Likewise.
8252 (verify_ssa): Adjust..
8253 (execute_update_addresses_taken): Export. Update SSA
8254 manually. Optimize only when optimizing. Use a local bitmap.
8255 (pass_update_address_taken): Remove TODO_update_ssa, add
8256 TODO_dump_func.
8257 (pass_update_address_taken): Just use TODO_update_address_taken.
8258 (init_tree_ssa): Do not initialize addressable_vars.
8259 (verify_ssa): Verify new VUSE / VDEF properties.
8260 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
8261 Do not call verify_alias_info.
8262 (delete_tree_ssa): Clear the VUSE, VDEF operands.
8263 Do not free the loaded and stored syms bitmaps. Reset the escaped
8264 and callused solutions. Do not free addressable_vars.
8265 Remove memory-tag related code.
8266 (warn_uninitialized_var): Aliases are always available.
8267 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
8268 * lambda-code.c (can_put_in_inner_loop): Adjust.
8269 (can_put_after_inner_loop): Likewise.
8270 (perfect_nestify): Likewise.
8271 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
8272 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
8273 (vectorizable_conversion): Do not mark symbols for renaming.
8274 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
8275 (expand_call_inline): Unlink the calls virtual operands before
8276 replacing it.
8277 (tree_function_versioning): Do not call update_ssa if we are not
8278 updating clones. Simplify.
8279 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
8280 (propagate_with_phi): Likewise..
8281 * tree-outof-ssa.c (create_temp): Remove memory tag and call
8282 clobber code. Assert we are not aliased or global.
8283 * tree-flow.h: Include tree-ssa-alias.h
8284 (enum escape_type): Remove.
8285 (struct mem_sym_stats_d): Likewise.
8286 (struct mem_ref_stats_d): Likewise.
8287 (struct gimple_df): Add vop member. Remove global_var,
8288 call_clobbered_vars, call_used_vars, addressable_vars,
8289 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
8290 escaped and callused members.
8291 (struct ptr_info_def): Remove all members, add points-to solution
8292 member pt.
8293 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
8294 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
8295 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
8296 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
8297 (tree-ssa-alias.o): Likewise.
8298 (toplev.o): Add tree-ssa-alias.h
8299 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
8300 * gimple.c (gimple_set_bb): Fix off-by-one error.
8301 (is_gimple_reg): Do not handle memory tags.
8302 (gimple_copy): Also copy virtual operands.
8303 Delay updating the statement. Do not reset loaded and stored syms.
8304 (gimple_set_stored_syms): Remove.
8305 (gimple_set_loaded_syms): Likewise.
8306 (gimple_call_copy_skip_args): Copy the virtual operands
8307 and mark the new statement modified.
8308 * tree-ssa-structalias.c (may_alias_p): Remove.
8309 (set_uids_in_ptset): Take the alias set to prune with as
8310 parameter. Fold in the alias test of may_alias_p.
8311 (compute_points_to_sets): Compute whether a ptr is dereferenced
8312 in a local sbitmap.
8313 (process_constraint): Deal with &ANYTHING on the lhs, reject all
8314 other ADDRESSOF constraints on the lhs.
8315 (get_constraint_for_component_ref): Assert that we don't get
8316 ADDRESSOF constraints from the base of the reference.
8317 Properly generate UNKNOWN_OFFSET for DEREF if needed.
8318 (struct variable_info): Remove collapsed_to member.
8319 (get_varinfo_fc): Remove.
8320 (new_var_info): Do not set collapsed_to.
8321 (dump_constraint): Do not follow cycles.
8322 (dump_constraint_graph): Likewise.
8323 (build_pred_graph): Likewise.
8324 (build_succ_graph): Likewise.
8325 (rewrite_constraints): Likewise.
8326 (do_simple_structure_copy): Remove.
8327 (do_rhs_deref_structure_copy): Remove.
8328 (do_lhs_deref_structure_copy): Remove.
8329 (collapse_rest_of_var): Remove.
8330 (do_structure_copy): Re-implement.
8331 (pta_stats): New global variable.
8332 (dump_pta_stats): New function.
8333 (struct constraint_expr): Make offset signed.
8334 (UNKNOWN_OFFSET): Define special value.
8335 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
8336 (solution_set_expand): New helper function split out from ...
8337 (do_sd_constraint): ... here.
8338 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
8339 (do_ds_constraint): Likewise.
8340 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
8341 and CALLUSED = *CALLUSED.
8342 (set_union_with_increment): Make inc argument signed.
8343 (type_safe): Remove.
8344 (get_constraint_for_ptr_offset): Handle unknown and negative
8345 constant offsets.
8346 (first_vi_for_offset): Handle offsets before start. Bail
8347 out early for offsets beyond the variable extent.
8348 (first_or_preceding_vi_for_offset): New function.
8349 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
8350 Together with ESCAPED = *ESCAPED this properly computes reachability.
8351 (find_what_var_points_to): New function.
8352 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
8353 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
8354 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
8355 pt_solutions_intersect): New functions.
8356 (compute_call_used_vars): Remove.
8357 (compute_may_aliases): New main entry into PTA computation.
8358 * gimple.h (gimple_p): New typedef.
8359 (struct gimple_statement_base): Remove references_memory_p.
8360 (struct gimple_statement_with_memory_ops_base): Remove
8361 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
8362 members.
8363 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
8364 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
8365 gimple_set_references_memory): Remove.
8366 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
8367 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
8368 New functions.
8369 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
8370 (verify_expr): Allow RESULT_DECL.
8371 (gimple_duplicate_bb): Do not copy virtual operands.
8372 (gimple_duplicate_sese_region): Adjust.
8373 (gimple_duplicate_sese_tail): Likewise.
8374 (mark_virtual_ops_in_region): Remove.
8375 (move_sese_region_to_fn): Do not call it.
8376 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
8377 and pass_simple_dse.
8378 (execute_function_todo): Handle TODO_update_address_taken,
8379 call execute_update_addresses_taken for TODO_rebuild_alias.
8380 (execute_todo): Adjust.
8381 (execute_one_pass): Init dump files early.
8382 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
8383 call-clobbered.
8384 (create_general_new_stmt): Clear vops.
8385 * tree-ssa-reassoc.c (get_rank): Adjust.
8386 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
8387 symbols for renaming.
8388 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
8389 (PARAM_AVG_ALIASED_VOPS): Likewise.
8390 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
8391 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 8392 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
8393 (operand_build_cmp, copy_virtual_operands,
8394 create_ssa_artificial_load_stmt, add_to_addressable_set,
8395 gimple_add_to_addresses_taken): Remove public functions.
8396 (unlink_stmt_vdef): New function.
8397
457d1d00
AM
83982009-04-03 Alan Modra <amodra@bigpond.net.au>
8399
8400 * config.gcc (powerpc-*-linux*): Merge variants.
8401
e19da24c 84022009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 8403 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
8404
8405 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
8406 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
8407 cop0_sp_offset.
8408 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
8409 keep_interrupts_masked_p, use_debug_exception_return_p.
8410 (mips_attribute_table): Add interrupt, use_shadow_register_set,
8411 keep_interrupts_masked, use_debug_exception_return.
8412 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
8413 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
8414 New functions.
8415 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
8416 (mips_print_operand): Process COP0 registers to print $0 .. $31
8417 correctly for GAS to process.
8418 (mips_interrupt_extra_call_saved_reg_p): New function.
8419 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
8420 extra registers.
8421 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
8422 (mips_compute_frame_info): Add supports for interrupt context that
8423 includes doubleword accumulators and COP0 registers.
8424 (mips_for_each_saved_acc): New function.
8425 (mips_for_each_saved_gpr_and_fpr): Change the function name from
8426 mips_for_each_saved_reg.
8427 (mips_save_reg): Save accumulators.
8428 (mips_kernel_reg_p): A new for_each_rtx callback.
8429 (mips_expand_prologue): Support interrupt handlers.
8430 (mips_restore_reg): Restore accumulators.
8431 (mips_expand_epilogue): Support interrupt handlers.
8432 (mips_can_use_return_insn): Return false for interrupt handlers.
8433 (mips_epilogue_uses): New function.
8434 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
8435 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
8436 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
8437 cop0_move): New instructions.
8438 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
8439 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
8440 defines.
8441 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
8442 New defines.
8443 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
8444 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
8445 interrupt handlers, we use K0 as the temporary register.
8446 (EPILOGUE_USES): Change to a function call.
8447 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
8448 handlers, we use K0 as the temporary register.
2ba9daa7 8449
e19da24c
CF
8450 * doc/extend.texi (Function Attributes): Document interrupt,
8451 use_shadow_register_set, keep_interrupts_masked,
8452 use_debug_exception_return for MIPS attributes.
8453
aa1ca044
AM
84542009-04-03 Alan Modra <amodra@bigpond.net.au>
8455
8456 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
8457 Remove a number of t-files from tmake_file.
8458 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
8459 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
8460 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
8461 target_prototype, not TARGET_PROTOTYPE.
8462 (LINK_OS_GNU_SPEC): Define.
8463 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
8464 and darwin-ldoubdle.c.
8465
14fdc613
MM
84662009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8467
8468 PR driver/39293
8469 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
8470 (cpp_options): Ditto.
8471 (default_compilers): Ditto.
8472 (display_help): Ditto.
8473 (process_command): Ditto.
8474 (do_spec_1): Ditto.
8475 (set_input): Use lbasename instead of duplicate code.
8476 (save_temps_prefix): New static for -save-temps=obj.
8477 (save_temps_length): Ditto.
2ba9daa7 8478
14fdc613
MM
8479 * doc/invoke.texi (-save-temps=obj): Document new variant to
8480 -save-temps switch.
8481
d3aa398e
JL
84822009-04-02 Jeff Law <law@redhat.com>
8483
8484 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
8485 variable.
8486
83f0ccb8
L
84872009-04-02 H.J. Lu <hongjiu.lu@intel.com>
8488
8489 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
8490 * configure: Regenerated.
8491
dcb6e951
RAE
84922009-04-02 Rafael Avila de Espindola <espindola@google.com>
8493
8494 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
8495 share the argument list.
8496
d85478c2
RAE
84972009-04-02 Rafael Avila de Espindola <espindola@google.com>
8498
8499 Merge
8500
8501 2009-02-12 Diego Novillo <dnovillo@google.com>
8502
83f0ccb8
L
8503 * varpool.c (debug_varpool): New.
8504 * cgraph.h (debug_varpool): Declare.
d85478c2 8505
34f42a49
JH
85062009-04-02 Jan Hubicka <jh@suse.cz>
8507
8508 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
8509 pass.
8510
a4747b4a
L
85112009-04-02 H.J. Lu <hongjiu.lu@intel.com>
8512
8513 * config/i386/i386.c (ix86_abi): Move initialization to ...
8514 (override_options): Here.
8515
63a9de54
CB
85162009-04-02 Christian Bruel <christian.bruel@st.com>
8517
8518 * config/sh/sh.c (sh_dwarf_register_span): New function.
8519 (TARGET_DWARF_REGISTER_SPAN): Define.
8520 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 8521
2f0fa28e
IR
85222009-04-02 Ira Rosen <irar@il.ibm.com>
8523
8524 PR tree-optimization/39595
2ba9daa7 8525 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
8526 interleaved loads group is not greater than the SLP group size.
8527
bbf7ce11
RAE
85282009-04-02 Rafael Avila de Espindola <espindola@google.com>
8529
8530 * builtins.c (is_builtin_name): New.
8531 (called_as_built_in): Use is_builtin_name.
8532 * tree.h (is_builtin_name): New.
8533 * varasm.c (incorporeal_function_p): Use is_builtin_name
8534
47e4dfcf
AS
85352009-04-02 Andrew Stubbs <ams@codesourcery.com>
8536
8537 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
8538
d0940d56
DS
85392009-04-02 Dodji Seketeli <dodji@redhat.com>
8540
8541 PR c++/26693
532bfb0a 8542 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
8543 * c-common.c (set_underlying_type): ... here.
8544 Also, make sure the function properly sets TYPE_STUB_DECL() on
8545 the newly created typedef variant type.
8546 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
8547 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
8548 points.
d0940d56 8549
bf1cbdc6
RG
85502009-04-02 Richard Guenther <rguenther@suse.de>
8551
8552 PR tree-optimization/37221
8553 * tree-flow.h (degenerate_phi_result): Declare.
8554 * tree-ssa-dom.c (degenerate_phi_result): Export.
8555 * tree-scalar-evolution.c (analyze_initial_condition): If
8556 the initial condition is defined by a degenerate PHI node
8557 use the degenerate value.
8558
87cfb32c
EB
85592009-04-01 Eric Botcazou <ebotcazou@adacore.com>
8560
8561 PR rtl-optimization/39588
8562 * combine.c (merge_outer_ops): Do not set the constant when this
8563 is not necessary.
8564 (simplify_shift_const_1): Do not modify it either in this case.
8565
bbb6eae8
SB
85662009-04-01 Steven Bosscher <steven@gcc.gnu.org>
8567
8568 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
8569 tuning is deprecated if -mtune value is set to an Itanium1 variant.
8570
839a3b8a
JJ
85712009-04-01 Janis Johnson <janis187@us.ibm.com>
8572
8573 PR c/29027
8574 * c-lex.c (interpret_float): Default (no suffix) is double.
8575
667e8acb
XDL
85762009-04-1 Xinliang David Li <davidxl@google.com>
8577
8578 * config/i386/i386.c (legitimate_constant_p): Recognize
8579 all one vector constant.
8580
60839f5d 85812009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8582
60839f5d 8583 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
8584 Change #include order to silence two warnings.
8585
60839f5d 85862009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8587
60839f5d 8588 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
8589 (ASM_SPEC): Pass -k to the assembler for PIC code.
8590
60839f5d 85912009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8592
60839f5d
EB
8593 * config.gcc: Add vax-*-linux* to the switch.
8594 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
8595 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
8596
60839f5d 85972009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8598
60839f5d 8599 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 8600 Use predicate macros instead of GET_CODE() == foo.
60839f5d 8601 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
8602 ashlsi3, rotrsi3, <unnamed>): Likewise.
8603
60839f5d 86042009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8605
60839f5d 8606 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 8607 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
8608 * config/vax/constraints.md: Likewise.
8609 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
8610 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
8611 * config/vax/predicates.md: Likewise.
8612 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 8613 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
8614 * config/vax/vax.h: Likewise.
8615 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 8616
60839f5d 86172009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8618
60839f5d 8619 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
8620 (indirectable_address_p, adjacent_operands_p): Add spaces around
8621 braces.
60839f5d 8622 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 8623
60839f5d 86242009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8625
60839f5d 8626 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
8627 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
8628 index_term_p, reg_plus_index_p, legitimate_address_p,
8629 vax_mode_dependent_address_p): Update comments to match functions
8630 modified by the recent int->bool conversion.
8631
60839f5d 86322009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8633
60839f5d
EB
8634 * config/vax/builtins.md: Update copyright message.
8635 * config/vax/constraints.md: Likewise.
8636 * config/vax/netbsd-elf.h: Likewise.
8637 * config/vax/predicates.md: Likewise.
8638 * config/vax/vax-protos.h: Likewise.
8639 * config/vax/vax.c: Likewise.
8640 * config/vax/vax.h: Likewise.
8641 * config/vax/vax.md: Likewise.
8642 * config/vax/vax.opt: Likewise.
c4e75102 8643
60839f5d 86442009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 8645
60839f5d 8646 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 8647 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
8648 * config/vax/constraints.md (B, R): Likewise.
8649 * config/vax/predicates.md (external_memory_operand,
c4e75102 8650 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
8651 * config/vax/vax.c (vax_output_int_add): Likewise.
8652 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
8653 untyped_call): Likewise.
8654
60839f5d 86552009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 8656
7a715bba
UB
8657 * config/vax/predicates.md: New file.
8658 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
8659 external_const_operand, nonsymbolic_operand, external_memory_operand,
8660 indirect_memory_operand, indexed_memory_operand,
8661 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
8662 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
8663 predicate.
7a715bba
UB
8664 * config/vax/constraints.md: New file.
8665 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
8666 New constraint.
8667 * config/vax/builtins.md: New file.
8668 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
8669 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
8670 jbbccisi): Define.
c4e75102
MT
8671 * config/vax/vax.opt (mqmath): Add option.
8672 * config/vax/vax.md (isfx): Extend with DI.
8673 (VAXintQH, VAXintQHSD): Define.
8674 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
8675 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
8676 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
8677 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
8678 (movdi): Update constraints and use vax_output_int_move().
8679 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
8680 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
8681 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
8682 nonlocal_goto): New.
8683 (mov<mode>): Extend accepted operand types.
8684 (subdi3_old): Rename from subdi3, change update constraints and use
8685 a new implementation.
60839f5d 8686 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
8687 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
8688 MOVE_RATIO, CLEAR_RATIO): Define.
8689 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
8690 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
8691 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 8692 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
8693 (split_quadword_operands): Make static and really allow variable
8694 splitting.
8695 (print_operand_address): Update for PIC generation.
8696 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
8697 indexable_address_p, fixup_mathdi_operand,
8698 vax_expand_addsub_di_operands, adjacent_operands_p): New.
8699 (vax_float_literal, legitimate_constant_p,
8700 indirectable_constant_address_p, index_term_p,
8701 reg_plus_index_p): Return bool instead of int.
8702 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
8703 where needed.
8704 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
8705 generation.
8706 (vax_output_conditional_branch): Indent.
8707 (legitimate_constant_address_p, indirectable_constant_address_p,
8708 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
8709 vax_mode_dependent_address_p): Return bool instead of int, update for
8710 PIC generation.
8711 * config/vax/vax-protos.h (legitimate_constant_address_p,
8712 legitimate_constant_p, legitimate_address_p,
8713 vax_mode_dependent_address_p): Change declaration to bool.
8714 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
8715 vax_expand_addsub_di_operands, vax_output_int_subtract,
8716 vax_output_movmemsi): Declare.
8717 (split_quadword_operands, vax_float_literal): Delete declaration.
8718 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
8719 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
8720 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
8721 ASM_OUTPUT_DWARF_PCREL): Define.
8722 (ASM_SPEC): Change definition to allow PIC generation.
8723
9332c6eb
L
87242009-04-01 Steve Ellcey <sje@cup.hp.com>
8725
8726 * doc/sourcebuild.texi: Update front-end requirements.
8727
d93e052c
JJ
87282009-04-01 Jakub Jelinek <jakub@redhat.com>
8729
8730 PR target/39226
8731 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
8732 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
8733 (booldi3_internal3): Use boolean_or_operator instead of
8734 boolean_operator.
8735
6ccb2a4a
JM
87362009-04-01 Joseph Myers <joseph@codesourcery.com>
8737
8738 PR c/39605
8739 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
8740 declarator whose size is not an integer constant expression but
8741 folds to an integer constant, then treat it as a constant
8742 subsequently.
8743
299b87f8
RG
87442009-04-01 Richard Guenther <rguenther@suse.de>
8745
8746 * fold-const.c (fold_plusminus_mult_expr): Do not fold
8747 i * 4 + 2 to (i * 2 + 1) * 2.
8748
b85eb797
JJ
87492009-04-01 Jakub Jelinek <jakub@redhat.com>
8750
8751 PR c/37772
8752 * c-parser.c (c_parser_asm_statement): Skip until close paren and
8753 return if c_parser_asm_string_literal returned NULL.
8754
235e1fe8
NC
87552009-04-01 Nick Clifton <nickc@redhat.com>
8756
8757 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
8758 already defined.
8759 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
8760 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
8761 other typedefs to avoid conflicts with libgcc2.c. Define labels
8762 to gain 16-bit bit-manipulation functions from libgcc2.c and then
8763 include it.
8764 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
8765 to gain 16-bit trapping arithmetic functions from libgcc2.c and
8766 then include it.
8767
d6868399
RAE
87682009-04-01 Rafael Avila de Espindola <espindola@google.com>
8769
7a715bba
UB
8770 * varasm.c (default_function_rodata_section): Declare DOT as
8771 const char*.
d6868399 8772
73d21f56 87732009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 8774 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
8775
8776 PR/39492
8777 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
8778 Make object_name unique for each process.
8779
03742a9b
JJ
87802009-04-01 Jakub Jelinek <jakub@redhat.com>
8781
8782 PR other/39591
8783 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
8784 addressable variables in the parallel that could go out of scope while
8785 running queued tasks.
8786
4223ff5f
AS
87872009-04-01 Anatoly Sokolov <aesok@post.ru>
8788
8789 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
8790 (CASE_VALUES_THRESHOLD): Redefine.
8791 * config/avr/avr.c (avr_override_options): Remove initialization of
8792 avr_case_values_threshold variable.
8793 (avr_case_values_threshold): Remove variable. Add new function.
8794 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
8795 * config/avr/avr.opt (mno-tablejump): Remove option.
8796 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
8797
e893f6f3
DD
87982009-04-01 DJ Delorie <dj@redhat.com>
8799
8800 * varasm.c (default_function_rodata_section): Don't assume
8801 anything about where the first '.' in the section name is.
8802
b246d100
AM
88032009-04-01 Alan Modra <amodra@bigpond.net.au>
8804
8805 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
8806 rs6000_emit_stack_tie.
8807
d3e37a9e
ILT
88082009-03-31 Ian Lance Taylor <iant@google.com>
8809
8810 * tree-eh.c (tree_remove_unreachable_handlers): Compare
8811 gimple_code with GIMPLE_RESX, not RESX.
8812
c1b61fca
JM
88132009-03-31 Joseph Myers <joseph@codesourcery.com>
8814
8815 * c-common.c (c_get_ident): New.
7a715bba 8816 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 8817
c2d2ad48
BE
88182009-04-01 Ben Elliston <bje@au.ibm.com>
8819
8820 * config/rs6000/sysv4.opt (msdata): Improve option description.
8821
13d1a6e7
SE
88222009-03-31 Steve Ellcey <sje@cup.hp.com>
8823
8824 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
8825 (divdf3_internal_lat): Remove.
8826 (divxf3_internal_lat): Remove.
8827 (divxf3_internal_thr): Remove.
8828 (divxf): Use divxf3_internal.
8829 * config/ia64/div.md (divsf3_internal_lat): New.
8830 (divdf3_internal_lat): New.
8831 (divxf3_internal): New.
8832
207bf79d
JM
88332009-03-31 Joseph Myers <joseph@codesourcery.com>
8834
8835 PR c/448
8836 * Makefile.in (USE_GCC_STDINT): Define.
8837 (stmp-int-hdrs): Install stdint.h if applicable.
8838 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
8839 if known.
8840 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
8841 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
8842 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
8843 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8844 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8845 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8846 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8847 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8848 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
8849 (c_common_nodes_and_builtins): Initialize
8850 underlying_wchar_type_node. Do not initialize
8851 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
8852 nodes for new types.
8853 (c_stddef_cpp_builtins): Define macros for new types.
8854 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
8855 Remove.
8856 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
8857 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
8858 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
8859 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
8860 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
8861 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
8862 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
8863 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
8864 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
8865 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
8866 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
8867 int16_type_node, int32_type_node, int64_type_node,
8868 uint8_type_node, uint16_type_node, c_uint32_type_node,
8869 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
8870 int_least32_type_node, int_least64_type_node,
8871 uint_least8_type_node, uint_least16_type_node,
8872 uint_least32_type_node, uint_least64_type_node,
8873 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
8874 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
8875 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
8876 uintptr_type_node): Define.
8877 * c-cppbuiltin.c (builtin_define_constants,
8878 builtin_define_type_minmax): New.
8879 (builtin_define_stdint_macros): Define more macros.
8880 (c_cpp_builtins): Define more limit macros.
8881 (type_suffix): New.
8882 (builtin_define_type_max): Define in terms of
8883 builtin_define_type_minmax. Remove is_long parameter. All
8884 callers changed.
8885 * config.gcc (use_gcc_stdint): Define.
8886 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
8887 Add newlib-stdint.h for generic targets.
8888 * config/glibc-stdint.h, config/newlib-stdint.h,
8889 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
8890 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
8891 * config/score/score.h (UINTPTR_TYPE): Define.
8892 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
8893 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
8894 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8895 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8896 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8897 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8898 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8899 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
8900 * config/spu/spu.h (STDINT_LONG32): Define.
8901 * configure.ac (use_gcc_stdint): Substitute.
8902 * configure: Regenerate.
8903 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
8904 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
8905 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
8906 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
8907 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
8908 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
8909 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
8910 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
8911 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
8912 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
8913 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
8914 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
8915 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
8916 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
8917 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
8918 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
8919 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
8920 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
8921 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
8922 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
8923 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
8924 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
8925 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
8926 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8927 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8928 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8929 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8930 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8931 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
8932
ed853664
BS
89332009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
8934
8935 * loop-iv.c (suitable_set_for_replacement): Renamed from
8936 simplify_using_assignment; changed to return bool and to accept new
8937 args DEST and SRC. Return true iff we find a source/destination pair
8938 that can be used to make a replacement, and fill SRC and DEST if so.
8939 Remove arg ALTERED. Don't deal with altered regs here. All callers
8940 changed.
8941 (simplify_using_initial_values): Deal with altered regs here and track
8942 more precisely the effect they have on the validity of our expression.
8943
1569e190
BS
8944 * loop-iv.c (simplify_using_condition): A condition of the form
8945 (EQ REG CONST) can be used to simply make a substitution.
8946 (simplify_using_initial_values): Keep track of conditions we have seen
8947 and keep using them to simplify new expressions, while applying the
8948 same substitutions to them as to the expression.
8949
1d1eb80c
BS
8950 * simplify-rtx.c (simplify_relational_operation_1): Simplify
8951 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
8952 GEU/LTU reversed.
8953
28af33b0
BS
8954 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
8955 changed. Use this when trying to improve the upper bound.
8956 Generate the comparison by using simplify_gen_relational.
8957
b30321cd
BS
8958 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
8959
60081874
BS
8960 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
8961 functions.
2ba9daa7 8962 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
8963 replace_in_expr to make replacements. Call replace_single_def_regs
8964 once on the initial version of the expression.
8965
bebc6e07
RR
89662009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8967
fcb82ab0 8968 PR target/27237
bebc6e07 8969 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 8970
6b12efe9
RG
89712009-03-31 Richard Guenther <rguenther@suse.de>
8972
8973 PR middle-end/31029
8974 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
8975 equality comparisons. Fold C - X CMP X if C % 2 == 1.
8976
108f6c2f
RG
89772009-03-31 Richard Guenther <rguenther@suse.de>
8978
8979 * tree.h (div_if_zero_remainder): Declare.
8980 * fold-const.c (div_if_zero_remainder): Export.
8981 * tree-ssa-forwprop.c
8982 (forward_propagate_addr_into_variable_array_index): Handle
8983 constant array index addition outside of the variable index.
8984
8f612190
JM
89852009-03-31 Joseph Myers <joseph@codesourcery.com>
8986
8987 PR target/39592
8988 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
8989 define_splits, floatunssi<mode>2): Require x87 conversions from
8990 DImode to be permitted.
8991
47580d22
JM
89922009-03-31 Joseph Myers <joseph@codesourcery.com>
8993
8994 PR preprocessor/15638
8995 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
8996
ba4d8f9d
RG
89972009-03-31 Richard Guenther <rguenther@suse.de>
8998
8999 PR middle-end/23401
9000 PR middle-end/27810
9001 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
9002 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
9003 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
9004 a separate statement.
9005 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
9006 (lookup_tmp_var): Likewise.
9007 (is_gimple_formal_tmp_or_call_rhs): Remove.
9008 (is_gimple_reg_or_call_rhs): Rename to ...
9009 (is_gimple_reg_rhs_or_call): ... this.
9010 (is_gimple_mem_or_call_rhs): Rename to ...
9011 (is_gimple_mem_rhs_or_call): ... this.
9012 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
9013 DECL_GIMPLE_REG_P only if is_formal is true.
9014 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
9015 for non-proper post-modify expression gimplification.
9016 (gimplify_self_mod_expr): For post-modify expressions gimplify
9017 the lvalue to a minimal lvalue.
9018 (rhs_predicate_for): Remove formal temp case.
9019 (gimplify_modify_expr_rhs): Likewise.
9020 (gimplify_addr_expr): Use is_gimple_reg.
9021 (gimplify_expr): Remove formal temp cases.
9022 (gimple_regimplify_operands): Likewise.
9023 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
9024 and FILTER_EXPR like constants.
9025 * gimple.c (walk_gimple_op): Fix val_only initialization, use
9026 is_gimple_reg.
9027 (is_gimple_formal_tmp_rhs): Remove.
9028 (is_gimple_reg_rhs): Remove special casing.
9029 (is_gimple_mem_rhs): Fix.
9030 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
9031 (is_gimple_formal_tmp_var): Remove.
9032 (is_gimple_formal_tmp_reg): Likewise.
9033 (is_gimple_min_lval): Allow invariant component ref parts.
9034 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
9035 is_gimple_formal_tmp_reg): Remove declarations.
9036 * tree-cfg.c (verify_expr): Verify that variables with address
9037 taken do not have DECL_GIMPLE_REG_P set.
9038 * tree-mudflap.c (mf_build_check_statement_for): Use
9039 force_gimple_operand instead of gimplify_expr.
9040
8de9b877
AZ
90412009-03-31 Ayal Zaks <zaks@il.ibm.com>
9042
9043 * modulo-sched.c (sms_schedule_by_order): Pass the actual
9044 schedulable rows to compute_split_row.
9045
b5e3caf2
BE
90462009-03-31 Ben Elliston <bje@au.ibm.com>
9047
9048 PR target/31635
9049 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
9050 OPT_mvrsave.
9051
9752c4ad
AM
90522009-03-31 Alan Modra <amodra@bigpond.net.au>
9053
9054 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
9055 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
9056 * configure: Regenerate.
9057 * config.in: Regenerate.
9058 * config/rs6000/rs6000.opt (mtls-markers): Add.
9059 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
9060 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
9061 (tls_ld_aix, tls_ld_sysv): Likewise.
9062 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
9063 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
9064
b597d1b6
AM
90652009-03-31 Alan Modra <amodra@bigpond.net.au>
9066
9067 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
9068
a203a221
JH
90692009-03-30 Jan Hubicka <jh@suse.cz>
9070
b597d1b6
AM
9071 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
9072 out of RESX.
9073 (tree_remove_unreachable_handlers): Cleanup EH predecestor
9074 detection and label handling.
a203a221 9075
5b0c0b2c
VM
90762009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9077
9078 * ira-int.h (ira_allocno): Rename left_conflicts_num to
9079 left_conflicts_size.
9080 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
9081 ALLOCNO_LEFT_CONFLICTS_SIZE.
9082
9083 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
9084 remove_allocno_from_bucket_and_push,
9085 allocno_spill_priority_compare, push_allocnos_to_stack,
9086 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9087 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
9088 (setup_allocno_left_conflicts_num): Ditto. Rename to
9089 setup_allocno_left_conflicts_size.
9090 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9091 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
9092 setup_allocno_left_conflicts_size instead of
9093 setup_allocno_left_conflicts_num.
9094
9095 * ira-build.c (ira_create_allocno): Use
9096 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
9097 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 9098
9a48a93f
VM
90992009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9100
9101 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9102 instead of DF_LR_OUT.
9103
9104 * ira-lives.c (process_bb_node_lives): Ditto.
9105
9106 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9107 instead of DF_LR_{OUT,IN}.
9108
9109 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9110
9111 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9112
4c936d4f
JH
91132009-03-30 Jan Hubicka <jh@suse.cz>
9114
9115 * except.c (label_to_region_map): Fix thinko.
9116
f4d9f129
SE
91172009-03-30 Steve Ellcey <sje@cup.hp.com>
9118
9119 PR middle-end/38237
9120 * tree.h (tree_find_value): New declaration.
9121 * tree.c (tree_find_value): New function.
9122 * varasm.c (assemble_external): Avoid duplicate entries on lists.
9123
b3f27c15
JJ
91242009-03-30 Jakub Jelinek <jakub@redhat.com>
9125
9126 PR debug/39563
9127 * c-decl.c (struct c_binding): Add locus field.
9128 (bind): Add locus argument, set locus field from it.
9129 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
9130 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
9131 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
9132 implicitly_declare, undeclared_variable, lookup_label,
9133 declare_label, c_make_fname_decl, c_builtin_function,
9134 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
9135 bind callers.
9136
ad41bd84 91372009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
9138
9139 PR target/38781
9140 * config/i386/i386.c (classify_argument): Check total size of
9141 structure.
9142
133f9369
MJ
91432009-03-30 Martin Jambor <mjambor@suse.cz>
9144
9145 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
9146 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
9147 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
9148 respectively.
9149
9150 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
9151 seen_variable_array_ref while also traversing a union.
9152
9153 * tree-inline.c (optimize_inline_calls): Do not call
9154 cgraph_node_remove_callees.
9155 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
9156 (pass_remove_cgraph_callee_edges): New variable.
9157 * passes.c (init_optimization_passes): Add
9158 pass_remove_cgraph_callee_edges after early inlining and before all
9159 late intraprocedural passes.
9160
9161 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
9162
1190f2eb
PB
91632009-03-30 Paolo Bonzini <bonzini@gnu.org>
9164
9165 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
9166 Fix typos in names.
9167
fedc1775
PB
91682009-03-30 Paolo Bonzini <bonzini@gnu.org>
9169
fcb82ab0
UB
9170 * combine.c (simplify_comparison): Use have_insn_for.
9171 * dojump.c (do_jump): Likewise.
fedc1775 9172
65c5ae8b
PB
91732009-03-30 Paolo Bonzini <bonzini@gnu.org>
9174
9175 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
9176 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
9177 sparc_compare_op0 like sparc_compare_emitted used to be handled.
9178 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
9179 instead of sparc_compare_emitted.
9180 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
9181 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
9182 instead of sparc_compare_emitted.
9183
d25aa7ab
PB
91842009-03-30 Paolo Bonzini <bonzini@gnu.org>
9185
9186 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
9187 enter/exit cfglayout mode.
9188 (pass_partition_block): Require it.
9189 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
9190 (combine_instructions): Track basic blocks instead of labels.
9191 (update_cfg_for_uncondjump): New.
9192 (try_combine): Use it. Update jumps after rescanning.
9193 (pass_combine): Require PROP_cfglayout.
9194 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
9195
9c9e26f5
PB
91962009-03-30 Paolo Bonzini <bonzini@gnu.org>
9197
fcb82ab0
UB
9198 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
9199 Provide/destroy PROP_cfglayout respectively.
9200 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
9201 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 9202
28ddeea1
PB
92032009-03-30 Paolo Bonzini <bonzini@gnu.org>
9204
9205 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
9206 fold_convert_const_fixed_from_fixed,
9207 fold_convert_const_fixed_from_int,
9208 fold_convert_const_fixed_from_real, fold_negate_const): Do not
9209 set TREE_CONSTANT_OVERFLOW.
9210 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
9211 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
9212
ebfd146a
IR
92132009-03-30 Ira Rosen <irar@il.ibm.com>
9214
9215 * tree-vect-loop-manip.c: New file.
9216 * tree-vectorizer.c: Update documentation and included files.
9217 (vect_loop_location): Make extern.
9218 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
9219 (rename_variables_in_bb, rename_variables_in_loop,
9220 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
9221 slpeel_update_phi_nodes_for_guard1,
9222 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
9223 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
9224 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 9225 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
9226 find_loop_location): Likewise.
9227 (new_stmt_vec_info): Move to tree-vect-stmts.c.
9228 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
9229 get_vectype_for_scalar_type, vect_is_simple_use,
9230 supportable_widening_operation, supportable_narrowing_operation):
9231 Likewise.
9232 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
9233 (new_loop_vec_info, destroy_loop_vec_info,
9234 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
9235 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
9236 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
9237 (vect_supportable_dr_alignment): Likewise.
9238 * tree-vectorizer.h (tree-data-ref.h): Include.
9239 (vect_loop_location): Declare.
9240 Reorganize function declarations according to the new file structure.
9241 * tree-vect-loop.c: New file.
2ba9daa7 9242 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
9243 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
9244 * tree-vect-data-refs.c: New file.
9245 * tree-vect-patterns.c (timevar.h): Don't include.
9246 * tree-vect-stmts.c: New file.
2ba9daa7 9247 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 9248 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
9249 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
9250 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
9251 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
9252 (tree-vect-analyze.o): Remove.
9253 (tree-vect-transform.o): Likewise.
9254 (tree-vect-data-refs.o): Add rule.
2ba9daa7 9255 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
9256 tree-vect-slp.o): Likewise.
9257 (tree-vect-patterns.o): Remove redundant dependencies.
9258 (tree-vectorizer.o): Likewise.
9259 * tree-vect-slp.c: New file.
9260
40a1cfba
RW
92612009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9262
9263 * optc-gen.awk: Warn if an option flag has multiple different
9264 help strings.
9265
a9a7a9a2
SP
92662009-03-30 Sebastian Pop <sebastian.pop@amd.com>
9267
9268 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
9269 -floop-block): Document dependences on PPL, CLooG and Graphite.
9270
8ce94e44
JM
92712009-03-30 Joseph Myers <joseph@codesourcery.com>
9272
9273 PR rtl-optimization/323
9274 * c-common.c (c_fully_fold, convert_and_check,
9275 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
9276 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
9277 * c-common.def (EXCESS_PRECISION_EXPR): New.
9278 * c-cppbuiltin.c (builtin_define_float_constants): Define
9279 constants with enough digits for long double.
9280 * c-lex.c (interpret_float): Interpret constant with excess
9281 precision where appropriate.
9282 * c-opts.c (c_common_post_options): Set
9283 flag_excess_precision_cmdline. Give an error for
9284 -fexcess-precision=standard for C++ for processors where the
9285 option is significant.
9286 * c-parser.c (c_parser_conditional_expression): Handle excess
9287 precision in condition.
9288 * c-typeck.c (convert_arguments): Handle arguments with excess
9289 precision.
9290 (build_unary_op): Move excess precision outside operation.
9291 (build_conditional_expr): Likewise.
9292 (build_compound_expr): Likewise.
9293 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
9294 (build_modify_expr): Handle excess precision in RHS.
9295 (convert_for_assignment): Handle excess precision in converted
9296 value.
9297 (digest_init, output_init_element, process_init_element): Handle
9298 excess precision in initializer.
9299 (c_finish_return): Handle excess precision in return value.
9300 (build_binary_op): Handle excess precision in operands and add
9301 excess precision as needed for operation.
9302 * common.opt (-fexcess-precision=): New option.
9303 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
9304 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9305 For standard excess precision, output explicit conversion to and
9306 truncation from XFmode.
9307 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
9308 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
9309 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
9310 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
9311 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
9312 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
9313 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
9314 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
9315 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
9316 define_splits, sqrt<mode>2): Disable where appropriate for
9317 standard excess precision.
9318 * convert.c (convert_to_real): Do not shorten arithmetic to type
9319 for which excess precision would be used.
9320 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
9321 * doc/invoke.texi (-fexcess-precision=): Document option.
9322 (-mfpmath=): Correct index entry.
9323 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
9324 flag_excess_precision): New.
9325 * langhooks.c (lhd_post_options): Set
9326 flag_excess_precision_cmdline.
9327 * opts.c (common_handle_option): Handle -fexcess-precision=.
9328 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
9329 init_excess_precision): New.
9330 (lang_dependent_init_target): Call init_excess_precision.
9331 * tree.c (excess_precision_type): New.
9332 * tree.h (excess_precision_type): Declare.
9333
1e57bf47
JM
93342009-03-30 Joseph Myers <joseph@codesourcery.com>
9335
9336 PR c/35235
9337 * c-typeck.c (build_component_ref): Do not copy qualifiers from
9338 non-lvalue to component.
9339
148e4216
JM
93402009-03-29 Joseph Myers <joseph@codesourcery.com>
9341
9342 PR preprocessor/34695
9343 * Makefile.in (c-opts.o): Depend on c-tree.h.
9344 * c-common.c: Move down include of diagnostic.h.
9345 (done_lexing, c_cpp_error): New.
9346 * c-common.h (done_lexing): Declare.
9347 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
9348 (parse_in).
9349 * c-opts.c: Include c-tree.h.
9350 (c_common_init_options): Set preprocessor error callback.
9351 (c_common_handle_option): Do not set preprocessor
9352 inhibit_warnings, warnings_are_errors, warn_system_headers,
9353 pedantic_errors or inhibit_warnings flags.
9354 (c_common_post_options): Do not check cpp_errors (parse_in).
9355 (c_common_finish): Do not output dependencies if there were
9356 errors. Do not check return value of cpp_finish.
9357 * c-ppoutput.c (pp_file_change): Set input_location.
9358 * c-tree.h (c_cpp_error): Declare.
9359 * diagnostic.c (diagnostic_set_info_translated): Also initialize
9360 override_column.
9361 (diagnostic_build_prefix): Check override_column.
9362 * diagnostic.h (diagnostic_info): Add override_column field.
9363 (diagnostic_override_column): Define.
9364
2ec5deb5
PB
93652009-03-28 Paolo Bonzini <bonzini@gnu.org>
9366
ba20e309
UB
9367 * c-common.c (c_expand_expr, c_staticp): Remove.
9368 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
9369 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
9370 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
9371 * c-gimplify.c (gimplify_compound_literal_expr,
9372 optimize_compound_literals_in_ctor): Remove.
9373 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
9374 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
9375 * c-semantics.c (emit_local_var): Remove.
9376
9377 * langhooks-def.h (lhd_expand_expr): Remove.
9378 * langhooks.c (lhd_expand_expr): Remove.
9379 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
9380
9381 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
9382 handling from c-semantics.c; don't call into langhook.
9383 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
9384 * gimplify.c (gimplify_compound_literal_expr,
9385 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
9386 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
9387 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
9388 as was done in c-gimplify.c.
9389 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
9390 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
9391 Move from c-common.h.
9392 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
9393
9394 * tree.c (staticp): Do not call langhook.
9395 * langhooks.c (lhd_staticp): Delete.
9396 * langhooks-def.h (lhd_staticp): Delete prototype.
9397 (LANG_HOOKS_STATICP): Delete.
9398 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
9399
ba20e309
UB
9400 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
9401 instead of DECL_STMTs.
2ec5deb5 9402
928c19bb
JM
94032009-03-29 Joseph Myers <joseph@codesourcery.com>
9404
9405 PR c/456
9406 PR c/5675
9407 PR c/19976
9408 PR c/29116
9409 PR c/31871
9410 PR c/35198
9411 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
9412 void_type_node.
9413 (fold_call_expr): Return a NOP_EXPR from folding rather than the
9414 contained expression.
ba20e309 9415 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
9416 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
9417 conditional expressions for C.
9418 (decl_constant_value_for_optimization): Move from
ba20e309 9419 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
9420 whether optimizing and that the expression is a VAR_DECL not of
9421 array type instead of doing such checks in the caller. Do not
9422 check pedantic. Call gcc_unreachable for C++.
9423 * c-common.def (C_MAYBE_CONST_EXPR): New.
9424 * c-common.h (c_fully_fold, c_save_expr,
9425 decl_constant_value_for_optimization): New prototypes.
9426 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9427 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9428 EXPR_INT_CONST_OPERANDS): Define.
9429 * c-convert.c (convert): Strip nops from expression.
9430 * c-decl.c (groktypename): Take extra parameters expr and
9431 expr_const_operands. Update call to grokdeclarator.
9432 (start_decl): Update call to grokdeclarator. Add statement for
9433 expressions used in type of decl.
9434 (grokparm): Update call to grokdeclarator.
9435 (push_parm_decl): Update call to grokdeclarator.
9436 (build_compound_literal): Add parameter non_const and build a
9437 C_MAYBE_COSNT_EXPR if applicable.
9438 (grokdeclarator): Take extra parameters expr and
9439 expr_const_operands. Track expressions used in declaration
9440 specifiers and declarators. Fold array sizes and track whether
9441 they are constant expressions and whether they are integer
9442 constant expressions.
9443 (parser_xref_tag): Set expr and expr_const_operands fields in
9444 return value.
9445 (grokfield): Update call to grokdeclarator.
9446 (start_function): Update call to grokdeclarator.
9447 (build_null_declspecs): Set expr and expr_const_operands fields in
9448 return value.
9449 (declspecs_add_type): Handle expressions in typeof specifiers.
9450 * c-parser.c (c_parser_declspecs): Set expr and
9451 expr_const_operands fields for declaration specifiers.
9452 (c_parser_enum_specifier): Likewise.
9453 (c_parser_struct_or_union_specifier): Likewise.
9454 (c_parser_typeof_specifier): Likewise. Update call to
9455 groktypename. Fold expression as needed. Return expressions with
9456 type instead of adding statements.
9457 (c_parser_attributes): Update calls to c_parser_expr_list.
9458 (c_parser_statement_after_labels): Fold expression before passing
9459 to objc_build_throw_stmt.
9460 (c_parser_condition): Fold expression.
9461 (c_parser_asm_operands): Fold expression.
9462 (c_parser_conditional_expression): Use c_save_expr. Update call
9463 to build_conditional_expr.
9464 (c_parser_alignof_expression): Update call to groktypename.
9465 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
9466 original_code. Fold expression argument of va_arg. Create
9467 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
9468 argument to va_arg. Update calls to groktypename. Fold array
9469 index for offsetof. Verify that first argument to
9470 __builtin_choose_expr has integer type.
9471 (c_parser_postfix_expression_after_paren_type): Update calls to
9472 groktypename and build_compound_literal. Handle expressions with
9473 side effects in type name.
9474 (c_parser_postfix_expression_after_primary): Update call to
9475 c_parser_expr_list. Set original_code for calls to
9476 __builtin_constant_p.
9477 (c_parser_expr_list): Take extra parameter fold_p. Fold
9478 expressions if requested.
9479 (c_parser_objc_type_name): Update call to groktypename.
9480 (c_parser_objc_synchronized_statement): Fold expression.
9481 (c_parser_objc_receiver): Fold expression.
9482 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
9483 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
9484 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
9485 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
9486 (struct c_typespec): Add elements expr and expr_const_operands.
9487 (struct c_declspecs): Add elements expr and expr_const_operands.
9488 (groktypename, build_conditional_expr, build_compound_literal):
9489 Update prototypes.
9490 (in_late_binary_op): Declare.
9491 * c-typeck.c (note_integer_operands): New function.
9492 (in_late_binary_op): New variable.
9493 (decl_constant_value_for_broken_optimization): Move to c-common.c
9494 and rename to decl_constant_value_for_optimization.
9495 (default_function_array_conversion): Do not strip nops.
9496 (default_conversion): Do not call
9497 decl_constant_value_for_broken_optimization.
9498 (build_array_ref): Do not fold result.
9499 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
9500 result when operand is a VLA.
9501 (c_expr_sizeof_type): Update call to groktypename. Handle
9502 expressions included in type name. Use C_MAYBE_CONST_EXPR for
9503 result when operand names a VLA type.
9504 (build_function_call): Update call to build_compound_literal.
9505 Only fold result for calls to __builtin_* functions. Strip
9506 NOP_EXPR from INTEGER_CST returned from such functions. Fold
9507 the function designator.
9508 (convert_arguments): Fold arguments. Update call to
9509 convert_for_assignment.
9510 (build_unary_op): Handle increment and decrement of
9511 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
9512 decrement earlier. Fold operand of increment and decrement.
9513 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
9514 built for integer operand. Wrap returns that are INTEGER_CSTs
9515 without being integer constant expressions or that have integer
9516 constant operands without being INTEGER_CSTs.
9517 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
9518 (build_conditional_expr): Add operand ifexp_bcp. Track whether
9519 result is an integer constant expression or can be used in
9520 unevaluated parts of one and avoid folding and wrap as
9521 appropriate. Fold operands before possibly doing -Wsign-compare
9522 warnings.
9523 (build_compound_expr): Wrap result for C99 if operands can be used
9524 in integer constant expressions.
9525 (build_c_cast): Update call to digest_init. Do not ignore
9526 overflow from casting floating-point constants to integers. Wrap
9527 results that could be confused with integer constant expressions,
9528 null pointer constants or floating-point constants.
9529 (c_cast_expr): Update call to groktypename. Handle expressions
9530 included in type name.
9531 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
9532 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
9533 Update calls to convert_for_assignment.
9534 (convert_for_assignment): Take new parameter
9535 null_pointer_constant. Do not strip nops or call
9536 decl_constant_value_for_broken_optimization. Set
9537 in_late_binary_op for conversions to boolean.
9538 (store_init_value): Update call to digest_init.
9539 (digest_init): Take new parameter null_pointer_constant. Do not
9540 call decl_constant_value_for_broken_optimization. pedwarn for
9541 initializers not constant expressions. Update calls to
9542 convert_for_assignment.
9543 (constructor_nonconst): New.
9544 (struct constructor_stack): Add nonconst element.
9545 (really_start_incremental_init, push_init_level, pop_init_level):
9546 Handle constructor_nonconst and nonconst element.
9547 (set_init_index): Call constant_expression_warning for array
9548 designators.
9549 (output_init_element): Fold value. Set constructor_nonconst as
9550 applicable. pedwarn for initializers not constant expressions.
9551 Update call to digest_init. Call constant_expression_warning
9552 where constant initializers are required.
9553 (process_init_element): Use c_save_expr.
9554 (c_finish_goto_ptr): Fold expression.
9555 (c_finish_return): Fold return value. Update call to
9556 convert_for_assignment.
9557 (c_start_case): Fold switch expression.
9558 (c_process_expr_stmt): Fold expression.
9559 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 9560 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
9561 (build_binary_op): Track whether results are integer constant
9562 expressions or may occur in such, disable folding and wrap results
9563 as applicable. Fold operands for -Wsign-compare warnings unless
9564 in_late_binary_op.
9565 (c_objc_common_truthvalue_conversion): Handle results folded to
9566 integer constants that are not integer constant expressions.
9567 * doc/extend.texi: Document when typeof operands are evaluated,
9568 that condition of __builtin_choose_expr is an integer constant
9569 expression, and more about use of __builtin_constant_p in
9570 initializers.
9571
5babbcc0
RG
95722009-03-29 Richard Guenther <rguenther@suse.de>
9573
9574 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
9575 propagate addresses of array references.
9576
0340f2ba
SB
95772009-03-29 Steven Bosscher <steven@gcc.gnu.org>
9578
9579 * regmove.c (perhaps_ends_bb_p): Remove.
9580 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
9581 from INSN and check that the main loop stays within that basic block.
9582 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
9583 (regmove_forward_pass): Split out from regmove_optimize. Use
9584 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
9585 (regmove_backward_pass): Split out from regmove_optimize. Use
9586 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
9587 (regmove_optimize): Simplify.
9588
eeae74a1
L
95892009-03-29 H.J. Lu <hongjiu.lu@intel.com>
9590
9591 PR target/39545
9592 * config/i386/i386.c (classify_argument): Ignore flexible array
9593 member in struct and warn ABI change.
9594
a24078b2
L
95952009-03-29 H.J. Lu <hongjiu.lu@intel.com>
9596
9597 * config/i386/i386-protos.h (ix86_agi_dependent): New.
9598
9599 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
9600 (ix86_adjust_cost): Updated.
9601
a8da523f
JH
96022009-03-29 Jan Hubicka <jh@suse.cz>
9603
9604 PR middle-end/28850
9605 * tree-pass.h (pass_cleanup_eh): New function.
9606 (remove_unreachable_regions): Break code handling RTL
9607 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
9608 that can not be reached by runtime.
9609 (can_be_reached_by_runtime): New function.
9610 (label_to_region_map): New function.
9611 (num_eh_regions): New function.
9612 (rtl_remove_unreachable_regions): New function.
9613 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
9614 (remove_eh_region): New function.
9615 * except.h: Include sbitmap and vecprim.
9616 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
9617 num_eh_regions): Declare.
9618 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 9619 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
9620 * tree-eh.c (tree_remove_unreachable_handlers): New function.
9621 (tree_empty_eh_handler_p): New function.
9622 (cleanup_empty_eh): New function.
9623 (cleanup_eh): New function.
9624 (pass_cleanup_eh): New function.
9625
98f358e5
JH
96262009-03-29 Jan Hubicka <jh@suse.cz>
9627
9628 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
9629 for removed regions.
9630
13a9fa44
JH
96312009-03-29 Jan Hubicka <jh@suse.cz>
9632
9633 * except.c (dump_eh_tree): Dump all datastructures.
9634
e38cf733
JH
96352009-03-29 Jan Hubicka <jh@suse.cz>
9636
9637 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
9638 (duplicate_eh_regions_1): Likewise.
9639 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
9640 vector; call EH verification.
9641 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
9642 Be ready for region being removed.
9643
12802c2b
JH
96442009-03-29 Jan Hubicka <jh@suse.cz>
9645
9646 * bitmap.c (bitmap_last_set_bit): New function.
9647 * bitmap.h (bitmap_last_set_bit): Declare.
9648
4ea80a41
DA
96492009-03-29 David Ayers <ayers@fsfe.org>
9650
9651 PR objc/27377
9652 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
9653 by calling objc_compare_types and surpress warnings about
9654 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 9655
4ea80a41 96562009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
9657
9658 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
9659 call initialize_inline_failed.
9660 (initialize_inline_failed): Move it from here ...
9661 * cgraph.c (initialize_inline_failed): ... to here.
9662 (cgraph_create_edge): Call initialize_inline_failed rather than
9663 setting inline_failed directly.
9664
7fb0ee07
BE
96652009-03-29 Ben Elliston <bje@au.ibm.com>
9666
9667 PR target/32542
9668 * sysv4.opt (msdata): Improve comment.
9669 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
9670 * sysv4.h (SVR4_ASM_SPEC): Likewise.
9671
0be77bf2
BE
96722009-03-29 Ben Elliston <bje@au.ibm.com>
9673
9674 PR target/30451
9675 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
9676 load and store attributes.
9677
593812b6
BE
96782009-03-29 Ben Elliston <bje@au.ibm.com>
9679
9680 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
9681 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
9682 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
9683 * doc/extend.texi (X86 Built-in Functions): Add index entries for
9684 __builtin_infq and __builtin_huge_valq.
9685
8272d11d
AS
96862009-03-28 Anatoly Sokolov <aesok@post.ru>
9687
9688 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
9689 atmega8m1 devices.
9690 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9691 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
9692
74fe548b
XDL
96932009-03-28 Xinliang David Li <davidxl@google.com>
9694
2ba9daa7 9695 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
9696 (do_dbg_cnt): New function.
9697
33977f81
JH
96982009-03-28 Jan Hubicka <jh@suse.cz>
9699
9700 Merge from pretty-ipa:
9701
9702 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 9703
33977f81
JH
9704 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
9705 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
9706 * passes.c (function_called_by_processed_nodes_p): New.
9707 * ipa-pure-const.c (check_call): Fix handling of operands.
9708 (analyze_function): Dump debug output for skipped bodies.
9709 (local_pure_const): Use function_called_by_processed_nodes_p.
9710 * dwarf2out.c (reference_to_unused): Use output.
9711 * passes.c (do_per_function_toporder): Likewise.
9712
9713 2008-11-12 Jan Hubicka <jh@suse.cz>
9714
9715 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
9716 * ipa-pure-const.c (funct_state_d): Add can throw field; make
9717 state_set_in_source enum
9718 (check_decl): Ignore memory tags; do not set fake looping flags;
9719 dump diagnostics.
9720 (check_operand, check_tree, check_rhs_var, check_lhs_var,
9721 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
9722 (check_call, analyze_function): Rewrite.
9723 (check_stmt): New.
9724 (add_new_function): Update call of analyze_function.
9725 (generate_summary): Add call of analyze_function.
9726 (propagate): Propagate can_throw; handle state_set_in_source correctly.
9727 (local_pure_const): New function.
9728 (pass_local_pure_const): New pass.
9729 * ipa-inline.c (inline_transform): Set after_inlining.
9730 * tree-eh.c (stmt_can_throw_external): New.
9731 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
9732 work with aliasing built.
9733 * tree-flow.h (stmt_can_throw_external): New.
9734 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
9735 and local pure/const pass in early and late optimization queue.
ba20e309 9736
617f3897
MJ
97372009-03-28 Martin Jambor <mjambor@suse.cz>
9738
9739 * fold-const.c (get_pointer_modulus_and_residue): New parameter
9740 allow_func_align.
9741 (fold_binary): Allow function decl aligment consideration is the
9742 second argument is integer constant one.
9743 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
9744 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
9745 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
9746
fe89fbc5
JH
97472009-03-28 Jan Hubicka <jh@suse.cz>
9748
9749 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
9750 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
9751 * function.h (rtl_data): Add nothrow flag.
9752 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
9753 set DECL_NOTHROW for AVAILABLE functions.
9754
574872ff
JJ
97552009-03-28 Jakub Jelinek <jakub@redhat.com>
9756
b3bf8855
JJ
9757 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
9758 following vector keyword has expansion starting with pixel or bool
9759 keyword, expand vector to __vector and pixel or bool to __pixel or
9760 __bool.
9761
574872ff
JJ
9762 PR c++/39554
9763 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
9764 warn_if_disallowed_function_p): Removed.
9765 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
9766 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
9767 warning_if_disallowed_function_p.
9768 * flags.h (warn_if_disallowed_function_p,
9769 warn_disallowed_functions): Removed.
9770 * common.opt (Wdisallowed-function-list=): Removed.
9771 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
9772
b005da11
RG
97732009-03-28 Richard Guenther <rguenther@suse.de>
9774
9775 PR tree-optimization/38723
9776 * tree-ssa-pre.c (compute_avail): Add all default definitions to
9777 the entry block.
9778
1de812a6
JH
97792009-03-28 Jan Hubicka <jh@suse.cz>
9780
9781 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
9782 test introduced by my previous patch.
9783
fbb789d4
RG
97842009-03-28 Richard Guenther <rguenther@suse.de>
9785
9786 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
9787 the PHIs value undefined.
9788
6f1873a1
JH
97892009-03-28 Jan Hubicka <jh@suse.cz>
9790
9791 * tree-pass.h (pass_fixup_cfg): New pass.
9792 * ipa-inline.c (inline_transform): Set
9793 always_inline_functions_inlined/after_inlining.
9794 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
9795 (pass_fixup_cfg): New pass.
9796 * passes.c (init_optimization_passes): Add fixup_cfg.
9797
17021bc8
RG
97982009-03-28 Richard Guenther <rguenther@suse.de>
9799
9800 PR tree-optimization/38458
9801 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
9802 argument use the arguments copy-of value.
9803
e8114fba
RG
98042009-03-28 Richard Guenther <rguenther@suse.de>
9805
9806 PR tree-optimization/38180
9807 * tree-ssa-ccp.c (get_default_value): Simplify.
9808 (likely_value): Likewise.
9809 (surely_varying_stmt_p): Properly handle VOP case.
9810 (ccp_initialize): Likewise.
9811 (ccp_fold): Handle propagating through *&.
9812 (fold_const_aggregate_ref): Also handle decls.
9813
257eb6e3
JH
98142009-03-28 Jan Hubicka <jh@suse.cz>
9815
9816 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
9817 * cgraph.h (cgraph_node): Likewise.
9818 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
9819 (cgraph_reset_node): Use process flag.
9820 (cgraph_mark_functions_to_output): Likewise.
9821 (cgraph_expand_function): Likewise.
9822 (cgraph_expand_all_functions): Likewise.
9823 (cgraph_output_in_order): Likewise.
9824 * dwarf2out.c (reference_to_unused): Likewise.
9825 * passes.c do_per_function_toporder): Likewise.
9826
61a05df1
JH
98272009-03-28 Jan Hubicka <jh@suse.cz>
9828
9829 Bring from lto-branch:
ba20e309 9830
61a05df1
JH
9831 2008-09-03 Doug Kwan <dougkwan@google.com>
9832
9833 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
9834 enums instead of reason strings.
9835 * cgraph.c (cgraph_create_edge): Same.
9836 (cgraph_inline_failed_string): New function.
9837 * cgraph.h (cgraph_inline_failed_t): New enum type.
9838 (cgraph_inline_failed_string): New prototype.
9839 (struct cgraph_edge): Change type of INLINED_FAILED from constant
9840 char pointer to cgraph_inline_failed_t.
9841 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
9842 (cgraph_default_inline_p): Ditto.
60839f5d 9843 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
9844 to cgraph_inline_failed_t pointer.
9845 * cif-code.def: New file.
9846 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
9847 reason string.
9848 (cgraph_check_inline_limits): Change type of REASON to pointer to
9849 cgraph_inline_failed_t. Replace reason strings with enums.
9850 (cgraph_default_inline_p): Ditto.
9851 (cgraph_recursive_inlining_p): Ditto.
9852 (update_caller_keys): Change type of FAILED_REASON to
9853 cgraph_inline_failed_t.
9854 (cgraph_set_inline_failed): Change type of REASON to pointer to
9855 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
9856 convert enums to strings for text output.
9857 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
9858 to be of type cgraph_inline_failed_t. Replace reason strings with
9859 enums. Call cgraph_inline_failed_string to covert enums
9860 to strings for text output.
9861 (cgraph_decide_inlining): Replace reason strings with enums.
9862 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
9863 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
9864 for text output.
9865 * tree-inline.c (expand_call_inline): Change type of REASON
9866 to cgraph_inline_failed_t. Replace reason strings with enums.
9867 Call cgraph_inline_failed_string for text output.
9868 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
9869 (cgraph.o): Ditto.
9870
144e8aac
JH
98712009-03-28 Jan Hubicka <jh@suse.cz>
9872
9873 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
9874 cgraph_clone_node): Remove master clone handling.
9875 (cgraph_is_master_clone, cgraph_master_clone): Remove.
9876 * cgraph.h (master_clone): Remove.
9877 (cgraph_is_master_clone, cgraph_master_clone): Remove.
9878 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
9879 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
9880
4a371c8d
JH
98812009-03-28 Jan Hubicka <jh@suse.cz>
9882
9883 * cgraph.c (cgraph_function_body_availability): Functions declared
9884 inline are always safe to assume that it is not going to be replaced.
9885
6cdb0ee3
RG
98862009-03-28 Richard Guenther <rguenther@suse.de>
9887
9888 PR tree-optimization/38513
9889 * tree-ssa-pre.c (eliminate): Remove redundant stores.
9890 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
9891 EXC_PTR_EXPR and FILTER_EXPR.
9892 (get_ref_from_reference_ops): Likewise.
9893
8ca1fd76
RG
98942009-03-28 Richard Guenther <rguenther@suse.de>
9895
9896 PR tree-optimization/38968
9897 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
9898 Use FLOOR_MOD_EXPR to compute misalignment.
9899
a254e44d
RG
99002009-03-28 Richard Guenther <rguenther@suse.de>
9901
9902 PR tree-optimization/37795
9903 * tree.h (combine_comparisons): Declare.
9904 * fold-const.c (combine_comparisons): Export.
9905 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
9906 comparisons.
9907 (ifcombine_iforif): Use combine_comparisons.
9908
a8ee227c
JH
99092009-03-28 Jan Hubicka <jh@suse.cz>
9910
9911 * tree-eh.c (inlinable_call_p): New function.
9912 (make_eh_edges): Use it.
9913 (verify_eh_edges): Use it.
9914 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
9915 * except.c (reachable_next_level): Add inlinable_function argument
9916 (sjlj_find_directly_reachable_regions): Update.
9917 (add_reachable_handler): Do not set saw_any_handlers.
9918 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
9919 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
9920 Add new inlinable call parameter.
9921 (can_throw_internal, can_throw_external): Update.
9922 * except.h (can_throw_internal_1, can_throw_external_1,
9923 foreach_reachable_handler): Update declaration.
9924
52c0e446
JM
99252009-03-28 Joseph Myers <joseph@codesourcery.com>
9926
9927 * config/arm/t-arm-coff, config/h8300/coff.h,
9928 config/i386/i386-aout.h, config/i386/i386-coff.h,
9929 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
9930 config/pdp11/2bsd.h, config/rs6000/aix41.h,
9931 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
9932 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
9933 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
9934 sys-types.h: Remove.
9935 * Makefile.in: Remove protoize and fixproto support and references
9936 in comments.
9937 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
9938 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
9939 Remove.
9940 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
9941 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
9942 unprotoize$(exeext).
9943 (rest.encap): Don't depend on $(STMP_FIXPROTO)
9944 (.PHONY): Don't depend on proto.
9945 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
9946 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
9947 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
9948 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
9949 build/gen-protos.o, build/scan.o, xsys-protos.h,
9950 build/fix-header$(build_exeext), build/fix-header.o,
9951 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
9952 stmp-install-fixproto): Remove.
9953 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
9954 SYSCALLS.c or fixproto files.
9955 (install-common): Don't install protoize.
9956 (install-headers-tar, install-headers-cpio, install-headers-cp):
9957 Don't depend on $(STMP_FIXPROTO).
9958 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
9959 install fixproto files or write out fixproto settings.
9960 (uninstall): Don't uninstall protoize.
9961 * config.gcc (use_fixproto): Remove.
9962 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
9963 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
9964 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
9965 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
9966 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
9967 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
9968 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
9969 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
9970 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
9971 * config/t-vxworks (STMP_FIXPROTO): Remove.
9972 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
9973 STMP_FIXPROTO): Remove.
9974 * config.in, configure: Regenerate.
9975 * crtstuff.c (gid_t, uid_t): Don't undefine.
9976 * doc/install.texi: Change m68k-coff to m68k-elf in example.
9977 (arm-*-coff, arm-*-aout: Remove target entries.
9978 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
9979 Remove mention of AIX 4.1.
9980 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
9981 * doc/invoke.texi (Running Protoize): Remove.
9982 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
9983 (Protoize Caveats): Remove.
9984 * tsystem.h: Update comments on headers assumed to exist.
9985
20a07f44
VM
99862009-03-27 Vladimir Makarov <vmakarov@redhat.com>
9987
9988 * genautomata.c: Add a new year to the copyright. Add a new
9989 reference.
9990 (struct insn_reserv_decl): Add comments for member bypass_list.
9991 (find_bypass): Remove.
9992 (insert_bypass): New.
9993 (process_decls): Use insert_bypass.
9994 (output_internal_insn_latency_func): Output all bypasses with the
9995 same input insn in one switch case.
9996
9997 * rtl.def (define_bypass): Describe bypass choice.
9998 * doc/md.texi (define_bypass): Ditto.
9999
3a0d06c1
RB
100002009-03-27 Richard Guenther <rguenther@suse.de>
10001
10002 * gimplify.c (mark_addressable): Export.
10003 * tree-flow.h (mark_addressable): Declare.
10004 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
10005 * tree-ssa.c (verify_phi_args): Verify that address taken
10006 variables have TREE_ADDRESSABLE set.
10007
100082009-03-27 Richard Guenther <rguenther@suse.de>
10009
10010 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
10011 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
10012 Do not mark decls TREE_ADDRESSABLE.
10013 (build_fold_addr_expr): Adjust.
10014 (fold_addr_expr): Remove.
10015 (fold_unary): Use build_fold_addr_expr.
10016 (fold_comparison): Likewise.
10017 (split_address_to_core_and_offset): Likewise.
10018 * coverage.c (tree_coverage_counter_addr): Mark the array decl
10019 TREE_ADDRESSABLE.
10020 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
10021 (gimplify_modify_expr_to_memcpy): Mark source and destination
10022 addressable.
10023 * omp-low.c (create_omp_child_function): Mark the object decl
10024 TREE_ADDRESSABLE.
10025 (lower_rec_input_clauses): Mark the var we take the address of
10026 TREE_ADDRESSABLE.
10027 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
10028
2ac26e15
L
100292009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10030
10031 PR middle-end/39315
10032 * cfgexpand.c (expand_one_stack_var_at): Change alignment
10033 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
10034
472c7fbd
RG
100352009-03-27 Richard Guenther <rguenther@suse.de>
10036
10037 PR tree-optimization/39120
10038 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
10039 constraints.
10040 (handle_lhs_call): Process return constraints. Add escape
10041 constraints if necessary.
10042 (handle_const_call): Fill out return constraints. Make nested
10043 case more precise. Avoid consttmp if possible.
10044 (handle_pure_call): Fill out return constraints. Avoid
10045 callused if possible.
10046 (find_func_aliases): Simplify call handling.
10047
100482009-03-27 Richard Guenther <rguenther@suse.de>
10049
10050 PR tree-optimization/39120
10051 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
10052 as a representative.
10053 (solve_graph): Do propagate CALLUSED.
10054 (handle_pure_call): Use a scalar constraint from CALLUSED for
10055 the return value.
10056 (find_what_p_points_to): CALLUSED shall not appear in poins-to
10057 solutions.
10058
d9223014
L
100592009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10060
10061 PR c/39323
10062 * c-common.c (handle_aligned_attribute): Properly check alignment
10063 overflow. Use (1U << i) instead of (1 << i).
10064
ba20e309 10065 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
10066
10067 * expr.h (get_mem_align_offset): Updated.
10068
10069 * tree.h (tree_decl_common): Change align to "unsigned int" and
10070 move it before pointer_alias_set.
10071
689b689c
L
100722009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10073 Jakub Jelinek <jakub@redhat.com>
10074
10075 PR target/38034
10076 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
10077 gr_register_operand with gr_reg_or_0_operand.
10078 (cmpxchg_rel_di): Likewise.
10079 (sync_lock_test_and_set<mode>): Likewise.
10080
c619e982
L
100812009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10082
10083 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
10084 (true_regnum): Likewise.
10085
10086 * rtlanal.c (subreg_info): Moved to ...
10087 * rtl.h (subreg_info): Here. New.
10088 (subreg_get_info): New.
10089
10090 * rtlanal.c (subreg_get_info): Make it extern.
10091
51212b32
L
100922009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10093
10094 PR target/39472
10095 * config/i386/i386.c (ix86_abi): New.
10096 (override_options): Handle -mabi=.
ba20e309 10097 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
10098 (ix86_call_abi_override): Likewise.
10099 (init_cumulative_args): Likewise.
10100 (function_arg_advance): Likewise.
10101 (function_arg_64): Likewise.
10102 (function_arg): Likewise.
10103 (ix86_pass_by_reference): Likewise.
10104 (ix86_function_value_regno_p): Likewise.
10105 (ix86_build_builtin_va_list_abi): Likewise.
10106 (setup_incoming_varargs_64): Likewise.
10107 (is_va_list_char_pointer): Likewise.
10108 (ix86_init_machine_status): Likewise.
ba20e309 10109 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
10110 (ix86_function_type_abi): Return enum calling_abi. Rewrite
10111 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 10112 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
10113 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
10114 with ix86_abi.
10115 (ix86_fn_abi_va_list): Updated.
10116
10117 * config/i386/i386.h (ix86_abi): New.
10118 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
10119 (CONDITIONAL_REGISTER_USAGE): Likewise.
10120 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
10121 (machine_function): Likewise.
10122
10123 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
10124 with ix86_abi.
10125 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
10126 (STACK_BOUNDARY): Likewise.
10127 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
10128
10129 * config/i386/i386.opt (mabi=): New.
10130
10131 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
10132 return enum calling_abi.
10133 (ix86_function_type_abi): Likewise.
10134 (ix86_function_abi): Removed.
10135
10136 * doc/invoke.texi: Document -mabi= option for x86.
10137
7338ea63
KG
101382009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10139
10140 * builtins.c (real_dconstp): Delete.
10141 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
10142
68599f33
DS
101432009-03-27 Dodji Seketeli <dodji@redhat.com>
10144 Jakub Jelinek <jakub@redhat.com>
10145
10146 PR debug/37959
10147 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
10148 (gen_subprogram_die): When a function is explicit, generate the
10149 DW_AT_explicit attribute.
10150 * langhooks.h (struct lang_hooks_for_decls): Add
10151 function_decl_explicit_p langhook.
10152 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
10153 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
10154
9f5e9983
JJ
101552009-03-27 Jakub Jelinek <jakub@redhat.com>
10156
64d7685c
JJ
10157 * builtins.c (fold_builtin_memory_op): Optimize memmove
10158 into memcpy if we can prove source and destination don't overlap.
10159
9f5e9983
JJ
10160 * tree-inline.c: Include gt-tree-inline.h.
10161 (clone_fn_id_num): New variable.
10162 (clone_function_name): New function.
10163 (tree_function_versioning): Use it.
10164 * Makefile.in (GTFILES): Add tree-inline.c.
10165
e54d52a8
MM
101662009-03-27 Mark Mitchell <mark@codesourcery.com>
10167
10168 * BASE-VER: Change to 4.5.0.
10169
e9d51dc6
XDL
101702009-03-27 Xinliang David Li <davidxl@google.com>
10171
10172 PR tree-optimization/39557
10173 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
10174
4577cea1
XDL
101752009-03-27 Xinliang David Li <davidxl@google.com>
10176
10177 PR tree-optimization/39548
2ba9daa7 10178 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
10179 candidate check.
10180
0f7464f4
L
101812009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10182
10183 * c-common.c (pointer_int_sum): Use %wd on return from
10184 tree_low_cst.
10185
a8847a7f
L
101862009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10187
10188 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
10189 on return from tree_low_cst.
10190
b0957daf
AP
101912009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
10192
10193 PR c++/36799
ba20e309
UB
10194 * ginclude/stdarg.h (va_copy): Define also for
10195 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 10196
a5f805df
MLI
101972009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10198
10199 PR c++/35652
10200 * builtins.h (c_strlen): Do not warn here.
10201 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
10202 * c-common.c (pointer_int_sum): Take an explicit location.
10203 Warn about offsets out of bounds.
10204 * c-common.h (pointer_int_sum): Adjust declaration.
10205
6f401211
RW
102062009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10207
a5f805df
MLI
10208 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
10209 markup glitch.
6f401211 10210
5a59b39e
JJ
102112009-03-26 Jakub Jelinek <jakub@redhat.com>
10212
10213 PR c++/39554
10214 * opts.c (warn_if_disallowed_function_p): Don't assume
10215 get_callee_fndecl must return non-NULL.
10216
d5f89b53
VM
102172009-03-26 Vladimir Makarov <vmakarov@redhat.com>
10218
10219 PR rtl-optimization/39522
10220 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
10221 when reg_reloaded_valid is set.
10222
61238a79
UW
102232009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10224
10225 * config/spu/divv2df3.c: New file.
10226 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
10227 (DPBIT_FUNCS): Filter out _div_df.
10228
03f8829b
BS
102292009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
10230
10231 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
10232 a jump insn, count that jump in the distance to the loop start.
10233
9fdcdc74
KK
102342009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
10235
10236 PR target/39523
10237 * config/sh/sh.c (calc_live_regs): Fix condition for global
10238 registers except PIC_OFFSET_TABLE_REGNUM.
10239
46994828
KT
102402009-03-25 Kai Tietz <kai.tietz@onevision.com>
10241
10242 PR/39518
10243 * doc/invoke.texi (-mconsole): New.
10244 (-mcygwin): New.
10245 (-mno-cygwin): New.
10246 (-mdll): New.
10247 (-mnop-fun-dllimport): New.
10248 (-mthread): New.
10249 (-mwin32): New.
10250 (-mwindows): New.
10251 (sub section "i386 and x86-64 Windows Options"): New.
10252
60839f5d 102532009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
10254
10255 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
10256 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
10257
ae560440
RG
102582009-03-25 Richard Guenther <rguenther@suse.de>
10259
10260 PR middle-end/39497
10261 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
10262 of -Wno-error.
10263
cd510f15
AM
102642009-03-25 Andrey Belevantsev <abel@ispras.ru>
10265
10266 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
10267 neither of haifa/selective schedulers are working.
10268
44ab0f0e
RW
102692009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10270
10271 * doc/invoke.texi (Debugging Options): Fix description of
10272 -fno-merge-debug-strings.
10273
ad9646c7
HPN
102742009-03-24 Hans-Peter Nilsson <hp@axis.com>
10275
e6142656
HPN
10276 * config/cris/libgcc.ver: New version-script.
10277 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
10278
ad9646c7
HPN
10279 * configure.ac <GAS features, nop mnemonic>: Add pattern
10280 crisv32-*-* for "nop".
ba20e309 10281 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
10282 * configure: Regenerate.
10283
09ac4473
IR
102842009-03-24 Ira Rosen <irar@il.ibm.com>
10285
10286 PR tree-optimization/39529
10287 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
10288 mark_sym_for_renaming for the tag copied to the new vector
10289 pointer.
10290
d94a427e
AL
102912009-03-24 Arthur Loiret <aloiret@debian.org>
10292
ba20e309 10293 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
10294 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
10295 EXTRA_SPEC_FUNCTIONS.
10296 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
10297 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
10298 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
10299 -march and -mtune options.
10300
60839f5d 103012009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
10302
10303 * config/m68k/t-rtems: Add m5329 multilib.
10304
603f5959
DS
103052009-03-24 Dodji Seketeli <dodji@redhat.com>
10306 Jakub Jelinek <jakub@redhat.com>
10307
10308 PR debug/39524
10309 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
10310 nodes.
10311
c5cdb03f
JJ
103122009-03-23 Jakub Jelinek <jakub@redhat.com>
10313
10314 PR c/39495
10315 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
10316 instead of c_parser_expression_conv, if original_code isn't one of the
10317 4 allowed comparison codes, fail.
10318
3691626c
RG
103192009-03-23 Richard Guenther <rguenther@suse.de>
10320
10321 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
10322 * tree.h (struct tree_type): Likewise.
10323 * reload.h (struct insn_chain): Likewise.
10324 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
10325 * function.h (struct function): Likewise.
10326 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
10327
88ccb72a
JJ
103282009-03-23 Jakub Jelinek <jakub@redhat.com>
10329
10330 PR tree-optimization/39516
10331 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
10332
60839f5d 103332009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 10334
2ba9daa7 10335 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
10336 should be set true if BITS_PER_WORD of target is bigger than 32
10337
f82162f8
HPN
103382009-03-22 Hans-Peter Nilsson <hp@axis.com>
10339
10340 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
10341 Translate -B-options to -rpath-link. Correct existing
10342 rpath-link and conditionalize on !nostdlib.
10343
048fd785
RW
103442009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10345
10346 * doc/extend.texi (Function Attributes, Variable Attributes):
10347 Fix typos.
10348 * doc/invoke.texi (Debugging Options, Optimize Options)
10349 (i386 and x86-64 Options, MCore Options): Likewise.
10350
6e75c1a9
JJ
103512009-03-20 Jakub Jelinek <jakub@redhat.com>
10352
10353 PR debug/37890
10354 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
10355 it for block local namespace aliases.
10356 (gen_decl_die): Pass context_die to gen_namespace_die.
10357
ea1199ee
JJ
103582009-03-19 Jakub Jelinek <jakub@redhat.com>
10359
10360 PR c/39495
10361 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
10362 minimum or maximum value.
10363
58929c10
AO
103642009-03-19 Alexandre Oliva <aoliva@redhat.com>
10365
10366 * reginfo.c (globalize_reg): Recompute derived reg sets.
10367
60839f5d 103682009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
10369
10370 PR target/39063
10371 * libgcc2.c (mprotect): Do not use signed arguments for
10372 VirtualProtect, use DWORD arguments. Also fix the 'may
10373 be used uninitialized' warning for the np variable.
10374
f57c2f04
JJ
103752009-03-19 Jakub Jelinek <jakub@redhat.com>
10376
10377 PR target/39496
10378 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
10379 functions using regparm calling conventions when not optimizing.
10380 (ix86_function_sseregparm): Similarly for sseregparm calling
10381 conventions.
10382
9e517d61
LF
103832009-03-19 Li Feng <nemokingdom@gmail.com>
10384
10385 PR middle-end/39500
10386 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
10387 dependence if the first conflict is after niter iterations.
10388
8ef20026
HPN
103892009-03-19 Hans-Peter Nilsson <hp@axis.com>
10390
10391 PR middle-end/38609
10392 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
10393 functions with dynamic stack-pointer adjustments.
10394
64e4a1a6
BE
103952009-03-19 Ben Elliston <bje@au.ibm.com>
10396
10397 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
10398 option; change to -msdata=data.
10399
9a0f3e86
RW
104002009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10401
10402 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
10403 and -fopenmp.
10404
09bc5979
EB
104052009-03-18 Eric Botcazou <ebotcazou@adacore.com>
10406
10407 PR target/35180
10408 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
10409
332459cd
SL
104102009-03-18 Sandra Loosemore <sandra@codesourcery.com>
10411
10412 * doc/invoke.texi (Code Gen Options): Expand discussion of
10413 -fno-common.
10414
8f5929e1
JJ
104152009-03-18 Jakub Jelinek <jakub@redhat.com>
10416
10417 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
10418 * matrix-reorg.c (struct matrix_info): Likewise.
10419 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
10420 * rtl.h (struct mem_attrs): Likewise.
10421 * df.h (struct df): Likewise.
10422 * tree-data-ref.h (struct data_dependence_relation): Likewise.
10423 * ira-int.h (struct ira_allocno): Likewise.
10424 * df-scan.c (struct df_collection_rec): Likewise.
10425 * ira.c (struct equivalence): Likewise.
10426 * function.c (struct temp_slot): Likewise.
10427 * cfgloop.h (struct loop): Likewise.
10428
d130d647
JJ
10429 PR debug/39485
10430 * function.c (use_register_for_decl): When not optimizing, disregard
10431 register keyword for variables with types containing methods.
10432
9968d233
SP
104332009-03-18 Sebastian Pop <sebastian.pop@amd.com>
10434
10435 PR middle-end/39447
10436 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
10437 (is_simple_operand): Call contains_component_ref_p before calling data
10438 reference analysis that would fail on COMPONENT_REFs.
10439
10440 * tree-vrp.c (search_for_addr_array): Fix formatting.
10441
69484bfd
RG
104422009-03-18 Richard Guenther <rguenther@suse.de>
10443
10444 * tree-vect-transform.c (vect_loop_versioning): Fold the
10445 generated comparisons.
10446 * tree-vectorizer.c (set_prologue_iterations): Likewise.
10447 (slpeel_tree_peel_loop_to_edge): Likewise.
10448
66811228
RW
104492009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10450
0631b69f
RW
10451 PR middle-end/37805
10452 * opts.c (print_specific_help): In addition to `undocumented',
10453 accept `separate' and `joined' flags if passed alone. Describe
10454 output by the first matched one of those.
10455 (common_handle_option): Skip over empty strings.
10456 * gcc.c (display_help): Fix help string for `--help='.
10457 * doc/invoke.texi (Option Summary, Overall Options): With
10458 `--help=', classes and qualifiers can both be repeated, but
10459 only the latter can be negated. One should not pass only
10460 negated qualifiers. Fix markup and examples.
10461
66811228
RW
10462 Revert
10463 2008-10-14 Jakub Jelinek <jakub@redhat.com>
10464 PR middle-end/37805
10465 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
10466 and -fhelp=separate.
10467
3c072c6b
JY
104682009-03-17 Jing Yu <jingyu@google.com>
10469
10470 PR middle-end/39378
80c65208
JY
10471 * function.h (struct rtl_data): Move is_thunk from here...
10472 (struct function): ...to here.
10473 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
10474 * varasm.c (assemble_start_function): Change is_thunk from crtl to
10475 cfun.
80c65208
JY
10476 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
10477 cfun.
10478 (alpha_does_function_need_gp, alpha_start_function): Likewise.
10479 (alpha_output_function_end_prologue): Likewise.
10480 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
10481 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
10482 (rs6000_output_function_epilogue): Likewise.
10483 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 10484
9ade279b
UB
104852009-03-17 Uros Bizjak <ubizjak@gmail.com>
10486
10487 PR target/39482
10488 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
10489 from different units in a single alternative.
10490 (*truncdfsf_i387): Ditto.
10491 (*truncxfsf2_mixed): Ditto.
10492 (*truncxfdf2_mixed): Ditto.
10493
16e60c17
JJ
104942009-03-17 Jakub Jelinek <jakub@redhat.com>
10495
98381eb4
JJ
10496 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
10497 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
10498
df5deb18
JJ
10499 PR debug/39474
10500 * tree-ssa-live.c (remove_unused_locals): Don't remove local
10501 unused non-artificial variables when not optimizing.
10502
a3f596ba
JJ
10503 PR debug/39471
10504 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
10505 DW_TAG_imported_module even if decl is IMPORTED_DECL with
10506 NAMESPACE_DECL in its DECL_INITIAL.
10507
6b2b8871
JJ
10508 PR middle-end/39443
10509 * optabs.c (set_user_assembler_libfunc): New function.
10510 * expr.h (set_user_assembler_libfunc): New prototype.
10511 * c-common.c: Include libfuncs.h.
10512 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
10513 for memcmp, memset, memcpy, memmove and abort.
10514 * Makefile.in (c-common.o): Depend on libfuncs.h.
10515
16e60c17
JJ
10516 PR debug/39412
10517 * dwarf2out.c (gen_inlined_enumeration_type_die,
10518 gen_inlined_structure_type_die, gen_inlined_union_type_die,
10519 gen_tagged_type_instantiation_die): Removed.
10520 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
10521 do nothing.
10522
4d936aca
JJ
105232009-03-17 Janis Johnson <janis187@us.ibm.com>
10524
10525 PR testsuite/38526
10526 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
10527 its use.
10528 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
10529 (check-parallel-%): Ditto.
10530 (check-consistency): Ditto.
10531
4e9b2e50
KT
105322009-03-17 Kai Tietz <kai.tietz@onevision.com>
10533
10534 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
10535 local variable rhs by NULL_TREE.
10536
21440b2d
L
105372009-03-17 H.J. Lu <hongjiu.lu@intel.com>
10538
10539 PR target/39477
9ade279b 10540 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 10541
d8905c6a
L
105422009-03-17 H.J. Lu <hongjiu.lu@intel.com>
10543
10544 PR target/39476
9ade279b 10545 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
10546
105472009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
10548
10549 PR target/39473
10550 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
10551 for ms->sysv ABI calls only in 64bit mode.
10552
10553 * config/i386/i386.md (untyped_call): Support 32bit.
10554
cdcabece
L
105552009-03-16 H.J. Lu <hongjiu.lu@intel.com>
10556
10557 * doc/extend.texi: Replace x86_65 with x86_64.
10558
97b4ba9f
JJ
105592009-03-16 Jakub Jelinek <jakub@redhat.com>
10560
10561 PR tree-optimization/39455
10562 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
10563 mismatches for POINTER_TYPE_P (type).
10564 (number_of_iterations_le): Likewise.
10565
60839f5d 105662009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
10567
10568 * config/picochip/picochip.c: Removed profiling support.
10569 * config/picochip/picochip.md: Removed profiling instruction.
10570 * config/picochip/picochip.h: Removed profiling builtin.
10571
f38095f3
JM
105722009-03-16 Joseph Myers <joseph@codesourcery.com>
10573
10574 * doc/install.texi (--with-host-libstdcxx): Document.
10575
2cb4817b
AS
105762009-03-14 Anatoly Sokolov <aesok@post.ru>
10577
10578 PR target/34299
10579 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
10580 generate a warning if the function name does not begin with
10581 "__vector" and the function has either the 'signal' or 'interrupt'
10582 attribute, from here to ...
10583 (avr_declare_function_name): ...here. New function.
10584 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
10585 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
10586
39b2ac74
JJ
105872009-03-14 Jakub Jelinek <jakub@redhat.com>
10588
10589 PR bootstrap/39454
10590 * cse.c (fold_rtx): Don't modify original const_arg1 when
10591 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
10592 separate variable instead.
10593 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
10594 from out of range shift counts.
10595 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
10596
ad41bd84 105972009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 10598
60839f5d 10599 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
10600 diagnostic.h with $(DIAGNOSTIC_H).
10601
ad41bd84 106022009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
10603
10604 PR target/39431
10605 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
10606 predicate.
10607 * config/i386/sync.md (sync_compare_and_swap<mode>,
10608 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
10609 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
10610 into a register.
10611 (sync_double_compare_and_swapdi_pic,
10612 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
10613 cmpxchg8b_pic_memory_operand instead of just memory_operand.
10614
122c59c7
L
106152009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10616
10617 PR target/39445
9ade279b 10618 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 10619
cec8874f
L
106202009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10621
10622 PR target/39327
10623 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
10624 (avx_addsubv4df3): Likewise.
10625 (*avx_addsubv4sf3): Likewise.
10626 (sse3_addsubv4sf3): Likewise.
10627
bbb52802
L
106282009-03-12 H.J. Lu <hongjiu.lu@intel.com>
10629
10630 PR target/38824
9ade279b 10631 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 10632
a812fb07
VM
106332009-03-12 Vladimir Makarov <vmakarov@redhat.com>
10634
10635 PR debug/39432
10636 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
10637 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
10638 registers for allocnos created from user-defined variables.
10639
4caab5ba
UW
106402009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10641
10642 PR target/39181
10643 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
10644 of non-integer mode as well.
10645
498e51ca
AN
106462009-03-11 Adam Nemet <anemet@caviumnetworks.com>
10647
10648 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
10649 for functions for which the parameter types are unknown.
10650
9bfaf89d
JJ
106512009-03-11 Jakub Jelinek <jakub@redhat.com>
10652
10653 PR target/39137
9ade279b 10654 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
10655 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
10656 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
10657 * config/i386/i386.c (ix86_local_alignment): For
10658 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
10659 long long variables on the stack to avoid dynamic realignment.
10660 Allow the first argument to be a decl rather than type.
10661 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
10662
18a3bdcb
NC
106632009-03-11 Nick Clifton <nickc@redhat.com>
10664
10665 PR target/5362
40190a76
NC
10666 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
10667 options.
10668 Add description to mno-lsim option.
10669 * config/mcore/mcore.h: Remove comment about deprecated m4align
10670 option.
10671 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
10672 * doc/invoke.texi: Add description of mno-lsim and
10673 mstack-increment options.
10674
18a3bdcb
NC
10675 * config/fr30/fr30.opt: Document the -mno-lsim option.
10676 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
10677 and -mno-lsim options.
10678
dc215785
UW
106792009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10680
10681 * fold-const.c (fold_comparison): Only call fold_inf_compare
10682 if the mode supports infinities.
10683
7716876b
JM
106842009-03-11 Jason Merrill <jason@redhat.com>
10685
10686 PR debug/39086
10687 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
10688 end already did. Notice GIMPLE_CALL modifications of the result.
10689 Don't copy debug information from an ignored decl or a decl from
10690 another function.
10691
ddef83d2
RG
106922009-03-10 Richard Guenther <rguenther@suse.de>
10693 Nathan Froyd <froydnj@codesourcery.com>
10694
10695 PR middle-end/37850
9ade279b 10696 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
10697 (__divMODE3): Likewise.
10698
9a9ba8d9
JJ
106992009-03-09 Jakub Jelinek <jakub@redhat.com>
10700
10701 PR tree-optimization/39394
10702 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
10703 DECL_SIZE_UNIT of variable length FIELD_DECLs.
10704
929b7fc3
AK
107052009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10706
10707 * recog.c (verfiy_changes): Disallow renaming of hard regs in
10708 inline asms for register asm ("") declarations.
10709
1803581d
EB
107102009-03-09 Eric Botcazou <ebotcazou@adacore.com>
10711
10712 * fold-const.c (fold_unary): Fix comment.
10713
8454d27e
JH
107142009-03-07 Jan Hubicka <jh@suse.cz>
10715
10716 PR target/39361
969a5433
JJ
10717 * tree-inline.c (setup_one_parameter): Do replacement of const
10718 argument by constant in SSA form.
8454d27e 10719
3a695389
UW
107202009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10721
10722 PR middle-end/38028
10723 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
10724 determine alignment passed to assign_stack_local.
10725 (assign_parms_unsplit_complex): Likewise.
10726 * except.c (sjlj_build_landing_pads): Likewise.
10727
9f0e7885
JJ
107282009-03-06 Jakub Jelinek <jakub@redhat.com>
10729
65401a0b
JJ
10730 PR middle-end/39360
10731 * tree-flow.h (add_referenced_var): Return bool instead of void.
10732 * tree-dfa.c (add_referenced_var): Return result of
10733 referenced_var_check_and_insert call.
10734 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
10735 of referenced_var_check_and_insert.
10736
9f0e7885 10737 PR debug/39372
9ade279b 10738 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
10739 (gen_variable_die): Emit DW_AT_location on abstract static variable's
10740 DIE, don't emit it if abstract origin already has it.
10741 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
10742 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
10743
3b664bd1
JBG
107442009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10745
ba20e309 10746 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
10747 detection.
10748 (write_tm_constrs_h): Indent generated code.
10749
d8f8ca80
RR
107502009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10751
10752 * doc/extend.texi (Function Attributes): Add documentation
10753 for isr attributes.
10754
6c3d550c
JJ
107552009-03-06 Jakub Jelinek <jakub@redhat.com>
10756
10757 PR debug/39387
10758 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
10759 take locus from its DECL_SOURCE_LOCATION instead of input_location.
10760
f9e96751
BS
107612009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
10762
10763 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
10764 the loop as bad.
10765
ee0ee7e2
JJ
107662009-03-05 Jakub Jelinek <jakub@redhat.com>
10767
10768 PR debug/39379
10769 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
10770 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
10771
6c6094f1
UB
107722009-03-05 Uros Bizjak <ubizjak@gmail.com>
10773
10774 * config/i386/i386.md (R8_REG, R9_REG): New constants.
10775 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
10776 constants instead of magic numbers.
10777 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
10778 (QI_REG_P): Ditto.
10779 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
10780 (x86_64_ms_abi_int_parameter_registers): Ditto.
10781 (x86_64_int_return_registers): Ditto.
09f8a8d3 10782 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
10783 (ix86_expand_call): Ditto for clobbered_registers array.
10784 (ix86_hard_regno_mode_ok): Ditto.
10785 (x86_extended_QIreg_mentioned_p): Ditto.
10786
b267bd41
R
107872009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
10788
6c6094f1 10789 PR tree-optimization/39349
1f3ad3f0
R
10790 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
10791
b267bd41
R
10792 * combine.c (gen_lowpart_for_combine): Use omode when generating
10793 clobber.
10794
1242bc9d
R
107952009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
10796
6c6094f1 10797 PR rtl-optimization/39235
1242bc9d
R
10798 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
10799
48f03606
ZD
108002009-03-04 Zdenek Dvorak <ook@ucw.cz>
10801
10802 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
10803
b505e785
RG
108042009-03-04 Richard Guenther <rguenther@suse.de>
10805
10806 PR tree-optimization/39362
10807 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
10808 that occur in abnormal PHIs should be varying.
10809
f017bf5e
ZD
108102009-03-04 Zdenek Dvorak <ook@ucw.cz>
10811
10812 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
10813 Extend comments.
10814 (simple_iv): Take loop as an argument instead of statement.
10815 * tree-scalar-evolution.h (simple_iv): Declaration changed.
10816 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
10817 to simple_iv.
10818 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
10819 Ditto.
10820 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
10821 * matrix-reorg.c (analyze_transpose): Ditto.
10822 * tree-data-ref.c (dr_analyze_innermost): Ditto.
10823 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
10824 * tree-predcom.c (ref_at_iteration): Ditto.
10825 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
10826
6a66f28e
RG
108272009-03-04 Richard Guenther <rguenther@suse.de>
10828
10829 PR tree-optimization/39358
10830 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
10831 escaped_id and callused_id.
10832 (solve_graph): Likewise.
10833
57e454ee
RG
108342009-03-04 Richard Guenther <rguenther@suse.de>
10835
10836 PR tree-optimization/39339
10837 * tree-sra.c (try_instantiate_multiple_fields): Make it
10838 no longer ICE on the above.
10839
a6fe9ed4
JM
108402009-03-03 Joseph Myers <joseph@codesourcery.com>
10841
10842 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
10843 that fits within Pmode.
10844
dc672951
SE
108452009-03-03 Steve Ellcey <sje@cup.hp.com>
10846
10847 PR middle-end/10109
10848 * tm.texi (LIBCALL_VALUE): Update description.
10849
8b9d598f
SE
108502009-03-03 Steve Ellcey <sje@cup.hp.com>
10851
10852 PR middle-end/34443
10853 * doc/extend.texi (section): Update description.
10854
13e4e36e
L
108552009-03-03 H.J. Lu <hongjiu.lu@intel.com>
10856
10857 PR middle-end/39345
10858 * tree-inline.c (remapped_type): New.
10859 (can_be_nonlocal): Call remapped_type instead of remap_type.
10860
067dd3c9
JJ
108612009-03-03 Jakub Jelinek <jakub@redhat.com>
10862
10863 PR fortran/39354
10864 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
10865 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
10866
9bd9f738
RG
108672009-03-03 Richard Guenther <rguenther@suse.de>
10868
10869 PR middle-end/39272
10870 * tree.c (tree_nonartificial_location): New function.
10871 * tree.h (tree_nonartificial_location): Declare.
10872 * builtins.c (expand_builtin_memory_chk): Provide location
10873 of the call location for artificial function pieces.
10874 (maybe_emit_chk_warning): Likewise.
10875 (maybe_emit_sprintf_chk_warning): Likewise.
10876 (maybe_emit_free_warning): Likewise.
10877 * expr.c (expand_expr_real_1): Likewise.
10878
f07049c8
JJ
108792009-03-03 Jakub Jelinek <jakub@redhat.com>
10880
10881 PR tree-optimization/39343
10882 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
10883 COMPONENT_REF t has ARRAY_TYPE.
10884
7d4fba4a
SP
108852009-03-02 Sebastian Pop <sebastian.pop@amd.com>
10886
10887 PR middle-end/39335
10888 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
10889 when the type precision of the induction variable should be
10890 larger than the type precision of nit.
10891 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
10892 * graphite.c (graphite_loop_normal_form): Same.
10893 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
10894
78168632
UB
108952009-03-02 Uros Bizjak <ubizjak@gmail.com>
10896
10897 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
10898 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 10899 numbers to describe clobbered registers.
78168632 10900 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
10901 * config/i386/mmx.md (mmx_emms): Ditto.
10902 (mmx_femms): Ditto.
78168632 10903
63553059
RS
109042009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
10905
10906 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
10907 of ABI_64.
10908
500a1f85
UW
109092009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10910
10911 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
10912 (spu_section_type_flags): New function.
10913
962aae34
UB
109142009-03-02 Uros Bizjak <ubizjak@gmail.com>
10915
10916 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
10917 reg_class_contents of FLOAT_REGS into a temporary.
10918
6dfb529c 109192009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 10920 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
10921
10922 PR tree-optimization/39318
10923 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
10924 information to the vectorized statement.
10925
6b5629db
UB
109262009-03-01 Uros Bizjak <ubizjak@gmail.com>
10927
434426d2
UB
10928 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
10929 variable. Use defined names instead of magic constants for REX SSE
10930 registers.
6b5629db 10931
14e5b285
RG
109322009-03-01 Richard Guenther <rguenther@suse.de>
10933
10934 PR tree-optimization/39331
10935 * omp-low.c (lower_send_shared_vars): Do not receive new
10936 values for the reference of DECL_BY_REFERENCE parms or results.
10937
526d73ab
JH
109382009-03-01 Jan Hubicka <jh@suse.cz>
10939
10940 PR debug/39267
10941 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
10942 BLOCK_NONLOCALIZED_VAR): New macros.
10943 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
10944 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
10945 gen_decl_die): Add origin argument. Allow generation of die with
10946 origin at hand only.
526d73ab 10947 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
10948 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
10949 of gen_*.
526d73ab
JH
10950 (gen_block_die): Fix checking for unused blocks.
10951 (process_scope_var): Break out from .... ; work with origins only.
10952 (decls_for_scope) ... here; process nonlocalized list.
10953 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
10954 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
10955 vars.
526d73ab
JH
10956 (dump_scope_block): Dump them.
10957 * tree-inline.c (remap_decls): Handle nonlocalized vars.
10958 (remap_block): Likewise.
10959 (can_be_nonlocal): New predicate.
10960 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
10961
7a9d3fe8
RW
109622009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10963
10964 * configure: Regenerate.
10965
b3cdf3cb
RW
109662009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10967
a16d1645 10968 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 10969 Reuse help texts for duplicate options which do not have any.
a16d1645 10970
1156c176
RW
10971 * gcc.c (display_help): Document --version.
10972
033505fc
RW
10973 * gcc.c (main): If print_help_list and verbose_flag, ensure
10974 driver output comes before subprocess output.
10975
4d077054
RW
10976 * optc-gen.awk: Assign all remaining fields to help string,
10977 space-separated, for multi-line help in *.opt.
10978
a072f1cf
RW
10979 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
10980 -Wno-pedantic-ms-format is for MinGW targets only.
10981
b3cdf3cb
RW
10982 * doc/options.texi (Option file format): Fix bad indentation,
10983 restoring dropped sentence.
10984
a3aadcc5
JH
109852009-02-28 Jan Hubicka <jh@suse.cz>
10986
10987 * tree-inline.c (tree_function_versioning): Output debug info.
10988
1cf5abb3
JH
109892009-02-28 Jan Hubicka <jh@suse.cz>
10990
10991 PR debug/39267
10992 * tree-inline.c (setup_one_parameter): Do not copy propagate
10993 arguments when not optimizing.
10994
c4d3f42f
L
109952009-02-28 H.J. Lu <hongjiu.lu@intel.com>
10996
10997 PR target/39327
10998 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
10999 (avx_addsubv4df3): Likewise.
11000 (*avx_addsubv4sf3): Likewise.
11001 (sse3_addsubv4sf3): Likewise.
11002 (*avx_addsubv2df3): Likewise.
11003 (sse3_addsubv2df3): Likewise.
11004 (avx_unpckhps256): Correct item selectors.
11005 (avx_unpcklps256): Likewise.
11006 (avx_unpckhpd256): Likewise.
11007 (avx_unpcklpd256): Likewise.
11008
eb50f5f4
JH
110092009-02-28 Jan Hubicka <jh@suse.cz>
11010
11011 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
11012 static vars.
11013 (copy_arguments_for_versioning): If var is declared don't declare it.
11014 (tree_function_versioning): First setup substitutions and then copy
11015 args.
11016
26140130
JH
110172009-02-27 Jan Hubicka <jh@suse.cz>
11018
11019 PR debug/39267
11020 * cgraph.h (varpool_output_debug_info): Remove.
11021 * cgraphunit.c (varpool_output_debug_info): Remove.
11022 * dwarf2out.c (deferred_locations_struct): New struct
11023 (deferred_locations): New type.
11024 (deferred_locations_list): New static var.
11025 (deffer_location): New function.
11026 (gen_variable_die): Use it.
11027 (decls_for_scope): Output info on local static vars.
11028 (dwarf2out_finish): Process deferred locations.
11029 * varpool.c (varpool_output_debug_info): Remove.
11030
cff7525f
JH
110312009-02-27 Jan Hubicka <jh@suse.cz>
11032
11033 PR debug/39267
11034 * tree.h (TREE_PROTECTED): Fix comment.
11035 (BLOCK_HANDLER_BLOCK): Remove.
11036 (struct tree_block): Remove handler_block add body_block.
11037 (inlined_function_outer_scope_p): New.
11038 (is_body_block): Remove.
11039 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
11040 * dwarf2out.c (is_inlined_entry_point): Remove.
11041 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
11042 (gen_block_die): Use is_inlined_entry_point check. Remove body block
11043 code.
cff7525f
JH
11044 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
11045 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
11046 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
11047 block with multiple subblocks.
cff7525f
JH
11048 (dump_scope_block): Prettier output; dump more flags and info.
11049 (dump_scope_blocks): New.
11050 (remove_unused_locals): Use dump_scope_blocks.
11051 * tree-flow.h (dump_scope_blocks): Declare.
11052 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
11053 * stmt.c (is_body_block): Remove.
11054 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
11055 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
11056
c20993b9
SP
110572009-02-27 Sebastian Pop <sebastian.pop@amd.com>
11058
11059 PR middle-end/39308
2ba9daa7 11060 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
11061 number_of_iterations_exit from a gcc_assert.
11062
e3cba5e5
AK
110632009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11064
60839f5d 11065 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
11066 jumps if COND is NULL.
11067 (find_cond_jump): New function.
11068 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 11069 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 11070
9dadeeb8
UB
110712009-02-26 Uros Bizjak <ubizjak@gmail.com>
11072
11073 * config/alpha/alpha.h (alpha_expand_mov): Return false if
11074 force_const_mem returns NULL_RTX.
11075
625d3251
EB
110762009-02-26 Jan Hubicka <jh@suse.cz>
11077
11078 PR debug/39267
11079 * cgraph.h (varpool_output_debug_info): Remove.
11080 * cgraphunit.c (varpool_output_debug_info): Remove.
11081 * dwarf2out.c (deferred_locations_struct): New struct
11082 (deferred_locations): New type.
11083 (deferred_locations_list): New static var.
11084 (deffer_location): New function.
11085 (gen_variable_die): Use it.
11086 (decls_for_scope): Output info on local static vars.
11087 (dwarf2out_finish): Process deferred locations.
11088 * varpool.c (varpool_output_debug_info): Remove.
11089
38432148 110902009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
11091
11092 PR rtl-optimization/39241
11093 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
11094 to subreg_offset_representable_p.
11095
62d049cf
PB
110962009-02-25 Paolo Bonzini <bonzini@gnu.org>
11097
11098 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
11099 execute function prototype. Get f and nregs from max_reg_num
11100 and get_insns. Remove the first backward pass as it's dead,
11101 guard the forward pass by flag_expensive_optimizations.
11102 (rest_of_handle_regmove): Delete.
11103 (pass_regmove): Replace it with regmove_optimize.
11104
f618d33e
MJ
111052009-02-25 Martin Jambor <mjambor@suse.cz>
11106
11107 PR tree-optimization/39259
11108 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 11109 calls_alloca function flags.
f618d33e
MJ
11110 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
11111 calls are detected.
11112
c8a05f7c
PB
111132009-02-25 Paolo Bonzini <bonzini@gnu.org>
11114
11115 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
11116 flags_set_1_rtx, flags_set_1_set): Delete.
11117 (regmove_optimize): Do not call mark_flags_life_zones.
11118
6d2538f5
JB
111192009-02-24 Julian Brown <julian@codesourcery.com>
11120
11121 PR target/35965
11122 * config/arm/arm.c (require_pic_register): Only set
11123 cfun->machine->pic_reg once per function.
11124
a2fa6772
SL
111252009-02-24 Sandra Loosemore <sandra@codesourcery.com>
11126
11127 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 11128 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 11129
5472de36
SE
111302009-02-24 Steve Ellcey <sje@cup.hp.com>
11131
11132 PR target/33785
11133 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
11134
844216f3
RG
111352009-02-24 Richard Guenther <rguenther@suse.de>
11136
11137 PR debug/39285
11138 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
11139
71adbef3 111402009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 11141 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
11142
11143 PR tree-optimization/39233
11144 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
11145 from converting them to a generic type.
11146
f1a558e0
SP
111472009-02-23 Sebastian Pop <sebastian.pop@amd.com>
11148
11149 PR tree-optimization/39260
11150 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
11151 contains a condition with a real type.
11152 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
11153
d8028f2c
JM
111542009-02-23 Jason Merrill <jason@redhat.com>
11155
11156 PR c++/38880
11157 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
11158 narrowing_initializer_constant_valid_p.
2ba9daa7 11159 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
11160 null_pointer_node for adding a pointer to itself.
11161
9283b513
JH
111622009-02-23 Jan Hubicka <jh@suse.cz>
11163
11164 PR c/12245
9dadeeb8
UB
11165 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
11166 resizing.
9283b513 11167
61e04322
JH
111682009-02-23 Jan Hubicka <jh@suse.cz>
11169
9dadeeb8
UB
11170 PR tree-optimization/37709
11171 * tree.c (block_ultimate_origin): Move here from dwarf2out.
11172 * tree.h (block_ultimate_origin): Declare.
11173 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
11174 * tree-ssa-live.c (remove_unused_scope_block_p):
11175 Eliminate blocks containig no instructions nor live variables nor
11176 nested blocks.
11177 (dump_scope_block): New function.
11178 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 11179 enable dumping at TDF_DETAILS.
61e04322 11180
38432148 111812009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
11182
11183 * config/i386/i386.c (classify_argument): Don't allow COImode
11184 and OImode.
11185 (function_arg_advance_32): Don't allow OImode.
11186 (function_arg_32): Likewise.
11187 (function_value_32): Likewise.
11188 (return_in_memory_32): Likewise.
11189 (function_arg_64): Remove OImode comment.
11190
38432148 111912009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
11192
11193 PR target/39261
11194 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11195 ix86_expand_vector_set for V4DImode in 64bit mode only.
11196 (ix86_expand_vector_init_one_var): Likewise.
11197
dcd739a6
SP
111982009-02-21 Sebastian Pop <sebastian.pop@amd.com>
11199
11200 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
11201
6c3b938d
RS
112022009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
11203
8e361f23 11204 PR bootstrap/39257
6c3b938d
RS
11205 * loop-iv.c: Revert last change.
11206 * emit-rtl.c: Likewise.
11207
38432148 112082009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
11209
11210 PR target/39256
11211 * config/i386/i386.c (type_natural_mode): Remove an extra
11212 space in the warning message.
11213 (function_value_32): Handle 32-byte vector modes.
11214 (return_in_memory_32): Likewise.
11215
2ec62529
RS
112162009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
11217
11218 * loop-iv.c (truncate_value): New function.
11219 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
11220 of lowpart_subreg.
11221 (lowpart_subreg): Move to...
11222 * emit-rtl.c: ...here.
11223
ecb8c3cc 112242009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 11225
ecb8c3cc
DS
11226 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
11227 accidental and undocumented change at revision 140860.
11228
ae46a823
JM
112292009-02-21 Joseph Myers <joseph@codesourcery.com>
11230
11231 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
11232 take gimple_seq * arguments.
11233 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
11234 types_compatible_p langhook.
11235
07d8efe3 112362009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 11237 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
11238
11239 * config/arm/arm.c (arm_builtin_va_list): New function.
11240 (arm_expand_builtin_va_start): Likewise.
11241 (arm_gimplify_va_arg_expr): Likewise.
11242 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
11243 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
11244 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
11245 (va_list_type): New variable.
11246 (arm_mangle_type): Mangle va_list_type appropriately.
11247
b1fb9f56
JJ
112482009-02-20 Jakub Jelinek <jakub@redhat.com>
11249
11250 PR middle-end/39157
11251 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
11252 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
11253 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
11254 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
11255 parameter to 1000 for -O1 by default.
11256 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
11257 parameter.
11258 * loop-invariant.c: Include params.h.
11259 (move_loop_invariants): Don't call move_single_loop_invariants on
11260 very large loops.
11261
5bc0807c
JM
112622009-02-20 Jaka Mocnik <jaka@xlab.si>
11263
11264 * calls.c (emit_library_call_value_1): Use slot_offset instead of
11265 offset when calculating bounds for indexing stack_usage_map. Fixes
11266 a buffer overflow with certain target setups.
11267
c69cd1f5
JJ
112682009-02-20 Jakub Jelinek <jakub@redhat.com>
11269
11270 PR target/39240
11271 * calls.c (expand_call): Clear try_tail_call if caller and callee
11272 disagree in promotion of function return value.
11273
09812622
JJ
112742009-02-19 Jakub Jelinek <jakub@redhat.com>
11275
11276 PR target/39175
11277 * c-common.c (c_determine_visibility): If visibility changed and
11278 DECL_RTL has been already set, call make_decl_rtl to update symbol
11279 flags.
11280
68017cb4
L
112812009-02-19 H.J. Lu <hongjiu.lu@intel.com>
11282
11283 PR c++/39188
11284 * varasm.c (assemble_variable): Don't check DECL_NAME when
11285 globalizing a variable.
11286
ab4194da
JM
112872009-02-19 Joseph Myers <joseph@codesourcery.com>
11288
11289 PR c/38483
11290 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
11291 expression before any __builtin_trap call.
11292 * c-typeck.c (build_function_call): Convert and check function
11293 arguments before generating a call to a trap. Evaluate the
11294 function arguments before the trap.
11295
6b67572e
UB
112962009-02-19 Uros Bizjak <ubizjak@gmail.com>
11297
11298 PR target/39228
11299 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
11300 (UNSPEC_FXAM_MEM): New unspec.
11301 (fxam<mode>2_i387_with_temp): New insn and split pattern.
11302 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
11303 memory using fxam<mode>2_i387_with_temp to remove excess precision.
11304
9e39dba6
RG
113052009-02-19 Richard Guenther <rguenther@suse.de>
11306
11307 PR tree-optimization/39207
11308 PR tree-optimization/39074
11309 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
11310 storedanything_tree): New.
11311 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 11312 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
11313 (build_succ_graph): Add edges from STOREDANYTHING to all
11314 non-direct nodes.
11315 (init_base_vars): Initialize STOREDANYTHING.
11316 (compute_points_to_sets): Free substitution info after
11317 building the succ graph.
11318 (ipa_pta_execute): Likewise.
11319
11320 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
11321 field.
11322 (do_ds_constraint): Do not add to special var or non-pointer
11323 field solutions.
11324 (type_could_have_pointers): Split out from ...
11325 (could_have_pointers): ... here. For arrays use the element type.
11326 (create_variable_info_for): Initialize may_have_pointers.
11327 (new_var_info): Likewise.
11328 (handle_lhs_call): Make the HEAP variable unknown-sized.
11329 (intra_create_variable_infos): Use a type with pointers for
11330 PARM_NOALIAS, make it unknown-sized.
11331
fd7b2603
L
113322009-02-18 H.J. Lu <hongjiu.lu@intel.com>
11333
11334 PR target/39224
6b67572e 11335 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 11336
98b80692
JM
113372009-02-18 Jason Merrill <jason@redhat.com>
11338
11339 PR target/39179
11340 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
11341 value if DECL_EXTERNAL.
11342 * tree-sra.c (sra_walk_gimple_assign): Likewise.
11343 * target.h (gcc_target::binds_local_p): Clarify "module".
11344 * tree.h (TREE_PUBLIC): Clarify "module".
11345
0705d3f4
L
113462009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
11347
11348 PR target/38891
11349 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
11350 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
11351
bce08d50
L
113522009-02-17 H.J. Lu <hongjiu.lu@intel.com>
11353
11354 PR target/39082
11355 * c.opt (Wabi): Support C and ObjC.
11356 (Wpsabi): New.
11357
11358 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
11359
11360 * config/i386/i386.c (classify_argument): Warn once about the ABI
11361 change when passing union with long double.
11362
11363 * doc/invoke.texi: Update -Wabi for warning psABI changes.
11364
5600f233
JM
113652009-02-18 Joseph Myers <joseph@codesourcery.com>
11366
11367 PR c/35447
11368 * c-parser.c (c_parser_compound_statement): Always enter and leave
11369 a scope.
11370
8cd01fe6
JDA
113712009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11372
11373 PR target/34587
11374 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
11375
418df9d7
JJ
113762009-02-18 Jakub Jelinek <jakub@redhat.com>
11377
11378 PR tree-optimization/36922
11379 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
11380 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
11381 Likewise.
11382
082d2ebb
RS
113832009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11384
11385 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
11386 to 0 for EABI64.
11387
17de576c
RS
113882009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11389
11390 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
11391
6d8d5435
RS
113922009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11393
11394 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
11395 tree sharing.
11396
e69ff910
RB
113972009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
11398 Richard Sandiford <rdsandiford@googlemail.com>
11399
11400 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
11401 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
11402 (loongson_biadd): ...this.
11403
6b24ee26
RG
114042009-02-17 Richard Guenther <rguenther@suse.de>
11405
11406 PR tree-optimization/39202
11407 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
11408 a var make sure to follow existing collapses.
11409
91ab2c86
RG
114102009-02-17 Richard Guenther <rguenther@suse.de>
11411
11412 PR middle-end/39214
11413 * langhooks.c (lhd_print_error_function): Check for NULL block.
11414
73a63870
RG
114152009-02-17 Richard Guenther <rguenther@suse.de>
11416
11417 PR tree-optimization/39204
11418 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
11419 of the PHI arg.
11420
0e08f686
UB
114212009-02-17 Uros Bizjak <ubizjak@gmail.com>
11422
11423 * config/soft-fp/double.h: Update from glibc CVS.
11424
a60b7ddb
RG
114252009-02-17 Richard Guenther <rguenther@suse.de>
11426
11427 PR tree-optimization/39207
11428 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
11429 strict-aliasing warnings for pointers pointing to NULL.
11430
a47e20fd
JM
114312009-02-16 Joseph Myers <joseph@codesourcery.com>
11432
11433 PR c/35446
11434 * c-parser.c (c_parser_braced_init): Call pop_init_level when
11435 skipping until next close brace.
11436
50aab7dc
L
114372009-02-16 H.J. Lu <hongjiu.lu@intel.com>
11438
11439 PR target/37049
11440 * config/i386/i386.c (ix86_expand_push): Set memory alignment
11441 to function argument boundary.
11442
68e53db0
HS
114432009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
11444
11445 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
11446 in the lea_add. Reload eventually constraints it properly.
0d50d55a 11447 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
11448 "b", since it is not needed anymore.
11449
09e361bb
JJ
114502009-02-16 Jakub Jelinek <jakub@redhat.com>
11451
11452 * gthr-dce.h: Uglify function parameter and local variable names.
11453 * gthr-gnat.h: Likewise.
11454 * gthr-mipssde.h: Likewise.
11455 * gthr-nks.h: Likewise.
11456 * gthr-posix95.h: Likewise.
11457 * gthr-posix.h: Likewise.
11458 * gthr-rtems.h: Likewise.
11459 * gthr-single.h: Likewise.
11460 * gthr-solaris.h: Likewise.
11461 * gthr-tpf.h: Likewise.
11462 * gthr-vxworks.h: Likewise.
11463 * gthr-win32.h: Likewise.
11464
47f5a48f
L
114652009-02-15 H.J. Lu <hongjiu.lu@intel.com>
11466
11467 PR target/39196
11468 * config/i386/i386.md: Restrict the new peephole2 to move
11469 between MMX/SSE registers.
11470
68c9ab45
RG
114712009-02-15 Richard Guenther <rguenther@suse.de>
11472
11473 Revert
11474 2009-02-13 Richard Guenther <rguenther@suse.de>
11475
11476 * configure.ac: Enable LFS.
11477 * configure: Re-generate.
11478 * config.in: Likewise.
11479
d7815554
UW
114802009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11481
11482 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
11483 spu_srqwbyte, spu_srqwbytebc): Define.
11484 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
11485 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
11486 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
11487 "shrqby_<mode>"): New insn-and-split patterns.
11488 * config/spu/spu.c (expand_builtin_args): Determine and return
11489 number of operands using spu_builtin_description data.
11490 (spu_expand_builtin_1): Use it.
11491
c208436c
SE
114922009-02-13 Steve Ellcey <sje@cup.hp.com>
11493
11494 PR target/38056
11495 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
11496 TARGET_CONST_GP.
11497
c2e7ba7e
L
114982009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11499
11500 PR target/39149
11501 * config/i386/i386.c (override_options): Correct warning
6c6094f1 11502 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 11503
72f4e3a7
L
115042009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11505
11506 PR target/39152
11507 * config/i386/i386.md: Restrict the new peephole2 to move
11508 between the general purpose registers.
11509
53f648e2
L
115102009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11511
11512 PR target/39162
11513 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 11514 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
11515 (function_arg_advance): Updated.
11516 (function_arg): Likewise.
11517 (ix86_function_value): Likewise.
11518 (ix86_return_in_memory): Likewise.
11519 (ix86_sol10_return_in_memory): Likewise.
11520 (ix86_gimplify_va_arg): Likewise.
11521 (function_arg_32): Don't warn ABX ABI change here.
11522 (function_arg_64): Likewise.
11523
38432148 115242009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
11525
11526 * loop-iv.c (implies_p): In the final case, test that operands 0
11527 of the two comparisons match.
11528
dd2139e7
BS
11529 * config/bfin/bfin.c (find_prev_insn_start): New function.
11530 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
11531 (find_next_insn_start): Move.
11532
601b3e1a
RG
115332009-02-13 Richard Guenther <rguenther@suse.de>
11534
11535 * configure.ac: Enable LFS.
11536 * configure: Re-generate.
11537 * config.in: Likewise.
11538
f007042e
JM
115392009-02-13 Joseph Myers <joseph@codesourcery.com>
11540
11541 PR c/35444
11542 * c-parser.c (c_parser_parms_list_declarator): Discard pending
11543 sizes on syntax error after some arguments have been parsed.
11544
3f238e8b
JJ
115452009-02-12 Jakub Jelinek <jakub@redhat.com>
11546
11547 * doc/invoke.texi (-fira): Remove.
11548
328e13b7
L
115492009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11550
11551 * caller-save.c: Replace regclass.c with reginfo.c in comments.
11552 * recog.c: Likewise.
11553 * rtl.h: Likewise.
11554
c252db20
L
115552009-02-12 Uros Bizjak <ubizjak@gmail.com>
11556
11557 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
11558 (umul_ppmm): Likewise.
11559 (count_leading_zeros): Likewise.
11560 (count_trailing_zeros): Likewise.
11561 (UMUL_TIME): Likewise.
11562
115632009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11564
ba181049
UB
11565 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
11566 soft-fp/t-softfp to tmake_file.
c252db20
L
11567
11568 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
11569 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
11570 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
11571 IA64_BUILTIN_INFQ]: New.
c252db20
L
11572 (ia64_init_builtins): Initialize __builtin_infq,
11573 __builtin_fabsq and __builtin_copysignq if not HPUX.
11574 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
11575 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
11576
11577 * config/ia64/lib1funcs.asm (__divtf3): Define only if
11578 SHARED is defined.
11579 (__fixtfti): Likewise.
11580 (__fixunstfti): Likewise.
11581 (__floattitf): Likewise.
11582
11583 * config/ia64/libgcc-glibc.ver: New.
11584 * config/ia64/t-fprules-softfp: Likewise.
11585 * config/ia64/sfp-machine.h: Likewise.
11586
11587 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
11588 (LIBGCC2_TF_CEXT): Likewise.
11589 (TF_SIZE): Likewise.
11590 (TARGET_INIT_LIBFUNCS): Likewise.
11591
ba181049 11592 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 11593 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 11594
f13eae6a
L
115952009-02-12 H.J. Lu <hongjiu.lu@intel.com>
11596
11597 * config/i386/i386.c (construct_container): Rewrite processing
11598 BLKmode with X86_64_SSE_CLASS.
11599
12019aec
L
116002009-02-12 Paolo Bonzini <bonzini@gnu.org>
11601
11602 PR target/39152
11603 * config/i386/i386.md: Replace simplify_replace_rtx with
11604 replace_rtx in the new peephole2.
11605
28c11eb3
NS
116062009-02-12 Nathan Sidwell <nathan@codesourcery.com>
11607
11608 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
11609 loop unrolling do not happen at -O2.
11610
c7b94907
MM
116112009-02-12 Michael Matz <matz@suse.de>
11612
11613 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
11614
61e98967
JJ
116152009-02-12 Jakub Jelinek <jakub@redhat.com>
11616
11617 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
11618 for -g3.
11619
a2a237b5
BE
116202009-02-12 Ben Elliston <bje@au.ibm.com>
11621
11622 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
11623 patterns when updating the back chain. Missed in the 2009-02-10
11624 change.
11625
853eda8d
JJ
116262009-02-11 Janis Johnson <janis187@us.ibm.com>
11627
11628 * doc/extend.texi (Decimal Floating Types): Update identifier of
11629 draft TR and list of missing support.
11630
3ad6b266
JJ
116312009-02-11 Jakub Jelinek <jakub@redhat.com>
11632
11633 PR middle-end/39154
11634 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
11635 bit to variable length decl's flags, add it also to its
11636 pointer replacement variable.
11637
b058b753
UB
116382009-02-11 Uros Bizjak <ubizjak@gmail.com>
11639 Jakub Jelinek <jakub@redhat.com>
11640
11641 PR target/39118
11642 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
11643 (memory_blockage): New expander.
11644 (*memory_blockage): New insn pattern.
11645 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
11646 instead of general blockage at the end of function prologue when
11647 frame pointer is used to access red zone area. Do not emit blockage
11648 when profiling, it is emitted in generic code.
11649 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
11650 function epilogue when frame pointer is used to access red zone area.
11651
bab64f23
PB
116522009-02-11 Paolo Bonzini <bonzini@gnu.org>
11653
0ce6dcfa 11654 PR target/38824
bab64f23
PB
11655 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
11656 by arithmetic with memory operands.
11657 * config/i386/predicates.md (commutative_operator): New.
11658
8fd94bda
JJ
116592009-02-10 Janis Johnson <janis187@us.ibm.com>
11660
11661 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
11662 bulleted lists.
11663
794511d2
EB
116642009-02-10 Eric Botcazou <ebotcazou@adacore.com>
11665
11666 * alias.h (record_alias_subset): Declare.
11667 * alias.c (record_alias_subset): Make global.
11668
6da7fc87
NC
116692009-02-10 Nick Clifton <nickc@redhat.com>
11670
11671 * tree-parloops.c: Change license to GPLv3.
11672 * ipa-struct-reorg.c: Change license to GPLv3.
11673 * ipa-struct-reorg.h: Change license to GPLv3.
11674
a03813c8
SE
116752009-02-10 Steve Ellcey <sje@cup.hp.com>
11676
11677 PR c/39084
11678 * c-decl.c (start_struct): Return NULL on error.
11679
fc3103e7
JJ
116802009-02-10 Jakub Jelinek <jakub@redhat.com>
11681
9b43d37b
JJ
11682 PR middle-end/39124
11683 * cfgloopmanip.c (remove_path): Call remove_bbs after
11684 cancel_loop_tree, not before it.
11685
fc3103e7 11686 PR target/39139
b058b753 11687 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
11688 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
11689 VAR_DECLs were seen.
11690 * tree-ssa-live.c (remove_unused_locals): Recompute
11691 cfun->has_local_explicit_reg_vars.
11692 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
11693 copies or clearings if cfun->has_local_explicit_reg_vars.
11694
dbf9ee15
UB
116952009-02-10 Uros Bizjak <ubizjak@gmail.com>
11696
11697 PR target/39118
11698 * config/i386/i386.c (expand_prologue): Emit blockage at the end
11699 of function prologue when frame pointer is used to access
11700 red zone area.
11701
bdec4dc7
RG
117022009-02-10 Richard Guenther <rguenther@suse.de>
11703
11704 PR middle-end/39127
11705 * gimplify.c (gimple_regimplify_operands): Always look if
11706 we need to create a temporary.
11707
7cae94fc
RG
117082009-02-10 Richard Guenther <rguenther@suse.de>
11709
11710 PR tree-optimization/39132
11711 * tree-loop-distribution.c (todo): New global var.
11712 (generate_memset_zero): Trigger TODO_rebuild_alias.
11713 (tree_loop_distribution): Return todo.
11714
a8800687
L
117152009-02-10 H.J. Lu <hongjiu.lu@intel.com>
11716
11717 PR target/39119
11718 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
11719 (x86_64_reg_class_name): Removed.
11720 (classify_argument): Return 0 if bytes > 32. Return 0 if the
11721 first one isn't X86_64_SSE_CLASS or any other ones aren't
11722 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
11723 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
11724 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
11725 and 3 X86_64_SSEUP_CLASS.
11726 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
11727 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
11728
d4bacef0
BE
117292009-02-10 Ben Elliston <bje@au.ibm.com>
11730
11731 * config/rs6000/rs6000.md (allocate_stack): Always use an update
11732 form instruction to update the stack back chain word, even if the
11733 user has disabled the generation of update instructions.
11734 (movdi_<mode>_update_stack): New.
11735 (movsi_update_stack): Likewise.
11736 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
11737 always use an update form instruction to update the stack back
11738 chain word.
11739
01d7d2f3
SP
117402009-02-09 Sebastian Pop <sebastian.pop@amd.com>
11741
11742 PR middle-end/38953
b058b753
UB
11743 * graphite.c (if_region_set_false_region): After moving a region in
11744 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
11745 (gloog): Remove wrong fix for PR38953.
11746
e41e2ab4
UW
117472009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11748
11749 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
11750 generation due to implicit sign extension.
11751
4bb07c5d
EB
117522009-02-09 Eric Botcazou <ebotcazou@adacore.com>
11753
11754 PR middle-end/38981
11755 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
11756 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
11757
f060a261
RG
117582009-02-09 Richard Guenther <rguenther@suse.de>
11759
11760 PR middle-end/35202
11761 * convert.c (convert_to_real): Disable (float)fn((double)x)
11762 to fnf(x) conversion if errno differences may occur and
11763 -fmath-errno is set.
11764
5a7e237c
AS
117652009-02-07 Anatoly Sokolov <aesok@post.ru>
11766
11767 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
11768 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11769 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
11770
feab5a67
JM
117712009-02-06 Joseph Myers <joseph@codesourcery.com>
11772
11773 PR c/35434
11774 * c-common.c (handle_alias_attribute): Disallow attribute for
11775 anything not a FUNCTION_DECL or VAR_DECL.
11776
90ef2296
JJ
117772009-02-06 Janis Johnson <janis187@us.ibm.com>
11778
11779 PR c/39035
11780 * real.c (do_compare): Special-case compare of zero against
11781 decimal float value.
11782
1de2c900
JM
117832009-02-06 Joseph Myers <joseph@codesourcery.com>
11784
11785 PR c/36432
11786 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
11787 as indicating flexible array members unless the field itself is
11788 being declarared as the incomplete array.
11789
e901811a
JH
117902009-02-06 Jan Hubicka <jh@suse.cz>
11791
11792 PR tree-optimization/38844
11793 * ipa-inline.c (try_inline): Stop inlining recursion when edge
11794 is already inlined.
11795
3cfa762b
RG
117962009-02-06 Richard Guenther <rguenther@suse.de>
11797
11798 PR middle-end/38977
11799 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
11800 fork because we may expand it as __gcov_fork.
11801
8506528c
NC
118022009-02-06 Nick Clifton <nickc@redhat.com>
11803
dbf9ee15 11804 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 11805
85169114
PB
118062009-02-06 Paolo Bonzini <bonzini@gnu.org>
11807
11808 PR tree-optimization/35659
11809 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
11810 vn_phi_eq): Shortcut if hashcode does not match.
11811 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
11812 NULL operands.
11813 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
11814 and avoid iterative_hash_expr.
11815 (FOR_EACH_VALUE_ID_IN_SET): New.
11816 (value_id_compare): Remove.
11817 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
11818 sort expressions by value id.
11819
6d39673d
KK
118202009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
11821
11822 PR target/38991
11823 * config/sh/predicates.md (general_movsrc_operand): Don't check
11824 the subreg of system registers here.
11825
e6e1c050
JJ
118262009-02-05 Jakub Jelinek <jakub@redhat.com>
11827
11828 PR c++/39106
11829 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
11830 on the copied decl.
11831
65a74b5d
PB
118322009-02-05 Paolo Bonzini <bonzini@gnu.org>
11833
11834 PR rtl-optimization/39110
11835 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
11836 addresses, not aligned ones.
11837
08e14b2a
DB
118382009-02-05 Daniel Berlin <dberlin@dberlin.org>
11839 Richard Guenther <rguenther@suse.de>
11840
11841 PR tree-optimization/39100
11842 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
11843 comment says and add edges.
11844
5006381c
JM
118452009-02-05 Joseph Myers <joseph@codesourcery.com>
11846
11847 PR c/35435
11848 * c-common.c (handle_tls_model_attribute): Ignore attribute for
11849 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
11850
2ba9daa7 118512009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
11852
11853 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
11854 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
11855 register_bb_in_sese, new_sese, free_sese): Moved.
11856 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
11857 outermost_loop_in_scop, build_scop_iteration_domain,
11858 expand_scalar_variables_ssa_name, get_vdef_before_scop,
11859 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
11860 Use loop_in_sese_p instead of loop_in_scop_p.
11861 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
11862 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
11863 (scopdet_basic_block_info): Fix bug in scop detection.
11864 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
11865 eq_loop_to_cloog_loop): Remove.
11866 (nb_loops_around_loop_in_scop, nb_loop
11867 ref_nb_loops): Moved here...
11868 * graphite.h (ref_nb_loops): ... from here.
11869 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
11870 (loop_domain_dim, loop_iteration_vector_dim): Remove.
11871 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
11872 * testsuite/gcc.dg/graphite/scop-19.c: New
11873
48e8382e
PB
118742009-02-04 Paolo Bonzini <bonzini@gnu.org>
11875 Hans-Peter Nilsson <hp@axis.com>
11876
11877 PR rtl-optimization/37889
11878 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
11879 Move offset handling from PLUS to before the switch. Use new
11880 arguments when considering SYMBOL_REFs too.
11881 (rtx_addr_can_trap_p): Pass dummy offset and size.
11882 (enum may_trap_p_flags): Remove.
11883 (may_trap_p_1): Pass size from MEM_SIZE.
11884
11885 PR rtl-optimization/38921
11886 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
11887 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
11888 * rtlanal.c (may_trap_after_code_motion_p): Delete.
11889 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
11890
69349ea5
L
118912009-02-04 H.J. Lu <hongjiu.lu@intel.com>
11892
11893 AVX Programming Reference (January, 2009)
11894 * config/i386/sse.md (*vpclmulqdq): New.
11895
b545e411
JJ
118962009-02-04 Jakub Jelinek <jakub@redhat.com>
11897
11898 PR tree-optimization/38977
11899 PR gcov-profile/38292
bf9b2cc9 11900 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 11901
5b43bf05
HS
119022009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
11903
11904 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
11905 non-indexable addresses even before reload.
11906
062c4bb3
JM
119072009-02-03 Joseph Myers <joseph@codesourcery.com>
11908
11909 PR c/29129
11910 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
11911 as having variable size. Do not give an error for unnamed
11912 parameters with [*] declarators. Give a warning for type names
11913 with [*] declarators and mark them as variable size.
11914 * c-parser.c (c_parser_sizeof_expression): Do not give an error
11915 for sizeof applied to [*] type names.
11916
6175f578
AP
119172009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
11918
11919 PR C++/36607
11920 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
11921
d4f4bc84
JJ
119222009-02-03 Jakub Jelinek <jakub@redhat.com>
11923
11924 * gcc.c (process_command): Update copyright notice dates.
11925 * gcov.c (print_version): Likewise.
11926 * gcov-dump.c (print_version): Likewise.
11927 * mips-tfile.c (main): Likewise.
11928 * mips-tdump.c (main): Likewise.
11929
f6294de7
JM
119302009-02-03 Joseph Myers <joseph@codesourcery.com>
11931
11932 PR c/35433
11933 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
11934 for composite type involving a zero-length array type.
11935
754ccf7c
JJ
119362009-02-03 Jakub Jelinek <jakub@redhat.com>
11937
70f16287
JJ
11938 PR target/35318
11939 * function.c (match_asm_constraints_1): Skip over
11940 initial optional % in the constraint.
11941
754ccf7c
JJ
11942 PR inline-asm/39059
11943 * c-parser.c (c_parser_postfix_expression): If fixed point is not
11944 supported, don't accept FIXED_CSTs.
11945 * c-decl.c (finish_declspecs): Error if fixed point is not supported
11946 and _Sat is used without _Fract/_Accum. Set specs->type to
11947 integer_type_node for cts_fract/cts_accum if fixed point is not
11948 supported.
11949
965fdadf
CM
119502009-02-02 Catherine Moore <clm@codesourcery.com>
11951
dbf9ee15 11952 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 11953
2e8a796f
RS
119542009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
11955
11956 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
11957 (ABI_HAS_64BIT_SYMBOLS): Use it.
11958 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
11959
e0079468
PB
119602009-02-02 Paul Brook <paul@codesourcery.com>
11961
11962 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
11963
eca72963
JJ
119642009-02-02 Jakub Jelinek <jakub@redhat.com>
11965
11966 PR inline-asm/39058
11967 * recog.h (asm_operand_ok): Add constraints argument.
11968 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
11969 recurse on matching constraint.
11970 (check_asm_operands): Pass constraints as 3rd argument to
11971 asm_operand_ok. Don't look up matching constraint here.
11972 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
11973 to asm_operand_ok.
11974
b5bde9ff
BE
119752009-02-02 Ben Elliston <bje@au.ibm.com>
11976
11977 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
11978 TARGET_NARROW_VOLATILE_BITFIELD macro names.
11979
30f3e427
JDA
119802009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11981
be7659ba
JDA
11982 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
11983 information. Remove some obsolete information. Reorganize.
11984
30f3e427
JDA
11985 * config/pa/fptr.c: Revert license to GPL 2.
11986 * config/pa/milli64.S: Likewise.
11987
3cbfaf98
DK
119882009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
11989
11990 PR target/38904
11991 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
11992 LIBRARY name in, instead of hard-coding it.
11993 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
11994 extra target make frag to tmake_files according to EH model.
11995 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
11996 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
11997 frags that define makefile variable EH_MODEL appropriately.
11998 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
11999 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
12000 to "-sjlj" according to type of EH configured.
12001 (LIBGCC_SONAME): Concatenate it to shared library base name.
12002 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
12003 to "_sjlj" according to type of EH configured.
12004 (LIBGCC_SONAME): Concatenate it to shared library base name.
12005 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
12006 (SHLIB_LINK): Add missing semicolon to if-else construct.
12007 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12008 string value of "pe_dll" command-line option.
12009 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
12010 (SHLIB_SONAME): Use it when overriding t-cygming default.
12011 (SHLIB_IMPLIB): Override t-cygming default.
12012 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12013 string value of "pe_dll" command-line option.
12014
8d0b6068
DK
120152009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12016
12017 PR target/38952
12018 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 12019 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 12020
14c28276
RG
120212009-01-31 Richard Guenther <rguenther@suse.de>
12022
12023 PR tree-optimization/38937
12024 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
12025 computing the transitive closure.
12026
5f4d82c2
RG
120272009-01-30 Richard Guenther <rguenther@suse.de>
12028
12029 PR tree-optimization/39041
12030 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
12031 Propagate variable indices only if the types match for this stmt.
12032
d0728ae0
JJ
120332009-01-30 Jakub Jelinek <jakub@redhat.com>
12034
12035 PR target/39013
12036 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
12037 inline but never defined.
12038
6b67572e 120392009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
12040
12041 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
12042 (*insv_h_di_reg_extimm): New insn.
12043 (*insv_l<mode>_reg_extimm): New insn.
12044
120452009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
12046
12047 * config/picochip/picochip.c (flag_conserve_stack): set
12048 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
12049 fconserve-stack. Reduce call-overhead used by inliner.
12050
9fec758d 120512009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
12052
12053 PR/38157
12054 * common.opt (flag_conserve_stack): Initialised to zero.
12055
7f1c539c
KT
120562009-01-30 Kai Tietz <kai.tietz@onevision.com>
12057
12058 PR/39002
12059 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
12060 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
12061 method.
12062
3631be48
L
120632009-01-29 H.J. Lu <hongjiu.lu@intel.com>
12064
12065 * ira-color.c (allocno_reload_assign): Update comments.
12066 * regmove.c (regmove_optimize): Likewise.
12067
12068 * ra.h: Removed.
12069
416ac4d4
RM
120702009-01-29 Robert Millan <rmh@aybabtu.com>
12071
60839f5d
EB
12072 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
12073 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 12074 `MD_UNWIND_SUPPORT'.
60839f5d 12075 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 12076
d5e54bc1
KH
120772009-01-29 Kazu Hirata <kazu@codesourcery.com>
12078
12079 PR tree-optimization/39007
12080 * tree-loop-distribution.c (generate_builtin): Use
12081 recompute_dominator to compute the immediate dominator of the
12082 basic block just after the loop.
12083
38432148 120842009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
12085
12086 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
12087 (ASM_OUTPUT_DWARF_PCREL): Define.
12088
38432148 120892009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
12090
12091 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
12092 * doc/passes.texi: Remove entries about regclass, local-alloc, and
12093 global. Modify entries about regmove and IRA.
12094
12095 * ra-conflict.c: Remove the file.
12096
12097 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
12098
12099 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
12100 (pass_regclass_init): Rename to pass_reginfo_init.
12101
12102 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
12103
12104 * toplev.h (flag_ira): Remove.
12105
12106 * caller-save.c (setup_save_areas): Remove flag_ira.
12107
bf9b2cc9 12108 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
12109
12110 * global.c: Remove the file.
12111
ba20e309 12112 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
12113
12114 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
12115
12116 * regmove.c: Modify file description.
12117 (find_use_as_address, try_auto_increment): Define them only if
12118 AUTO_INC_DEC is defined.
12119 (replacement_quality, replace_in_call_usage, fixup_match_1,
12120 stable_and_no_regs_but_for_p): Remove.
12121 (reg_set_in_bb): Make it static.
12122 (regmove_optimize): Remove flag_ira and code which worked for
12123 !flag_ira.
12124
12125 * local-alloc.c: Remove the file.
12126
12127 * common.opt (fira): Remove.
12128
12129 * ira.c: Include except.h.
12130 (eliminable_regset): Move from global.c.
12131 (mark_elimination): Ditto. Remove flag_ira.
12132 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
12133 equiv_mem_modified, validate_equiv_mem_from_store,
12134 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
12135 contains_replace_regs, memref_referenced_p, memref_used_between_p,
12136 no_equiv, recorded_label_ref): Move from local-alloc.c.
12137 (update_equiv_regs): Ditto. Make it static.
12138 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 12139 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
12140 (build_insn_chain): Ditto. Make it static.
12141 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
12142 Rename to init_live_subregs.
12143 (gate_ira): Remove flag_ira.
12144
12145 * regclass.c: Rename reginfo.c. Change file description.
12146 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 12147 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
12148 (init_reg_sets_1): Remove code for evaluation of
12149 reg_class_superclasses and losing_caller_save_reg_set.
12150 (init_regs): Remove init_reg_autoinc.
12151 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
12152 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 12153 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
12154 (pass_regclass_init): Rename to pass_reginfo_init. Modify
12155 corresponding entries.
12156 (dump_regclass, record_operand_costs, scan_one_insn,
12157 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
12158 record_address_regs, auto_inc_dec_reg_p): Remove.
12159 (gt-regclass.h): Rename to gt-reginfo.h.
12160
12161 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 12162 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
12163
12164 * Makefile.in (RA_H): Remove.
12165 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
12166 Rename regclass.o to reginfo.o.
12167 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
12168 gt-reginfo.h.
12169 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
12170 (GTFILES): Rename regclass.c to reginfo.c.
12171
12172 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 12173 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
12174
12175 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
12176 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
12177 Remove flag_ira.
6b67572e 12178 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 12179
c95b2534 121802009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
12181
12182 PR middle-end/35854
12183 * doc/invoke.texi (rtl debug options): Complete rewrite.
12184 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
12185 to auto_inc_dec".
12186 * mode-switching.c (pass_mode_switching): Rename pass from
12187 "mode-sw" to "mode_sw".
12188 * except.c (pass_convert_to_eh_ranges): Rename pass from
12189 "eh-ranges" to "eh_ranges".
12190 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
12191 to "subreg1".
2ba9daa7
AS
12192
12193
72a54528
AM
121942009-01-29 Andrey Belevantsev <abel@ispras.ru>
12195 Alexander Monakov <amonakov@ispras.ru>
12196
12197 PR middle-end/38857
12198 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
12199 register.
12200 (move_exprs_to_boundary): Change return type and pass through
12201 should_move from move_op. Relax assert. Update usage ...
12202 (schedule_expr_on_boundary): ... here. Use should_move instead of
12203 cant_move.
12204 (move_op_orig_expr_found): Indicate that insn was disconnected from
12205 stream.
12206 (code_motion_process_successors): Do not call after_merge_succs
12207 callback if original expression was not found when traversing any of
12208 the branches.
12209 (code_motion_path_driver): Change return type. Update prototype.
12210 (move_op): Update comment. Add a new parameter (should_move). Update
12211 prototype. Set *should_move based on indication provided by
12212 move_op_orig_expr_found.
12213
001b9eb6
PH
122142009-01-28 Pat Haugen <pthaugen@us.ibm.com>
12215
12216 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
12217 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
12218 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
12219 * config/rs6000/rs6000.c (rs6000_override_options): Default
12220 avoid-indexed-addresses on for Power6, off for everything else.
12221 (avoiding_indexed_address_p): New function.
12222 (rs6000_legitimize_address): Use it.
12223 (rs6000_legitimate_address): Likewise.
12224 * config/rs6000/rs6000.md (movXX_updateX): Likewise
12225
59dc4898
KH
122262009-01-28 Kazu Hirata <kazu@codesourcery.com>
12227
12228 PR tree-optimization/38997
12229 * tree-loop-distribution.c (generate_memset_zero): Use
12230 POINTER_PLUS_EXPR for a pointer addition.
12231
07da44ab
AK
122322009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
12233
12234 * config/s390/s390.md (bswap<mode>2): New pattern added.
12235
cdc15d23
WG
122362009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12237
12238 * config/s390/s390.md (*tls_load_31): Added type attribute.
12239
d46f24b6
WG
122402009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12241
12242 * config/s390/s390.md: Fix a few comments.
12243
729e750f
WG
122442009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12245
12246 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
12247 (*tm<mode>_full): Fixed z10prop attribute.
12248 (*tst<mode>_extimm): Fixed z10prop attribute.
12249 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
12250 (*tstqiCCT_cconly): Fixed z10prop attribute.
12251 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
12252 (*movsi_larl): Fixed z10prop attribute.
12253 (*movsi_zarch): Fixed z10prop attribute.
12254 (*movsi_eas): Fixed z10prop attribute.
12255 (*movhi): Fixed z10prop attribute.
12256 (*movqi): Fixed z10prop attribute.
12257 (*movstrictqi): Fixed z10prop attribute.
12258 (*mov<mode>): Fixed z10prop attribute.
12259 (*movcc): Fixed z10prop attribute.
12260 (*sethighpartdi_64): Fixed z10prop attribute.
12261 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
12262 (*negdi2_sign_cc): Fixed z10prop attribute.
12263 (*negdi2_sign): Fixed z10prop attribute.
12264 (*absdi2_sign_cc): Fixed z10prop attribute.
12265 (*absdi2_sign): Fixed z10prop attribute.
12266 (*negabsdi2_sign_cc): Fixed z10prop attribute.
12267 (*negabsdi2_sign): Fixed z10prop attribute.
12268 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
12269 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
12270 (doloop_si64): Fixed z10prop attribute.
12271 (doloop_si31): Fixed z10prop attribute.
12272 (doloop_long): Fixed z10prop attribute.
12273 (indirect_jump): Fixed z10prop attribute.
12274 (nop): Fixed z10prop attribute.
12275 (main_base_64): Fixed z10prop attribute.
12276 (reload_base_64): Fixed z10prop attribute.
12277
c7789bfb
JJ
122782009-01-28 Jakub Jelinek <jakub@redhat.com>
12279
12280 PR rtl-optimization/38740
6b67572e
UB
12281 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
12282 if !optimize.
c7789bfb
JJ
12283 * config/mips/mips.c (mips_reorg): Likewise.
12284
de081cfd
RG
122852009-01-28 Richard Guenther <rguenther@suse.de>
12286
12287 PR tree-optimization/38926
12288 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
12289 with the correct value id to a value.
12290 (do_regular_insertion): Use the value number of edoubleprime
12291 for the value number of the expr.
12292
12293 Revert
12294 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 12295
d748c406
UB
12296 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
12297 a PHI ask VN if it is already available.
12298 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
12299 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 12300
a9d386a1
JJ
123012009-01-28 Jakub Jelinek <jakub@redhat.com>
12302
12303 PR middle-end/38934
12304 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
12305 set to varying whenever max has TREE_OVERFLOW set, similarly
12306 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
12307
97a170cd
RG
123082009-01-28 Richard Guenther <rguenther@suse.de>
12309
12310 PR middle-end/38908
12311 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
12312 uninitialized aggregate uses in call arguments.
12313
89ebafc6
PB
123142009-01-28 Paolo Bonzini <bonzini@gnu.org>
12315
12316 PR tree-optimization/38984
12317 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
12318 the nothing_id variable if -fno-delete-null-pointer-checks.
12319
bef3c57b
UB
123202009-01-28 Uros Bizjak <ubizjak@gmail.com>
12321
12322 PR target/38988
12323 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
12324 (set_got_offset_rex64): Ditto.
12325
0c6390fa
L
123262009-01-27 H.J. Lu <hongjiu.lu@intel.com>
12327
12328 PR target/38941
12329 * doc/extend.texi: Improve local variable with asm reg.
12330
bee6fa6d
AN
123312009-01-27 Adam Nemet <anemet@caviumnetworks.com>
12332
12333 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
12334 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
12335 was not supplied then set warn_packed_bitfield_compat to the
12336 default value of 1.
12337 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
12338 against 1.
12339
b5c3dfbb
RG
123402009-01-27 Richard Guenther <rguenther@suse.de>
12341
12342 PR tree-optimization/38503
12343 * cfgexpand.c (expand_gimple_basic_block): Ignore
12344 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
12345 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
12346 variables that cannot have TBAA applied.
12347 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
12348 statements.
12349
d748c406 123502009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
12351
12352 PR middle-end/38969
12353 * calls.c (initialize_argument_information): Do not wrap complex
12354 arguments in SAVE_EXPR.
12355
9112bb38
AT
123562009-01-26 Andreas Tobler <a.tobler@schweiz.org>
12357
12358 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 12359 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 12360
4757704f
RG
123612009-01-26 Richard Guenther <rguenther@suse.de>
12362
12363 PR tree-optimization/38745
12364 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
12365 from special handling.
12366
e3e6cff4
RG
123672009-01-26 Richard Guenther <rguenther@suse.de>
12368
12369 PR tree-optimization/38745
12370 * tree-ssa.c (execute_update_addresses_taken): Do not include
12371 variables that cannot possibly be a register in not_reg_needs.
12372 Do not clear TREE_ADDRESSABLE on vars that may not become
12373 registers.
12374 * tree-ssa.c (update_alias_info_1): Include those in the set
12375 of addressable vars.
12376
dc874b53
RG
123772009-01-26 Richard Guenther <rguenther@suse.de>
12378
12379 PR middle-end/38851
12380 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
12381 * tree-ssa-dse.c: Include langhooks.h
12382 (execute_simple_dse): Remove stores with zero size.
12383
849421a3
JJ
123842009-01-24 Jakub Jelinek <jakub@redhat.com>
12385
12386 PR c/38957
12387 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
12388 as PLUS_EXPR.
12389
82f70421
JB
123902009-01-24 Julian Brown <julian@codesourcery.com>
12391
12392 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
12393 config/arm/linux-atomic.c.
12394 * config/arm/linux-atomic.c: New.
12395
863412d6
EB
123962009-01-24 Eric Botcazou <ebotcazou@adacore.com>
12397
12398 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
12399 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
12400 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
12401
8c684300
L
124022009-01-24 H.J. Lu <hongjiu.lu@intel.com>
12403
12404 PR c/38938
93f1527a 12405 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
12406 properly.
12407
b840fb02
SP
124082009-01-24 Sebastian Pop <sebastian.pop@amd.com>
12409
12410 PR tree-optimization/38953
12411 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
12412 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
12413 (gloog): Split the exit of the scop when the scop exit is a loop exit.
12414 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
12415 changed the CFG.
12416
ecee559f
PB
124172009-01-24 Paul Brook <paul@codesourcery.com>
12418
12419 * config/arm/neon.md (neon_type): Move to arm.md.
12420 (neon_mov<VSTRUCT>): Add neon_type attribute.
12421 * config/arm/arm.md (neon_type): Move to here.
12422 (conds): Add "unconditioal" and use as default for NEON insns.
12423
61ad0914
BE
124242009-01-24 Ben Elliston <bje@au.ibm.com>
12425
12426 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
12427 void *' warning from -Wc++-compat.
12428 * Makefile.in (dominance.o-warn): Remove.
12429
38432148 124302009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
12431
12432 PR tree-optimization/38932
12433 * fold-const.c (fold_unary_ignore_overflow): New.
12434 * tree.h (fold_unary_ignore_overflow): Declare.
12435 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
12436 * tree-ssa-sccvn.c (visit_reference_op_load,
12437 simplify_unary_expression): Likewise.
12438
2cd36c22
AN
124392009-01-22 Adam Nemet <anemet@caviumnetworks.com>
12440
12441 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
12442 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
12443 regardless of their type.
12444 * c-common.c (handle_packed_attribute): Don't ignore packed on
12445 bitfields.
12446 * c.opt (Wpacked-bitfield-compat): New warning option.
12447 * stor-layout.c (place_field): Warn if offset of a field changed.
12448 * doc/extend.texi (packed): Mention the ABI change.
12449 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
12450 (Warning Options): Add it to the list.
12451
e4e624ab
L
124522009-01-22 H.J. Lu <hongjiu.lu@intel.com>
12453
12454 * c-opts.c (c_common_post_options): Fix a typo in comments.
12455
d0ea0759
SE
124562009-01-22 Steve Ellcey <sje@cup.hp.com>
12457
12458 PR middle-end/38615
12459 * gimplify.c (gimplify_init_constructor): Fix promotion of const
12460 variables to static.
12461 * doc/invoke.texi (-fmerge-all-constants): Update description.
12462
87673f84
UB
124632009-01-22 Uros Bizjak <ubizjak@gmail.com>
12464
12465 PR target/38931
12466 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
12467 (*movdi_1_rex64): Use type "mmx" for alternative 5.
12468
96339268
RE
124692009-01-22 Richard Earnshaw <rearnsha@arm.com>
12470
12471 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
12472 a word boundary.
12473 (LOCAL_ALIGNMENT): Similarly.
12474
442dc742 124752009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 12476 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
12477
12478 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
12479 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
12480 * config/arm/arm-tune.md: Regenerate.
12481 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
12482 -march=iwmmxt2.
12483
9b34732e
MS
124842009-01-22 Mark Shinwell <shinwell@codesourcery.com>
12485
12486 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
12487 version number to five.
12488
03c2a308
DS
124892009-01-22 Dodji Seketeli <dodji@redhat.com>
12490
12491 PR c++/38930
ba20e309 12492 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
12493 * c-common.c (set_underlying_type): Likewise.
12494 (is_typedef_decl ): Likewise
12495 * tree.h: Likewise
12496 (set_underlying_type): Likewise.
12497 (is_typedef_type): Likewise.
12498
1240d76e
VM
124992009-01-21 Vladimir Makarov <vmakarov@redhat.com>
12500
12501 PR middle-end/38587
12502 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
12503 crossing setjmps.
12504
b8a1087d
DK
125052009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
12506
12507 PR bootstrap/37660
12508 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
12509 (LIBGCC_SPEC): Don't define.
12510 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
12511
435da628
UB
125122009-01-21 Uros Bizjak <ubizjak@gmail.com>
12513
12514 PR rtl-optimization/38879
12515 * alias.c (base_alias_check): Unaligned access via AND address can
12516 alias all surrounding object types except those with sizes equal
12517 or wider than the size of unaligned access.
12518
d597b3ce
DS
125192009-01-21 Dodji Seketeli <dodji@redhat.com>
12520
12521 PR c++/26693
ba20e309 12522 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 12523 * c-common.c (set_underlying_type): ... here.
435da628 12524 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
12525 the newly created typedef variant type.
12526 (is_typedef_decl ): New entry point.
12527 * tree.h: Added a new member member_types_needing_access_check to
12528 struct tree_decl_non_common.
12529 (set_underlying_type): New entry point.
12530 (is_typedef_type): Likewise.
12531
71a6fe66
BM
125322009-01-21 Bingfeng Mei <bmei@broadcom.com>
12533
12534 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
12535 Check whether two instructions have memory references that
12536 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
12537 are helper functions for traversing.
12538 * alias.h (insn_alias_sets_confilict_p): New prototypes.
12539 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
12540 not to draw dependency edge for instructions with non-conflicting
12541 alias sets.
12542
5a248274
JM
125432009-01-20 Joseph Myers <joseph@codesourcery.com>
12544
12545 PR other/38758
6b67572e
UB
12546 * longlong.h: Update copyright years. Use soft-fp license notice.
12547 Sync __clz_tab declaration with glibc.
5a248274 12548
4b84f3de
SE
125492009-01-20 Steve Ellcey <sje@cup.hp.com>
12550
12551 PR target/30687
12552 * doc/extend.texi (syscall_linkage): New.
12553 (version_id): Modify.
12554
37348bf1 125552009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 12556 Richard Guenther <rguenther@suse.de>
37348bf1
AP
12557
12558 PR tree-optimization/38747
12559 PR tree-optimization/38748
12560 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
12561 conversion if the base address is an indirect reference and the
12562 aliasing sets could cause issues.
12563
d0a58904
SP
125642009-01-20 Sebastian Pop <sebastian.pop@amd.com>
12565
2ba9daa7 12566 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
12567 explaining why these options are not documented.
12568
71e7afb2
SP
125692009-01-20 Sebastian Pop <sebastian.pop@amd.com>
12570
12571 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
12572 gimple_call_lhs is NULL.
12573
38432148 125742009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
12575
12576 PR target/38868
12577 * emit-rtl.c (adjust_address_1): Make sure memref is never
12578 overwritten.
12579
cbb8dee3
BE
125802009-01-20 Ben Elliston <bje@au.ibm.com>
12581
12582 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 12583 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
12584 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
12585 const qualifier from arg 2.
12586
72c66596
IS
125872009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
12588
435da628 12589 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 12590
f68211cd
VM
125912009-01-19 Vladimir Makarov <vmakarov@redhat.com>
12592
12593 PR c/38869
12594 * rtl.h (reinit_regs): New prototype.
12595 * regclass.c: Include ira.h.
12596 (reinit_regs): New.
12597 * Makefile.in (regclass.o): Add ira.h.
12598 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
12599
6e4f1168
L
126002009-01-18 H.J. Lu <hongjiu.lu@intel.com>
12601
12602 PR target/38736
12603 * c-common.c (handle_aligned_attribute): Use
12604 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
12605 default alignment value.
12606
12607 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
12608
12609 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
12610 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
12611
12612 * doc/extend.texi: Update __attribute__ ((aligned)). Document
12613 __BIGGEST_ALIGNMENT__.
12614
12615 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
12616
890065bf
RG
126172009-01-18 Richard Guenther <rguenther@suse.de>
12618
12619 PR tree-optimization/38819
12620 * tree-flow.h (operation_could_trap_helper_p): Declare.
12621 * tree-eh.c (operation_could_trap_helper_p): Export.
12622 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
12623 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
12624 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
12625 are about to insert a possibly trapping instruction and fail
12626 in this case.
12627
a729d731
AS
126282009-01-18 Andreas Schwab <schwab@suse.de>
12629
12630 * doc/install.texi (Configuration): Remove obsolete paragraph
12631 about use of --with-gnu-ld with --with-gnu-as.
12632
a640c13b
KH
126332009-01-18 Kazu Hirata <kazu@codesourcery.com>
12634
12635 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
12636 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
12637 Follow spelling conventions.
12638
dba2cc0c
BE
126392009-01-18 Ben Elliston <bje@au.ibm.com>
12640
12641 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
12642 C++ warning about implicit conversion from void * to struct
12643 bitmap_head_def *.
12644 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 12645 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 12646
2207a498
DK
126472009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
12648
12649 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
12650
8137e465
SP
126512009-01-17 Sebastian Pop <sebastian.pop@amd.com>
12652 Tobias Grosser <tobi.grosser@amd.com>
12653
12654 * graphite.c (graphite_trans_scop_block): Do not block single
12655 nested loops.
12656
5be1c58c
AO
126572009-01-16 Alexandre Oliva <aoliva@redhat.com>
12658
12659 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
12660 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
12661 test with assertion.
12662
786ce82d
RG
126632009-01-16 Richard Guenther <rguenther@suse.de>
12664
12665 PR tree-optimization/38835
12666 PR middle-end/36227
12667 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
12668 and INT + PTR -> (INT)(PTR p+ INT) folding.
12669 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
12670
c1cb09ad
AN
126712009-01-16 Adam Nemet <anemet@caviumnetworks.com>
12672
12673 PR target/38554
12674 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
12675 the subreg from a lowpart subreg if it is also casting the value.
12676
bcab4e19
SP
126772009-01-16 Sebastian Pop <sebastian.pop@amd.com>
12678 Tobias Grosser <tobi.grosser@amd.com>
12679
12680 * graphite.c (compare_prefix_loops): New.
12681 (build_scop_canonical_schedules): Rewritten.
12682 (graphite_transform_loops): Move build_scop_canonical_schedules
12683 after build_scop_iteration_domain.
12684
0b040072
SP
126852009-01-16 Sebastian Pop <sebastian.pop@amd.com>
12686 Tobias Grosser <tobi.grosser@amd.com>
12687
2ba9daa7 12688 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
12689 the dimension of the iteration domain. Do copy the domain
12690 only when it exists.
12691 (build_scop_conditions_1): Do not call add_conditions_to_domain.
12692 (add_conditions_to_constraints): New.
12693 (can_generate_code_stmt, can_generate_code): Removed.
12694 (gloog): Do not call can_generate_code.
12695 (graphite_transform_loops): Call add_conditions_to_constraints
12696 after building the iteration domain.
12697
56c6a499
JJ
126982009-01-16 Jakub Jelinek <jakub@redhat.com>
12699
12700 PR tree-optimization/38789
12701 * tree-ssa-threadedge.c
12702 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
12703 __builtin_constant_p.
12704
c95b2534 127052009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
12706
12707 * dce.c (delete_unmarked_insns): Reversed the order that insns are
12708 examined before deleting them.
2ba9daa7 12709
c433cb14
RE
127102009-01-16 Richard Earnshaw <rearnsha@arm.com>
12711
12712 * function.c (aggregate_value_p): Correctly extract the function
12713 type from CALL_EXPR_FN lookup.
12714
c95b2534 127152009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
12716
12717 * config/picochip/picochip.c (picochip_override_options): Revert
12718 CFI asm flag disable commited previously.
12719
c77bb78f
SP
127202009-01-15 Sebastian Pop <sebastian.pop@amd.com>
12721 Tobias Grosser <tobi.grosser@amd.com>
12722 Jan Sjodin <jan.sjodin@amd.com>
12723
12724 * graphite.c (scan_tree_for_params): On substractions negate
12725 all the coefficients of the term.
12726 (clast_to_gcc_expression_red): New. Handle reduction expressions
12727 of more than two operands.
12728 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
12729 (get_vdef_before_scop): Handle also the case of default definitions.
12730
574af2d6
RS
127312009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
12732
12733 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
12734 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
12735 Also use them when walking CALL_INSN_FUNCTION_USAGE.
12736
e939805b
L
127372009-01-15 H.J. Lu <hongjiu.lu@intel.com>
12738 Joey Ye <joey.ye@intel.com>
12739
12740 PR middle-end/37843
12741 * cfgexpand.c (expand_stack_alignment): Don't update stack
12742 boundary nor check incoming stack boundary here.
12743 (gimple_expand_cfg): Update stack boundary and check incoming
12744 stack boundary here.
12745
c95b2534 127462009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 12747
435da628 12748 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 12749
0196c95e
JJ
127502009-01-14 Jakub Jelinek <jakub@redhat.com>
12751
12752 PR rtl-optimization/38245
12753 * calls.c (expand_call): Add stack arguments to
12754 CALL_INSN_FUNCTION_USAGE even for pure calls (when
12755 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
12756 in regs and partially in memory or BLKmode arguments.
12757 (emit_library_call_value_1): Add stack arguments to
12758 CALL_INSN_FUNCTION_USAGE even for pure calls (when
12759 ACCUMULATE_OUTGOING_ARGS).
12760 * dce.c: Include tm_p.h.
12761 (find_call_stack_args): New function.
12762 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
12763 argument.
12764 (mark_insn): Call find_call_stack_args for CALL_Ps.
12765 (prescan_insns_for_dce): Walk insns backwards in bb rather than
12766 forwards. Allocate and free arg_stores bitmap if needed, pass it
12767 down to deletable_insn_p, don't mark stores set in arg_stores
12768 bitmap, clear the bitmap at the beginning of each bb.
12769 * Makefile.in (dce.o): Depend on $(TM_P_H).
12770
6df6bcfa
MM
127712009-01-14 Michael Meissner <gnu@the-meissners.org>
12772
12773 PR target/22599
435da628
UB
12774 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
12775 to make sure the insn is a conditional test (bug 22599). Reformat a
12776 few long lines.
6df6bcfa 12777
765ec70c
SP
127782009-01-14 Sebastian Pop <sebastian.pop@amd.com>
12779
12780 PR middle-end/38431
12781 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
12782 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
12783 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 12784 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
12785 scops have been code generated.
12786
7de2b688
BS
127872009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
12788 * doc/gty.texi (Invoking the garbage collector): Added new node
12789 and section documenting ggc_collect.
12790
10bd6c5c
RG
127912009-01-14 Richard Guenther <rguenther@suse.de>
12792
12793 PR tree-optimization/38826
12794 PR middle-end/38477
12795 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
12796 initialization notes only if we actually emitted a warning.
12797 (intra_create_variable_infos): Add constraints for a result decl
12798 that is passed by hidden reference.
12799 (build_pred_graph): Mark all related variables non-direct on
12800 address-taking.
12801
9c7c70ee
NC
128022009-01-14 Nick Clifton <nickc@redhat.com>
12803
12804 * ira-conflicts.c: Include addresses.h for the definition of
12805 base_reg_class.
435da628
UB
12806 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
12807 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 12808
cf0c2a60
VM
128092009-01-13 Vladimir Makarov <vmakarov@redhat.com>
12810
12811 PR target/38811
12812 * Makefile.in (ira-lives.o): Add except.h.
12813
12814 * ira-lives.c: Include except.h.
12815 (process_bb_node_lives): Process can_throw_internal.
12816
d3302fd3
JJ
128172009-01-13 Jakub Jelinek <jakub@redhat.com>
12818
12819 PR rtl-optimization/38774
12820 * combine.c (simplify_set): When undoing cc_use change, don't do
12821 PUT_CODE on the newly created comparison, but instead put back the
12822 old comparison.
12823
7ab23fd0
JM
128242009-01-13 Joseph Myers <joseph@codesourcery.com>
12825
12826 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
12827 values. Remove duplicate arm8 entry.
12828
f9344488
SP
128292009-01-13 Sebastian Pop <sebastian.pop@amd.com>
12830
12831 PR tree-optimization/38786
12832 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
12833 the SSA_NAME case of expand_scalar_variables_expr.
12834 Set the type of an expression to the type of its assign statement.
12835 (expand_scalar_variables_expr): Also gather the scalar computation
12836 used to index the memory access. Do not pass loop_p.
12837 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
12838 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
12839 the gimple_stmt_iterator where it inserts new code.
12840 Do not pass loop_p.
f9344488
SP
12841 (copy_bb_and_scalar_dependences): Do not pass loop_p.
12842 (translate_clast): Update call to copy_bb_and_scalar_dependences.
12843
2d8bb84d
SP
128442009-01-13 Sebastian Pop <sebastian.pop@amd.com>
12845
12846 * graphite.h (debug_value): Removed.
12847 * graphite.c (debug_value): Removed.
12848
ff128632
RE
128492009-01-13 Richard Earnshaw <rearnsha@arm.com>
12850
435da628
UB
12851 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
12852 ldrd/strd with two 32-bit instructions.
ff128632 12853
d5a0a47b
RE
128542009-01-13 Richard Earnshaw <rearnsha@arm.com>
12855
435da628
UB
12856 * config/arm/arm.c (struct processors): Pass for speed down into
12857 cost helper functions.
d5a0a47b
RE
12858 (const_ok_for_op): Handle COMPARE and inequality nodes.
12859 (arm_rtx_costs_1): Rewrite.
12860 (arm_size_rtx_costs): Update prototype.
12861 (arm_rtx_costs): Pass speed down to helper functions.
12862 (arm_slowmul_rtx_costs): Rework cost calculations.
12863 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
12864 (arm_9e_rtx_costs): Likewise.
12865
26d5bf5b
UB
128662009-01-13 Uros Bizjak <ubizjak@gmail.com>
12867
12868 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 12869 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
12870 (alpha_legitimize_address): Do not split local symbols wider than
12871 UNITS_PER_WORD into HIGH/LO_SUM parts.
12872
5d14e3d5
DS
128732009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
12874
12875 PR bootstrap/38580
12876 * gcc.c (process_command): Replace call to execvp with calls
12877 to pex_one and exit.
12878
33faafca
AS
128792009-01-03 Anatoly Sokolov <aesok@post.ru>
12880
12881 PR target/29141
12882 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
12883 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
12884 variant for devices with 3-byte PC.
ba20e309 12885 (__tablejump_elpm__): New.
33faafca 12886
634b5df5
JJ
128872009-01-12 Jakub Jelinek <jakub@redhat.com>
12888
12889 PR c/32041
12890 * c-parser.c (c_parser_postfix_expression): Allow `->' in
12891 offsetof member-designator, handle it as `[0].'.
12892
2842bb86
JDA
128932009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12894
12895 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
12896 function when not using named sections on targets with named sections
12897 if branch distance is less than 262132.
12898
76ee70f6
RE
128992009-01-12 Richard Earnshaw <rearnsha@arm.com>
12900
12901 * combine.c (combine_instructions): Recompute
12902 optimize_this_for_speed_p for each BB in the main combine loop.
12903
f56e675d
TB
129042009-01-12 Tomas Bily <tbily@suse.cz>
12905
12906 PR middlend/38385
26d5bf5b
UB
12907 * tree-loop-distribution.c (prop_phis): New function.
12908 (generate_builtin): Call prop_phis.
12909 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 12910
c2152239
JJ
129112009-01-12 Jakub Jelinek <jakub@redhat.com>
12912
12913 PR tree-optimization/38807
12914 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
12915 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
12916
0e510b3e
AN
129172009-01-11 Adam Nemet <anemet@caviumnetworks.com>
12918
12919 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
12920 subreg of op0 to the original op0.
12921
c95b2534 129222009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
12923
12924 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 12925
53a7ff9a
MS
129262009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
12927
12928 PR debug/7055
60839f5d 12929 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
12930 starting with digits.
12931
b3a796bc
JJ
129322009-01-10 Jakub Jelinek <jakub@redhat.com>
12933
12934 PR target/38695
12935 * config/arm/arm.c (arm_is_long_call_p): Don't call
12936 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
12937
b21b850e
SB
129382009-01-09 Steven Bosscher <steven@gcc.gnu.org>
12939
12940 * regrename.c (regrename_optimize): Fix dumping.
12941 (find_oldest_value_reg): Preserve REG_POINTER.
12942 (copy_hardreg_forward_1): Likewise.
12943
e0e10d3a
DN
129442009-01-09 Diego Novillo <dnovillo@google.com>
12945
bf9b2cc9 12946 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
12947 the restrictions on its use.
12948 (gimple_uid): Tidy.
12949 (gimple_set_uid): Tidy.
12950
c9da2ae8
JJ
129512009-01-09 Jakub Jelinek <jakub@redhat.com>
12952
12953 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
12954 zero guard even if align_bytes != 0 and count is smaller than
12955 size_needed.
12956
38432148 129572009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
12958
12959 PR rtl-optimization/38495
26d5bf5b 12960 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
12961 (add_range_and_copies_from_move_list): Print all added ranges.
12962 Add ranges to memory optimized destination.
12963
260fda3d
JJ
129642009-01-09 Jakub Jelinek <jakub@redhat.com>
12965
6f6278ad
JJ
12966 PR target/38686
12967 PR target/38708
12968 * config/i386/i386.c (override_options): Reject
12969 -mstringop-strategy=rep_8byte with -m32.
12970 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
12971 to 1. Do count comparison against epilogue_size_needed at compile
12972 time even when count_exp was constant forced into register. For
12973 size_needed don't jump to epilogue, instead just avoid aligning
12974 and invoke the body algorithm. If need_zero_guard, add zero guard
12975 even if count is non-zero, but smaller than size_needed + number of
12976 bytes that could be stored for alignment.
12977 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
12978 to 1. If need_zero_guard, add zero guard even if count is non-zero,
12979 but smaller than size_needed + number of bytes that could be stored
12980 for alignment. Compare size_needed with epilogue_size_needed instead
12981 of desired_align - align, don't adjust size_needed, pass
12982 epilogue_size_needed to the epilogue expanders.
12983
260fda3d 12984 PR c/35742
26d5bf5b 12985 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 12986
67b846fa
JDA
129872009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12988
12989 * pa.c (last_address): Change to unsigned.
12990 (update_total_code_bytes): Change argument to unsigned. Don't
12991 check if insn addresses are set.
12992 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
12993 addresses are not set.
12994 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
12995
91c82473
NC
129962009-01-09 Nick Clifton <nickc@redhat.com>
12997
12998 * config/sh/symbian.c: Replace uses of DECL_INLINE with
12999 DECL_DECLARED_INLINE_P.
13000
4017e262
JJ
130012009-01-09 Jakub Jelinek <jakub@redhat.com>
13002
0a49e5c2
JJ
13003 PR middle-end/38347
13004 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
13005 GET_MODE (op0) in operand_subword_force calls.
13006
4017e262
JJ
13007 PR middle-end/38771
13008 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
13009 fold_convert arg0 operands to TREE_TYPE (op0) first.
13010
7cd06356
VM
130112009-01-08 Vladimir Makarov <vmakarov@redhat.com>
13012
13013 * params.def (ira-max-conflict-table-size): Decrease default value
13014 to 1000.
13015
96867bbd
JJ
130162009-01-08 Jakub Jelinek <jakub@redhat.com>
13017
13018 PR tree-optimization/37031
13019 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
13020 on parameter_set.
13021 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
13022 allocate it using gc instead of heap, use VEC_quick_push instead of
13023 VEC_safe_push.
13024 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
13025 instead of heap, use VEC_quick_push instead of VEC_safe_push.
13026 * tree-data-ref.h (struct access_matrix): Change matrix to gc
13027 allocated vector from heap allocated.
13028 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
13029 * tree-loop-linear.c (linear_transform_loops): Allocate nest
13030 vector only after perfect_loop_nest_depth call.
13031
68f61c3d
SP
130322009-01-08 Sebastian Pop <sebastian.pop@amd.com>
13033 Jan Sjodin <jan.sjodin@amd.com>
13034
13035 PR tree-optimization/38559
13036 * graphite.c (debug_value, copy_constraint,
13037 swap_constraint_variables, scale_constraint_variable, ): New.
13038 (get_lower_bound, get_upper_bound): Removed.
13039 (graphite_trans_bb_strip_mine): Clean up this code that works
13040 only for constant number of iterations. Fully copy upper and
13041 lower bound constraints, not only the constant part of them.
13042 * graphite.h (debug_value): Declared.
13043
82567e33
IR
130442009-01-08 Ira Rosen <irar@il.ibm.com>
13045
13046 PR tree-optimization/37194
13047 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 13048 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
13049 outside cost in case of known number of iterations.
13050
7da13f1d
NF
130512009-01-07 Nathan Froyd <froydnj@codesourcery.com>
13052 Alan Modra <amodra@bigpond.net.au>
13053
13054 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
13055 non-word-aligned REG+CONST addressing.
13056
c0f64575
UB
130572009-01-07 Uros Bizjak <ubizjak@gmail.com>
13058
13059 PR target/38706
13060 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
13061 free_after_compilation when outputting a thunk.
13062 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
13063 Do not call free_after_compilation here.
13064
301b6a4e
UB
130652009-01-07 Uros Bizjak <ubizjak@gmail.com>
13066
13067 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
13068 (ix86_valid_target_attribute_inner_p): Ditto.
13069
6a114766
JS
130702009-01-07 Jan Sjodin <jan.sjodin@amd.com>
13071
13072 PR tree-optimization/38492
13073 PR tree-optimization/38498
13074 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
13075 * tree-chrec.h (scev_is_linear_expression): Declared.
13076 * graphite.c (graphite_cannot_represent_loop_niter): New.
13077 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
13078 (graphite_loop_normal_form): Use gcc_assert.
13079 (scan_tree_for_params): Use CASE_CONVERT.
13080 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
13081 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
13082 Use gcc_assert. Discard scops that contain unhandled cases.
13083 (build_scop_conditions): Return a boolean status for unhandled cases.
13084 (strip_mine_profitable_p): Print the loop number, not its depth.
13085 (is_interchange_valid): Pass the depth of the loop nest, don't
13086 recompute it wrongly.
13087 (graphite_trans_bb_block): Same.
13088 (graphite_trans_bb_block): Print tentative of loop blocking.
13089 (graphite_trans_scop_block): Do not print that the loop has been
13090 blocked.
13091 (graphite_transform_loops): Do not handle scops that contain condition
13092 scalar phi nodes.
13093
65b82caa
L
130942009-01-07 H.J. Lu <hongjiu.lu@intel.com>
13095
13096 AVX Programming Reference (December, 2008)
13097 * config/i386/avxintrin.h (_mm256_stream_si256): New.
13098 (_mm256_stream_pd): Likewise.
13099 (_mm256_stream_ps): Likewise.
13100
13101 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
13102 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
13103 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
13104 (bdesc_special_args): Add __builtin_ia32_movntdq256,
13105 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
13106 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
13107 (ix86_expand_special_args_builtin): Likewise.
13108
13109 * config/i386/sse.md (AVXMODEDI): New.
13110 (avx_movnt<mode>): Likewise.
13111 (avx_movnt<mode>): Likewise.
13112 (<sse>_movnt<mode>): Remove AVX support.
13113 (sse2_movntv2di): Likewise.
13114
cef158f9
RG
131152009-01-07 Richard Guenther <rguenther@suse.de>
13116
13117 PR middle-end/38751
13118 * fold-const.c (extract_muldiv): Remove obsolete comment.
13119 (fold_plusminus_mult_expr): Undo MINUS_EXPR
13120 to PLUS_EXPR canonicalization for the canonicalization.
13121
246cb5be
GP
131222009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
13123
13124 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
13125 hosted cross-compilers generating less efficient code.
13126
84b9b872
RS
131272009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13128
13129 * function.h (rtl_data): Add a dbr_scheduled_p field.
13130 * reorg.c (dbr_schedule): Set it.
13131 (gate_handle_delay_slots): Check it.
13132 * config/mips/mips.c (mips_base_delayed_branch): Delete.
13133 (mips_reorg): Check flag_delayed_branch instead of
13134 mips_base_delayed_branch.
13135 (mips_override_options): Don't set mips_base_delayed_branch
13136 or flag_delayed_branch.
13137
ace984c8
RS
131382009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13139
13140 PR rtl-optimization/38426.
13141 * ira.c (ira): Set current_function_is_leaf earlier.
13142
7ad7809b
JJ
131432009-01-06 Jakub Jelinek <jakub@redhat.com>
13144
13145 PR rtl-optimization/38722
13146 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
13147 too early, only set a flag and modify after last possible
13148 undo_all point.
13149
c52ec948
JJ
131502009-01-06 Janis Johnson <janis187@us.ibm.com>
13151
13152 PR c/34252
13153 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
13154 * real.c (decimal_single_format): Correct values of emin and emax.
13155 (decimal_double_format): Ditto.
13156 (decimal_quad_format): Ditto.
13157 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
13158 computation of DECnn_MIN and DECnn_MAX for corrected values of
13159 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
13160 __DECnn_MIN__, and adjust its computation for the corrected value
13161 of emin.
13162
300240e1
JH
131632009-01-06 Jan Hubicka <jh@suse.cz>
13164
13165 PR target/38744
435da628 13166 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 13167
271c069e
GP
131682009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
13169
13170 * doc/contrib.texi (Contributors): Slightly adjust the end note.
13171 Add Robert Clark to the list of testers.
13172
64e4c301 131732009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 13174 Kai Tietz <kai.tietz@onevision.com>
64e4c301 13175
435da628
UB
13176 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
13177 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 13178
7650b83e 131792009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 13180 Kai Tietz <kai.tietz@onevision.com>
7650b83e 13181
435da628
UB
13182 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
13183 for w64 ABI.
13184 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
13185 (ix86_nsaved_regs): Count only general purpose regs.
13186 (ix86_nsaved_sseregs): New.
13187 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
13188 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
13189 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
13190 general purpose regs.
7650b83e
JH
13191 (ix86_emit_save_sse_regs_using_mov): New.
13192 (ix86_expand_prologue): Save SSE regs if needed.
13193 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
13194 (ix86_emit_restore_sse_regs_using_mov): New.
13195 (ix86_expand_epilogue): Save SSE regs if needed.
13196
9aa5c1b2 131972009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 13198 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 13199
435da628
UB
13200 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
13201 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
13202 functions when accumulate outgoing args is off.
9aa5c1b2 13203
f7556aae
L
132042009-01-06 H.J. Lu <hongjiu.lu@intel.com>
13205
13206 PR bootstrap/38742
13207 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
13208 before using pseudos_have_intersected_live_ranges_p.
13209
13210 * ira-int.h (ira_assert): Always define.
13211
e47b7d04
L
132122009-01-06 H.J. Lu <hongjiu.lu@intel.com>
13213
13214 AVX Programming Reference (December, 2008)
13215 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
13216 (_mm256_permute2_pd): Likewise.
13217 (_mm_permute2_ps): Likewise.
13218 (_mm256_permute2_ps): Likewise.
13219 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
13220 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
13221
13222 * config/i386/i386.c (ix86_builtins): Remove
13223 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
13224 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
13225 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
13226 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
13227 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
13228 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
13229 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
13230 __builtin_ia32_vpermil2ps256.
13231 (ix86_init_mmx_sse_builtins): Updated.
13232 (ix86_expand_args_builtin): Likewise.
13233
44b86471
JDA
132342009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13235
e47b7d04
L
13236 * pa.c (output_call): Relocate non-jump insns in the delay slot of
13237 long absolute calls when generating PA 2.0 code.
44b86471 13238
311aab06
VM
132392009-01-05 Vladimir Makarov <vmakarov@redhat.com>
13240
13241 PR rtl-optimization/38583
13242 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
13243
13244 * params.def (ira-max-conflict-table-size): New.
13245
13246 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 13247
311aab06 13248 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 13249
311aab06
VM
13250 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
13251 table. Report this. Return result of building.
13252 (ira_build_conflicts): Use ira_conflicts_p. Check result of
13253 building conflict table.
13254
301b6a4e 13255 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 13256 (ira_color): Use ira_conflicts_p.
2ba9daa7 13257
311aab06
VM
13258 * global.c: Include ira.h.
13259 (pseudo_for_reload_consideration_p, build_insn_chain): Use
13260 ira_conflicts_p.
13261
13262 * Makefile.in (global.o): Add ira.h.
2ba9daa7 13263
311aab06
VM
13264 * ira-build.c (mark_all_loops_for_removal,
13265 propagate_some_info_from_allocno): New.
13266 (remove_unnecessary_allocnos): Call
13267 propagate_some_info_from_allocno.
13268 (remove_low_level_allocnos): New.
13269 (remove_unnecessary_regions): Add parameter. Call
13270 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
13271 parameter to remove_unnecessary_regions.
13272 (ira_build): Remove all regions but root if the conflict table was
13273 not built. Update conflict hard regs for allocnos crossing calls.
13274
13275 * ira.c (ira_conflicts_p): New global.
13276 (ira): Define and use ira_conflicts_p.
13277
13278 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13279 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 13280 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 13281
5641785f
BE
132822009-01-06 Ben Elliston <bje@au.ibm.com>
13283
13284 * gengtype-lex.l (YY_NO_INPUT): Define.
13285
e4e5261f
AP
132862009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
13287
13288 PR c/34911
5641785f
BE
13289 * c-common.c (handle_vector_size_attribute): Also reject
13290 BOOLEAN_TYPE types.
e4e5261f 13291
7b10257f
SP
132922009-01-05 Sebastian Pop <sebastian.pop@amd.com>
13293
13294 PR tree-optimization/38492
13295 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
13296 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
13297 rename_map_elt_info, eq_rename_map_elts,
13298 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
13299 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
13300 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
13301 (sese_build_livein_liveouts): New.
13302 (new_sese, free_sese): New.
13303 (new_scop): Call new_sese.
13304 (free_scop): Call free_sese.
13305 (rename_variables_from_edge, rename_phis_end_scop): Removed.
13306 (register_old_new_names): Renamed register_old_and_new_names.
13307 (register_scop_liveout_renames, add_loop_exit_phis,
13308 insert_loop_close_phis, struct igp,
13309 default_liveout_before_guard, add_guard_exit_phis,
13310 insert_guard_phis, copy_renames): New.
13311 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
13312 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
13313 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
13314 (scop_adjust_phis_for_liveouts): New.
13315 (gloog): Call scop_adjust_phis_for_liveouts.
13316
13317 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 13318 num_ver and livein.
7b10257f
SP
13319 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
13320 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
13321 (struct scop): Added field liveout_renames.
13322 (SCOP_LIVEOUT_RENAMES): New.
13323
9761fcc7
HJ
133242009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
13325
13326 PR tree-optimization/38510
13327 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
13328 (translate_clast): Call recompute_all_dominators before
13329 graphite_verify.
13330 (gloog): Call recompute_all_dominators before graphite_verify.
13331
133322009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 13333 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
13334
13335 PR tree-optimization/38500
13336 * graphite.c (create_sese_edges): Call fix_loop_structure after
13337 splitting blocks.
13338
c95b2534 133392009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
13340
13341 * config.gcc: Add m32r*-*-rtems*.
13342 * config/m32r/rtems.h: New file.
13343
fc0cd180
BE
133442009-01-05 Ben Elliston <bje@au.ibm.com>
13345
13346 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
13347 (.po.pox): Likewise.
13348 (po/gcc.pot): Likewise.
13349
3106d8e5
DM
133502009-01-04 David S. Miller <davem@davemloft.net>
13351
13352 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
13353 (STARTING_FRAME_OFFSET): Always set to zero.
13354
0009b473
RS
133552009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
13356
13357 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
13358 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
13359 fixed-point types, and vectors of the same.
13360
4f24c6d6
RS
133612009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
13362
13363 * config/mips/sync.md (*mb_barrier): Rename to...
13364 (*memory_barrier): ...this.
13365
1df48f5c
JW
133662009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
13367
13368 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 13369 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
13370 and put in alphabetical order. Fix 'target' name and put in order.
13371 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
13372 typos.
13373
1a8c13b3
UB
133742009-01-04 Uros Bizjak <ubizjak@gmail.com>
13375
13376 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
13377 (memory_barrier): Expand as unspec instead of unspec_volatile.
13378 Remove mem:BLK from insn operands. Use Pmode scratch register.
13379 (*memory_barrier): Define as unspec instead of unspec_volatile.
13380 Use (match_dup 0) as input operand.
13381
13382 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
13383 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
13384 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
13385 scratch register. Remove operand 1.
13386 (*stbar): Define as unspec instead of unspec_volatile.
13387 Use (match_dup 0) as input operand, remove (const_int 8).
13388 (*membar): Define as unspec instead of unspec_volatile.
13389 Use (match_dup 0) as input operand, remove input operand 2.
13390
13391 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
13392 (memory_barrier): Expand as unspec instead of unspec_volatile.
13393 Remove mem:BLK from insn operands. Use Pmode scratch register.
13394 (*memory_barrier): Define as unspec instead of unspec_volatile.
13395 Use (match_dup 0) as input operand.
13396
13397 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
13398 Remove mem:BLK from insn operands. Use Pmode scratch register.
13399 Set volatile flag on operand 0.
13400 (*memory_barrier): New insn pattern.
13401
13402 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
13403 insn operands.
13404 (*memory_barrier): Use (match_dup 0) as input operand.
13405
13406 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
13407 Remove mem:BLK from insn operands. Use Pmode scratch register.
13408 Set volatile flag on operand 0.
301b6a4e 13409 (*mb_internal): New insn pattern.
1a8c13b3
UB
13410
13411 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
13412
fb0703f7
SB
134132009-01-04 Steven Bosscher <steven@gcc.gnu.org>
13414
13415 PR middle-end/38586
13416 * function.c (struct temp_slot): Move to the section of the file
13417 that deals with temp slots. Remove field 'address'.
13418 (temp_slot_address_table): New hash table of address -> temp slot.
13419 (struct temp_slot_address_entry): New struct, items for the table.
13420 (temp_slot_address_compute_hash, temp_slot_address_hash,
13421 temp_slot_address_eq, insert_temp_slot_address): Support functions
13422 for the new table.
13423 (find_temp_slot_from_address): Rewrite to use the new hash table.
13424 (remove_unused_temp_slot_addresses): Remove addresses of temp
13425 slots that have been made available.
13426 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
13427 worker function for remove_unused_temp_slot_addresses.
13428 (assign_stack_temp_for_type): Don't clear the temp slot address list.
13429 Add the temp slot address to the address -> temp slot map.
13430 (update_temp_slot_address): Update via insert_temp_slot_address.
13431 (free_temp_slots): Call remove_unused_temp_slot_addresses.
13432 (pop_temp_slots): Likewise.
13433 (init_temp_slots): Allocate the address -> temp slot map, or empty
13434 the map if it is already allocated.
13435 (prepare_function_start): Initialize temp slot processing.
13436
b5a430f3
SB
134372009-01-04 Steven Bosscher <steven@gcc.gnu.org>
13438
13439 PR middle-end/38584
13440 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
13441 Calculate the size of all stack vars assuming no packing of stack
13442 vars will happen, replacing a quadratic algorithm with a linear one.
13443
5d560619
JJ
134442009-01-03 Jakub Jelinek <jakub@redhat.com>
13445
13446 PR target/38707
13447 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
13448 can't be used.
13449
953a7caa
DN
134502009-01-03 Diego Novillo <dnovillo@google.com>
13451
13452 * doc/contrib.texi: Update contributions.
13453
5f26a230
JJ
134542009-01-03 Jakub Jelinek <jakub@redhat.com>
13455
493aa551
JJ
13456 PR c++/38705
13457 * builtins.c (fold_builtin_memory_op): Give up if either operand
13458 is volatile. Set srctype or desttype to non-qualified version
13459 of the other type.
13460
5f26a230
JJ
13461 PR c/38700
13462 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
13463 and FUNCTION_DECLs.
13464
c95b2534 134652009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
13466
13467 PR rtl-optimization/35805
13468 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
13469 problem if fast dce is able to remove any instructions.
13470 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 13471
0b355794
MM
134722009-01-02 Mark Mitchell <mark@codesourcery.com>
13473
13474 PR 33649
13475 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
13476
0cf0d02b
JJ
134772009-01-02 Jakub Jelinek <jakub@redhat.com>
13478
13479 PR middle-end/38690
13480 * tree-flow.h (op_code_prio, op_prio): New prototypes.
13481 * tree-pretty-print.c (op_code_prio): New function.
13482 (op_prio): No longer static. Use op_code_prio.
13483 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
13484 Use op_prio and op_code_prio to determine if () should be
13485 printed around operand(s) or not.
13486
13487 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
13488 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
13489 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
13490 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
13491 pp_character instead of pp_string for single letter printing.
13492
e3606f3b
RS
134932009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
13494
13495 * doc/extend.texi: Fix '#pragma GCC option' typo.
13496
c95b2534 134972009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 13498
a5f061dc
RG
13499 * doc/install.texi (--enable-checking): Mention different
13500 default for stage1.
13501 (--enable-stage1-checking): Document.
00f39bd5 13502
26de0bcb
AP
135032009-01-01 Andrew Pinski <pinskia@gmail.com>
13504
13505 PR middle-end/30142
13506 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
13507 case to be an error.
13508
7a7d8fab
BE
135092009-01-02 Ben Elliston <bje@au.ibm.com>
13510
13511 * config/fp-bit.h (pack_d): Constify argument.
13512 * config/fp-bit.c (makenan): Constify return type. Remove casts.
13513 (isnan): Constify argument.
13514 (isinf): Likewise.
13515 (iszero): Likewise.
13516 (pack_d): Likewise.
13517 (_fpadd_parts): Constify return type.
13518 (_fpmul_parts): Likewise.
13519 (_fpdiv_parts): Likewise.
13520
b295aee2
JJ
135212009-01-01 Jakub Jelinek <jakub@redhat.com>
13522
13523 PR c/36489
13524 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
13525 warn about overwriting initializer with side-effects or
13526 -Woverride-init if !IMPLICIT.
13527 (output_init_element): Likewise. Pass IMPLICIT down to
13528 add_pending_init.
13529 (process_init_element): Add IMPLICIT argument. Pass it down
13530 to output_init_element.
13531 (push_init_element, pop_init_level, set_designator): Adjust
13532 process_init_element callers.
13533 (set_nonincremental_init, set_nonincremental_init_from_string):
13534 Adjust add_pending_init callers.
13535 (output_pending_init_elements): Adjust output_init_element callers.
13536 * c-tree.h (process_init_element): Adjust prototype.
13537 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
13538 process_init_element callers.
ad41bd84
JM
13539
13540\f
13541Copyright (C) 2009 Free Software Foundation, Inc.
13542
13543Copying and distribution of this file, with or without modification,
13544are permitted in any medium without royalty provided the copyright
13545notice and this notice are preserved.