]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
config.host (vax-*-linux*): New.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
6a753d5f
RE
12009-06-10 Revital Eres <eres@il.ibm.com>
2
3 * passes.c (init_optimization_passes): Reschedule
4 predictive-commoning pass before complete unroll pass.
5
a550d677
MJ
62009-06-10 Martin Jambor <mjambor@suse.cz>
7
8 * cgraph.c (cgraph_node_can_be_local_p): New function.
9 (cgraph_make_node_local): New function.
10 * cgraph.h (cgraph_node_can_be_local_p): Declare.
11 (cgraph_make_node_local): Declare.
12
d8259b07
NF
132009-06-10 Nathan Froyd <froydnj@codesourcery.com>
14
15 * tree.h (tree_base): Add packed_flag and user_align fields.
16 Decrease size of spare field.
17 (TYPE_USER_ALIGN): Use user_align from tree_base.
18 (DECL_USER_ALIGN): Likewise.
19 (TYPE_PACKED): Use packed_flag from tree_base.
20 (DECL_PACKED): Likewise.
21 (tree_type): Delete packed_flag and user_align fields. Widen
22 precision field. Widen mode field and shuffle fields to align
23 mode on an 8-bit boundary.
24 (tree_decl_common): Delete decl_flag_1 and user_align fields.
25 Renumber decl_flag_* fields. Fix comments. Widen
26 decl_common_unused field.
27 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
28 fields.
29 (DECL_EXTERNAL): Likewise.
30 (DECL_BIT_FIELD): Likewise.
31 (DECL_NONADDRESSABLE_P): Likewise.
32 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
33 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
34
c2569604
ILT
352009-06-10 Ian Lance Taylor <iant@google.com>
36
37 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
38 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
39 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
40 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
41 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
42 DEF_VEC_ALLOC_FUNC_P.
43 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
44 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
45 DEF_VEC_ALLOC_FUNC_O.
46 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
47 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
48 DEF_VEC_ALLOC_FUNC_I.
49 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
50 (vec_stack_p_reserve_exact_1): Declare.
51 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
52 (vec_stack_free): Declare.
53 (VEC_stack_alloc): Define.
54 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
55 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
56 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
57 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
58 for void_p.
59 (stack_vecs): New static variable.
60 (vec_stack_p_reserve_exact_1): New function.
61 (vec_stack_o_reserve_1): New static function.
62 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
63 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
64 (vec_stack_free): New function.
65 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
66 (VEC_df_ref_stack_alloc): Define.
67 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
68 DEF_VEC_ALLOC_P_STACK.
69 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
70 (struct df_collection_rec): Change _vec fields to VEC. Remove
71 _use fields.
72 (df_free_collection_rec): Adjust for new fields.
73 (df_insn_rescan): Use new df_collection_rec fields.
74 (df_notes_rescan, df_canonize_collection_rec): Likewise.
75 (df_ref_create_structure, df_ref_record): Likewise.
76 (df_get_conditional_uses, df_get_call_refs): Likewise.
77 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
78 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
79 (df_record_exit_block_uses, df_bb_verify): Likewise.
80 (df_swap_refs): Change ref_vec parameter to VEC. Change all
81 callers.
82 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
83 Remove count parameter. Change return type to void. Change all
84 callers.
85 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
86 Remove count parameter. Change return type to void. Change all
87 callers.
88 (df_install_refs): Change old_vec parameter to VEC. Remove count
89 parameter. Change all callers.
90 (df_install_mws): Change old_vec parameter to VEC. Remove count
91 parameter. Change all callers.
92 (df_refs_verify): Change new_rec parameter to VEC. Change call
93 callers.
94 (df_mws_verify): Likewise.
95
e7aae3e8
AO
962009-06-10 Alexandre Oliva <aoliva@redhat.com>
97
98 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
99
412ac8d5
L
1002009-06-10 H.J. Lu <hongjiu.lu@intel.com>
101
102 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
103
cceb575c
AG
1042009-06-10 Anthony Green <green@moxielogic.com>
105
106 * config/moxie/crti.asm: New file.
107 * config/moxie/crtn.asm: New file.
108 * config/moxie/moxie.c: New file.
109 * config/moxie/moxie.h: New file.
110 * config/moxie/sfp-machine.h: New file.
111 * config/moxie/moxie-protos.h: New file.
112 * config/moxie/t-moxie: Created.
113 * config/moxie/t-moxie-softfp: Created.
114 * config/moxie/moxie.md: Created.
115 * config/moxie/constraints.md: Created.
116 * config.gcc: Add moxie support.
117 * doc/md.texi (Machine Constraints): Add moxie constraints.
118 * doc/contrib.texi (Contributors): Mention moxie port.
119 * doc/install.texi (Specific): Mention the moxie port.
120
bf406687
ILT
1212009-06-09 Ian Lance Taylor <iant@google.com>
122
123 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
124 compiling with C++.
125 * optabs.c (optab_table): Only use designated initializers if
126 HAVE_DESIGNATED_INITIALIZERS is defined.
127 (convert_optab_table): Likewise.
128 (init_optabs): Always call init_insn_codes if
129 HAVE_DESIGNATED_INITIALIZERS is not defined.
130
744aa42f
ILT
1312009-06-09 Ian Lance Taylor <iant@google.com>
132
133 * targhooks.c (default_builtin_vectorized_function): Change fn
134 parameter to unsigned int.
135 (default_builtin_vectorized_conversion): Change code parameter to
136 unsigned int.
137 (default_builtin_reciprocal): Change fn parameter to unsigned int.
138 * targhooks.h: Update declarations.
139 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
140 parameter to unsigned int.
141
142 * c-typeck.c (comptypes_check_enum_int): New static function.
143 (comptypes_internal): Add enum_and_int_p parameter. Change all
144 callers.
145 (comp_target_types): Add location parameter. Change all callers.
146 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
147 Change all callers.
148 (function_types_compatible_p, type_lists_compatible_p): Likewise.
149 (build_conditional_expr): Add colon_loc parameter. Change all
150 callers.
151 (convert_for_assignment): Add location parameter. Change all
152 callers.
153 * c-parser.c (c_parser_conditional_expression): Pass location of
154 colon to build_conditional_expr.
155 * c-tree.h (build_conditional_expr): Update declaration.
156
bcbe3b25
SP
1572009-06-09 Sebastian Pop <sebastian.pop@amd.com>
158
159 * graphite.c: Revert previous patch.
160
dc2a6925
SP
1612009-06-09 Sebastian Pop <sebastian.pop@amd.com>
162
163 PR bootstrap/40103
164 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
165
d81f5387
GS
1662009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
167
168 * tree-ssa-loop-prefetch.c
169 (loop_prefetch_arrays): Fixed a portability problem in printf format
170 string.
171
8056eb4f
MJ
1722009-06-09 Martin Jambor <mjambor@suse.cz>
173
174 PR tree-optimization/40351
175 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
176 to a potential artifical subaccess can be constructed.
177
bd9a3465
KK
1782009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
179
180 * config/sh/sh-protos.h (sh_optimization_options): Declare.
181 (sh_override_options): Likewise.
182 * config/sh/sh.c: Include params.h.
183 (sh_optimization_options): New.
184 (sh_override_options): Likewise.
185 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
186 (OVERRIDE_OPTIONS): Use sh_override_options.
187
8845deab
JJ
1882009-06-08 Jakub Jelinek <jakub@redhat.com>
189
190 * dwarf2out.c (emit_cfa_remember): New variable.
191 (add_fde_cfi): If emit_cfa_remember, recurse to add
192 DW_CFA_remember_state first.
193 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
194 instead just set emit_cfa_remember.
195
9ea81b0c
JH
1962009-06-08 Jan Hubicka <jh@suse.cz>
197
198 PR debug/40126
199 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
200
21ecdec5
JH
2012009-06-08 Jan Hubicka <jh@suse.cz>
202
203 PR middle-end/39834
204 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
205 for saved inline bodies.
206 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
207 for given function.
208
72e48218
AN
2092009-06-08 Adam Nemet <anemet@caviumnetworks.com>
210
211 * jump.c (returnjump_p): Handle delayed branches. Add missing
212 function comment.
213
6ce2002b
JH
2142009-06-08 Jan Hubicka <jh@suse.cz>
215
216 PR middle-end/40102
217 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
218 original node might've been modified.
219 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
220
eb9ed98a
JJ
2212009-06-08 Jakub Jelinek <jakub@redhat.com>
222
223 * tree-object-size.c (addr_object_size): Add OSI argument.
224 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
225 (compute_builtin_object_size, expr_object_size): Adjust callers.
226 (plus_stmt_object_size): Call addr_object_size instead of
227 compute_builtin_object_size.
228
db34470d
GS
2292009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
230 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
231
232 * tree-ssa-loop-prefetch.c
233 (gather_memory_references): Introduced a counter for the number of
234 memory references.
235 (anything_to_prefetch_p): Introduced a counter for the number of
236 prefetches.
237 (is_loop_prefetching_profitable): New function with a cost model
238 for prefetching.
239 (loop_prefetch_arrays): Use the new cost model to determine if
240 prefetching is profitable.
241 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
242 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
243 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
244 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
245 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
246 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
247
eb7adebc
MM
2482009-06-08 Michael Matz <matz@suse.de>
249
250 PR debug/40012
eb7adebc
MM
251 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
252 partitions use the same.
253 (expand_one_var): Deal with DECL_RTL sometimes begin set also
254 for basevars of SSA_NAMEs.
255 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
256 to not expand them twice.
257 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
258 multiple places.
259
2153915d
AO
2602009-06-08 Alexandre Oliva <aoliva@redhat.com>
261
262 * common.opt (fcompare-debug=, fcompare-debug-second): New.
263 (fdump-final-insns=, gtoggle): New.
264 * doc/invoke.texi: Document them.
265 * final.c (rest_of_clean_state): Dump final insn stream.
266 * gcc.c (invoke_as): Hook in -fcompare-debug.
267 (static_spec_functions): Add compare-debug-dump-opt,
268 compare-debug-self-opt and compare-debug-auxbase-opt.
269 (compare_debug, compare_debug_second, compare_debug_opt): New.
270 (switches_debug_check, n_switches_debug_check): New.
271 (debug_auxbase_opt, debug_check_temp_file): New.
272 (process_command): Handle -fno-compare-debug, -fcompare-debug and
273 -fcompare-debug=*.
274 (do_self_spec): Handle arguments after switches.
275 (do_spec_1): Add .gk extension to temp file basenames for compare.
276 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
277 (cc1_options): Use it instead of normal auxbase computation for
278 the second compare-debug compilation.
279 (compare_files): New.
280 (main): Set up and implement compare debug mode.
281 (compare_debug_dump_opt_spec_function): New.
282 (compare_debug_self_opt_spec_function): New.
283 (compare_debug_auxbase_opt_spec_function): New.
284 * toplev.c (process_options): Handle flag_gtoggle,
285 flag_dump_final_insns.
286 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
287 during -fcompare-debug-second compilation.
288
cdb88468
ILT
2892009-06-07 Ian Lance Taylor <iant@google.com>
290
291 * dwarf2.h (enum dwarf_location_atom): Add
292 INTERNAL_DW_OP_tls_addr.
293 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
294
295 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
296 with no default node. Change warning with %H to warning_at.
297 Don't clear warn_switch around case checking.
298 * doc/invoke.texi (Warning Options): Clarify distinction between
299 -Wswitch and -Wswitch-enum.
300
4fe8e1a2
BRF
3012009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
302
303 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
304
69952c1d
BRF
3052009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
306
307 * gbl-ctors.h: Add header guard.
308
b2ad0284
BRF
3092009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
310
311 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
312 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
313 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
314 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
315 prototypes for removed functions.
316 (expressions_equal_p): Move to ...
317 * tree-ssa-sccvn.h: ... here and ...
318 * matrix-reorg.c: ... adjust includes.
319
c3df55f9
BRF
3202009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
321
322 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
323
b5a7159f
BRF
3242009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
325
326 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
327 (finish_function): Remove erroneous whitespace.
328
95bca6b0
BRF
3292009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
330
2cd713a0
BRF
331 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
332 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
333
3342009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
335
336 * errors.c (internal_error): Commentary typo fix.
337 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
338 * tree-ssa-pre.c: Ditto.
95bca6b0 339
2cd713a0
BRF
3402009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
341
342 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
343 them is supposed to hold actual statements.
344
5bca4e80
ILT
3452009-06-06 Ian Lance Taylor <iant@google.com>
346
347 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
348 empty statements can now have attributes.
349
47ac44d6
SZ
3502009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
351
352 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
353 * config/mips/mips.md: Ditto.
354
19b905ce
NF
3552009-06-05 Nathan Froyd <froydnj@codesourcery.com>
356
357 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
358 _RELOCATABLE.
359 (__eabi_uconvert): Likewise.
360
16702e19
NF
3612009-06-05 Nathan Froyd <froydnj@codesourcery.com>
362
363 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
364 CFI_* definitions with IN_GCC.
365
a735afd1
DE
3662009-06-05 David Edelsohn <edelsohn@gnu.org>
367
368 * xcoffout.h (xcoffout_source_line): Update prototype.
369
26a347c5
KG
3702009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
371
372 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
373 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
374
9f706f23
JJ
3752009-06-05 Jakub Jelinek <jakub@redhat.com>
376
377 PR middle-end/40340
378 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
379 inlined_function_outer_scope_p blocks for artificial inlines
380 even at -g0/-g1.
381 * tree.c (tree_nonartificial_location): Rewrite using
382 block_nonartificial_location.
383
8f439681
RE
3842009-06-05 Revital Eres <eres@il.ibm.com>
385 Leehod Baruch <leehod@il.ibm.com>
386
387 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
388 (expand_expr_real_1): Remove comment.
389 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
390 Vectorize misaligned access when the target supports it.
391 (vect_supportable_dr_alignment): Check for unaligned access
392 support.
393 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
394 and remove asset.
395
b89f8e3c
JB
3962009-06-05 Julian Brown <julian@codesourcery.com>
397
398 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
399 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
400
47d1f191
RG
4012009-06-05 Richard Guenther <rguenther@suse.de>
402
403 PR bootstrap/40350
404 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
405 as possibly unused.
406
9f706f23 4072009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
408
409 * config/s390/s390.c (global_not_special_regno_p): New static inline.
410 (save_gprs): Don't tell unwinder when a global register is saved.
411 (s390_emit_epilogue): Emit needed epilogue unwind info.
412
90f06248
AO
4132009-06-05 Alexandre Oliva <aoliva@redhat.com>
414
415 * dwarf2out.c (deferred_asm_name): New.
416 (add_name_and_src_coords_attributes): Defer creation of
417 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
418 computed yet.
419 (move_linkage_attr): New.
420 (dwarf2out_finish): Revisit deferrals and emit attributes at the
421 right place.
422
c10348e5
AO
4232009-06-05 Alexandre Oliva <aoliva@redhat.com>
424
425 * tree-nested.c (finalize_nesting_tree_1): Declare the
426 frame_decl in the binding tree.
427
6c52e687
CC
4282009-06-04 Cary Coutant <ccoutant@google.com>
429
430 * basic-block.h (struct basic_block_def): Add discriminator field.
431 * dbxout.c (dbxout_source_line): Add new parameter. Change all
432 callers.
433 * debug.c (do_nothing_debug_hooks): Add additional entry.
434 (debug_nothing_int_charstar_int): New function.
435 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
436 hook.
437 (debug_nothing_int_charstar_int): New declaration.
438 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
439 discriminator value in .loc directive.
440 * final.c (last_discriminator): New variable.
441 (discriminator): New variable.
442 (final_start_function): Initialize above variables, pass current
443 discriminator to debug hook.
444 (notice_source_line): Check for discriminator change.
445 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
446 * sdbout.c (sdbout_source_line): New parameter.
447 * tree-cfg.c (struct locus_discrim_map): New structure type.
448 (discriminator_per_locus): New hash table.
449 (build_gimple_cfg): Allocate and free discriminator hash table.
450 (make_edges): Call assign_discriminator.
451 (locus_map_hash): New function.
452 (locus_map_eq): New function.
453 (next_discriminator_for_locus): New function.
454 (same_line_p): New function.
455 (assign_discriminator): New function.
456 (make_cond_expr_edges): Call assign_discriminator.
457 (make_gimple_switch_edges): Likewise.
458 (first_non_label_stmt): New function.
459 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
460 all callers.
461 * xcoffout.c (xcoffout_source_line): Add new parameter.
462
463 * configure.ac (gcc_cv_as_discriminator): New configury check for
464 gas support for discriminator.
465 * configure: Regenerate.
466 * config.in: Regenerate.
467
e07e020b
RR
4682009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
469
470 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
471 val after checking for integers.
472
72fa3605
UB
4732009-06-04 Uros Bizjak <ubizjak@gmail.com>
474
475 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
476 X64_REGPARM_MAX.
477 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
478 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
479 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
480 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
481 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
482 X64_SSE_REGPARM_MAX.
483 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
484 X64_SSE_REGPARM_MAX.
485
bdde878c
AO
4862009-06-04 Alexandre Oliva <aoliva@redhat.com>
487
488 * gcc.c (report_times_to_file): New.
489 (execute): Implement it.
490 (process_command): Support -time=.
491 * doc/invoke.texi: Document it.
492
2ce59df7
AO
4932009-06-04 Alexandre Oliva <aoliva@redhat.com>
494
495 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
496 that have value exprs.
497
78bd9046
AO
4982009-06-04 Alexandre Oliva <aoliva@redhat.com>
499
500 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
501 declarations for constants until...
502 (dw2_output_indirect_constant_1): ... this point.
503
e63d4106
RE
5042009-06-04 Richard Earnshaw <rearnsha@arm.com>
505
506 PR target/10242
507 * arm.md (arm_addsi3): Don't try to split an add with an
508 eliminable register until after reload has completed.
509
6bc7bc14
ILT
5102009-06-03 Ian Lance Taylor <iant@google.com>
511
512 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
513 * genattrtab.c (write_length_unit_log): Likewise.
514 * genchecksum.c (dosum): Likewise.
515 * gengtype.c (write_rtx_next): Likewise.
516 (finish_root_table, write_roots): Likewise.
517 * gimple.c (gimple_ops_offset_): Likewise.
518 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
519 * config/arc/arc.c (arc_attribute_table): Likewise.
520 * config/arm/arm.c (arm_attribute_table): Likewise.
521 * config/avr/avr.c (avr_attribute_table): Likewise.
522 * config/crx/crx.c (crx_attribute_table): Likewise.
523 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
524 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
525 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
526 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
527 * config/sh/sh.c (sh_attribute_table): Likewise.
528 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
529 * config/spu/spu.c (spu_attribute_table): Likewise.
530 * config/v850/v850.c (v850_attribute_table): Likewise.
531
532 * config/alpha/alpha.c (vms_attribute_table): Make static.
533 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
534 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
535 * config/mips/mips.c (mips_attribute_table): Likewise.
536
537 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
538 $(SYSTEM_H).
539 (cc1-checksum.o): Likewise.
540
19d892fd
SE
5412009-06-03 Steve Ellcey <sje@cup.hp.com>
542
543 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
544
679f3354
JJ
5452009-06-03 Jakub Jelinek <jakub@redhat.com>
546
ff35822b
JJ
547 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
548 insn if it is changing sp. Use gen_add3_insn instead of
549 conditionally gen_addsi3 and gen_adddi3.
550 (offset_below_red_zone_p): New static inline function.
551 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
552 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
553 * config/rs6000/ppc-asm.h: Include auto-host.h.
554 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
555 CFI_RESTORE): Define.
556 * config/rs6000/crtresxgpr.asm: Add unwind info.
557 * config/rs6000/crtresxfpr.asm: Likewise.
558 * config/rs6000/crtresgpr.asm: Likewise.
559 * config/rs6000/crtresfpr.asm: Likewise.
560 * config/rs6000/crtsavgpr.asm: Likewise.
561 * config/rs6000/crtsavfpr.asm: Likewise.
562
679f3354
JJ
563 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
564 0 to second argument of DWARF2_FRAME_REG_OUT macros.
565
2e94c12d
JB
5662009-06-03 Julian Brown <julian@codesourcery.com>
567
568 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
569 words or less (including TImode) in core registers.
570
3111cce0
RG
5712009-06-03 Richard Guenther <rguenther@suse.de>
572
573 PR middle-end/40328
574 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
575
5e1b50f6
AB
5762009-06-03 Andrey Belevantsev <abel@ispras.ru>
577
578 * statistics.c (statistics_counter_event): Do not record event
579 in pass dump if its number == -1.
580 (curr_statistics_hash): Add assert that we never get passes
581 with static number == -1.
582
6f11d690
RG
5832009-06-03 Richard Guenther <rguenther@suse.de>
584 Andrey Belevantsev <abel@ispras.ru>
585
586 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
587 non-BLKmode arrays addressable.
588
88961471
MK
5892009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
590
591 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
592 * config/m68k/m68k.h: ... here.
593 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
594 m68k and fido.
595
9961eb45
MJ
5962009-06-03 Martin Jambor <mjambor@suse.cz>
597
598 PR tree-optimization/40323
599 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
600 assignment.
601
2f2c62a0
RG
6022009-06-03 Richard Guenther <rguenther@suse.de>
603
604 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
605 consistently.
606
d6ced3b7
SZ
6072009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
608
609 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
610 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
611 JUMP_TABLE_DATA_P where applicable.
612 * config/sh/sh.c: Ditto.
613 * config/sh/sh.h: Ditto.
614 * config/sh/sh.md: Ditto.
615 * config/sh/symbian.c: Ditto.
616
f3afc8a7
UB
6172009-06-03 Uros Bizjak <ubizjak@gmail.com>
618
619 * config/i386/driver-i386.c (describe_cache): Optimize
620 concatenation of strings. Use snprintf instead of sprintf.
621 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
622 target when not compiling with GCC.
623
1964788a
KK
6242009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
625
626 * config/sh/sh.c: Revert last change.
627 (sh_expand_epilogue): Emit a blockage insn before the frame
628 pointer adjustment unconditionally.
629
8633c315
RS
6302009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
631
632 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
633 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
634 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
635 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
636 to COLLECT_GCC_OPTIONS.
637
781a1758
RS
6382009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
639
640 * collect2.c (target_system_root): New variable.
641 (main): Handle --sysroot=.
642 (ignore_library): Strip the sysroot from the library path.
643
dfb636dc
RS
6442009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
645
646 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
647 (collect2.o): Depend on collect2-aix.h.
648 (collect2-aix.o): New rule.
649 * collect2-aix.h: New file.
650 * collect2-aix.c: Likewise.
651 * collect2.c: Include collect2-aix.h. Don't undefine
652 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
653 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
654 Use TARGET_AIX_VERSION instead of _AIX51.
655 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
656 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
657 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
658 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
659 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
660
51136ae8
RS
6612009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
662
663 * collect2.c (ignore_library): Avoid premature post-increment
664 and null deference.
665
7f142d33
RS
6662009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
667
668 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
669 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
670 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
671 CROSS_DIRECTORY_STRUCTURE too.
672 (LINK_LIBG_SPEC): Likewise.
673 (LIB_SPEC): Add %R to sysroot paths.
674 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
675 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
676 * config/rs6000/aix51.h: As for aix43.h.
677 * config/rs6000/aix52.h: Likewise.
678 * config/rs6000/aix53.h: Likewise.
679 * config/rs6000/aix61.h: Likewise.
680 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
681 to the beginning of sysroot paths.
682
9e74b7d2
AO
6832009-06-02 Alexandre Oliva <aoliva@redhat.com>
684
685 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
686 INSN_LISTs that are out of the REG_NOTE range.
687
a9f6ecee
AO
6882009-06-02 Alexandre Oliva <aoliva@redhat.com>
689
690 * loop-unroll.c (struct iv_to_split): Add pointer to next.
691 (struct var_to_expand): Likewise.
692 (struct opt_info): Add head and tail for linked lists of the above.
693 (analyze_insn_to_expand_var): Initialize next.
694 (analyze_iv_to_split_insn): Likewise.
695 (analyze_insns_in_loop): Create linked lists.
696 (allocate_basic_variable): Simplify for use without hash table.
697 (insert_var_expansion_initialization): Likewise, make it type-safer.
698 (combine_var_copies_in_loop_exit): Likewise.
699 (apply_opt_in_copies): Walk lists rather than hash tables.
700 (release_var_copies): Simplified and inlined by hand into...
701 (free_opt_info): ... this function.
702
69596c69
RG
7032009-06-02 Richard Guenther <rguenther@suse.de>
704
705 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
706 for field decls.
707
fe8a7779
AO
7082009-06-02 Alexandre Oliva <aoliva@redhat.com>
709
710 * cfgexpand.c (gimple_expand_cfg): Discard the source location
711 only for builtins that are not overridden.
712
1bcca2c5
AO
7132009-06-02 Alexandre Oliva <aoliva@redhat.com>
714
715 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
716 label string.
717
8588f797
AO
7182009-06-02 Alexandre Oliva <aoliva@redhat.com>
719
720 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
721
45f39d78
AO
7222009-06-02 Alexandre Oliva <aoliva@redhat.com>
723
724 * combine.c (move_deaths): Compare LUIDs within the same BB only.
725
2aa7c49b
AO
7262009-06-02 Alexandre Oliva <aoliva@redhat.com>
727
728 * common.opt (fdump-unnumbered-links): New.
729 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
730 * print-rtl.c (flag_dump_unnumbered_links): New.
731 (print_rtx): Test it.
732
55b2829b
RE
7332009-06-02 Richard Earnshaw <rearnsha@arm.com>
734
735 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
736 push/pop multiple to 8-byte alignment.
e63d4106 737
6c0d7021
JJ
7382009-06-01 Jakub Jelinek <jakub@redhat.com>
739
0aa34d44
JJ
740 * config/i386/i386.c (queued_cfa_restores): New static variable.
741 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
742 functions.
743 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
744 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
745 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
746 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
747 note unconditionally.
748 (ix86_emit_restore_regs_using_mov): Likewise.
749 (ix86_emit_restore_sse_regs_using_mov): Likewise.
750 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
751 it through to ix86_emit_restore_reg_using_pop.
752 (ix86_emit_leave): Add RED_OFFSET argument. Call
753 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
754 instead of adding REG_CFA_OFFSET note unconditionally.
755 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
756 the above functions. Call ix86_add_queued_cfa_restore_notes when
757 needed.
758
759 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
760 force output of the label even for dwarf2out_do_cfi_asm.
761 (add_fde_cfi): If -g2 and above and cfi might change CFA,
762 force creation of CFI label and chain DW_CFA_set_loc jumping to it
763 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
764 caller.
765 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
766 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
767 dwarf2out_cfi_label callers.
768 * tree.h (dwarf2out_cfi_label): Adjust prototype.
769 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
770 Adjust dwarf2out_cfi_label callers.
771 * config/vax/vax.c (vax_output_function_prologue): Likewise.
772
604a6be9
JJ
773 * config/i386/i386.h (struct machine_cfa_state,
774 struct machine_function): Guard with ifndef USED_FOR_TARGET
775 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
776
df0026a7
JJ
777 PR other/40024
778 * emutls.c (__emutls_get_address): Change arr->size to mean number
779 of allocated arr->data entries instead of # of slots + 1.
780
6c0d7021
JJ
781 PR middle-end/40316
782 * recog.c (peep2_reinit_state): New function.
783 (peephole2_init_state): Use it at the end of a basic block and also
784 when seeing a RTX_FRAME_RELATED_P insn.
785
49df2fb8
SE
7862009-06-01 Steve Ellcey <sje@cup.hp.com>
787
788 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
789 fixuns_truncrfdi2): New.
790 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
791 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
792 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
793 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
794 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
795 *recip_approx): Remove.
796 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
797 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
798 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
799 move to div.md.
800 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
801 setf_exp_rf): New.
802
67165eb3
ILT
8032009-06-01 Ian Lance Taylor <iant@google.com>
804
805 * attribs.c (register_attribute): Use CONST_CAST.
806 * collect2.c (main): Use CONST_CAST2.
807 (scan_prog_file): Likewise.
808 * gcc.c (process_command, main): Likewise.
809 * toplev.c (toplev_main): Likewise.
810
811 * c-typeck.c (handle_warn_cast_qual): New static function,
812 partially broken out of build_c_cast.
813 (build_c_cast): Call handle_warn_cast_qual.
814 * doc/invoke.texi (Warning Options): Document new effect of
815 -Wcast-qual.
816
e74fe492
AH
8172009-06-01 Aldy Hernandez <aldyh@redhat.com>
818
819 * diagnostic.c (diagnostic_build_prefix): Always print columns.
820 (diagnostic_report_current_module): Print columns.
821 * common.opt (flag_show_column): Enable by default.
822
7eba2d1f
LM
8232009-06-01 Luis Machado <luisgpm@br.ibm.com>
824
825 * alias.c (find_base_term): Check for NULL term before returning.
826
ee88d9aa
MK
8272009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
828
829 Revert due to PR40320:
ee88d9aa
MK
830 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
831 * calls.c (emit_library_call_value_1): Don't force_operand for move
832 and push insns.
833
324c9b02 8342009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 835 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
836
837 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
838 to be processed as a bitfield for constructor output purposes.
839 * output.h (initializer_constant_valid_for_bitfield_p): Declare
840 new function.
841 * varasm.c (oc_local_state): New type, output_constructor
842 local state to support communication with helpers.
843 (oc_outer_state): New type, output_constructor outer state of
844 relevance in recursive calls.
845 (output_constructor_array_range): New output_constructor helper,
846 extracted code for an array range element.
847 (output_constructor_regular_field): New output_constructor helper,
848 extracted code for an element that is not a bitfield.
849 (output_constructor_bitfield): New output_constructor helper,
850 extracted code for a bitfield element. Accept an OUTER state
851 argument for recursive processing. Recurse on record or array
852 CONSTRUCTOR values, possibly past noop conversions.
62295314 853 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
854 VALUE is a valid constant-valued expression for use in a static
855 bit-field initializer.
62295314
OH
856 (output_constructor): Rework to use helpers. Accept and honor an
857 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
858 prepared for nested constructors initializing bitfields.
859 (output_constant): Feed OUTER in calls to output_constructor.
860
0980d7fe
MK
8612009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
862
863 * calls.c (emit_library_call_value_1): Don't force_operand for move
864 and push insns.
865
29661412
NC
8662009-06-01 Nick Clifton <nickc@redhat.com>
867
868 * doc/invoke.texi (IA-64 Options): Fix typo.
869
e9dbe7bb
IR
8702009-06-01 Ira Rosen <irar@il.ibm.com>
871
872 PR tree-optimization/39129
873 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
874 printed message.
875 (vect_do_peeling_for_loop_bound): Use
876 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
877 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
878 (vect_loop_versioning): Likewise.
879 (vect_create_cond_for_alias_checks): Fix indentation.
880 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
881 macros.
882 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
883 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
884 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
885 "control flow in loop".
886 (vect_estimate_min_profitable_iters): Use
887 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
888 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
889 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
890 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
891 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
892 statement belongs to a group of strided accesses with the exact code
893 check.
894 (vectorizable_load): Likewise.
895 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
896 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
897
5ac69a80
GP
8982009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
899
900 * config/freebsd-stdint.h: New file.
901 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
902 Add freebsd-stdint.h to tm_file.
903
54b2b460
RE
9042009-06-01 Richard Earnshaw <rearnsha@arm.com>
905
906 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
907 (thumb2_extendhidi2): Likewise.
908
a7ca77cf
ILT
9092009-05-31 Ian Lance Taylor <iant@google.com>
910
f3afc8a7 911 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
912
9132009-05-31 Ian Lance Taylor <iant@google.com>
914
f3afc8a7 915 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
916 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
917 (ipa-reference.o): Depend upon gt-ipa-reference.h.
918
1aec401e
JM
9192009-05-31 Jason Merrill <jason@redhat.com>
920
921 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 922 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
923 (dump_generic_node): Adjust.
924 * diagnostic.h: Declare print_call_name.
925 * gimple-pretty-print.c (dump_gimple_call): Use it.
926
ed7910bb
KK
9272009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
928
929 * config/sh/sh.md (ashldi3_std): New define_expand.
930 (ashldi3): Use it.
931
47ea8d4e
KK
9322009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
933
934 PR target/40313
935 * config/sh/sh.c: Include debug.h.
936 (sh_expand_epilogue): Emit a blockage insn before the frame
937 pointer adjustment also when dwarf2out_do_frame returns true.
938
405e8b49
RE
9392009-05-31 Richard Earnshaw <rearnsha@arm.com>
940
941 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
942 (thumb2_extendqidi2): New pattern.
943
71ece343
IR
9442009-05-31 Ira Rosen <irar@il.ibm.com>
945
946 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
947 mark phis for renaming.
948 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
949 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
950 Call mark_sym_for_renaming.
951 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
952 * tree-vect-loop.c (vect_transform_loop): Remove
953 vect_memsyms_to_rename initialization and a call to
954 mark_set_for_renaming.
71ece343 955
b3041944
JJ
9562009-05-31 Jakub Jelinek <jakub@redhat.com>
957
958 PR middle-end/40304
959 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
960 frame related even if !set_cfa && style < 0.
961
a1bda0d7
KT
9622009-05-30 Kai Tietz <kai.tietz@onevision.com>
963
964 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
965 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
966 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
967 defining _WIN32 but not __CYGWIN__.
a1bda0d7 968
acd26225
KG
9692009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
970
971 * configure.ac: Add MPC support.
972
973 * config.in, configure: Regenerate.
974
cd9c1ca8
RH
9752009-05-29 Richard Henderson <rth@redhat.com>
976
977 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
978 NOTE_INSN_BASIC_BLOCK.
979 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
980 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
981 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
982 to be deleted.
983 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
984 add in_use field.
985 (add_cfi): Disable check redefining cfa away from drap.
986 (lookup_cfa_1): Add remember argument; handle remember/restore.
987 (lookup_cfa): Pass remember argument.
988 (cfa_remember): New.
989 (compute_barrier_args_size_1): Remove sibcall check.
990 (dwarf2out_frame_debug_def_cfa): New.
991 (dwarf2out_frame_debug_adjust_cfa): New.
992 (dwarf2out_frame_debug_cfa_offset): New.
993 (dwarf2out_frame_debug_cfa_register): New.
994 (dwarf2out_frame_debug_cfa_restore): New.
995 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
996 (dwarf2out_begin_epilogue): New.
997 (dwarf2out_frame_debug_restore_state): New.
998 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
999 DW_CFA_restore_state.
1000 (output_cfi_directive): Likewise.
1001 (convert_cfa_to_fb_loc_list): Likewise.
1002 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
1003 * dwarf2out.h: Update.
1004 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
1005 (copy_insn_1): Early out for null.
1006 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
1007 and dwarf2out_frame_debug_restore_state.
1008 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
1009 (prologue_insn_hash, epilogue_insn_hash): New.
1010 (free_after_compilation): Adjust freeing accordingly.
1011 (record_insns): Create hash table if needed; push insns into
1012 hash instead of array.
1013 (maybe_copy_epilogue_insn): New.
1014 (contains): Search hash table instead of array.
1015 (sibcall_epilogue_contains): Remove.
1016 (thread_prologue_and_epilogue_insns): Split eh_return insns
1017 and mark them as epilogues.
1018 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
1019 scanning in terms of basic blocks.
1020 * insn-notes.def (CFA_RESTORE_STATE): New.
1021 * jump.c (returnjump_p_1): Accept EH_RETURN.
1022 (eh_returnjump_p_1, eh_returnjump_p): New.
1023 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
1024 CFA_REGISTER, CFA_RESTORE): New.
1025 * rtl.def (EH_RETURN): New.
1026 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
1027
1028 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
1029 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
1030
1031 * config/i386/i386.c (gen_push): Update cfa state.
1032 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
1033 add a CFA_ADJUST_CFA note.
1034 (ix86_dwarf_handle_frame_unspec): Remove.
1035 (ix86_expand_prologue): Update cfa state.
1036 (ix86_emit_restore_reg_using_pop): New.
1037 (ix86_emit_restore_regs_using_pop): New.
1038 (ix86_emit_leave): New.
1039 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
1040 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
1041 * config/i386/i386.h (struct machine_cfa_state): New.
1042 (ix86_cfa_state): New.
1043 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
1044 (eh_return_internal): Merge from eh_return_<mode>,
1045 use eh_return rtx, split w/ epilogue.
1046
72b5577d
ILT
10472009-05-29 Ian Lance Taylor <iant@google.com>
1048
1049 * builtins.c (validate_gimple_arglist): Don't use va_arg with
1050 enum type.
1051 * calls.c (emit_library_call_value_1): Likewise.
1052
1053 * c-typeck.c (c_build_va_arg): New function.
1054 * c-tree.h (c_build_va_arg): Declare.
1055 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
1056 instead of build_va_arg.
1057
7a2faca1
EB
10582009-05-29 Eric Botcazou <ebotcazou@adacore.com>
1059
1060 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
1061 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
1062 (ptr_difference_cost): Use affine combinations to compute it.
1063 (difference_cost): Likewise.
1064 (get_computation_cost_at): Compute more accurate cost for addresses
1065 if the ratio is a multiplier allowed in addresses.
1066 For non-addresses, consider that an additional offset or symbol is
1067 added only once.
1068
725fd454
JJ
10692009-05-29 Jakub Jelinek <jakub@redhat.com>
1070
a0987204
JJ
1071 * config/i386/i386.c (ix86_decompose_address): Avoid useless
1072 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
1073
725fd454
JJ
1074 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
1075 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
1076 (prefix_rex): For UNIT_MMX don't imply the prefix by default
1077 if MODE_DI.
1078 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
1079 to 1 for TYPE_SSE{IADD1,CVT1}.
1080 (prefix_vex_imm8): Removed.
1081 (length_vex): Only pass 1 as second argument to
1082 ix86_attr_length_vex_default if prefix_extra is 0.
1083 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
1084 (length): For prefix vex computation use length_immediate
1085 attribute instead of prefix_vex_imm8.
1086 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
1087 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
1088 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
1089 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
1090 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
1091 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
1092 a space in between the operands.
1093 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
1094 if one operand is 0xff and the other one si, di, bp or sp.
1095 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
1096 other one si, di, bp or sp.
1097 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
1098 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
1099 type and mode attributes.
1100 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
1101 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
1102 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
1103 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
1104 prefix_data16 attribute iff MODE_DF.
1105 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
1106 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
1107 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
1108 constm128_operand in length_immediate computation.
1109 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
1110 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
1111 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
1112 length_immediate attribute to 1.
1113 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
1114 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
1115 for certain alternatives.
1116 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
1117 prefix_data16 attribute if MODE_V1DF.
1118 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
1119 length_immediate to 1.
1120 (set_got_rex64, set_rip_rex64): Remove length attribute, set
1121 length_address to 4, set mode attribute to MODE_DI.
1122 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
1123 (fxam<mode>2_i387): Set length attribute to 4.
1124 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
1125 *prefetch_3dnow_rex): Override length_address attribute.
1126 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
1127 attributes.
1128 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
1129 (constm128_operand): Removed.
1130 * config/i386/i386.c (memory_address_length): For
1131 disp && !index && !base in 64-bit mode account for SIB byte if
1132 print_operand_address can't optimize disp32 into disp32(%rip)
1133 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
1134 for fs: or gs: segment.
1135 (ix86_attr_length_immediate_default): When checking if shortform
1136 is possible, truncate immediate to the length of the non-shortened
1137 immediate.
1138 (ix86_attr_length_address_default): Ignore MEM_P operands
1139 with X constraint.
1140 (ix86_attr_length_vex_default): Only check for DImode on
1141 GENERAL_REG_P operands.
1142 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
1143 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
1144 (sse_cvttps2pi): Clear prefix_rep attribute.
1145 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
1146 attribute.
1147 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
1148 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
1149 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
1150 iff operand 2 is const_int_operand.
1151 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
1152 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
1153 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
1154 instead of vex.
1155 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
1156 prefix_data16.
1157 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
1158 prefix_data16 attribute for movlpd and movhpd instructions.
1159 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
1160 length_immediate for shufpd instruction.
1161 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
1162 (avx_cmpp<avxmodesuffixf2c><mode>3,
1163 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
1164 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
1165 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 1166 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
1167 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
1168 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
1169 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
1170 prefix_data16 attribute for the first alternative to 1.
1171 (*avx_loadlps): Override length_immediate for the first alternative.
1172 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
1173 attributes for second alternative.
1174 (*vec_concatv2sf_sse4_1): Override length_immediate and
1175 prefix_data16 attributes for second alternative.
1176 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
1177 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
1178 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
1179 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
1180 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
1181 prefix_data16 and length_immediate to 1.
1182 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
1183 to 1.
1184 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 1185 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
1186 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
1187 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
1188 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
1189 *sse4_1_pextrd): Set length_immediate to 1.
1190 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
1191 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
1192 to 1.
1193 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
1194 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
1195 length_immediate to 1 for second alternative.
1196 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
1197 prefix_extra and length_immediate attributes for the first
1198 alternative.
1199 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
1200 first alternative.
1201 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
1202 to 1 for the first and third alternative.
1203 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
1204 alternative.
1205 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
1206 attribute.
1207 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
1208 attribute to 0.
1209 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
1210 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
1211 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
1212 *avx_psign<mode>3): Set prefix_extra attribute to 1.
1213 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
1214 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
1215 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
1216 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 1217 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
1218 (ssse3_palignrti): Override length_immediate to 1.
1219 (ssse3_palignrdi): Override length_immediate to 1, override
1220 prefix_rex attribute.
f3afc8a7 1221 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
1222 (sse4a_extrqi): Override length_immediate to 2.
1223 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
1224 (sse4a_insertq): Override prefix_data16 to 0.
1225 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
1226 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
1227 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
1228 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
1229 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
1230 and length_immediate to 1.
1231 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
1232 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
1233 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
1234 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
1235 and length_immediate to 1.
1236 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
1237 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
1238 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
1239 avx_ptest256): Override prefix_extra to 1.
1240 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
1241 Override prefix_data16 and length_immediate to 1.
1242 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
1243 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
1244 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
1245 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
1246 prefix_data16 to 0 and prefix_extra to 2.
1247 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
1248 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
1249 attribute.
1250 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
1251 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
1252 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
1253 and prefix_extra to 2.
1254 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
1255 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
1256 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
1257 avx_vpermilvar<mode>3,
1258 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
1259 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
1260 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
1261 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
1262 Override prefix_extra to 1.
1263 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
1264 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
1265 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
1266 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
1267 prefix_extra and length_immediate to 1.
1268 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
1269 modrm to 0.
1270 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
1271 to 1 for the first alternative.
1272 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
1273 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
1274 cases.
1275 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
1276 *movv2sf_internal_avx, *movv2sf_internal): Override
1277 prefix_rep attribute for certain alternatives.
1278 (*mov<mode>_internal): Override prefix_rep or prefix_data16
1279 attributes for certain alternatives.
1280 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
1281 attributes for certain alternatives.
1282 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
1283 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
1284 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
1285 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
1286 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
1287 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
1288 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
1289 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
1290 length_immediate to 1 if operand 2 is const_int_operand.
1291 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 1292 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
1293 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
1294 using old 3DNOW insn rather than SSE/3DNOW_A.
1295 (mmx_emms, mmx_femms): Clear modrm attribute.
1296
0674b9d0
MJ
12972009-05-29 Martin Jambor <mjambor@suse.cz>
1298
1299 * tree-sra.c: New implementation of SRA.
1300
1301 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
1302 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
1303 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
1304 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
1305 (SRA_MAX_STRUCTURE_COUNT): Removed.
1306 (SRA_FIELD_STRUCTURE_RATIO): Removed.
1307 * doc/invoke.texi (sra-max-structure-size): Removed.
1308 (sra-field-structure-ratio): Removed.
1309
616f21df
JJ
13102009-05-29 Jakub Jelinek <jakub@redhat.com>
1311
1312 PR middle-end/40291
1313 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
1314 before expansion.
1315
da7ba240
AB
13162009-05-29 Andrey Belevantsev <abel@ispras.ru>
1317
1318 PR rtl-optimization/40101
1319 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
1320 seqno. Adjust comment.
1321 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
1322 inserting bookkeeping before a jump, the jump is not scheduled.
1323 When no positive seqno found, provide a value. Add comment.
1324
71dcd609
RG
13252009-05-29 Richard Guenther <rguenther@suse.de>
1326
1327 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
1328 short-cutting on the first component.
1329
a900ae6b
JJ
13302009-05-29 Jakub Jelinek <jakub@redhat.com>
1331
1332 PR middle-end/39958
1333 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
1334 for trees other than decls/types.
1335
821bb7f8
RG
13362009-05-29 Richard Guenther <rguenther@suse.de>
1337
1338 * tree-ssa-operands.c (get_expr_operands): Do not handle
1339 INDIRECT_REFs in the handled-component case. Remove
1340 unused get_ref_base_and_extent case.
1341 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
1342 tree_low_cst and host_integerp where possible.
1343 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
1344 codes for equivalence.
1345 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
1346
e997fb9c
DB
13472009-05-29 David Billinghurst <billingd@gcc.gnu.org>
1348
1349 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
1350 to tmake_file for i[34567]86-*-cygwin*.
1351
58195b74
JJ
13522009-05-29 Jakub Jelinek <jakub@redhat.com>
1353
1354 PR target/40017
1355 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
1356 (altivec_categorize_keyword, init_vector_keywords,
1357 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
1358 similar to bool.
1359
055df276
KT
13602009-05-29 Kai Tietz <kai.tietz@onevision.com>
1361
1362 * tree.c (handle_dll_attribute): Check if node is
1363 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
1364
f5939ef3
RE
13652009-05-29 Richard Earnshaw <rearnsha@arm.com>
1366
1367 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
1368 component.
1369 (thumb2_zero_extendqidi2): Likewise.
1370
c185de40
KK
13712009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
1372
1373 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
1374 instead of gen_movrt.
1375 * config/sh/sh.md (movrt): Remove.
1376
bf3c6caf
SE
13772009-05-28 Steve Ellcey <sje@cup.hp.com>
1378
f3afc8a7 1379 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
1380 Add -msdata, -mfused-madd, -mno-inline-float-divide,
1381 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
1382 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
1383 -msched-prefer-non-control-spec-insns,
1384 -msched-stop-bits-after-every-cycle,
1385 -msched-count-spec-in-critical-path,
1386 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 1387 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
1388 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
1389 and -msched-spec-verbose.
1390
8a66e987
JM
13912009-05-28 Joseph Myers <joseph@codesourcery.com>
1392
f3afc8a7 1393 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
1394 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
1395 error if used.
1396 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
1397
b45d2719
RG
13982009-05-28 Richard Guenther <rguenther@suse.de>
1399
1400 * tree-ssa-alias.c (ao_ref_init): New function.
1401 (ao_ref_base): Likewise.
1402 (ao_ref_base_alias_set): Likewise.
1403 (ao_ref_alias_set): Likewise.
1404 (refs_may_alias_p_1): Change signature.
1405 (refs_may_alias_p): Adjust.
1406 (refs_anti_dependent_p): Likewise.
1407 (refs_output_dependent_p): Likewise.
1408 (call_may_clobber_ref_p_1): Change signature.
1409 (call_may_clobber_ref_p): Adjust.
1410 (stmt_may_clobber_ref_p_1): New function split out from ...
1411 (stmt_may_clobber_ref_p): ... here.
1412 (maybe_skip_until): Adjust signature.
1413 (get_continuation_for_phi): Likewise.
1414 (walk_non_aliased_vuses): Likewise.
1415 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
1416 (ao_ref_init): Declare.
1417 (ao_ref_base): Likewise.
1418 (ao_ref_alias_set): Likewise.
1419 (stmt_may_clobber_ref_p_1): Likewise.
1420 (walk_non_aliased_vuses): Adjust.
1421 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
1422 (get_ref_from_reference_ops): remove.
1423 (vn_reference_lookup_2): Adjust signature.
1424 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 1425 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
1426 (vn_reference_lookup): Adjust.
1427 (vn_reference_insert): Likewise.
1428 (vn_reference_insert_pieces): Adjust signature.
1429 (visit_reference_op_call): Adjust.
1430 * tree-ssa-pre.c (get_expr_type): Simplify.
1431 (phi_translate_1): Adjust.
1432 (compute_avail): Likewise.
1433 (translate_vuse_through_block): Do not re-build trees.
1434 (value_dies_in_block_x): Likewise.
1435 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
1436 fields.
1437 (vn_reference_lookup_pieces): Adjust declaration.
1438 (vn_reference_insert_pieces): Likewise.
1439
554223b6
BK
14402009-05-28 Benjamin Kosnik <bkoz@redhat.com>
1441
1442 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
1443 with checking disabled.
1444
233215fe
DK
14452009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
1446
1447 PR target/37216
1448
1449 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
1450 macro definition for support of three-operand format aligned
1451 .comm directive in assembler on cygwin/pe/mingw target OS.
1452 * configure: Regenerate.
1453 * config.h: Regenerate.
1454
1455 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
1456 aligned form of .comm directive if -mpe-aligned-commons is in effect.
1457 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
1458
1459 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
1460 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
1461
24adb18f
IR
14622009-05-28 Ira Rosen <irar@il.ibm.com>
1463
1464 PR tree-optimization/40254
1465 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
1466 in analysis of basic blocks.
1467
2c5bfdf7
AN
14682009-05-28 Adam Nemet <anemet@caviumnetworks.com>
1469
1470 PR middle-end/33699
f3afc8a7 1471 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
1472 * target-def.h (TARGET_CONST_ANCHOR): New macro.
1473 (TARGET_INITIALIZER): Use it.
1474 * cse.c (CHEAPER): Move it up to the other macros.
1475 (insert): Rename this ...
1476 (insert_with_costs): ... to this. Add cost parameters. Update
1477 function comment.
1478 (insert): New function. Call insert_with_costs.
1479 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
1480 find_reg_offset_for_const, try_const_anchors): New functions.
1481 (cse_insn): Call try_const_anchors. Adjust cost of src_related
1482 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 1483 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
1484 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
1485
9e6aced0
AO
14862009-05-28 Alexandre Oliva <aoliva@redhat.com>
1487
1488 * tree-inline.c (remap_decls): Enable nonlocalized variables
1489 when not optimizing.
1490
89fbbe4e
AO
14912009-05-28 Alexandre Oliva <aoliva@redhat.com>
1492
1493 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
1494 Simplify other tests involving optimize.
1495
e455776a
TT
14962009-05-27 Tom Tromey <tromey@redhat.com>
1497
1498 * unwind-dw2.c (_Unwind_DebugHook): New function.
1499 (uw_install_context): Call _Unwind_DebugHook.
1500
cea32bca
TT
15012009-05-27 Tom Tromey <tromey@redhat.com>
1502
1503 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
1504
c607156f
ILT
15052009-05-27 Ian Lance Taylor <iant@google.com>
1506
1507 * Makefile.in (LINKER, LINKER_FLAGS): Define.
1508 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
1509 (ALL_LINKERFLAGS): Define.
1510 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
1511 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1512 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
1513 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1514 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
1515 $(LINKER_FOR_BUILD).
1516 (build/gcov-iov$(build_exeext)): Likewise.
1517
ec0a1343
JB
15182009-05-27 Julian Brown <julian@codesourcery.com>
1519
1520 * gcse.c (target.h): Include.
1521 (can_assign_to_reg_without_clobbers_p): Check that the target allows
1522 copy of argument to a pseudo register.
1523
ac80ba07
DN
15242009-05-27 Diego Novillo <dnovillo@google.com>
1525
1526 * tree-ssa-live.c (dump_scope_block): Document arguments.
1527 (dump_scope_blocks): Document.
1528 (debug_scope_blocks): New.
1529 * tree-flow.h (debug_scope_blocks): Declare.
1530
d1803a17
DC
15312009-05-21 Denis Chertykov <denisc@overta.ru>
1532
f3afc8a7 1533 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 1534
51fb7760 15352009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
1536
1537 * expr.c (target_align): New function. Alignment the TARGET of an
1538 assignment may be assume to have.
1539 (highest_pow2_factor_for_target): Use it instead of relying on
1540 immediate tree attributes of TARGET, not necessarily honored when
1541 intermediate bitfields are involved.
1542
634fa334
L
15432009-05-27 H.J. Lu <hongjiu.lu@intel.com>
1544
1545 PR target/40266
1546 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1547 AVX, SSE4, AES, PCLMUL and POPCNT.
1548
65332587
DN
15492009-05-27 Diego Novillo <dnovillo@google.com>
1550
1551 * tree-pretty-print.c (dump_location): New.
1552 (dump_generic_node): Call it.
1553 Factor code to handle BLOCK nodes ...
1554 (dump_block_node): ... here.
1555
3e17e31d
RAE
15562009-05-27 Rafael Avila de Espindola <espindola@google.com>
1557
f3afc8a7
UB
1558 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
1559 with it.
3e17e31d
RAE
1560 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
1561 included.
1562 * gcc-plugin.h: Include config.h and system.h.
1563 (IN_GCC): Define if not defined.
1564
5e370570
HPN
15652009-05-27 Hans-Peter Nilsson <hp@axis.com>
1566
1567 PR middle-end/40249
1568 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
1569 with -fno-inline.
1570
d000f0d9
SZ
15712009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
1572
1573 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
1574 applicable.
1575 * config/m32r/m32r.h: Ditto.
1576 * config/m32r/m32r.md: Ditto.
1577 * config/m32r/predicates.md: Ditto.
1578
82f331ff
AO
15792009-05-27 Alexandre Oliva <aoliva@redhat.com>
1580
1581 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
1582
ae2392a9
BS
15832009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
1584
1585 * doc/plugins.texi
1586 (Loading plugins): typo.
1587 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
1588 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1589 (Interacting with the GCC Garbage Collector): Added new section.
1590 (Giving information about a plugin): Added new section for
1591 PLUGIN_INFO.
ae2392a9
BS
1592 * ggc.h (ggc_register_root_tab): Added declaration.
1593 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
1594 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
1595 (register_callback): Improved comment in declaration.
f3afc8a7
UB
1596 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
1597 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
1598 (ggc_register_root_tab) Added new routine.
1599 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
1600 PLUGIN_GGC_MARKING event.
1601 * ggc-zone.c: Include plugin.h.
1602 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1603 * ggc-page.c: Include plugin.h.
1604 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1605 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
1606 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
1607 (register_callback): check lack of callbacks for
1608 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
1609 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
1610 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
1611 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1612 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
1613 dependency on plugin.h.
1614 (plugin.o): Added dependency on ggc.h...
1615
f0cfd3a8
RG
16162009-05-26 Richard Guenther <rguenther@suse.de>
1617
1618 PR middle-end/40248
1619 Revert
1620 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1621 with mismatched comparison modes.
1622
1623 * expr.c (expand_expr_real_1): Expand the operand of a
1624 VIEW_CONVERT_EXPR in its natural mode.
1625
7980bfb8
ILT
16262009-05-26 Ian Lance Taylor <iant@google.com>
1627
1628 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
1629 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
1630 (ALL_COMPILERFLAGS): Define.
1631 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
1632 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1633 (collect2$(exeext), collect2.o): Likewise.
1634 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
1635 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
1636 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
1637 (libbackend.o, intl.o, cppdefault.o): Likewise.
1638 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1639 (build/%.o): Use $(COMPILER_FOR_BUILD).
1640 (build/gen%$(build_exeext)): Likewise.
1641 (build/gcov-iov$(build_exeext)): LIkewise.
1642 * config/t-darwin (darwin.o): Use $(COMPILER).
1643 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
1644 * config/t-sol2 (sol2-c.o): Likewise.
1645 (sol2.o): Likewise.
1646 * config/t-vxworks (vxworks.o): Likewise.
1647 * config/x-darwin (host-darwin.o): Likewise.
1648 * config/x-hpux (host-hpux.o): Likewise.
1649 * config/x-linux (host-linux.o): Likewise.
1650 * config/x-solaris (host-solaris.o): Likewise.
1651 * config/alpha/x-alpha (driver-alpha.o): Likewise.
1652 * config/arm/t-arm (arm-c.o): Likewise.
1653 * config/arm/t-pe (pe.o): Likewise.
1654 * config/arm/t-wince-pe (pe.o): Likewise.
1655 * config/i386/t-cygming (winnt.o): Likewise.
1656 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
1657 * config/i386/t-cygwin (cygwin1.o): Likewise.
1658 (cygwin2.o): Likewise.
1659 * config/i386/t-i386 (i386-c.o): Likewise.
1660 * config/i386/t-interix (winnt.o): Likewise.
1661 * config/i386/t-netware (netware.o): Likewise.
1662 * config/i386/t-nwld (nwld.o): Likewise.
1663 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
1664 * config/i386/x-i386 (driver-i386.o): Likewise.
1665 * config/i386/x-cygwin (host-cygwin.o): Likewise.
1666 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
1667 * config/ia64/t-ia64 (ia64-c.o): Likewise.
1668 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
1669 * config/mips/x-native (driver-native.o): Likewise.
1670 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
1671 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
1672 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
1673 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
1674 * config/score/t-score-elf (score7.o): Likewise.
1675 (score3.o): Likewise.
1676 * config/sh/t-sh (sh-c.o): Likewise.
1677 * config/sh/t-symbian (sh-c.o): Likewise.
1678 (symbian.o): Likewise.
1679 * config/spu/t-spu-elf (spu-c.o): Likewise.
1680 * config/v850/t-v850 (v850-c.o): Likewise.
1681 * config/v850/t-v850e (v850-c.o): Likewise.
1682
23977d3c
RG
16832009-05-26 Richard Guenther <rguenther@suse.de>
1684
1685 PR tree-optimization/40122
1686 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
1687 VECTOR_CSTs if possible.
1688 (fold_gimple_assign): Likewise.
1689
3d62b895
RG
16902009-05-26 Richard Guenther <rguenther@suse.de>
1691
1692 PR middle-end/40252
1693 * fold-const.c (fold_binary): Use the correct types for building
1694 rotates.
1695
12346147
RG
16962009-05-26 Richard Guenther <rguenther@suse.de>
1697
1698 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
1699 redundant calls to merge_alias_info.
1700 (bump_vector_ptr): Likewise.
1701 * tree-ssa-copy.c (merge_alias_info): Remove.
1702 (replace_exp_1): Remove call to merge_alias_info.
1703 (propagate_tree_value): Likewise.
1704 (fini_copy_prop): Propagate points-to info.
1705 * tree-flow.h (merge_alias_info): Remove.
1706
807d5e6f
HS
17072009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1708
1709 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
1710
85057983
JH
17112009-05-25 Jan Hubicka <jh@suse.cz>
1712
1713 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1714 * cgraph.h (struct inline_summary): New filed self_wize,
1715 size_inlining_benefit, self_time and time_inlining_benefit.
1716 (struct cgraph_global_info): Replace insns by time ans size fields.
1717 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1718 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1719 (ipcp_update_callgraph): Do not touch function bodies.
1720 * ipa-inline.c: Include except.h
1721 (MAX_TIME): New constant.
1722 (overall_insns): Remove.
1723 (leaf_node_p): New.
1724 (overall_size, max_benefit): New static variables.
1725 (cgraph_estimate_time_after_inlining): New function.
1726 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1727 (cgraph_clone_inlined_nodes): Update size.
1728 (cgraph_mark_inline_edge): Update size.
1729 (cgraph_estimate_growth): Use size info.
1730 (cgraph_check_inline_limits): Check size.
1731 (cgraph_default_inline_p): Likewise.
1732 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1733 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
1734 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
1735 and times.
85057983
JH
1736 (cgraph_decide_inlining): Likewise.
1737 (cgraph_decide_inlining_incrementally): Likewise; honor
1738 PARAM_EARLY_INLINING_INSNS.
1739 (likely_eliminated_by_inlining_p): New predicate.
1740 (estimate_function_body_sizes): New function.
1741 (compute_inline_parameters): Use it.
1742 * except.c (must_not_throw_labels): New function.
1743 * except.h (must_not_throw_labels): Declare.
1744 * tree-inline.c (init_inline_once): Kill inlining_weigths
1745 * tree-ssa-structalias.c: Avoid uninitialized warning.
1746 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1747 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1748 (PARAM_INLINE_CALL_COST): Remove.
1749 (PARAM_EARLY_INLINING_INSNS): New.
1750
01df5c8a
RG
17512009-05-25 Richard Guenther <rguenther@suse.de>
1752
1753 PR tree-optimization/36327
1754 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 1755 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
1756 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1757 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
1758 for union COMPONENT_REFs.
1759 (vn_reference_lookup_3): New callback. Lookup from memset
1760 and CONSTRUCTOR assignment, translate through struct copies.
1761 (vn_reference_lookup_pieces): Make sure to not free the
1762 passed operands array. Adjust walk_non_aliased_vuses call.
1763 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
1764 make sure we do not leak memory.
1765
6b8ed145
RG
17662009-05-25 Richard Guenther <rguenther@suse.de>
1767
1768 * tree-ssa-alias.h (dump_points_to_solution): Declare.
1769 * tree-inline.c (expand_call_inline): Reset the escaped and
1770 callused solutions.
1771 * tree-ssa-structalias.c (pass_build_ealias): New.
1772 * tree-pass.h (pass_build_ealias): Declare.
1773 * passes.c (init_optimization_passes): Add PTA during
1774 early optimizations.
1775 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
1776 and CALLUSED solutions.
1777 (dump_points_to_solution): New function, split out from ...
1778 (dump_points_to_info_for): ... here.
1779 * tree-parloops.c (parallelize_loops): Reset the escaped and
1780 callused solutions.
1781
0adcf178
RO
17822009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1783
1784 PR bootstrap/40027
1785 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
1786 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
1787
12aaf609
IR
17882009-05-25 Ira Rosen <irar@il.ibm.com>
1789
1790 PR tree-optimization/40238
1791 * tree-vect-stmts.c (vect_init_vector): Insert initialization
1792 statements after basic block's labels.
1793 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
1794 to free the allocated memory.
1795
7f9a14e3
KK
17962009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
1797
1798 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
1799 return address with a USE.
1800
b842d478
RG
18012009-05-24 Richard Guenther <rguenther@suse.de>
1802
1803 PR middle-end/40233
1804 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
1805 array type from the main variant of the inner type.
1806
8db7b33f
JBG
18072009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1808
1809 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
1810 definition to bool (from int) to un-break build.
1811 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
1812
cff4e50d
PB
18132009-05-24 Paolo Bonzini <bonzini@gnu.org>
1814
1815 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
1816 discard_stmt_changes): Delete.
1817 * tree-ssa-operands.c (scb_stack): Delete.
1818 (init_ssa_operands): Do not initialize it.
1819 (fini_ssa_operands): Do not free it.
1820 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
1821
1822 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
1823 update_stmt, remove the others. Fix comments.
1824 * tree-dfa.c (optimize_stack_restore): Likewise.
1825 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
1826 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
1827 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1828 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
1829 Likewise.
1830 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1831 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
1832 (dom_opt_finalize_block): Likewise, adjusting access to
1833 stmts_to_rescan.
cff4e50d
PB
1834 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
1835 (stmts_to_rescan): Change item type to gimple.
1836 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
1837
a70d6342
IR
18382009-05-24 Ira Rosen <irar@il.ibm.com>
1839
1840 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
1841 * tree-pass.h (pass_slp_vectorize): New pass.
1842 * params.h (SLP_MAX_INSNS_IN_BB): Define.
1843 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
1844 * tree-vectorizer.c (timevar.h): Include.
1845 (user_vect_verbosity_level): Declare.
1846 (vect_location): Fix comment.
1847 (vect_set_verbosity_level): Update user_vect_verbosity_level
1848 instead of vect_verbosity_level.
1849 (vect_set_dump_settings): Add an argument. Ignore user defined
1850 verbosity if dump flags require higher level of verbosity. Print to
1851 stderr only for loop vectorization.
1852 (vectorize_loops): Update call to vect_set_dump_settings.
1853 (execute_vect_slp): New function.
1854 (gate_vect_slp): Likewise.
1855 (struct gimple_opt_pass pass_slp_vectorize): New.
1856 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
1857 access its members.
1858 (vec_info_for_bb): New function.
1859 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
1860 (VECTORIZATION_ENABLED): New macro.
1861 (SLP_ENABLED, SLP_DISABLED): Likewise.
1862 (vect_is_simple_use): Add bb_vec_info argument.
1863 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
1864 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
1865 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
1866 vect_schedule_slp, vect_analyze_slp): Likewise.
1867 (vect_analyze_stmt): Add slp_tree argument.
1868 (find_bb_location): Declare.
1869 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1870 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
1871 (vect_analyze_loop_operations, vect_analyze_loop,
1872 get_initial_def_for_induction, vect_create_epilog_for_reduction,
1873 vect_finalize_reduction, vectorizable_reduction,
1874 vectorizable_live_operation, vect_transform_loop): Likewise.
1875 * tree-data-ref.c (dr_analyze_innermost): Update comment,
1876 skip evolution analysis if analyzing a basic block.
1877 (dr_analyze_indices): Likewise.
1878 (initialize_data_dependence_relation): Skip the test whether the
1879 object is invariant for basic blocks.
1880 (compute_all_dependences): Skip dependence analysis for data
1881 references in basic blocks.
1882 (find_data_references_in_stmt): Don't fail in case of invariant
1883 access in basic block.
1884 (find_data_references_in_bb): New function.
1885 (find_data_references_in_loop): Move code to
782dc37a 1886 find_data_references_in_bb and add a call to it.
a70d6342
IR
1887 (compute_data_dependences_for_bb): New function.
1888 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
1889 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
1890 that STEP is 0.
1891 (vect_analyze_data_ref_dependence): Check for interleaving in case of
1892 unknown dependence in basic block and fail in case of dependence in
1893 basic block.
1894 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
1895 dependence instances from either loop or basic block vectorization
1896 info.
1897 (vect_compute_data_ref_alignment): Check if it is loop vectorization
1898 before calling nested_in_vect_loop_p.
1899 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
1900 dependence instances from either loop or basic block vectorization
1901 info.
1902 (vect_verify_datarefs_alignment): Likewise.
1903 (vect_enhance_data_refs_alignment): Adjust function calls.
1904 (vect_analyze_data_refs_alignment): Likewise.
1905 (vect_analyze_group_access): Fix printing. Skip different checks if
1906 DR_STEP is 0. Keep strided stores either in loop or basic block
1907 vectorization data structure. Fix indentation.
1908 (vect_analyze_data_ref_access): Fix comments, allow zero step in
1909 basic blocks.
1910 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
1911 dependence instances from either loop or basic block vectorization
1912 info.
1913 (vect_analyze_data_refs): Update comment. Call
1914 compute_data_dependences_for_bb to analyze basic blocks.
1915 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
1916 case of loop vectorization. In case of basic block vectorization use
782dc37a 1917 data-ref itself as a base.
a70d6342
IR
1918 (vect_create_data_ref_ptr): In case of basic block vectorization:
1919 don't advance the pointer, add new statements before the current
1920 statement. Adjust function calls.
1921 (vect_supportable_dr_alignment): Support only aligned accesses in
1922 basic block vectorization.
1923 * common.opt (ftree-slp-vectorize): New flag.
1924 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
1925 (vect_pattern_recog_1): Likewise.
1926 * tree-vect-stmts.c (process_use): Likewise.
1927 (vect_init_vector): Add new statements in the beginning of the basic
1928 block in case of basic block SLP.
1929 (vect_get_vec_def_for_operand): Adjust function calls.
1930 (vect_finish_stmt_generation): Likewise.
1931 (vectorizable_call): Add assert that it is loop vectorization, adjust
1932 function calls.
1933 (vectorizable_conversion, vectorizable_assignment): Likewise.
1934 (vectorizable_operation): In case of basic block SLP, take
1935 vectorization factor from statement's type and skip the relevance
1936 check. Adjust function calls.
1937 (vectorizable_type_demotion): Add assert that it is loop
1938 vectorization, adjust function calls.
1939 (vectorizable_type_promotion): Likewise.
1940 (vectorizable_store): Check for outer loop only in case of loop
1941 vectorization. Adjust function calls. For basic blocks, skip the
1942 relevance check and don't advance pointers.
1943 (vectorizable_load): Likewise.
1944 (vectorizable_condition): Add assert that it is loop vectorization,
1945 adjust function calls.
1946 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1947 that it is not reduction, get vector type, call only supported
782dc37a 1948 functions, skip loop specific parts.
a70d6342
IR
1949 (vect_transform_stmt): Check for outer loop only in case of loop
1950 vectorization.
1951 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1952 (vect_is_simple_use): Fix comment, add new argument, fix conditions
1953 for external definition.
1954 * passes.c (pass_slp_vectorize): New pass.
1955 * tree-vect-slp.c (find_bb_location): New function.
1956 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1957 check for patterns only in loops.
1958 (vect_build_slp_tree): Add argument, adjust function calls, fail in
1959 case of multiple types in basic block SLP.
1960 (vect_mark_slp_stmts_relevant): New function.
1961 (vect_supported_load_permutation_p): Fix comment.
1962 (vect_analyze_slp_instance): Add argument. In case of basic block
1963 SLP, take vectorization factor from statement's type, check that
1964 unrolling factor is 1. Adjust function call. Save SLP instance in
1965 either loop or basic block vectorization structure. Return FALSE,
1966 if SLP failed.
1967 (vect_analyze_slp): Add argument. Get strided stores groups from
1968 either loop or basic block vectorization structure. Return FALSE
1969 if basic block SLP failed.
1970 (new_bb_vec_info): New function.
1971 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1972 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1973 (vect_schedule_slp): Add argument. Get SLP instances from either
1974 loop or basic block vectorization structure. Set vectorization factor
1975 to be 1 for basic block SLP.
1976 (vect_slp_transform_bb): New function.
1977 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1978
0676c393
MM
19792009-05-23 Mark Mitchell <mark@codesourcery.com>
1980
1981 * final.c (shorten_branches): Do not align labels for jump tables.
1982 (final_scan_insn): Use JUMP_TABLE_DATA_P.
1983
94324dae
EB
19842009-05-23 Eric Botcazou <ebotcazou@adacore.com>
1985
1986 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1987 Remove outdated reference to flow.c and fix nits.
1988 * doc/gccint.texi: Tweak RTL description.
1989 * doc/rtl.texi: Likewise.
1990
92bffc14
DC
19912009-05-23 Denis Chertykov <chertykov@gmail.com>
1992
1993 * config/avr/avr.c: Change my email address.
1994 * config/avr/avr.h: Likewise.
1995 * config/avr/avr.md: Likewise.
1996 * config/avr/avr-protos.h: Likewise.
1997 * config/avr/libgcc.S: Likewise.
1998
eec9405e
TS
19992009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2000
2001 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
2002 (spu_split_load, spu_split_store): Change return type to int.
2003 (spu_split_convert): Declare.
2004 * config/spu/predicates.md (spu_mem_operand): Remove.
2005 (spu_mov_operand): Update.
2006 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
2007 * config/spu/spu.c (regno_aligned_for_load): Remove.
2008 (reg_aligned_for_addr, spu_expand_load): Define.
2009 (spu_expand_extv): Reimplement and handle MEM.
2010 (spu_expand_insv): Handle MEM.
2011 (spu_sched_reorder): Handle insn's with length 0.
2012 (spu_legitimate_address_p): Reimplement.
2013 (store_with_one_insn_p): Return TRUE for any mode with size
2014 larger than 16 bytes.
2015 (address_needs_split): Define.
2016 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
2017 operands.
2018 (spu_convert_move): Define.
782dc37a 2019 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
2020 (spu_split_store): Change all MEM's to TImode.
2021 (spu_init_expanders): Preallocate registers that correspond to
2022 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
2023 mark_reg_pointer.
2024 (spu_split_convert): Define.
2025 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
2026 (_move<mode>, _movdi, _movti): Update predicate and condition.
2027 (load, store): Change to define_split.
2028 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
2029 extend<mode>ti2.
2030 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
2031 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
2032 define_insn_and_split of lshr<mode>3.
2033 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
2034 (<v>ashr<mode>3_imm): Define.
2035 (extv, extzv, insv): Allow MEM operands.
2036 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
2037 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
2038 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
2039 (_spu_convert2): Change to define_insn_and_split and remove the
2040 corresponding define_peephole2.
2041 (stack_protect_set, stack_protect_test, stack_protect_test_si):
2042 Change predicates to memory_operand.
2043
7d31a807
MM
20442009-05-22 Mark Mitchell <mark@codesourcery.com>
2045
2046 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 2047
d021d274
MM
20482009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2049
2050 PR tree-optimization/40219
2051 * tree.c (iterative_hash_expr): Make sure the builtin function is
2052 a normal builtin function and not a front end or back end builtin
2053 before indexing into the built_in_decls array.
2054
4d7a65ea
RG
20552009-05-22 Richard Guenther <rguenther@suse.de>
2056
2057 PR middle-end/38964
2058 * alias.c (write_dependence_p): Do not use TBAA for answering
2059 anti-dependence or output-dependence.
782dc37a 2060 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
2061 (emit_pointer_definition): Remove.
2062 (emit_alias_warning): Likewise.
2063 (find_what_var_points_to): Remove TBAA pruning code.
2064 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
2065 violations.
2066 (compute_points_to_sets): Remove code computing the set of
2067 dereferenced pointers.
2068 * tree-data-ref.c (dr_may_alias_p): Properly use the split
2069 oracle for querying anti and output dependencies.
2070 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
2071 if TBAA may be applied.
2072 (refs_anti_dependent_p): New function.
2073 (refs_output_dependent_p): Likewise.
2074 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
2075 (refs_output_dependent_p): Likewise.
2076 * doc/tree-ssa.texi (Memory model): New section.
2077 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2078 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2079 * cfgexpand.c (expand_gimple_basic_block): Do not handle
2080 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
2081 * expr.c (expand_expr_real_1): Likewise.
2082 * gimple-low.c (lower_stmt): Likewise.
2083 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
2084 (dump_gimple_cdt): Remove.
2085 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2086 (gimple_size): Likewise.
2087 (walk_gimple_op): Likewise.
2088 (is_gimple_stmt): Likewise.
2089 (walk_stmt_load_store_addr_ops): Likewise.
2090 (gimple_build_cdt): Remove.
2091 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2092 * gimple.h (gimple_cdt_new_type): Remove.
2093 (gimple_cdt_new_type_ptr): Likewise.
2094 (gimple_cdt_set_new_type): Likewise.
2095 (gimple_cdt_location): Likewise.
2096 (gimple_cdt_location_ptr): Likewise.
2097 (gimple_cdt_set_location): Likewise.
2098 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2099 * tree-cfg.c (remove_useless_stmts_1): Do not handle
2100 GIMPLE_CHANGE_DYNAMIC_TYPE.
2101 (verify_types_in_gimple_stmt): Likewise.
2102 * tree-inline.c (estimate_num_insns): Likewise.
2103 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
2104 (copy_decl_to_var): Likewise.
2105 (copy_result_decl_to_var): Likewise.
2106 * tree-pretty-print.c (dump_generic_node): Do not handle
2107 CHANGE_DYNAMIC_TYPE_EXPR.
2108 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2109 * tree-ssa-operands.c (get_expr_operands): Likewise.
2110 * tree-ssa-structalias.c (struct variable_info): Remove
2111 no_tbaa_pruning member.
2112 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
2113 (unify_nodes): Do not copy it.
2114 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2115 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
2116 (set_uids_in_ptset): Do not check it.
2117 (find_what_var_points_to): Likewise.
2118 (compute_tbaa_pruning): Remove.
2119 (compute_points_to_sets): Do not call it.
2120 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2121 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2122 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
2123 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
2124 (DECL_NO_TBAA_P): Likewise.
2125 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
2126 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
2127 (expand_omp_atomic_pipeline): Do not set it.
2128 * print-tree.c (print_node): Do not dump it.
2129 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2130 redundant check.
2131
83a6ac60
VM
21322009-05-22 Vladimir Makarov <vmakarov@redhat.com>
2133
2134 PR target/39856
2135 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
2136 for clobber.
2137
fe2978fb
MM
21382009-05-22 Mark Mitchell <mark@codesourcery.com>
2139
2140 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
2141 non-external.
2142
134ef638
BE
21432009-05-22 Ben Elliston <bje@au.ibm.com>
2144
2145 * Makefile.in (bversion.h, s-bversion): New targets.
2146 (TOPLEV_H): Add bversion.h.
2147 * toplev.h: Include "bversion.h".
2148 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
2149 the __format__ attribute only if compiling with the same version
2150 of GCC as the sources (the "build version").
2151
52fc669d
BE
21522009-05-22 Ben Elliston <bje@au.ibm.com>
2153
2154 * c-format.c (handle_format_attribute): Fix comment typo.
2155
583ca921
SE
21562009-05-21 Steve Ellcey <sje@cup.hp.com>
2157
2158 PR target/37846
2159 * config/ia64/ia64.opt (mfused-madd): New.
2160 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
2161 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
2162 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
2163 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
2164 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
2165 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
2166 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
2167 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
2168 instruction if !TARGET_FUSED_MADD.
2169 (fpma, fpms): Remove colon from name.
2170
150e3929
RG
21712009-05-22 Richard Guenther <rguenther@suse.de>
2172
2173 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
2174 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
2175 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2176 TARGET_MEM_REF.
2177 (create_expression_by_pieces): Only convert if necessary.
2178 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
2179 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
2180
9a2b090c
AN
21812009-05-21 Adam Nemet <anemet@caviumnetworks.com>
2182
2183 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
2184 regular pattern from a template and rename it ...
2185 (*extzv_truncsi_exts): ... to this.
2186
33b92c9d
RG
21872009-05-21 Richard Guenther <rguenther@suse.de>
2188
2189 * cgraph.h (struct cgraph_node): Remove inline_decl member.
2190 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
2191 (cgraph_default_inline_p): Likewise.
2192 (cgraph_decide_inlining_incrementally): Likewise.
2193
cabf85c3
L
21942009-05-21 H.J. Lu <hongjiu.lu@intel.com>
2195 Uros Bizjak <ubizjak@gmail.com>
2196
2197 * config/i386/cpuid.h (bit_MOVBE): New.
2198
2199 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2200
2201 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
2202 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
2203 (ix86_handle_option): Handle OPT_mmovbe.
2204 (ix86_target_string): Add -mmovbe.
2205 (pta_flags): Add PTA_MOVBE.
2206 (processor_alias_table): Add PTA_MOVBE to "atom".
2207 (override_options): Handle PTA_MOVBE.
2208
2209 * config/i386/i386.h (TARGET_MOVBE): New.
2210
2211 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
2212 (*bswapsi_movbe): New.
2213 (*bswapdi_movbe): Likewise.
2214 (bswapdi2): Renamed to ...
2215 (*bswapdi_1): This.
2216 (bswapdi2): New expander.
2217
2218 * config/i386/i386.opt (mmovbe): New.
2219
2220 * doc/invoke.texi: Document -mmovbe.
2221
9fefa0aa
TG
22222009-05-21 Taras Glek <tglek@mozilla.com>
2223
2224 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
2225 * gcc-plugin.h (plugin_init): Updated signature.
2226 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
2227 * doc/plugins.texi (plugin_init): Updated documention to reflect
2228 API change.
9fefa0aa
TG
2229 * doc/plugins.texi (plugin_name_args): Added to documention.
2230
1ea9fe56
MM
22312009-05-21 Mark Mitchell <mark@codesourcery.com>
2232
2233 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
2234 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
2235
52f84254
SZ
22362009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
2237
2238 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
2239 JUMP_TABLE_DATA_P predicates where applicable.
2240 * config/i386/predicates.md: Ditto.
2241 * config/i386/sse.md: Ditto.
2242
a952487c
JJ
22432009-05-21 Jakub Jelinek <jakub@redhat.com>
2244
93cac287
JJ
2245 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
2246 operand2 -128 override length_immediate attribute to 1.
2247 * config/i386/predicates.md (constm128_operand): New predicate.
2248
a952487c
JJ
2249 * config/i386/i386.c (memory_address_length): Handle %r12
2250 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
2251 also check REGNO.
2252 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
2253 mode look through optional ZERO_EXTEND and SUBREG.
2254 * config/i386/i386.md (R12_REG): New define_constant.
2255 (prefix_data16): For sse unit set also for MODE_TI insns.
2256 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
2257 insns set if operand 1 is ext_QIreg_operand.
2258 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
2259 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
2260 immediate.
2261 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
2262 mode from MODE_DI to MODE_SI.
2263 (movdi_1_rex64): Override modrm and length_immediate attributes
2264 only for movabs (TYPE_IMOV, alternative 2).
2265 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
2266 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2267 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2268 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2269 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
2270 prefix_rex attribute if DImode.
2271 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
2272 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
2273 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
2274 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
2275 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
2276 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
2277 Likewise. For TYPE_IMOV clear length_immediate attribute.
2278 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
2279 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
2280 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
2281 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
2282 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
2283 or one operand TYPE_ISHIFT.
2284 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
2285 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
2286 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
2287 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
2288 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
2289 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
2290 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
2291 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
2292 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
2293 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
2294 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
2295 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
2296 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
2297 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
2298 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
2299 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
2300 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
2301 set mode attribute, don't override length attribute.
2302 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
2303 to 1.
2304 (return_internal_long): Set length attribute to 2 instead of 1.
2305 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
2306 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
2307 prefix_rex attribute.
782dc37a
UB
2308 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
2309 New predicates.
2310 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 2311
64af62c2
RR
23122009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2313
2314 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
2315
c166b898
ILT
23162009-05-20 Ian Lance Taylor <iant@google.com>
2317
2318 * tree.c (build_tree_list_vec_stat): New function.
2319 (ctor_to_vec): New function.
2320 (build_nt_call_vec): New function.
2321 (build_call_array): Change args to be a const pointer.
2322 (build_call_vec): New function.
2323 * tree.h (build_nt_call_vec): Declare.
2324 (build_tree_list_vec_stat): Declare.
2325 (build_tree_list_vec): Define.
2326 (build_call_array): Update declaration.
2327 (build_call_vec): Declare.
2328 (ctor_to_vec): Declare.
2329 * c-common.c (tree_vector_cache): New static variable.
2330 (make_tree_vector): New function.
2331 (release_tree_vector): New function.
2332 (make_tree_vector_single): New function.
2333 (make_tree_vector_copy): New function.
2334 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
2335 (make_tree_vector_single, make_tree_vector_copy): Declare.
2336 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
2337 (c_parser_expr_list): Don't manage cache here, instead call
2338 make_tree_vector.
2339 (c_parser_release_expr_list): Remove static function.
2340 (c_parser_vec_to_tree_list): Remove static function.
2341 (c_parser_attributes): Call build_tree_list_vec instead of
2342 c_parser_vec_to_tree_list. Call release_tree_vector instead of
2343 c_parser_release_expr_list.
2344 (c_parser_postfix_expression_after_primary): Likewise.
2345 (c_parser_objc_keywordexpr): Likewise.
2346
40449a90
SL
23472009-05-20 Sandra Loosemore <sandra@codesourcery.com>
2348
2349 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
2350 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
2351 TARGET_CONVERT_TO_TYPE.
2352 * hooks.c (hook_tree_const_tree_null): Define.
2353 * hooks.h (hook_tree_const_tree_null): Declare.
2354 * target.h (struct gcc_target): Add invalid_parameter_type,
2355 invalid_return_type, promoted_type, and convert_to_type fields.
2356 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
2357 (TARGET_INVALID_RETURN_TYPE): Define.
2358 (TARGET_PROMOTED_TYPE): Define.
2359 (TARGET_CONVERT_TO_TYPE): Define.
2360 (TARGET_INITIALIZER): Update for new fields.
2361 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
2362 (grokparms): Check targetm.invalid_parameter_type.
2363 * c-typeck.c (default_conversion): Check targetm.promoted_type.
2364 * c-convert.c (convert): Check targetm.convert_to_type.
2365
642d97ff
AN
23662009-05-20 Adam Nemet <anemet@caviumnetworks.com>
2367
2368 * config/mips/mips.md (*extenddi_truncate<mode>,
2369 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
2370 defintions.
2371 (*extendhi_truncateqi): New define_insn_and_sptit.
2372
776248b8
JJ
23732009-05-20 Jakub Jelinek <jakub@redhat.com>
2374
2375 PR middle-end/40204
2376 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 2377 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 2378
d98e8686
EB
23792009-05-20 Eric Botcazou <ebotcazou@adacore.com>
2380
2381 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
2382 the operand of VIEW_CONVERT_EXPR.
2383
37c50435
L
23842009-05-20 H.J. Lu <hongjiu.lu@intel.com>
2385
2386 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 2387 extended family and model for Intel processors. Support Intel Atom.
37c50435 2388
dbb6088f
OH
23892009-05-20 Olivier Hainque <hainque@adacore.com>
2390
2391 * gstab.h (stab_code_type): Define, to be used instead of the
2392 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
2393 notice.
2394 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
2395 occurrences by stab_code_type.
2396 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
2397
7ec49257
MJ
23982009-05-20 Martin Jambor <mjambor@suse.cz>
2399
2400 * tree-flow.h (insert_edge_copies_seq): Undeclare.
2401 (sra_insert_before): Likewise.
2402 (sra_insert_after): Likewise.
2403 (sra_init_cache): Likewise.
2404 (sra_type_can_be_decomposed_p): Likewise.
2405 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
2406 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
2407 (sra_insert_before): Likewise.
2408 (sra_insert_after): Likewise.
2409 (sra_init_cache): Likewise.
2410 (insert_edge_copies_seq): Made static and moved upwards.
2411
2412 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
2413 case.
2414
2415 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
2416
2417 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
2418 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
2419 simple copies.
2420
0328ae4d
RG
24212009-05-20 Richard Guenther <rguenther@suse.de>
2422
2423 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2424 with mismatched comparison modes.
2425
a7994a57 24262009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 2427
a7994a57 2428 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
2429 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
2430 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
2431 with shifts for Thumb2.
2432 (orsi_notsi): New for orn.
2433 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
2434 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
2435 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
2436 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
2437 Don't invert remainder for IOR.
a7994a57 2438
e36dc339
ZD
24392009-05-19 Zdenek Dvorak <ook@ucw.cz>
2440
2441 PR tree-optimization/40087
2442 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
2443 number_of_iterations_ne): Rename never_infinite argument.
2444 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
2445 number_of_iterations_le): Handle pointer-type ivs when
2446 exit_must_be_taken is false.
2447 (number_of_iterations_cond): Do not always assume that
2448 exit_must_be_taken if the control variable is a pointer.
2449
5cfd5d9b
AP
24502009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2451
2452 * c-typeck.c (build_binary_op): Allow % on integal vectors.
2453 * doc/extend.texi (Vector Extension): Document that % is allowed too.
2454
2f1c7156
L
24552009-05-19 H.J. Lu <hongjiu.lu@intel.com>
2456
2457 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
2458 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
2459
7bb27074
MLI
24602009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2461
2462 PR c/40172
2463 * c.opt (Wlogical-op): Disabled by default.
2464 * c-opt (c_common_post_options): Do not enable Wlogical-op with
2465 Wextra.
2466 * doc/invoke.texi (Wlogical-op): Likewise.
2467
5aefc6a0
EB
24682009-05-19 Eric Botcazou <ebotcazou@adacore.com>
2469
2470 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
2471 into CASE_CONVERT.
2472 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
2473 Propagate the type of the first operand.
2474 <ASSERT_EXPR>: Simplify.
2475 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
2476 Rewrite using the RHS code as discriminant.
2477 <NOP_EXPR>: Turn into CASE_CONVERT.
2478 <PLUS_EXPR>: Propagate the type of the first operand.
2479
f3a83111
SE
24802009-05-19 Steve Ellcey <sje@cup.hp.com>
2481
2482 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
2483 (ia64_dconst_0_375): New.
2484 * config/ia64/ia64.c (ia64_override_options): Remove
2485 -minline-sqrt-min-latency warning.
2486 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
2487 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
2488 * config/ia64/ia64.md (*sqrt_approx): Remove.
2489 (sqrtsf2): Remove #if 0.
2490 (sqrtsf2_internal_thr): Rewrite and move to div.md.
2491 (sqrtdf): Remove assert.
2492 (sqrtdf2_internal_thr): Rewrite and move to div.md.
2493 (sqrtxf2): Remove #if 0.
2494 (sqrtxf2_internal_thr): Rewrite and move to div.md.
2495 * div.md (sqrt_approx_rf): New.
2496 (sqrtsf2_internal_thr): New implementation.
2497 (sqrtsf2_internal_lat): New.
2498 (sqrtdf2_internal_thr: New implementation.
2499 (sqrtxf2_internal): New implementation.
2500
1ffc7157
FXC
25012009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
2502 Hans-Peter Nilsson <hp@axis.com>
2503
2504 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
2505 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
2506 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
2507 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
2508 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
2509 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
2510 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
2511 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
2512 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
2513 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
2514 * c-common.c: ...from here.
2515
db91d9ef
MLI
25162009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2517
f3afc8a7 2518 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 2519
bbb9d91f
KG
25202009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2521
2522 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
2523
ce883f54
BE
25242009-05-19 Ben Elliston <bje@au.ibm.com>
2525
2526 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
2527 assignments with memcpy calls.
2528 (add_fdes): Likewise.
2529 (binary_search_unencoded_fdes): Likewise.
2530 (linear_search_fdes): Eliminate type puns.
2531
377f099a
RG
25322009-05-19 Richard Guenther <rguenther@suse.de>
2533
2534 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
2535 not falsely claim to have propagated into all uses.
2536
848bc769
BE
25372009-05-19 Ben Elliston <bje@au.ibm.com>
2538
2539 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
2540 version to v3.0.
2541
1bb99877
KK
25422009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
2543
2544 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
2545 * config/sh/sh.c (sh_legitimate_address_p): Make static.
2546 (TARGET_LEGITIMATE_ADDRESS_P): New.
2547 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2548 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2549
82725547
DS
25502009-05-18 Dodji Seketeli <dodji@redhat.com>
2551
2552 PR debug/40109
2553 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
2554 child of the containing namespace's DIE.
2555
f6a1e430
AN
25562009-05-18 Adam Nemet <anemet@caviumnetworks.com>
2557
2558 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
2559 *zero_extendhi_truncqi): Move after the zero_extend patterns.
2560 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
2561 extend patterns.
2562
6a90d232
L
25632009-05-18 H.J. Lu <hongjiu.lu@intel.com>
2564
2565 PR target/39942
2566 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
2567 gen_align with gen_pad.
2568 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
2569 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
2570
2571 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
2572 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
2573
2574 * config/i386/i386.md (align): Renamed to ...
2575 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
2576 ASM_OUTPUT_MAX_SKIP_PAD.
2577
c4406f74
AS
25782009-05-18 Andreas Schwab <schwab@linux-m68k.org>
2579
06555043
AS
2580 * config.gcc: Fix variable syntax.
2581
c4406f74
AS
2582 PR target/39531
2583 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
2584 before calling exact_log2.
2585 (output_iorsi3): Likewise.
2586 (output_xorsi3): Likewise.
2587
99052692
KK
25882009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
2589
2590 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
2591 for the none zero constant operand except for EQ and NE
2592 comprisons even when the first operand is R0.
2593
f4aa3848
AK
25942009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
2595
2596 * config/s390/2064.md: Remove trailing whitespaces.
2597 * config/s390/2084.md: Likewise.
2598 * config/s390/constraints.md: Likewise.
2599 * config/s390/fixdfdi.h: Likewise.
2600 * config/s390/libgcc-glibc.ver: Likewise.
2601 * config/s390/s390-modes.def: Likewise.
2602 * config/s390/s390-protos.h: Likewise.
2603 * config/s390/s390.c: Likewise.
2604 * config/s390/s390.h: Likewise.
2605 * config/s390/s390.md: Likewise.
2606 * config/s390/tpf-unwind.h: Likewise.
2607
ab7256e4
MK
26082009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2609
2610 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
2611
75df395f
MK
26122009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2613
2614 M68K TLS support.
2615 * configure.ac (m68k-*-*): Check if binutils support TLS.
2616 * configure: Regenerate.
2617 * config/m68k/predicates.md (symbolic_operand): Extend comment.
2618 * config/m68k/constraints.md (Cu): New constraint.
2619 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
2620 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
2621 (movsi): Handle TLS symbols.
2622 (addsi3_5200): Handle XTLS symbols, indent.
2623 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
2624 (m68k_tls_reference_p): Declare.
2625 (m68k_legitimize_address): Declare.
2626 (m68k_unwrap_symbol): Declare.
2627 * config/m68k/m68k.opt (mxtls): New option.
2628 * config/m68k/m68k.c (ggc.h): Include.
2629 (m68k_output_dwarf_dtprel): Implement hook.
2630 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2631 (m68k_expand_prologue): Load GOT pointer when function needs it.
2632 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
2633 (m68k_legitimate_constant_address_p): Same.
2634 (m68k_decompose_address): Handle TLS references.
2635 (m68k_get_gp): New static function.
2636 (enum m68k_reloc): New contants.
2637 (TLS_RELOC_P): New macro.
2638 (m68k_wrap_symbol): New static function.
2639 (m68k_unwrap_symbol): New function.
2640 (m68k_final_prescan_insn_1): New static function.
2641 (m68k_final_prescan_insn): New function.
2642 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
2643 functions.
2644 (legitimize_pic_address): Handle TLS references..
2645 (m68k_tls_get_addr, m68k_get_tls_get_addr)
2646 (m68k_libcall_value_in_a0_p)
2647 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
2648 (m68k_call_m68k_read_tp): Helper variables and functions for ...
2649 (m68k_legitimize_tls_address): Handle TLS references.
2650 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
2651 New functions.
2652 (m68k_legitimize_address): Handle TLS symbols.
2653 (m68k_get_reloc_decoration): New static function.
2654 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
2655 UNSPEC_RELOC32.
2656 (m68k_output_dwarf_dtprel): Implement hook.
2657 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
2658 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
2659 m68k_call_* routines.
2660 (sched_attr_op_type): Handle TLS symbols.
2661 (gt-m68k.h): Include.
2662 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
2663 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
2664
8b75fc9b
MJ
26652009-05-18 Martin Jambor <mjambor@suse.cz>
2666
2667 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
2668 (visit_store_addr_for_mod_analysis): New function.
2669 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
2670 (determine_cst_member_ptr): Use gimple_assign_single_p.
2671 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
2672 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
2673 operands. Don't check number of operands of a NOP_EXPR.
2674
f133d4a2
EF
26752009-05-18 Eric Fisher <joefoxreal@gmail.com>
2676
2677 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
2678
ae8af500
L
26792009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
2680
2681 PR c/40172
2682 * c-common.c (warn_logical_operator): Don't warn if one of
2683 expression isn't always true or false.
2684
25e8fde8
KT
26852009-05-17 Kai Tietz <kai.tietz@onevision.com>
2686
ae8af500
L
2687 * config/i386/biarch32.h: New file.
2688 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 2689
ef67af22
AN
26902009-05-17 Adam Nemet <anemet@caviumnetworks.com>
2691
2692 * config/mips/mips.md (*zero_extend<mode>_trunchi,
2693 *zero_extend<mode>_truncqi): Merge these into ...
2694 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
2695 Name the pattern following this as *zero_extendhi_truncqi.
2696
e2d87023
BL
26972009-05-16 Brad Lucier <lucier@math.purdue.edu>
2698
2699 PR middle-end/39301
2700 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
2701 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
2702 (output_info): Make field HOST_WIDEST_INT.
2703 (print_statistics): Use HOST_WIDEST_INT_PRINT.
2704 (dump_bitmat_statistics): Same.
2705
428ddbf0
FXC
27062009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
2707
2708 * config.gcc (use_gcc_stdint): Set to wrap.
2709 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2710 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2711 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2712 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2713 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2714 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2715 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2716 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2717
1ab8a8c2
JM
27182009-05-16 Joseph Myers <joseph@codesourcery.com>
2719
2720 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
2721 tune_64.
2722 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
2723 Move definitions earlier.
2724 (OPT_ARCH64, OPT_ARCH32): Define.
2725 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
2726 and tune_64.
2727
70544f44
RE
27282009-05-16 Richard Earnshaw <rearnsha@arm.com>
2729
2730 PR target/40153
2731 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
2732 implies.
2733
6241ded1
RE
27342009-05-16 Richard Earnshaw <rearnsha@arm.com>
2735
2736 * arm.md (movdi2): Copy non-reg values to DImode registers.
2737
a99c6711
JJ
27382009-05-16 Jakub Jelinek <jakub@redhat.com>
2739
40a8f07a
JJ
2740 PR target/39942
2741 * final.c (label_to_max_skip): New function.
2742 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
2743 CODE_LABEL_NUMBER <= max_labelno.
2744 * output.h (label_to_max_skip): New prototype.
2745 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
2746 (ix86_avoid_jump_mispredicts): ... this. Don't define if
2747 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
2748 Handle CODE_LABELs with >= 16 byte alignment or with
2749 max_skip == (1 << align) - 1.
2750 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
2751 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
2752
a99c6711
JJ
2753 PR target/39942
2754 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
2755 .p2align 3 if MAX_SKIP is smaller than 7.
2756 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2757
7e5487a2
ILT
27582009-05-15 Ian Lance Taylor <iant@google.com>
2759
2760 * alias.c (struct alias_set_entry_d): Rename from struct
2761 alias_set_entry. Change all uses.
2762 * except.c (struct call_site_record_d): Rename from struct
2763 call_site_record. Change all uses.
2764 * except.h (struct eh_region_d): Rename from struct eh_region.
2765 Change all uses.
2766 * gcse.c (struct hash_table_d): Rename from struct hash_table.
2767 Change all uses.
2768 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
2769 ivtype_map_elt. Change all uses.
2770 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
2771 Change all uses.
2772 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
2773 * graphite.h (struct name_tree_d): Rename from struct name_tree.
2774 Change all uses.
2775 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
2776 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
2777 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
2778 * optabs.h (struct optab_d): Rename from struct optab. Change all
2779 uses.
2780 (struct convert_optab_d): Rename from struct convert_optab.
2781 Change all uses.
2782 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
2783 ipa_opt_pass. Change all uses.
2784 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
2785 all uses.
2786
2787 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
2788 defined as a typedef.
2789 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
2790 defined as a tag.
2791
a243fb4a
MLI
27922009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2793
2794 PR 16302
2795 * fold-const.c (make_range,build_range_check,merge_ranges): Move
2796 declaration to...
2797 (merge_ranges): Returns bool.
2798 * tree.h (make_range): .. to here.
2799 (build_range_check): Likewise.
2800 (merge_ranges): Likewise. Renamed from merge_ranges.
2801 * c-typeck.c (parser_build_binary_op): Update calls to
2802 warn_logical_operator.
2803 * c-common.c (warn_logical_operator): Add new warning.
2804 * c-common.h (warn_logical_operator): Update declaration.
2805
1b53c5f3
MLI
28062009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2807
782dc37a 2808 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 2809
c128599a
KG
28102009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2811
f9bab007
KG
2812 * doc/install.texi: Document MPC requirements, flags etc.
2813
c128599a
KG
2814 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
2815 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
2816 Evaluate constant arguments.
2817 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
2818 (fold_builtin_1): Likewise, also evaluate constant arguments.
2819 Remove superfluous break.
2820 (do_mpc_ckconv): New.
2821 * real.h: Include mpc.h.
2822 * toplev.c (print_version): Output MPC version info if available.
2823
d33e4b70
SL
28242009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2825
782dc37a 2826 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 2827
a02ab464
L
28282009-05-15 H.J. Lu <hongjiu.lu@intel.com>
2829
2830 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
2831 only once.
2832
796bda22
JH
28332009-05-15 Jan Hubicka <jh@suse.cz>
2834
2835 * doc/invoke.texi (max-early-inliner-iterations): New flag.
2836 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
2837 (try_inline): Fix return value.
2838 (cgraph_decide_inlining_incrementally): Honor new value.
2839 (cgraph_early_inlining): Handle indirect inlining.
2840 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
2841
d88e5c37
JH
28422009-05-15 Jan Hubicka <jh@suse.cz>
2843
2844 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2845 * cgraphunit.c (cgraph_finalize_function): Set it.
2846 (cgraph_expand_function): Use it.
2847
ae63687c
SL
28482009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2849
2850 * real.c (encode_ieee_half): Define.
2851 (decode_ieee_half): Define.
2852 (ieee_half_format): Define.
2853 (arm_half_format): Define.
2854 * real.h (ieee_half_format): Declare.
2855 (arm_half_format): Declare.
2856
1bd74ad9
SL
28572009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2858
2859 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
2860 swapped, and reversed optabs exist before trying to use them.
2861
dc34db56
PB
28622009-05-15 Paul Brook <paul@codesourcery.com>
2863 Sandra Loosemore <sandra@codesourcery.com>
2864
dc34db56
PB
2865 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
2866 loads. Allow PRE_DEC.
2867 (output_move_neon): Handle PRE_DEC.
2868 (arm_print_operand): Add 'A' for neon structure loads.
2869 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
2870 * config/arm/neon.md (neon_mov): Update comment.
2871 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
2872 calls.
2873 (Um): New constraint.
2874
1d405d7b
JH
28752009-05-15 Jan Hubicka <jh@suse.cz>
2876
2877 Revert the following patch until testsuite fallout is fixed:
2878 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2879 * cgraph.h (struct inline_summary): New filed self_wize,
2880 size_inlining_benefit, self_time and time_inlining_benefit.
2881 (struct cgraph_global_info): Replace insns by time ans size fields.
2882 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2883 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2884 (ipcp_update_callgraph): Do not touch function bodies.
2885 * ipa-inline.c: Include except.h
782dc37a 2886 (MAX_TIME): New constant.
1d405d7b
JH
2887 (overall_insns): Remove
2888 (overall_size, max_benefit): New static variables.
2889 (cgraph_estimate_time_after_inlining): New function.
2890 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2891 (cgraph_clone_inlined_nodes): Update size.
2892 (cgraph_mark_inline_edge): Update size.
2893 (cgraph_estimate_growth): Use size info.
2894 (cgraph_check_inline_limits): Check size.
2895 (cgraph_default_inline_p): Likewise.
2896 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2897 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2898 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2899 and times.
1d405d7b 2900 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2901 (cgraph_decide_inlining_incrementally): Likewise; honor
2902 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
2903 (likely_eliminated_by_inlining_p): New predicate.
2904 (estimate_function_body_sizes): New function.
2905 (compute_inline_parameters): Use it.
2906 * except.c (must_not_throw_labels): New function.
2907 * except.h (must_not_throw_labels): Declare.
2908 * tree-inline.c (init_inline_once): Kill inlining_weigths
2909 * tree-ssa-structalias.c: Avoid uninitialized warning.
2910 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2911 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2912 (PARAM_INLINE_CALL_COST): Remove.
2913 (PARAM_EARLY_INLINING_INSNS): New.
2914
7ffa47ca
RG
29152009-05-15 Richard Guenther <rguenther@suse.de>
2916
2917 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
2918 not TODO_update_ssa.
2919
828552ed
RG
29202009-05-15 Richard Guenther <rguenther@suse.de>
2921
2922 PR tree-optimization/39999
2923 * gimple.h (gimple_expr_type): Use the expression type looking
2924 through useless conversions.
2925 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2926 (vn_nary_op_insert_stmt): Likewise.
2927 (simplify_binary_expression): Likewise.
2928
248fc9f3
RG
29292009-05-15 Richard Guenther <rguenther@suse.de>
2930
2931 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2932 New options, enabled by default.
2933 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2934 Document.
2935 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2936 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2937 * tree-ssa-structalias.c (gate_tree_pta): New function.
2938 (pass_build_alias): Use it.
2939
16b29cc4
JM
29402009-05-15 Joseph Myers <joseph@codesourcery.com>
2941
2942 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2943 recurse on an invariant address if a conversion from a pointer
2944 type to a wider integer type is involved.
2945
125cae84
JH
29462009-05-15 Jan Hubicka <jh@suse.cz>
2947
2948 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2949 * cgraph.h (struct inline_summary): New filed self_wize,
2950 size_inlining_benefit, self_time and time_inlining_benefit.
2951 (struct cgraph_global_info): Replace insns by time ans size fields.
2952 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2953 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2954 (ipcp_update_callgraph): Do not touch function bodies.
2955 * ipa-inline.c: Include except.h
782dc37a 2956 (MAX_TIME): New constant.
125cae84
JH
2957 (overall_insns): Remove
2958 (overall_size, max_benefit): New static variables.
2959 (cgraph_estimate_time_after_inlining): New function.
2960 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2961 (cgraph_clone_inlined_nodes): Update size.
2962 (cgraph_mark_inline_edge): Update size.
2963 (cgraph_estimate_growth): Use size info.
2964 (cgraph_check_inline_limits): Check size.
2965 (cgraph_default_inline_p): Likewise.
2966 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2967 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2968 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2969 and times.
125cae84 2970 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2971 (cgraph_decide_inlining_incrementally): Likewise; honor
2972 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
2973 (likely_eliminated_by_inlining_p): New predicate.
2974 (estimate_function_body_sizes): New function.
2975 (compute_inline_parameters): Use it.
2976 * except.c (must_not_throw_labels): New function.
2977 * except.h (must_not_throw_labels): Declare.
2978 * tree-inline.c (init_inline_once): Kill inlining_weigths
2979 * tree-ssa-structalias.c: Avoid uninitialized warning.
2980 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2981 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2982 (PARAM_INLINE_CALL_COST): Remove.
2983 (PARAM_EARLY_INLINING_INSNS): New.
2984 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2985 (inline-call-cost): Remove.
2986 (early-inlining-insns): New.
2987
84fb43a1
EB
29882009-05-15 Eric Botcazou <ebotcazou@adacore.com>
2989
2990 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
2991 for bounds.
2992 (print_int_cst_bounds_in_octal_p): Likewise.
2993 (dbxout_type): Adjust calls to above functions. Be prepared to deal
2994 with subtypes.
2995 * dwarf2out.c (base_type_die): Likewise.
2996 (is_subrange_type): Delete.
2997 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
2998 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
2999 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
3000 if the destination type is boolean.
84fb43a1
EB
3001 (build_range_check): Do not special-case subtypes.
3002 (fold_sign_changed_comparison): Likewise.
3003 (fold_unary): Likewise.
3004 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
3005 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
3006 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
3007 * tree.c (subrange_type_for_debug_p): New predicate based on the
3008 former is_subrange_type.
84fb43a1
EB
3009 * tree.h (subrange_type_for_debug_p): Declare.
3010 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
3011 (convert_affine_scev): Remove call to above function.
3012 (chrec_convert_aggressive): Likewise.
3013 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
3014 false for conversions involving subtypes.
3015 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
3016 (vrp_val_min): Likewise.
3017 (needs_overflow_infinity): Likewise.
3018 (extract_range_from_unary_expr): Likewise.
3019
331d9186
PB
30202009-05-15 Paolo Bonzini <bonzini@gnu.org>
3021
e9351712
L
3022 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3023 * config/frv/frv.c: Likewise.
3024 * config/s390/s390.c: Likewise.
3025 * config/sparc/sparc.h: Likewise.
3026 * config/i386/i386.h: Likewise.
3027 * config/i386/i386.c: Likewise.
3028 * config/crx/crx.c: Likewise.
3029 * config/m68hc11/m68hc11.h: Likewise.
3030 * config/iq2000/iq2000.c: Likewise.
3031 * config/mn10300/mn10300.h: Likewise.
3032 * config/mn10300/mn10300.c: Likewise.
3033 * config/m68k/m68k.c: Likewise.
3034 * config/rs6000/rs6000.c: Likewise.
3035 * config/rs6000/xcoff.h: Likewise.
3036 * config/rs6000/linux64.h: Likewise.
3037 * config/rs6000/sysv4.h: Likewise.
3038 * config/score/score3.c: Likewise.
3039 * config/score/score7.c: Likewise.
3040 * config/score/score.c: Likewise.
3041 * config/arm/arm.md: Likewise.
3042 * config/mips/mips.c: Likewise.
3043 * config/mips/mips.md: Likewise.
3044 * config/bfin/bfin.h: Likewise.
3045 * config/pa/pa.c: Likewise.
3046 * config/pa/constraints.md: Likewise.
3047
3048 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
3049 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
3050 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 3051
09639a83
ILT
30522009-05-14 Ian Lance Taylor <iant@google.com>
3053
3054 * passes.c (finish_optimization_passes): Change i to int.
3055 * plugin.c (plugins_active_p): Change event to int.
3056 (dump_active_plugins): Likewise.
3057 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
3058 Add cast.
3059 * tree.c (tree_range_check_failed): Change c to unsigned int.
3060 (omp_clause_range_check_failed): Likewise.
3061 (build_common_builtin_nodes): Change mode to int. Add cast.
3062 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
3063 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
3064
3065 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
3066 ++ or -- with a variable of enum type.
3067
c04a56bf
SB
30682009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3069
3070 PR driver/40144
3071 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
3072
237ee620
SB
30732009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3074
3075 * store-motion.c: Do not include params.h
3076 * Makefile.in: Fix dependencies for various files.
3077
1154c4fa
SB
30782009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3079
3080 * auto-inc-dec.c: Fix pass description, remove apparent
3081 accidental duplication.
3082
61c27353
L
30832009-05-14 H.J. Lu <hongjiu.lu@intel.com>
3084
3085 PR middle-end/40147
3086 * ipa-utils.h (memory_identifier_string): Moved to ...
3087 * tree.h (memory_identifier_string): Here. Add GTY(()).
3088
c6c3dba9
PB
30892009-05-14 Paolo Bonzini <bonzini@gnu.org>
3090
3091 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
3092 in the former documentation of...
3093 (GO_IF_LEGITIMATE_ADDRESS): ... this.
3094 * ira-conflicts.c (get_dup_num): Use address_operand.
3095 * targhooks.c (default_legitimate_address_p): New.
3096 * targhooks.h (default_legitimate_address_p): New.
3097 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
3098 Call hook.
3099 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
3100 * target.h (struct target): Add legitimate_address_p.
3101 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
3102 (TARGET_INITIALIZER): Include it.
3103
3104 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3105 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
3106 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
3107 (TARGET_LEGITIMATE_ADDRESS_P): New.
3108
3109 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3110 (REG_OK_STRICT_P): Delete.
3111 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
3112 (frv_legitimate_address_p_1): ... this.
3113 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
3114 (frv_legitimate_address_p_1): ... the renamed old
3115 frv_legitimate_address_p.
3116 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
3117 (TARGET_LEGITIMATE_ADDRESS_P): New.
3118
3119 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3120 * config/s390/s390-protos.h (legitimate_address_p): Remove.
3121 * config/s390/s390.c (legitimate_address_p): Rename to...
3122 (s390_legitimate_address_p): ... this, make static.
3123 (legitimize_address): Adjust call.
3124 (TARGET_LEGITIMATE_ADDRESS_P): New.
3125 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
3126
3127 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3128 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
3129 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
3130 (TARGET_LEGITIMATE_ADDRESS_P): New.
3131
3132 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3133 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
3134 * config/spu/spu.c (spu_legitimate_address): Rename to...
3135 (spu_legitimate_address_p): ... this, make static.
3136 (TARGET_LEGITIMATE_ADDRESS_P): New.
3137
3138 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3139 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
3140 * config/sparc/sparc.c (legitimate_address_p): Rename to...
3141 (sparc_legitimate_address_p): ... this, make static and return bool.
3142 (legitimize_address): Adjust call.
3143 (TARGET_LEGITIMATE_ADDRESS_P): New.
3144
3145 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3146 * config/i386/i386-protos.h (legitimate_address_p): Remove.
3147 * config/i386/i386.c (legitimate_address_p): Rename to...
3148 (ix86_legitimate_address_p): ... this, make static.
3149 (constant_address_p): Move after it, adjust call.
3150 (TARGET_LEGITIMATE_ADDRESS_P): New.
3151
3152 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3153 * config/avr/avr-protos.h (legitimate_address_p): Remove.
3154 * config/avr/avr.c (legitimate_address_p): Rename to...
3155 (avr_legitimate_address_p): ... this, make static.
3156 (legitimize_address): Adjust call.
3157 (TARGET_LEGITIMATE_ADDRESS_P): New.
3158
3159 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3160 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
3161 * config/crx/crx.c (crx_legitimate_address_p): Make static.
3162 (TARGET_LEGITIMATE_ADDRESS_P): New.
3163
3164 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3165 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
3166 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
3167 (TARGET_LEGITIMATE_ADDRESS_P): New.
3168
3169 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3170 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
3171 Remove.
3172 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3173 Make static.
3174 (TARGET_LEGITIMATE_ADDRESS_P): New.
3175
3176 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3177 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
3178 Remove.
3179 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
3180 Rename to...
3181 (m68hc11_legitimate_address_p): ... this, make static.
3182 (go_if_legitimate_address_internal): Rename to...
3183 (m68hc11_legitimate_address_p_1): ... this.
3184 (legitimize_address): Adjust call.
3185 (TARGET_LEGITIMATE_ADDRESS_P): New.
3186
3187 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
3188 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
3189 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
3190 (TARGET_LEGITIMATE_ADDRESS_P): New.
3191
3192 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3193 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
3194 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
3195 (mn10300_legitimate_address_p): ... this, make static.
3196 (TARGET_LEGITIMATE_ADDRESS_P): New.
3197
3198 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3199 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
3200 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
3201 (TARGET_LEGITIMATE_ADDRESS_P): New.
3202
3203 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3204 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
3205 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
3206 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3207 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
3208 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
3209 (rs6000_legitimate_address_p): ... this, make static.
3210 (TARGET_LEGITIMATE_ADDRESS_P): New.
3211 (REG_MODE_OK_FOR_BASE_P): Delete.
3212 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
3213
3214 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3215 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
3216 Delete.
3217 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
3218 static, adjust types.
3219 (TARGET_LEGITIMATE_ADDRESS_P): New.
3220
3221 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3222 * config/score/score.c (score_address_p): Rename to...
3223 (score_legitimate_address_p): ... this.
3224 (TARGET_LEGITIMATE_ADDRESS_P): New.
3225 * config/score/score3.c (score3_address_p): Rename to...
3226 (score3_legitimate_address_p): ... this.
3227 * config/score/score7.c (score7_address_p): Rename to...
3228 (score7_legitimate_address_p): ... this.
3229
3230 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
3231 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
3232 GO_IF_LEGITIMATE_ADDRESS): Delete.
3233 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
3234 thumb2_legitimate_address_p): Delete.
3235 (arm_legitimate_address_p): Rename to...
3236 (arm_legitimate_address_outer_p): ... this.
3237 * config/arm/constraints.md ("Uq"): Adjust call.
3238 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
3239 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
3240 to...
c6c3dba9 3241 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
3242 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
3243 static.
c6c3dba9
PB
3244 (TARGET_LEGITIMATE_ADDRESS_P): New.
3245
3246 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3247 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
3248 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
3249 (TARGET_LEGITIMATE_ADDRESS_P): New.
3250
3251 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3252 * config/vax/vax-protos.h (legitimate_address_p): Remove.
3253 * config/vax/vax.c (legitimate_address_p): Rename to...
3254 (vax_legitimate_address_p): ... this, make static.
3255 (TARGET_LEGITIMATE_ADDRESS_P): New.
3256
3257 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3258 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
3259 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
3260 (TARGET_LEGITIMATE_ADDRESS_P): New.
3261
3262 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3263 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
3264 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
3265 (mmix_legitimate_address_p): ... this, make static.
3266 (TARGET_LEGITIMATE_ADDRESS_P): New.
3267
3268 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3269 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
3270 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
3271 (TARGET_LEGITIMATE_ADDRESS_P): New.
3272
3bd0d9c8
PB
32732009-05-14 Paolo Bonzini <bonzini@gnu.org>
3274
3275 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
3276 of MODE_COMPLEX_INT.
3277
fe049033
RO
32782009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3279
3280 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
3281 LCT_NORMAL in function call.
3282 * mips-tdump.c (print_file_desc): Add cast to enum type.
3283 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
3284 (mark_stabs): Add casts to enum types.
3285 (parse_stabs_common): Add casts to enum types.
16f7ad42 3286
b0907a6c
AN
32872009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3288
3289 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
3290 Check for invalid values of LETTER.
3291
d1c8e08a
TG
32922009-05-13 Taras Glek <tglek@mozilla.com>
3293
f3afc8a7
UB
3294 * attribs.c (register_attribute): moved out attribute registration
3295 into register_attribute.
3296 * doc/plugins.texi: Documented register_attribute and
3297 PLUGIN_ATTRIBUTES.
16f7ad42
TG
3298 * gcc-plugin.h: Added forward decl for register_attribute.
3299 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
3300 * plugin.c (register_callback, invoke_plugin_callbacks): Added
3301 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 3302
4ed7f970
DK
33032009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
3304
3305 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
3306 values even in sentinel and empty entries.
3307 (ms_printf_flag_specs): Likewise.
3308 (ms_scanf_flag_specs): Likewise.
3309 (ms_strftime_flag_specs): Likewise.
3310 (ms_print_char_table): Likewise.
3311 (ms_scan_char_table): Likewise.
3312 (ms_time_char_table): Likewise.
3313
3d8fa148
DK
33142009-05-13 Doug Kwan <dougkwan@google.com>
3315
3316 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
3317
f06257d3
AN
33182009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3319
3320 * config/mips/mips.md (store): Add attributes for QI and HI.
3321 Update comment.
3322 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
3323 (truncdi<mode>2): ... this new pattern.
3324
fb201767
BH
33252009-05-13 Brad Hards <bradh@kde.org>
3326
3327 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
3328
c7bda60e 33292009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
3330 Ben Elliston <bje@au.ibm.com>
3331
3332 PR middle-end/40035
3333 * dse.c (check_mem_read_rtx): Guard against width == -1.
3334
ce985b43
MM
33352009-05-13 Michael Matz <matz@suse.de>
3336
3337 PR middle-end/39976
3338 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
3339 (trivially_conflicts_p): New function.
3340 (insert_backedge_copies): Use it.
3341
7de1d221
JJ
33422009-05-13 Janis Johnson <janis187@us.ibm.com>
3343
3344 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
3345 (handle_stdc_pragma): Use new enum constant names.
3346 (handle_pragma_float_const_decimal64): Ditto.
3347
bfefafc6
ILT
33482009-05-13 Ian Lance Taylor <iant@google.com>
3349
3350 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
3351 tree.def.
3352
286c4fcb
NS
33532009-05-13 Nathan Sidwell <nathan@codesourcery.com>
3354
3355 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
3356 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
3357 multilibs.
3358 * config/m68k/m68k.h (FL_UCLINUX): Define.
3359
ebaa6ea7
JH
33602009-05-13 Jan Hubicka <jh@suse.cz>
3361
3362 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
3363
2b703e1a
KK
33642009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3365
3366 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
3367 unless -fschedule-insns is specified.
3368
c3537723
KK
33692009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3370
3371 PR target/39561
3372 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
3373 TARGET_EXPAND_CBRANCHDI4.
3374 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
3375 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
3376 (cmpeqdi): Fix comment.
3377
cdeed45a
KK
33782009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3379
3380 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
3381 (sh_legitimate_address_p): Likewise.
3382 * config/sh/sh.c (sh_legitimate_index_p): New.
3383 (sh_legitimate_address_p): Likewise.
3384 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
3385 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
3386 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
3387 (MAYBE_BASE_REGISTER_RTX_P): New macro.
3388 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3389 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
3390 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
3391 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
3392 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
3393
02f0b13a
JH
33942009-05-12 Jan Hubicka <jh@suse.cz>
3395
3396 * tree-inline.c (estimate_operator_cost): Add operands;
3397 when division happens by constant, it is cheap.
3398 (estimate_num_insns): Loads and stores are not having cost of 0;
3399 EH magic stuff is cheap; when computing runtime cost of switch,
3400 use log2 base of amount of its cases; builtin_expect has cost of 0;
3401 compute cost for moving return value of call.
3402 (init_inline_once): Initialize time_based flags.
3403 * tree-inline.h (eni_weights_d): Add time_based flag.
3404
ecb7f6de
PB
34052009-05-12 Paolo Bonzini <bonzini@gnu.org>
3406
3407 * df-core.c: Update head documentation.
3408
c24151ce
MM
34092009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3410
3411 PR bootstrap/40118
3412 * rs6000.c (rs6000_generate_compare): Use op1b instead of
3413 shadowing exisiting variable op1.
3414
fbdf817d
UB
34152009-05-12 Uros Bizjak <ubizjak@gmail.com>
3416
704bf7c8 3417 PR target/37179
fbdf817d
UB
3418 * config/i386/driver-i386.c (processor_signatures): New enum.
3419 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
3420 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
3421 processor signature to detect geode processor.
3422
5e8d1826
PB
34232009-05-12 Paolo Bonzini <bonzini@gnu.org>
3424
3425 Revert:
3426
3427 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3428
3429 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3430 causes spurious differences between trunk and cond-optab branch.
3431
f90b7a5a
PB
34322009-05-12 Paolo Bonzini <bonzini@gnu.org>
3433
fbdf817d
UB
3434 * dojump.c (compare_from_rtx): Delete.
3435 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
3436 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
3437 if the comparison does not satisfy the predicate; test predicates for
3438 operands 2 and 3 of a cstore pattern. Don't try cstore optab
3439 further if one existing pattern fails.
fbdf817d 3440 * expr.h (compare_from_rtx): Delete.
f90b7a5a 3441 (prepare_operand): Declare it.
fbdf817d 3442 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 3443 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
3444 HAVE_conditional_trap, emit_cmp_insn): Delete.
3445 (can_compare_p): Delete cmp_optab case.
f90b7a5a 3446 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
3447 Accept other parameters by value.
3448 (prepare_operand): Make non-static.
3449 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
3450 other parameters by value. Try to widen operands here based on
3451 an optab_methods argument and looking at cbranch_optab.
3452 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
3453 loop. Use cbranch_optab directly.
3454 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
3455 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
3456 assertion.
3457 (emit_conditional_move, emit_conditional_add): Inline what's needed
3458 of compare_from_rtx, using new prepare_cmp_insn for the rest.
3459 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
3460 with COMPARE. Move cmov_optab and cstore_optab above
3461 with cbranch_optab, move cmp_optab down with ucmp_optab,
3462 remove tst_otpab. Do not initialize trap_rtx.
3463 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
3464 for trap code. Do not check HAVE_conditional_trap. Use
3465 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
3466 * optabs.h (OTI_cmp): Mark as used only for libcalls.
3467 (OTI_ctrap, ctrap_optab): New.
3468 (tst_optab): Delete.
3469 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
3470 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
3471 with lookup of ctrap_optab.
f3afc8a7
UB
3472 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
3473 Delete.
fbdf817d
UB
3474 (ctrap_optab): New.
3475
3476 * combine.c (combine_simplify_rtx, simplify_set): Do not
3477 special case comparing against zero for cc0 machines.
f90b7a5a
PB
3478 * simplify-rtx.c (simplify_binary_operation_1): Never remove
3479 COMPARE on cc0 machines.
3480 (simplify_relational_operation): Return a new expression when
3481 a COMPARE could be removed.
fbdf817d
UB
3482 * final.c (final_scan_insn): Compare cc_status values
3483 against LHS of a (compare FOO (const_int 0)) cc0 source.
3484 Also check if cc_status.value is the full compare.
f90b7a5a 3485
fbdf817d
UB
3486 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
3487 (cstoreMM4): Document.
f90b7a5a 3488 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 3489 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
3490 (Dependent Patterns): Eliminate obsolete information referring to
3491 the old jump optimization phase.
fbdf817d 3492 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
3493 of compares with 0 on cc0 machines.
3494 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
3495 avoiding references to cc0. Remove text about storing operands
3496 in cmpMM.
3497 * doc/tm.texi (Condition Codes): Include blurb on different
3498 condition code representations, separate into subsections for
3499 CC0, MODE_CC and conditional execution.
3500
fbdf817d
UB
3501 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
3502 alpha_emit_setcc): Accept operands and a machine mode.
3503 * config/alpha/alpha.c (alpha_emit_conditional_branch):
3504 Get code/op0/op1 from operands, use machine mode argument
3505 instead of alpha_compare.fp_p. Emit the branch here.
3506 (alpha_emit_setcc): Likewise, and return boolean.
3507 (alpha_emit_conditional_move): Likewise. Assert that
3508 cmp_op_mode == cmp_mode, and simplify accordingly.
3509 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
3510 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
3511 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
3512 Delete.
3513 (stack probe test): Use cbranchdi4.
3514 * config/alpha/predicates.md (alpha_cbranch_operator): New.
3515
3516 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
3517 * config/arc/arc.h (movsicc, movsfcc): Use it.
3518 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
3519 (cbranchsi4, cstoresi4): New.
3520 (cmpsi, bCC and sCC expanders): Remove.
3521
3522 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
3523 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
3524 * config/arm/predicates.md (arm_comparison_operator): Only include
3525 floating-point operators if there is a hardware floating-point unit.
3526 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
3527 deferring to cbranch_cc and cstore_cc respectively.
3528 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
3529 cbranch_cc, cstore_cc): New.
3530 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 3531 arm_compare_op1.
fbdf817d
UB
3532 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
3533
3534 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
3535 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
3536 as an argument.
3537 (adjust_insn_length): Adjust calls.
3538 (avr_reorg): Handle (compare (foo) (const_int 0)).
3539 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
3540 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
3541 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
3542 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
3543 (bCC): Remove.
3544 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
3545 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
3546
fbdf817d
UB
3547 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
3548 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 3549 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
3550 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
3551 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
3552 (bfin_optimize_loop): Use cbranch expander.
3553 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
3554 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
3555 (bfin_bimode_comparison_operator): ... this.
3556 (bfin_direct_comparison_operator): New.
f90b7a5a 3557
fbdf817d
UB
3558 * config/cris/cris.c (cris_normal_notice_update_cc): Look
3559 inside (compare FOO (const_int 0)).
3560 (cris_rtx_costs): Handle ZERO_EXTRACT.
3561 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
3562 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
3563 (*tstdi_v32): Delete.
3564 (*cmpdi_non_v32): Add M alternative for operand 1.
3565 (cmpsi, cmp<mode>): Make private.
3566 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
3567 with COMPARE.
3568 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
3569
3570 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
3571 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
3572 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
3573 (cc_reg_operand): New.
3574 (any_cond): Delete.
fbdf817d
UB
3575 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
3576 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
3577 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
3578 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
3579 crx_expand_scond): Delete.
3580
3581 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
3582 (cbranchsi4): New.
3583 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
3584 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
3585
3586 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
3587 cstoresi4, cstoresf4, cstoredf4): New.
3588 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
3589 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3590 Receive the entire operands array.
3591 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
3592 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
3593 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3594 Get test/op0/op1 from the operands array.
3595 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
3596
3597 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
3598 (h8300_expand_store): New.
3599 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
3600 (const_int 0)).
3601 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
3602 (h8300_expand_store): New.
3603 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
3604 or do not try to produce (set (cc0) REG).
3605 (peepholes): Wrap arguments with COMPARE. Add a peephole to
3606 change a compare into a move to a scratch register. Disable some
3607 peepholes when comparing with zero.
3608 (tstsi, tsthi, tstsi, cmpqi): Make private.
3609 (cmphi): Delete.
3610 (bCC, sCC): Delete.
3611 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
3612 cstoresi4): New.
f90b7a5a
PB
3613
3614 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
3615 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
3616 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
3617 (ix86_emit_i387_log1p): Use cbranchxf2.
3618 (ix86_expand_setcc): Return void.
3619 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
3620 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
3621 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
3622 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
3623 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
3624 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
3625 (sCC and bCC expanders): Remove.
3626 (stack_protect_test): Use cbranchcc4.
3627
fbdf817d
UB
3628 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
3629 Delete.
3630 (ia64_expand_compare): Accept three rtx by reference and return void.
3631 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
3632 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
3633 from *expr. Update *expr with the BImode comparison to do.
3634 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
3635 cmptf, bCC, sCC, conditional_trap): Delete.
3636 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
3637 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
3638 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
3639 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
3640 * config/ia64/predicates.md (ia64_cbranch_operator): New.
3641
3642 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
3643 type of last argument.
3644 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
3645 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
3646 use machine mode argument instead of branch_type. Remove dead
3647 code for floating-point comparisons.
3648 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
3649 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
3650 Remove.
3651 (cbranchsi4, cstoresi4): New.
3652 * config/iq2000/predicates.md (reg_or_const_operand): New.
3653
3654 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
3655 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
3656 (b<code>_op): Rewrite to...
3657 (bcc_op): ... this, using match_operator.
3658 (s<code>_op): Rewrite to...
3659 (scc_op): ... this, using match_operator.
3660 (s<code>_24_op): Rewrite to...
3661 (scc_op_24): ... this, using match_operator.
3662 (s<code>_<mode>): Rewrite to...
3663 (cstore<mode>4): ... this, using match_operator.
3664 (s<code>_<mode>_24): Rewrite to...
3665 (cstore<mode>4_24): ... this, using match_operator.
3666 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
3667 m32c_unpend_compare, m32c_expand_scc): Delete.
3668 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
3669 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
3670 (m32c_expand_movcc): Change NE to EQ if necessary.
3671 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
3672
3673 * config/m32r/m32r-protos.h (gen_cond_store): New.
3674 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
3675 (gen_cond_store): New, from sCC patterns.
3676 (m32r_expand_block_move): Use cbranchsi4.
3677 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
3678 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
3679 (cbranchsi4, cstoresi4): New.
3680
3681 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
3682 Delete.
3683 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 3684 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
3685 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
3686 Delete.
3687 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
3688 cmphi, cmpqi, bCC): Delete.
3689 (cbranchsi4, cbranchhi4, cbranchqi4): New.
3690 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
3691 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
3692 sets with COMPARE.
3693
3694 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
3695 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
3696 * config/m68k/constraints.md (H): New.
3697 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
3698 the define_insn below.
3699 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
3700 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
3701 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
3702 patterns): Wrap RHS with COMPARE.
3703 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
3704 (*cmpdi_internal): Name this pattern.
3705 (cmpdi): Change to define_insn.
3706 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
3707 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
3708 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
3709 predicate.
3710 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
3711 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
3712 (conditional_trap): Change to...
3713 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
3714 (*conditional_trap): Use the ordered_comparison_operator and
3715 const1_operand predicates.
3716 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
3717 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
3718 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
3719 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
3720
3721 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
3722 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
3723 (mcore_gen_compare): New.
3724 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
3725 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
3726 (mcore_gen_compare): ... this.
3727 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
3728 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
3729 (stack probe pattern): Use cbranchsi4.
3730
3731 * config/mips/predicates.md (mips_cstore_operator): New.
3732 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
3733 * config/mips/mips.md (any_cond): Delete.
3734 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
3735 always succeed.
3736 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
3737 fixuns_truncsfdi2): Use cbranch patterns.
3738 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
3739 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
3740 Adjust call to mips_expand_conditional_branch.
3741 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
3742 cstore<GPR:mode>4.
3743 * config/mips/mips-protos.h (mips_expand_conditional_branch,
3744 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
3745 * config/mips/mips.c (cmp_operands): Delete.
3746 (mips_emit_compare): Get comparison operands from *op0/*op1.
3747 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
3748 that it succeeds. Use op0/op1 instead of cmp_operands.
3749 (mips_expand_conditional_branch, mips_expand_conditional_move,
3750 mips_expand_conditional_trap): Likewise.
3751 (mips_block_move_loop): Use cbranch patterns.
3752 * config/mips/mips.h (cmp_operands): Delete.
3753
3754 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
3755 (mmix_gen_compare_reg): Just return a register in the right CC mode.
3756 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
3757 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
3758 (*cmpcc_folded): Rename to...
3759 (*cmpdi_folded): this.
3760 (*cmpcc): Rename to...
3761 (*cmps): ... this.
3762 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
3763 (bCC): Remove.
3764 (cbranchdi4): New.
3765 (cbranchdf4): New. Handle invalid comparisons here.
3766 * config/mmix/predicates.md (float_comparison_operator): New.
3767
3768 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
3769 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
3770 * config/mn10300/mn10300.md (tst): Delete.
3771 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
3772 Name these patterns and wrap RHS in a compare.
3773 (*cmpsi): Make this pattern private. Include tst.
3774 (*cmpsf): Make this pattern private.
3775 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
3776 (compare with zero peepholes): Likewise.
3777 (bCC): Remove.
3778 (cbranchsi4, cbranchsf4): New.
3779 (casesi): Use cbranchsi4.
3780
3781 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
3782 hppa_branch_type): Delete.
3783 (return_addr_rtx): Use cbranchsi4.
3784 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
3785 Emit CCFPmode comparison here.
3786 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
3787 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
3788 hppa_branch_type): Delete.
3789 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
3790 (movsicc, movdicc): Remove references to hppa_compare_op0,
3791 hppa_compare_op1 and compare_from_rtx.
3792 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
3793 (casesi): Use cbranchsi4.
3794
3795 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
3796 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
3797 * config/pdp11/pdp11.md (register_or_const0_operand): New.
3798 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
3799 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
3800 (bCC): Delete.
3801 (cbranchdf4, cbranchhi4, cbranchqi4): New.
3802 (*branch, *branch_inverted): New.
3803
3804 * config/picochip/picochip.md (cbranchhi4): Use
3805 ordered_comparison_operator.
3806 (cmphi, bCC): Remove.
3807
3808 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
3809 (trap_comparison_operator): Delete.
3810 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
3811 rs6000_emit_cbranch): Accept mode and operands.
3812 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
3813 rs6000_compare_fp_p): Delete.
3814 (rs6000_generate_compare): Accept mode and comparison. Extract code
3815 and op0/op1 from there. Replace references to rs6000_compare_op0
3816 and rs6000_compare_op1.
3817 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
3818 extract result from passed operands.
3819 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
3820 extract loc from passed operands.
3821 (rs6000_emit_cmove): Likewise.
3822 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
3823 rs6000_compare_fp_p): Delete.
3824 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
3825 (cbranch<GPR>4, cbranch<FP>4): New.
3826 (cstore<mode>4): New. Consolidate here all choices about when to use
3827 portable or specialized sCC sequences.
3828 (stack_protect_test): Use cbranchsi4.
3829 (conditional_trap): Replace with ctrap<GPR>4.
3830 (conditional trap insn): Replace trap_comparison_operator with
3831 ordered_comparison_operator.
3832
3833 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
3834 (s390_emit_prologue): Use ctrap.
3835 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
3836 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
3837 New predicates replacing...
3838 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
3839 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
3840 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
3841 (add<mode>cc): Do not use s390_compare_op0/op1.
3842 (s<code>): Change to...
3843 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
3844 (seq): Change to...
3845 (cstorecc4): ... this. Handle EQ or NE equally.
3846 (*sne): Un-privatize for use in cstorecc4.
3847 (b<code>): Change to...
3848 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
3849 (conditional_trap): Replace with...
3850 (ctrap<GPR>4, ctrap<FP>4): ... these.
3851 (stack_protect): Use cbranchcc4.
3852
3853 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
3854 * config/score/score-protos.h (score_gen_cmp): Delete.
3855 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
3856 (score_block_move-loop): Use cbranchsi4.
3857 * config/score/score.md (cbranchsi4): New.
3858 (cmpsi, bCC): Delete.
3859 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
3860 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3861 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
3862 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3863 * config/score/score3.h (score3_gen_cmp): Delete.
3864 * config/score/score7.h (score7_gen_cmp): Delete.
3865
3866 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
3867 (sh_emit_scc_to_t): ... this. Return void.
3868 (from_compare): Rename to...
3869 (sh_emit_compare_and_branch): ... this.
3870 (sh_emit_compare_and_set): New.
3871 (sh_expand_t_scc): Accept operands.
3872 * config/sh/predicates.md (sh_float_comparison_operator): New.
3873 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
3874 (prepare_scc_operands): Rename to...
3875 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
3876 arguments.
3877 (sh_emit_cheap_store_flag): New.
f90b7a5a 3878 (sh_emit_set_t_insn): New.
fbdf817d
UB
3879 (from_compare): Rename to...
3880 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
3881 handling of TARGET_SH2E floating point to avoid recursive call.
3882 Generate branch here.
3883 (sh_emit_compare_and_set): New.
3884 (sh_expand_t_scc): Get op0/op1 from arguments.
3885 (sh_emit_cheap_store_flag): New.
3886 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
3887 cases.
f90b7a5a 3888 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
3889 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
3890 (movsicc, movdicc): Do nothing when it recreated operands from
3891 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
3892 prepare_scc_operands (now sh_emit_scc_to_t).
3893 (udivdi3): Use cstoresi4.
3894 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
3895 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
3896 (cbranchint4_media, cbranchfp4_media): New.
3897 (casesi): Use cbranchdi4.
3898 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
3899 Delete.
3900 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
3901 (movnegt): Remove second operand.
3902 (cbranchsf4, cbranchdf4): New.
3903 (stack_protect): Use cbranchdi4/cbranchsi4.
3904
3905 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
3906 (gen_compare_reg): Accept comparison, extract part of it to...
3907 (gen_compare_reg_1): ... this.
3908 (gen_compare_operator): Delete.
3909 (gen_v9_scc): Accept separate destination, comparison code and arms.
3910 Do not use sparc_compare_op0/sparc_compare_op1.
3911 (emit_scc_insn, emit_conditional_branch_insn): New.
3912 (emit_v9_brxx): Make static. Remove useless assertion.
3913 (sparc_emit_float_lib_cmp): Return RTL instead of calling
3914 emit_cmp_insn.
3915 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
3916 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
3917 sparc_emit_float_lib_cmp): Adjust prototype.
3918 (emit_scc_insn, emit_conditional_branch_insn): New.
3919 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
3920 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
3921 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
3922 iterators to the top.
3923 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
3924 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 3925 snedi_special_trunc): Delete.
fbdf817d 3926 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 3927 and snedi_special_trunc.
fbdf817d
UB
3928 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3929 cbranchdi4, cbranch<F:mode>4): New.
3930 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3931 here. Use gen_compare_reg instead of gen_compare_operator.
3932 (conditional_trap): Replace with...
3933 (ctrapsi4, ctrapdi4): ... this.
3934 (stack_protect_test): Use cbranchcc4.
3935
3936 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3937 argument to rtx.
3938 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
3939 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3940 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
3941 from operands[0] or operands[3] depending on is_set.
3942 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3943 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3944 cmpdf, bCC), sCC: Remove.
3945 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
3946 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3947 cstoredf4): New.
3948 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3949 spu_emit_branch_or_set.
3950
3951 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3952 Add two arguments.
3953 * config/stormy16/stormy16.h (xstormy16_compare_op0,
3954 xstormy16_compare_op1): Delete.
3955 * config/stormy16/stormy16.c (xstormy16_compare_op0,
3956 xstormy16_compare_op1): Delete.
3957 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3958 Adjust calls.
3959 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3960 (cmphi, cmpsi, bCC): Remove.
3961
3962 * config/v850/v850.md (tstsi, cmpsi): Fold into...
3963 (*cmpsi): ... this one.
3964 (cbranchsi4, cstoresi4): New.
3965 (bCC expanders): Delete.
3966 (sCC insns): Fold into...
3967 (*setcc): ... this one.
3968 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
3969 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3970 (movsicc): Simplify.
3971 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3972
fbdf817d
UB
3973 * config/vax/vax-protos.h (cond_name): New.
3974 (vax_output_conditional_branch): Remove.
3975 * config/vax/vax.c (cond_name): New.
3976 (vax_output_conditional_branch): Remove.
3977 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3978 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3979 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
3980 (bit<VAXint>): Wrap source with (compare).
3981 (b<code> and following unnamed pattern): Rename to *branch and
3982 *branch_reversed. Change macroization to match_operator.
3983 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3984
3985 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3986 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3987 Change last argument to machine_mode.
3988 (xtensa_expand_scc): Add machine_mode argument.
3989 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3990 (gen_conditional_move, xtensa_expand_conditional_branch,
3991 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3992 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3993 Adjust operand numbers.
3994 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3995 Delete.
3996 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3997 (cmpsi, cmpsf, b<code>, s<code>): Delete.
3998 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 3999
16670495
PB
40002009-05-12 Paolo Bonzini <bonzini@gnu.org>
4001
4002 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4003 causes spurious differences between trunk and cond-optab branch.
4004
4a4a4e99
AO
40052009-05-12 Alexandre Oliva <aoliva@redhat.com>
4006
4007 PR target/37137
4008 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
4009
72b9acff
AO
40102009-05-12 Alexandre Oliva <aoliva@redhat.com>
4011
4012 * tree.c (iterative_hash_pointer): Delete.
4013 (iterative_hash_expr): Short-circuit handling of NULL pointer.
4014 Hash UIDs and versions of SSA names. Don't special-case built-in
4015 function declarations.
4016
b7dd69ac
ILT
40172009-05-11 Ian Lance Taylor <iant@google.com>
4018
4019 PR bootstrap/40103
4020 * graphite.c: Force -Wc++-compat to only be a warning before
4021 #including "cloog/cloog.h".
4022
ed102b70
MJ
40232009-05-11 Martin Jambor <mjambor@suse.cz>
4024
4025 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
4026
08f1af2e
JH
40272009-05-11 Jan Hubicka <jh@suse.cz>
4028
4029 * tree-ssa-loop-ivcanon.c: Include target.h
4030 (struct loop_size): new structure.
4031 (constant_after_peeling): New predicate.
4032 (tree_estimate_loop_size): New function.
4033 (estimated_unrolled_size): Rewrite for new estimates.
4034 (try_unroll_loop_completely): Use new estimates.
4035 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
4036
a7d39bd3
AP
40372009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
4038
4039 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
4040 libcpp interface change.
4041 (spu_macro_to_expand): Likewise.
4042
f5a1f0d0
PB
40432009-05-11 Paolo Bonzini <bonzini@gnu.org>
4044
4045 PR tree-optimization/40026
4046 * gimplify.c (gimplify_init_constructor): Change initial conditional
4047 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
4048 optimize_compound_literals_in_ctor.
4049
c260f01f
NS
40502009-05-11 Nathan Sidwell <nathan@codesourcery.com>
4051
4052 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
4053 New devices.
4054 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
4055
df398a37
L
40562009-05-11 H.J. Lu <hongjiu.lu@intel.com>
4057
4058 * tree-vect-data-refs.c (vect_analyze_group_access): Use
4059 HOST_WIDE_INT for gap.
4060
4da39468
IR
40612009-05-11 Ira Rosen <irar@il.ibm.com>
4062
4063 PR tree-optimization/40074
4064 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
4065 account in group size and step comparison.
4066
4effdf02
RG
40672009-05-11 Richard Guenther <rguenther@suse.de>
4068
4069 * passes.c (init_optimization_passes): Strip now incorrect comment.
4070 (execute_function_todo): Do not set PROP_alias.
4071 * tree-pass.h (PROP_alias): Remove.
4072 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
4073 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
4074 * tree-nrv.c (pass_return_slot): Likewise.
4075 * tree-object-size.c (pass_object_sizes): Likewise.
4076 * tree-ssa-dom.c (pass_dominator): Likewise.
4077 (pass_phi_only_cprop): Likewise.
4078 * tree-ssa-dse.c (pass_dse): Likewise.
4079 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4080 (pass_cselim): Likewise.
4081 * tree-ssa-pre.c (pass_pre): Likewise.
4082 (pass_fre): Likewise.
4083 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4084 * tree-ssa-sink.c (pass_sink_code): Likewise.
4085 * tree-stdarg.c (pass_stdarg): Likewise.
4086 * tree-tailcall.c (pass_tail_calls): Likewise.
4087 * tree-vrp.c (pass_vrp): Likewise.
4088
24b97832
ILT
40892009-05-10 Ian Lance Taylor <iant@google.com>
4090
4091 * basic-block.h (enum profile_status): Break out of struct
4092 control_flow_graph.
4093 * cgraph.h (struct inline_summary): Break out of struct
4094 cgraph_local_info.
4095 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
4096 of struct cgraph_order_sort.
fbdf817d 4097 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
4098 * cse.c (struct branch_path): Break out of struct
4099 cse_basic_block_data.
4100 * except.h (enum eh_region_type): Break out of struct eh_region.
4101 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 4102 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
4103 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
4104 ggc_pch_data.
fbdf817d
UB
4105 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
4106 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
4107 * sched-int.h (enum post_call_group): New enum, broken out of
4108 struct deps.
4109 (struct deps_reg): Break out of struct deps.
4110 * target.h (struct asm_int_op): Break out of struct gcc_target.
4111 * tree-eh.c (struct goto_queue_node): Break out of struct
4112 leh_tf_state.
4113 * tree-inline.h (enum copy_body_cge_which): Break out of
4114 copy_body_data.
4115 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
4116
4117 * c-decl.c (in_struct, struct_types): New static variables.
4118 (pushtag): Add loc parameter. Change all callers.
4119 (lookup_tag): Add ploc parameter. Change all callers.
4120 (check_compound_literal_type): New function.
4121 (parser_xref_tag): Add loc parameter. Change all callers. If
4122 -Wc++-compat, warn about struct/union/enum types defined within a
4123 struct or union.
4124 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
4125 and loc parameters. Change all callers. Change error calls to
4126 error_at, using loc. For a redefinition, if the location of the
4127 original definition is known, report it. Set in_struct and
fbdf817d 4128 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
4129 (finish_struct): Add new parameters enclosing_in_struct and
4130 enclosing_struct_types. Change all callers. Set
4131 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
4132 in the struct. If in a struct, add this struct to struct_types.
4133 (start_enum): Add loc parameter. Change all callers. Use
4134 error_at for errors, using loc. For a redefinition, if the
4135 location of the original definition is known, report it. If in a
4136 struct, add this enum type to struct_types. If -Wc++-compat warn
4137 if in sizeof, typeof, or alignof.
fbdf817d
UB
4138 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
4139 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
4140 (c_parser_enum_specifier): Get enum location for start_enum.
4141 (c_parser_struct_or_union_specifier): Get struct location for
4142 start_struct. Save in_struct and struct_types status between
4143 start_struct and finish_struct.
4144 (c_parser_cast_expression): Get location of cast.
4145 (c_parser_alignof_expression): Get location of type.
4146 (c_parser_postfix_expression): Likewise.
4147 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
4148 parameter. Change all callers. Call check_compound_literal_type.
4149 Use type_loc for error about variable size type.
4150 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
4151 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
4152 (c_cast_expr): Add loc parameter. Change all callers. If
4153 -Wc++-compat, warn about defining a type in a cast.
4154 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
4155 (start_enum, start_struct, finish_struct): Update declarations.
4156 (parser_xref_tag, c_cast_expr): Update declarations.
4157 (check_compound_literal_type): Declare.
4158
7a2738fa
BE
41592009-05-11 Ben Elliston <bje@au.ibm.com>
4160
4161 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
4162 for recent libcpp interface change.
4163 (rs6000_macro_to_expand): Likewise.
4164
af618949
MM
41652009-05-10 Michael Matz <matz@suse.de>
4166
4167 PR target/40031
4168 * config/arm/arm.c (require_pic_register): Emit on entry edge,
4169 not at entry of function.
4170
b7d7a473
RG
41712009-05-10 Richard Guenther <rguenther@suse.de>
4172
4173 PR tree-optimization/40081
4174 Revert
4175 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4176 using the main variant of the element type. Do not fiddle with
4177 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4178
4179 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
4180 structs with volatile fields.
4181
078c3644
JH
41822009-05-10 Jan Hubicka <jh@suse.cz>
4183
4184 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
4185 (estimate_move_cost): Assert that it does not get called for
4186 VOID_TYPE_P.
078c3644
JH
4187 (estimate_num_insns): Skip VOID types in argument handling.
4188 (optimize_inline_calls): Delete unreachable blocks and verify that
4189 callgraph is valid.
4190
39ff5a96
JH
41912009-05-10 Jan Hubicka <jh@suse.cz>
4192
4193 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
4194 * cgraph.c (cgraph_mark_address_taken_node): New function.
4195 (dump_cgraph_node): Dump new flag.
4196 * cgraph.h (struct cgraph_node): Add address_taken.
4197 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
4198 * ipa.c (cgraph_postorder): Prioritize functions with address taken
4199 since new direct calls can be born.
4200
9a0c6187
JM
42012009-05-10 Joseph Myers <joseph@codesourcery.com>
4202
4203 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
4204 tok->val.node.node.
4205
4b685e14
JH
42062009-05-10 Jan Hubicka <jh@suse.cz>
4207
4208 PR middle-end/40084
fb0be169
EB
4209 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
4210 argument; rewrite.
4b685e14
JH
4211 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
4212 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
4213 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
4214 (fold_marked_statements): Update call to
4215 cgraph_update_edges_for_call_stmt.
4b685e14 4216
29d08eba
JM
42172009-05-10 Joseph Myers <joseph@codesourcery.com>
4218
4219 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
4220 identifiers in diagnostics.
4221 * config/arm/arm.c (arm_handle_fndecl_attribute,
4222 arm_handle_isr_attribute): Likewise.
4223 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 4224 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
4225 * config/bfin/bfin.c (handle_int_attribute,
4226 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
4227 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
4228 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
4229 Likewise.
4230 * config/darwin.c (darwin_handle_kext_attribute,
4231 darwin_handle_weak_import_attribute): Likewise.
4232 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
4233 h8300_handle_eightbit_data_attribute,
4234 h8300_handle_tiny_data_attribute): Likewise.
4235 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 4236 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
4237 * config/i386/winnt.c (ix86_handle_shared_attribute,
4238 ix86_handle_selectany_attribute): Likewise.
4239 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4240 * config/m32c/m32c.c (function_vector_handler): Likewise.
4241 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
4242 m68hc11_handle_fntype_attribute): Likewise.
4243 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4244 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4245 * config/mips/mips.c (mips_insert_attributes,
4246 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
4247 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
4248 rs6000_handle_struct_attribute): Likewise.
4249 * config/sh/sh.c (sh_insert_attributes,
4250 sh_handle_resbank_handler_attribute,
4251 sh_handle_interrupt_handler_attribute,
4252 sh2a_handle_function_vector_handler_attribute,
4253 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4254 Likewise.
4255 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
4256 * config/spu/spu.c (spu_handle_fndecl_attribute,
4257 spu_handle_vector_attribute): Likewise.
4258 * config/stormy16/stormy16.c
4259 (xstormy16_handle_interrupt_attribute): Likewise.
4260 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
4261 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4262
f41c4af3
JM
42632009-05-10 Joseph Myers <joseph@codesourcery.com>
4264
782dc37a 4265 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
4266 (pp_translate_identifiers): New.
4267 (pp_identifier): Only conditionally translate identifier to locale
4268 character set.
4269 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
4270 (pp_base_tree_identifier): Only conditionally translate identifier
4271 to locale character set.
4272 * c-pretty-print.c (M_): Define.
4273 (pp_c_type_specifier, pp_c_primary_expression): Mark English
4274 fragments for conditional translation with M_.
4275 * tree-pretty-print.c (maybe_init_pretty_print): Disable
4276 identifier translation.
4277
896d7dbd
RG
42782009-05-10 Richard Guenther <rguenther@suse.de>
4279
4280 PR tree-optimization/40081
4281 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4282 using the main variant of the element type. Do not fiddle with
4283 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4284
9a23acef
JH
42852009-05-09 Jan Hubicka <jh@suse.cz>
4286
4287 PR middle-end/40080
4288 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
4289 indirect calls; verify cgraph afterwards.
4290
d563610d
JH
42912009-05-09 Jan Hubicka <jh@suse.cz>
4292
4293 PR bootstrap/40082
4294 * ipa.c (update_inlined_to_pointer): New function.
4295 (cgraph_remove_unreachable_nodes): Use it.
4296
f08a18d0
JH
42972009-05-09 Jan Hubicka <jh@suse.cz>
4298
4299 * tree-eh.c (struct leh_state): Remove prev_try.
4300 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
4301 not track prev_try.
4302 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
4303 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
4304 remove_eh_handler_and_replace, foreach_reachable_handler,
4305 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
4306 * except.h (struct eh_region): Remove eh_region_u_cleanup.
4307 (gen_eh_region_cleanup): Update prototype.
4308
0afd7219
JH
43092009-05-09 Jan Hubicka <jh@suse.cz>
4310
4311 PR middle-end/40043
4312 * except.c (copy_eh_region): Always set prev_try.
4313 (redirect_eh_edge_to_label): Find outer try.
4314 (foreach_reachable_handler): When looking for prev try
4315 handle case where previous try is not going to be taken.
4316
ad6c0864
MM
43172009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4318
4319 PR tree-optimization/40049
4320 * tree-vect-stmts.c (vectorizable_operation): If the machine has
4321 only vector/vector shifts, convert the type of the constant to the
4322 appropriate type to avoid building incorrect trees, which
4323 eventually have problems with garbage collection.
4324
c94f9067
JM
43252009-05-08 Joseph Myers <joseph@codesourcery.com>
4326
4327 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
4328 -1 for complex floating-point types if honoring signed zeros.
4329
9187e02d
JH
43302009-05-08 Jan Hubicka <jh@suse.cz>
4331
20acb8a2
EB
4332 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
4333 argument; handle correctly when profile is absent.
9187e02d
JH
4334 (build_cgraph_edges): Update.
4335 (rebuild_cgraph_edges): Update.
20acb8a2
EB
4336 * cgraph.c: Do not include varray.h.
4337 (cgraph_set_call_stmt_including_clones): New function.
4338 (cgraph_create_edge_including_clones): Likewise
4339 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
4340 (cgraph_update_edges_for_call_stmt): Handle clones.
4341 (cgraph_remove_node): Handle clone tree.
4342 (cgraph_remove_node_and_inline_clones): New function.
4343 (dump_cgraph_node): Dump clone tree.
4344 (cgraph_clone_node): Handle clone tree.
20acb8a2 4345 (clone_function_name): Bring here from tree-inline.c.
9187e02d 4346 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
4347 * cgraph.h (ipa_replace_map): Move here from ipa.h.
4348 (cgraph_clone_info): New function.
9187e02d 4349 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
4350 (cgraph_remove_node_and_inline_clones,
4351 cgraph_set_call_stmt_including_clones,
4352 cgraph_create_edge_including_clones,
4353 cgraph_create_virtual_clone): Declare.
9187e02d
JH
4354 (cgraph_function_versioning): Use VEC argument.
4355 (compute_call_stmt_bb_frequency): Update prototype.
4356 (cgraph_materialize_all_clones): New function.
4357 * ipa-cp.c (ipcp_update_cloned_node): Remove.
4358 (ipcp_create_replace_map): Update to VECtors.
4359 (ipcp_update_callgraph): Use virtual clones.
4360 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
4361 (ipcp_update_profiling): Do not update local profiling.
4362 (ipcp_insert_stage): Use VECtors and virtual clones.
4363 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
4364 (clone_of_p): New function.
4365 (cgraph_preserve_function_body_p): Use clone tree.
4366 (cgraph_optimize): Materialize clones.
4367 (cgraph_function_versioning): Update for VECtors.
4368 (save_inline_function_body): Use clone tree.
20acb8a2
EB
4369 (cgraph_materialize_clone): New function.
4370 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
4371 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
4372 * ipa.c: Include gimple.h.
4373 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
4374 * ipa-prop.c (ipa_note_param_call): Update call to
4375 compute_call_stmt_bb_frequencycall.
9187e02d 4376 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 4377 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
4378 (copy_bb): Handle updating of clone tree; add new edge when new call
4379 appears.
4380 (expand_call_inline): Be strict about every call having edge.
4381 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
4382 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
4383 (tree_function_versioning): Use VECtors; always remove unreachable
4384 blocks and fold conditionals.
4385 * tree-inline.h: Do not include varray.h.
9187e02d
JH
4386 (tree_function_versioning): Remove.
4387 * Makefile.in (GTFILES): Remove tree-inline.c
4388 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
4389 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
4390 tree.
9187e02d 4391
9b86d6bb
L
43922009-05-08 H.J. Lu <hongjiu.lu@intel.com>
4393 Andrew Morrow <acm@google.com>
4394
4395 PR c/36892
4396 * c-common.c (c_common_attribute_table): Permit deprecated
4397 attribute to take an optional argument.
4398 (handle_deprecated_attribute): If the optional argument to
4399 __attribute__((deprecated)) is not a string ignore the attribute
4400 and emit a warning.
4401
4402 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
4403 * c-typeck.c (build_component_ref): Likewise.
4404 (build_external_ref): Likewise.
4405
4406 * toplev.c (warn_deprecated_use): Add an attribute argument.
4407 Emit the message associated with __attribute__((deprecated)).
4408
4409 * toplev.h (warn_deprecated_use): Updated.
4410
4411 * doc/extend.texi: Document new optional parameter to
4412 __attribute__((deprecated))
4413
82ad047f
ME
44142009-05-08 Michael Eager <eager@eagercon.com>
4415
4416 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
4417 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
4418
788d3075
RG
44192009-05-08 Richard Guenther <rguenther@suse.de>
4420
4421 PR tree-optimization/40062
4422 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
4423 Avoid exponential behavior.
4424
00952e97
PB
44252009-05-08 Paolo Bonzini <bonzini@gnu.org>
4426
4427 PR rtl-optimization/33928
4428 PR 26854
4429 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
4430 process_uses, build_single_def_use_links): New.
4431 (update_df): Update use_def_ref.
4432 (forward_propagate_into): Use get_def_for_use instead of use-def
4433 chains.
4434 (fwprop_init): Call build_single_def_use_links and let it initialize
4435 dataflow.
4436 (fwprop_done): Free use_def_ref.
4437 (fwprop_addr): Eliminate duplicate call to df_set_flags.
4438 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
4439 df_rd_simulate_one_insn): New.
4440 (df_rd_bb_local_compute_process_def): Update head comment.
4441 (df_chain_create_bb): Use the new RD simulation functions.
4442 * df.h (df_rd_simulate_artificial_defs_at_top,
4443 df_rd_simulate_one_insn): New.
4444 * opts.c (decode_options): Enable fwprop at -O1.
4445 * doc/invoke.texi (-fforward-propagate): Document this.
4446
2ca862e9
JM
44472009-05-08 Joseph Myers <joseph@codesourcery.com>
4448
4449 PR c/24581
4450 * c-typeck.c (build_binary_op): Handle arithmetic between one real
4451 and one complex operand specially.
4452 * tree-complex.c (some_nonzerop): Do not identify a real value as
4453 zero if flag_signed_zeros.
4454
3e807ffc
PB
44552009-05-08 Paolo Bonzini <bonzini@gnu.org>
4456
4457 PR rtl-optimization/33928
7925c06c 4458 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 4459
1bfdbb29
PB
44602009-05-08 Paolo Bonzini <bonzini@gnu.org>
4461
4462 PR rtl-optimization/33928
e913423f
EB
4463 * loop-invariant.c (struct use): Add addr_use_p.
4464 (struct def): Add n_addr_uses.
4465 (struct invariant): Add cheap_address.
4466 (create_new_invariant): Set cheap_address.
4467 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
4468 (record_uses): Pass df_ref to record_use.
4469 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
4470 used only as such.
1bfdbb29 4471
702cb2a0
KK
44722009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
4473
4474 * config/sh/sh.c: Do not include c-pragma.h.
4475
5e8df753
AP
44762009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
4477
4478 * config/spu/spu.c: Remove include of c-common.h.
4479
6ec637a4
JJ
44802009-05-07 Janis Johnson <janis187@us.ibm.com>
4481
4482 PR c/39037
4483 * c-common.h (mark_valid_location_for_stdc_pragma,
4484 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
4485 clear_float_const_decimal64, float_const_decimal64_p): New.
4486 * c.opt (Wunsuffixed-float-constants): New.
4487 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
4488 unsuffixed float constant, handle new warning.
4489 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
4490 * c-decl.c (c_scope): New flag float_const_decimal64.
4491 (set_float_const_decimal64, clear_float_const_decimal64,
4492 float_const_decimal64_p): New.
4493 (push_scope): Set new flag.
4494 * c-parser.c (c_parser_translation_unit): Mark when it's valid
4495 to use STDC pragmas.
4496 (c_parser_external_declaration): Ditto.
4497 (c_parser_compound_statement_nostart): Ditto.
4498 * c-pragma.c (valid_location_for_stdc_pragma,
4499 mark_valid_location_for_stdc_pragma,
4500 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
4501 handle_pragma_float_const_decimal64): New.
4502 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
4503 * cp/semantics.c (valid_location_for_stdc_pragma_p,
4504 set_float_const_decimal64, clear_float_const_decimal64,
4505 float_const_decimal64_p): New dummy functions.
4506 * doc/extend.texi (Decimal Float): Remove statement that the
4507 pragma, and suffix for double constants, are not supported.
4508 * doc/invoke.texi (Warning Options): List new option.
4509 (-Wunsuffixed-float-constants): New.
4510
45b9b2e9
SB
45112009-05-08 Steven Bosscher <steven@gcc.gnu.org>
4512
4513 * config/i386/i386.c: Do not include c-common.h.
4514
e71da632
MH
45152009-05-07 Mark Heffernan <meheff@google.com>
4516
4517 * doc/invoke.texi (Debugging Options): Document change of debugging
4518 dump location.
e913423f 4519 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
4520 aux_base_name directory.
4521
fe4c7bc6
HS
45222009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
4523
4524 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
4525 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
4526
3b3e44eb
RAE
45272009-05-07 Rafael Avila de Espindola <espindola@google.com>
4528
4529 * Makefile.in (install-plugin): Simplify a bit.
4530
fac41238
PB
45312009-05-07 Paolo Bonzini <bonzini@gnu.org>
4532
4533 * Makefile.in (OBJS-common): Add regcprop.o.
4534 (regcprop.o): New.
4535 * timevar.def (TV_CPROP_REGISTERS): New.
4536 * regrename.c (regrename_optimize): Return 0.
4537 (rest_of_handle_regrename): Delete.
4538 (pass_rename_registers): Point to regrename_optimize.
4539 (struct value_data_entry, struct value_data,
4540 kill_value_one_regno, kill_value_regno, kill_value,
4541 set_value_regno, init_value_data, kill_clobbered_value,
4542 kill_set_value, kill_autoinc_value, copy_value,
4543 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
4544 replace_oldest_value_reg, replace_oldest_value_addr,
4545 replace_oldest_value_mem, copyprop_hardreg_forward_1,
4546 debug_value_data, validate_value_data): Move...
4547 * regcprop.c: ... here.
4548 (rest_of_handle_cprop): Delete.
4549 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
4550
472e0df9
JJ
45512009-05-07 Jakub Jelinek <jakub@redhat.com>
4552
4553 PR middle-end/40057
4554 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
4555 GEN_INT for 1 << bitnum.
4556 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
4557 build_int_cst_type.
4558
0d50d55a
UB
45592009-05-07 Uros Bizjak <ubizjak@gmail.com>
4560
4561 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 4562 Remove wrong description of "nand" operation.
0d50d55a 4563
22f597f1
RG
45642009-05-06 Richard Guenther <rguenther@suse.de>
4565 Adam Nemet <anemet@caviumnetworks.com>
4566
4567 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
4568 comment. Add that if LHS is not a gimple register, then RHS1 has
4569 to be a single object (GIMPLE_SINGLE_RHS).
4570
641cac0b
AN
45712009-05-06 Adam Nemet <anemet@caviumnetworks.com>
4572
4573 * expr.c (get_def_for_expr): Move it up in the file.
4574 (store_field): When expanding a bit-field store, look at the
4575 defining gimple stmt for the masking conversion.
4576
5a5c6435
JJ
45772009-05-06 Janis Johnson <janis187@us.ibm.com>
4578
4579 PR middle-end/39986
4580 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
4581 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
4582 32-bit memcpy into long.
4583
96474f36
JJ
45842009-05-06 Jakub Jelinek <jakub@redhat.com>
4585
4586 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
4587 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
4588 new_reg_loc_descr.
4589 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
4590 instead of appending DW_OP_deref*.
4591
529ff441
MM
45922009-05-06 Michael Matz <matz@suse.de>
4593
4594 PR middle-end/40021
4595 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
4596 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
4597
9419a9fd
RAE
45982009-05-06 Rafael Avila de Espindola <espindola@google.com>
4599
4600 * Makefile.in (install-plugin): Fix srcdir handling.
4601
fff1894c
AB
46022009-05-06 Andrey Belevantsev <abel@ispras.ru>
4603
4604 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
4605 when processing for not_regs_needed bitmap.
4606 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
4607 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
4608 handling it for rhs.
4609
700ae70c
L
46102009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4611
ab3426a7 4612 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 4613 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
4614 * config/i386/predicates.md (incdec_operand): Likewise.
4615 (aligned_operand): Likewise.
4616 * config/i386/sse.md (divv8sf3): Likewise.
4617 (sqrtv8sf2): Likewise.
4618
67341fb5
L
46192009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4620
4621 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
4622
4623 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
4624
87946f42
L
46252009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4626
4627 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
4628 ssemodesuffixf2c with avxmodesuffixf2c.
4629
1202aec1
JM
46302009-05-06 Joseph Myers <joseph@codesourcery.com>
4631
4632 PR c/40032
aa016ff7 4633 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 4634
6e57a01d
JJ
46352009-05-05 Jakub Jelinek <jakub@redhat.com>
4636
4637 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
4638 (struct tree_base): Adjust spacing for 8 bit boundaries.
4639 (struct tree_decl_common): Add decl_by_reference_flag bit.
4640 (DECL_BY_REFERENCE): Adjust.
4641 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
4642 print DECL_BY_REFERENCE bit.
4643 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
4644 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
4645 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
4646 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
4647 unconditionally.
4648
32f579f6
JJ
4649 PR middle-end/39666
4650 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
4651 range of the type, but default label is missing, add it with one
4652 of the existing labels instead of adding a new label for it.
4653
617ab743
JM
46542009-05-05 Joseph Myers <joseph@codesourcery.com>
4655
4656 * dwarf.h: Remove.
4657
bf016de8
RAE
46582009-05-05 Rafael Avila de Espindola <espindola@google.com>
4659
4660 * Makefile.in (enable_plugin, plugin_includedir): New.
4661 (install): Depend on install-plugin.
4662 (PLUGIN_HEADERS): New.
4663 (install-plugin): New.
4664 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
4665
7f8fdb9f
RG
46662009-05-05 Richard Guenther <rguenther@suse.de>
4667
4668 PR tree-optimization/40022
4669 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
4670 the only vuse.
4671 (phivn_valid_p): Fix tuplification error, simplify.
4672 (phiprop_insert_phi): Add dumps.
4673 (propagate_with_phi): Simplify.
4674
8d972839
RG
46752009-05-05 Richard Guenther <rguenther@suse.de>
4676
4677 PR middle-end/40023
aa016ff7 4678 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 4679
66ba9b0b
SZ
46802009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
4681
4682 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
4683 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
4684 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
4685 block_ultimate_origin): Rearrange the declarations line to match the
4686 comment that indicates the .c file which the functions are defined.
4687 (dwarf2out_*, set_decl_rtl): Add comment.
4688 (get_base_address): Adjust comment.
4689 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
4690 declarations line and add comment.
4691 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 4692
4f1e4960
JM
46932009-05-04 Joseph Myers <joseph@codesourcery.com>
4694
4695 * attribs.c (decl_attributes): Use %qE for identifiers in
4696 diagnostics.
4697 * cgraphunit.c (verify_cgraph_node): Translate function names to
4698 locale character set in diagnostics.
4699 * coverage.c (get_coverage_counts): Use %qE for identifiers in
4700 diagnostics.
4701 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
4702 Document that functions are named in UTF-8.
4703 * expr.c (expand_expr_real_1): Translate function names to locale
4704 character set in diagnostics.
4705 * gimplify.c (omp_notice_variable, omp_is_private,
4706 gimplify_scan_omp_clauses): Use %qE for identifiers in
4707 diagnostics.
4708 * langhooks.c (lhd_print_error_function): Translate function names
4709 to locale character set.
4710 * langhooks.h (decl_printable_name): Document that return value is
4711 in internal character set.
4712 * stmt.c: Include pretty-print.h
4713 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
4714 diagnostics.
4715 (resolve_operand_name_1): Translate named operand name to locale
4716 character set.
4717 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
4718 diagnostics.
4719 * toplev.c (announce_function): Translate function names to locale
4720 character set.
4721 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
4722 (default_tree_printer): Use pp_identifier or translate identifiers
4723 to locale character set. Mark "<anonymous>" for translation.
4724 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
4725 for identifiers in diagnostics.
4726 * tree.c (handle_dll_attribute): Use %qE for identifiers in
4727 diagnostics.
4728 * varasm.c (output_constructor): Use %qE for identifiers in
4729 diagnostics.
4730
40540e68
RAE
47312009-05-04 Rafael Avila de Espindola <espindola@google.com>
4732
4733 * configure.ac: use ` ` instead of $()
4734 * configure: Regenerate.
4735
33fc884c
BE
47362009-05-05 Ben Elliston <bje@au.ibm.com>
4737
4738 * config/pa/linux-atomic.c: Eliminate conditional include of
4739 errno.h on non-LP64 systems to simplify build requirements.
4740
88388a52
JM
47412009-05-04 Joseph Myers <joseph@codesourcery.com>
4742
4743 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
4744 diagnostics.
4745 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
4746 and pass value to identifier_to_locale.
4747 (warn_variable_length_array): Make name a tree.
4748 (grokdeclarator): Separate diagnostic texts for named and unnamed
4749 declarators. Use %qE for named declarators.
4750 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
4751 diagnostics.
4752 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
4753 identifiers in diagnostics.
4754 * c-typeck.c (push_member_name, start_init): Pass identifiers to
4755 identifier_to_locale. Mark "anonymous" strings for translation.
4756
960c5c79
ME
47572009-05-04 Michael Eager <eager@eagercon.com>
4758
4759 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 4760 address for DImode/DFmode only if double-precision FP regs.
960c5c79 4761
d083fbba
ME
47622009-05-04 Michael Eager <eager@eagercon.com>
4763
4764 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
4765 TARGET_SINGLE_FLOAT check.
4766
c3ba8d32
ME
47672009-05-04 Michael Eager <eager@eagercon.com>
4768
4769 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
4770
edce9f18
ME
47712009-05-04 Michael Eager <eager@eagercon.com>
4772
4773 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
4774 * config/rs6000/t-xilinx: New
4775
506d7b68
PB
47762009-05-04 Paolo Bonzini <bonzini@gnu.org>
4777
e913423f 4778 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
4779 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
4780 * gcc/explow.c (memory_address): Use target hook.
4781 * gcc/targhooks.c (default_legitimize_address): New.
4782 * gcc/targhooks.h (default_legitimize_address): New.
4783 * gcc/target.h (legitimize_address): New.
4784 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
4785 (TARGET_INITIALIZER): Include it.
4786 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
4787
4788 * config/bfin/bfin-protos.h (legitimize_address): Remove.
4789 * config/bfin/bfin.c (legitimize_address): Remove.
4790 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
4791 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
4792 Remove.
506d7b68
PB
4793 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
4794 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
4795
4796 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
4797 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
4798 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
4799 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
4800 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
4801 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
4802 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
4803 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
4804 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
4805 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
4806 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
4807 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
4808 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
4809 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
4810 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
4811 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
4812 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
4813 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
4814 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
4815 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
4816 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
4817 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
4818 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
4819
4820 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
4821 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
4822 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
4823 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
4824 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
4825 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
4826 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
4827 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
4828 (thumb_legitimize_address): Delete.
4829 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
4830 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
4831 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
4832 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
4833 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
4834 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
4835 Delete.
4836 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
4837 Delete.
506d7b68
PB
4838
4839 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
4840 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
4841 * config/m32r/m32r.c (m32r_legitimize_address): New.
4842 * config/m68k/m68k.c (m68k_legitimize_address): New.
4843 * config/score/score.c (score_legitimize_address): Standardize.
4844 * config/score/score3.c (score3_legitimize_address): Standardize.
4845 * config/score/score3.h (score3_legitimize_address): Adjust.
4846 * config/score/score7.c (score7_legitimize_address): Standardize.
4847 * config/score/score7.h (score7_legitimize_address): Adjust.
4848 * config/sh/sh.c (sh_legitimize_address): New.
4849 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
4850
4851 * gcc/config/s390/s390.c (legitimize_address): Rename to...
4852 (s390_legitimize_address): ... this.
4853 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
4854 (sparc_legitimize_address): ... this.
4855 * gcc/config/i386/i386.c (legitimize_address): Rename to...
4856 (ix86_legitimize_address): ... this.
4857 * gcc/config/avr/avr.c (legitimize_address): Rename to...
4858 (avr_legitimize_address): ... this.
4859 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
4860 (mn10300_legitimize_address): ... this.
4861 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
4862 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
4863 (alpha_expand_mov): Adjust call.
4864
4865 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
4866 * config/spu/spu.c (spu_legitimize_address): Likewise.
4867 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
4868 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
4869
a3af5087
JM
48702009-05-04 Joseph Myers <joseph@codesourcery.com>
4871
4872 * intl.c (locale_encoding, locale_utf8): New.
4873 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
4874 * intl.h (locale_encoding, locale_utf8): Declare.
4875 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
4876 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
4877 New.
4878 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
4879 argument.
4880 (pp_tree_identifier): Define to call pp_base_tree_identifier.
4881 (pp_base_tree_identifier): Declare as function.
4882 (identifier_to_locale): Declare.
4883 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 4884 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 4885
ea5cd5f1
RG
48862009-05-04 Richard Guenther <rguenther@suse.de>
4887
4888 PR middle-end/40015
4889 * builtins.c (fold_builtin_memory_op): Do not decay to element
4890 type if the size matches the whole array.
4891
ddc2690a
KH
48922009-05-04 Kazu Hirata <kazu@codesourcery.com>
4893
4894 * expmed.c (synth_mult): When trying out a shift, pass the result
4895 of a signed shift.
4896
ef268d34
KH
48972009-05-04 Kazu Hirata <kazu@codesourcery.com>
4898
4899 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
4900 (shiftsub1_cost): New.
4901 (init_expmed): Compute shiftsub1_cost.
4902 (synth_mult): Optimize multiplications by constants of the form
4903 -(2^^m-1) for some constant positive integer m.
4904
255d3827
RG
49052009-05-03 Richard Guenther <rguenther@suse.de>
4906
4907 PR c/39983
4908 * c-typeck.c (array_to_pointer_conversion): Do not built
4909 ADDR_EXPRs of arrays of pointer-to-element type.
4910 * c-gimplify.c (c_gimplify_expr): Revert change fixing
4911 up wrong ADDR_EXPRs after-the-fact.
4912 * c-common.c (strict_aliasing_warning): Strip pointer
4913 conversions for obtaining the original type.
4914 * builtins.c (fold_builtin_memset): Handle array types.
4915 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
4916 and array types
4917
16c33770
RG
49182009-05-03 Richard Guenther <rguenther@suse.de>
4919
4920 PR middle-end/23329
4921 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
4922 Do not lose casts from array types with unknown extent to array
4923 types with known extent.
4924 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
4925 alias set compatibility.
4926
62a67c94
MLI
49272009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
4928
4929 * flags.h (extra_warnings): Delete.
4930 * toplev.c (process_options): Handle Wuninitialized here.
4931 * opts.c (extra_warnings): Delete.
4932 (set_Wextra): Delete.
4933 (common_handle_option): -Wextra can be handled automatically.
4934 * c-opts.c (c_common_handle_option): Delete obsolete code.
4935 (c_common_post_options): Simplify comment.
4936 * common.opt (W): Add Var.
4937 (Wextra): Add Var.
4938 (Wuninitialized): Initialize to -1.
4939
8c7926c4
AN
49402009-05-03 Adam Nemet <anemet@caviumnetworks.com>
4941 Richard Guenther <rguenther@suse.de>
4942
4943 * expr.c (get_def_for_expr): New function.
4944 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4945 SSA rather than trees.
4946 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
4947 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4948
fa5da7de
JM
49492009-05-03 Joseph Myers <joseph@codesourcery.com>
4950
4951 * c-common.c (reswords): Add _Imaginary.
4952 * c-common.c (enum rid): Add RID_IMAGINARY.
4953
2ddd5020
PB
49542009-05-03 Paolo Bonzini <bonzini@gnu.org>
4955
4956 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4957 Patch by Richard Guenther.
4958
aea88c05
AS
49592009-05-03 Anatoly Sokolov <aesok@post.ru>
4960
4961 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4962 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4963 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4964 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4965 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4966 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4967 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4968 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4969 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4970 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4971 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4972 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4973 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4974 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4975 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4976 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4977 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4978 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4979
85e59f3a
RG
49802009-05-02 Richard Guenther <rguenther@suse.de>
4981
4982 PR tree-optimization/39940
4983 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4984 doing so.
4985
4636b850
RG
49862009-05-02 Richard Guenther <rguenther@suse.de>
4987
4988 PR middle-end/40001
4989 * tree-ssa.c (execute_update_addresses_taken): Properly check
4990 if we can mark a variable DECL_GIMPLE_REG_P.
4991 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4992 back to the end of the function.
4993 (is_gimple_reg_type): Remove complex type special casing.
4994 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4995 if not optimizing.
4996
5e10cb5a
BE
49972009-05-02 Ben Elliston <bje@au.ibm.com>
4998
4999 * doc/collect2.texi (Collect2): Document search path behaviour
5000 when configured with --with-ld.
5001
048bf48b
JH
50022009-05-02 Jan Hubicka <jh@suse.cz>
5003
5004 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
5005 parameter; update callers.
aa016ff7
UB
5006 (coalesce_cost_edge): EH edges are costier because they needs
5007 splitting even if not critical and even more costier when there are
5008 multiple EH predecestors.
048bf48b 5009
d5c5f9ab
JH
50102009-05-02 Jan Hubicka <jh@suse.cz>
5011
5012 * except.c (remove_eh_handler_and_replace): Handle updating after
5013 removing TRY blocks.
5014
2ed1959a
EB
50152009-05-02 Eric Botcazou <ebotcazou@adacore.com>
5016
5017 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
5018
d363a7e7
SB
50192009-05-02 Steven Bosscher <steven@gcc.gnu.org>
5020
5021 * varasm.c: Do not include c-pragma.h.
5022 * attribs.c: Do not incude c-common.h.
5023
9c3d55b4
MM
50242009-05-01 Michael Matz <matz@suse.de>
5025
5026 * calls.c (initialize_argument_information): Handle SSA names like
5027 decls with a non MEM_P DECL_RTL.
5028
ea264ca5
SB
50292009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5030
5031 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
5032 * ipa-utils.c: Likewise.
5033 * ipa-type-escape.c: Likewise.
5034 * cgraphunit.c Do not include c-common.h.
5035 * ipa-pure-const.c: Likewise.
5036 * tree-if-conv.c: Likewise.
5037 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
5038 * ipa-struct-reorg.c: Likewise.
5039 * tree-nomudflap.c: Likewise.
5040 * tree-ssa-structalias.c: Likewise.
5041
6c5d4d1a
SB
50422009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5043
5044 * store-motion.c: Many cleanups to make this pass a first-class
5045 citizen instead of an appendix to gcse load motion. Add TODO list
5046 to make this pass faster/cleaner/better.
5047
5048 (struct ls_expr): Post gcse.c-split cleanups.
5049 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
5050 "stores" field to "avail_stores".
5051 (pre_ldst_mems): Rename to store_motion_mems.
5052 (pre_ldst_table): Rename to store_motion_mems_table.
5053 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
5054 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
5055 (ldst_entry): Rename to st_expr_entry, update users.
5056 (free_ldst_entry): Rename to free_st_expr_entry, update users.
5057 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
5058 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
5059 update caller.
6c5d4d1a
SB
5060 (first_ls_expr): Rename to first_st_expr, update users.
5061 (next_ls_expr): Rename to next_st_expr, update users.
5062 (print_ldst_list): Rename to print_store_motion_mems. Print names of
5063 fields properly for store motion instead of names inherited from load
5064 motion in gcse.c.
5065 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
5066 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
5067 are done with it.
5068
5069 (ae_kill): Rename to st_kill, update users.
5070 (ae_gen): Rename to st_avloc, update users.
5071 (transp): Rename to st_transp, update users.
5072 (pre_insert_map): Rename to st_insert_map, update users.
5073 (pre_delete_map): Rename to st_delete_map, update users.
5074 (insert_store, build_store_vectors, free_store_memory,
5075 one_store_motion_pass): Update for abovementioned changes.
5076
5077 (gcse_subst_count, gcse_create_count): Remove.
5078 (one_store_motion_pass): New statistics counters "n_stores_deleted"
5079 and "n_stores_created", local variables.
5080
5081 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
5082 use for_each_rtx.
5083
5084 (regvec, compute_store_table_current_insn): Remove.
5085 (reg_set_info, reg_clear_last_set): Remove.
5086 (compute_store_table): Use DF caches instead of local dataflow
5087 solvers.
5088
b02cec6e
JM
50892009-05-01 Joseph Myers <joseph@codesourcery.com>
5090
5091 * c-objc-common.c (c_tree_printer): Print identifiers with
5092 pp_identifier, not pp_string. Mark "({anonymous})" for
5093 translation.
5094 * c-pretty-print.c (pp_c_ws_string): New.
5095 (pp_c_cv_qualifier, pp_c_type_specifier,
5096 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
5097 pp_c_storage_class_specifier, pp_c_function_specifier,
5098 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
5099 pp_c_primary_expression, pp_c_postfix_expression,
5100 pp_c_unary_expression, pp_c_shift_expression,
5101 pp_c_relational_expression, pp_c_equality_expression,
5102 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
5103 use pp_string and pp_c_ws_string in place of pp_identifier and
5104 pp_c_identifier for non-identifiers. Mark English strings for
5105 translation.
5106 * c-pretty-print.h (pp_c_ws_string): Declare.
5107
cd533689
PP
51082009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
5109 Roland McGrath <roland@redhat.com>
5110
aa016ff7 5111 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
5112 (ENABLE_LD_BUILDID): New configuration option.
5113 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
5114 (LINK_BUILDID_SPEC): New macro.
5115 (init_spec): If defined, prepend it between LINK_EH_SPEC and
5116 link_spec.
5117 * doc/install.texi: Document --enable-linker-build-id option.
5118 * configure: Rebuild.
5119 * config.in: Rebuild.
5120
ba6adec4
AN
51212009-04-30 Adam Nemet <anemet@caviumnetworks.com>
5122
5123 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
5124 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
5125 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
5126 MIPS_GP_SAVE_AREA_SIZE.
5127 * config/mips/mips.c (struct mips_frame_info): Update comment
5128 before arg_pointer_offset and hard_frame_pointer_offset.
5129 (mips_compute_frame_info): Update diagram before function: to
5130 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
5131 indicate the position of frame_pointer_rtx with -fstack-protector and
5132 to show args_size. Don't allocate cprestore area for leaf functions
5133 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
5134 cprestore_size.
5135 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
5136
48f5b722
MM
51372009-04-30 Michael Matz <matz@suse.de>
5138
ba6adec4
AN
5139 PR tree-optimization/39955
5140 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 5141
b65d6744
DK
51422009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
5143
5144 * ira.c (setup_cover_and_important_classes): Use safe macro
5145 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
5146 directly.
5147 * genpreds.c (write_tm_preds_h): Output suitable definition of
5148 REG_CLASS_FOR_CONSTRAINT.
5149
f136c8ae
RAE
51502009-04-30 Rafael Avila de Espindola <espindola@google.com>
5151
5152 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
5153 instead of an int.
5154 * bitmap.c (bitmap_descriptor): Likewise.
5155 * ggc-common.c (loc_descriptor): Likewise.
5156 * varray.c (varray_descriptor): Likewise.
5157 * vec.c (vec_descriptor): Likewise.
5158
43fcece8 51592009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
5160
5161 * Makefile.in (dce.o): Add $(EXCEPT_H).
5162 * dce.c: Include except.h and delete redundant vector definitions.
5163 (deletable_insn_p): Return false for non-call insns that can throw
5164 if DF is running.
5165
df35c271
SB
51662009-04-30 Steven Bosscher <steven@gcc.gnu.org>
5167
5168 * gcse.c (ae_gen): Remove.
5169 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
5170 and make non-static function to make it available in store-motion.c.
5171 Update call sites with search-and-replace.
5172 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
5173 extract_mentioned_regs, extract_mentioned_regs_helper,
5174 find_moveable_store, compute_store_table, load_kills_store, find_loads,
5175 store_killed_in_insn, store_killed_after, store_killed_before,
5176 build_store_vectors, insert_insn_start_basic_block, insert-store,
5177 remove_reachable_equiv_notes, replace_store_insn, delete_store,
5178 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
5179 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
5180 * store-motion.c: ...new file. Also copy data structures from gcse.c
5181 and clean up to remove parts not used by store motion.
5182 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
5183 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
5184
f711a87a
RR
51852009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5186
5187 PR target/38571
5188 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
5189 when optimizing for size.
5190
fa5ed76e
HPN
51912009-04-30 Hans-Peter Nilsson <hp@axis.com>
5192
5193 * gcse.c (gcse_constant_p): Fix typo in last change.
5194
0acbbdb0
RAE
51952009-04-30 Rafael Avila de Espindola <espindola@google.com>
5196
5197 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
5198
82f5c05d
AK
51992009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
5200
5201 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
5202
6d8f135b
JW
52032009-04-29 James E. Wilson <wilson@codesourcery.com>
5204
5205 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
5206 CONST_HIGH_PART result.
5207
c21ca196
AS
52082009-04-29 Anatoly Sokolov <aesok@post.ru>
5209
5210 * config/avr/avr.c (initial_elimination_offset): Rename to
5211 avr_initial_elimination_offset.
5212 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
5213 change return type to bool.
5214 (avr_can_eliminate): New function.
5215 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
5216 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
5217 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 5218 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
5219 avr_initial_elimination_offset.
5220 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
5221 (avr_initial_elimination_offset): Define.
5222
2a34bece 52232009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 5224 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
5225
5226 PR rtl-optimization/39938
5227 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
5228 * cfgrtl.c: Include insn-attr.h.
5229 (rest_of_pass_free_cfg): New function.
5230 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
5231 * resource.c (init_resource_info): Remove call to df_analyze.
5232
5dc7911e
RG
52332009-04-29 Richard Guenther <rguenther@suse.de>
5234
5235 PR target/39943
5236 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
5237 allow conversion to signed integers.
5238
1fe479fd
RG
52392009-04-29 Richard Guenther <rguenther@suse.de>
5240
5241 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
5242 shifts of floating point vectors if the shift amount is
5243 a constant multiple of the element size.
5244
8e001680
AK
52452009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
5246 Michael Matz <matz@suse.de>
5247
5248 PR middle-end/39927
5249 PR bootstrap/39929
5250 * tree-outof-ssa.c (emit_partition_copy): New function.
5251 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5252 insert_part_to_rtx_on_edge): Perform the partition base var
5253 copy using emit_partition_copy.
5254 (insert_value_copy_on_edge): Convert constants to the right mode.
5255 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
5256 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
5257
e50e3081
BS
52582009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5259
5260 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
5261 scan backwards to try to find a constant to initialize it.
5262
4e5d521b
BS
5263 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
5264 insn before the loop_end instruction, don't look past labels.
5265
7c90021d
RG
52662009-04-29 Richard Guenther <rguenther@suse.de>
5267
5268 PR middle-end/39937
5269 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
5270 loose type conversions.
5271 (forward_propagate_addr_expr): Fix tuplification bug. Remove
5272 stmts only if there are no uses of its definition.
5273
97a988bc
BS
52742009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5275
5276 * config/bfin/bfin.h (splitting_loops): Declare.
5277 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
5278 Reorder bit definitions to be ascending.
5279 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
5280 * config/bfin/bfin.c (splitting_loops): New variable.
5281 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
5282 (struct loop_info): Remove members INIT and LOOP_INIT.
5283 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
5284 the LSETUP sequence. Allow LC to be loaded from any register, but
5285 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
5286 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
5287 set to 1.
5288 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
5289 of reload_completed.
aa016ff7 5290
97a988bc
BS
5291 From Jie Zhang:
5292 * config/bfin/bfin.md (movsi_insn): Refine constraints.
5293
0c463e16
RAE
52942009-04-29 Rafael Avila de Espindola <espindola@google.com>
5295
5296 * Makefile.in (PLUGIN_VERSION_H): New.
5297 (OBJS-common): Remove plugin-version.o.
5298 (plugin.o): Depend on (PLUGIN_VERSION_H).
5299 (plugin-version.o): Remove.
5300 * configure: Regenerate
5301 * configure.ac: Create plugin-version.h.
5302 * gcc-plugin.h (plugin_gcc_version): Remove.
5303 (plugin_default_version_check): Change signature.
5304 * plugin-version.c: Remove.
5305 * plugin.c: Include plugin-version.h.
5306 (str_plugin_gcc_version_name): Remove.
5307 (try_init_one_plugin): Pass gcc version to plugin_init.
5308 (plugin_default_version_check): Both gcc and plugin versions are now
5309 arguments.
5310
307e7eab
BS
53112009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5312
5313 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
5314 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
5315 Remove special case testing for last insn of inner loops. Don't fail
5316 if the loop ends with a jump, emit an extra nop instead.
307e7eab 5317
c5d96723
BS
5318 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
5319 DREGS rather than comparing directly. Remove code that tries to
5320 account for latencies.
5321
de0b4ad5
RG
53222009-04-29 Richard Guenther <rguenther@suse.de>
5323
5324 PR tree-optimization/39941
5325 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
5326 eliminating an indirect call.
5327
3a19701a
RG
53282009-04-29 Richard Guenther <rguenther@suse.de>
5329
5330 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
5331 parameter. Allow invariants as base if !require_lvalue.
5332 (verify_gimple_assign_single): Adjust.
5333
a0a31d1e
BS
53342009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5335
5336 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
5337 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
5338 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
5339 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
5340 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
5341 a VEC_SELECT.
aa016ff7
UB
5342 * config/bfin/bfin.c (bfin_expand_builtin,
5343 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 5344
795bd26a
RG
53452009-04-28 Richard Guenther <rguenther@suse.de>
5346
5347 * tree-vect-loop.c (get_initial_def_for_induction): Use
5348 correct types for pointer increment.
5349
04be270f
KG
53502009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5351
5352 * toplev.c (print_version): Update GMP version string calculation.
5353
e1a3b85c
EB
53542009-04-28 Eric Botcazou <ebotcazou@adacore.com>
5355
5356 PR rtl-optimization/39938
5357 * resource.c (init_resource_info): Add call to df_analyze.
5358
8224166e
UB
53592009-04-28 Uros Bizjak <ubizjak@gmail.com>
5360
5361 * config/alpha/alpha.md (usegp): Cast the result of
5362 alpha_find_lo_sum_using_gp to enum attr_usegp.
5363 * config/alpha/alpha.c (override_options): Remove end-of-structure
5364 marker element from cpu_table. Use array size of cpu_table to handle
5365 -mcpu and -mtune options.
5366 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
5367
c5f0fe67
JM
53682009-04-28 Joseph Myers <joseph@codesourcery.com>
5369
5370 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
5371 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
5372 tune_32 and tune_64.
5373 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
5374 support on PowerPC.
5375 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
5376 * config/rs6000/option-defaults.h: ... here. New file.
5377 (OPT_64, OPT_32): Define.
5378 (MASK_64BIT): Define to 0 if not already defined.
5379 (OPT_ARCH64, OPT_ARCH32): Define.
5380 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
5381 and tune_64.
5382
0c48a567
RR
53832009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5384
5385 * config/arm/arm.c (arm_override_options): Emit error on using
5386 fpa with AAPCS.
5387
f1028b9d
UB
53882009-04-28 Uros Bizjak <ubizjak@gmail.com>
5389
5390 PR rtl-optimization/39914
5391 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5392 registers for allocnos created from user-defined variables only
5393 when not optimizing.
5394
e0dd989a
RG
53952009-04-28 Richard Guenther <rguenther@suse.de>
5396
5397 PR middle-end/39937
5398 * fold-const.c (fold_binary): Use distribute_real_division only
5399 on float types.
5400
9a17c91d
SE
54012009-04-28 Steve Ellcey <sje@cup.hp.com>
5402
5403 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
5404 add hpux-stdint.h to tm_file.
5405 (hppa[12]*-*-hpux11*): Ditto.
5406 (ia64*-*-hpux*): Ditto.
5407 * config/hpux-stdint.h: New.
60839f5d 5408 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 5409 __STDC_EXT__ for all compiles.
60839f5d
EB
5410 * config/pa/pa-hpux.h: Ditto.
5411 * config/pa/pa-hpux10.h: Ditto.
5412 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 5413
af04e659
CM
54142009-04-28 Catherine Moore <clm@codesourcery.com>
5415
5416 * debug.h (set_name): Add comment.
5417
04ef80ce
AP
54182009-04-28 Andrew Pinski <pinskia@gmail.com>
5419
5420 PR target/39929
5421 * config/darwin.c (machopic_gen_offset): Check
5422 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
5423 * config/arm/arm.c (require_pic_register): Likewise.
5424
65ad77af
PB
54252009-04-28 Paolo Bonzini <bonzini@gnu.org>
5426
8224166e
UB
5427 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
5428 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
5429 m32c_promote_prototypes): Delete.
65ad77af 5430
1b15a008
MM
54312009-04-28 Michael Matz <matz@suse.de>
5432
5433 PR middle-end/39922
5434 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
5435 constants.
5436
7569a6cc
RG
54372009-04-28 Richard Guenther <rguenther@suse.de>
5438
f1028b9d 5439 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 5440
ead204d9
RR
54412009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5442
5443 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
5444 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
5445 * config/arm/arm-tune.md: Regenerate.
5446
f2c45f08 54472009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 5448
f2c45f08
AM
5449 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
5450 block if there are complex incoming edges.
5451 (sel_merge_blocks): Remove useless assert.
5452 (sel_redirect_edge_and_branch): Check that edge was redirected.
5453 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
5454 (sel_find_rgns): Delete declaration.
5455 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
5456 the region when it is not a preheader.
5457
7a00d767
UB
54582009-04-28 Uros Bizjak <ubizjak@gmail.com>
5459
5460 PR c/39323
5461 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
5462
448ee662
RG
54632009-04-28 Richard Guenther <rguenther@suse.de>
5464
5465 * tree.h (SSA_NAME_VALUE): Remove.
5466 (struct tree_ssa_name): Remove value_handle member.
5467 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
5468 array for jump threading.
5469 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
5470 SSA_NAME_VALUEs.
5471 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
5472 * tree-flow.h (threadedge_initialize_values): Declare.
5473 (threadedge_finalize_values): Likewise.
5474 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
5475 (SSA_NAME_VALUE): Define.
5476 (threadedge_initialize_values): New function.
5477 (threadedge_finalize_values): Likewise.
5478 * tree-ssa-dom.c (ssa_name_values): New global variable.
5479 (SSA_NAME_VALUE): Define.
f1028b9d 5480 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 5481
8644a673
IR
54822009-04-28 Ira Rosen <irar@il.ibm.com>
5483
5484 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
5485 Use REPORT_VECTORIZED_LOCATIONS instead
5486 REPORT_VECTORIZED_LOOPS.
5487 * tree-vectorizer.c (vect_verbosity_level): Make static.
5488 (vect_loop_location): Rename to vect_location.
5489 (vect_set_verbosity_level): Update comment.
5490 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
5491 and vect_location.
5492 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
5493 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
5494 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
5495 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
5496 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 5497 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 5498 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
5499 REPORT_UNVECTORIZED_LOCATIONS.
5500 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
5501 and vect_used_in_loop and to vect_unused_in_scope and
5502 vect_used_in_scope.
5503 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
5504 (vect_verbosity_level): Remove declaration.
5505 (vect_analyze_operations): Likewise.
5506 (vect_analyze_stmt): Declare.
5507 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
5508 REPORT_UNVECTORIZED_LOCATIONS.
5509 (vect_get_loop_niters): Fix indentation.
5510 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
5511 (vect_analyze_loop_operations): New function.
5512 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
5513 vect_analyze_operations.
5514 (vect_is_simple_reduction): Use new names.
5515 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
5516 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
5517 to specify whether the data references can be a part of interleaving
5518 chain.
8644a673
IR
5519 (vect_analyze_data_ref_dependence): Use new names.
5520 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
5521 (vect_create_addr_base_for_vector_ref): Remove redundant code.
5522 * tree-vect-patterns.c (widened_name_p): Use new names.
5523 (vect_recog_dot_prod_pattern): Likewise.
5524 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
5525 (process_use, vect_mark_stmts_to_be_vectorized,
5526 vect_model_simple_cost, vect_model_store_cost,
5527 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
5528 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
5529 vectorizable_operation, vectorizable_type_demotion,
5530 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
5531 vectorizable_condition): Likewise.
5532 (vect_analyze_operations): Split into vect_analyze_loop_operations
5533 and ...
5534 (vect_analyze_stmt): ... new function.
5535 (new_stmt_vec_info): Use new names.
5536 (vect_is_simple_use): Use new names and fix comment.
5537 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
5538 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
5539
b91322f2
UB
55402009-04-28 Uros Bizjak <ubizjak@gmail.com>
5541
5542 PR target/39911
5543 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
5544 and integer modes for x87 operands. Do not ICE for unsupported size,
5545 generate error instead. Generate error for unsupported operand types.
5546 ['z']: Do not handle HImode memory operands specially. Warning
5547 for floating-point operands. Fallthru to 'Z' for unsupported operand
5548 types. Do not ICE for unsupported size, generate error instead.
5549 (output_387_binary_op): Use %Z to output operands.
5550 (output_fp_compare): Ditto.
5551 (output_387_reg_move): Ditto.
5552
b2ed71b6
BE
55532009-04-28 Ben Elliston <bje@au.ibm.com>
5554
5555 PR c++/35652
5556 Revert:
5557
5558 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5559
5560 * builtins.c (c_strlen): Do not warn here.
5561 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
5562 * c-common.c (pointer_int_sum): Take an explicit location.
5563 Warn about offsets out of bounds.
5564 * c-common.h (pointer_int_sum): Adjust declaration.
5565
81f40b79
ILT
55662009-04-27 Ian Lance Taylor <iant@google.com>
5567
5568 * collect2.c (is_ctor_dtor): Change type of ret field in struct
5569 names to symkind.
5570 * dce.c (run_fast_df_dce): Change type of old_flags to int.
5571 * df-core.c (df_set_flags): Change return type to int. Change
5572 type of old_flags to int.
5573 (df_clear_flags): Likewise.
5574 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
5575 (df_get_conditional_uses): Likewise.
5576 * df.h (df_set_flags, df_clear_flags): Update declarations.
5577 * dwarf2out.c (struct indirect_string_node): Change type of form
5578 field to enum dwarf_form.
5579 (AT_string_form): Change return type to enum dwarf_form.
5580 * fixed-value.c (fixed_compare): Add cast to enum type.
5581 * fwprop.c (update_df): Change 0 to VOIDmode.
5582 * gensupport.c: Change 0 to UNKNOWN.
5583 * gimple.h (gimple_cond_code): Add cast to enum type.
5584 * haifa-sched.c (reemit_notes): Add cast to enum type.
5585 * hooks.c (hook_int_void_no_regs): Remove function.
5586 * hooks.h (hook_int_void_no_regs): Remove declaration.
5587 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 5588 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
5589 * real.c (real_arithmetic): Add cast to enum type.
5590 (real_compare): Likewise.
5591 * target.h (struct gcc_target): Change return type of
5592 branch_target_register_class to enum reg_class.
5593 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
5594 default_branch_target_register_class.
7a00d767 5595 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 5596 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 5597 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
5598 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
5599 cast to int.
5600 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
5601 ERROR_MARK.
5602 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
5603 vect_uninitialized_def. Change 0 to ERROR_MARK.
5604 * tree-vect-stmts.c (supportable_widening_operation): Don't
5605 initialize icode1 and icode2.
7a00d767 5606 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
5607 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
5608 and to STD_C89.
5609 (cmn_err_flag_specs): Change 0 to STD_C89.
5610 (cmn_err_char_table): Likewise.
5611 * config/arm/arm.c (get_arm_condition_code): Change type of code
5612 to enum arm_cond_code.
5613 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
5614 (IWMMXT_BUILTIN2): Likewise.
5615 (neon_builtin_type_bits): Don't define typedef.
5616 (neon_builtin_datum): Change type of bits field to int.
5617 (arm_expand_neon_args): Add cast to enum type.
5618 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
5619 TLS_MODEL_NONE.
5620 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
5621 casts to enum type.
5622 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
5623 MIPS_FP_COND_f.
5624 * config/mips/mips.md (jal_macro): Return enum constant.
5625 (single_insn): Likewise.
5626 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
5627 CODE_FOR_nothing.
5628 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5629 casts to enum type.
5630 * config/s390/s390.c (s390_tune_flags): Change type to int.
5631 (s390_arch_flags): Likewise.
7a00d767 5632 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
5633 * config/s390/s390.h (s390_tune_flags): Update declaration.
5634 (s390_arch_flags): Likewise.
5635 * config/sh/sh.c (prepare_move_operands): Compare
5636 tls_symbolic_operand result with enum constant.
5637 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
5638 (sh_expand_prologue): Add cast to enum type.
5639 (sh_expand_epilogue): Likewise.
5640 (tls_symbolic_operand): Change return type to enum tls_model.
5641 (fpscr_set_from_mem): Add cast to enum type.
5642 (legitimize_pic_address): Compare tls_symbolic_operand result with
5643 enum constant.
5644 (sh_target_reg_class): Change return type to enum reg_class.
5645 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
5646 PROCESSOR_xxx.
7a00d767
UB
5647 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
5648 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
5649 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
5650 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
5651 (delayed_branch, tls_call_delay): Likewise.
5652 (eligible_for_sibcall_delay): Likewise.
5653 (eligible_for_return_delay): Likewise.
5654 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
5655 (spu_expand_builtin_1): Likewise.
5656
5657 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
5658 for all types of conversions.
5659 (output_init_element): Issue -Wc++-compat warning if needed when
5660 initializing a bitfield with enum type.
5661 * c-parser.c (c_parser_expression): Set original_type to
5662 original_type of right hand operand of comman operator.
5663
e4ae5e77
RW
56642009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5665
5666 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
5667 grammar nits.
7a00d767 5668 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
5669 * doc/cpp.texi (Standard Predefined Macros)
5670 (Implementation-defined behavior): Likewise.
7a00d767 5671 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
5672 * doc/gimple.texi (GIMPLE Exception Handling)
5673 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 5674 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
5675 * doc/invoke.texi (Warning Options, Optimize Options)
5676 (AVR Options, Darwin Options): Likewise.
5677 (Optimize Options): Reformulate -fwhole-program description.
5678 * doc/loop.texi (Lambda): Likewise.
5679 * doc/md.texi (Output Template, Define Constraints)
5680 (Standard Names, Insn Splitting): Likewise.
5681 * doc/options.texi (Option properties): Likewise.
5682 * doc/passes.texi (Tree-SSA passes): Likewise.
5683 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
5684 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
5685 (File Names and DBX): Likewise.
5686 * doc/trouble.texi (Incompatibilities): Likewise.
5687
1883802f 56882009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
5689
5690 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
5691 instruction is correct.
5692
1883802f 56932009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
5694
5695 Allow non-constant arguments to conversion intrinsics.
5696 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
5697 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
5698 * spu.c (print_operand): Handle 'v' and 'w'.
5699 (exp2_immediate_p, spu_gen_exp2): Define.
5700 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
5701 spu_convtf_1): Update parameter descriptions.
7a00d767 5702 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
5703 * constraints.md ('v', 'w'): New.
5704 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
5705 Remove.
5706 (i2f, I2F): New define_mode_attr.
5707 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
5708 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
5709 fixuns_truncv4sfv4si2): Update to use mode attribute.
5710 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
5711 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
5712 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
5713 patterns for combine.
5714
5f39ad47
SB
57152009-04-27 Steven Bosscher <steven@gcc.gnu.org>
5716
5717 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
5718 (cprop, hoist, pre, store_motion): New debug counters.
5719 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
5720 is not an RTL pass anymore.
5721 (pass_profiling): Remove extern decl for pass removed in 2005.
5722 (pass_gcse, pass_jump_bypass): Remove.
5723 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
5724 to 0 for clean state.
5725 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
5726 * cse.c (gate_handle_cse_after_global_opts,
5727 rest_of_handle_cse_after_global_opts): New functions.
5728 (pass_cse_after_global_opts): New pass, does local CSE.
5729 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
5730 (TV_CPROP): New timevar.
5731 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
5732 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
5733 (gcse_main, recompute_all_luids): Remove.
5734 (compute_hash_table_work): Call max_reg_num instead of reading
5735 max_gcse_regno.
5736 (cprop_jump): Don't set run_jump_opt_after_gcse.
5737 (constprop_register): Always allow to alter jumps.
5738 (cprop_insn): Likewise.
5739 (do_local_cprop): Likewise.
5740 (local_cprop_pass): Likewise. Return non-zero if something changed.
5741 (cprop): Remove function, fold interesting bits into one_cprop_pass.
5742 (find_implicit_sets): Add note about missed optimization opportunity.
5743 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
5744 pass_rtl_cprop execute function.
5745 Don't bother tracking the pass number, each pass gets its own dumpfile
5746 now anyway.
5747 Always allow to alter jumpsand bypass jumps.
5748 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
5749 will just find no suitable set.
5750 (pre_edge_insert): Fix dumping, this function is for PRE only.
5751 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
5752 pass_rtl_pre execute function.
5753 (hoist_code): Return non-zero if something changed. Keep track of
5754 substitutions and insertions for statistics gathering similar to PRE.
5755 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
5756 called from the pass_rtl_hoist execute function. Show pass statistics.
5757 (compute_store_table): Use max_reg_num directly instead of using the
5758 formerly global max_gcse_regno.
5759 (build_store_vectors): Likewise.
5760 (replace_store_insn): Fix dumping.
5761 (store_motion): Rename to ...
5762 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
5763 pass, called from the pass_rtl_store_motion execute function. Keep
5764 track of substitutions and insertions for statistics gathering similar
5765 to PRE.
5766 (bypass_jumps): Remove, fold interesting bits into ...
5767 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
5768 from the pass_rtl_cprop execute function.
5769 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
5770 pass_jump_bypass): Remove.
5771 (gate_handle_gcse, rest_of_handle_gcse): Remove.
5772 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
5773 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
5774 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
5775 (gate_rtl_store_motion, execute_rtl_store_motion,
5776 pass_rtl_store_motion): New.
5777 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
5778 make it clear that -fcse-skip-blocks is a no-op for backward compat.
5779 * passes.c (init_optimization_passes): Remove pass_gcse and
5780 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
5781 and cse_after_global_opts in place of pass_gcse. Schedule cprop
5782 instead of pass_jump_bypass.
5783
c685de4a
RG
57842009-04-27 Richard Guenther <rguenther@suse.de>
5785
5786 PR middle-end/39928
5787 * gimplify.c (gimplify_expr): If we are required to create
5788 a temporary make sure it ends up as register.
5789
72d41f29
L
57902009-04-27 H.J. Lu <hongjiu.lu@intel.com>
5791
5792 PR target/39903
5793 * config/i386/i386.c (construct_container): Don't call
5794 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
5795 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
5796
e97809c6
MM
57972009-04-27 Michael Matz <matz@suse.de>
5798
5799 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
5800 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
5801 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
5802 (dump_replaceable_exprs): Take a bitmap.
5803 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
5804 array.
5805 (expand_gimple_basic_block): Likewise.
5806 * tree-ssa-ter.c (struct temp_expr_table_d): Make
5807 replaceable_expressions member a bitmap.
5808 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
5809 (mark_replaceable): Likewise.
5810 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
5811 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
5812
211ca15c
RG
58132009-04-27 Richard Guenther <rguenther@suse.de>
5814
5815 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
5816 (verify_stmts): Dispatch to gimple/type verification code.
5817 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
5818 issue with call argument types.
5819
fca5f3d1
MM
58202009-04-27 Michael Matz <matz@suse.de>
5821
5822 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
5823 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
5824 to above.
5825
a1fa3e79 58262009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 5827 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
5828
5829 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
5830 a label's basic block.
5831 (mark_target_live_regs): Tidy and rework obsolete comments.
5832 Change back DF problem to LIVE. If a label starts a basic block,
5833 assume that all registers that used to be live then still are.
5834 (init_resource_info): If a label starts a basic block, set its
5835 BLOCK_FOR_INSN accordingly.
5836 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
5837
33b223c0
RG
58382009-04-27 Richard Guenther <rguenther@suse.de>
5839
5840 * tree-flow-inline.h (function_ann): Remove.
5841 (get_function_ann): Likewise.
5842 * tree-dfa.c (create_function_ann): Remove.
5843 * tree-flow.h (struct static_var_ann_d): Remove.
5844 (struct function_ann_d): Likewise.
5845 (union tree_ann_d): Remove fdecl member.
5846 (function_ann_t): Remove.
5847 (function_ann, get_function_ann, create_function_ann): Remove
5848 declarations.
5849
e3136fa2
UB
58502009-04-27 Uros Bizjak <ubizjak@gmail.com>
5851
5852 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
5853
f87c9042
JH
58542009-04-27 Jan Hubicka <jh@suse.cz>
5855
5856 * ipa-pure-const.c (struct funct_state_d): New fields
5857 state_previously_known, looping_previously_known; remove
5858 state_set_in_source.
5859 (analyze_function): Use new fields.
5860 (propagate): Avoid assumption that state_set_in_source imply
5861 nonlooping.
5862
5863 * tree-ssa-loop-niter.c (finite_loop_p): New function.
5864 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
5865 * cfgloop.h (finite_loop_p): Declare.
5866
33abd718
MM
58672009-04-26 Michael Matz <matz@suse.de>
5868
e3136fa2 5869 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 5870
ddc34084
MM
58712009-04-26 Michael Matz <matz@suse.de>
5872
5873 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
5874 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
5875 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
5876 pass_mark_used_blocks): Remove.
5877 * tree-optimize.c (pass_free_datastructures,
5878 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
5879 * passes.c (init_optimization_passes): Don't call
5880 pass_mark_used_blocks, remove dead code.
5881
1fec7ed4
L
58822009-04-26 H.J. Lu <hongjiu.lu@intel.com>
5883
5884 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
5885 * tree-ssa-live.h (register_ssa_partition): Likewise.
5886
4e3825db
MM
58872009-04-26 Michael Matz <matz@suse.de>
5888
5889 Expand from SSA.
5890 * builtins.c (fold_builtin_next_arg): Handle SSA names.
5891 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
5892 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
5893 SSA names.
5894 (compare_pairs): Swap cost comparison.
5895 (coalesce_ssa_name): Don't use change_partition_var.
5896 * tree-nrv.c (struct nrv_data): Add modified member.
5897 (finalize_nrv_r): Set it.
5898 (tree_nrv): Use it to update statements.
5899 (pass_nrv): Require PROP_ssa.
5900 * tree-mudflap.c (mf_decl_cache_locals,
5901 mf_build_check_statement_for): Use make_rename_temp.
5902 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
5903 * alias.c (find_base_decl): Handle SSA names.
5904 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
5905 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
5906 * rtl.h (set_reg_attrs_for_parm): Declare.
5907 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
5908 to "optimized", remove unused locals at finish.
5909 (execute_free_datastructures): Make global, call
5910 delete_tree_cfg_annotations.
5911 (execute_free_cfg_annotations): Don't call
5912 delete_tree_cfg_annotations.
5913
5914 * ssaexpand.h: New file.
5915 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 5916 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
5917 (expand_expr_real_1): Expand SSA names.
5918 * cfgexpand.c (toplevel): Include ssaexpand.h.
5919 (SA): New global variable.
5920 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
5921 (SSAVAR): New macro.
5922 (set_rtl): New helper function.
5923 (add_stack_var): Deal with SSA names, use set_rtl.
5924 (expand_one_stack_var_at): Likewise.
5925 (expand_one_stack_var): Deal with SSA names.
5926 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
5927 before unique numbers.
5928 (expand_stack_vars): Use set_rtl.
5929 (expand_one_var): Accept SSA names, add asserts for them, feed them
5930 to above subroutines.
5931 (expand_used_vars): Expand all partitions (without default defs),
5932 then only the local decls (ignoring those expanded already).
5933 (expand_gimple_cond): Remove edges when jumpif() expands an
5934 unconditional jump.
5935 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5936 or remove abnormal edges. Ignore insns setting the LHS of a TERed
5937 SSA name.
5938 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5939 members of SA; deal with PARM_DECL partitions here; expand
5940 all PHI nodes, free tree datastructures and SA. Commit instructions
5941 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5942 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5943 info and statements at start, collect garbage at finish.
5944 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5945 (VAR_ANN_PARTITION) Remove.
5946 (change_partition_var): Don't declare.
5947 (partition_to_var): Always return SSA names.
5948 (var_to_partition): Only accept SSA names.
5949 (register_ssa_partition): Only check argument.
5950 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5951 member.
5952 (delete_var_map): Don't free it.
5953 (var_union): Only accept SSA names, simplify.
5954 (partition_view_init): Mark only useful SSA names as used.
5955 (partition_view_fini): Only deal with SSA names.
5956 (change_partition_var): Remove.
5957 (dump_var_map): Use ssa_name instead of partition_to_var member.
5958 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5959 basic blocks.
5960 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5961 (struct _elim_graph): New member const_dests; nodes member vector of
5962 ints.
5963 (set_location_for_edge): New static helper.
5964 (create_temp): Remove.
5965 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 5966 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
5967 (new_elim_graph): Allocate const_dests member.
5968 (clean_elim_graph): Truncate const_dests member.
5969 (delete_elim_graph): Free const_dests member.
5970 (elim_graph_size): Adapt to new type of nodes member.
5971 (elim_graph_add_node): Likewise.
5972 (eliminate_name): Likewise.
5973 (eliminate_build): Don't take basic block argument, deal only with
5974 partition numbers, not variables.
5975 (get_temp_reg): New static helper.
5976 (elim_create): Use it, deal with RTL temporaries instead of trees.
5977 (eliminate_phi): Adjust all calls to new signature.
5978 (assign_vars, replace_use_variable, replace_def_variable): Remove.
5979 (rewrite_trees): Only do checking.
5980 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5981 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5982 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5983 contains_tree_r, MAX_STMTS_IN_LATCH,
5984 process_single_block_loop_latch, analyze_edges_for_bb,
5985 perform_edge_inserts): Remove.
5986 (expand_phi_nodes): New global function.
5987 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
5988 functions, initialize new parameter, remember partitions having a
5989 default def.
5990 (finish_out_of_ssa): New global function.
5991 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
5992 don't reset in_ssa_p here, don't disable TER when mudflap.
5993 (pass_del_ssa): Remove.
5994 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5995 partition members.
5996 (execute_free_datastructures): Declare.
5997 * Makefile.in (SSAEXPAND_H): New variable.
5998 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5999 * basic-block.h (commit_one_edge_insertion): Declare.
6000 * passes.c (init_optimization_passes): Move pass_nrv and
6001 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
6002 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
6003 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
6004 (redirect_branch_edge): Deal with super block when expanding, split
6005 out jump patching itself into ...
6006 (patch_jump_insn): ... here, new static helper.
6007
17c665a9
MM
60082009-04-26 Michael Matz <matz@suse.de>
6009
6010 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
6011 beyond num_ssa_names.
6012 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6013 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
6014
92061771
JJ
60152009-04-26 Jakub Jelinek <jakub@redhat.com>
6016
ce372372
JJ
6017 PR inline-asm/39543
6018 * fwprop.c (forward_propagate_asm): New function.
6019 (forward_propagate_and_simplify): Propagate also into __asm, if it
6020 doesn't increase the number of referenced registers.
6021
92061771
JJ
6022 PR c/39889
6023 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
6024
60252009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
6026
6027 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
6028 note_nonlocal_vla_type for nonlocal VLAs.
6029 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
6030 contains_remapped_vars, remap_vla_decls): New functions.
6031 (convert_nonlocal_reference_stmt): If not optimizing, call
6032 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
6033 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
6034 if it wasn't found in var_map.
6035 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
6036 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
6037 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
6038 declare_vars.
6039 * gimplify.c (nonlocal_vlas): New variable.
6040 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
6041 referenced VLAs.
6042 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 6043
4561e242
JJ
6044 * dwarf2out.c (loc_descr_plus_const): New function.
6045 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
6046 mem_loc_descriptor, loc_descriptor_from_tree_1,
6047 descr_info_loc, gen_variable_die): Use it.
6048
a9548ddf
JJ
6049 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
6050 !TREE_STATIC VAR_DECLs.
6051 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
6052 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
6053 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
6054 DECL_BY_REFERENCE is valid.
6055 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
6056 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
6057 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
6058 Copy DECL_BY_REFERENCE.
6059 (struct nesting_copy_body_data): New type.
6060 (nesting_copy_decl): New function.
6061 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
6062 if they have variable length.
6063
10555d08
MM
60642009-04-26 Michael Matz <matz@suse.de>
6065
6066 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
6067 mark new temporaries for renaming.
6068
e11187cc
JM
60692009-04-26 Joseph Myers <joseph@codesourcery.com>
6070
6071 PR c/39581
6072 * c-decl.c (global_bindings_p): Return negative value.
6073 (c_variable_size): New. Based on variable_size from
6074 stor-layout.c.
6075 (grokdeclarator): Call c_variable_size not variable_size.
6076
f6a51d31
UB
60772009-04-26 Uros Bizjak <ubizjak@gmail.com>
6078
6079 * config/i386/i386.c (print_operand) ['z']: Fix typo.
6080
4b97723d
KT
60812009-04-26 Kai Tietz <kai.tietz@onevision.com>
6082
6083 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
6084 Redefine it to just use mingw/include.
6085 (ASM_SPEC): Rules for -m32 and -m64.
6086 (LINK_SPEC): Use Likewise.
6087 (SPEC_32): New define.
6088 (SPEC_64): Likewise.
6089 (SUB_LINK_SPEC): Likewise.
6090 (MULTILIB_DEFAULTS): New define.
6091 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
6092 Add multilib options.
6093 (MULTILIB_DIRNAMES): Likewise.
6094 (MULTILIB_OSDIRNAMES): Likewise.
6095 (LIBGCC): Likewise.
6096 (INSTALL_LIBGCC): Likewise.
6097
991d6621
JM
60982009-04-26 Joseph Myers <joseph@codesourcery.com>
6099
6100 PR c/39556
6101 * c-tree.h (enum c_inline_static_type): New.
6102 (record_inline_static): Declare.
6103 * c-decl.c (struct c_inline_static, c_inline_statics,
6104 record_inline_static, check_inline_statics): New.
6105 (pop_file_scope): Call check_inline_statics.
6106 (start_decl): Call record_inline_static instead of pedwarning
6107 directly for static in inline function.
6108 * c-typeck.c (build_external_ref): Call record_inline_static
6109 instead of pedwarning directly for static referenced in inline
6110 function.
6111
4a81774c
SB
61122009-04-26 Steven Bosscher <steven@gcc.gnu.org>
6113
6114 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
6115 not new but only being rescanned.
6116 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
6117 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
6118 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
6119 record_set_info, compute_set, grealloc): Remove.
6120 (recompute_all_luids): New function.
6121 (gcse_main): Don't compute sets, and don't do related memory
6122 allocations/free-ing. If something changed before the end of the
6123 pass, update LUIDs using recompute_all_luids.
6124 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
6125 (free_gcse_mem): Don't free it either.
6126 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
6127 Use the df insn LUIDs.
6128 (load_killed_in_block): Likewise.
6129 (compute_hash_table_work): Don't compute reg_set_in_block.
6130 (compute_transp): Use DF_REG_DEF_CHAINs.
6131 (local_cprop_pass): Don't use compute_sets and related functions.
6132 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
6133 Use get_max_uid() instead of max_cuid.
6134 (insert_insn_end_basic_block, pre_insert_copy_insn,
6135 update_ld_motion_stores): Don't try to
6136 keep reg_set tables up to date.
6137 (pre_insert_copies): Use df insn LUIDs.
6138 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
6139 (reg_set_info): Don't use extra bitmap argument.
6140 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
6141 information to compute regs_set_in_block.
6142 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
6143 (bypass_jumps): Don't use compute_sets and friends.
6144
e8f99a9d
RW
61452009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6146
6147 PR testsuite/39710
6148 * opts.c (undocumented_msg): Do not leave blank even with
6149 ENABLE_CHECKING.
6150
6895bac8
JM
61512009-04-25 Joseph Myers <joseph@codesourcery.com>
6152
6153 * c-decl.c (build_enumerator): Allow values folding to integer
6154 constants but not integer constant expressions with a pedwarn if
6155 pedantic.
6156
24070fcb
JM
61572009-04-25 Joseph Myers <joseph@codesourcery.com>
6158
6159 PR c/39582
6160 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
6161 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
6162 type is an integer constant.
6163
d6d89aa1
UB
61642009-04-25 Uros Bizjak <ubizjak@gmail.com>
6165
6166 PR target/39897
6167 * config/i386/i386.c (print_operand) ['z']: Revert handling of
6168 HImode operands.
6169
92f6fd0b
JM
61702009-04-25 Joseph Myers <joseph@codesourcery.com>
6171
6172 PR c/39564
6173 * c-decl.c (grokdeclarator): Diagnose declarations of functions
6174 with variably modified return type and no storage class
6175 specifiers, except for the case of nested functions. Distinguish
6176 extern declarations of functions with variably modified return
6177 types from those of objects with variably modified types.
6178
a3710436
JH
61792009-04-25 Jan Hubicka <jh@suse.cz>
6180
6181 * tree.c (list_equal_p): New function.
6182 * tree.h (list_equal_p): Declare.
6183 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6184 basic_block_def, basic_block, const_basic_block): New.
6185 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
6186 (redirect_eh_edge): New function.
6187 (make_eh_edge_update_phi): EH edges are not abnormal.
6188 * except.c: Include tree-flow.h.
6189 (list_match): New function.
6190 (eh_region_replaceable_by_p): New function.
6191 (replace_region): New function.
6192 (hash_type_list): New function.
6193 (hash_eh_region): New function.
6194 (eh_regions_equal_p): New function.
6195 (merge_peers): New function.
6196 (remove_unreachable_regions): Verify EH tree when checking;
6197 merge peers.
6198 (copy_eh_region_1): New function.
6199 (copy_eh_region): New function.
6200 (push_reachable_handler): New function.
6201 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
6202 regions without label but with live RESX.
6203 * except.h (redirect_eh_edge_to_label): New.
6204 * tree-flow.h (redirect_eh_edge): New.
6205 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6206 basic_block_def, basic_block, const_basic_block): Remove.
6207 * Makefile.in (except.o): Add dependency on tree-flow.h
6208 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
6209 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
6210 Remove.
6211
3764d512
EB
62122009-04-25 Eric Botcazou <ebotcazou@adacore.com>
6213
6214 PR bootstrap/39645
6215 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
6216 on the destination of memcpy.
6217
1c62e8f2
PB
62182009-04-25 Paolo Bonzini <bonzini@gnu.org>
6219
6220 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6221 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
6222 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
6223
496a4ef5
JH
62242009-04-25 Jan Hubicka <jh@suse.cz>
6225
6226 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
6227 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
6228 to be reached by different label than left.
6229 (update_eh_edges): Update comment; remove edge_to_remove if possible
6230 and return true if suceeded.
6231 (cleanup_empty_eh): Accept sharing map; handle shared regions.
6232 (cleanup_eh): Compute sharing map.
6233 * except.c (remove_eh_handler_and_replace): Add argument if we should
6234 update regions.
6235 (remove_unreachable_regions): Update for label sharing.
6236 (label_to_region_map): Likewise.
6237 (get_next_region_sharing_label): New function.
6238 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
6239 prev_try pointers.
6240 (remove_eh_handler): Update.
6241 (remove_eh_region_and_replace_by_outer_of): New function.
6242 * except.h (struct eh_region): Add next_region_sharing_label.
6243 (remove_eh_region_and_replace_by_outer_of,
6244 get_next_region_sharing_label): Declare.
6245 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
6246
62472009-04-25 Jan Hubicka <jh@suse.cz>
6248
6249 * tree-cfg.c (split_critical_edges): Split also edges where we can't
6250 insert code even if they are not critical.
6251
62522009-04-25 Jan Hubicka <jh@suse.cz>
6253
6254 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6255 (gimple_can_remove_branch_p): EH edges won't remove branch by
6256 redirection.
6257 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
6258 updating of non-abnormal EH edges.
6259 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6260 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
6261 (split_critical_edges): Split also edges where emitting code on them
6262 will lead to splitting later.
6263
a3a5e3d1
UB
62642009-04-25 Uros Bizjak <ubizjak@gmail.com>
6265 H.J. Lu <hongjiu.lu@intel.com>
6266
6267 PR target/39590
6268 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
6269 the configured assembler supports fildq and fistpq mnemonics.
6270 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
6271 * configure: Regenerated.
6272 * config.in: Ditto.
6273
6274 * config/i386/i386.c (print_operand): Handle 'Z'.
6275 ['z']: Remove handling of special fild/fist suffixes.
6276 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
6277 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
6278 suffix of fild insn.
6279 (*floatsi<mode>2_vector_mixed): Ditto.
6280 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
6281 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
6282 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6283 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
6284 * config/i386/gas.h (GAS_MNEMONICS): Remove.
6285
23750d7f
BE
62862009-04-25 Ben Elliston <bje@au.ibm.com>
6287
6288 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
6289 the source of a set operation.
6290
e6ff3083
AS
62912009-04-25 Anatoly Sokolov <aesok@post.ru>
6292
6293 * target.h (struct gcc_target): Add case_values_threshold field.
6294 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
6295 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
6296 * targhooks.c (default_case_values_threshold): New function.
6297 * targhooks.h (default_case_values_threshold): Declare function.
6298 * stmt.c (expand_case): Use case_values_threshold target hook.
6299 * expr.h (case_values_threshold): Remove declartation.
6300 * expr.c (case_values_threshold): Remove function.
6301 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
6302
6303 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
6304 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6305 (avr_case_values_threshold): Declare as static.
6306 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
6307
6308 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
6309 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6310 (mn10300_case_values_threshold): New function.
6311
569c72fc
L
63122009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6313
6314 * ira.c (setup_cover_and_important_classes): Add enum cast.
6315
ff3cb468
VM
63162009-04-24 Vladimir Makarov <vmakarov@redhat.com>
6317
6318 * genpreds.c (write_enum_constraint_num): Output definition of
6319 CONSTRAINT_NUM_DEFINED_P macro.
6320 * ira.c (setup_cover_and_important_classes): Use
6321 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
6322
4f7be849
DD
63232009-04-24 DJ Delorie <dj@redhat.com>
6324
6325 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
6326 __SH2A_SINGLE_ONLY__ also.
6327
735b94a7
SE
63282009-04-24 Steve Ellcey <sje@cup.hp.com>
6329
6330 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
6331 (movdf_internal): Ditto.
6332 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
6333 SFmode and DFmode constants.
6334 (ia64_print_operand): Add 'G' format for printing
6335 floating point constants.
6336
77a30264
RG
63372009-04-24 Richard Guenther <rguenther@suse.de>
6338
6339 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
6340 from unsigned additions.
6341
2b6da65c
JM
63422009-04-24 Joseph Myers <joseph@codesourcery.com>
6343
6344 * c-typeck.c (set_init_index): Allow array designators that are
6345 not integer constant expressions with a pedwarn if pedantic.
6346
f5a17c43
BS
63472009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6348
6349 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
6350 zero if no overlap in nonzero bits between the operands.
6351
32e8bb8e
ILT
63522009-04-24 Ian Lance Taylor <iant@google.com>
6353
6354 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
6355 (record_dead_and_set_regs): Likewise.
6356 * df.h (struct df_mw_hardreg): Change flags field to int.
6357 (struct df_base_ref): Likewise.
6358 (struct df): Change changeable_flags field to int.
6359 * df-scan.c (df_defs_record): Change clobber_flags to int.
6360 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
6361 constants rather than #define macros.
6362 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
6363 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
6364 (enum dwarf_calling_convention): Likewise.
6365 (enum dwarf_line_number_x_ops): Likewise.
6366 (enum dwarf_call_frame_info): Likewise.
6367 (enum dwarf_source_language): Likewise.
6368 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
6369 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
6370 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
6371 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
6372 * genrecog.c (maybe_both_true_2): Change c to int.
6373 (write_switch): Likewise. Add cast to enum type.
6374 * gimplify.c (gimplify_omp_for): Handle return values from
6375 gimplify_expr using MIN rather than bitwise or.
6376 (gimplify_expr): Add cast to enum type.
6377 * ipa-prop.c (update_jump_functions_after_inlining): Change
6378 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
6379 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
6380 Add casts to enum type.
32e8bb8e
ILT
6381 (setup_cover_and_important_classes): Change cl to int. Add casts
6382 to enum type.
6383 (setup_class_translate): Change cl and mode to int.
6384 (ira_init_once): Change mode to int.
6385 (free_register_move_costs): Likewise.
6386 (setup_prohibited_mode_move_regs): Add casts to enum type.
6387 * langhooks.c (add_builtin_function_common): Rework assertion that
6388 value fits bitfield.
6389 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
6390 * omega.c (omega_do_elimination): Avoid math on enum types.
6391 * optabs.c (expand_vec_shift_expr): Remove casts to int.
6392 * opts.c (set_debug_level): Change 2 to enum constant. Use new
6393 int local to handle integral_argment value.
6394 * regmove.c (try_auto_increment): Change PUT_MODE to
6395 PUT_REG_NOTE_KIND.
6396 * reload.c (push_secondary_reload): Add casts to enum type.
6397 (secondary_reload_class, find_valid_class): Likewise.
6398 * reload1.c (emit_input_reload_insns): Likewise.
6399 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
6400 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
6401 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
6402 constant.
6403 * tree.c (build_common_builtin_nodes): Add casts to enum type.
6404 * tree-complex.c (complex_lattice_t): Typedef to int rather than
6405 enum type.
6406 (expand_complex_libcall): Add casts to enum type.
6407 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
6408 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
6409 with ERROR_MARK, not NUM_TREE_CODES.
6410 (vect_create_epilog_for_reduction): Likewise.
6411 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 6412 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
6413 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
6414 enum machine_mode.
6415 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
6416 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 6417 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
6418 * var-tracking.c (get_init_value): Change return type to enum
6419 var_init_status.
6420 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
6421 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
6422 arm_fp_model.
6423 (arm_override_options): Add casts to enum type.
6424 (arm_emit_tls_decoration): Likewise.
6425 * config/i386/i386.c (ix86_function_specific_restore): Add casts
6426 to enum type.
6427 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
6428 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
6429 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
6430 enum type.
6431 * config/s390/s390.c (code_for_builtin_64): Change to array of
6432 enum insn_code.
6433 (code_for_builtin_31): Likewise.
6434 (s390_expand_builtin): Change code_for_builtin to enum insn_code
6435 const *.
6436 * config/sparc/sparc.c (sparc_override_options): Change value
6437 field in struct code_model to enum cmodel. In initializer change
6438 0 to NULL and add cast to enum type.
6439
6440 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
6441 Change all callers. Issue a -Wc++-compat warning using
6442 lhs_origtype if necessary.
6443 (convert_for_assignment): Issue -Wc++-compat warnings about
6444 invalid conversions to enum type on assignment.
6445 * c-common.h (build_modify_expr): Update declaration.
6446
ac4fc08a
NC
64472009-04-24 Nick Clifton <nickc@redhat.com>
6448
6449 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
6450 (function_arg_advance): Likewise.
6451 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
6452 5th alternative.
6453
f22e891a
AK
64542009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
6455
6456 * config/s390/constraints.md ('I', 'J'): Fix condition.
6457
ad58aabe
DN
64582009-04-24 Diego Novillo <dnovillo@google.com>
6459
6460 * gengtype-parse.c (parse_error): Add newline after message.
6461
879a4a01
L
64622009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6463
6464 * config/i386/sse.md (avxmodesuffixs): Removed.
6465 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
6466 (*avx_pinsr<ssevecsize>): This.
6467
f63426af
BS
64682009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6469
6470 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
6471 follow chains of regs with a single definition, and allow expressions
6472 that are function_invariant_p.
ce72fe6c 6473 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 6474
30349c74
PB
64752009-04-24 Paolo Bonzini <bonzini@gnu.org>
6476
6477 PR middle-end/39867
6478 * fold-const.c (fold_cond_expr_with_comparison): When folding
6479 > and >= to MAX, make sure the MAX uses the same type as the
6480 comparison's operands.
6481
8d8256c1
NC
64822009-04-24 Nick Clifton <nickc@redhat.com>
6483
6484 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
6485 addressing for DImode accesses.
6486 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 6487 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 6488
6216f94e
JJ
64892009-04-24 Jakub Jelinek <jakub@redhat.com>
6490
6491 PR rtl-optimization/39794
6492 * alias.c (canon_true_dependence): Add x_addr argument.
6493 * rtl.h (canon_true_dependence): Adjust prototype.
6494 * cse.c (check_dependence): Adjust canon_true_dependence callers.
6495 * cselib.c (cselib_invalidate_mem): Likewise.
6496 * gcse.c (compute_transp): Likewise.
6497 * dse.c (scan_reads_nospill): Likewise.
6498 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
6499 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
6500 canon_base_addr of the group, plus optional offset.
6501 (struct group_info): Rename canon_base_mem to
6502 canon_base_addr.
6503 (get_group_info): Set canon_base_addr to canon_rtx of base, not
6504 canon_rtx of base_mem.
6505
6de7a512
PB
65062009-04-23 Paolo Bonzini <bonzini@gnu.org>
6507
6508 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6509 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
6510
4a3a2376
UW
65112009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6512
6513 * config/spu/spu-builtins.h: Delete file.
6514
6515 * config/spu/spu.h (enum spu_builtin_type): Move here from
6516 spu-builtins.h.
6517 (struct spu_builtin_description): Likewise. Add GTY marker.
6518 Do not use enum spu_function_code or enum insn_code.
6519 (spu_builtins): Add extern declaration.
6520
6521 * config/spu/spu.c: Do not include "spu-builtins.h".
6522 (enum spu_function_code, enum spu_builtin_type_index,
6523 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
6524 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
6525 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
6526 unsigned_V2DI_type_node): Move here from spu-builtins.h.
6527 (spu_builtin_types): Make static. Add GTY marker.
6528 (spu_builtins): Add extern declaration with GTY marker.
6529 Include "gt-spu.h".
6530
6531 * config/spu/spu-c.c: Do not include "spu-builtins.h".
6532 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
6533 Check programmatically whether all parameters are scalar.
6534
6535 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
6536
bbaba73f
EB
65372009-04-23 Eric Botcazou <ebotcazou@adacore.com>
6538
6539 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
6540 assignment from the constructor either if the target is volatile.
6541
ee93c1c6
DJ
65422009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
6543
6544 * config/arm/arm.md (insv): Do not share operands[0].
6545
b2f21330
NS
65462009-04-23 Nathan Sidwell <nathan@codesourcery.com>
6547
6548 * config/vxlib-tls.c (active_tls_threads): Delete.
6549 (delete_hook_installed): New.
6550 (tls_delete_hook): Don't delete the delete hook.
6551 (tls_destructor): Delete it here.
6552 (__gthread_set_specific): Adjust installing the delete hook.
6553 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
6554 __gthread_leave_tsd_dtor_context.
6555
4782dfa7
RAE
65562009-04-23 Rafael Avila de Espindola <espindola@google.com>
6557
6558 * c-format.c (gcc_tdiag_char_table): Add support for %E.
6559
bf758008
UB
65602009-04-23 Uros Bizjak <ubizjak@gmail.com>
6561
6562 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
6563 enum type.
6564 (alpha_rtx_costs): Ditto.
6565 (emit_unlikely_jump): Use add_reg_note.
6566 (emit_frame_store_1): Ditto.
6567 (alpha_expand_prologue): Ditto.
6568 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6569 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
6570
7323a100
NC
65712009-04-23 Nick Clifton <nickc@redhat.com>
6572
6573 * config/v850/v850.md (epilogue): Remove suppressed code.
6574 (return): Rename to return_simple and remove test of frame size.
6575 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
6576 to gen_return_simple.
6577
360032ba
JY
65782009-04-22 Jing Yu <jingyu@google.com>
6579
6580 PR testsuite/39781
6581 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
6582
53650abe
AP
65832009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
6584
6585 PR C/31499
6586 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
6587 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
6588 value is a VECTOR_CST, the element type is the element type of the
6589 vector.
6590
89043e8a
DD
65912009-04-22 DJ Delorie <dj@redhat.com>
6592
6593 * config/m32c/m32c.h: Update GTY annotations to new syntax.
6594
023f059b
JJ
65952009-04-22 Jakub Jelinek <jakub@redhat.com>
6596
6597 * alias.c (find_base_term): Move around LO_SUM case, so that
6598 CONST falls through into PLUS/MINUS handling.
6599
2c0eba5a
JJ
6600 PR c/39855
6601 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
6602 into 0, use omit_one_operand.
6603
9a461028
BE
66042009-04-23 Ben Elliston <bje@au.ibm.com>
6605
6606 * config/rs6000/linux-unwind.h (get_regs): Remove type
6607 puns. Change the type of `pc' to an array of unsigned ints and
6608 update all users. Constify frame24.
6609
653e2568
DD
66102009-04-22 DJ Delorie <dj@redhat.com>
6611
6612 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
6613 declarations before code.
6614 (current_function_special_page_vector): Likewise.
6615 (m32c_expand_insv): Silence a warning.
6616
60839f5d 66172009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
6618
6619 * alias.c: Update GTY annotations to new syntax.
6620 * basic-block.h: Likewise.
6621 * bitmap.h: Likewise.
6622 * c-common.h: Likewise.
6623 * c-decl.c: Likewise.
6624 * c-parser.c: Likewise.
6625 * c-pragma.c: Likewise.
6626 * c-tree.h: Likewise.
6627 * cfgloop.h: Likewise.
6628 * cgraph.h: Likewise.
6629 * config/alpha/alpha.c: Likewise.
6630 * config/arm/arm.h: Likewise.
6631 * config/avr/avr.h: Likewise.
6632 * config/bfin/bfin.c: Likewise.
6633 * config/cris/cris.c: Likewise.
6634 * config/darwin.c: Likewise.
6635 * config/frv/frv.c: Likewise.
6636 * config/i386/i386.c: Likewise.
6637 * config/i386/i386.h: Likewise.
6638 * config/i386/winnt.c: Likewise.
6639 * config/ia64/ia64.h: Likewise.
6640 * config/iq2000/iq2000.c: Likewise.
6641 * config/mips/mips.c: Likewise.
6642 * config/mmix/mmix.h: Likewise.
6643 * config/pa/pa.c: Likewise.
6644 * config/pa/pa.h: Likewise.
6645 * config/rs6000/rs6000.c: Likewise.
6646 * config/s390/s390.c: Likewise.
6647 * config/sparc/sparc.c: Likewise.
6648 * config/xtensa/xtensa.c: Likewise.
6649 * cselib.h: Likewise.
6650 * dbxout.c: Likewise.
6651 * dwarf2out.c: Likewise.
6652 * except.c: Likewise.
6653 * except.h: Likewise.
6654 * fixed-value.h: Likewise.
6655 * function.c: Likewise.
6656 * function.h: Likewise.
6657 * gimple.h: Likewise.
6658 * integrate.c: Likewise.
6659 * optabs.c: Likewise.
6660 * output.h: Likewise.
6661 * real.h: Likewise.
6662 * rtl.h: Likewise.
6663 * stringpool.c: Likewise.
6664 * tree-data-ref.c: Likewise.
6665 * tree-flow.h: Likewise.
6666 * tree-scalar-evolution.c: Likewise.
6667 * tree-ssa-address.c: Likewise.
6668 * tree-ssa-alias.h: Likewise.
6669 * tree-ssa-operands.h: Likewise.
6670 * tree.c: Likewise.
6671 * tree.h: Likewise.
6672 * varasm.c: Likewise.
6673 * varray.h: Likewise.
6674 * vec.h: Likewise.
bf758008 6675 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
6676 * doc/gty.texi: Update GTY documentation to new syntax.
6677 * gengtype-lex.l: Enforce attribute-like syntax for GTY
6678 annotations on structs.
6679 * gengtype-parse.c: Likewise.
6680
a123d175
MH
66812009-04-22 Mark Heffernan <meheff@google.com>
6682
bf758008 6683 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 6684
4c7c486a
KH
66852009-04-22 Kazu Hirata <kazu@codesourcery.com>
6686
6687 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
6688 where appropriate.
6689
6e782a29
KH
66902009-04-22 Kazu Hirata <kazu@codesourcery.com>
6691
6692 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
6693 the same as a PLUS without a shift. Increase the cost of a
6694 CONST_INT in MULT.
6695
38d2336a
MLI
66962009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6697
6698 * Makefile.in: Update dependencies.
bf758008 6699 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
6700 * errors.h: Remove bogus comment about compatibility.
6701 (warning): Update declaration.
6702 * genautomata.c: Update all calls to warning.
6703 * gimple.c: Do not include errors.h. Include toplev.h.
6704 * tree-ssa-structalias.c: Do not include errors.h.
6705 * omega.c: Likewise.
6706 * tree-ssa-reassoc.c: Likewise.
6707 * config/spu/spu-c.c: Likewise.
6708 * config/spu/t-spu-elf: Update dependencies.
6709
aea4deba
RG
67102009-04-22 Richard Guenther <rguenther@suse.de>
6711
6712 PR tree-optimization/39824
6713 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
6714 make sure the types are compatible.
6715
cfc93532
MLI
67162009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6717
6718 PR c++/14875
6719 * c-common.c (c_parse_error): Take a token_flags parameter.
6720 Use token_type for the token type instead.
6721 Pass token_flags to cpp_type2name.
6722 * c-common.h (c_parse_error): Update declaration.
6723 * c-parser.c (c_parser_error): Pass 0 as token flags.
6724
8632d02a
AB
67252009-04-22 Andrey Belevantsev <abel@ispras.ru>
6726
6727 PR rtl-optimization/39580
6728 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
6729
4c33221c
UW
67302009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6731
6732 * function.c (expand_function_end): Do not emit a jump to the "naked"
6733 return label for fall-through returns.
6734 * except.c (sjlj_emit_function_exit): Always place the call to the
6735 unregister function at the location installed by expand_function_end.
6736
9925bce0
RG
67372009-04-22 Richard Guenther <rguenther@suse.de>
6738
6739 PR tree-optimization/39845
6740 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
6741 (gen_inbound_check): Likewise.
6742
24a40b35
NS
67432009-04-22 Nathan Sidwell <nathan@codesourcery.com>
6744
6745 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
6746 padding for PPC.
6747 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
6748 * config/vxlib.c (__gthread_once): Add race guard for PPC.
6749
6c34a092
PB
67502009-04-22 Paolo Bonzini <bonzini@gnu.org>
6751
6752 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
6753 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
6754 shift counts to avoid out-of-bounds array accesses.
6755
baa48dfa
PB
67562009-04-22 Paolo Bonzini <bonzini@gnu.org>
6757
6758 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
6759 (Pmode): Move above.
6760
7d83f4f5
UB
67612009-04-22 Uros Bizjak <ubizjak@gmail.com>
6762
6763 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
6764 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
6765 GET_CODE macro. Use IN_RANGE macro where appropriate.
6766 * config/alpha/alpha.h: Ditto.
6767 * config/alpha/alpha.md: Ditto.
6768 * config/alpha/constraints.md: Ditto.
6769 * config/alpha/predicates.md: Ditto.
6770
3ad606bc
PB
67712009-04-22 Paolo Bonzini <bonzini@gnu.org>
6772
6773 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
6774 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6775 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6776 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6777 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6778 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6779 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6780 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6781 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6782 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6783 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6784 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6785 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6786 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6787 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6788 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6789 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6790 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6791 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6792 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6793 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6794 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6795 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6796 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6797 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6798 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6799 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6800
3cabd6d1
LB
68012009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
6802
6803 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
6804 references from comments.
6805 * cfgbuild.c: (count_basic_blocks): Delete.
6806 (find_basic_blocks_1): Delete.
6807 (find_basic_blocks): Delete.
6808 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 6809 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
6810 * except.h (finish_eh_generation): Delete.
6811 * basic-block.h (find_basic_blocks): Delete.
6812 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
6813
270d1bcd
DK
68142009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
6815
6816 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
6817 (sdbout_parms): Likewise.
6818
b757d36f
KK
68192009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
6820
6821 * config/sh/sh.c (prepare_cbranch_operands): Use
6822 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
6823 (expand_cbranchdi4): Likewise.
6824 (from_compare): Add cast to enum type.
6825 (expand_cbranchsi4): Use add_reg_note.
6826 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
6827 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
6828 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
6829 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6830 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
6831 instead of CODE_FOR_nothing.
6832 (cbranchdi4): Likewise. Fix the order of arguments for
6833 gen_rtx_fmt_ee.
6834 (push_fpscr): Use add_reg_note.
6835 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
6836 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
6837
ad41bd84
JM
68382009-04-21 Joseph Myers <joseph@codesourcery.com>
6839
6840 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
6841 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6842 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6843 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
6844 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
6845 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
6846 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
6847 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
6848 config/alpha/x-vms, config/arc/t-arc,
6849 config/arm/README-interworking, config/arm/arm-c.c,
6850 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
6851 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
6852 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
6853 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
6854 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
6855 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
6856 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
6857 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
6858 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
6859 config/cris/t-elfmulti, config/crx/t-crx,
6860 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
6861 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
6862 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
6863 config/h8300/t-h8300, config/i386/athlon.md,
6864 config/i386/darwin-libgcc.10.4.ver,
6865 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
6866 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
6867 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
6868 config/i386/t-linux64, config/i386/t-nwld,
6869 config/i386/t-rtems-i386, config/i386/t-sol2-10,
6870 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
6871 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
6872 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
6873 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
6874 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
6875 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
6876 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
6877 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
6878 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
6879 config/m68k/t-uclinux, config/mcore/t-mcore,
6880 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
6881 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
6882 config/mips/crtn.asm, config/mips/irix-crti.asm,
6883 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
6884 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
6885 config/mips/mips-fixed.md, config/mips/sb1.md,
6886 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
6887 config/mips/t-iris6, config/mips/t-isa3264,
6888 config/mips/t-libgcc-mips16, config/mips/t-linux64,
6889 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
6890 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
6891 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
6892 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
6893 config/mn10300/t-linux, config/mn10300/t-mn10300,
6894 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
6895 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
6896 config/picochip/libgccExtras/clzsi2.asm,
6897 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
6898 config/rs6000/darwin-libgcc.10.4.ver,
6899 config/rs6000/darwin-libgcc.10.5.ver,
6900 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
6901 config/rs6000/t-aix43, config/rs6000/t-aix52,
6902 config/rs6000/t-darwin, config/rs6000/t-fprules,
6903 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
6904 config/rs6000/t-lynx, config/rs6000/t-netbsd,
6905 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
6906 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
6907 config/rs6000/t-rtems, config/rs6000/t-spe,
6908 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
6909 config/score/t-score-elf, config/sh/divcost-analysis,
6910 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
6911 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
6912 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
6913 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
6914 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
6915 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
6916 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
6917 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
6918 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
6919 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
6920 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
6921 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
6922 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
6923 limitx.h, version.c, xcoff.h: Add copyright and license notices.
6924 * config/h8300/genmova.sh: Include copyright and license notices
6925 in generated output.
6926 * config/h8300/mova.md: Regenerate.
6927 * doc/install.texi2html: Include word "Copyright" in copyright
6928 notice and use name "Free Software Foundation, Inc.".
6929 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6930 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6931 ChangeLog-2007, ChangeLog-2008: Correct dates.
6932
ca80e52b
EB
69332009-04-21 Eric Botcazou <ebotcazou@adacore.com>
6934
6935 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6936 NE_EXPR operations as well.
6937 * c-parser.c (c_parser_condition): Do not set location information on
6938 the condition.
6939 (c_parser_conditional_expression): Likewise.
6940 (c_parser_binary_expression): Set location information on operators.
6941 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6942 TRUTH_NOT_EXPR has been folded.
6943 * fold-const.c (fold_truth_not_expr): Copy location information from
6944 the incoming expression to the outgoing one.
6945 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
6946 recursive calls on the LHS of the operator but pass that of the
6947 operator to recursive calls on the RHS of the operator. Set it
6948 on the COND_EXPR.
6949 (shortcut_cond_expr): Set the locus of the operator on the second
6950 COND_EXPR and that of the expression on the first in degenerate cases.
6951 Pass the locus of the expression to calls to shortcut_cond_r.
6952 Set the locus of the 'then' block on the associated jump, if any.
6953 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
6954 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6955 expression to call to gimplify_boolean_expr.
6956
35091630
KT
69572009-04-21 Kai Tietz <kai.tietz@onevision.com>
6958
6959 * config.gcc: Add additional configuration for
6960 i686-w64-mingw* and x86_64-w64-mingw* triplet.
6961 * config/i386/mingw-w64.h: New mingw-w64 specific header.
6962 (CPP_SPEC): Redefine for allowing -municode option.
6963 (STARTFILE_SPEC): Likewise.
6964 * config/i386/t-mingw-w64: New.
6965 * config/i386/mingw-w64.opt: New.
6966 (municode): Add new target option.
6967 * doc/invoke.texi (municode): Add documentation for new option.
6968
0267afc4
ILT
69692009-04-21 Ian Lance Taylor <iant@google.com>
6970
6971 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6972 Correct test for number of arguments.
6973 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6974
2ba9daa7
AS
69752009-04-21 Andreas Schwab <schwab@linux-m68k.org>
6976
6977 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6978 argument of emit_library_call.
6979
ad8a1ac0
RG
69802009-04-21 Richard Guenther <rguenther@suse.de>
6981
6982 PR middle-end/39829
6983 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6984 inside VIEW_CONVERT_EXPRs.
6985
7156c8ab
MJ
69862009-04-21 Martin Jambor <mjambor@suse.cz>
6987
6988 * tree-switch-conversion.c (build_constructors): Split a long line.
6989 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
6990 (build_one_array): Create assigns of constants if possible, do not
6991 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
6992 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6993 make_rename_temp. Do not call mark_symbols_for_renaming, call
6994 update_stmt.
6995 (gen_def_assigns): Do not call mark_symbols_for_renaming or
6996 find_new_referenced_vars, call update_stmt.
6997 (gen_inbound_check): Use create_tmp_var and create ssa names manually
6998 instead of calling make_rename_temp. Do not call
6999 find_new_referenced_vars or mark_symbols_for_renaming, call
7000 update_stmt.
7001
2970ccb3
RG
70022009-04-21 Richard Guenther <rguenther@suse.de>
7003
7004 PR tree-optimization/39827
7d83f4f5 7005 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
7006 (tree_ssa_phiprop): Pass the correct array size.
7007
47f402d1
UB
70082009-04-21 Uros Bizjak <ubizjak@gmail.com>
7009
7010 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
7011
1e4ae551
MLI
70122009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
7013
7014 PR 16202
7015 * c-typeck.c (lvalue_p): Move declaration ...
7016 * c-common.h (lvalue_p): ... to here.
7017 * c-common.c (candidate_equal_p): New.
7018 (add_tlist): Use it.
7019 (merge_tlist): Use it.
7020 (warn_for_collisions_1): Likewise.
7021 (warning_candidate_p): Accept more candidates.
7022 (verify_tree): A warning candidate can be an expression. Use
7023 candidate_equal_p.
7024
244609a6
BE
70252009-04-21 Ben Elliston <bje@au.ibm.com>
7026
7027 PR target/5267
7028 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7029 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
7030 options. Remove -mcall-solaris documentation.
7031
9c650d90
MLI
70322009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7033
7034 PR c++/13358
7035 * doc/invoke.texi (-Wlong-long): Update description.
7036 * c-lex (interpret_integer): Only warn if there was no previous
7037 overflow and -Wlong-long is enabled.
7038 * c-decl.c (declspecs_add_type): Drop redundant flags.
7039 * c.opt (Wlong-long): Init to -1.
7040 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
7041 and front-end warn_long_long. Wlong-long only depends on other
7042 flags if it is uninitialized.
7043 * c-parser.c (disable_extension_diagnostics): warn_long_long is
7044 the same for CPP and FE.
7045 (restore_extension_diagnostics): Likewise.
7046
bbbbb16a
ILT
70472009-04-20 Ian Lance Taylor <iant@google.com>
7048
7049 Fix enum conversions which are invalid in C++:
47f402d1
UB
7050 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
7051 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7052 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
7053 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 7054 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 7055 (dbxout_parms): Likewise.
47f402d1 7056 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
7057 (df_clear_flags): Likewise.
7058 * df-problems.c (df_rd_bb_local_compute_process_def): Change
7059 top_flag parameter to int.
7060 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
7061 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
7062 Remove cast.
bbbbb16a
ILT
7063 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
7064 (df_ref_create_structure, df_def_record_1): Likewise.
7065 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
7066 (df_notes_rescan): Change 0 to VOIDmode in function call.
7067 (df_get_call_refs, df_insn_refs_collect): Likewise.
7068 (df_bb_regs_collect): Likewise.
7069 (df_entry_block_defs_collect): Likewise.
7070 (df_exit_block_uses_collect): Likewise.
7071 * df.h: Update declarations.
7072 * double-int.c (double_int_divmod): Add cast to enum type.
7073 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
7074 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
7075 (based_loc_descr): Likewise.
7076 (loc_descriptor_from_tree_1): Change first_op and second_op to
7077 enum dwarf_location_atom. Add cast to enum type.
7078 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 7079 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7080 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
7081 (do_store_flag): Likewise.
7082 * fixed-value.h (struct fixed_value): Change mode to enum
7083 machine_mode.
47f402d1 7084 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7085 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
7086 function call.
7087 (insert_insn_decl, insert_decl, insert_state): Likewise.
7088 (automata_list_finish): Likewise.
7089 * genrecog.c (process_define_predicate): Add cast to enum type.
7090 * gensupport.c (init_predicate_table): Add cast to enum type.
7091 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
7092 function call.
7093 (gimple_build_call_1, gimple_build_label): Likewise.
7094 (gimple_build_goto, gimple_build_asm_1): Likewise.
7095 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 7096 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
7097 (enum fallback): Rename from enum fallback_t.
7098 (fallback_t): Typedef as int.
7099 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
7100 GSI_SAME_STMT in function call.
7101 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
7102 enum type.
7103 (setup_reg_class_relations): Likewise.
47f402d1 7104 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
7105 (setup_prohibited_class_mode_regs): Add cast to enum type.
7106 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 7107 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
7108 (record_address_regs): Change i to enum reg_class.
7109 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
7110 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
7111 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
7112 (GET_MODE_2XWIDER_MODE): Likewise.
7113 (GET_CLASS_NARROWEST_MODE): Likewise.
7114 * omp-low.c (expand_omp_for): Add cast to enum type.
7115 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
7116 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
7117 * postreload.c (reload_cse_simplify_operands): Change rclass local
7118 to enum reg_class.
7119 * predict.c (combine_predictions_for_insn): Change best_predictor
7120 and predictor to enum br_predictor.
7121 (combine_predictions_for_bb): Likewise.
7122 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
7123 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 7124 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
7125 * reginfo.c (init_move_cost): Add casts to enum type.
7126 (init_reg_sets_1, init_fake_stack_mems): Likewise.
7127 * regmove.c (regclass_compatible_p): Change class0 and class1 to
7128 enum reg_class.
7129 * reload.c (find_valid_class): Add casts to enum type.
7130 (push_reload): Change 0 to NO_REGS in function call.
7131 (find_reloads): Change this_alternative to array of enum
7132 reg_class. Remove some now-unnecessary casts.
7133 (make_memloc): Change 0 to VOIDmode in function call.
7134 * reload1.c (reload): Change 0 to VOIDmode in function call.
7135 (eliminate_regs_1, elimination_effects): Likewise.
7136 (eliminate_regs_in_insn): Likewise.
7137 (emit_input_reload_insns): Add cast to enum type.
7138 (delete_output_reload): Change 0 to VOIDmode in function call.
7139 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
7140 to enum type in function call.
7141 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
7142 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 7143 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
7144 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
7145 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
7146 (dump_function): Likewise.
7147 * tree-dump.h: Update declarations.
7148 * tree-pass.h: Update declarations.
7149 * varasm.c (assemble_integer): Change mclass to enum mode_class.
7150 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
7151 enum type.
7152 (arm_rtx_costs_1): Correct parenthesization.
7153 (arm_rtx_costs): Add casts to enum type.
7154 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
7155 (vfp_emit_fstmd): Use add_rg_note.
7156 (emit_multi_reg_push, emit_sfm): Likewise.
7157 (thumb_set_frame_pointer): Likewise.
7158 (arm_expand_prologue): Likewise.
7159 (arm_regno_class): Change return type to enum reg_class.
7160 (thumb1_expand_prologue): Use add_reg_note.
7161 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
7162 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
7163 in function call.
7164 * config/arm/gentune.sh: Add cast to enum type.
7165 * config/arm/arm-tune.md: Rebuild.
7166 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
7167 (ix86_split_fp_branch, predict_jump): Likewise.
7168 (ix86_expand_multi_arg_builtin): Change sub_code from enum
7169 insn_code to enum rtx_code.
7170 (ix86_builtin_vectorized_function): Add cast to enum type.
7171 * config/i386/i386.md (truncdfsf2): Change slot to enum
7172 ix86_stack_slot.
7173 (truncxf<mode>2, isinf<mode>2): Likewise.
7174 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
7175 enum type.
7176 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
7177 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
7178 (insert_bundle_state): Change 1 to INSERT in function call.
7179 (ia64_add_bundle_selector_before): Likewise.
7180 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
7181 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
7182 (restore_stack_nonlocal): Likewise.
7183 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
7184 function call.
7185 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
7186 function call.
7187 (mips_rtx_costs): Likewise.
7188 (mips_override_options): Add casts to enum type.
7189 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
7190 in function call.
7191 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
7192 (store_reg, set_reg_plus_d): Likewise.
7193 (hppa_expand_prologue, hppa_profile_hook): Likewise.
7194 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7195 cast to enum type.
7196 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
7197 function call.
7198 (emit_unlikely_jump): Use add_reg_note.
7199 (rs6000_emit_allocate_stack): Likewise.
7200 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
7201 (output_toc): Change 1 to INSERT in function call.
7202 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
7203 (rs6000_initialize_trampoline): Likewise.
7204 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
7205 function call.
7206 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
7207 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
7208 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
7209 (save_gprs): Use add_reg_note.
7210 (s390_emit_prologue): Likewise.
47f402d1 7211 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7212 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
7213 (sparc_fold_builtin): Add cast to enum type.
7214 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
7215 enum insn_code.
7216 (spu_expand_prologue): Use add_reg_note.
47f402d1 7217 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7218
72192009-04-20 Ian Lance Taylor <iant@google.com>
7220
7221 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
7222 (c_parser_postfix_expression_after_primary): Get VEC for list of
7223 arguments. Get original types of arguments. Call
7224 build_function_call_vec.
7225 (cached_expr_list_1, cached_expr_list_2): New static variables.
7226 (c_parser_expr_list): Change return type to VEC *. Add
7227 p_orig_types parameter. Change all callers.
7228 (c_parser_release_expr): New static function.
7229 (c_parser_vec_to_tree_list): New static function.
7230 * c-typeck.c (build_function_call): Rewrite to build a VEC and
7231 call build_function_call_vec.
7232 (build_function_call_vec): New function, based on old
7233 build_function_call.
7234 (convert_arguments): Remove nargs and argarray parameters. Change
7235 values to a VEC. Add origtypes parameter.
47f402d1 7236 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
7237 (convert_for_assignment): Add origtype parameter. Change all
7238 callers. If warn_cxx_compat, check for conversion to an enum
7239 type when calling a function.
7240 (store_init_value): Add origtype parameter. Change all callers.
7241 (digest_init): Likewise.
7242 (struct init_node): Add origtype field.
7243 (add_pending_init): Add origtype parameter. Change all callers.
7244 (output_init_element): Likewise.
7245 (output_pending_init_elements): Pass origtype from init_node to
7246 output_init_element.
f28a61ab 7247 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
7248 output_init_element.
7249 (c_finish_return): Add origtype parameter. Change all callers.
7250 * c-common.c (sync_resolve_size): Change params to VEC *. Change
7251 caller.
7252 (sync_resolve_params): Likewise.
47f402d1 7253 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 7254 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 7255 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
7256 * c-decl.c (finish_decl): Add origtype parameter. Change all
7257 callers. Call build_function_call_vec rather than
7258 build_function_call for cleanup.
7259 * c-tree.h: Update declarations.
7260 * c-common.h: Update declarations.
7261 * stub-objc.c (objc_rewrite_function_call): Change parameter from
7262 params to first_param.
7263 * target.h (struct gcc_target): Change resolve_overloaded_builtin
7264 params parameter from tree to void *.
7265 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7266 Change arglist parameter to have type void *, and to be a pointer
7267 to a VEC.
7268 * config/rs6000/rs6000-protos.h
7269 (altivec_resolve_overloaded_builtin): Update declaration.
7270 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
7271 fnargs parameter to have type void *, and to be a pointer to a
7272 VEC. Call build_function_call_vec instead of
7273 build_function_call.
47f402d1 7274 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 7275
6ff078d4 72762009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 7277 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
7278 H.J. Lu <hongjiu.lu@intel.com>
7279
7280 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
7281
7282 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
7283 (IX86_LEA_PRIORITY): Likewise.
7284 (distance_non_agu_define): New function.
7285 (distance_agu_use): Likewise.
7286 (ix86_lea_for_add_ok): Likewise.
7287 (ix86_dep_by_shift_count): Likewise.
7288
7289 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
7290 should split for LEA.
7291
7292 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
7293 function.
7294 (ix86_dep_by_shift_count): Likewise.
7295
87a5b4cc
RG
72962009-04-20 Richard Guenther <rguenther@suse.de>
7297
7298 * expr.c (handled_component_p): Move ...
7299 * tree.h (handled_component_p): ... here.
7300 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
7301 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
7302 and REALPART_EXPR to be in one group.
7303
438c239d
RG
73042009-04-20 Richard Guenther <rguenther@suse.de>
7305
7306 * basic-block.h (get_all_dominated_blocks): Declare.
7307 * dominance.c (get_all_dominated_blocks): New function.
7308 * tree-cfg.c (get_all_dominated_blocks): Remove.
7309 (remove_edge_and_dominated_blocks): Adjust.
7310 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
7311 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
7312 instead of recursing.
7313
fed5ae11
DK
73142009-04-20 Doug Kwan <dougkwan@google.com>
7315
7316 * cgraph.h (cgraph_node_ptr): New type for vector functions.
7317 (struct cgraph_node_set_def): New type.
7318 (cgraph_node_set) New type. Also declare vector functions.
7319 (struct cgraph_node_set_element_def): New type.
7320 (cgraph_node_set_element): Ditto.
7321 (cgraph_node_set_iterator): New iterator type.
7322 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
7323 cgraph_node_set_remove, dump_cgraph_node_set,
7324 debug_cgraph_node_set): New prototypes.
7325 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
7326 cgraph_node_set_size): New inlines.
7327 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
7328 including cgraph.h.
7329 (struct ipa_opt_pass): Add struct cgraph_node_set_def
7330 argument to function 'write_summary'.
7331 * ipa.c: Include ggc.h.
7332 (hash_cgraph_node_set_element,
7333 eq_cgraph_node_set_element, cgraph_node_set_new,
7334 cgraph_node_set_add, cgraph_node_set_remove,
7335 cgraph_node_set_find, dump_cgraph_node_set,
7336 debug_cgraph_node_set): New functions.
7337 * Makefile.in (ipa.o): Add dependency on GGC_H.
7338
c4551b28
IR
73392009-04-20 Ira Rosen <irar@il.ibm.com>
7340
7341 PR tree-optimization/39675
2ba9daa7 7342 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
7343 check of the return code of vect_schedule_slp. Check that
7344 stmt_vec_info still exists for the statement, before checking its
7345 vectorization type.
c4551b28 7346
21a495fb
MM
73472009-04-20 Michael Matz <matz@suse.de>
7348
7349 * Makefile.in (generated_files): Take out $(simple_generated_c).
7350
8e208874
DK
73512009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
7352
7353 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
7354 (UINTPTR_TYPE): Likewise.
7355
a45e580b
JM
73562009-04-19 Joseph Myers <joseph@codesourcery.com>
7357
7358 PR c/37481
7359 * c-typeck.c (digest_init): Check for initializing an array with a
7360 string literal.
7361
20845d35
JM
73622009-04-19 Joseph Myers <joseph@codesourcery.com>
7363
7364 PR c/19771
7365 * c-semantics.c (pop_stmt_list): Propagate
7366 STATEMENT_LIST_HAS_LABEL to parent statement list.
7367
28143fdd
AN
73682009-04-19 Adam Nemet <anemet@caviumnetworks.com>
7369
7370 * config/mips/mips.h (mips_tune_attr): New macro.
7371 * config/mips/mips.md (cpu): Use it.
7372
da377db9
JM
73732009-04-19 Joseph Myers <joseph@codesourcery.com>
7374
7375 PR c/38243
7376 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
7377 declaring a tag.
7378
3baf459d
DN
73792009-04-19 Diego Novillo <dnovillo@google.com>
7380
7381 * toplev.c (compile_file): Move call to coverage_finish ...
7382 * cgraphunit.c (ipa_passes): ... here.
7383 Call cgraph_process_new_functions.
7384 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
7385 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
7386
b6fa5b01
JH
73872009-04-19 Jan Hubicka <jh@suse.cz>
7388
47f402d1
UB
7389 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
7390 cfun.
b6fa5b01
JH
7391 (dump_cgraph_node): Dump can throw external flag.
7392 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
7393
ca409efd
MLI
73942009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
7395
7396 PR c/32061
7397 PR c++/36954
7398 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
7399 * common.opt (Wlogical-op): Move from here...
7400 * c.opt (Wlogical-op): ... to here.
7401 * c-typeck.c (parser_build_binary_op): Update call to
7402 warn_logical_operator.
7403 * c-opts.c (c_common_post_options): Enable warn_logical_op with
7404 extra_warnings.
7405 * c-common.c (warn_logical_op): Update.
7406 * c-common.h (warn_logical_op): Update declaration.
7407
9db4cdd3
EB
74082009-04-19 Eric Botcazou <ebotcazou@adacore.com>
7409
7410 * tree.c (protected_set_expr_location): Fix formatting.
7411
f37acdf9
JM
74122009-04-18 Joseph Myers <joseph@codesourcery.com>
7413
7414 PR c/27676
7415 * c-typeck.c (readonly_warning): new.
7416 (build_unary_op, build_modify_expr): Use readonly_warning for
7417 storing into something readonly but not const-qualified.
7418
2b4b7036
JM
74192009-04-18 Joseph Myers <joseph@codesourcery.com>
7420
7421 PR c/22367
7422 * c-typeck.c (build_unary_op): Check for taking address of
7423 expression of type void.
7424
3ce62965
JM
74252009-04-18 Joseph Myers <joseph@codesourcery.com>
7426
7427 PR c/35210
7428 * c-typeck.c (build_function_call): Check for calling a function
7429 with qualified void return types. Call require_complete_type when
7430 generating a trap.
7431
2505c5ed
JH
74322009-04-18 Jan Hubicka <jh@suse.cz>
7433
7434 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
7435 Set nothrow flag.
7436 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
7437 can_throw_external flag.
7438 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
7439 * ipa-pure-const.c (ignore_edge): New function.
7440 (propagate): Compute order for NOTHROW computation; set NOTHROWs
7441 only over can_throw_external edges.
7442 (local_pure_const): Add nothrow flag.
7443 * ipa-utils.c (searchc): Add ignore_edge callback.
7444 (ipa_utils_reduced_inorder): Add ignore_edge callback.
7445 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
7446 (set_nothrow_function_flags): Update cgraph.
7447 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
7448
2586ba4b
RG
74492009-04-18 Richard Guenther <rguenther@suse.de>
7450
7451 PR middle-end/39804
7452 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
7453 (fold_stmt): ... this and ...
7454 (fold_stmt_inplace): ... this.
7455 (fold_stmt_1): Fold references in calls and asms.
7456 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
7457
1eefab17
KH
74582009-04-18 Kazu Hirata <kazu@codesourcery.com>
7459
7460 * tree-vrp.c (ssa_name_nonzero_p): Remove.
7461 * tree.h: Remove the prototype for ssa_name_nonzero_p.
7462
aa424b01
KH
74632009-04-18 Kazu Hirata <kazu@codesourcery.com>
7464
7465 * tree.c (function_args_count): Remove.
7466 * tree.h: Remove the prototype for function_args_count.
7467
613a896b
KH
74682009-04-18 Kazu Hirata <kazu@codesourcery.com>
7469
7470 * tree-iterator.c (expr_only): Remove.
7471 * tree.h: Remove the prototype for expr_only.
7472
579e694c
KH
74732009-04-18 Kazu Hirata <kazu@codesourcery.com>
7474
7475 * reginfo.c (cannot_change_mode_set_regs): Remove.
7476 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
7477
ee7e3ad3
AS
74782009-04-08 Anatoly Sokolov <aesok@post.ru>
7479
7480 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
7481 whether operands 0 and 1 overlaps.
7482
92ef7fb1
MLI
74832009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
7484
7485 PR middle-end/36902
7486 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
7487 pointer. Use warning_at instead of warning.
7488 (search_for_addr_array): Likewise.
7489 (check_array_bounds): Likewise.
7490 (check_all_array_refs): Check that the incoming edge is not in the
7491 list of edges to be removed.
7492 (check_all_array_refs): Avoid the temporal pointer.
7493 (vrp_visit_cond_stmt): Fix typo.
7494 (simplify_switch_using_ranges): Handle the case where the switch
7495 index is an integer constant.
7496
0e097268
AN
74972009-04-18 Adam Nemet <anemet@caviumnetworks.com>
7498
7499 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
7500
c782f1dd
KH
75012009-04-18 Kazu Hirata <kazu@codesourcery.com>
7502
7503 * doc/extend.texi, doc/invoke.texi: Fix typos.
7504
668fb0e8
CC
75052009-04-17 Cary Coutant <ccoutant@google.com>
7506
7507 * tree-flow-inline.h (get_lineno): Fix inverted test.
7508
4d4014c1
DN
75092009-04-17 Diego Novillo <dnovillo@google.com>
7510
7511 * tree-ssa-pre.c (create_expression_by_pieces): Remove
7512 assertion for AVAIL_OUT.
7513
2984e1b6
MF
75142009-04-17 Mike Frysinger <vapier@gentoo.org>
7515
7516 PR target/38627
7517 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
7518 * config/sh/linux-atomic.asm: Likewise.
7519
9994a182
DN
75202009-04-17 Diego Novillo <dnovillo@google.com>
7521
7522 * except.c (debug_eh_tree): New.
7523 (struct eh_region, struct eh_status): Move ...
7524 * except.h: ... here.
7525 (add_type_for_runtime): Declare extern.
7526 (lookup_type_for_runtime): Likewise.
7527 (debug_eh_tree): Declare.
7528 * Makefile.in (GTFILES): List except.h before except.c
7529
07485407
DN
75302009-04-17 Diego Novillo <dnovillo@google.com>
7531
47f402d1 7532 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
7533 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7534 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
7535 (find_vars_r): ... here.
7536 * tree-flow.h (find_referenced_vars_in): Declare.
7537 * tree-ssa-pre.c (create_expression_by_pieces): Assert
7538 that AVAIL_OUT exists for BLOCK.
7539 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
7540 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
7541 (tree-parloops.o): Likewise.
7542
4e53d196
SB
75432009-04-17 Simon Baldwin <simonb@google.com>
7544
7545 * toplev.c (default_tree_printer): Add handling for %E format.
7546
413d3aa8
DN
75472009-04-17 Diego Novillo <dnovillo@google.com>
7548
47f402d1
UB
7549 * tree-pretty-print.c (dump_generic_node): Add break after
7550 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
7551 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
7552 FUNCTION_TYPE together. Call print_struct_decl when printing
7553 structures and TDF_SLIM is not given.
413d3aa8
DN
7554 (print_struct_decl): Fix logic for detecting recursion.
7555
5a691e98
RAE
75562009-04-17 Rafael Avila de Espindola <espindola@google.com>
7557
7558 PR 31567
7559 * gcc.c (create_at_file): New.
7560 (compile_input_file_p): New.
7561 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
7562 * main.c (main): Update call to toplev_main.
7563 * toplev.c (toplev_main): Change signature. Call expandargv.
7564 * toplev.h (toplev_main): Change signature.
7565
9eacf7a6
EB
75662009-04-17 Eric Botcazou <ebotcazou@adacore.com>
7567
7568 * dwarf2out.c (field_byte_offset): Use the type size as the field size
7569 if the latter is not constant.
7570
58298177
DE
75712009-04-17 David Edelsohn <edelsohn@gnu.org>
7572
7573 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
7574
5b4c43d7
EB
75752009-04-17 Eric Botcazou <ebotcazou@adacore.com>
7576
7577 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
7578 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
7579
b51605c4
RG
75802009-04-17 Richard Guenther <rguenther@suse.de>
7581
7582 * tree-ssa-structalias.c (get_constraint_for_component_ref):
7583 Handle component references view-converting an invariant address.
7584
9e3be889
AN
75852009-04-17 Adam Nemet <anemet@caviumnetworks.com>
7586
7587 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
7588 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
7589 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
7590 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
7591 Use @deftypevr rather than @deftypevar.
7592
7c3e9dc3
RG
75932009-04-17 Richard Guenther <rguenther@suse.de>
7594
47f402d1 7595 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
7596 (get_prop_source_stmt): Likewise.
7597 (can_propagate_from): Likewise.
7598
aca600aa
AS
75992009-04-17 Andrew Stubbs <ams@codesourcery.com>
7600
7601 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
7602 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
7603 (--with-multilib-list): Add default value.
7604 * configure: Regenerate.
7605 * Makefile.in (TM_ENDIAN_CONFIG): Define.
7606 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
7607 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
7608 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
7609 Don't add default cpu to multilib list unnecessarily, but do enable
7610 the relevant compiler option..
7611 Add support for --with-multilib-list=<blank> and
7612 --with-multilib-list=!<somelib> to supress unwanted multilibs.
7613 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
7614 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
7615 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
7616 TM_MULTILIB_CONFIG.
7617 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
7618 (MULTILIB_OSDIRNAMES): New variable.
7619 * config/sh/t-1e: Delete file.
7620 * config/sh/t-mlib-sh1: Delete file.
7621 * config/sh/t-mlib-sh2: Delete file.
7622 * config/sh/t-mlib-sh2a: Delete file.
7623 * config/sh/t-mlib-sh2a-nofpu: Delete file.
7624 * config/sh/t-mlib-sh2a-single: Delete file.
7625 * config/sh/t-mlib-sh2a-single-only: Delete file.
7626 * config/sh/t-mlib-sh2e: Delete file.
7627 * config/sh/t-mlib-sh3e: Delete file.
7628 * config/sh/t-mlib-sh4: Delete file.
7629 * config/sh/t-mlib-sh4-nofpu: Delete file.
7630 * config/sh/t-mlib-sh4-single: Delete file.
7631 * config/sh/t-mlib-sh4-single-only: Delete file.
7632 * config/sh/t-mlib-sh4a: Delete file.
7633 * config/sh/t-mlib-sh4a-nofpu: Delete file.
7634 * config/sh/t-mlib-sh4a-single: Delete file.
7635 * config/sh/t-mlib-sh4a-single-only: Delete file.
7636 * config/sh/t-mlib-sh4al: Delete file.
7637 * config/sh/t-mlib-sh5-32media: Delete file.
7638 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
7639 * config/sh/t-mlib-sh5-64media: Delete file.
7640 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
7641 * config/sh/t-mlib-sh5-compact: Delete file.
7642 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
7643 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
7644 * doc/install.texi (Options specification): Add
7645 --with-multilib-list and --with-endian.
7646
cf8aba7f
RAE
76472009-04-17 Rafael Avila de Espindola <espindola@google.com>
7648
7649 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
7650 REVISION_c.
7651 (OBJS-common): Add plugin-version.o.
7652 (plugin-version.o): New.
7653 * gcc-plugin.h (plugin_gcc_version): New.
7654 (plugin_default_version_check): New.
7655 (plugin_init_func, plugin_init): Add version argument.
7656 * plugin-version.c: New.
7657 * plugin.c (str_plugin_gcc_version_name): New.
7658 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
7659 pass it to the init function.
7660 (plugin_default_version_check): New.
7661
61e20b90
RG
76622009-04-17 Richard Guenther <rguenther@suse.de>
7663
7664 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
7665 for decl-vs-decl disambiguation.
7666
90c6fd8a
AK
76672009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
7668
7669 * config/s390/s390.h (s390_tune_attr): New macro definition.
7670 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
7671
9fe9fe04
RG
76722009-04-17 Richard Guenther <rguenther@suse.de>
7673
7674 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
7675 (fold_stmt_r): Likewise.
7676 (maybe_fold_reference): New function.
7677 (fold_gimple_assign): Handle cases fold_stmt_r did.
7678 (fold_stmt): Do not use fold_stmt_r.
7679 (fold_stmt_inplace): Likewise.
7680
7e673273
RG
76812009-04-17 Richard Guenther <rguenther@suse.de>
7682
7683 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
7684 (record_equivalences_from_stmt): Remove useless checks and
7685 simplifications.
7686 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
7687 the type is already suitable.
7688
fabf2749
PB
76892009-04-17 Paolo Bonzini <bonzini@gnu.org>
7690
7691 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
7692
68f7b061
UB
76932009-04-17 Uros Bizjak <ubizjak@gmail.com>
7694
7695 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
7696 (CMPtype): Define as __gcc_CMPtype.
7697
532bfb0a
AJ
76982009-04-17 Aurelien Jarno <aurelien@aurel32.net>
7699
7700 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
7701 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
7702
e3ac77ff
RG
77032009-04-17 Richard Guenther <rguenther@suse.de>
7704
7705 PR tree-optimization/39746
7706 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
7707 special-casing for builtins and static variable use/def.
7708 (call_may_clobber_ref_p_1): Likewise.
7709
7072a650
ILT
77102009-04-16 Ian Lance Taylor <iant@google.com>
7711
7712 * df.h: Include "timevar.h".
7713 (struct df_problem): Change tv_id field to timevar_id_t.
7714 * tree-pass.h: Include "timevar.h".
7715 (struct opt_pass): Change tv_id field to timevar_id_t.
7716 * timevar.h (timevar_id_t): Define TV_NONE.
7717 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
7718 TV_NONE rather than tv_id != 0.
7719 (execute_one_pass): Likewise.
7720 * Makefile.in (DF_H): Add $(TIMEVAR_H).
7721 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
7722 dependencies to $(TREE_PASS_H).
7723 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
7724 to TV_NONE.
7725 (pass_branch_target_load_optimize2): Likewise.
7726 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
7727 (pass_outof_cfg_layout_mode): Likewise.
7728 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
7729 (pass_rebuild_cgraph_edges): Likewise.
7730 (pass_remove_cgraph_callee_edges): Likewise.
7731 * df-core.c (pass_df_initialize_opt): Likewise.
7732 (pass_df_initialize_no_opt): Likewise.
7733 (pass_df_finish): Likewise.
7734 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
7735 * except.c (pass_set_nothrow_function_flags): Likewise.
7736 (pass_convert_to_eh_region_ranges): Likewise.
7737 * final.c (pass_compute_alignments): Likewise.
7738 * function.c (pass_instantiate_virtual_regs): Likewise.
7739 (pass_init_function): Likewise.
7740 (pass_leaf_regs): Likewise.
7741 (pass_match_asm_constraints): Likewise.
7742 * gimple-low.c (pass_lower_cf): Likewise.
7743 (pass_mark_used_blocks): Likewise.
7744 * init-regs.c (pass_initialize_regs): Likewise.
7745 * integrate.c (pass_initial_value_sets): Likewise.
7746 * ira.c (pass_ira): Likewise.
7747 * jump.c (pass_cleanup_barriers): Likewise.
7748 * omp-low.c (pass_expand_omp): Likewise.
7749 (pass_lower_omp): Likewise.
7750 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
7751 * recog.c (pass_split_all_insns): Likewise.
7752 (pass_split_after_reload): Likewise.
7753 (pass_split_before_regstack): Likewise.
7754 (pass_split_before_sched2): Likewise.
7755 (pass_split_for_shorten_branches): Likewise.
7756 * reginfo.c (pass_reginfo_init): Likewise.
7757 (pass_subregs_of_mode_init): Likewise.
7758 (pass_subregs_of_mode_finish): Likewise.
7759 * passes.c (pass_postreload): Likewise.
7760 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
7761 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
7762 (pass_warn_function_return): Likewise.
7763 (pass_warn_function_noreturn): Likewise.
7764 * tree-complex.c (pass_lower_complex): Likewise.
7765 (pass_lower_complex_O0): Likewise.
7766 * tree-if-conv.c (pass_if_conversion): Likewise.
7767 * tree-into-ssa.c (pass_build_ssa): Likewise.
7768 * tree-mudflap.c (pass_mudflap_1): Likewise.
7769 (pass_mudflap_2): Likewise.
7770 * tree-nomudflap.c (pass_mudflap_1): Likewise.
7771 (pass_mudflap_2): Likewise.
7772 * tree-nrv.c (pass_return_slot): Likewise.
7773 * tree-object-size.c (pass_object_sizes): Likewise.
7774 * tree-optimize.c (pass_all_optimizations): Likewise.
7775 (pass_early_local_passes): Likewise.
7776 (pass_all_early_optimizations): Likewise.
7777 (pass_cleanup_cfg): Likewise.
7778 (pass_cleanup_cfg_post_optimizing): Likewise.
7779 (pass_free_datastructures): Likewise.
7780 (pass_free_cfg_annotations): Likewise.
7781 (pass_fixup_cfg): Likewise.
7782 (pass_init_datastructures): Likewise.
7783 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
7784 (pass_late_warn_uninitialized): Likewise.
7785 (pass_update_address_taken): Likewise.
7786 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
7787 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
7788 (pass_cse_sincos): Likewise.
7789 (pass_convert_to_rsqrt): Likewise.
7790 * tree-ssa-structalias.c (pass_build_alias): Likewise.
7791 * tree-stdarg.c (pass_stdarg): Likewise.
7792 * tree-tailcall.c (pass_tail_recursion): Likewise.
7793 (pass_tail_calls): Likewise.
7794 * tree-vect-generic.c (pass_lower_vector): Likewise.
7795 (pass_lower_vector_ssa): Likewise.
7796 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
7797
0051ef59
JM
77982009-04-16 Joseph Myers <joseph@codesourcery.com>
7799
7800 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
7801 XLR entry.
7802 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
7803 Handle -march=xlr.
7804 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
7805 logical and signext.
7806
b3f8558a
KK
78072009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
7808
7809 PR target/39767
7810 * config/sh/predicates.md (arith_operand): Check if the operand
7811 of TRUNCATE is a REG.
7812
f57597d9
KH
78132009-04-16 Kazu Hirata <kazu@codesourcery.com>
7814
7815 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
7816 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
7817
b172d063
KH
78182009-04-16 Kazu Hirata <kazu@codesourcery.com>
7819
7820 * tree-iterator.c (tsi_split_statement_list_after,
7821 tsi_split_statement_list_before): Remove.
7822 * tree-iterator.h: Remove the prototypes for
532bfb0a 7823 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 7824
78fe4f1f
KH
78252009-04-16 Kazu Hirata <kazu@codesourcery.com>
7826
7827 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
7828 * tree-ssa-propagate.h: Remove the prototype for
7829 stmt_makes_single_load.
7830
43dd3201
KH
78312009-04-16 Kazu Hirata <kazu@codesourcery.com>
7832
7833 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
7834 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
7835
4252a4aa
KH
78362009-04-16 Kazu Hirata <kazu@codesourcery.com>
7837
7838 * tree-iterator.c (EXPR_LAST_BODY): Remove.
7839
bfb69968
KH
78402009-04-16 Kazu Hirata <kazu@codesourcery.com>
7841
7842 * except.c (eh_region_outer_p): Remove.
7843 * except.h: Remove the prototype for eh_region_outer_p.
7844
c7db7fa5
KH
78452009-04-16 Kazu Hirata <kazu@codesourcery.com>
7846
7847 * function.c (current_function_assembler_name): Remove.
7848 * function.h: Remove the prototype for
7849 current_function_assembler_name.
7850
efc0b2bd
ILT
78512009-04-16 Ian Lance Taylor <iant@google.com>
7852
532bfb0a 7853 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
7854 (add_reg_note): Call alloc_reg_note.
7855 * rtl.h (alloc_reg_note): Declare.
7856 * combine.c (try_combine): Use alloc_reg_note.
7857 (recog_for_combine, move_deaths): Likewise.
7858 (distribute_notes): Use alloc_reg_note and add_reg_note.
7859 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
7860 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
7861 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
7862
6080348f
VM
78632009-04-16 Vladimir Makarov <vmakarov@redhat.com>
7864
7865 PR rtl-optimization/39762
7866 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
7867 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 7868 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 7869
6080348f
VM
7870 * ira-conflicts.c (process_regs_for_copy): Use function
7871 ira_get_register_move_cost instead of global
7872 ira_register_move_cost.
7873
7874 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
7875 color_pass, move_spill_restore, update_curr_costs): Ditto.
7876
7877 * ira-lives.c (process_single_reg_class_operands): Ditto.
7878
7879 * ira-emit.c (emit_move_list): Ditto.
7880
7881 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
7882 (record_reg_classes): Ditto. Use functions
7883 ira_get_register_move_cost and ira_get_may_move_cost instead of
7884 global vars ira_register_move_cost, ira_may_move_out_cost and
7885 ira_may_move_in_cost.
7886 (record_address_regs): Don't call ira_init_register_move_cost.
7887 Use function ira_get_may_move_cost instead of global
7888 ira_may_move_in_cost.
7889 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 7890 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 7891 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 7892
646bea10
RG
78932009-04-16 Richard Guenther <rguenther@suse.de>
7894
7895 * tree-cfg.c (verify_gimple_assign_binary):
7896 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
7897 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
7898 (create_general_new_stmt): Note that this function is broken.
7899
02e819ff
RAE
79002009-04-16 Rafael Avila de Espindola <espindola@google.com>
7901
7902 * common.opt (fhelp): Add Var(help_flag).
7903 * gcc-plugin.h (plugin_info): Add help.
7904 * plugin.c (plugin_name_args): Add help.
7905 (register_plugin_info): Set plugin->help.
7906 (print_help_one_plugin): New.
7907 (print_plugins_help): New.
7908 * plugin.h (print_plugins_help): New.
7909 * toplev.c (toplev_main): Call print_plugins_help if needed.
7910
ccacdf06
RG
79112009-04-16 Richard Guenther <rguenther@suse.de>
7912
7913 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
7914 (gimple_ior_addresses_taken_1): New function.
7915 (gimple_ior_addresses_taken): Likewise.
7916 * gimple.h (struct gimple_statement_with_ops_base): Remove
7917 addresses_taken member.
7918 (gimple_ior_addresses_taken): Declare.
7919 (gimple_addresses_taken, gimple_addresses_taken_ptr,
7920 gimple_set_addresses_taken): Remove.
7921 * ipa-reference.c (mark_address): New function.
7922 (scan_stmt_for_static_refs): Use it for marking addresses taken.
7923 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
7924 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
7925 (gimple_add_to_addresses_taken): Remove.
7926 (get_tmr_operands): Call mark_address_taken.
7927 (get_asm_expr_operands): Likewise.
7928 (get_expr_operands): Likewise.
7929 (build_ssa_operands): Do not clear the addresses_taken bitmap.
7930 (free_stmt_operands): Do not free it.
7931 * tree-ssa.c (delete_tree_ssa): Likewise.
7932 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7933
346ef3fa
RG
79342009-04-16 Richard Guenther <rguenther@suse.de>
7935
7936 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7937 (walk_stmt_load_store_ops): Likewise.
7938 * gimple.c (get_base_loadstore): New function.
7939 (walk_stmt_load_store_addr_ops): Likewise.
7940 (walk_stmt_load_store_ops): Likewise.
7941 * ipa-pure-const.c (check_op): Simplify.
7942 (check_load, check_store): New functions.
7943 (check_stmt): Use walk_stmt_load_store_ops.
7944 * ipa-reference.c (mark_load): Adjust signature.
7945 (mark_store): Likewise.
7946 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7947
44e9f006
RAE
79482009-04-16 Rafael Avila de Espindola <espindola@google.com>
7949
7950 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7951 (plugin_info): New.
7952 * opts.c (common_handle_option): Don't call print_version.
7953 * plugin.c (plugin_name_args): Add version.
7954 (register_plugin_info): New.
7955 (register_callback): Handle PLUGIN_INFO.
7956 (try_init_one_plugin): New.
7957 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7958 if failed to init.
7959 (finalize_one_plugin): New.
7960 (finalize_plugins): New.
7961 (print_one_plugin): New.
7962 (print_plugins_versions): New.
7963 * plugin.h (print_plugins_versions): New.
7964 (finalize_plugins): New.
7965 * toplev.c (compile_file): Don't call initialize_plugins.
7966 (print_version): Call print_plugins_versions.
7967 (toplev_main): Call initialize_plugins. Print version if needed.
7968 Call finalize_plugins.
7969
41fd0f9b
RAE
79702009-04-16 Rafael Avila de Espindola <espindola@google.com>
7971
7972 * common.opt (fversion): New.
7973 * gcc.c (print_version): New.
7974 (process_command): Don't print the version. Just set print_version.
7975 (main): Print version. Call subprocesses if print_version and
7976 verbose_flag are set.
7977 * opts.c (common_handle_option): Handle OPT_fversion.
7978
550918ca 79792009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 7980 Ira Rosen <irar@il.ibm.com>
550918ca
RG
7981
7982 PR tree-optimization/39698
7983 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7984 type of the reduction variable. Only generate the def if
7985 it is needed.
7986
7987 * omp-low.c (expand_omp_for_generic): When converting to a pointer
7988 make sure to first convert to an integer of the same precision.
7989 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7990 the type of the evolution correctly in computing the new
7991 induction variable base.
7992
54634841
RG
79932009-04-16 Richard Guenther <rguenther@suse.de>
7994
7995 PR middle-end/39625
7996 * tree-cfg.c (make_blocks): Split statements with to-be
7997 abnormal SSA names on the lhs.
7998
b6fc2cdb
PB
79992009-04-16 Paolo Bonzini <bonzini@gnu.org>
8000
8001 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
8002 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
8003 * c-typeck.c (really_start_incremental_init): Likewise.
8004 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
8005 (TARGET_INITIALIZER): Remove it.
8006 * target.h (struct target): Remove vector_opaque_p.
8007 * tree.c (build_opaque_vector_type): New.
8008 * tree.h (TYPE_VECTOR_OPAQUE): New.
8009 (build_opaque_vector_type): Declare.
8010 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
8011 * config/rs6000/rs6000.c (build_opaque_vector_type,
8012 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
8013 (rs6000_init_builtins): Use build_opaque_vector_type for
8014 opaque_V4SI_type_node.
8015
a417cdd9
CM
80162009-04-15 Catherine Moore <clm@codesourcery.com>
8017
532bfb0a
AJ
8018 * debug.h (set_name): Declare.
8019 * dwarf2out.c (dwarf2out_set_name): Declare.
8020 (dwarf2_debug_hooks): Add set_name.
8021 (find_AT_string): New.
8022 (add_AT_string): Call find_AT_string.
8023 (dwarf2out_set_name): New.
8024 * cp/decl.c (grokdeclarator): Call set_name.
8025 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
8026 * debug.c (do_nothing_debug_hooks): Likewise.
8027 * dbxout.c (dbx_debug_hooks): Likewise.
8028 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 8029
60839f5d 80302009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 8031
532bfb0a
AJ
8032 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
8033 reg for single-precision FPU.
8034 * config/rs6000/rs6000.md (movsi_internal1): Only for
8035 !TARGET_SINGLE_FPU.
8036 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
8037 single-precision FP regs.
8038
ada39f0b
RG
80392009-04-15 Richard Guenther <rguenther@suse.de>
8040
8041 * omp-low.c (lower_rec_input_clauses): Build correct address
8042 expressions.
8043 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 8044 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
8045 (generate_memset_zero): Fix types.
8046 * tree-profile.c (prepare_instrumented_value): Correctly
8047 widen a pointer.
8048
6866c6e8
ILT
80492009-04-15 Ian Lance Taylor <iant@google.com>
8050
8051 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
8052 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
8053 for -Wall and for -Wc++-compat.
8054 (c_common_post_options): For C++, set warn_enum_compare if not
8055 already set.
8056 * c-tree.h (struct c_expr): Add field original_type.
8057 (build_external_ref): Update declaration.
8058 * c-parser.c (c_parser_braced_init): Set original_type.
8059 (c_parser_initelt): Likewise.
8060 (c_parser_expr_no_commas): Likewise.
8061 (c_parser_conditional_expression): Likewise.
8062 (c_parser_cast_expression): Likewise.
8063 (c_parser_unary_expression): Likewise. Pull setting of
8064 original_code to top of function.
8065 (c_parser_sizeof_expression): Set original_type.
8066 (c_parser_alignof_expression): Likewise.
8067 (c_parser_postfix_expression): Likewise. Pull setting of
8068 original_code to top of function.
532bfb0a 8069 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
8070 (c_parser_postfix_expression_after_primary): Likewise.
8071 (c_parser_expression): Likewise.
8072 * c-typeck.c (build_external_ref): Add type parameter. Change all
8073 callers.
8074 (c_expr_sizeof_expr): Set original_type field.
8075 (parser_build_unary_op): Likewise.
8076 (parser_build_binary_op): Likewise. Optionally warn about
8077 comparisons of enums of different types.
8078 (digest_init): Set original_type field.
8079 (really_start_incremental_init): Likewise.
8080 (push_init_level, pop_init_level): Likewise.
8081 * doc/invoke.texi (Warning Options): -Wenum-compare now
8082 supported in C.
8083
f116fecf
RG
80842009-04-15 Richard Guenther <rguenther@suse.de>
8085
8086 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
8087 out a necessary conversion.
8088 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
8089 names we didn't value number.
8090 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
8091
25e20805
RG
80922009-04-15 Richard Guenther <rguenther@suse.de>
8093
8094 PR tree-optimization/39764
8095 * tree-ssa-ccp.c (get_value): Canonicalize value with
8096 canonicalize_float_value.
8097
90cc3676
JH
80982009-04-15 Jan Hubicka <jh@suse.cz>
8099
8100 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
8101 Wrong version of patch.
8102
6d14c006
JH
81032009-04-15 Jan Hubicka <jh@suse.cz>
8104
8105 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
8106
5afaa917
NS
81072009-04-15 Nathan Sidwell <nathan@codesourcery.com>
8108
8109 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
8110 our distinct integral and vector types.
8111
3b482fca
RAE
81122009-04-15 Rafael Avila de Espindola <espindola@google.com>
8113
8114 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
8115 * init.c (build_vtbl_address): Remove call to assemble_external.
8116
6cd1d2e2
DJ
81172009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
8118
8119 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
8120 output for other floating point modes.
8121
dab71827
DN
81222009-04-14 Diego Novillo <dnovillo@google.com>
8123
8124 * diagnostic.c (diagnostic_report_diagnostic): Do not
8125 warn about loaded plugins for DK_ERROR and DK_WARNING.
8126 * c-decl.c (declspecs_add_type): Move call to
8127 invoke_plugin_callbacks ...
8128 * c-parser.c (c_parser_declspecs): ... here.
8129 * plugin.c (dump_active_plugins): Tidy output.
8130
68a607d8
DN
81312009-04-14 Diego Novillo <dnovillo@google.com>
8132 Le-Chun Wu <lcwu@google.com>
8133
8134 * configure.ac: Add --enable-plugin support.
8135 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
8136 * Makefile.in (PLUGIN_H): Define.
8137 Export ENABLE_PLUGIN and GMPINC to site.exp.
8138 Add PLUGINLIBS to link command.
8139 Add/modify dependencies for plugin.o and files including plugin.h.
8140 (plugin.o): New.
8141 * config.in: Regenerate.
2ba9daa7 8142
68a607d8
DN
8143 * opts.c (common_handle_option): Handle OPT_fplugin_ and
8144 OPT_fplugin_arg_.
8145
81462009-04-14 Le-Chun Wu <lcwu@google.com>
8147
8148 * tree-pass.h (register_one_dump_file): Add a prototype for
8149 register_one_dump_file.
8150 * toplev.c (compile_file): Call initialize_plugins.
8151 (do_compile): Call invoke_plugin_callbacks.
8152 (toplev_main): Call invoke_plugin_callbacks.
8153 * common.opt: Add -fplugin= and -fplugin-arg-.
8154 * gcc-plugin.h: New public header file for plugins to include.
8155 * plugin.c: New source file.
8156 * plugin.h: New internal header file.
8157 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 8158
68a607d8
DN
8159 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
8160
81612009-04-14 Diego Novillo <dnovillo@google.com>
8162
8163 * doc/plugins.texi: New.
8164 * doc/gccint.texi: Add reference to Plugins chapter.
8165 * doc/invoke.texi: Document -fplugin and -fplugin-arg
8166 * diagnostic.c (diagnostic_report_diagnostic): Warn about
8167 loaded plugins, if any.
8168 * timevar.def (TV_PLUGIN_INIT): Define.
8169 (TV_PLUGIN_RUN): Define.
8170 * plugin.c: Include timevar.h
8171 (plugins_active_p): New.
8172 (dump_active_plugins): New.
8173 (debug_active_plugins): New.
8174
50617257
JM
81752009-04-14 Joseph Myers <joseph@codesourcery.com>
8176
8177 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
8178 library paths.
8179 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
8180
b32f6fff
KH
81812009-04-14 Kazu Hirata <kazu@codesourcery.com>
8182
8183 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
8184 the same as a minus without a shift.
8185
85d04fa2
NC
81862009-04-14 Nick Clifton <nickc@redhat.com>
8187
8188 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
8189 comparisons with small integers will always produce a short
8190 branch.
8191
e495a0c8
RAE
81922009-04-14 Rafael Avila de Espindola <espindola@google.com>
8193
8194 Merge:
e495a0c8
RAE
8195 2008-12-19 Diego Novillo <dnovillo@google.com>
8196
532bfb0a 8197 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 8198
ad41bd84 81992009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
8200
8201 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
8202 verification.
8203 (verify_gimple_assign_binary): Likewise. Handle shifts and
8204 rotates correctly.
8205 (verify_gimple_phi): Print the mismatched argument position.
8206 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8207 Fix types.
8208 (vect_update_init_of_dr): Likewise.
8209 * matrix-reorg.c (transform_access_sites): Do what the
8210 comment suggests.
8211 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
8212
60839f5d 82132009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
8214
8215 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
8216 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
8217 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 8218 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
8219 remove duplicate config
8220
b0e2d008
DR
82212009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8222
8223 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
8224 file_name:line_number type locator of the call site.
2ba9daa7 8225
1244a8b7
VM
82262009-04-13 Vladimir Makarov <vmakarov@redhat.com>
8227
8228 * genautomata.c: Put blank after comma.
8229 (automaton_decls): New.
8230 (struct unit_usage): Add comments to member next.
8231 (store_alt_unit_usage): Keep the list ordered.
8232 (unit_present_on_list_p, equal_alternatives_p): New.
8233 (check_regexp_units_distribution): Check units distribution
8234 correctness correctly.
8235 (main): Don't write automata if error is found. Return correct
8236 exit code.
2ba9daa7 8237
1244a8b7
VM
8238 * config/m68k/cf.md (cfv4_ds): Remove.
8239 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
8240 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
8241
8242 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
8243 power4-load-ext, power4-store, power4-store-update,
8244 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
8245 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
8246 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
8247 power4-sqrt, power4-isync): Modify reservation to make correct
8248 unit distribution to automata.
8249
8250 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
8251 power5-store-update, power5-two, power5-three, power5-lmul,
8252 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 8253
f7dd1864
AN
82542009-04-13 Adam Nemet <anemet@caviumnetworks.com>
8255
8256 * except.c (pass_set_nothrow_function_flags): Set name and add
8257 TODO_dump_func.
8258 (set_nothrow_function_flags): Mention in the dump file when
8259 changing a function to nothrow.
8260
59a1171f
OS
82612009-04-13 Ozkan Sezer <sezeroz@gmail.com>
8262
8263 PR/39066
8264 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
8265 instead of unsigned long.
8266
934c2060
RR
82672009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8268
f7dd1864
AN
8269 * config/arm/arm.c (return_used_this_function): Remove.
8270 (arm_output_function_prologue): Remove use of
934c2060 8271 return_used_this_function.
f7dd1864 8272 (output_return_instruction): Replace use of
934c2060
RR
8273 return_used_this_function
8274 by cfun->machine->return_used_this_function.
f7dd1864
AN
8275 (arm_output_epilogue): Likewise.
8276 (arm_output_function_epilogue): Likewise.
8277 (thumb_unexpanded_epilogue): Likewise.
8278 * config/arm/arm.h (struct machine_function):
934c2060 8279 New member return_used_this_function.
f7dd1864 8280
ae5cc016
MM
82812009-04-12 Mark Mitchell <mark@codesourcery.com>
8282
8283 * doc/install.texi: Correct description of default directory for
8284 --with-gxx-include-dir.
8285
a0ce68df 82862009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
8287
8288 * fold-const.c (build_range_check): Properly deal with enumeral and
8289 boolean base types.
8290
3906a4a1
SB
82912009-04-12 Steven Bosscher <steven@gcc.gnu.org>
8292
8293 * doc/invoke.texi (max_gcse_passes): Remove documentation.
8294 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
8295 * params.h (MAX_GCSE_PASSES): Remove.
8296 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
8297 in sequence. Remove ability to run multiple passes.
8298 (bypass_jumps): Report run as third CPROP pass.
8299
efaadb93
AN
83002009-04-12 Adam Nemet <anemet@caviumnetworks.com>
8301
8302 PR middle-end/39651
8303 * except.c (can_throw_external): Look at each insn in a SEQUENCE
8304 when deciding whether the whole SEQUENCE can throw.
8305
4c48007b
UB
83062009-04-12 Uros Bizjak <ubizjak@gmail.com>
8307
8308 PR target/39740
8309 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
8310 offseted label references.
8311
b4104018
JH
83122009-04-11 Jan Hubicka <jh@suse.cz>
8313
8314 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
8315
32848948
RG
83162009-04-11 Richard Guenther <rguenther@suse.de>
8317
8318 PR middle-end/39732
8319 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
8320 return variables as TREE_ADDRESSABLE.
8321
8810712e
RG
83222009-04-11 Richard Guenther <rguenther@suse.de>
8323
8324 PR tree-optimization/39713
8325 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
8326 reference trees have SSA_NAME operands.
8327
fa78c0c1
RG
83282009-04-11 Richard Guenther <rguenther@suse.de>
8329
8330 PR c/39712
8331 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
8332 address expressions.
8333
4d722130
DK
83342009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
8335
8336 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
8337 match changes in Cygwin 1.7
8338 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
8339 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
8340
567a90f5
PB
83412009-04-10 Paolo Bonzini <bonzini@gnu.org>
8342
8343 PR tree-optimization/39701
8344 * doc/invoke.texi (Optimization Options): Document change in
8345 meaning and initialization of -fdelete-null-pointer-checks.
8346
1ad2f450
L
83472009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8348
8349 PR middle-end/39701
8350 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
8351
8352 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
8353 here.
8354
8355 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
8356
1afc5373
CF
83572009-04-10 Chao-ying Fu <fu@mips.com>
8358
8359 * doc/tm.texi (Instruction Output): Document
8360 TARGET_ASM_FINAL_POSTSCAN_INSN.
8361 * target.h (final_postscan_insn): New field in asm_out.
8362 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8363 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
8364 * final.c (final_scan_insn): Call
8365 targetm.asm_out.final_postscan_insn after outputting
8366 an asm macro and a normal instruction.
8367
8368 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
8369 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
8370 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
8371 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
8372 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8373
4d35e75c
PB
83742009-04-10 Paolo Bonzini <bonzini@gnu.org>
8375
8376 PR middle-end/39701
1ad2f450
L
8377 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
8378 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 8379
62c49b83
L
83802009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8381
8382 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
8383
80558628
L
83842009-04-09 H.J. Lu <hongjiu.lu@intel.com>
8385
8386 PR target/39678
8387 * config/i386/i386.c (classify_argument): Handle SCmode with
8388 (bit_offset % 64) != 0.
8389
8c70d28b
SL
83902009-04-09 Sandra Loosemore <sandra@codesourcery.com>
8391
8392 * doc/invoke.texi (Optimize Options): Add cross-reference to
8393 -Q --help=optimizers examples.
8394
e1ff19bf
BE
83952009-04-10 Ben Elliston <bje@au.ibm.com>
8396
8397 PR target/36800
8398 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
8399 regalign for the reg == fpr and TDmode case.
8400
52daca75
DA
84012009-04-09 David Ayers <ayers@fsfe.org>
8402
8403 PR objc/29200
8404 * objc/objc-act.c (warn_with_method): Remove helper function.
8405 (check_duplicates): Call warning and inform directly.
8406 (really_start_method): Likewise.
8407
b45f0e58
PB
84082009-04-09 Paolo Bonzini <bonzini@gnu.org>
8409
8410 * expmed.c (expand_divmod): Always use a comparison for a division
8411 by a large unsigned integer.
8412
1ad2f450
L
8413 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
8414 for things others than variables or functions as nonzero.
b45f0e58 8415
748086b7
JJ
84162009-04-09 Nick Clifton <nickc@redhat.com>
8417
8418 * unwind-compat.c: Change copyright header to refer to version
8419 3 of the GNU General Public License with version 3.1 of the
8420 GCC Runtime Library Exception and to point readers at the
7a715bba 8421 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
8422 * config/alpha/crtfastmath.c: Likewise.
8423 * config/alpha/linux-unwind.h: Likewise.
8424 * config/alpha/qrnnd.asm: Likewise.
8425 * config/alpha/vms-crt0-64.c: Likewise.
8426 * config/alpha/vms-crt0.c: Likewise.
8427 * config/alpha/vms-dwarf2.asm: Likewise.
8428 * config/alpha/vms-dwarf2eh.asm: Likewise.
8429 * config/alpha/vms-psxcrt0-64.c: Likewise.
8430 * config/alpha/vms-psxcrt0.c: Likewise.
8431 * config/alpha/vms_tramp.asm: Likewise.
8432 * config/arc/initfini.c: Likewise.
8433 * config/arc/lib1funcs.asm: Likewise.
8434 * config/arm/bpabi-v6m.S: Likewise.
8435 * config/arm/bpabi.S: Likewise.
8436 * config/arm/bpabi.c: Likewise.
8437 * config/arm/crti.asm: Likewise.
8438 * config/arm/crtn.asm: Likewise.
8439 * config/arm/ieee754-df.S: Likewise.
8440 * config/arm/ieee754-sf.S: Likewise.
8441 * config/arm/lib1funcs.asm: Likewise.
8442 * config/arm/libunwind.S: Likewise.
8443 * config/arm/linux-atomic.c: Likewise.
8444 * config/arm/mmintrin.h: Likewise.
8445 * config/arm/pr-support.c: Likewise.
8446 * config/arm/unaligned-funcs.c: Likewise.
8447 * config/arm/unwind-arm.c: Likewise.
8448 * config/arm/unwind-arm.h: Likewise.
8449 * config/avr/libgcc.S: Likewise.
8450 * config/bfin/crti.s: Likewise.
8451 * config/bfin/crtlibid.s: Likewise.
8452 * config/bfin/crtn.s: Likewise.
8453 * config/bfin/lib1funcs.asm: Likewise.
8454 * config/bfin/linux-unwind.h: Likewise.
8455 * config/cris/arit.c: Likewise.
8456 * config/cris/cris_abi_symbol.c: Likewise.
8457 * config/darwin-64.c: Likewise.
8458 * config/darwin-crt2.c: Likewise.
8459 * config/darwin-crt3.c: Likewise.
8460 * config/darwin.h: Likewise.
8461 * config/dbxelf.h: Likewise.
8462 * config/dfp-bit.c: Likewise.
8463 * config/dfp-bit.h: Likewise.
8464 * config/elfos.h: Likewise.
8465 * config/fixed-bit.c: Likewise.
8466 * config/fixed-bit.h: Likewise.
8467 * config/fp-bit.c: Likewise.
8468 * config/fp-bit.h: Likewise.
8469 * config/fr30/crti.asm: Likewise.
8470 * config/fr30/crtn.asm: Likewise.
8471 * config/fr30/lib1funcs.asm: Likewise.
8472 * config/freebsd-spec.h: Likewise.
8473 * config/frv/cmovd.c: Likewise.
8474 * config/frv/cmovh.c: Likewise.
8475 * config/frv/cmovw.c: Likewise.
8476 * config/frv/frvbegin.c: Likewise.
8477 * config/frv/frvend.c: Likewise.
8478 * config/frv/lib1funcs.asm: Likewise.
8479 * config/glibc-stdint.h: Likewise.
8480 * config/h8300/clzhi2.c: Likewise.
8481 * config/h8300/crti.asm: Likewise.
8482 * config/h8300/crtn.asm: Likewise.
8483 * config/h8300/ctzhi2.c: Likewise.
8484 * config/h8300/fixunssfsi.c: Likewise.
8485 * config/h8300/lib1funcs.asm: Likewise.
8486 * config/h8300/parityhi2.c: Likewise.
8487 * config/h8300/popcounthi2.c: Likewise.
8488 * config/i386/ammintrin.h: Likewise.
8489 * config/i386/att.h: Likewise.
8490 * config/i386/avxintrin.h: Likewise.
8491 * config/i386/biarch64.h: Likewise.
8492 * config/i386/bmmintrin.h: Likewise.
8493 * config/i386/cpuid.h: Likewise.
8494 * config/i386/cross-stdarg.h: Likewise.
8495 * config/i386/crtfastmath.c: Likewise.
8496 * config/i386/crtprec.c: Likewise.
8497 * config/i386/cygming-crtbegin.c: Likewise.
8498 * config/i386/cygming-crtend.c: Likewise.
8499 * config/i386/cygwin.asm: Likewise.
8500 * config/i386/emmintrin.h: Likewise.
8501 * config/i386/gmm_malloc.h: Likewise.
8502 * config/i386/gthr-win32.c: Likewise.
8503 * config/i386/i386.h: Likewise.
8504 * config/i386/immintrin.h: Likewise.
8505 * config/i386/linux-unwind.h: Likewise.
8506 * config/i386/linux64.h: Likewise.
8507 * config/i386/mm3dnow.h: Likewise.
8508 * config/i386/mmintrin-common.h: Likewise.
8509 * config/i386/mmintrin.h: Likewise.
8510 * config/i386/nmmintrin.h: Likewise.
8511 * config/i386/pmm_malloc.h: Likewise.
8512 * config/i386/pmmintrin.h: Likewise.
8513 * config/i386/smmintrin.h: Likewise.
8514 * config/i386/sol2-c1.asm: Likewise.
8515 * config/i386/sol2-ci.asm: Likewise.
8516 * config/i386/sol2-cn.asm: Likewise.
8517 * config/i386/sol2-gc1.asm: Likewise.
8518 * config/i386/tmmintrin.h: Likewise.
8519 * config/i386/unix.h: Likewise.
8520 * config/i386/w32-unwind.h: Likewise.
8521 * config/i386/wmmintrin.h: Likewise.
8522 * config/i386/x86-64.h: Likewise.
8523 * config/i386/x86intrin.h: Likewise.
8524 * config/i386/xmmintrin.h: Likewise.
8525 * config/ia64/crtbegin.asm: Likewise.
8526 * config/ia64/crtend.asm: Likewise.
8527 * config/ia64/crtfastmath.c: Likewise.
8528 * config/ia64/crti.asm: Likewise.
8529 * config/ia64/crtn.asm: Likewise.
8530 * config/ia64/fde-glibc.c: Likewise.
8531 * config/ia64/lib1funcs.asm: Likewise.
8532 * config/ia64/linux-unwind.h: Likewise.
8533 * config/ia64/quadlib.c: Likewise.
8534 * config/ia64/unwind-ia64.c: Likewise.
8535 * config/linux.h: Likewise.
8536 * config/m32c/m32c-lib1.S: Likewise.
8537 * config/m32c/m32c-lib2-trapv.c: Likewise.
8538 * config/m32c/m32c-lib2.c: Likewise.
8539 * config/m32r/initfini.c: Likewise.
8540 * config/m68hc11/larith.asm: Likewise.
8541 * config/m68hc11/m68hc11-crt0.S: Likewise.
8542 * config/m68k/cf.md: Likewise.
8543 * config/m68k/crti.s: Likewise.
8544 * config/m68k/crtn.s: Likewise.
8545 * config/m68k/lb1sf68.asm: Likewise.
8546 * config/m68k/linux-unwind.h: Likewise.
8547 * config/mcore/crti.asm: Likewise.
8548 * config/mcore/crtn.asm: Likewise.
8549 * config/mcore/lib1.asm: Likewise.
8550 * config/mips/linux-unwind.h: Likewise.
8551 * config/mips/loongson.h: Likewise.
8552 * config/mips/mips16.S: Likewise.
8553 * config/mmix/crti.asm: Likewise.
8554 * config/mmix/crtn.asm: Likewise.
8555 * config/pa/fptr.c: Likewise.
8556 * config/pa/hpux-unwind.h: Likewise.
8557 * config/pa/lib2funcs.asm: Likewise.
8558 * config/pa/linux-atomic.c: Likewise.
8559 * config/pa/linux-unwind.h: Likewise.
8560 * config/pa/milli64.S: Likewise.
8561 * config/pa/quadlib.c: Likewise.
8562 * config/pa/stublib.c: Likewise.
8563 * config/picochip/libgccExtras/adddi3.asm: Likewise.
8564 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
8565 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
8566 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
8567 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
8568 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
8569 * config/picochip/libgccExtras/divmod15.asm: Likewise.
8570 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
8571 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
8572 * config/picochip/libgccExtras/longjmp.asm: Likewise.
8573 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
8574 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
8575 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
8576 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
8577 * config/picochip/libgccExtras/setjmp.asm: Likewise.
8578 * config/picochip/libgccExtras/subdi3.asm: Likewise.
8579 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
8580 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
8581 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
8582 * config/rs6000/750cl.h: Likewise.
8583 * config/rs6000/altivec.h: Likewise.
8584 * config/rs6000/biarch64.h: Likewise.
8585 * config/rs6000/crtresfpr.asm: Likewise.
8586 * config/rs6000/crtresgpr.asm: Likewise.
8587 * config/rs6000/crtresxfpr.asm: Likewise.
8588 * config/rs6000/crtresxgpr.asm: Likewise.
8589 * config/rs6000/crtsavfpr.asm: Likewise.
8590 * config/rs6000/crtsavgpr.asm: Likewise.
8591 * config/rs6000/darwin-asm.h: Likewise.
8592 * config/rs6000/darwin-fallback.c: Likewise.
8593 * config/rs6000/darwin-fpsave.asm: Likewise.
8594 * config/rs6000/darwin-ldouble.c: Likewise.
8595 * config/rs6000/darwin-tramp.asm: Likewise.
8596 * config/rs6000/darwin-unwind.h: Likewise.
8597 * config/rs6000/darwin-vecsave.asm: Likewise.
8598 * config/rs6000/darwin-world.asm: Likewise.
8599 * config/rs6000/e500crtres32gpr.asm: Likewise.
8600 * config/rs6000/e500crtres64gpr.asm: Likewise.
8601 * config/rs6000/e500crtres64gprctr.asm: Likewise.
8602 * config/rs6000/e500crtrest32gpr.asm: Likewise.
8603 * config/rs6000/e500crtrest64gpr.asm: Likewise.
8604 * config/rs6000/e500crtresx32gpr.asm: Likewise.
8605 * config/rs6000/e500crtresx64gpr.asm: Likewise.
8606 * config/rs6000/e500crtsav32gpr.asm: Likewise.
8607 * config/rs6000/e500crtsav64gpr.asm: Likewise.
8608 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
8609 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
8610 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
8611 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
8612 * config/rs6000/eabi-ci.asm: Likewise.
8613 * config/rs6000/eabi-cn.asm: Likewise.
8614 * config/rs6000/eabi.asm: Likewise.
8615 * config/rs6000/linux-unwind.h: Likewise.
8616 * config/rs6000/linux64.h: Likewise.
8617 * config/rs6000/paired.h: Likewise.
8618 * config/rs6000/paired.md: Likewise.
8619 * config/rs6000/ppc64-fp.c: Likewise.
8620 * config/rs6000/ppu_intrinsics.h: Likewise.
8621 * config/rs6000/rs6000.h: Likewise.
8622 * config/rs6000/si2vmx.h: Likewise.
8623 * config/rs6000/sol-ci.asm: Likewise.
8624 * config/rs6000/sol-cn.asm: Likewise.
8625 * config/rs6000/spe.h: Likewise.
8626 * config/rs6000/spu2vmx.h: Likewise.
8627 * config/rs6000/sysv4.h: Likewise.
8628 * config/rs6000/tramp.asm: Likewise.
8629 * config/rs6000/vec_types.h: Likewise.
8630 * config/s390/linux-unwind.h: Likewise.
8631 * config/s390/tpf-unwind.h: Likewise.
8632 * config/score/crti.asm: Likewise.
8633 * config/score/crtn.asm: Likewise.
8634 * config/sh/crt1.asm: Likewise.
8635 * config/sh/crti.asm: Likewise.
8636 * config/sh/crtn.asm: Likewise.
8637 * config/sh/divtab-sh4-300.c: Likewise.
8638 * config/sh/divtab-sh4.c: Likewise.
8639 * config/sh/divtab.c: Likewise.
8640 * config/sh/lib1funcs-4-300.asm: Likewise.
8641 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
8642 * config/sh/lib1funcs.asm: Likewise.
8643 * config/sh/lib1funcs.h: Likewise.
8644 * config/sh/linux-atomic.asm: Likewise.
8645 * config/sh/linux-unwind.h: Likewise.
8646 * config/sh/shmedia.h: Likewise.
8647 * config/sh/sshmedia.h: Likewise.
8648 * config/sh/ushmedia.h: Likewise.
8649 * config/sparc/crtfastmath.c: Likewise.
8650 * config/sparc/linux-unwind.h: Likewise.
8651 * config/sparc/sol2-c1.asm: Likewise.
8652 * config/sparc/sol2-ci.asm: Likewise.
8653 * config/sparc/sol2-cn.asm: Likewise.
8654 * config/spu/divmodti4.c: Likewise.
8655 * config/spu/divv2df3.c: Likewise.
8656 * config/spu/float_disf.c: Likewise.
8657 * config/spu/float_unsdidf.c: Likewise.
8658 * config/spu/float_unsdisf.c: Likewise.
8659 * config/spu/float_unssidf.c: Likewise.
8660 * config/spu/mfc_multi_tag_release.c: Likewise.
8661 * config/spu/mfc_multi_tag_reserve.c: Likewise.
8662 * config/spu/mfc_tag_release.c: Likewise.
8663 * config/spu/mfc_tag_reserve.c: Likewise.
8664 * config/spu/mfc_tag_table.c: Likewise.
8665 * config/spu/multi3.c: Likewise.
8666 * config/spu/spu_internals.h: Likewise.
8667 * config/spu/spu_intrinsics.h: Likewise.
8668 * config/spu/spu_mfcio.h: Likewise.
8669 * config/spu/vec_types.h: Likewise.
8670 * config/spu/vmx2spu.h: Likewise.
8671 * config/stormy16/stormy16-lib2.c: Likewise.
8672 * config/svr4.h: Likewise.
8673 * config/sync.c: Likewise.
8674 * config/v850/lib1funcs.asm: Likewise.
8675 * config/vxlib-tls.c: Likewise.
8676 * config/vxlib.c: Likewise.
8677 * config/vxworks-dummy.h: Likewise.
8678 * config/xtensa/crti.asm: Likewise.
8679 * config/xtensa/crtn.asm: Likewise.
8680 * config/xtensa/ieee754-df.S: Likewise.
8681 * config/xtensa/ieee754-sf.S: Likewise.
8682 * config/xtensa/lib1funcs.asm: Likewise.
8683 * config/xtensa/lib2funcs.S: Likewise.
8684 * config/xtensa/linux-unwind.h: Likewise.
8685 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8686 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
8687 * coretypes.h: Likewise.
8688 * crtstuff.c: Likewise.
8689 * defaults.h: Likewise.
8690 * dwarf2.h: Likewise.
8691 * emutls.c: Likewise.
8692 * gbl-ctors.h: Likewise.
8693 * gcov-io.h: Likewise.
8694 * ginclude/float.h: Likewise.
8695 * ginclude/iso646.h: Likewise.
8696 * ginclude/stdarg.h: Likewise.
8697 * ginclude/stdbool.h: Likewise.
8698 * ginclude/stddef.h: Likewise.
8699 * ginclude/stdfix.h: Likewise.
8700 * ginclude/stdint-gcc.h: Likewise.
8701 * ginclude/tgmath.h: Likewise.
8702 * gthr-aix.h: Likewise.
8703 * gthr-dce.h: Likewise.
8704 * gthr-gnat.c: Likewise.
8705 * gthr-gnat.h: Likewise.
8706 * gthr-lynx.h: Likewise.
8707 * gthr-mipssde.h: Likewise.
8708 * gthr-nks.h: Likewise.
8709 * gthr-posix.c: Likewise.
8710 * gthr-posix.h: Likewise.
8711 * gthr-posix95.h: Likewise.
8712 * gthr-rtems.h: Likewise.
8713 * gthr-single.h: Likewise.
8714 * gthr-solaris.h: Likewise.
8715 * gthr-tpf.h: Likewise.
8716 * gthr-vxworks.h: Likewise.
8717 * gthr-win32.h: Likewise.
8718 * gthr.h: Likewise.
8719 * libgcc2.c: Likewise.
8720 * libgcc2.h: Likewise.
8721 * libgcov.c: Likewise.
8722 * tsystem.h: Likewise.
8723 * typeclass.h: Likewise.
8724 * unwind-c.c: Likewise.
8725 * unwind-compat.h: Likewise.
8726 * unwind-dw2-fde-compat.c: Likewise.
8727 * unwind-dw2-fde-darwin.c: Likewise.
8728 * unwind-dw2-fde-glibc.c: Likewise.
8729 * unwind-dw2-fde.c: Likewise.
8730 * unwind-dw2-fde.h: Likewise.
8731 * unwind-dw2.c: Likewise.
8732 * unwind-dw2.h: Likewise.
8733 * unwind-generic.h: Likewise.
8734 * unwind-pe.h: Likewise.
8735 * unwind-sjlj.c: Likewise.
8736 * unwind.inc: Likewise.
8737 * config/arm/neon-gen.ml: Change generated copyright header to
8738 refer to version 3 of the GNU General Public License with
8739 version 3.1 of the GCC Runtime Library Exception and to point
8740 readers at the COPYING3 and COPYING3.RUNTIME files and the
8741 FSF's license web page.
8742 * config/arm/arm_neon.h: Regenerate.
8743
87442009-04-09 Jakub Jelinek <jakub@redhat.com>
8745
8746 * config/cris/cris.md: Change copyright header to refer to version
8747 3 of the GNU General Public License.
8748 * doc/install.texi2html: Change copyright header to refer to version
8749 3 of the GNU General Public License and to point readers at the
8750 COPYING3 file and the FSF's license web page.
8751 * config/vax/linux.h: Likewise.
8752
4a77c72b
PB
87532009-04-09 Paolo Bonzini <bonzini@gnu.org>
8754
1ad2f450
L
8755 * config/i386/i386.md (cmpcc): New.
8756 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
8757 (sync_compare_and_swap_cc*): Delete.
8758
8759 * config/s390/s390.c (s390_compare_emitted): Remove.
8760 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
8761 s390_compare_emitted used to be handled. Assert that modes match.
8762 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
8763 refer to sync_compare_and_swap_ccsi.
8764 * config/s390/s390.h (s390_compare_emitted): Remove.
8765 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
8766 instead of s390_compare_emitted.
8767 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
8768 instead of s390_compare_emitted.
8769 * config/s390/s390.md (cmpcc): New.
8770 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
8771 CC_REGNUM, do not pretend it's set.
8772 (sync_compare_and_swap_cc*): Delete.
8773 * config/s390/predicates.md (cc_reg_operand): New.
8774
8775 * expr.c (sync_compare_and_swap_cc): Delete.
8776 * optabs.h (sync_compare_and_swap_cc): Delete.
8777 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
8778 is being used with can_compare_p.
8779 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
8780 (find_cc_set): New.
8781 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
8782 look for a MODE_CC set instead. Use emit_store_flag.
8783 (expand_compare_and_swap_loop): Likewise, with some additional
8784 complication to avoid a force_reg when useless. Use
8785 emit_cmp_and_jump_insns.
8786 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
8787 * doc/md.texi (sync_compare_and_swap_cc): Merge with
8788 sync_compare_and_swap documentation.
4a77c72b 8789
0c0efb33
JH
87902009-04-09 Jan Hubicka <jh@suse.cz>
8791
8792 * except.c (find_prev_try): Break out from ....
8793 (duplicate_eh_regions): ... here; properly update prev_try pointers
8794 when duplication part of tree.
8795 (dump_eh_tree): Improve dumping.
8796 (verify_eh_region): New.
8797 (verify_eh_tree): Use it.
8798
22a65a54
RG
87992009-04-06 Richard Guenther <rguenther@suse.de>
8800
8801 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
8802 &ARRAY addresses by adjusting their types and prepending
8803 a conversion.
8804 * tree-cfg.c (verify_gimple_assign_single): Verify that
8805 addresses are correct.
8806
f76968e6
RG
88072009-04-09 Richard Guenther <rguenther@suse.de>
8808
8809 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
8810 indices into an array reference if possible.
8811 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8812 Fold POINTER_PLUS_EXPR statements with invariant address.
8813
c90c5fb5
AM
88142009-04-09 Alan Modra <amodra@bigpond.net.au>
8815
8816 PR target/39634
8817 * config.gcc (powerpc64-*-linux*): Always build biarch.
8818
17cede2e
JM
88192009-04-09 Joseph Myers <joseph@codesourcery.com>
8820
8821 PR c/39613
8822 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
8823 it and pedwarn if this results in an INTEGER_CST.
8824
a3337ea2
KG
88252009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8826
8827 * doc/install.texi: Update minimum GMP version. Remove obsolete
8828 text in MPFR section.
8829
ce9ba79b
JJ
88302009-04-08 Jakub Jelinek <jakub@redhat.com>
8831
8832 * dwarf2out.c (class_scope_p): New static inline.
8833 (class_or_namespace_scope_p): Use it.
8834 (gen_variable_die): Use DW_TAG_member tag for static data member
8835 declarations instead of DW_TAG_variable.
8836
4f0ae266
JJ
8837 PR middle-end/39573
8838 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
8839 variables.
8840
d27f0ddc
RG
88412009-04-08 Richard Guenther <rguenther@suse.de>
8842
8843 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
8844 valueize random data.
8845
557cc596
DE
88462009-04-08 David Edelsohn <edelsohn@gnu.org>
8847
8848 * config.gcc (aix tm_file): Add aix-stdint.h.
8849 (aix tm clause use_gcc_stdint): Set to wrap.
8850 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 8851
75ccc1e7
RG
88522009-04-08 Richard Guenther <rguenther@suse.de>
8853
8854 PR middle-end/36291
8855 * tree-dfa.c (add_referenced_var): Do not recurse into
8856 global initializers.
8857 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
8858 exposed variables.
8859 (fold_const_aggregate_ref): Likewise.
8860
c6963675
PB
88612009-04-08 Paolo Bonzini <bonzini@gnu.org>
8862
6c44cf79
L
8863 * recog.c (ordered_comparison_operator): New.
8864 * gensupport.c (std_preds): Add it.
c6963675
PB
8865 * doc/md.texi (Machine-Independent Predicates): Document it.
8866
6d07ad98
JH
88672009-04-08 Jan Hubicka <jh@suse.cz>
8868
8869 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
8870 * function.h (rtl_eh): Remove exception_handler_label_map.
8871 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
8872 remove_exception_handler_label, for_each_eh_label_1): Remove.
8873 (rtl_remove_unreachable_regions): Remove.
8874 (convert_from_eh_region_ranges): Do not remove unreachable regions.
8875 (find_exception_handler_labels): Don't build the hashtable.
8876 (maybe_remove_eh_handler): Remove.
8877 (for_each_eh_label): Rewrite to walk the tree.
8878 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
8879 * except.h (maybe_remove_eh_handler): Remove.
8880 * passes.c (init_optimization_passes): Schedule second EH cleanup
8881 before out-of-ssa.
8882 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
8883 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
8884
7ddf71e3
PB
88852009-04-08 Paolo Bonzini <bonzini@gnu.org>
8886
8887 * genoutput.c (validate_optab_operands): New.
8888 (gen_insn, gen_expand): Call it.
8889
8890 * genflags.c (gen_insn): Detect misused iterators.
8891 (main): Pass line_no to gen_insn, exit with status 1 on error.
8892
8893 * genextract.c (line_no): Make global.
8894 (VEC_safe_set_locstr): Change assertion to error message.
8895 (main): Exit with status 1 on error.
8896
4d84fe7c
JM
88972009-04-08 Joseph Myers <joseph@codesourcery.com>
8898
8899 PR c/39614
8900 PR c/39673
8901 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8902 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8903 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
8904 * c-convert.c (convert): Do not call fold on results of conversion
8905 functions when the result is a C_MAYBE_CONST_EXPR.
8906 * c-parser.c (c_parser_postfix_expression): Do not fold condition
8907 of __builtin_choose_expr.
8908 * c-typeck.c (remove_c_maybe_const_expr): New.
8909 (build_unary_op, build_conditional_expr, build_compound_expr,
8910 build_binary_op, c_objc_common_truthvalue_conversion): Call
8911 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
8912 integer operands.
8913
60839f5d 89142009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 8915
2ba9daa7 8916 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 8917 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 8918
8e481a2c
DS
89192009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
8920
8921 PR bootstrap/39660
8922 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
8923 mix declarations and code.
8924
ee618c17
BE
89252009-04-08 Ben Elliston <bje@au.ibm.com>
8926
8927 * gcc.c: Replace `CC' with `GCC' throughout.
8928
f2a758a2
L
89292009-04-07 H.J. Lu <hongjiu.lu@intel.com>
8930
8931 * doc/invoke.texi: Document Atom support.
8932
6ea2bd47
JM
89332009-04-07 Jason Merrill <jason@redhat.com>
8934
8935 PR c++/25185
8936 * c-common.h, c-common.c: Add flag_pretty_templates.
8937 * c-opts.c (c_common_handle_option): Set it.
8938 * c.opt: Add -fno-pretty-templates.
8939 * doc/invoke.texi (C++ Dialect Options): Likewise.
8940
fcb82ab0
UB
89412009-04-07 Uros Bizjak <ubizjak@gmail.com>
8942
8943 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8944 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8945 (ia64_expand_builtin): Likewise.
8946
dc5e7298
MJ
89472009-04-07 Martin Jambor <mjambor@suse.cz>
8948
8949 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8950 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8951 ADDR_EXPRS are include too.
8952
0609b355
RG
89532009-04-07 Richard Guenther <rguenther@suse.de>
8954
8955 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8956 decls are only used if passes as parameters or if they are
8957 local statics and the call is not to a builtin.
8958 (call_may_clobber_ref_p_1): Likewise.
8959
d8e535fa
PB
89602009-04-07 Paolo Bonzini <bonzini@gnu.org>
8961
8962 * expr.c (do_store_flag): Remove last argument. Simplify code
8963 to avoid duplication of tests already done by can_compare_p.
8964 (expand_expr_real_1): Adjust caller.
8965
c3c64f50
PB
89662009-04-07 Paolo Bonzini <bonzini@gnu.org>
8967
fcb82ab0
UB
8968 * optabs.c (can_compare_p): Test the predicate of a
8969 cbranch and cstore pattern.
c3c64f50 8970
9a53bc17
PB
89712009-04-07 Paolo Bonzini <bonzini@gnu.org>
8972
fcb82ab0
UB
8973 * expr.c (convert_move): Use emit_store_flag instead of
8974 "emulating" it.
9a53bc17 8975
67b8f1c1
PB
89762009-04-07 Paolo Bonzini <bonzini@gnu.org>
8977
fcb82ab0
UB
8978 * config/i386/i386.c (ix86_compare_emitted): Remove.
8979 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8980 ix86_compare_op0 like ix86_compare_emitted used to be handled.
8981 * config/i386/i386.h (ix86_compare_emitted): Remove.
8982 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8983 instead of ix86_compare_emitted.
8984 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 8985
44509946
AS
89862009-04-07 Andrew Stubbs <ams@codesourcery.com>
8987
8988 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8989 Add t-sysroot-suffix to tmake_file.
8990 * config/print-sysroot-suffix.sh: New file.
8991 * config/t-sysroot-suffix: New file.
8992
ca22d882
BE
89932009-04-07 Ben Elliston <bje@au.ibm.com>
8994
8995 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8996 as the latter produces a warning when the target does not support
8997 infinity.
8998
95aac11b
BE
89992009-04-07 Ben Elliston <bje@au.ibm.com>
9000
9001 * dfp.c: Replace type punning assignments with memcpy throughout.
9002 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 9003
633dd061
AM
90042009-04-07 Alan Modra <amodra@bigpond.net.au>
9005
9006 PR target/39634
9007 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
9008 Include soft-fp/t-softfp after rs6000/t-linux64.
9009
fe0a25ec
EB
90102009-04-06 Eric Botcazou <ebotcazou@adacore.com>
9011
9012 * stor-layout.c (set_sizetype): Use the full precision of their
9013 machine mode for bitsize types.
9014
0c011bc3
L
90152009-04-06 H.J. Lu <hongjiu.lu@intel.com>
9016
9017 * config/i386/i386.md: Revert 2 accidental checkins.
9018
b6837b94 90192009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 9020 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
9021 H.J. Lu <hongjiu.lu@intel.com>
9022
9023 Atom pipeline model, tuning and insn selection.
9024 * config.gcc (atom): Add atom config options and target.
9025
9026 * config/i386/atom.md: New.
9027
9028 * config/i386/i386.c (atom_cost): New cost.
9029 (m_ATOM): New macro flag.
9030 (initial_ix86_tune_features): Set m_ATOM.
9031 (x86_accumulate_outgoing_args): Likewise.
9032 (x86_arch_always_fancy_math_387): Likewise.
9033 (processor_target): Add Atom cost.
9034 (cpu_names): Add Atom cpu name.
9035 (override_options): Set Atom ISA.
9036 (ix86_issue_rate): New case PROCESSOR_ATOM.
9037 (ix86_adjust_cost): Likewise.
9038
9039 * config/i386/i386.h (TARGET_ATOM): New target macro.
9040 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
9041 (TARGET_OPT_AGU): New target option.
9042 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
9043 (processor_type): Add PROCESSOR_ATOM.
9044
9045 * config/i386/i386.md (cpu): Add new value "atom".
9046 (use_carry, movu): New attr.
9047 (atom.md): Include atom.md.
9048 (adddi3_carry_rex64): Set attr "use_carry".
9049 (addqi3_carry): Likewise.
9050 (addhi3_carry): Likewise.
9051 (addsi3_carry): Likewise.
9052 (*addsi3_carry_zext): Likewise.
9053 (subdi3_carry_rex64): Likewise.
9054 (subqi3_carry): Likewise.
9055 (subhi3_carry): Likewise.
9056 (subsi3_carry): Likewise.
9057 (x86_movdicc_0_m1_rex64): Likewise.
9058 (*x86_movdicc_0_m1_se): Likewise.
9059 (x86_movsicc_0_m1): Likewise.
9060 (*x86_movsicc_0_m1_se): Likewise.
9061 (*adddi_1_rex64): Emit add insn as much as possible.
9062 (*addsi_1): Likewise.
9063 (return_internal): Set atom_unit.
9064 (return_internal_long): Likewise.
9065 (return_pop_internal): Likewise.
9066 (*rcpsf2_sse): Set atom_sse_attr attr.
9067 (*qrt<mode>2_sse): Likewise.
9068 (*prefetch_sse): Likewise.
9069
9070 * config/i386/i386-c.c (ix86_target_macros_internal): New case
9071 PROCESSOR_ATOM.
9072 (ix86_target_macros_internal): Likewise.
9073
9074 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
9075 (*prefetch_sse_rex): Likewise.
9076 (sse_rcpv4sf2): Likewise.
9077 (sse_vmrcpv4sf2): Likewise.
9078 (sse_sqrtv4sf2): Likewise.
9079 (<sse>_vmsqrt<mode>2): Likewise.
9080 (sse_ldmxcsr): Likewise.
9081 (sse_stmxcsr): Likewise.
9082 (*sse_sfence): Likewise.
9083 (sse2_clflush): Likewise.
9084 (*sse2_mfence): Likewise.
9085 (*sse2_lfence): Likewise.
9086 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
9087 (<sse>_movup<ssemodesuffixf2c>): Likewise.
9088 (avx_movdqu<avxmodesuffix>): Likewise.
9089 (avx_lddqu<avxmodesuffix>): Likewise.
9090 (sse2_movntv2di): Change attr "type" to "ssemov".
9091 (sse2_movntsi): Likewise.
9092 (rsqrtv8sf2): Change attr "type" to "sseadd".
9093 (sse3_addsubv2df3): Set attr "atom_unit".
9094 (sse3_h<plusminus_insn>v4sf3): Likewise.
9095 (*sse2_pmaddwd): Likewise.
9096 (*vec_extractv2di_1_rex64): Likewise.
9097 (*vec_extractv2di_1_avx): Likewise.
9098 (sse2_psadbw): Likewise.
9099 (ssse3_phaddwv8hi3): Likewise.
9100 (ssse3_phaddwv4hi3): Likewise.
9101 (ssse3_phadddv4si3): Likewise.
9102 (ssse3_phadddv2si3): Likewise.
9103 (ssse3_phaddswv8hi3): Likewise.
9104 (ssse3_phaddswv4hi3): Likewise.
9105 (ssse3_phsubwv8hi3): Likewise.
9106 (ssse3_phsubwv4hi3): Likewise.
9107 (ssse3_phsubdv4si3): Likewise.
9108 (ssse3_phsubdv2si3): Likewise.
9109 (ssse3_phsubswv8hi3): Likewise.
9110 (ssse3_phsubswv4hi3): Likewise.
9111 (ssse3_pmaddubsw128): Likewise.
9112 (sse3_pmaddubsw: Likewise.
9113 (ssse3_palignrti): Likewise.
9114 (ssse3_palignrdi): Likewise.
9115
53e350d3
GP
91162009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
9117
9118 * doc/install.texi (Specific): Fix two cross-references to MinGW.
9119
439ef907
RG
91202009-04-06 Richard Guenther <rguenther@suse.de>
9121
9122 PR tree-optimization/28868
9123 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
9124 of which PHI results we inserted.
9125 (insert_into_preds_of_block): Record inserted PHIs.
9126 (eliminate): Eliminate redundant PHI nodes.
9127 (init_pre): Init inserted_phi_names.
9128
4bad83f5
RG
91292009-04-06 Richard Guenther <rguenther@suse.de>
9130
9131 PR tree-optimization/39643
9132 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
9133 IMAGPART_EXPRs of complex constants.
9134 (execute_fold_all_builtins): If we folded a call queue
9135 TODO_update_address_taken.
9136
570c4247
JH
91372009-04-06 Jan Hubicka <jh@suse.cz>
9138
9139 PR middle-end/39659
9140 * except.c (remove_unreachable_regions): Propagate may_contain_throw
9141 flag.
9142
a460d7a1
AS
91432009-04-06 Andrew Stubbs <ams@codesourcery.com>
9144
9145 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
9146 delay slot.
9147 (ic_invalidate_array): Likewise.
9148
60839f5d 91492009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
9150
9151 * calls.c (emit_library_call_value_1): Fix a problem with parameter
9152 alignment for library calls.
9153
7d253f6e
DS
91542009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
9155
9156 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
9157 (mingw32 tm clause use_gcc_stdint): Set to wrap.
9158 * config/i386/mingw-stdint.h: New file.
9159
941c3614
RB
91602009-04-05 Richard Guenther <rguenther@suse.de>
9161
9162 PR tree-optimization/39648
9163 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
9164 our &A vs. &A[0] IL deficiencies.
9165
12633413
JH
91662009-04-04 Jan Hubicka <jh@suse.cz>
9167
941c3614
RB
9168 * except.c (sjlj_find_directly_reachable_regions): Be ready for
9169 removed toplevel regions.
12633413
JH
9170 (sjlj_mark_call_sites): Likewise.
9171
bb2aaded
DK
91722009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
9173
9174 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
9175 (cygwin tm clause use_gcc_stdint): Set to wrap.
9176 * config/i386/cygwin-stdint.h: New file.
9177
86290011
RG
91782009-04-04 Richard Guenther <rguenther@suse.de>
9179
9180 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
9181 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
9182 single-argument PHIs if we are in loop-closed SSA form.
9183 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
9184 for the pre-condition.
9185 (slpeel_tree_peel_loop_to_edge): Likewise.
9186 (vect_build_loop_niters): Take an optional sequence to append stmts.
9187 (vect_generate_tmps_on_preheader): Likewise.
9188 (vect_do_peeling_for_loop_bound): Take extra guards for the
9189 pre-condition.
9190 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
9191 the cost model check.
9192 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 9193 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
9194 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
9195 (vect_do_peeling_for_loop_bound): Likewise.
9196 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
9197 loop bound only record extra pre-conditions, do not apply loop
9198 versioning.
9199
5eeeac64
RG
92002009-04-04 Richard Guenther <rguenther@suse.de>
9201
9202 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
9203 renaming code.
9204
1ff7d06b
JH
92052009-04-04 Jan Hubicka <jh@suse.cz>
9206
9207 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9208 last_basic_block for size of bb->index indexed array.
9209 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
9210 compute_out, link_btr_uses, build_btr_def_use_webs,
9211 build_btr_def_use_webs, migrate_btr_defs): Likewise.
9212
14925fcd
JH
92132009-04-04 Jan Hubicka <jh@suse.cz>
9214
9215 * except.c (remove_eh_handler_and_replace): Break out from ...
9216 (remove_eh_handler): ... here.
9217 (bring_to_root): New function.
9218 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
9219 handled ones, bring others to root of tree.
9220
4e6d1743
JH
92212009-04-04 Jan Hubicka <jh@suse.cz>
9222
4cb735f7
JH
9223 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
9224 (all_phis_safe_to_merge): New function.
9225 (update_info): New structure.
9226 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
9227 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 9228
c6803d43
RG
92292009-04-04 Richard Guenther <rguenther@suse.de>
9230
9231 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
9232 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
9233 (append_vuse): Likewise.
9234
54f5943c
JJ
92352009-04-04 Jakub Jelinek <jakub@redhat.com>
9236
9237 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
9238 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
9239 instead of REG_UNSAVED for DW_CFA_undefined.
9240 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
9241 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
9242 outermost frame.
9243
aad2bccb
RE
92442009-04-04 Richard Earnshaw <rearnsha@arm.com>
9245
9246 PR target/39501
9247 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
9248 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
9249 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
9250
aa7069aa
RG
92512009-04-04 Richard Guenther <rguenther@suse.de>
9252
9253 PR tree-optimization/8781
9254 PR tree-optimization/37892
9255 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
9256 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
9257 (valueize_refs): Call it for *& valueizations.
9258 (shared_reference_ops_from_ref): Rename to ...
9259 (valueize_shared_reference_ops_from_ref): ... this and valueize.
9260 (shared_reference_ops_from_call): Rename to ...
9261 (valueize_shared_reference_ops_from_call): ... this and valueize.
9262 (vn_reference_lookup): Update.
9263 (visit_reference_op_call): Likewise.
9264 * tree-ssa-pre.c (phi_translate_1): Fold *&.
9265 (eliminate): Value-replace the call address in call statements.
9266
cd15ad3e
RG
92672009-04-04 Richard Guenther <rguenther@suse.de>
9268
9269 PR tree-optimization/39636
9270 * tree-ssa-forwprop.c
9271 (forward_propagate_addr_into_variable_array_index): Check for
9272 GIMPLE_ASSIGN before accessing the rhs code.
9273
462f3262
JM
92742009-04-03 Jason Merrill <jason@redhat.com>
9275
9276 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
9277
6adb807e
SE
92782009-04-03 Steve Ellcey <sje@cup.hp.com>
9279
9280 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
9281 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
9282 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
9283 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
9284 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
9285 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
9286 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
9287 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
9288 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
9289 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
9290 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
9291 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
9292 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
9293 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
9294 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
9295 Use fr_reg_or_fp01_operand instead of fr_register_operand
9296
9297 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
9298 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
9299 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
9300
174b3107
VM
93012009-04-03 Vladimir Makarov <vmakarov@redhat.com>
9302
b844e5d8
L
9303 PR rtl-optimization/39607
9304 PR rtl-optimization/39631
7a715bba
UB
9305
9306 Revert:
2ba9daa7 9307
174b3107
VM
9308 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9309 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9310 instead of DF_LR_OUT.
9311 * ira-lives.c (process_bb_node_lives): Ditto.
9312 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9313 instead of DF_LR_{OUT,IN}.
9314 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9315 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9316
535b544a
SB
93172009-04-03 Steven Bosscher <steven@gcc.gnu.org>
9318
9319 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
9320 (execute_lower_omp): Always run but take the short way out if -fopenmp
9321 is not given.
9322 (gate_lower_omp): Remove, forcing the pass manager to always run the
9323 pass and always set PROP_gimple_lomp.
9324 (pass_lower_omp): Remove gate function.
9325 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
9326 PROP_trees. Instead, require it.
9327 * ipa-cp.c (pass_ipa_cp): Likewise.
9328 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
9329 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
9330 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
9331 and PROP_gimple_leh.
9332
5006671f
RG
93332009-04-03 Richard Guenther <rguenther@suse.de>
9334
9335 PR middle-end/13146
9336 PR tree-optimization/23940
9337 PR tree-optimization/33237
9338 PR middle-end/33974
9339 PR middle-end/34093
9340 PR tree-optimization/36201
9341 PR tree-optimization/36230
9342 PR tree-optimization/38049
9343 PR tree-optimization/38207
9344 PR tree-optimization/38230
9345 PR tree-optimization/38301
9346 PR tree-optimization/38585
9347 PR middle-end/38895
9348 PR tree-optimization/38985
9349 PR tree-optimization/39299
9350 * tree-ssa-structalias.h: Remove.
9351 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
9352 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
9353 (struct vuse_element_d): Remove.
9354 (struct vuse_vec_d): Likewise.
9355 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
9356 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
9357 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
9358 VUSE_ELEMENT_VAR): Likewise.
9359 (struct voptype_d): Likewise.
9360 (NUM_VOP_FREE_BUCKETS): Likewise.
9361 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
9362 (struct stmt_operands_d): Remove.
9363 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
9364 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
9365 VDEF_NUM, VDEF_VECT): Likewise.
9366 (copy_virtual_operands): Remove.
9367 (operand_build_cmp): Likewise.
9368 (create_ssa_artificial_load_stmt): Likewise.
9369 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
9370 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
9371 vuse_index and mayuse_index members. Pack and move done and iter_type
9372 members to the front.
9373 (SSA_OP_VMAYUSE): Remove.
9374 (SSA_OP_VIRTUAL_USES): Adjust.
9375 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
9376 (unlink_stmt_vdef): Declare.
9377 (add_to_addressable_set): Remove.
9378 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
9379 (vrp_visit_stmt): Likewise.
9380 * doc/tree-ssa.texi (Alias analysis): Update.
9381 * doc/invoke.texi (max-aliased-vops): Remove docs.
9382 (avg-aliased-vops): Likewise.
9383 * tree-into-ssa.c (syms_to_rename): Remove.
9384 (need_to_update_vops_p): Likewise.
9385 (need_to_initialize_update_ssa_p): Rename to ...
9386 (update_ssa_initialized_fn): ... this. Track function we are
9387 initialized for.
9388 (symbol_marked_for_renaming): Simplify.
9389 (add_new_name_mapping): Do not set need_to_update_vops_p.
9390 (dump_currdefs): Use SYMS_TO_RENAME.
9391 (rewrite_update_stmt): Always walk all uses/defs.
9392 (dump_update_ssa): Adjust.
9393 (init_update_ssa): Take function argument. Track what we are
9394 initialized for.
9395 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
9396 (create_new_def_for): Initialize for cfun, assert we are initialized
9397 for cfun.
9398 (mark_sym_for_renaming): Simplify.
9399 (mark_set_for_renaming): Do not initialize update-ssa.
9400 (need_ssa_update_p): Simplify. Take function argument.
9401 (name_mappings_registered_p): Assert we ask for the correct function.
9402 (name_registered_for_update_p): Likewise.
9403 (ssa_names_to_replace): Likewise.
9404 (release_ssa_name_after_update_ssa): Likewise.
9405 (update_ssa): Likewise. Use SYMS_TO_RENAME.
9406 (dump_decl_set): Do not print a newline.
9407 (debug_decl_set): Do it here.
9408 (dump_update_ssa): And here.
9409 * tree-ssa-loop-im.c (move_computations): Adjust.
9410 (movement_possibility): Likewise.
9411 (determine_max_movement): Likewise.
9412 (gather_mem_refs_stmt): Likewise.
9413 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
9414 or NAME_MEMORY_TAG.
9415 * tree-complex.c (update_all_vops): Remove.
9416 (expand_complex_move): Adjust.
9417 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
9418 Simplify test for memory referencing statement. Exclude
9419 non-invariant ADDR_EXPRs.
9420 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
9421 * tree-loop-distribution.c (generate_memset_zero): Adjust.
9422 (rdg_flag_uses): Likewise.
9423 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
9424 related code.
9425 (tree_optimize_tail_calls_1): Also split the
9426 edge from the entry block if we have degenerate PHI nodes in
9427 the first basic block.
9428 * tree.c (init_ttree): Remove memory-tag related code.
9429 (tree_code_size): Likewise.
9430 (tree_node_structure): Likewise.
9431 (build7_stat): Re-write to be build6_stat.
9432 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
9433 (SSA_VAR_P): Adjust.
9434 (struct tree_memory_tag): Remove.
9435 (struct tree_memory_partition_tag): Likewise.
9436 (union tree_node): Adjust.
9437 (build7): Re-write to be build6.
9438 * tree-pass.h (pass_reset_cc_flags): Remove.
9439 (TODO_update_address_taken): New flag.
9440 (pass_simple_dse): Remove.
9441 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
9442 * params.h (MAX_ALIASED_VOPS): Remove.
9443 (AVG_ALIASED_VOPS): Likewise.
9444 * omp-low.c (expand_omp_taskreg): Update SSA form.
9445 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
9446 aliases the lhs in a copy stmt.
9447 * tree-ssa-dse.c (struct address_walk_data): Remove.
9448 (memory_ssa_name_same): Likewise.
9449 (memory_address_same): Likewise.
9450 (get_kill_of_stmt_lhs): Likewise.
9451 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
9452 unused stores. Look through PHI nodes into post-dominated regions.
9453 (dse_optimize_stmt): Simplify. Properly remove stores.
9454 (tree_ssa_dse): Compute dominators.
9455 (execute_simple_dse): Remove.
9456 (pass_simple_dse): Likewise.
9457 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
9458 gimple_loaded_syms and gimple_stored_syms computation.
9459 * toplev.c (dump_memory_report): Dump alias and pta stats.
9460 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
9461 (vn_reference_eq): Likewise.
9462 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
9463 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
9464 valueize_vuses): Remove.
9465 (get_def_ref_stmt_vuses): Simplify. Rename to ...
9466 (get_def_ref_stmt_vuse): ... this.
9467 (vn_reference_lookup_2): New function.
9468 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
9469 walking equivalent vuses. Simplify.
9470 (vn_reference_lookup): Likewise.
9471 (vn_reference_insert): Likewise.
9472 (vn_reference_insert_pieces): Likewise.
9473 (visit_reference_op_call): Simplify.
9474 (visit_reference_op_load): Likewise.
9475 (visit_reference_op_store): Likewise.
9476 (init_scc_vn): Remove shared_lookup_vuses initialization.
9477 (free_scc_vn): Remove shared_lookup_vuses freeing.
9478 (sort_vuses, sort_vuses_heap): Remove.
9479 (get_ref_from_reference_ops): Export.
9480 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
9481 vector with single vuse pointer.
9482 (vn_reference_lookup_pieces, vn_reference_lookup,
9483 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
9484 (shared_vuses_from_stmt): Remove.
9485 (get_ref_from_reference_ops): Declare.
9486 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
9487 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
9488 memory-tag related code.
9489 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
9490 (likely_value): Add comment, skip static-chain of call statements.
9491 (surely_varying_stmt_p): Adjust.
9492 (gimplify_and_update_call_from_tree): Likewise.
9493 (execute_fold_all_builtins): Do not rebuild alias info.
9494 (gimplify_and_update_call_from_tree): Properly update VOPs.
9495 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
9496 (copy_ref_info): Remove memory-tag related code.
9497 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
9498 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
9499 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
9500 computation.
9501 * tree-ssa-dom.c (gimple_p): Remove typedef.
9502 (eliminate_redundant_computations): Adjust.
9503 (record_equivalences_from_stmt): Likewise.
9504 (avail_expr_hash): Likewise.
9505 (avail_expr_eq): Likewise.
7a715bba 9506 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
9507 (stmt_makes_single_load): Likewise.
9508 (stmt_makes_single_store): Likewise.
9509 * tree-ssa-alias.c: Rewrite completely.
9510 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
9511 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
9512 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
9513 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
9514 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
9515 Remove public functions.
9516 (pass_reset_cc_flags): Remove.
9517 (pass_build_alias): Move ...
9518 * tree-ssa-structalias.c (pass_build_alias): ... here.
9519 * tree-ssa-alias.c (may_be_aliased): Move ...
9520 * tree-flow-inline.h (may_be_aliased): ... here.
9521 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
9522 count_uses_and_derefs): Move ...
9523 * gimple.c: ... here.
9524 * gimple.h (count_uses_and_derefs): Declare.
9525 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
9526 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
9527 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
9528 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
9529 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
9530 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
9531 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
9532 New functions.
9533 * tree-dfa.c (refs_may_alias_p): Move ...
9534 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
9535 * tree-ssa-alias.h: New file.
9536 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
9537 (statement_sink_location): Likewise.
9538 * opts.c (decode_options): Do not adjust max-aliased-vops or
9539 avg-aliased-vops values.
9540 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
9541 (TV_CALL_CLOBBER): Likewise.
9542 (TV_FLOW_SENSITIVE): Likewise.
9543 (TV_FLOW_INSENSITIVE): Likewise.
9544 (TV_MEMORY_PARTITIONING): Likewise.
9545 (TV_ALIAS_STMT_WALK): New timevar.
9546 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
9547 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
9548 (get_address_description): Remove memory-tag related code.
9549 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
9550 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
9551 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
9552 and immediate uses in statements. Document.
9553 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
9554 (dump_symbols): Remove.
9555 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
9556 * alias.c (get_deref_alias_set): New function split out from ...
9557 (get_alias_set): ... here.
9558 * alias.h (get_deref_alias_set): Declare.
9559 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
9560 type parameter. Remove restrict pointer handling. Create a
9561 ref-all pointer in case type-based alias sets do not conflict.
9562 (vect_analyze_data_refs): Remove SMT related code.
9563 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
9564 (vectorizable_load): Likewise.
9565 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
9566 (DR_SYMBOL_TAG, DR_VOPS): Remove.
9567 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
9568 Ignore vops and SMTs.
9569 (dr_analyze_alias): Likewise..
9570 (free_data_ref): Likewise.
9571 (create_data_ref): Likewise.
9572 (analyze_all_data_dependences): Likewise.
9573 (get_references_in_stmt): Adjust.
9574 * tree-flow-inline.h (gimple_aliases_computed_p,
9575 gimple_addressable_vars, gimple_call_clobbered_vars,
9576 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
9577 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
9578 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
9579 gimple_mem_ref_stats): Remove.
9580 (gimple_vop): New function.
9581 (op_iter_next_use): Remove vuses and mayuses cases.
9582 (op_iter_next_def): Remove vdefs case.
9583 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
9584 (clear_and_done_ssa_iter): Do not set removed fields.
9585 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
9586 Assert we are not iterating over vuses or vdefs if not also
9587 iterating over uses or defs.
9588 (op_iter_init_use): Likewise.
9589 (op_iter_init_def): Likewise.
9590 (op_iter_next_vdef): Remove.
9591 (op_iter_next_mustdef): Likewise.
9592 (op_iter_init_vdef): Likewise.
9593 (compare_ssa_operands_equal): Likewise.
9594 (link_use_stmts_after): Handle vuse operand.
9595 (is_call_used): Use is_call_clobbered.
9596 (is_call_clobbered): Global variables are always call clobbered,
9597 query the call-clobbers bitmap.
9598 (mark_call_clobbered): Ignore global variables.
9599 (clear_call_clobbered): Likewise.
9600 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
9601 virtual operands sanity check.
9602 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
9603 Remove.
9604 (TARGET_MEM_REF): Remove TMR_TAG operand.
9605 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
9606 Remove call-clobber related code.
9607 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
9608 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
9609 partitions or escape reason.
9610 (get_single_def_stmt, get_single_def_stmt_from_phi,
9611 get_single_def_stmt_with_phi): Remove.
9612 (dump_referenced_vars): Tidy.
9613 (get_ref_base_and_extent): Allow bare decls.
9614 (collect_dfa_stats): Adjust.
9615 * graphite.c (rename_variables_in_stmt): Adjust.
9616 (graphite_copy_stmts_from_block): Likewise.
9617 (translate_clast): Likewise.
9618 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
9619 (EXPR_DIES): New.
9620 (translate_vuse_through_block): Use the oracle.
9621 (phi_translate_1): Adjust.
9622 (value_dies_in_block_x): Use the oracle. Cache the outcome
9623 in EXPR_DIES.
9624 (valid_in_sets): Check if the VUSE for
9625 a REFERENCE is available.
9626 (eliminate): Do not remove stmts during elimination,
9627 instead queue and remove them afterwards.
9628 (do_pre): Do not rebuild alias info.
9629 (pass_pre): Run TODO_rebuild_alias before PRE.
9630 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
9631 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
9632 (mark_all_v_defs_stmt): Remove.
9633 (mark_all_v_defs_seq): Adjust.
9634 (sra_replace): Likewise.
9635 (scalarize_use): Likewise.
9636 (scalarize_copy): Likewise.
9637 (scalarize_init): Likewise.
9638 (scalarize_ldst): Likewise.
9639 (todoflags): Remove.
9640 (tree_sra): Do not rebuild alias info.
9641 (tree_sra_early): Adjust.
9642 (pass_sra): Run TODO_update_address_taken before SRA.
9643 * tree-predcom.c (set_alias_info): Remove.
9644 (prepare_initializers_chain): Do not call it.
9645 (mark_virtual_ops_for_renaming): Adjust.
9646 (mark_virtual_ops_for_renaming_list): Remove.
9647 (initialize_root_vars): Adjust.
9648 (initialize_root_vars_lm): Likewise.
9649 (prepare_initializers_chain): Likewise.
9650 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
9651 (may_propagate_copy_into_stmt): Likewise.
9652 (merge_alias_info): Do nothing for now.
9653 (propagate_tree_value_into_stmt): Adjust.
9654 (stmt_may_generate_copy): Likewise.
9655 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
9656 not mark symbols for renaming.
9657 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
9658 with the same statement, make sure to update the new pointed-to one.
9659 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
9660 call statements, do not mark symbols for renaming.
9661 (mark_operand_necessary): Dump something.
9662 (ref_may_be_aliased): New function.
9663 (mark_aliased_reaching_defs_necessary_1): New helper function.
9664 (mark_aliased_reaching_defs_necessary): Likewise.
9665 (mark_all_reaching_defs_necessary_1): Likewise.
9666 (mark_all_reaching_defs_necessary): Likewise.
9667 (propagate_necessity): Do not process virtual PHIs. For
9668 non-aliased loads mark all reaching definitions as necessary.
9669 For aliased loads and stores mark the immediate dominating
9670 aliased clobbers as necessary.
9671 (visited): New global static.
9672 (perform_tree_ssa_dce): Free visited bitmap after propagating
9673 necessity.
9674 (remove_dead_phis): Perform simple dead virtual PHI removal.
9675 (remove_dead_stmt): Properly unlink virtual operands when
9676 removing stores.
9677 (eliminate_unnecessary_stmts): Schedule PHI removal after
9678 stmt removal.
9679 * tree-ssa-ter.c (is_replaceable_p): Adjust.
9680 (process_replaceable): Likewise.
9681 (find_replaceable_in_bb): Likewise.
9682 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
9683 based on the single gimple vop.
9684 (verify_flow_insensitive_alias_info): Remove.
9685 (verify_flow_sensitive_alias_info): Likewise.
9686 (verify_call_clobbering): Likewise.
9687 (verify_memory_partitions): Likewise.
9688 (verify_alias_info): Likewise.
9689 (verify_ssa): Adjust..
9690 (execute_update_addresses_taken): Export. Update SSA
9691 manually. Optimize only when optimizing. Use a local bitmap.
9692 (pass_update_address_taken): Remove TODO_update_ssa, add
9693 TODO_dump_func.
9694 (pass_update_address_taken): Just use TODO_update_address_taken.
9695 (init_tree_ssa): Do not initialize addressable_vars.
9696 (verify_ssa): Verify new VUSE / VDEF properties.
9697 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
9698 Do not call verify_alias_info.
9699 (delete_tree_ssa): Clear the VUSE, VDEF operands.
9700 Do not free the loaded and stored syms bitmaps. Reset the escaped
9701 and callused solutions. Do not free addressable_vars.
9702 Remove memory-tag related code.
9703 (warn_uninitialized_var): Aliases are always available.
9704 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
9705 * lambda-code.c (can_put_in_inner_loop): Adjust.
9706 (can_put_after_inner_loop): Likewise.
9707 (perfect_nestify): Likewise.
9708 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
9709 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
9710 (vectorizable_conversion): Do not mark symbols for renaming.
9711 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
9712 (expand_call_inline): Unlink the calls virtual operands before
9713 replacing it.
9714 (tree_function_versioning): Do not call update_ssa if we are not
9715 updating clones. Simplify.
9716 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
9717 (propagate_with_phi): Likewise..
9718 * tree-outof-ssa.c (create_temp): Remove memory tag and call
9719 clobber code. Assert we are not aliased or global.
9720 * tree-flow.h: Include tree-ssa-alias.h
9721 (enum escape_type): Remove.
9722 (struct mem_sym_stats_d): Likewise.
9723 (struct mem_ref_stats_d): Likewise.
9724 (struct gimple_df): Add vop member. Remove global_var,
9725 call_clobbered_vars, call_used_vars, addressable_vars,
9726 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
9727 escaped and callused members.
9728 (struct ptr_info_def): Remove all members, add points-to solution
9729 member pt.
9730 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
9731 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
9732 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
9733 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
9734 (tree-ssa-alias.o): Likewise.
9735 (toplev.o): Add tree-ssa-alias.h
9736 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
9737 * gimple.c (gimple_set_bb): Fix off-by-one error.
9738 (is_gimple_reg): Do not handle memory tags.
9739 (gimple_copy): Also copy virtual operands.
9740 Delay updating the statement. Do not reset loaded and stored syms.
9741 (gimple_set_stored_syms): Remove.
9742 (gimple_set_loaded_syms): Likewise.
9743 (gimple_call_copy_skip_args): Copy the virtual operands
9744 and mark the new statement modified.
9745 * tree-ssa-structalias.c (may_alias_p): Remove.
9746 (set_uids_in_ptset): Take the alias set to prune with as
9747 parameter. Fold in the alias test of may_alias_p.
9748 (compute_points_to_sets): Compute whether a ptr is dereferenced
9749 in a local sbitmap.
9750 (process_constraint): Deal with &ANYTHING on the lhs, reject all
9751 other ADDRESSOF constraints on the lhs.
9752 (get_constraint_for_component_ref): Assert that we don't get
9753 ADDRESSOF constraints from the base of the reference.
9754 Properly generate UNKNOWN_OFFSET for DEREF if needed.
9755 (struct variable_info): Remove collapsed_to member.
9756 (get_varinfo_fc): Remove.
9757 (new_var_info): Do not set collapsed_to.
9758 (dump_constraint): Do not follow cycles.
9759 (dump_constraint_graph): Likewise.
9760 (build_pred_graph): Likewise.
9761 (build_succ_graph): Likewise.
9762 (rewrite_constraints): Likewise.
9763 (do_simple_structure_copy): Remove.
9764 (do_rhs_deref_structure_copy): Remove.
9765 (do_lhs_deref_structure_copy): Remove.
9766 (collapse_rest_of_var): Remove.
9767 (do_structure_copy): Re-implement.
9768 (pta_stats): New global variable.
9769 (dump_pta_stats): New function.
9770 (struct constraint_expr): Make offset signed.
9771 (UNKNOWN_OFFSET): Define special value.
9772 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
9773 (solution_set_expand): New helper function split out from ...
9774 (do_sd_constraint): ... here.
9775 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
9776 (do_ds_constraint): Likewise.
9777 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
9778 and CALLUSED = *CALLUSED.
9779 (set_union_with_increment): Make inc argument signed.
9780 (type_safe): Remove.
9781 (get_constraint_for_ptr_offset): Handle unknown and negative
9782 constant offsets.
9783 (first_vi_for_offset): Handle offsets before start. Bail
9784 out early for offsets beyond the variable extent.
9785 (first_or_preceding_vi_for_offset): New function.
9786 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
9787 Together with ESCAPED = *ESCAPED this properly computes reachability.
9788 (find_what_var_points_to): New function.
9789 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
9790 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
9791 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
9792 pt_solutions_intersect): New functions.
9793 (compute_call_used_vars): Remove.
9794 (compute_may_aliases): New main entry into PTA computation.
9795 * gimple.h (gimple_p): New typedef.
9796 (struct gimple_statement_base): Remove references_memory_p.
9797 (struct gimple_statement_with_memory_ops_base): Remove
9798 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
9799 members.
9800 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
9801 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
9802 gimple_set_references_memory): Remove.
9803 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
9804 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
9805 New functions.
9806 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
9807 (verify_expr): Allow RESULT_DECL.
9808 (gimple_duplicate_bb): Do not copy virtual operands.
9809 (gimple_duplicate_sese_region): Adjust.
9810 (gimple_duplicate_sese_tail): Likewise.
9811 (mark_virtual_ops_in_region): Remove.
9812 (move_sese_region_to_fn): Do not call it.
9813 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
9814 and pass_simple_dse.
9815 (execute_function_todo): Handle TODO_update_address_taken,
9816 call execute_update_addresses_taken for TODO_rebuild_alias.
9817 (execute_todo): Adjust.
9818 (execute_one_pass): Init dump files early.
9819 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
9820 call-clobbered.
9821 (create_general_new_stmt): Clear vops.
9822 * tree-ssa-reassoc.c (get_rank): Adjust.
9823 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
9824 symbols for renaming.
9825 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
9826 (PARAM_AVG_ALIASED_VOPS): Likewise.
9827 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
9828 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 9829 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
9830 (operand_build_cmp, copy_virtual_operands,
9831 create_ssa_artificial_load_stmt, add_to_addressable_set,
9832 gimple_add_to_addresses_taken): Remove public functions.
9833 (unlink_stmt_vdef): New function.
9834
457d1d00
AM
98352009-04-03 Alan Modra <amodra@bigpond.net.au>
9836
9837 * config.gcc (powerpc-*-linux*): Merge variants.
9838
e19da24c 98392009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 9840 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
9841
9842 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
9843 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
9844 cop0_sp_offset.
9845 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
9846 keep_interrupts_masked_p, use_debug_exception_return_p.
9847 (mips_attribute_table): Add interrupt, use_shadow_register_set,
9848 keep_interrupts_masked, use_debug_exception_return.
9849 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
9850 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
9851 New functions.
9852 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
9853 (mips_print_operand): Process COP0 registers to print $0 .. $31
9854 correctly for GAS to process.
9855 (mips_interrupt_extra_call_saved_reg_p): New function.
9856 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
9857 extra registers.
9858 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9859 (mips_compute_frame_info): Add supports for interrupt context that
9860 includes doubleword accumulators and COP0 registers.
9861 (mips_for_each_saved_acc): New function.
9862 (mips_for_each_saved_gpr_and_fpr): Change the function name from
9863 mips_for_each_saved_reg.
9864 (mips_save_reg): Save accumulators.
9865 (mips_kernel_reg_p): A new for_each_rtx callback.
9866 (mips_expand_prologue): Support interrupt handlers.
9867 (mips_restore_reg): Restore accumulators.
9868 (mips_expand_epilogue): Support interrupt handlers.
9869 (mips_can_use_return_insn): Return false for interrupt handlers.
9870 (mips_epilogue_uses): New function.
9871 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
9872 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
9873 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
9874 cop0_move): New instructions.
9875 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
9876 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
9877 defines.
9878 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
9879 New defines.
9880 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
9881 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
9882 interrupt handlers, we use K0 as the temporary register.
9883 (EPILOGUE_USES): Change to a function call.
9884 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
9885 handlers, we use K0 as the temporary register.
2ba9daa7 9886
e19da24c
CF
9887 * doc/extend.texi (Function Attributes): Document interrupt,
9888 use_shadow_register_set, keep_interrupts_masked,
9889 use_debug_exception_return for MIPS attributes.
9890
aa1ca044
AM
98912009-04-03 Alan Modra <amodra@bigpond.net.au>
9892
9893 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
9894 Remove a number of t-files from tmake_file.
9895 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
9896 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
9897 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9898 target_prototype, not TARGET_PROTOTYPE.
9899 (LINK_OS_GNU_SPEC): Define.
9900 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
9901 and darwin-ldoubdle.c.
9902
14fdc613
MM
99032009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9904
9905 PR driver/39293
9906 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
9907 (cpp_options): Ditto.
9908 (default_compilers): Ditto.
9909 (display_help): Ditto.
9910 (process_command): Ditto.
9911 (do_spec_1): Ditto.
9912 (set_input): Use lbasename instead of duplicate code.
9913 (save_temps_prefix): New static for -save-temps=obj.
9914 (save_temps_length): Ditto.
2ba9daa7 9915
14fdc613
MM
9916 * doc/invoke.texi (-save-temps=obj): Document new variant to
9917 -save-temps switch.
9918
d3aa398e
JL
99192009-04-02 Jeff Law <law@redhat.com>
9920
9921 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
9922 variable.
9923
83f0ccb8
L
99242009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9925
9926 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
9927 * configure: Regenerated.
9928
dcb6e951
RAE
99292009-04-02 Rafael Avila de Espindola <espindola@google.com>
9930
9931 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9932 share the argument list.
9933
d85478c2
RAE
99342009-04-02 Rafael Avila de Espindola <espindola@google.com>
9935
9936 Merge
9937
9938 2009-02-12 Diego Novillo <dnovillo@google.com>
9939
83f0ccb8
L
9940 * varpool.c (debug_varpool): New.
9941 * cgraph.h (debug_varpool): Declare.
d85478c2 9942
34f42a49
JH
99432009-04-02 Jan Hubicka <jh@suse.cz>
9944
9945 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9946 pass.
9947
a4747b4a
L
99482009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9949
9950 * config/i386/i386.c (ix86_abi): Move initialization to ...
9951 (override_options): Here.
9952
63a9de54
CB
99532009-04-02 Christian Bruel <christian.bruel@st.com>
9954
9955 * config/sh/sh.c (sh_dwarf_register_span): New function.
9956 (TARGET_DWARF_REGISTER_SPAN): Define.
9957 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 9958
2f0fa28e
IR
99592009-04-02 Ira Rosen <irar@il.ibm.com>
9960
9961 PR tree-optimization/39595
2ba9daa7 9962 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
9963 interleaved loads group is not greater than the SLP group size.
9964
bbf7ce11
RAE
99652009-04-02 Rafael Avila de Espindola <espindola@google.com>
9966
9967 * builtins.c (is_builtin_name): New.
9968 (called_as_built_in): Use is_builtin_name.
9969 * tree.h (is_builtin_name): New.
9970 * varasm.c (incorporeal_function_p): Use is_builtin_name
9971
47e4dfcf
AS
99722009-04-02 Andrew Stubbs <ams@codesourcery.com>
9973
9974 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9975
d0940d56
DS
99762009-04-02 Dodji Seketeli <dodji@redhat.com>
9977
9978 PR c++/26693
532bfb0a 9979 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
9980 * c-common.c (set_underlying_type): ... here.
9981 Also, make sure the function properly sets TYPE_STUB_DECL() on
9982 the newly created typedef variant type.
9983 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
9984 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9985 points.
d0940d56 9986
bf1cbdc6
RG
99872009-04-02 Richard Guenther <rguenther@suse.de>
9988
9989 PR tree-optimization/37221
9990 * tree-flow.h (degenerate_phi_result): Declare.
9991 * tree-ssa-dom.c (degenerate_phi_result): Export.
9992 * tree-scalar-evolution.c (analyze_initial_condition): If
9993 the initial condition is defined by a degenerate PHI node
9994 use the degenerate value.
9995
87cfb32c
EB
99962009-04-01 Eric Botcazou <ebotcazou@adacore.com>
9997
9998 PR rtl-optimization/39588
9999 * combine.c (merge_outer_ops): Do not set the constant when this
10000 is not necessary.
10001 (simplify_shift_const_1): Do not modify it either in this case.
10002
bbb6eae8
SB
100032009-04-01 Steven Bosscher <steven@gcc.gnu.org>
10004
10005 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
10006 tuning is deprecated if -mtune value is set to an Itanium1 variant.
10007
839a3b8a
JJ
100082009-04-01 Janis Johnson <janis187@us.ibm.com>
10009
10010 PR c/29027
10011 * c-lex.c (interpret_float): Default (no suffix) is double.
10012
667e8acb
XDL
100132009-04-1 Xinliang David Li <davidxl@google.com>
10014
10015 * config/i386/i386.c (legitimate_constant_p): Recognize
10016 all one vector constant.
10017
60839f5d 100182009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10019
60839f5d 10020 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
10021 Change #include order to silence two warnings.
10022
60839f5d 100232009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10024
60839f5d 10025 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
10026 (ASM_SPEC): Pass -k to the assembler for PIC code.
10027
60839f5d 100282009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10029
60839f5d
EB
10030 * config.gcc: Add vax-*-linux* to the switch.
10031 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
10032 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
10033
60839f5d 100342009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10035
60839f5d 10036 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 10037 Use predicate macros instead of GET_CODE() == foo.
60839f5d 10038 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
10039 ashlsi3, rotrsi3, <unnamed>): Likewise.
10040
60839f5d 100412009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10042
60839f5d 10043 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 10044 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
10045 * config/vax/constraints.md: Likewise.
10046 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
10047 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
10048 * config/vax/predicates.md: Likewise.
10049 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 10050 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
10051 * config/vax/vax.h: Likewise.
10052 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 10053
60839f5d 100542009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10055
60839f5d 10056 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
10057 (indirectable_address_p, adjacent_operands_p): Add spaces around
10058 braces.
60839f5d 10059 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 10060
60839f5d 100612009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10062
60839f5d 10063 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
10064 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
10065 index_term_p, reg_plus_index_p, legitimate_address_p,
10066 vax_mode_dependent_address_p): Update comments to match functions
10067 modified by the recent int->bool conversion.
10068
60839f5d 100692009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10070
60839f5d
EB
10071 * config/vax/builtins.md: Update copyright message.
10072 * config/vax/constraints.md: Likewise.
10073 * config/vax/netbsd-elf.h: Likewise.
10074 * config/vax/predicates.md: Likewise.
10075 * config/vax/vax-protos.h: Likewise.
10076 * config/vax/vax.c: Likewise.
10077 * config/vax/vax.h: Likewise.
10078 * config/vax/vax.md: Likewise.
10079 * config/vax/vax.opt: Likewise.
c4e75102 10080
60839f5d 100812009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10082
60839f5d 10083 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 10084 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
10085 * config/vax/constraints.md (B, R): Likewise.
10086 * config/vax/predicates.md (external_memory_operand,
c4e75102 10087 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
10088 * config/vax/vax.c (vax_output_int_add): Likewise.
10089 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
10090 untyped_call): Likewise.
10091
60839f5d 100922009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 10093
7a715bba
UB
10094 * config/vax/predicates.md: New file.
10095 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
10096 external_const_operand, nonsymbolic_operand, external_memory_operand,
10097 indirect_memory_operand, indexed_memory_operand,
10098 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
10099 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
10100 predicate.
7a715bba
UB
10101 * config/vax/constraints.md: New file.
10102 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
10103 New constraint.
10104 * config/vax/builtins.md: New file.
10105 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
10106 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
10107 jbbccisi): Define.
c4e75102
MT
10108 * config/vax/vax.opt (mqmath): Add option.
10109 * config/vax/vax.md (isfx): Extend with DI.
10110 (VAXintQH, VAXintQHSD): Define.
10111 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
10112 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
10113 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
10114 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
10115 (movdi): Update constraints and use vax_output_int_move().
10116 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
10117 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
10118 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
10119 nonlocal_goto): New.
10120 (mov<mode>): Extend accepted operand types.
10121 (subdi3_old): Rename from subdi3, change update constraints and use
10122 a new implementation.
60839f5d 10123 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
10124 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
10125 MOVE_RATIO, CLEAR_RATIO): Define.
10126 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
10127 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10128 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 10129 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
10130 (split_quadword_operands): Make static and really allow variable
10131 splitting.
10132 (print_operand_address): Update for PIC generation.
10133 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
10134 indexable_address_p, fixup_mathdi_operand,
10135 vax_expand_addsub_di_operands, adjacent_operands_p): New.
10136 (vax_float_literal, legitimate_constant_p,
10137 indirectable_constant_address_p, index_term_p,
10138 reg_plus_index_p): Return bool instead of int.
10139 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
10140 where needed.
10141 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
10142 generation.
10143 (vax_output_conditional_branch): Indent.
10144 (legitimate_constant_address_p, indirectable_constant_address_p,
10145 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
10146 vax_mode_dependent_address_p): Return bool instead of int, update for
10147 PIC generation.
10148 * config/vax/vax-protos.h (legitimate_constant_address_p,
10149 legitimate_constant_p, legitimate_address_p,
10150 vax_mode_dependent_address_p): Change declaration to bool.
10151 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
10152 vax_expand_addsub_di_operands, vax_output_int_subtract,
10153 vax_output_movmemsi): Declare.
10154 (split_quadword_operands, vax_float_literal): Delete declaration.
10155 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
10156 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
10157 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
10158 ASM_OUTPUT_DWARF_PCREL): Define.
10159 (ASM_SPEC): Change definition to allow PIC generation.
10160
9332c6eb
L
101612009-04-01 Steve Ellcey <sje@cup.hp.com>
10162
10163 * doc/sourcebuild.texi: Update front-end requirements.
10164
d93e052c
JJ
101652009-04-01 Jakub Jelinek <jakub@redhat.com>
10166
10167 PR target/39226
10168 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
10169 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
10170 (booldi3_internal3): Use boolean_or_operator instead of
10171 boolean_operator.
10172
6ccb2a4a
JM
101732009-04-01 Joseph Myers <joseph@codesourcery.com>
10174
10175 PR c/39605
10176 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
10177 declarator whose size is not an integer constant expression but
10178 folds to an integer constant, then treat it as a constant
10179 subsequently.
10180
299b87f8
RG
101812009-04-01 Richard Guenther <rguenther@suse.de>
10182
10183 * fold-const.c (fold_plusminus_mult_expr): Do not fold
10184 i * 4 + 2 to (i * 2 + 1) * 2.
10185
b85eb797
JJ
101862009-04-01 Jakub Jelinek <jakub@redhat.com>
10187
10188 PR c/37772
10189 * c-parser.c (c_parser_asm_statement): Skip until close paren and
10190 return if c_parser_asm_string_literal returned NULL.
10191
235e1fe8
NC
101922009-04-01 Nick Clifton <nickc@redhat.com>
10193
10194 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
10195 already defined.
10196 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
10197 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
10198 other typedefs to avoid conflicts with libgcc2.c. Define labels
10199 to gain 16-bit bit-manipulation functions from libgcc2.c and then
10200 include it.
10201 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
10202 to gain 16-bit trapping arithmetic functions from libgcc2.c and
10203 then include it.
10204
d6868399
RAE
102052009-04-01 Rafael Avila de Espindola <espindola@google.com>
10206
7a715bba
UB
10207 * varasm.c (default_function_rodata_section): Declare DOT as
10208 const char*.
d6868399 10209
73d21f56 102102009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 10211 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
10212
10213 PR/39492
10214 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10215 Make object_name unique for each process.
10216
03742a9b
JJ
102172009-04-01 Jakub Jelinek <jakub@redhat.com>
10218
10219 PR other/39591
10220 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
10221 addressable variables in the parallel that could go out of scope while
10222 running queued tasks.
10223
4223ff5f
AS
102242009-04-01 Anatoly Sokolov <aesok@post.ru>
10225
10226 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
10227 (CASE_VALUES_THRESHOLD): Redefine.
10228 * config/avr/avr.c (avr_override_options): Remove initialization of
10229 avr_case_values_threshold variable.
10230 (avr_case_values_threshold): Remove variable. Add new function.
10231 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
10232 * config/avr/avr.opt (mno-tablejump): Remove option.
10233 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
10234
e893f6f3
DD
102352009-04-01 DJ Delorie <dj@redhat.com>
10236
10237 * varasm.c (default_function_rodata_section): Don't assume
10238 anything about where the first '.' in the section name is.
10239
b246d100
AM
102402009-04-01 Alan Modra <amodra@bigpond.net.au>
10241
10242 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
10243 rs6000_emit_stack_tie.
10244
d3e37a9e
ILT
102452009-03-31 Ian Lance Taylor <iant@google.com>
10246
10247 * tree-eh.c (tree_remove_unreachable_handlers): Compare
10248 gimple_code with GIMPLE_RESX, not RESX.
10249
c1b61fca
JM
102502009-03-31 Joseph Myers <joseph@codesourcery.com>
10251
10252 * c-common.c (c_get_ident): New.
7a715bba 10253 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 10254
c2d2ad48
BE
102552009-04-01 Ben Elliston <bje@au.ibm.com>
10256
10257 * config/rs6000/sysv4.opt (msdata): Improve option description.
10258
13d1a6e7
SE
102592009-03-31 Steve Ellcey <sje@cup.hp.com>
10260
10261 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
10262 (divdf3_internal_lat): Remove.
10263 (divxf3_internal_lat): Remove.
10264 (divxf3_internal_thr): Remove.
10265 (divxf): Use divxf3_internal.
10266 * config/ia64/div.md (divsf3_internal_lat): New.
10267 (divdf3_internal_lat): New.
10268 (divxf3_internal): New.
10269
207bf79d
JM
102702009-03-31 Joseph Myers <joseph@codesourcery.com>
10271
10272 PR c/448
10273 * Makefile.in (USE_GCC_STDINT): Define.
10274 (stmp-int-hdrs): Install stdint.h if applicable.
10275 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
10276 if known.
10277 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
10278 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
10279 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10280 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10281 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10282 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10283 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10284 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10285 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10286 (c_common_nodes_and_builtins): Initialize
10287 underlying_wchar_type_node. Do not initialize
10288 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
10289 nodes for new types.
10290 (c_stddef_cpp_builtins): Define macros for new types.
10291 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
10292 Remove.
10293 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
10294 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
10295 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
10296 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
10297 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
10298 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
10299 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
10300 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
10301 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
10302 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
10303 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
10304 int16_type_node, int32_type_node, int64_type_node,
10305 uint8_type_node, uint16_type_node, c_uint32_type_node,
10306 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
10307 int_least32_type_node, int_least64_type_node,
10308 uint_least8_type_node, uint_least16_type_node,
10309 uint_least32_type_node, uint_least64_type_node,
10310 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
10311 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
10312 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
10313 uintptr_type_node): Define.
10314 * c-cppbuiltin.c (builtin_define_constants,
10315 builtin_define_type_minmax): New.
10316 (builtin_define_stdint_macros): Define more macros.
10317 (c_cpp_builtins): Define more limit macros.
10318 (type_suffix): New.
10319 (builtin_define_type_max): Define in terms of
10320 builtin_define_type_minmax. Remove is_long parameter. All
10321 callers changed.
10322 * config.gcc (use_gcc_stdint): Define.
10323 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
10324 Add newlib-stdint.h for generic targets.
10325 * config/glibc-stdint.h, config/newlib-stdint.h,
10326 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
10327 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
10328 * config/score/score.h (UINTPTR_TYPE): Define.
10329 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
10330 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
10331 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10332 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10333 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10334 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10335 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10336 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10337 * config/spu/spu.h (STDINT_LONG32): Define.
10338 * configure.ac (use_gcc_stdint): Substitute.
10339 * configure: Regenerate.
10340 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
10341 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
10342 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
10343 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
10344 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
10345 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
10346 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
10347 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
10348 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
10349 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
10350 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
10351 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
10352 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
10353 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
10354 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
10355 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
10356 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
10357 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
10358 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
10359 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
10360 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
10361 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
10362 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10363 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10364 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10365 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10366 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10367 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10368 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
10369
ed853664
BS
103702009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
10371
10372 * loop-iv.c (suitable_set_for_replacement): Renamed from
10373 simplify_using_assignment; changed to return bool and to accept new
10374 args DEST and SRC. Return true iff we find a source/destination pair
10375 that can be used to make a replacement, and fill SRC and DEST if so.
10376 Remove arg ALTERED. Don't deal with altered regs here. All callers
10377 changed.
10378 (simplify_using_initial_values): Deal with altered regs here and track
10379 more precisely the effect they have on the validity of our expression.
10380
1569e190
BS
10381 * loop-iv.c (simplify_using_condition): A condition of the form
10382 (EQ REG CONST) can be used to simply make a substitution.
10383 (simplify_using_initial_values): Keep track of conditions we have seen
10384 and keep using them to simplify new expressions, while applying the
10385 same substitutions to them as to the expression.
10386
1d1eb80c
BS
10387 * simplify-rtx.c (simplify_relational_operation_1): Simplify
10388 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
10389 GEU/LTU reversed.
10390
28af33b0
BS
10391 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
10392 changed. Use this when trying to improve the upper bound.
10393 Generate the comparison by using simplify_gen_relational.
10394
b30321cd
BS
10395 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
10396
60081874
BS
10397 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
10398 functions.
2ba9daa7 10399 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
10400 replace_in_expr to make replacements. Call replace_single_def_regs
10401 once on the initial version of the expression.
10402
bebc6e07
RR
104032009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10404
fcb82ab0 10405 PR target/27237
bebc6e07 10406 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 10407
6b12efe9
RG
104082009-03-31 Richard Guenther <rguenther@suse.de>
10409
10410 PR middle-end/31029
10411 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
10412 equality comparisons. Fold C - X CMP X if C % 2 == 1.
10413
108f6c2f
RG
104142009-03-31 Richard Guenther <rguenther@suse.de>
10415
10416 * tree.h (div_if_zero_remainder): Declare.
10417 * fold-const.c (div_if_zero_remainder): Export.
10418 * tree-ssa-forwprop.c
10419 (forward_propagate_addr_into_variable_array_index): Handle
10420 constant array index addition outside of the variable index.
10421
8f612190
JM
104222009-03-31 Joseph Myers <joseph@codesourcery.com>
10423
10424 PR target/39592
10425 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
10426 define_splits, floatunssi<mode>2): Require x87 conversions from
10427 DImode to be permitted.
10428
47580d22
JM
104292009-03-31 Joseph Myers <joseph@codesourcery.com>
10430
10431 PR preprocessor/15638
10432 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
10433
ba4d8f9d
RG
104342009-03-31 Richard Guenther <rguenther@suse.de>
10435
10436 PR middle-end/23401
10437 PR middle-end/27810
10438 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
10439 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
10440 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
10441 a separate statement.
10442 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
10443 (lookup_tmp_var): Likewise.
10444 (is_gimple_formal_tmp_or_call_rhs): Remove.
10445 (is_gimple_reg_or_call_rhs): Rename to ...
10446 (is_gimple_reg_rhs_or_call): ... this.
10447 (is_gimple_mem_or_call_rhs): Rename to ...
10448 (is_gimple_mem_rhs_or_call): ... this.
10449 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
10450 DECL_GIMPLE_REG_P only if is_formal is true.
10451 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
10452 for non-proper post-modify expression gimplification.
10453 (gimplify_self_mod_expr): For post-modify expressions gimplify
10454 the lvalue to a minimal lvalue.
10455 (rhs_predicate_for): Remove formal temp case.
10456 (gimplify_modify_expr_rhs): Likewise.
10457 (gimplify_addr_expr): Use is_gimple_reg.
10458 (gimplify_expr): Remove formal temp cases.
10459 (gimple_regimplify_operands): Likewise.
10460 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
10461 and FILTER_EXPR like constants.
10462 * gimple.c (walk_gimple_op): Fix val_only initialization, use
10463 is_gimple_reg.
10464 (is_gimple_formal_tmp_rhs): Remove.
10465 (is_gimple_reg_rhs): Remove special casing.
10466 (is_gimple_mem_rhs): Fix.
10467 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
10468 (is_gimple_formal_tmp_var): Remove.
10469 (is_gimple_formal_tmp_reg): Likewise.
10470 (is_gimple_min_lval): Allow invariant component ref parts.
10471 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
10472 is_gimple_formal_tmp_reg): Remove declarations.
10473 * tree-cfg.c (verify_expr): Verify that variables with address
10474 taken do not have DECL_GIMPLE_REG_P set.
10475 * tree-mudflap.c (mf_build_check_statement_for): Use
10476 force_gimple_operand instead of gimplify_expr.
10477
8de9b877
AZ
104782009-03-31 Ayal Zaks <zaks@il.ibm.com>
10479
10480 * modulo-sched.c (sms_schedule_by_order): Pass the actual
10481 schedulable rows to compute_split_row.
10482
b5e3caf2
BE
104832009-03-31 Ben Elliston <bje@au.ibm.com>
10484
10485 PR target/31635
10486 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
10487 OPT_mvrsave.
10488
9752c4ad
AM
104892009-03-31 Alan Modra <amodra@bigpond.net.au>
10490
10491 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
10492 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
10493 * configure: Regenerate.
10494 * config.in: Regenerate.
10495 * config/rs6000/rs6000.opt (mtls-markers): Add.
10496 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
10497 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
10498 (tls_ld_aix, tls_ld_sysv): Likewise.
10499 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
10500 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
10501
b597d1b6
AM
105022009-03-31 Alan Modra <amodra@bigpond.net.au>
10503
10504 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
10505
a203a221
JH
105062009-03-30 Jan Hubicka <jh@suse.cz>
10507
b597d1b6
AM
10508 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
10509 out of RESX.
10510 (tree_remove_unreachable_handlers): Cleanup EH predecestor
10511 detection and label handling.
a203a221 10512
5b0c0b2c
VM
105132009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10514
10515 * ira-int.h (ira_allocno): Rename left_conflicts_num to
10516 left_conflicts_size.
10517 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
10518 ALLOCNO_LEFT_CONFLICTS_SIZE.
10519
10520 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
10521 remove_allocno_from_bucket_and_push,
10522 allocno_spill_priority_compare, push_allocnos_to_stack,
10523 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10524 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
10525 (setup_allocno_left_conflicts_num): Ditto. Rename to
10526 setup_allocno_left_conflicts_size.
10527 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10528 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
10529 setup_allocno_left_conflicts_size instead of
10530 setup_allocno_left_conflicts_num.
10531
10532 * ira-build.c (ira_create_allocno): Use
10533 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
10534 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 10535
9a48a93f
VM
105362009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10537
10538 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10539 instead of DF_LR_OUT.
10540
10541 * ira-lives.c (process_bb_node_lives): Ditto.
10542
10543 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10544 instead of DF_LR_{OUT,IN}.
10545
10546 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10547
10548 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10549
4c936d4f
JH
105502009-03-30 Jan Hubicka <jh@suse.cz>
10551
10552 * except.c (label_to_region_map): Fix thinko.
10553
f4d9f129
SE
105542009-03-30 Steve Ellcey <sje@cup.hp.com>
10555
10556 PR middle-end/38237
10557 * tree.h (tree_find_value): New declaration.
10558 * tree.c (tree_find_value): New function.
10559 * varasm.c (assemble_external): Avoid duplicate entries on lists.
10560
b3f27c15
JJ
105612009-03-30 Jakub Jelinek <jakub@redhat.com>
10562
10563 PR debug/39563
10564 * c-decl.c (struct c_binding): Add locus field.
10565 (bind): Add locus argument, set locus field from it.
10566 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
10567 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
10568 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
10569 implicitly_declare, undeclared_variable, lookup_label,
10570 declare_label, c_make_fname_decl, c_builtin_function,
10571 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
10572 bind callers.
10573
ad41bd84 105742009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
10575
10576 PR target/38781
10577 * config/i386/i386.c (classify_argument): Check total size of
10578 structure.
10579
133f9369
MJ
105802009-03-30 Martin Jambor <mjambor@suse.cz>
10581
10582 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
10583 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
10584 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
10585 respectively.
10586
10587 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
10588 seen_variable_array_ref while also traversing a union.
10589
10590 * tree-inline.c (optimize_inline_calls): Do not call
10591 cgraph_node_remove_callees.
10592 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
10593 (pass_remove_cgraph_callee_edges): New variable.
10594 * passes.c (init_optimization_passes): Add
10595 pass_remove_cgraph_callee_edges after early inlining and before all
10596 late intraprocedural passes.
10597
10598 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
10599
1190f2eb
PB
106002009-03-30 Paolo Bonzini <bonzini@gnu.org>
10601
10602 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
10603 Fix typos in names.
10604
fedc1775
PB
106052009-03-30 Paolo Bonzini <bonzini@gnu.org>
10606
fcb82ab0
UB
10607 * combine.c (simplify_comparison): Use have_insn_for.
10608 * dojump.c (do_jump): Likewise.
fedc1775 10609
65c5ae8b
PB
106102009-03-30 Paolo Bonzini <bonzini@gnu.org>
10611
10612 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
10613 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
10614 sparc_compare_op0 like sparc_compare_emitted used to be handled.
10615 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
10616 instead of sparc_compare_emitted.
10617 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
10618 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
10619 instead of sparc_compare_emitted.
10620
d25aa7ab
PB
106212009-03-30 Paolo Bonzini <bonzini@gnu.org>
10622
10623 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
10624 enter/exit cfglayout mode.
10625 (pass_partition_block): Require it.
10626 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
10627 (combine_instructions): Track basic blocks instead of labels.
10628 (update_cfg_for_uncondjump): New.
10629 (try_combine): Use it. Update jumps after rescanning.
10630 (pass_combine): Require PROP_cfglayout.
10631 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
10632
9c9e26f5
PB
106332009-03-30 Paolo Bonzini <bonzini@gnu.org>
10634
fcb82ab0
UB
10635 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
10636 Provide/destroy PROP_cfglayout respectively.
10637 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
10638 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 10639
28ddeea1
PB
106402009-03-30 Paolo Bonzini <bonzini@gnu.org>
10641
10642 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
10643 fold_convert_const_fixed_from_fixed,
10644 fold_convert_const_fixed_from_int,
10645 fold_convert_const_fixed_from_real, fold_negate_const): Do not
10646 set TREE_CONSTANT_OVERFLOW.
10647 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
10648 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
10649
ebfd146a
IR
106502009-03-30 Ira Rosen <irar@il.ibm.com>
10651
10652 * tree-vect-loop-manip.c: New file.
10653 * tree-vectorizer.c: Update documentation and included files.
10654 (vect_loop_location): Make extern.
10655 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
10656 (rename_variables_in_bb, rename_variables_in_loop,
10657 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
10658 slpeel_update_phi_nodes_for_guard1,
10659 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
10660 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
10661 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 10662 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
10663 find_loop_location): Likewise.
10664 (new_stmt_vec_info): Move to tree-vect-stmts.c.
10665 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
10666 get_vectype_for_scalar_type, vect_is_simple_use,
10667 supportable_widening_operation, supportable_narrowing_operation):
10668 Likewise.
10669 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
10670 (new_loop_vec_info, destroy_loop_vec_info,
10671 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
10672 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
10673 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
10674 (vect_supportable_dr_alignment): Likewise.
10675 * tree-vectorizer.h (tree-data-ref.h): Include.
10676 (vect_loop_location): Declare.
10677 Reorganize function declarations according to the new file structure.
10678 * tree-vect-loop.c: New file.
2ba9daa7 10679 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
10680 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
10681 * tree-vect-data-refs.c: New file.
10682 * tree-vect-patterns.c (timevar.h): Don't include.
10683 * tree-vect-stmts.c: New file.
2ba9daa7 10684 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 10685 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
10686 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
10687 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
10688 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
10689 (tree-vect-analyze.o): Remove.
10690 (tree-vect-transform.o): Likewise.
10691 (tree-vect-data-refs.o): Add rule.
2ba9daa7 10692 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
10693 tree-vect-slp.o): Likewise.
10694 (tree-vect-patterns.o): Remove redundant dependencies.
10695 (tree-vectorizer.o): Likewise.
10696 * tree-vect-slp.c: New file.
10697
40a1cfba
RW
106982009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10699
10700 * optc-gen.awk: Warn if an option flag has multiple different
10701 help strings.
10702
a9a7a9a2
SP
107032009-03-30 Sebastian Pop <sebastian.pop@amd.com>
10704
10705 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
10706 -floop-block): Document dependences on PPL, CLooG and Graphite.
10707
8ce94e44
JM
107082009-03-30 Joseph Myers <joseph@codesourcery.com>
10709
10710 PR rtl-optimization/323
10711 * c-common.c (c_fully_fold, convert_and_check,
10712 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
10713 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
10714 * c-common.def (EXCESS_PRECISION_EXPR): New.
10715 * c-cppbuiltin.c (builtin_define_float_constants): Define
10716 constants with enough digits for long double.
10717 * c-lex.c (interpret_float): Interpret constant with excess
10718 precision where appropriate.
10719 * c-opts.c (c_common_post_options): Set
10720 flag_excess_precision_cmdline. Give an error for
10721 -fexcess-precision=standard for C++ for processors where the
10722 option is significant.
10723 * c-parser.c (c_parser_conditional_expression): Handle excess
10724 precision in condition.
10725 * c-typeck.c (convert_arguments): Handle arguments with excess
10726 precision.
10727 (build_unary_op): Move excess precision outside operation.
10728 (build_conditional_expr): Likewise.
10729 (build_compound_expr): Likewise.
10730 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
10731 (build_modify_expr): Handle excess precision in RHS.
10732 (convert_for_assignment): Handle excess precision in converted
10733 value.
10734 (digest_init, output_init_element, process_init_element): Handle
10735 excess precision in initializer.
10736 (c_finish_return): Handle excess precision in return value.
10737 (build_binary_op): Handle excess precision in operands and add
10738 excess precision as needed for operation.
10739 * common.opt (-fexcess-precision=): New option.
10740 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
10741 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10742 For standard excess precision, output explicit conversion to and
10743 truncation from XFmode.
10744 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
10745 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
10746 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
10747 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
10748 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
10749 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
10750 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
10751 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
10752 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
10753 define_splits, sqrt<mode>2): Disable where appropriate for
10754 standard excess precision.
10755 * convert.c (convert_to_real): Do not shorten arithmetic to type
10756 for which excess precision would be used.
10757 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
10758 * doc/invoke.texi (-fexcess-precision=): Document option.
10759 (-mfpmath=): Correct index entry.
10760 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
10761 flag_excess_precision): New.
10762 * langhooks.c (lhd_post_options): Set
10763 flag_excess_precision_cmdline.
10764 * opts.c (common_handle_option): Handle -fexcess-precision=.
10765 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
10766 init_excess_precision): New.
10767 (lang_dependent_init_target): Call init_excess_precision.
10768 * tree.c (excess_precision_type): New.
10769 * tree.h (excess_precision_type): Declare.
10770
1e57bf47
JM
107712009-03-30 Joseph Myers <joseph@codesourcery.com>
10772
10773 PR c/35235
10774 * c-typeck.c (build_component_ref): Do not copy qualifiers from
10775 non-lvalue to component.
10776
148e4216
JM
107772009-03-29 Joseph Myers <joseph@codesourcery.com>
10778
10779 PR preprocessor/34695
10780 * Makefile.in (c-opts.o): Depend on c-tree.h.
10781 * c-common.c: Move down include of diagnostic.h.
10782 (done_lexing, c_cpp_error): New.
10783 * c-common.h (done_lexing): Declare.
10784 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
10785 (parse_in).
10786 * c-opts.c: Include c-tree.h.
10787 (c_common_init_options): Set preprocessor error callback.
10788 (c_common_handle_option): Do not set preprocessor
10789 inhibit_warnings, warnings_are_errors, warn_system_headers,
10790 pedantic_errors or inhibit_warnings flags.
10791 (c_common_post_options): Do not check cpp_errors (parse_in).
10792 (c_common_finish): Do not output dependencies if there were
10793 errors. Do not check return value of cpp_finish.
10794 * c-ppoutput.c (pp_file_change): Set input_location.
10795 * c-tree.h (c_cpp_error): Declare.
10796 * diagnostic.c (diagnostic_set_info_translated): Also initialize
10797 override_column.
10798 (diagnostic_build_prefix): Check override_column.
10799 * diagnostic.h (diagnostic_info): Add override_column field.
10800 (diagnostic_override_column): Define.
10801
2ec5deb5
PB
108022009-03-28 Paolo Bonzini <bonzini@gnu.org>
10803
ba20e309
UB
10804 * c-common.c (c_expand_expr, c_staticp): Remove.
10805 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
10806 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
10807 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
10808 * c-gimplify.c (gimplify_compound_literal_expr,
10809 optimize_compound_literals_in_ctor): Remove.
10810 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
10811 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
10812 * c-semantics.c (emit_local_var): Remove.
10813
10814 * langhooks-def.h (lhd_expand_expr): Remove.
10815 * langhooks.c (lhd_expand_expr): Remove.
10816 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
10817
10818 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
10819 handling from c-semantics.c; don't call into langhook.
10820 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
10821 * gimplify.c (gimplify_compound_literal_expr,
10822 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
10823 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
10824 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
10825 as was done in c-gimplify.c.
10826 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
10827 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
10828 Move from c-common.h.
10829 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
10830
10831 * tree.c (staticp): Do not call langhook.
10832 * langhooks.c (lhd_staticp): Delete.
10833 * langhooks-def.h (lhd_staticp): Delete prototype.
10834 (LANG_HOOKS_STATICP): Delete.
10835 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
10836
ba20e309
UB
10837 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
10838 instead of DECL_STMTs.
2ec5deb5 10839
928c19bb
JM
108402009-03-29 Joseph Myers <joseph@codesourcery.com>
10841
10842 PR c/456
10843 PR c/5675
10844 PR c/19976
10845 PR c/29116
10846 PR c/31871
10847 PR c/35198
10848 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
10849 void_type_node.
10850 (fold_call_expr): Return a NOP_EXPR from folding rather than the
10851 contained expression.
ba20e309 10852 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
10853 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
10854 conditional expressions for C.
10855 (decl_constant_value_for_optimization): Move from
ba20e309 10856 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
10857 whether optimizing and that the expression is a VAR_DECL not of
10858 array type instead of doing such checks in the caller. Do not
10859 check pedantic. Call gcc_unreachable for C++.
10860 * c-common.def (C_MAYBE_CONST_EXPR): New.
10861 * c-common.h (c_fully_fold, c_save_expr,
10862 decl_constant_value_for_optimization): New prototypes.
10863 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10864 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10865 EXPR_INT_CONST_OPERANDS): Define.
10866 * c-convert.c (convert): Strip nops from expression.
10867 * c-decl.c (groktypename): Take extra parameters expr and
10868 expr_const_operands. Update call to grokdeclarator.
10869 (start_decl): Update call to grokdeclarator. Add statement for
10870 expressions used in type of decl.
10871 (grokparm): Update call to grokdeclarator.
10872 (push_parm_decl): Update call to grokdeclarator.
10873 (build_compound_literal): Add parameter non_const and build a
10874 C_MAYBE_COSNT_EXPR if applicable.
10875 (grokdeclarator): Take extra parameters expr and
10876 expr_const_operands. Track expressions used in declaration
10877 specifiers and declarators. Fold array sizes and track whether
10878 they are constant expressions and whether they are integer
10879 constant expressions.
10880 (parser_xref_tag): Set expr and expr_const_operands fields in
10881 return value.
10882 (grokfield): Update call to grokdeclarator.
10883 (start_function): Update call to grokdeclarator.
10884 (build_null_declspecs): Set expr and expr_const_operands fields in
10885 return value.
10886 (declspecs_add_type): Handle expressions in typeof specifiers.
10887 * c-parser.c (c_parser_declspecs): Set expr and
10888 expr_const_operands fields for declaration specifiers.
10889 (c_parser_enum_specifier): Likewise.
10890 (c_parser_struct_or_union_specifier): Likewise.
10891 (c_parser_typeof_specifier): Likewise. Update call to
10892 groktypename. Fold expression as needed. Return expressions with
10893 type instead of adding statements.
10894 (c_parser_attributes): Update calls to c_parser_expr_list.
10895 (c_parser_statement_after_labels): Fold expression before passing
10896 to objc_build_throw_stmt.
10897 (c_parser_condition): Fold expression.
10898 (c_parser_asm_operands): Fold expression.
10899 (c_parser_conditional_expression): Use c_save_expr. Update call
10900 to build_conditional_expr.
10901 (c_parser_alignof_expression): Update call to groktypename.
10902 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
10903 original_code. Fold expression argument of va_arg. Create
10904 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
10905 argument to va_arg. Update calls to groktypename. Fold array
10906 index for offsetof. Verify that first argument to
10907 __builtin_choose_expr has integer type.
10908 (c_parser_postfix_expression_after_paren_type): Update calls to
10909 groktypename and build_compound_literal. Handle expressions with
10910 side effects in type name.
10911 (c_parser_postfix_expression_after_primary): Update call to
10912 c_parser_expr_list. Set original_code for calls to
10913 __builtin_constant_p.
10914 (c_parser_expr_list): Take extra parameter fold_p. Fold
10915 expressions if requested.
10916 (c_parser_objc_type_name): Update call to groktypename.
10917 (c_parser_objc_synchronized_statement): Fold expression.
10918 (c_parser_objc_receiver): Fold expression.
10919 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
10920 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
10921 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
10922 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
10923 (struct c_typespec): Add elements expr and expr_const_operands.
10924 (struct c_declspecs): Add elements expr and expr_const_operands.
10925 (groktypename, build_conditional_expr, build_compound_literal):
10926 Update prototypes.
10927 (in_late_binary_op): Declare.
10928 * c-typeck.c (note_integer_operands): New function.
10929 (in_late_binary_op): New variable.
10930 (decl_constant_value_for_broken_optimization): Move to c-common.c
10931 and rename to decl_constant_value_for_optimization.
10932 (default_function_array_conversion): Do not strip nops.
10933 (default_conversion): Do not call
10934 decl_constant_value_for_broken_optimization.
10935 (build_array_ref): Do not fold result.
10936 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
10937 result when operand is a VLA.
10938 (c_expr_sizeof_type): Update call to groktypename. Handle
10939 expressions included in type name. Use C_MAYBE_CONST_EXPR for
10940 result when operand names a VLA type.
10941 (build_function_call): Update call to build_compound_literal.
10942 Only fold result for calls to __builtin_* functions. Strip
10943 NOP_EXPR from INTEGER_CST returned from such functions. Fold
10944 the function designator.
10945 (convert_arguments): Fold arguments. Update call to
10946 convert_for_assignment.
10947 (build_unary_op): Handle increment and decrement of
10948 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
10949 decrement earlier. Fold operand of increment and decrement.
10950 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
10951 built for integer operand. Wrap returns that are INTEGER_CSTs
10952 without being integer constant expressions or that have integer
10953 constant operands without being INTEGER_CSTs.
10954 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10955 (build_conditional_expr): Add operand ifexp_bcp. Track whether
10956 result is an integer constant expression or can be used in
10957 unevaluated parts of one and avoid folding and wrap as
10958 appropriate. Fold operands before possibly doing -Wsign-compare
10959 warnings.
10960 (build_compound_expr): Wrap result for C99 if operands can be used
10961 in integer constant expressions.
10962 (build_c_cast): Update call to digest_init. Do not ignore
10963 overflow from casting floating-point constants to integers. Wrap
10964 results that could be confused with integer constant expressions,
10965 null pointer constants or floating-point constants.
10966 (c_cast_expr): Update call to groktypename. Handle expressions
10967 included in type name.
10968 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
10969 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
10970 Update calls to convert_for_assignment.
10971 (convert_for_assignment): Take new parameter
10972 null_pointer_constant. Do not strip nops or call
10973 decl_constant_value_for_broken_optimization. Set
10974 in_late_binary_op for conversions to boolean.
10975 (store_init_value): Update call to digest_init.
10976 (digest_init): Take new parameter null_pointer_constant. Do not
10977 call decl_constant_value_for_broken_optimization. pedwarn for
10978 initializers not constant expressions. Update calls to
10979 convert_for_assignment.
10980 (constructor_nonconst): New.
10981 (struct constructor_stack): Add nonconst element.
10982 (really_start_incremental_init, push_init_level, pop_init_level):
10983 Handle constructor_nonconst and nonconst element.
10984 (set_init_index): Call constant_expression_warning for array
10985 designators.
10986 (output_init_element): Fold value. Set constructor_nonconst as
10987 applicable. pedwarn for initializers not constant expressions.
10988 Update call to digest_init. Call constant_expression_warning
10989 where constant initializers are required.
10990 (process_init_element): Use c_save_expr.
10991 (c_finish_goto_ptr): Fold expression.
10992 (c_finish_return): Fold return value. Update call to
10993 convert_for_assignment.
10994 (c_start_case): Fold switch expression.
10995 (c_process_expr_stmt): Fold expression.
10996 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 10997 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
10998 (build_binary_op): Track whether results are integer constant
10999 expressions or may occur in such, disable folding and wrap results
11000 as applicable. Fold operands for -Wsign-compare warnings unless
11001 in_late_binary_op.
11002 (c_objc_common_truthvalue_conversion): Handle results folded to
11003 integer constants that are not integer constant expressions.
11004 * doc/extend.texi: Document when typeof operands are evaluated,
11005 that condition of __builtin_choose_expr is an integer constant
11006 expression, and more about use of __builtin_constant_p in
11007 initializers.
11008
5babbcc0
RG
110092009-03-29 Richard Guenther <rguenther@suse.de>
11010
11011 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11012 propagate addresses of array references.
11013
0340f2ba
SB
110142009-03-29 Steven Bosscher <steven@gcc.gnu.org>
11015
11016 * regmove.c (perhaps_ends_bb_p): Remove.
11017 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
11018 from INSN and check that the main loop stays within that basic block.
11019 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
11020 (regmove_forward_pass): Split out from regmove_optimize. Use
11021 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
11022 (regmove_backward_pass): Split out from regmove_optimize. Use
11023 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
11024 (regmove_optimize): Simplify.
11025
eeae74a1
L
110262009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11027
11028 PR target/39545
11029 * config/i386/i386.c (classify_argument): Ignore flexible array
11030 member in struct and warn ABI change.
11031
a24078b2
L
110322009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11033
11034 * config/i386/i386-protos.h (ix86_agi_dependent): New.
11035
11036 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
11037 (ix86_adjust_cost): Updated.
11038
a8da523f
JH
110392009-03-29 Jan Hubicka <jh@suse.cz>
11040
11041 PR middle-end/28850
11042 * tree-pass.h (pass_cleanup_eh): New function.
11043 (remove_unreachable_regions): Break code handling RTL
11044 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
11045 that can not be reached by runtime.
11046 (can_be_reached_by_runtime): New function.
11047 (label_to_region_map): New function.
11048 (num_eh_regions): New function.
11049 (rtl_remove_unreachable_regions): New function.
11050 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
11051 (remove_eh_region): New function.
11052 * except.h: Include sbitmap and vecprim.
11053 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
11054 num_eh_regions): Declare.
11055 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 11056 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
11057 * tree-eh.c (tree_remove_unreachable_handlers): New function.
11058 (tree_empty_eh_handler_p): New function.
11059 (cleanup_empty_eh): New function.
11060 (cleanup_eh): New function.
11061 (pass_cleanup_eh): New function.
11062
98f358e5
JH
110632009-03-29 Jan Hubicka <jh@suse.cz>
11064
11065 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
11066 for removed regions.
11067
13a9fa44
JH
110682009-03-29 Jan Hubicka <jh@suse.cz>
11069
11070 * except.c (dump_eh_tree): Dump all datastructures.
11071
e38cf733
JH
110722009-03-29 Jan Hubicka <jh@suse.cz>
11073
11074 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
11075 (duplicate_eh_regions_1): Likewise.
11076 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
11077 vector; call EH verification.
11078 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11079 Be ready for region being removed.
11080
12802c2b
JH
110812009-03-29 Jan Hubicka <jh@suse.cz>
11082
11083 * bitmap.c (bitmap_last_set_bit): New function.
11084 * bitmap.h (bitmap_last_set_bit): Declare.
11085
4ea80a41
DA
110862009-03-29 David Ayers <ayers@fsfe.org>
11087
11088 PR objc/27377
11089 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
11090 by calling objc_compare_types and surpress warnings about
11091 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 11092
4ea80a41 110932009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
11094
11095 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
11096 call initialize_inline_failed.
11097 (initialize_inline_failed): Move it from here ...
11098 * cgraph.c (initialize_inline_failed): ... to here.
11099 (cgraph_create_edge): Call initialize_inline_failed rather than
11100 setting inline_failed directly.
11101
7fb0ee07
BE
111022009-03-29 Ben Elliston <bje@au.ibm.com>
11103
11104 PR target/32542
11105 * sysv4.opt (msdata): Improve comment.
11106 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
11107 * sysv4.h (SVR4_ASM_SPEC): Likewise.
11108
0be77bf2
BE
111092009-03-29 Ben Elliston <bje@au.ibm.com>
11110
11111 PR target/30451
11112 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
11113 load and store attributes.
11114
593812b6
BE
111152009-03-29 Ben Elliston <bje@au.ibm.com>
11116
11117 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
11118 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
11119 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
11120 * doc/extend.texi (X86 Built-in Functions): Add index entries for
11121 __builtin_infq and __builtin_huge_valq.
11122
8272d11d
AS
111232009-03-28 Anatoly Sokolov <aesok@post.ru>
11124
11125 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
11126 atmega8m1 devices.
11127 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11128 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
11129
74fe548b
XDL
111302009-03-28 Xinliang David Li <davidxl@google.com>
11131
2ba9daa7 11132 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
11133 (do_dbg_cnt): New function.
11134
33977f81
JH
111352009-03-28 Jan Hubicka <jh@suse.cz>
11136
11137 Merge from pretty-ipa:
11138
11139 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 11140
33977f81
JH
11141 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11142 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
11143 * passes.c (function_called_by_processed_nodes_p): New.
11144 * ipa-pure-const.c (check_call): Fix handling of operands.
11145 (analyze_function): Dump debug output for skipped bodies.
11146 (local_pure_const): Use function_called_by_processed_nodes_p.
11147 * dwarf2out.c (reference_to_unused): Use output.
11148 * passes.c (do_per_function_toporder): Likewise.
11149
11150 2008-11-12 Jan Hubicka <jh@suse.cz>
11151
11152 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
11153 * ipa-pure-const.c (funct_state_d): Add can throw field; make
11154 state_set_in_source enum
11155 (check_decl): Ignore memory tags; do not set fake looping flags;
11156 dump diagnostics.
11157 (check_operand, check_tree, check_rhs_var, check_lhs_var,
11158 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
11159 (check_call, analyze_function): Rewrite.
11160 (check_stmt): New.
11161 (add_new_function): Update call of analyze_function.
11162 (generate_summary): Add call of analyze_function.
11163 (propagate): Propagate can_throw; handle state_set_in_source correctly.
11164 (local_pure_const): New function.
11165 (pass_local_pure_const): New pass.
11166 * ipa-inline.c (inline_transform): Set after_inlining.
11167 * tree-eh.c (stmt_can_throw_external): New.
11168 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
11169 work with aliasing built.
11170 * tree-flow.h (stmt_can_throw_external): New.
11171 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
11172 and local pure/const pass in early and late optimization queue.
ba20e309 11173
617f3897
MJ
111742009-03-28 Martin Jambor <mjambor@suse.cz>
11175
11176 * fold-const.c (get_pointer_modulus_and_residue): New parameter
11177 allow_func_align.
11178 (fold_binary): Allow function decl aligment consideration is the
11179 second argument is integer constant one.
11180 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
11181 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
11182 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
11183
fe89fbc5
JH
111842009-03-28 Jan Hubicka <jh@suse.cz>
11185
11186 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
11187 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
11188 * function.h (rtl_data): Add nothrow flag.
11189 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
11190 set DECL_NOTHROW for AVAILABLE functions.
11191
574872ff
JJ
111922009-03-28 Jakub Jelinek <jakub@redhat.com>
11193
b3bf8855
JJ
11194 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
11195 following vector keyword has expansion starting with pixel or bool
11196 keyword, expand vector to __vector and pixel or bool to __pixel or
11197 __bool.
11198
574872ff
JJ
11199 PR c++/39554
11200 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
11201 warn_if_disallowed_function_p): Removed.
11202 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
11203 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
11204 warning_if_disallowed_function_p.
11205 * flags.h (warn_if_disallowed_function_p,
11206 warn_disallowed_functions): Removed.
11207 * common.opt (Wdisallowed-function-list=): Removed.
11208 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
11209
b005da11
RG
112102009-03-28 Richard Guenther <rguenther@suse.de>
11211
11212 PR tree-optimization/38723
11213 * tree-ssa-pre.c (compute_avail): Add all default definitions to
11214 the entry block.
11215
1de812a6
JH
112162009-03-28 Jan Hubicka <jh@suse.cz>
11217
11218 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
11219 test introduced by my previous patch.
11220
fbb789d4
RG
112212009-03-28 Richard Guenther <rguenther@suse.de>
11222
11223 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
11224 the PHIs value undefined.
11225
6f1873a1
JH
112262009-03-28 Jan Hubicka <jh@suse.cz>
11227
11228 * tree-pass.h (pass_fixup_cfg): New pass.
11229 * ipa-inline.c (inline_transform): Set
11230 always_inline_functions_inlined/after_inlining.
11231 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
11232 (pass_fixup_cfg): New pass.
11233 * passes.c (init_optimization_passes): Add fixup_cfg.
11234
17021bc8
RG
112352009-03-28 Richard Guenther <rguenther@suse.de>
11236
11237 PR tree-optimization/38458
11238 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
11239 argument use the arguments copy-of value.
11240
e8114fba
RG
112412009-03-28 Richard Guenther <rguenther@suse.de>
11242
11243 PR tree-optimization/38180
11244 * tree-ssa-ccp.c (get_default_value): Simplify.
11245 (likely_value): Likewise.
11246 (surely_varying_stmt_p): Properly handle VOP case.
11247 (ccp_initialize): Likewise.
11248 (ccp_fold): Handle propagating through *&.
11249 (fold_const_aggregate_ref): Also handle decls.
11250
257eb6e3
JH
112512009-03-28 Jan Hubicka <jh@suse.cz>
11252
11253 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11254 * cgraph.h (cgraph_node): Likewise.
11255 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
11256 (cgraph_reset_node): Use process flag.
11257 (cgraph_mark_functions_to_output): Likewise.
11258 (cgraph_expand_function): Likewise.
11259 (cgraph_expand_all_functions): Likewise.
11260 (cgraph_output_in_order): Likewise.
11261 * dwarf2out.c (reference_to_unused): Likewise.
11262 * passes.c do_per_function_toporder): Likewise.
11263
61a05df1
JH
112642009-03-28 Jan Hubicka <jh@suse.cz>
11265
11266 Bring from lto-branch:
ba20e309 11267
61a05df1
JH
11268 2008-09-03 Doug Kwan <dougkwan@google.com>
11269
11270 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
11271 enums instead of reason strings.
11272 * cgraph.c (cgraph_create_edge): Same.
11273 (cgraph_inline_failed_string): New function.
11274 * cgraph.h (cgraph_inline_failed_t): New enum type.
11275 (cgraph_inline_failed_string): New prototype.
11276 (struct cgraph_edge): Change type of INLINED_FAILED from constant
11277 char pointer to cgraph_inline_failed_t.
11278 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
11279 (cgraph_default_inline_p): Ditto.
60839f5d 11280 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
11281 to cgraph_inline_failed_t pointer.
11282 * cif-code.def: New file.
11283 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
11284 reason string.
11285 (cgraph_check_inline_limits): Change type of REASON to pointer to
11286 cgraph_inline_failed_t. Replace reason strings with enums.
11287 (cgraph_default_inline_p): Ditto.
11288 (cgraph_recursive_inlining_p): Ditto.
11289 (update_caller_keys): Change type of FAILED_REASON to
11290 cgraph_inline_failed_t.
11291 (cgraph_set_inline_failed): Change type of REASON to pointer to
11292 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
11293 convert enums to strings for text output.
11294 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
11295 to be of type cgraph_inline_failed_t. Replace reason strings with
11296 enums. Call cgraph_inline_failed_string to covert enums
11297 to strings for text output.
11298 (cgraph_decide_inlining): Replace reason strings with enums.
11299 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
11300 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
11301 for text output.
11302 * tree-inline.c (expand_call_inline): Change type of REASON
11303 to cgraph_inline_failed_t. Replace reason strings with enums.
11304 Call cgraph_inline_failed_string for text output.
11305 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
11306 (cgraph.o): Ditto.
11307
144e8aac
JH
113082009-03-28 Jan Hubicka <jh@suse.cz>
11309
11310 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
11311 cgraph_clone_node): Remove master clone handling.
11312 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11313 * cgraph.h (master_clone): Remove.
11314 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11315 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
11316 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
11317
4a371c8d
JH
113182009-03-28 Jan Hubicka <jh@suse.cz>
11319
11320 * cgraph.c (cgraph_function_body_availability): Functions declared
11321 inline are always safe to assume that it is not going to be replaced.
11322
6cdb0ee3
RG
113232009-03-28 Richard Guenther <rguenther@suse.de>
11324
11325 PR tree-optimization/38513
11326 * tree-ssa-pre.c (eliminate): Remove redundant stores.
11327 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11328 EXC_PTR_EXPR and FILTER_EXPR.
11329 (get_ref_from_reference_ops): Likewise.
11330
8ca1fd76
RG
113312009-03-28 Richard Guenther <rguenther@suse.de>
11332
11333 PR tree-optimization/38968
11334 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
11335 Use FLOOR_MOD_EXPR to compute misalignment.
11336
a254e44d
RG
113372009-03-28 Richard Guenther <rguenther@suse.de>
11338
11339 PR tree-optimization/37795
11340 * tree.h (combine_comparisons): Declare.
11341 * fold-const.c (combine_comparisons): Export.
11342 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
11343 comparisons.
11344 (ifcombine_iforif): Use combine_comparisons.
11345
a8ee227c
JH
113462009-03-28 Jan Hubicka <jh@suse.cz>
11347
11348 * tree-eh.c (inlinable_call_p): New function.
11349 (make_eh_edges): Use it.
11350 (verify_eh_edges): Use it.
11351 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
11352 * except.c (reachable_next_level): Add inlinable_function argument
11353 (sjlj_find_directly_reachable_regions): Update.
11354 (add_reachable_handler): Do not set saw_any_handlers.
11355 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
11356 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11357 Add new inlinable call parameter.
11358 (can_throw_internal, can_throw_external): Update.
11359 * except.h (can_throw_internal_1, can_throw_external_1,
11360 foreach_reachable_handler): Update declaration.
11361
52c0e446
JM
113622009-03-28 Joseph Myers <joseph@codesourcery.com>
11363
11364 * config/arm/t-arm-coff, config/h8300/coff.h,
11365 config/i386/i386-aout.h, config/i386/i386-coff.h,
11366 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
11367 config/pdp11/2bsd.h, config/rs6000/aix41.h,
11368 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
11369 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
11370 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
11371 sys-types.h: Remove.
11372 * Makefile.in: Remove protoize and fixproto support and references
11373 in comments.
11374 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
11375 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
11376 Remove.
11377 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
11378 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
11379 unprotoize$(exeext).
11380 (rest.encap): Don't depend on $(STMP_FIXPROTO)
11381 (.PHONY): Don't depend on proto.
11382 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
11383 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
11384 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
11385 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
11386 build/gen-protos.o, build/scan.o, xsys-protos.h,
11387 build/fix-header$(build_exeext), build/fix-header.o,
11388 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
11389 stmp-install-fixproto): Remove.
11390 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
11391 SYSCALLS.c or fixproto files.
11392 (install-common): Don't install protoize.
11393 (install-headers-tar, install-headers-cpio, install-headers-cp):
11394 Don't depend on $(STMP_FIXPROTO).
11395 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
11396 install fixproto files or write out fixproto settings.
11397 (uninstall): Don't uninstall protoize.
11398 * config.gcc (use_fixproto): Remove.
11399 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
11400 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
11401 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
11402 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
11403 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
11404 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
11405 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
11406 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
11407 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
11408 * config/t-vxworks (STMP_FIXPROTO): Remove.
11409 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
11410 STMP_FIXPROTO): Remove.
11411 * config.in, configure: Regenerate.
11412 * crtstuff.c (gid_t, uid_t): Don't undefine.
11413 * doc/install.texi: Change m68k-coff to m68k-elf in example.
11414 (arm-*-coff, arm-*-aout: Remove target entries.
11415 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
11416 Remove mention of AIX 4.1.
11417 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
11418 * doc/invoke.texi (Running Protoize): Remove.
11419 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
11420 (Protoize Caveats): Remove.
11421 * tsystem.h: Update comments on headers assumed to exist.
11422
20a07f44
VM
114232009-03-27 Vladimir Makarov <vmakarov@redhat.com>
11424
11425 * genautomata.c: Add a new year to the copyright. Add a new
11426 reference.
11427 (struct insn_reserv_decl): Add comments for member bypass_list.
11428 (find_bypass): Remove.
11429 (insert_bypass): New.
11430 (process_decls): Use insert_bypass.
11431 (output_internal_insn_latency_func): Output all bypasses with the
11432 same input insn in one switch case.
11433
11434 * rtl.def (define_bypass): Describe bypass choice.
11435 * doc/md.texi (define_bypass): Ditto.
11436
3a0d06c1
RB
114372009-03-27 Richard Guenther <rguenther@suse.de>
11438
11439 * gimplify.c (mark_addressable): Export.
11440 * tree-flow.h (mark_addressable): Declare.
11441 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
11442 * tree-ssa.c (verify_phi_args): Verify that address taken
11443 variables have TREE_ADDRESSABLE set.
11444
114452009-03-27 Richard Guenther <rguenther@suse.de>
11446
11447 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
11448 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
11449 Do not mark decls TREE_ADDRESSABLE.
11450 (build_fold_addr_expr): Adjust.
11451 (fold_addr_expr): Remove.
11452 (fold_unary): Use build_fold_addr_expr.
11453 (fold_comparison): Likewise.
11454 (split_address_to_core_and_offset): Likewise.
11455 * coverage.c (tree_coverage_counter_addr): Mark the array decl
11456 TREE_ADDRESSABLE.
11457 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
11458 (gimplify_modify_expr_to_memcpy): Mark source and destination
11459 addressable.
11460 * omp-low.c (create_omp_child_function): Mark the object decl
11461 TREE_ADDRESSABLE.
11462 (lower_rec_input_clauses): Mark the var we take the address of
11463 TREE_ADDRESSABLE.
11464 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
11465
2ac26e15
L
114662009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11467
11468 PR middle-end/39315
11469 * cfgexpand.c (expand_one_stack_var_at): Change alignment
11470 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
11471
472c7fbd
RG
114722009-03-27 Richard Guenther <rguenther@suse.de>
11473
11474 PR tree-optimization/39120
11475 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
11476 constraints.
11477 (handle_lhs_call): Process return constraints. Add escape
11478 constraints if necessary.
11479 (handle_const_call): Fill out return constraints. Make nested
11480 case more precise. Avoid consttmp if possible.
11481 (handle_pure_call): Fill out return constraints. Avoid
11482 callused if possible.
11483 (find_func_aliases): Simplify call handling.
11484
114852009-03-27 Richard Guenther <rguenther@suse.de>
11486
11487 PR tree-optimization/39120
11488 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
11489 as a representative.
11490 (solve_graph): Do propagate CALLUSED.
11491 (handle_pure_call): Use a scalar constraint from CALLUSED for
11492 the return value.
11493 (find_what_p_points_to): CALLUSED shall not appear in poins-to
11494 solutions.
11495
d9223014
L
114962009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11497
11498 PR c/39323
11499 * c-common.c (handle_aligned_attribute): Properly check alignment
11500 overflow. Use (1U << i) instead of (1 << i).
11501
ba20e309 11502 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
11503
11504 * expr.h (get_mem_align_offset): Updated.
11505
11506 * tree.h (tree_decl_common): Change align to "unsigned int" and
11507 move it before pointer_alias_set.
11508
689b689c
L
115092009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11510 Jakub Jelinek <jakub@redhat.com>
11511
11512 PR target/38034
11513 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
11514 gr_register_operand with gr_reg_or_0_operand.
11515 (cmpxchg_rel_di): Likewise.
11516 (sync_lock_test_and_set<mode>): Likewise.
11517
c619e982
L
115182009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11519
11520 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
11521 (true_regnum): Likewise.
11522
11523 * rtlanal.c (subreg_info): Moved to ...
11524 * rtl.h (subreg_info): Here. New.
11525 (subreg_get_info): New.
11526
11527 * rtlanal.c (subreg_get_info): Make it extern.
11528
51212b32
L
115292009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11530
11531 PR target/39472
11532 * config/i386/i386.c (ix86_abi): New.
11533 (override_options): Handle -mabi=.
ba20e309 11534 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
11535 (ix86_call_abi_override): Likewise.
11536 (init_cumulative_args): Likewise.
11537 (function_arg_advance): Likewise.
11538 (function_arg_64): Likewise.
11539 (function_arg): Likewise.
11540 (ix86_pass_by_reference): Likewise.
11541 (ix86_function_value_regno_p): Likewise.
11542 (ix86_build_builtin_va_list_abi): Likewise.
11543 (setup_incoming_varargs_64): Likewise.
11544 (is_va_list_char_pointer): Likewise.
11545 (ix86_init_machine_status): Likewise.
ba20e309 11546 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
11547 (ix86_function_type_abi): Return enum calling_abi. Rewrite
11548 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 11549 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
11550 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
11551 with ix86_abi.
11552 (ix86_fn_abi_va_list): Updated.
11553
11554 * config/i386/i386.h (ix86_abi): New.
11555 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
11556 (CONDITIONAL_REGISTER_USAGE): Likewise.
11557 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
11558 (machine_function): Likewise.
11559
11560 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
11561 with ix86_abi.
11562 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
11563 (STACK_BOUNDARY): Likewise.
11564 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
11565
11566 * config/i386/i386.opt (mabi=): New.
11567
11568 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
11569 return enum calling_abi.
11570 (ix86_function_type_abi): Likewise.
11571 (ix86_function_abi): Removed.
11572
11573 * doc/invoke.texi: Document -mabi= option for x86.
11574
7338ea63
KG
115752009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11576
11577 * builtins.c (real_dconstp): Delete.
11578 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
11579
68599f33
DS
115802009-03-27 Dodji Seketeli <dodji@redhat.com>
11581 Jakub Jelinek <jakub@redhat.com>
11582
11583 PR debug/37959
11584 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
11585 (gen_subprogram_die): When a function is explicit, generate the
11586 DW_AT_explicit attribute.
11587 * langhooks.h (struct lang_hooks_for_decls): Add
11588 function_decl_explicit_p langhook.
11589 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
11590 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
11591
9f5e9983
JJ
115922009-03-27 Jakub Jelinek <jakub@redhat.com>
11593
64d7685c
JJ
11594 * builtins.c (fold_builtin_memory_op): Optimize memmove
11595 into memcpy if we can prove source and destination don't overlap.
11596
9f5e9983
JJ
11597 * tree-inline.c: Include gt-tree-inline.h.
11598 (clone_fn_id_num): New variable.
11599 (clone_function_name): New function.
11600 (tree_function_versioning): Use it.
11601 * Makefile.in (GTFILES): Add tree-inline.c.
11602
e54d52a8
MM
116032009-03-27 Mark Mitchell <mark@codesourcery.com>
11604
11605 * BASE-VER: Change to 4.5.0.
11606
e9d51dc6
XDL
116072009-03-27 Xinliang David Li <davidxl@google.com>
11608
11609 PR tree-optimization/39557
11610 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
11611
4577cea1
XDL
116122009-03-27 Xinliang David Li <davidxl@google.com>
11613
11614 PR tree-optimization/39548
2ba9daa7 11615 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
11616 candidate check.
11617
0f7464f4
L
116182009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11619
11620 * c-common.c (pointer_int_sum): Use %wd on return from
11621 tree_low_cst.
11622
a8847a7f
L
116232009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11624
11625 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
11626 on return from tree_low_cst.
11627
b0957daf
AP
116282009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
11629
11630 PR c++/36799
ba20e309
UB
11631 * ginclude/stdarg.h (va_copy): Define also for
11632 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 11633
a5f805df
MLI
116342009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11635
11636 PR c++/35652
11637 * builtins.h (c_strlen): Do not warn here.
11638 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
11639 * c-common.c (pointer_int_sum): Take an explicit location.
11640 Warn about offsets out of bounds.
11641 * c-common.h (pointer_int_sum): Adjust declaration.
11642
6f401211
RW
116432009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11644
a5f805df
MLI
11645 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
11646 markup glitch.
6f401211 11647
5a59b39e
JJ
116482009-03-26 Jakub Jelinek <jakub@redhat.com>
11649
11650 PR c++/39554
11651 * opts.c (warn_if_disallowed_function_p): Don't assume
11652 get_callee_fndecl must return non-NULL.
11653
d5f89b53
VM
116542009-03-26 Vladimir Makarov <vmakarov@redhat.com>
11655
11656 PR rtl-optimization/39522
11657 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
11658 when reg_reloaded_valid is set.
11659
61238a79
UW
116602009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11661
11662 * config/spu/divv2df3.c: New file.
11663 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
11664 (DPBIT_FUNCS): Filter out _div_df.
11665
03f8829b
BS
116662009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
11667
11668 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
11669 a jump insn, count that jump in the distance to the loop start.
11670
9fdcdc74
KK
116712009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
11672
11673 PR target/39523
11674 * config/sh/sh.c (calc_live_regs): Fix condition for global
11675 registers except PIC_OFFSET_TABLE_REGNUM.
11676
46994828
KT
116772009-03-25 Kai Tietz <kai.tietz@onevision.com>
11678
11679 PR/39518
11680 * doc/invoke.texi (-mconsole): New.
11681 (-mcygwin): New.
11682 (-mno-cygwin): New.
11683 (-mdll): New.
11684 (-mnop-fun-dllimport): New.
11685 (-mthread): New.
11686 (-mwin32): New.
11687 (-mwindows): New.
11688 (sub section "i386 and x86-64 Windows Options"): New.
11689
60839f5d 116902009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
11691
11692 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
11693 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
11694
ae560440
RG
116952009-03-25 Richard Guenther <rguenther@suse.de>
11696
11697 PR middle-end/39497
11698 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
11699 of -Wno-error.
11700
cd510f15
AM
117012009-03-25 Andrey Belevantsev <abel@ispras.ru>
11702
11703 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
11704 neither of haifa/selective schedulers are working.
11705
44ab0f0e
RW
117062009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11707
11708 * doc/invoke.texi (Debugging Options): Fix description of
11709 -fno-merge-debug-strings.
11710
ad9646c7
HPN
117112009-03-24 Hans-Peter Nilsson <hp@axis.com>
11712
e6142656
HPN
11713 * config/cris/libgcc.ver: New version-script.
11714 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
11715
ad9646c7
HPN
11716 * configure.ac <GAS features, nop mnemonic>: Add pattern
11717 crisv32-*-* for "nop".
ba20e309 11718 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
11719 * configure: Regenerate.
11720
09ac4473
IR
117212009-03-24 Ira Rosen <irar@il.ibm.com>
11722
11723 PR tree-optimization/39529
11724 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
11725 mark_sym_for_renaming for the tag copied to the new vector
11726 pointer.
11727
d94a427e
AL
117282009-03-24 Arthur Loiret <aloiret@debian.org>
11729
ba20e309 11730 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
11731 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
11732 EXTRA_SPEC_FUNCTIONS.
11733 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
11734 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
11735 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
11736 -march and -mtune options.
11737
60839f5d 117382009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
11739
11740 * config/m68k/t-rtems: Add m5329 multilib.
11741
603f5959
DS
117422009-03-24 Dodji Seketeli <dodji@redhat.com>
11743 Jakub Jelinek <jakub@redhat.com>
11744
11745 PR debug/39524
11746 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
11747 nodes.
11748
c5cdb03f
JJ
117492009-03-23 Jakub Jelinek <jakub@redhat.com>
11750
11751 PR c/39495
11752 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
11753 instead of c_parser_expression_conv, if original_code isn't one of the
11754 4 allowed comparison codes, fail.
11755
3691626c
RG
117562009-03-23 Richard Guenther <rguenther@suse.de>
11757
11758 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
11759 * tree.h (struct tree_type): Likewise.
11760 * reload.h (struct insn_chain): Likewise.
11761 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
11762 * function.h (struct function): Likewise.
11763 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
11764
88ccb72a
JJ
117652009-03-23 Jakub Jelinek <jakub@redhat.com>
11766
11767 PR tree-optimization/39516
11768 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
11769
60839f5d 117702009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 11771
2ba9daa7 11772 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
11773 should be set true if BITS_PER_WORD of target is bigger than 32
11774
f82162f8
HPN
117752009-03-22 Hans-Peter Nilsson <hp@axis.com>
11776
11777 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
11778 Translate -B-options to -rpath-link. Correct existing
11779 rpath-link and conditionalize on !nostdlib.
11780
048fd785
RW
117812009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11782
11783 * doc/extend.texi (Function Attributes, Variable Attributes):
11784 Fix typos.
11785 * doc/invoke.texi (Debugging Options, Optimize Options)
11786 (i386 and x86-64 Options, MCore Options): Likewise.
11787
6e75c1a9
JJ
117882009-03-20 Jakub Jelinek <jakub@redhat.com>
11789
11790 PR debug/37890
11791 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
11792 it for block local namespace aliases.
11793 (gen_decl_die): Pass context_die to gen_namespace_die.
11794
ea1199ee
JJ
117952009-03-19 Jakub Jelinek <jakub@redhat.com>
11796
11797 PR c/39495
11798 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
11799 minimum or maximum value.
11800
58929c10
AO
118012009-03-19 Alexandre Oliva <aoliva@redhat.com>
11802
11803 * reginfo.c (globalize_reg): Recompute derived reg sets.
11804
60839f5d 118052009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
11806
11807 PR target/39063
11808 * libgcc2.c (mprotect): Do not use signed arguments for
11809 VirtualProtect, use DWORD arguments. Also fix the 'may
11810 be used uninitialized' warning for the np variable.
11811
f57c2f04
JJ
118122009-03-19 Jakub Jelinek <jakub@redhat.com>
11813
11814 PR target/39496
11815 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
11816 functions using regparm calling conventions when not optimizing.
11817 (ix86_function_sseregparm): Similarly for sseregparm calling
11818 conventions.
11819
9e517d61
LF
118202009-03-19 Li Feng <nemokingdom@gmail.com>
11821
11822 PR middle-end/39500
11823 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
11824 dependence if the first conflict is after niter iterations.
11825
8ef20026
HPN
118262009-03-19 Hans-Peter Nilsson <hp@axis.com>
11827
11828 PR middle-end/38609
11829 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
11830 functions with dynamic stack-pointer adjustments.
11831
64e4a1a6
BE
118322009-03-19 Ben Elliston <bje@au.ibm.com>
11833
11834 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
11835 option; change to -msdata=data.
11836
9a0f3e86
RW
118372009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11838
11839 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
11840 and -fopenmp.
11841
09bc5979
EB
118422009-03-18 Eric Botcazou <ebotcazou@adacore.com>
11843
11844 PR target/35180
11845 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
11846
332459cd
SL
118472009-03-18 Sandra Loosemore <sandra@codesourcery.com>
11848
11849 * doc/invoke.texi (Code Gen Options): Expand discussion of
11850 -fno-common.
11851
8f5929e1
JJ
118522009-03-18 Jakub Jelinek <jakub@redhat.com>
11853
11854 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
11855 * matrix-reorg.c (struct matrix_info): Likewise.
11856 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
11857 * rtl.h (struct mem_attrs): Likewise.
11858 * df.h (struct df): Likewise.
11859 * tree-data-ref.h (struct data_dependence_relation): Likewise.
11860 * ira-int.h (struct ira_allocno): Likewise.
11861 * df-scan.c (struct df_collection_rec): Likewise.
11862 * ira.c (struct equivalence): Likewise.
11863 * function.c (struct temp_slot): Likewise.
11864 * cfgloop.h (struct loop): Likewise.
11865
d130d647
JJ
11866 PR debug/39485
11867 * function.c (use_register_for_decl): When not optimizing, disregard
11868 register keyword for variables with types containing methods.
11869
9968d233
SP
118702009-03-18 Sebastian Pop <sebastian.pop@amd.com>
11871
11872 PR middle-end/39447
11873 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
11874 (is_simple_operand): Call contains_component_ref_p before calling data
11875 reference analysis that would fail on COMPONENT_REFs.
11876
11877 * tree-vrp.c (search_for_addr_array): Fix formatting.
11878
69484bfd
RG
118792009-03-18 Richard Guenther <rguenther@suse.de>
11880
11881 * tree-vect-transform.c (vect_loop_versioning): Fold the
11882 generated comparisons.
11883 * tree-vectorizer.c (set_prologue_iterations): Likewise.
11884 (slpeel_tree_peel_loop_to_edge): Likewise.
11885
66811228
RW
118862009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11887
0631b69f
RW
11888 PR middle-end/37805
11889 * opts.c (print_specific_help): In addition to `undocumented',
11890 accept `separate' and `joined' flags if passed alone. Describe
11891 output by the first matched one of those.
11892 (common_handle_option): Skip over empty strings.
11893 * gcc.c (display_help): Fix help string for `--help='.
11894 * doc/invoke.texi (Option Summary, Overall Options): With
11895 `--help=', classes and qualifiers can both be repeated, but
11896 only the latter can be negated. One should not pass only
11897 negated qualifiers. Fix markup and examples.
11898
66811228
RW
11899 Revert
11900 2008-10-14 Jakub Jelinek <jakub@redhat.com>
11901 PR middle-end/37805
11902 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
11903 and -fhelp=separate.
11904
3c072c6b
JY
119052009-03-17 Jing Yu <jingyu@google.com>
11906
11907 PR middle-end/39378
80c65208
JY
11908 * function.h (struct rtl_data): Move is_thunk from here...
11909 (struct function): ...to here.
11910 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
11911 * varasm.c (assemble_start_function): Change is_thunk from crtl to
11912 cfun.
80c65208
JY
11913 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
11914 cfun.
11915 (alpha_does_function_need_gp, alpha_start_function): Likewise.
11916 (alpha_output_function_end_prologue): Likewise.
11917 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
11918 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
11919 (rs6000_output_function_epilogue): Likewise.
11920 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 11921
9ade279b
UB
119222009-03-17 Uros Bizjak <ubizjak@gmail.com>
11923
11924 PR target/39482
11925 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
11926 from different units in a single alternative.
11927 (*truncdfsf_i387): Ditto.
11928 (*truncxfsf2_mixed): Ditto.
11929 (*truncxfdf2_mixed): Ditto.
11930
16e60c17
JJ
119312009-03-17 Jakub Jelinek <jakub@redhat.com>
11932
98381eb4
JJ
11933 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11934 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11935
df5deb18
JJ
11936 PR debug/39474
11937 * tree-ssa-live.c (remove_unused_locals): Don't remove local
11938 unused non-artificial variables when not optimizing.
11939
a3f596ba
JJ
11940 PR debug/39471
11941 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11942 DW_TAG_imported_module even if decl is IMPORTED_DECL with
11943 NAMESPACE_DECL in its DECL_INITIAL.
11944
6b2b8871
JJ
11945 PR middle-end/39443
11946 * optabs.c (set_user_assembler_libfunc): New function.
11947 * expr.h (set_user_assembler_libfunc): New prototype.
11948 * c-common.c: Include libfuncs.h.
11949 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11950 for memcmp, memset, memcpy, memmove and abort.
11951 * Makefile.in (c-common.o): Depend on libfuncs.h.
11952
16e60c17
JJ
11953 PR debug/39412
11954 * dwarf2out.c (gen_inlined_enumeration_type_die,
11955 gen_inlined_structure_type_die, gen_inlined_union_type_die,
11956 gen_tagged_type_instantiation_die): Removed.
11957 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11958 do nothing.
11959
4d936aca
JJ
119602009-03-17 Janis Johnson <janis187@us.ibm.com>
11961
11962 PR testsuite/38526
11963 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11964 its use.
11965 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11966 (check-parallel-%): Ditto.
11967 (check-consistency): Ditto.
11968
4e9b2e50
KT
119692009-03-17 Kai Tietz <kai.tietz@onevision.com>
11970
11971 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11972 local variable rhs by NULL_TREE.
11973
21440b2d
L
119742009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11975
11976 PR target/39477
9ade279b 11977 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 11978
d8905c6a
L
119792009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11980
11981 PR target/39476
9ade279b 11982 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
11983
119842009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
11985
11986 PR target/39473
11987 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11988 for ms->sysv ABI calls only in 64bit mode.
11989
11990 * config/i386/i386.md (untyped_call): Support 32bit.
11991
cdcabece
L
119922009-03-16 H.J. Lu <hongjiu.lu@intel.com>
11993
11994 * doc/extend.texi: Replace x86_65 with x86_64.
11995
97b4ba9f
JJ
119962009-03-16 Jakub Jelinek <jakub@redhat.com>
11997
11998 PR tree-optimization/39455
11999 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
12000 mismatches for POINTER_TYPE_P (type).
12001 (number_of_iterations_le): Likewise.
12002
60839f5d 120032009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
12004
12005 * config/picochip/picochip.c: Removed profiling support.
12006 * config/picochip/picochip.md: Removed profiling instruction.
12007 * config/picochip/picochip.h: Removed profiling builtin.
12008
f38095f3
JM
120092009-03-16 Joseph Myers <joseph@codesourcery.com>
12010
12011 * doc/install.texi (--with-host-libstdcxx): Document.
12012
2cb4817b
AS
120132009-03-14 Anatoly Sokolov <aesok@post.ru>
12014
12015 PR target/34299
12016 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
12017 generate a warning if the function name does not begin with
12018 "__vector" and the function has either the 'signal' or 'interrupt'
12019 attribute, from here to ...
12020 (avr_declare_function_name): ...here. New function.
12021 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
12022 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
12023
39b2ac74
JJ
120242009-03-14 Jakub Jelinek <jakub@redhat.com>
12025
12026 PR bootstrap/39454
12027 * cse.c (fold_rtx): Don't modify original const_arg1 when
12028 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
12029 separate variable instead.
12030 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
12031 from out of range shift counts.
12032 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
12033
ad41bd84 120342009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 12035
60839f5d 12036 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
12037 diagnostic.h with $(DIAGNOSTIC_H).
12038
ad41bd84 120392009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
12040
12041 PR target/39431
12042 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
12043 predicate.
12044 * config/i386/sync.md (sync_compare_and_swap<mode>,
12045 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
12046 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
12047 into a register.
12048 (sync_double_compare_and_swapdi_pic,
12049 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
12050 cmpxchg8b_pic_memory_operand instead of just memory_operand.
12051
122c59c7
L
120522009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12053
12054 PR target/39445
9ade279b 12055 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 12056
cec8874f
L
120572009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12058
12059 PR target/39327
12060 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12061 (avx_addsubv4df3): Likewise.
12062 (*avx_addsubv4sf3): Likewise.
12063 (sse3_addsubv4sf3): Likewise.
12064
bbb52802
L
120652009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12066
12067 PR target/38824
9ade279b 12068 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 12069
a812fb07
VM
120702009-03-12 Vladimir Makarov <vmakarov@redhat.com>
12071
12072 PR debug/39432
12073 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
12074 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12075 registers for allocnos created from user-defined variables.
12076
4caab5ba
UW
120772009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12078
12079 PR target/39181
12080 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
12081 of non-integer mode as well.
12082
498e51ca
AN
120832009-03-11 Adam Nemet <anemet@caviumnetworks.com>
12084
12085 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
12086 for functions for which the parameter types are unknown.
12087
9bfaf89d
JJ
120882009-03-11 Jakub Jelinek <jakub@redhat.com>
12089
12090 PR target/39137
9ade279b 12091 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
12092 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
12093 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
12094 * config/i386/i386.c (ix86_local_alignment): For
12095 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
12096 long long variables on the stack to avoid dynamic realignment.
12097 Allow the first argument to be a decl rather than type.
12098 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
12099
18a3bdcb
NC
121002009-03-11 Nick Clifton <nickc@redhat.com>
12101
12102 PR target/5362
40190a76
NC
12103 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
12104 options.
12105 Add description to mno-lsim option.
12106 * config/mcore/mcore.h: Remove comment about deprecated m4align
12107 option.
12108 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
12109 * doc/invoke.texi: Add description of mno-lsim and
12110 mstack-increment options.
12111
18a3bdcb
NC
12112 * config/fr30/fr30.opt: Document the -mno-lsim option.
12113 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
12114 and -mno-lsim options.
12115
dc215785
UW
121162009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12117
12118 * fold-const.c (fold_comparison): Only call fold_inf_compare
12119 if the mode supports infinities.
12120
7716876b
JM
121212009-03-11 Jason Merrill <jason@redhat.com>
12122
12123 PR debug/39086
12124 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
12125 end already did. Notice GIMPLE_CALL modifications of the result.
12126 Don't copy debug information from an ignored decl or a decl from
12127 another function.
12128
ddef83d2
RG
121292009-03-10 Richard Guenther <rguenther@suse.de>
12130 Nathan Froyd <froydnj@codesourcery.com>
12131
12132 PR middle-end/37850
9ade279b 12133 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
12134 (__divMODE3): Likewise.
12135
9a9ba8d9
JJ
121362009-03-09 Jakub Jelinek <jakub@redhat.com>
12137
12138 PR tree-optimization/39394
12139 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
12140 DECL_SIZE_UNIT of variable length FIELD_DECLs.
12141
929b7fc3
AK
121422009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12143
12144 * recog.c (verfiy_changes): Disallow renaming of hard regs in
12145 inline asms for register asm ("") declarations.
12146
1803581d
EB
121472009-03-09 Eric Botcazou <ebotcazou@adacore.com>
12148
12149 * fold-const.c (fold_unary): Fix comment.
12150
8454d27e
JH
121512009-03-07 Jan Hubicka <jh@suse.cz>
12152
12153 PR target/39361
969a5433
JJ
12154 * tree-inline.c (setup_one_parameter): Do replacement of const
12155 argument by constant in SSA form.
8454d27e 12156
3a695389
UW
121572009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12158
12159 PR middle-end/38028
12160 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
12161 determine alignment passed to assign_stack_local.
12162 (assign_parms_unsplit_complex): Likewise.
12163 * except.c (sjlj_build_landing_pads): Likewise.
12164
9f0e7885
JJ
121652009-03-06 Jakub Jelinek <jakub@redhat.com>
12166
65401a0b
JJ
12167 PR middle-end/39360
12168 * tree-flow.h (add_referenced_var): Return bool instead of void.
12169 * tree-dfa.c (add_referenced_var): Return result of
12170 referenced_var_check_and_insert call.
12171 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
12172 of referenced_var_check_and_insert.
12173
9f0e7885 12174 PR debug/39372
9ade279b 12175 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
12176 (gen_variable_die): Emit DW_AT_location on abstract static variable's
12177 DIE, don't emit it if abstract origin already has it.
12178 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
12179 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
12180
3b664bd1
JBG
121812009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12182
ba20e309 12183 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
12184 detection.
12185 (write_tm_constrs_h): Indent generated code.
12186
d8f8ca80
RR
121872009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12188
12189 * doc/extend.texi (Function Attributes): Add documentation
12190 for isr attributes.
12191
6c3d550c
JJ
121922009-03-06 Jakub Jelinek <jakub@redhat.com>
12193
12194 PR debug/39387
12195 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
12196 take locus from its DECL_SOURCE_LOCATION instead of input_location.
12197
f9e96751
BS
121982009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
12199
12200 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
12201 the loop as bad.
12202
ee0ee7e2
JJ
122032009-03-05 Jakub Jelinek <jakub@redhat.com>
12204
12205 PR debug/39379
12206 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
12207 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
12208
6c6094f1
UB
122092009-03-05 Uros Bizjak <ubizjak@gmail.com>
12210
12211 * config/i386/i386.md (R8_REG, R9_REG): New constants.
12212 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
12213 constants instead of magic numbers.
12214 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
12215 (QI_REG_P): Ditto.
12216 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
12217 (x86_64_ms_abi_int_parameter_registers): Ditto.
12218 (x86_64_int_return_registers): Ditto.
09f8a8d3 12219 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
12220 (ix86_expand_call): Ditto for clobbered_registers array.
12221 (ix86_hard_regno_mode_ok): Ditto.
12222 (x86_extended_QIreg_mentioned_p): Ditto.
12223
b267bd41
R
122242009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
12225
6c6094f1 12226 PR tree-optimization/39349
1f3ad3f0
R
12227 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
12228
b267bd41
R
12229 * combine.c (gen_lowpart_for_combine): Use omode when generating
12230 clobber.
12231
1242bc9d
R
122322009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
12233
6c6094f1 12234 PR rtl-optimization/39235
1242bc9d
R
12235 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
12236
48f03606
ZD
122372009-03-04 Zdenek Dvorak <ook@ucw.cz>
12238
12239 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
12240
b505e785
RG
122412009-03-04 Richard Guenther <rguenther@suse.de>
12242
12243 PR tree-optimization/39362
12244 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
12245 that occur in abnormal PHIs should be varying.
12246
f017bf5e
ZD
122472009-03-04 Zdenek Dvorak <ook@ucw.cz>
12248
12249 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
12250 Extend comments.
12251 (simple_iv): Take loop as an argument instead of statement.
12252 * tree-scalar-evolution.h (simple_iv): Declaration changed.
12253 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
12254 to simple_iv.
12255 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
12256 Ditto.
12257 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
12258 * matrix-reorg.c (analyze_transpose): Ditto.
12259 * tree-data-ref.c (dr_analyze_innermost): Ditto.
12260 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
12261 * tree-predcom.c (ref_at_iteration): Ditto.
12262 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
12263
6a66f28e
RG
122642009-03-04 Richard Guenther <rguenther@suse.de>
12265
12266 PR tree-optimization/39358
12267 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
12268 escaped_id and callused_id.
12269 (solve_graph): Likewise.
12270
57e454ee
RG
122712009-03-04 Richard Guenther <rguenther@suse.de>
12272
12273 PR tree-optimization/39339
12274 * tree-sra.c (try_instantiate_multiple_fields): Make it
12275 no longer ICE on the above.
12276
a6fe9ed4
JM
122772009-03-03 Joseph Myers <joseph@codesourcery.com>
12278
12279 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
12280 that fits within Pmode.
12281
dc672951
SE
122822009-03-03 Steve Ellcey <sje@cup.hp.com>
12283
12284 PR middle-end/10109
12285 * tm.texi (LIBCALL_VALUE): Update description.
12286
8b9d598f
SE
122872009-03-03 Steve Ellcey <sje@cup.hp.com>
12288
12289 PR middle-end/34443
12290 * doc/extend.texi (section): Update description.
12291
13e4e36e
L
122922009-03-03 H.J. Lu <hongjiu.lu@intel.com>
12293
12294 PR middle-end/39345
12295 * tree-inline.c (remapped_type): New.
12296 (can_be_nonlocal): Call remapped_type instead of remap_type.
12297
067dd3c9
JJ
122982009-03-03 Jakub Jelinek <jakub@redhat.com>
12299
12300 PR fortran/39354
12301 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
12302 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
12303
9bd9f738
RG
123042009-03-03 Richard Guenther <rguenther@suse.de>
12305
12306 PR middle-end/39272
12307 * tree.c (tree_nonartificial_location): New function.
12308 * tree.h (tree_nonartificial_location): Declare.
12309 * builtins.c (expand_builtin_memory_chk): Provide location
12310 of the call location for artificial function pieces.
12311 (maybe_emit_chk_warning): Likewise.
12312 (maybe_emit_sprintf_chk_warning): Likewise.
12313 (maybe_emit_free_warning): Likewise.
12314 * expr.c (expand_expr_real_1): Likewise.
12315
f07049c8
JJ
123162009-03-03 Jakub Jelinek <jakub@redhat.com>
12317
12318 PR tree-optimization/39343
12319 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
12320 COMPONENT_REF t has ARRAY_TYPE.
12321
7d4fba4a
SP
123222009-03-02 Sebastian Pop <sebastian.pop@amd.com>
12323
12324 PR middle-end/39335
12325 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
12326 when the type precision of the induction variable should be
12327 larger than the type precision of nit.
12328 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
12329 * graphite.c (graphite_loop_normal_form): Same.
12330 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
12331
78168632
UB
123322009-03-02 Uros Bizjak <ubizjak@gmail.com>
12333
12334 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
12335 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 12336 numbers to describe clobbered registers.
78168632 12337 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
12338 * config/i386/mmx.md (mmx_emms): Ditto.
12339 (mmx_femms): Ditto.
78168632 12340
63553059
RS
123412009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
12342
12343 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
12344 of ABI_64.
12345
500a1f85
UW
123462009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12347
12348 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
12349 (spu_section_type_flags): New function.
12350
962aae34
UB
123512009-03-02 Uros Bizjak <ubizjak@gmail.com>
12352
12353 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
12354 reg_class_contents of FLOAT_REGS into a temporary.
12355
6dfb529c 123562009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 12357 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
12358
12359 PR tree-optimization/39318
12360 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
12361 information to the vectorized statement.
12362
6b5629db
UB
123632009-03-01 Uros Bizjak <ubizjak@gmail.com>
12364
434426d2
UB
12365 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
12366 variable. Use defined names instead of magic constants for REX SSE
12367 registers.
6b5629db 12368
14e5b285
RG
123692009-03-01 Richard Guenther <rguenther@suse.de>
12370
12371 PR tree-optimization/39331
12372 * omp-low.c (lower_send_shared_vars): Do not receive new
12373 values for the reference of DECL_BY_REFERENCE parms or results.
12374
526d73ab
JH
123752009-03-01 Jan Hubicka <jh@suse.cz>
12376
12377 PR debug/39267
12378 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
12379 BLOCK_NONLOCALIZED_VAR): New macros.
12380 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
12381 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
12382 gen_decl_die): Add origin argument. Allow generation of die with
12383 origin at hand only.
526d73ab 12384 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
12385 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
12386 of gen_*.
526d73ab
JH
12387 (gen_block_die): Fix checking for unused blocks.
12388 (process_scope_var): Break out from .... ; work with origins only.
12389 (decls_for_scope) ... here; process nonlocalized list.
12390 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
12391 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
12392 vars.
526d73ab
JH
12393 (dump_scope_block): Dump them.
12394 * tree-inline.c (remap_decls): Handle nonlocalized vars.
12395 (remap_block): Likewise.
12396 (can_be_nonlocal): New predicate.
12397 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
12398
7a9d3fe8
RW
123992009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12400
12401 * configure: Regenerate.
12402
b3cdf3cb
RW
124032009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12404
a16d1645 12405 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 12406 Reuse help texts for duplicate options which do not have any.
a16d1645 12407
1156c176
RW
12408 * gcc.c (display_help): Document --version.
12409
033505fc
RW
12410 * gcc.c (main): If print_help_list and verbose_flag, ensure
12411 driver output comes before subprocess output.
12412
4d077054
RW
12413 * optc-gen.awk: Assign all remaining fields to help string,
12414 space-separated, for multi-line help in *.opt.
12415
a072f1cf
RW
12416 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
12417 -Wno-pedantic-ms-format is for MinGW targets only.
12418
b3cdf3cb
RW
12419 * doc/options.texi (Option file format): Fix bad indentation,
12420 restoring dropped sentence.
12421
a3aadcc5
JH
124222009-02-28 Jan Hubicka <jh@suse.cz>
12423
12424 * tree-inline.c (tree_function_versioning): Output debug info.
12425
1cf5abb3
JH
124262009-02-28 Jan Hubicka <jh@suse.cz>
12427
12428 PR debug/39267
12429 * tree-inline.c (setup_one_parameter): Do not copy propagate
12430 arguments when not optimizing.
12431
c4d3f42f
L
124322009-02-28 H.J. Lu <hongjiu.lu@intel.com>
12433
12434 PR target/39327
12435 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12436 (avx_addsubv4df3): Likewise.
12437 (*avx_addsubv4sf3): Likewise.
12438 (sse3_addsubv4sf3): Likewise.
12439 (*avx_addsubv2df3): Likewise.
12440 (sse3_addsubv2df3): Likewise.
12441 (avx_unpckhps256): Correct item selectors.
12442 (avx_unpcklps256): Likewise.
12443 (avx_unpckhpd256): Likewise.
12444 (avx_unpcklpd256): Likewise.
12445
eb50f5f4
JH
124462009-02-28 Jan Hubicka <jh@suse.cz>
12447
12448 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
12449 static vars.
12450 (copy_arguments_for_versioning): If var is declared don't declare it.
12451 (tree_function_versioning): First setup substitutions and then copy
12452 args.
12453
26140130
JH
124542009-02-27 Jan Hubicka <jh@suse.cz>
12455
12456 PR debug/39267
12457 * cgraph.h (varpool_output_debug_info): Remove.
12458 * cgraphunit.c (varpool_output_debug_info): Remove.
12459 * dwarf2out.c (deferred_locations_struct): New struct
12460 (deferred_locations): New type.
12461 (deferred_locations_list): New static var.
12462 (deffer_location): New function.
12463 (gen_variable_die): Use it.
12464 (decls_for_scope): Output info on local static vars.
12465 (dwarf2out_finish): Process deferred locations.
12466 * varpool.c (varpool_output_debug_info): Remove.
12467
cff7525f
JH
124682009-02-27 Jan Hubicka <jh@suse.cz>
12469
12470 PR debug/39267
12471 * tree.h (TREE_PROTECTED): Fix comment.
12472 (BLOCK_HANDLER_BLOCK): Remove.
12473 (struct tree_block): Remove handler_block add body_block.
12474 (inlined_function_outer_scope_p): New.
12475 (is_body_block): Remove.
12476 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
12477 * dwarf2out.c (is_inlined_entry_point): Remove.
12478 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
12479 (gen_block_die): Use is_inlined_entry_point check. Remove body block
12480 code.
cff7525f
JH
12481 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
12482 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
12483 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
12484 block with multiple subblocks.
cff7525f
JH
12485 (dump_scope_block): Prettier output; dump more flags and info.
12486 (dump_scope_blocks): New.
12487 (remove_unused_locals): Use dump_scope_blocks.
12488 * tree-flow.h (dump_scope_blocks): Declare.
12489 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
12490 * stmt.c (is_body_block): Remove.
12491 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
12492 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
12493
c20993b9
SP
124942009-02-27 Sebastian Pop <sebastian.pop@amd.com>
12495
12496 PR middle-end/39308
2ba9daa7 12497 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
12498 number_of_iterations_exit from a gcc_assert.
12499
e3cba5e5
AK
125002009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12501
60839f5d 12502 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
12503 jumps if COND is NULL.
12504 (find_cond_jump): New function.
12505 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 12506 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 12507
9dadeeb8
UB
125082009-02-26 Uros Bizjak <ubizjak@gmail.com>
12509
12510 * config/alpha/alpha.h (alpha_expand_mov): Return false if
12511 force_const_mem returns NULL_RTX.
12512
625d3251
EB
125132009-02-26 Jan Hubicka <jh@suse.cz>
12514
12515 PR debug/39267
12516 * cgraph.h (varpool_output_debug_info): Remove.
12517 * cgraphunit.c (varpool_output_debug_info): Remove.
12518 * dwarf2out.c (deferred_locations_struct): New struct
12519 (deferred_locations): New type.
12520 (deferred_locations_list): New static var.
12521 (deffer_location): New function.
12522 (gen_variable_die): Use it.
12523 (decls_for_scope): Output info on local static vars.
12524 (dwarf2out_finish): Process deferred locations.
12525 * varpool.c (varpool_output_debug_info): Remove.
12526
38432148 125272009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
12528
12529 PR rtl-optimization/39241
12530 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
12531 to subreg_offset_representable_p.
12532
62d049cf
PB
125332009-02-25 Paolo Bonzini <bonzini@gnu.org>
12534
12535 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
12536 execute function prototype. Get f and nregs from max_reg_num
12537 and get_insns. Remove the first backward pass as it's dead,
12538 guard the forward pass by flag_expensive_optimizations.
12539 (rest_of_handle_regmove): Delete.
12540 (pass_regmove): Replace it with regmove_optimize.
12541
f618d33e
MJ
125422009-02-25 Martin Jambor <mjambor@suse.cz>
12543
12544 PR tree-optimization/39259
12545 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 12546 calls_alloca function flags.
f618d33e
MJ
12547 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
12548 calls are detected.
12549
c8a05f7c
PB
125502009-02-25 Paolo Bonzini <bonzini@gnu.org>
12551
12552 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
12553 flags_set_1_rtx, flags_set_1_set): Delete.
12554 (regmove_optimize): Do not call mark_flags_life_zones.
12555
6d2538f5
JB
125562009-02-24 Julian Brown <julian@codesourcery.com>
12557
12558 PR target/35965
12559 * config/arm/arm.c (require_pic_register): Only set
12560 cfun->machine->pic_reg once per function.
12561
a2fa6772
SL
125622009-02-24 Sandra Loosemore <sandra@codesourcery.com>
12563
12564 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 12565 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 12566
5472de36
SE
125672009-02-24 Steve Ellcey <sje@cup.hp.com>
12568
12569 PR target/33785
12570 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
12571
844216f3
RG
125722009-02-24 Richard Guenther <rguenther@suse.de>
12573
12574 PR debug/39285
12575 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
12576
71adbef3 125772009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 12578 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
12579
12580 PR tree-optimization/39233
12581 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
12582 from converting them to a generic type.
12583
f1a558e0
SP
125842009-02-23 Sebastian Pop <sebastian.pop@amd.com>
12585
12586 PR tree-optimization/39260
12587 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
12588 contains a condition with a real type.
12589 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
12590
d8028f2c
JM
125912009-02-23 Jason Merrill <jason@redhat.com>
12592
12593 PR c++/38880
12594 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
12595 narrowing_initializer_constant_valid_p.
2ba9daa7 12596 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
12597 null_pointer_node for adding a pointer to itself.
12598
9283b513
JH
125992009-02-23 Jan Hubicka <jh@suse.cz>
12600
12601 PR c/12245
9dadeeb8
UB
12602 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
12603 resizing.
9283b513 12604
61e04322
JH
126052009-02-23 Jan Hubicka <jh@suse.cz>
12606
9dadeeb8
UB
12607 PR tree-optimization/37709
12608 * tree.c (block_ultimate_origin): Move here from dwarf2out.
12609 * tree.h (block_ultimate_origin): Declare.
12610 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
12611 * tree-ssa-live.c (remove_unused_scope_block_p):
12612 Eliminate blocks containig no instructions nor live variables nor
12613 nested blocks.
12614 (dump_scope_block): New function.
12615 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 12616 enable dumping at TDF_DETAILS.
61e04322 12617
38432148 126182009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
12619
12620 * config/i386/i386.c (classify_argument): Don't allow COImode
12621 and OImode.
12622 (function_arg_advance_32): Don't allow OImode.
12623 (function_arg_32): Likewise.
12624 (function_value_32): Likewise.
12625 (return_in_memory_32): Likewise.
12626 (function_arg_64): Remove OImode comment.
12627
38432148 126282009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
12629
12630 PR target/39261
12631 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
12632 ix86_expand_vector_set for V4DImode in 64bit mode only.
12633 (ix86_expand_vector_init_one_var): Likewise.
12634
dcd739a6
SP
126352009-02-21 Sebastian Pop <sebastian.pop@amd.com>
12636
12637 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
12638
6c3b938d
RS
126392009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12640
8e361f23 12641 PR bootstrap/39257
6c3b938d
RS
12642 * loop-iv.c: Revert last change.
12643 * emit-rtl.c: Likewise.
12644
38432148 126452009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
12646
12647 PR target/39256
12648 * config/i386/i386.c (type_natural_mode): Remove an extra
12649 space in the warning message.
12650 (function_value_32): Handle 32-byte vector modes.
12651 (return_in_memory_32): Likewise.
12652
2ec62529
RS
126532009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12654
12655 * loop-iv.c (truncate_value): New function.
12656 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
12657 of lowpart_subreg.
12658 (lowpart_subreg): Move to...
12659 * emit-rtl.c: ...here.
12660
ecb8c3cc 126612009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 12662
ecb8c3cc
DS
12663 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
12664 accidental and undocumented change at revision 140860.
12665
ae46a823
JM
126662009-02-21 Joseph Myers <joseph@codesourcery.com>
12667
12668 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
12669 take gimple_seq * arguments.
12670 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
12671 types_compatible_p langhook.
12672
07d8efe3 126732009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 12674 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
12675
12676 * config/arm/arm.c (arm_builtin_va_list): New function.
12677 (arm_expand_builtin_va_start): Likewise.
12678 (arm_gimplify_va_arg_expr): Likewise.
12679 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
12680 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
12681 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
12682 (va_list_type): New variable.
12683 (arm_mangle_type): Mangle va_list_type appropriately.
12684
b1fb9f56
JJ
126852009-02-20 Jakub Jelinek <jakub@redhat.com>
12686
12687 PR middle-end/39157
12688 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
12689 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
12690 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
12691 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
12692 parameter to 1000 for -O1 by default.
12693 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
12694 parameter.
12695 * loop-invariant.c: Include params.h.
12696 (move_loop_invariants): Don't call move_single_loop_invariants on
12697 very large loops.
12698
5bc0807c
JM
126992009-02-20 Jaka Mocnik <jaka@xlab.si>
12700
12701 * calls.c (emit_library_call_value_1): Use slot_offset instead of
12702 offset when calculating bounds for indexing stack_usage_map. Fixes
12703 a buffer overflow with certain target setups.
12704
c69cd1f5
JJ
127052009-02-20 Jakub Jelinek <jakub@redhat.com>
12706
12707 PR target/39240
12708 * calls.c (expand_call): Clear try_tail_call if caller and callee
12709 disagree in promotion of function return value.
12710
09812622
JJ
127112009-02-19 Jakub Jelinek <jakub@redhat.com>
12712
12713 PR target/39175
12714 * c-common.c (c_determine_visibility): If visibility changed and
12715 DECL_RTL has been already set, call make_decl_rtl to update symbol
12716 flags.
12717
68017cb4
L
127182009-02-19 H.J. Lu <hongjiu.lu@intel.com>
12719
12720 PR c++/39188
12721 * varasm.c (assemble_variable): Don't check DECL_NAME when
12722 globalizing a variable.
12723
ab4194da
JM
127242009-02-19 Joseph Myers <joseph@codesourcery.com>
12725
12726 PR c/38483
12727 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
12728 expression before any __builtin_trap call.
12729 * c-typeck.c (build_function_call): Convert and check function
12730 arguments before generating a call to a trap. Evaluate the
12731 function arguments before the trap.
12732
6b67572e
UB
127332009-02-19 Uros Bizjak <ubizjak@gmail.com>
12734
12735 PR target/39228
12736 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
12737 (UNSPEC_FXAM_MEM): New unspec.
12738 (fxam<mode>2_i387_with_temp): New insn and split pattern.
12739 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
12740 memory using fxam<mode>2_i387_with_temp to remove excess precision.
12741
9e39dba6
RG
127422009-02-19 Richard Guenther <rguenther@suse.de>
12743
12744 PR tree-optimization/39207
12745 PR tree-optimization/39074
12746 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
12747 storedanything_tree): New.
12748 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 12749 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
12750 (build_succ_graph): Add edges from STOREDANYTHING to all
12751 non-direct nodes.
12752 (init_base_vars): Initialize STOREDANYTHING.
12753 (compute_points_to_sets): Free substitution info after
12754 building the succ graph.
12755 (ipa_pta_execute): Likewise.
12756
12757 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
12758 field.
12759 (do_ds_constraint): Do not add to special var or non-pointer
12760 field solutions.
12761 (type_could_have_pointers): Split out from ...
12762 (could_have_pointers): ... here. For arrays use the element type.
12763 (create_variable_info_for): Initialize may_have_pointers.
12764 (new_var_info): Likewise.
12765 (handle_lhs_call): Make the HEAP variable unknown-sized.
12766 (intra_create_variable_infos): Use a type with pointers for
12767 PARM_NOALIAS, make it unknown-sized.
12768
fd7b2603
L
127692009-02-18 H.J. Lu <hongjiu.lu@intel.com>
12770
12771 PR target/39224
6b67572e 12772 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 12773
98b80692
JM
127742009-02-18 Jason Merrill <jason@redhat.com>
12775
12776 PR target/39179
12777 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
12778 value if DECL_EXTERNAL.
12779 * tree-sra.c (sra_walk_gimple_assign): Likewise.
12780 * target.h (gcc_target::binds_local_p): Clarify "module".
12781 * tree.h (TREE_PUBLIC): Clarify "module".
12782
0705d3f4
L
127832009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
12784
12785 PR target/38891
12786 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
12787 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
12788
bce08d50
L
127892009-02-17 H.J. Lu <hongjiu.lu@intel.com>
12790
12791 PR target/39082
12792 * c.opt (Wabi): Support C and ObjC.
12793 (Wpsabi): New.
12794
12795 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
12796
12797 * config/i386/i386.c (classify_argument): Warn once about the ABI
12798 change when passing union with long double.
12799
12800 * doc/invoke.texi: Update -Wabi for warning psABI changes.
12801
5600f233
JM
128022009-02-18 Joseph Myers <joseph@codesourcery.com>
12803
12804 PR c/35447
12805 * c-parser.c (c_parser_compound_statement): Always enter and leave
12806 a scope.
12807
8cd01fe6
JDA
128082009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12809
12810 PR target/34587
12811 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
12812
418df9d7
JJ
128132009-02-18 Jakub Jelinek <jakub@redhat.com>
12814
12815 PR tree-optimization/36922
12816 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
12817 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
12818 Likewise.
12819
082d2ebb
RS
128202009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12821
12822 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
12823 to 0 for EABI64.
12824
17de576c
RS
128252009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12826
12827 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
12828
6d8d5435
RS
128292009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12830
12831 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
12832 tree sharing.
12833
e69ff910
RB
128342009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
12835 Richard Sandiford <rdsandiford@googlemail.com>
12836
12837 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
12838 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
12839 (loongson_biadd): ...this.
12840
6b24ee26
RG
128412009-02-17 Richard Guenther <rguenther@suse.de>
12842
12843 PR tree-optimization/39202
12844 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
12845 a var make sure to follow existing collapses.
12846
91ab2c86
RG
128472009-02-17 Richard Guenther <rguenther@suse.de>
12848
12849 PR middle-end/39214
12850 * langhooks.c (lhd_print_error_function): Check for NULL block.
12851
73a63870
RG
128522009-02-17 Richard Guenther <rguenther@suse.de>
12853
12854 PR tree-optimization/39204
12855 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
12856 of the PHI arg.
12857
0e08f686
UB
128582009-02-17 Uros Bizjak <ubizjak@gmail.com>
12859
12860 * config/soft-fp/double.h: Update from glibc CVS.
12861
a60b7ddb
RG
128622009-02-17 Richard Guenther <rguenther@suse.de>
12863
12864 PR tree-optimization/39207
12865 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
12866 strict-aliasing warnings for pointers pointing to NULL.
12867
a47e20fd
JM
128682009-02-16 Joseph Myers <joseph@codesourcery.com>
12869
12870 PR c/35446
12871 * c-parser.c (c_parser_braced_init): Call pop_init_level when
12872 skipping until next close brace.
12873
50aab7dc
L
128742009-02-16 H.J. Lu <hongjiu.lu@intel.com>
12875
12876 PR target/37049
12877 * config/i386/i386.c (ix86_expand_push): Set memory alignment
12878 to function argument boundary.
12879
68e53db0
HS
128802009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
12881
12882 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
12883 in the lea_add. Reload eventually constraints it properly.
0d50d55a 12884 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
12885 "b", since it is not needed anymore.
12886
09e361bb
JJ
128872009-02-16 Jakub Jelinek <jakub@redhat.com>
12888
12889 * gthr-dce.h: Uglify function parameter and local variable names.
12890 * gthr-gnat.h: Likewise.
12891 * gthr-mipssde.h: Likewise.
12892 * gthr-nks.h: Likewise.
12893 * gthr-posix95.h: Likewise.
12894 * gthr-posix.h: Likewise.
12895 * gthr-rtems.h: Likewise.
12896 * gthr-single.h: Likewise.
12897 * gthr-solaris.h: Likewise.
12898 * gthr-tpf.h: Likewise.
12899 * gthr-vxworks.h: Likewise.
12900 * gthr-win32.h: Likewise.
12901
47f5a48f
L
129022009-02-15 H.J. Lu <hongjiu.lu@intel.com>
12903
12904 PR target/39196
12905 * config/i386/i386.md: Restrict the new peephole2 to move
12906 between MMX/SSE registers.
12907
68c9ab45
RG
129082009-02-15 Richard Guenther <rguenther@suse.de>
12909
12910 Revert
12911 2009-02-13 Richard Guenther <rguenther@suse.de>
12912
12913 * configure.ac: Enable LFS.
12914 * configure: Re-generate.
12915 * config.in: Likewise.
12916
d7815554
UW
129172009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12918
12919 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
12920 spu_srqwbyte, spu_srqwbytebc): Define.
12921 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
12922 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
12923 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
12924 "shrqby_<mode>"): New insn-and-split patterns.
12925 * config/spu/spu.c (expand_builtin_args): Determine and return
12926 number of operands using spu_builtin_description data.
12927 (spu_expand_builtin_1): Use it.
12928
c208436c
SE
129292009-02-13 Steve Ellcey <sje@cup.hp.com>
12930
12931 PR target/38056
12932 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12933 TARGET_CONST_GP.
12934
c2e7ba7e
L
129352009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12936
12937 PR target/39149
12938 * config/i386/i386.c (override_options): Correct warning
6c6094f1 12939 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 12940
72f4e3a7
L
129412009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12942
12943 PR target/39152
12944 * config/i386/i386.md: Restrict the new peephole2 to move
12945 between the general purpose registers.
12946
53f648e2
L
129472009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12948
12949 PR target/39162
12950 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 12951 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
12952 (function_arg_advance): Updated.
12953 (function_arg): Likewise.
12954 (ix86_function_value): Likewise.
12955 (ix86_return_in_memory): Likewise.
12956 (ix86_sol10_return_in_memory): Likewise.
12957 (ix86_gimplify_va_arg): Likewise.
12958 (function_arg_32): Don't warn ABX ABI change here.
12959 (function_arg_64): Likewise.
12960
38432148 129612009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
12962
12963 * loop-iv.c (implies_p): In the final case, test that operands 0
12964 of the two comparisons match.
12965
dd2139e7
BS
12966 * config/bfin/bfin.c (find_prev_insn_start): New function.
12967 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12968 (find_next_insn_start): Move.
12969
601b3e1a
RG
129702009-02-13 Richard Guenther <rguenther@suse.de>
12971
12972 * configure.ac: Enable LFS.
12973 * configure: Re-generate.
12974 * config.in: Likewise.
12975
f007042e
JM
129762009-02-13 Joseph Myers <joseph@codesourcery.com>
12977
12978 PR c/35444
12979 * c-parser.c (c_parser_parms_list_declarator): Discard pending
12980 sizes on syntax error after some arguments have been parsed.
12981
3f238e8b
JJ
129822009-02-12 Jakub Jelinek <jakub@redhat.com>
12983
12984 * doc/invoke.texi (-fira): Remove.
12985
328e13b7
L
129862009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12987
12988 * caller-save.c: Replace regclass.c with reginfo.c in comments.
12989 * recog.c: Likewise.
12990 * rtl.h: Likewise.
12991
c252db20
L
129922009-02-12 Uros Bizjak <ubizjak@gmail.com>
12993
12994 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12995 (umul_ppmm): Likewise.
12996 (count_leading_zeros): Likewise.
12997 (count_trailing_zeros): Likewise.
12998 (UMUL_TIME): Likewise.
12999
130002009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13001
ba181049
UB
13002 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
13003 soft-fp/t-softfp to tmake_file.
c252db20
L
13004
13005 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
13006 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
13007 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
13008 IA64_BUILTIN_INFQ]: New.
c252db20
L
13009 (ia64_init_builtins): Initialize __builtin_infq,
13010 __builtin_fabsq and __builtin_copysignq if not HPUX.
13011 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
13012 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
13013
13014 * config/ia64/lib1funcs.asm (__divtf3): Define only if
13015 SHARED is defined.
13016 (__fixtfti): Likewise.
13017 (__fixunstfti): Likewise.
13018 (__floattitf): Likewise.
13019
13020 * config/ia64/libgcc-glibc.ver: New.
13021 * config/ia64/t-fprules-softfp: Likewise.
13022 * config/ia64/sfp-machine.h: Likewise.
13023
13024 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
13025 (LIBGCC2_TF_CEXT): Likewise.
13026 (TF_SIZE): Likewise.
13027 (TARGET_INIT_LIBFUNCS): Likewise.
13028
ba181049 13029 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 13030 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 13031
f13eae6a
L
130322009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13033
13034 * config/i386/i386.c (construct_container): Rewrite processing
13035 BLKmode with X86_64_SSE_CLASS.
13036
12019aec
L
130372009-02-12 Paolo Bonzini <bonzini@gnu.org>
13038
13039 PR target/39152
13040 * config/i386/i386.md: Replace simplify_replace_rtx with
13041 replace_rtx in the new peephole2.
13042
28c11eb3
NS
130432009-02-12 Nathan Sidwell <nathan@codesourcery.com>
13044
13045 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
13046 loop unrolling do not happen at -O2.
13047
c7b94907
MM
130482009-02-12 Michael Matz <matz@suse.de>
13049
13050 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
13051
61e98967
JJ
130522009-02-12 Jakub Jelinek <jakub@redhat.com>
13053
13054 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
13055 for -g3.
13056
a2a237b5
BE
130572009-02-12 Ben Elliston <bje@au.ibm.com>
13058
13059 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
13060 patterns when updating the back chain. Missed in the 2009-02-10
13061 change.
13062
853eda8d
JJ
130632009-02-11 Janis Johnson <janis187@us.ibm.com>
13064
13065 * doc/extend.texi (Decimal Floating Types): Update identifier of
13066 draft TR and list of missing support.
13067
3ad6b266
JJ
130682009-02-11 Jakub Jelinek <jakub@redhat.com>
13069
13070 PR middle-end/39154
13071 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
13072 bit to variable length decl's flags, add it also to its
13073 pointer replacement variable.
13074
b058b753
UB
130752009-02-11 Uros Bizjak <ubizjak@gmail.com>
13076 Jakub Jelinek <jakub@redhat.com>
13077
13078 PR target/39118
13079 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
13080 (memory_blockage): New expander.
13081 (*memory_blockage): New insn pattern.
13082 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
13083 instead of general blockage at the end of function prologue when
13084 frame pointer is used to access red zone area. Do not emit blockage
13085 when profiling, it is emitted in generic code.
13086 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
13087 function epilogue when frame pointer is used to access red zone area.
13088
bab64f23
PB
130892009-02-11 Paolo Bonzini <bonzini@gnu.org>
13090
0ce6dcfa 13091 PR target/38824
bab64f23
PB
13092 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
13093 by arithmetic with memory operands.
13094 * config/i386/predicates.md (commutative_operator): New.
13095
8fd94bda
JJ
130962009-02-10 Janis Johnson <janis187@us.ibm.com>
13097
13098 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
13099 bulleted lists.
13100
794511d2
EB
131012009-02-10 Eric Botcazou <ebotcazou@adacore.com>
13102
13103 * alias.h (record_alias_subset): Declare.
13104 * alias.c (record_alias_subset): Make global.
13105
6da7fc87
NC
131062009-02-10 Nick Clifton <nickc@redhat.com>
13107
13108 * tree-parloops.c: Change license to GPLv3.
13109 * ipa-struct-reorg.c: Change license to GPLv3.
13110 * ipa-struct-reorg.h: Change license to GPLv3.
13111
a03813c8
SE
131122009-02-10 Steve Ellcey <sje@cup.hp.com>
13113
13114 PR c/39084
13115 * c-decl.c (start_struct): Return NULL on error.
13116
fc3103e7
JJ
131172009-02-10 Jakub Jelinek <jakub@redhat.com>
13118
9b43d37b
JJ
13119 PR middle-end/39124
13120 * cfgloopmanip.c (remove_path): Call remove_bbs after
13121 cancel_loop_tree, not before it.
13122
fc3103e7 13123 PR target/39139
b058b753 13124 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
13125 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
13126 VAR_DECLs were seen.
13127 * tree-ssa-live.c (remove_unused_locals): Recompute
13128 cfun->has_local_explicit_reg_vars.
13129 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
13130 copies or clearings if cfun->has_local_explicit_reg_vars.
13131
dbf9ee15
UB
131322009-02-10 Uros Bizjak <ubizjak@gmail.com>
13133
13134 PR target/39118
13135 * config/i386/i386.c (expand_prologue): Emit blockage at the end
13136 of function prologue when frame pointer is used to access
13137 red zone area.
13138
bdec4dc7
RG
131392009-02-10 Richard Guenther <rguenther@suse.de>
13140
13141 PR middle-end/39127
13142 * gimplify.c (gimple_regimplify_operands): Always look if
13143 we need to create a temporary.
13144
7cae94fc
RG
131452009-02-10 Richard Guenther <rguenther@suse.de>
13146
13147 PR tree-optimization/39132
13148 * tree-loop-distribution.c (todo): New global var.
13149 (generate_memset_zero): Trigger TODO_rebuild_alias.
13150 (tree_loop_distribution): Return todo.
13151
a8800687
L
131522009-02-10 H.J. Lu <hongjiu.lu@intel.com>
13153
13154 PR target/39119
13155 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
13156 (x86_64_reg_class_name): Removed.
13157 (classify_argument): Return 0 if bytes > 32. Return 0 if the
13158 first one isn't X86_64_SSE_CLASS or any other ones aren't
13159 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
13160 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
13161 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
13162 and 3 X86_64_SSEUP_CLASS.
13163 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
13164 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
13165
d4bacef0
BE
131662009-02-10 Ben Elliston <bje@au.ibm.com>
13167
13168 * config/rs6000/rs6000.md (allocate_stack): Always use an update
13169 form instruction to update the stack back chain word, even if the
13170 user has disabled the generation of update instructions.
13171 (movdi_<mode>_update_stack): New.
13172 (movsi_update_stack): Likewise.
13173 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
13174 always use an update form instruction to update the stack back
13175 chain word.
13176
01d7d2f3
SP
131772009-02-09 Sebastian Pop <sebastian.pop@amd.com>
13178
13179 PR middle-end/38953
b058b753
UB
13180 * graphite.c (if_region_set_false_region): After moving a region in
13181 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
13182 (gloog): Remove wrong fix for PR38953.
13183
e41e2ab4
UW
131842009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13185
13186 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
13187 generation due to implicit sign extension.
13188
4bb07c5d
EB
131892009-02-09 Eric Botcazou <ebotcazou@adacore.com>
13190
13191 PR middle-end/38981
13192 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
13193 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
13194
f060a261
RG
131952009-02-09 Richard Guenther <rguenther@suse.de>
13196
13197 PR middle-end/35202
13198 * convert.c (convert_to_real): Disable (float)fn((double)x)
13199 to fnf(x) conversion if errno differences may occur and
13200 -fmath-errno is set.
13201
5a7e237c
AS
132022009-02-07 Anatoly Sokolov <aesok@post.ru>
13203
13204 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
13205 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13206 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13207
feab5a67
JM
132082009-02-06 Joseph Myers <joseph@codesourcery.com>
13209
13210 PR c/35434
13211 * c-common.c (handle_alias_attribute): Disallow attribute for
13212 anything not a FUNCTION_DECL or VAR_DECL.
13213
90ef2296
JJ
132142009-02-06 Janis Johnson <janis187@us.ibm.com>
13215
13216 PR c/39035
13217 * real.c (do_compare): Special-case compare of zero against
13218 decimal float value.
13219
1de2c900
JM
132202009-02-06 Joseph Myers <joseph@codesourcery.com>
13221
13222 PR c/36432
13223 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
13224 as indicating flexible array members unless the field itself is
13225 being declarared as the incomplete array.
13226
e901811a
JH
132272009-02-06 Jan Hubicka <jh@suse.cz>
13228
13229 PR tree-optimization/38844
13230 * ipa-inline.c (try_inline): Stop inlining recursion when edge
13231 is already inlined.
13232
3cfa762b
RG
132332009-02-06 Richard Guenther <rguenther@suse.de>
13234
13235 PR middle-end/38977
13236 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
13237 fork because we may expand it as __gcov_fork.
13238
8506528c
NC
132392009-02-06 Nick Clifton <nickc@redhat.com>
13240
dbf9ee15 13241 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 13242
85169114
PB
132432009-02-06 Paolo Bonzini <bonzini@gnu.org>
13244
13245 PR tree-optimization/35659
13246 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
13247 vn_phi_eq): Shortcut if hashcode does not match.
13248 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
13249 NULL operands.
13250 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
13251 and avoid iterative_hash_expr.
13252 (FOR_EACH_VALUE_ID_IN_SET): New.
13253 (value_id_compare): Remove.
13254 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
13255 sort expressions by value id.
13256
6d39673d
KK
132572009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
13258
13259 PR target/38991
13260 * config/sh/predicates.md (general_movsrc_operand): Don't check
13261 the subreg of system registers here.
13262
e6e1c050
JJ
132632009-02-05 Jakub Jelinek <jakub@redhat.com>
13264
13265 PR c++/39106
13266 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
13267 on the copied decl.
13268
65a74b5d
PB
132692009-02-05 Paolo Bonzini <bonzini@gnu.org>
13270
13271 PR rtl-optimization/39110
13272 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
13273 addresses, not aligned ones.
13274
08e14b2a
DB
132752009-02-05 Daniel Berlin <dberlin@dberlin.org>
13276 Richard Guenther <rguenther@suse.de>
13277
13278 PR tree-optimization/39100
13279 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
13280 comment says and add edges.
13281
5006381c
JM
132822009-02-05 Joseph Myers <joseph@codesourcery.com>
13283
13284 PR c/35435
13285 * c-common.c (handle_tls_model_attribute): Ignore attribute for
13286 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
13287
2ba9daa7 132882009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
13289
13290 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
13291 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
13292 register_bb_in_sese, new_sese, free_sese): Moved.
13293 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
13294 outermost_loop_in_scop, build_scop_iteration_domain,
13295 expand_scalar_variables_ssa_name, get_vdef_before_scop,
13296 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
13297 Use loop_in_sese_p instead of loop_in_scop_p.
13298 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
13299 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
13300 (scopdet_basic_block_info): Fix bug in scop detection.
13301 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
13302 eq_loop_to_cloog_loop): Remove.
13303 (nb_loops_around_loop_in_scop, nb_loop
13304 ref_nb_loops): Moved here...
13305 * graphite.h (ref_nb_loops): ... from here.
13306 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
13307 (loop_domain_dim, loop_iteration_vector_dim): Remove.
13308 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
13309 * testsuite/gcc.dg/graphite/scop-19.c: New
13310
48e8382e
PB
133112009-02-04 Paolo Bonzini <bonzini@gnu.org>
13312 Hans-Peter Nilsson <hp@axis.com>
13313
13314 PR rtl-optimization/37889
13315 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
13316 Move offset handling from PLUS to before the switch. Use new
13317 arguments when considering SYMBOL_REFs too.
13318 (rtx_addr_can_trap_p): Pass dummy offset and size.
13319 (enum may_trap_p_flags): Remove.
13320 (may_trap_p_1): Pass size from MEM_SIZE.
13321
13322 PR rtl-optimization/38921
13323 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
13324 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
13325 * rtlanal.c (may_trap_after_code_motion_p): Delete.
13326 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
13327
69349ea5
L
133282009-02-04 H.J. Lu <hongjiu.lu@intel.com>
13329
13330 AVX Programming Reference (January, 2009)
13331 * config/i386/sse.md (*vpclmulqdq): New.
13332
b545e411
JJ
133332009-02-04 Jakub Jelinek <jakub@redhat.com>
13334
13335 PR tree-optimization/38977
13336 PR gcov-profile/38292
bf9b2cc9 13337 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 13338
5b43bf05
HS
133392009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
13340
13341 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
13342 non-indexable addresses even before reload.
13343
062c4bb3
JM
133442009-02-03 Joseph Myers <joseph@codesourcery.com>
13345
13346 PR c/29129
13347 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
13348 as having variable size. Do not give an error for unnamed
13349 parameters with [*] declarators. Give a warning for type names
13350 with [*] declarators and mark them as variable size.
13351 * c-parser.c (c_parser_sizeof_expression): Do not give an error
13352 for sizeof applied to [*] type names.
13353
6175f578
AP
133542009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
13355
13356 PR C++/36607
13357 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
13358
d4f4bc84
JJ
133592009-02-03 Jakub Jelinek <jakub@redhat.com>
13360
13361 * gcc.c (process_command): Update copyright notice dates.
13362 * gcov.c (print_version): Likewise.
13363 * gcov-dump.c (print_version): Likewise.
13364 * mips-tfile.c (main): Likewise.
13365 * mips-tdump.c (main): Likewise.
13366
f6294de7
JM
133672009-02-03 Joseph Myers <joseph@codesourcery.com>
13368
13369 PR c/35433
13370 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
13371 for composite type involving a zero-length array type.
13372
754ccf7c
JJ
133732009-02-03 Jakub Jelinek <jakub@redhat.com>
13374
70f16287
JJ
13375 PR target/35318
13376 * function.c (match_asm_constraints_1): Skip over
13377 initial optional % in the constraint.
13378
754ccf7c
JJ
13379 PR inline-asm/39059
13380 * c-parser.c (c_parser_postfix_expression): If fixed point is not
13381 supported, don't accept FIXED_CSTs.
13382 * c-decl.c (finish_declspecs): Error if fixed point is not supported
13383 and _Sat is used without _Fract/_Accum. Set specs->type to
13384 integer_type_node for cts_fract/cts_accum if fixed point is not
13385 supported.
13386
965fdadf
CM
133872009-02-02 Catherine Moore <clm@codesourcery.com>
13388
dbf9ee15 13389 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 13390
2e8a796f
RS
133912009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13392
13393 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
13394 (ABI_HAS_64BIT_SYMBOLS): Use it.
13395 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
13396
e0079468
PB
133972009-02-02 Paul Brook <paul@codesourcery.com>
13398
13399 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
13400
eca72963
JJ
134012009-02-02 Jakub Jelinek <jakub@redhat.com>
13402
13403 PR inline-asm/39058
13404 * recog.h (asm_operand_ok): Add constraints argument.
13405 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
13406 recurse on matching constraint.
13407 (check_asm_operands): Pass constraints as 3rd argument to
13408 asm_operand_ok. Don't look up matching constraint here.
13409 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
13410 to asm_operand_ok.
13411
b5bde9ff
BE
134122009-02-02 Ben Elliston <bje@au.ibm.com>
13413
13414 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
13415 TARGET_NARROW_VOLATILE_BITFIELD macro names.
13416
30f3e427
JDA
134172009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13418
be7659ba
JDA
13419 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
13420 information. Remove some obsolete information. Reorganize.
13421
30f3e427
JDA
13422 * config/pa/fptr.c: Revert license to GPL 2.
13423 * config/pa/milli64.S: Likewise.
13424
3cbfaf98
DK
134252009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13426
13427 PR target/38904
13428 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
13429 LIBRARY name in, instead of hard-coding it.
13430 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
13431 extra target make frag to tmake_files according to EH model.
13432 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13433 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
13434 frags that define makefile variable EH_MODEL appropriately.
13435 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
13436 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
13437 to "-sjlj" according to type of EH configured.
13438 (LIBGCC_SONAME): Concatenate it to shared library base name.
13439 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
13440 to "_sjlj" according to type of EH configured.
13441 (LIBGCC_SONAME): Concatenate it to shared library base name.
13442 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
13443 (SHLIB_LINK): Add missing semicolon to if-else construct.
13444 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13445 string value of "pe_dll" command-line option.
13446 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
13447 (SHLIB_SONAME): Use it when overriding t-cygming default.
13448 (SHLIB_IMPLIB): Override t-cygming default.
13449 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13450 string value of "pe_dll" command-line option.
13451
8d0b6068
DK
134522009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13453
13454 PR target/38952
13455 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 13456 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 13457
14c28276
RG
134582009-01-31 Richard Guenther <rguenther@suse.de>
13459
13460 PR tree-optimization/38937
13461 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
13462 computing the transitive closure.
13463
5f4d82c2
RG
134642009-01-30 Richard Guenther <rguenther@suse.de>
13465
13466 PR tree-optimization/39041
13467 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
13468 Propagate variable indices only if the types match for this stmt.
13469
d0728ae0
JJ
134702009-01-30 Jakub Jelinek <jakub@redhat.com>
13471
13472 PR target/39013
13473 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
13474 inline but never defined.
13475
6b67572e 134762009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
13477
13478 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
13479 (*insv_h_di_reg_extimm): New insn.
13480 (*insv_l<mode>_reg_extimm): New insn.
13481
134822009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
13483
13484 * config/picochip/picochip.c (flag_conserve_stack): set
13485 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
13486 fconserve-stack. Reduce call-overhead used by inliner.
13487
9fec758d 134882009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
13489
13490 PR/38157
13491 * common.opt (flag_conserve_stack): Initialised to zero.
13492
7f1c539c
KT
134932009-01-30 Kai Tietz <kai.tietz@onevision.com>
13494
13495 PR/39002
13496 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
13497 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
13498 method.
13499
3631be48
L
135002009-01-29 H.J. Lu <hongjiu.lu@intel.com>
13501
13502 * ira-color.c (allocno_reload_assign): Update comments.
13503 * regmove.c (regmove_optimize): Likewise.
13504
13505 * ra.h: Removed.
13506
416ac4d4
RM
135072009-01-29 Robert Millan <rmh@aybabtu.com>
13508
60839f5d
EB
13509 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
13510 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 13511 `MD_UNWIND_SUPPORT'.
60839f5d 13512 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 13513
d5e54bc1
KH
135142009-01-29 Kazu Hirata <kazu@codesourcery.com>
13515
13516 PR tree-optimization/39007
13517 * tree-loop-distribution.c (generate_builtin): Use
13518 recompute_dominator to compute the immediate dominator of the
13519 basic block just after the loop.
13520
38432148 135212009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
13522
13523 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
13524 (ASM_OUTPUT_DWARF_PCREL): Define.
13525
38432148 135262009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
13527
13528 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
13529 * doc/passes.texi: Remove entries about regclass, local-alloc, and
13530 global. Modify entries about regmove and IRA.
13531
13532 * ra-conflict.c: Remove the file.
13533
13534 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
13535
13536 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
13537 (pass_regclass_init): Rename to pass_reginfo_init.
13538
13539 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
13540
13541 * toplev.h (flag_ira): Remove.
13542
13543 * caller-save.c (setup_save_areas): Remove flag_ira.
13544
bf9b2cc9 13545 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
13546
13547 * global.c: Remove the file.
13548
ba20e309 13549 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
13550
13551 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
13552
13553 * regmove.c: Modify file description.
13554 (find_use_as_address, try_auto_increment): Define them only if
13555 AUTO_INC_DEC is defined.
13556 (replacement_quality, replace_in_call_usage, fixup_match_1,
13557 stable_and_no_regs_but_for_p): Remove.
13558 (reg_set_in_bb): Make it static.
13559 (regmove_optimize): Remove flag_ira and code which worked for
13560 !flag_ira.
13561
13562 * local-alloc.c: Remove the file.
13563
13564 * common.opt (fira): Remove.
13565
13566 * ira.c: Include except.h.
13567 (eliminable_regset): Move from global.c.
13568 (mark_elimination): Ditto. Remove flag_ira.
13569 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
13570 equiv_mem_modified, validate_equiv_mem_from_store,
13571 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
13572 contains_replace_regs, memref_referenced_p, memref_used_between_p,
13573 no_equiv, recorded_label_ref): Move from local-alloc.c.
13574 (update_equiv_regs): Ditto. Make it static.
13575 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 13576 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
13577 (build_insn_chain): Ditto. Make it static.
13578 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
13579 Rename to init_live_subregs.
13580 (gate_ira): Remove flag_ira.
13581
13582 * regclass.c: Rename reginfo.c. Change file description.
13583 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 13584 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
13585 (init_reg_sets_1): Remove code for evaluation of
13586 reg_class_superclasses and losing_caller_save_reg_set.
13587 (init_regs): Remove init_reg_autoinc.
13588 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
13589 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 13590 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
13591 (pass_regclass_init): Rename to pass_reginfo_init. Modify
13592 corresponding entries.
13593 (dump_regclass, record_operand_costs, scan_one_insn,
13594 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
13595 record_address_regs, auto_inc_dec_reg_p): Remove.
13596 (gt-regclass.h): Rename to gt-reginfo.h.
13597
13598 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 13599 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
13600
13601 * Makefile.in (RA_H): Remove.
13602 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
13603 Rename regclass.o to reginfo.o.
13604 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
13605 gt-reginfo.h.
13606 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
13607 (GTFILES): Rename regclass.c to reginfo.c.
13608
13609 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 13610 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
13611
13612 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13613 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
13614 Remove flag_ira.
6b67572e 13615 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 13616
c95b2534 136172009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
13618
13619 PR middle-end/35854
13620 * doc/invoke.texi (rtl debug options): Complete rewrite.
13621 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
13622 to auto_inc_dec".
13623 * mode-switching.c (pass_mode_switching): Rename pass from
13624 "mode-sw" to "mode_sw".
13625 * except.c (pass_convert_to_eh_ranges): Rename pass from
13626 "eh-ranges" to "eh_ranges".
13627 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
13628 to "subreg1".
2ba9daa7
AS
13629
13630
72a54528
AM
136312009-01-29 Andrey Belevantsev <abel@ispras.ru>
13632 Alexander Monakov <amonakov@ispras.ru>
13633
13634 PR middle-end/38857
13635 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
13636 register.
13637 (move_exprs_to_boundary): Change return type and pass through
13638 should_move from move_op. Relax assert. Update usage ...
13639 (schedule_expr_on_boundary): ... here. Use should_move instead of
13640 cant_move.
13641 (move_op_orig_expr_found): Indicate that insn was disconnected from
13642 stream.
13643 (code_motion_process_successors): Do not call after_merge_succs
13644 callback if original expression was not found when traversing any of
13645 the branches.
13646 (code_motion_path_driver): Change return type. Update prototype.
13647 (move_op): Update comment. Add a new parameter (should_move). Update
13648 prototype. Set *should_move based on indication provided by
13649 move_op_orig_expr_found.
13650
001b9eb6
PH
136512009-01-28 Pat Haugen <pthaugen@us.ibm.com>
13652
13653 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
13654 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
13655 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
13656 * config/rs6000/rs6000.c (rs6000_override_options): Default
13657 avoid-indexed-addresses on for Power6, off for everything else.
13658 (avoiding_indexed_address_p): New function.
13659 (rs6000_legitimize_address): Use it.
13660 (rs6000_legitimate_address): Likewise.
13661 * config/rs6000/rs6000.md (movXX_updateX): Likewise
13662
59dc4898
KH
136632009-01-28 Kazu Hirata <kazu@codesourcery.com>
13664
13665 PR tree-optimization/38997
13666 * tree-loop-distribution.c (generate_memset_zero): Use
13667 POINTER_PLUS_EXPR for a pointer addition.
13668
07da44ab
AK
136692009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
13670
13671 * config/s390/s390.md (bswap<mode>2): New pattern added.
13672
cdc15d23
WG
136732009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13674
13675 * config/s390/s390.md (*tls_load_31): Added type attribute.
13676
d46f24b6
WG
136772009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13678
13679 * config/s390/s390.md: Fix a few comments.
13680
729e750f
WG
136812009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13682
13683 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
13684 (*tm<mode>_full): Fixed z10prop attribute.
13685 (*tst<mode>_extimm): Fixed z10prop attribute.
13686 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
13687 (*tstqiCCT_cconly): Fixed z10prop attribute.
13688 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
13689 (*movsi_larl): Fixed z10prop attribute.
13690 (*movsi_zarch): Fixed z10prop attribute.
13691 (*movsi_eas): Fixed z10prop attribute.
13692 (*movhi): Fixed z10prop attribute.
13693 (*movqi): Fixed z10prop attribute.
13694 (*movstrictqi): Fixed z10prop attribute.
13695 (*mov<mode>): Fixed z10prop attribute.
13696 (*movcc): Fixed z10prop attribute.
13697 (*sethighpartdi_64): Fixed z10prop attribute.
13698 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
13699 (*negdi2_sign_cc): Fixed z10prop attribute.
13700 (*negdi2_sign): Fixed z10prop attribute.
13701 (*absdi2_sign_cc): Fixed z10prop attribute.
13702 (*absdi2_sign): Fixed z10prop attribute.
13703 (*negabsdi2_sign_cc): Fixed z10prop attribute.
13704 (*negabsdi2_sign): Fixed z10prop attribute.
13705 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
13706 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
13707 (doloop_si64): Fixed z10prop attribute.
13708 (doloop_si31): Fixed z10prop attribute.
13709 (doloop_long): Fixed z10prop attribute.
13710 (indirect_jump): Fixed z10prop attribute.
13711 (nop): Fixed z10prop attribute.
13712 (main_base_64): Fixed z10prop attribute.
13713 (reload_base_64): Fixed z10prop attribute.
13714
c7789bfb
JJ
137152009-01-28 Jakub Jelinek <jakub@redhat.com>
13716
13717 PR rtl-optimization/38740
6b67572e
UB
13718 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
13719 if !optimize.
c7789bfb
JJ
13720 * config/mips/mips.c (mips_reorg): Likewise.
13721
de081cfd
RG
137222009-01-28 Richard Guenther <rguenther@suse.de>
13723
13724 PR tree-optimization/38926
13725 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
13726 with the correct value id to a value.
13727 (do_regular_insertion): Use the value number of edoubleprime
13728 for the value number of the expr.
13729
13730 Revert
13731 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 13732
d748c406
UB
13733 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
13734 a PHI ask VN if it is already available.
13735 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
13736 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 13737
a9d386a1
JJ
137382009-01-28 Jakub Jelinek <jakub@redhat.com>
13739
13740 PR middle-end/38934
13741 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
13742 set to varying whenever max has TREE_OVERFLOW set, similarly
13743 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
13744
97a170cd
RG
137452009-01-28 Richard Guenther <rguenther@suse.de>
13746
13747 PR middle-end/38908
13748 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
13749 uninitialized aggregate uses in call arguments.
13750
89ebafc6
PB
137512009-01-28 Paolo Bonzini <bonzini@gnu.org>
13752
13753 PR tree-optimization/38984
13754 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
13755 the nothing_id variable if -fno-delete-null-pointer-checks.
13756
bef3c57b
UB
137572009-01-28 Uros Bizjak <ubizjak@gmail.com>
13758
13759 PR target/38988
13760 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
13761 (set_got_offset_rex64): Ditto.
13762
0c6390fa
L
137632009-01-27 H.J. Lu <hongjiu.lu@intel.com>
13764
13765 PR target/38941
13766 * doc/extend.texi: Improve local variable with asm reg.
13767
bee6fa6d
AN
137682009-01-27 Adam Nemet <anemet@caviumnetworks.com>
13769
13770 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
13771 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
13772 was not supplied then set warn_packed_bitfield_compat to the
13773 default value of 1.
13774 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
13775 against 1.
13776
b5c3dfbb
RG
137772009-01-27 Richard Guenther <rguenther@suse.de>
13778
13779 PR tree-optimization/38503
13780 * cfgexpand.c (expand_gimple_basic_block): Ignore
13781 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
13782 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
13783 variables that cannot have TBAA applied.
13784 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
13785 statements.
13786
d748c406 137872009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
13788
13789 PR middle-end/38969
13790 * calls.c (initialize_argument_information): Do not wrap complex
13791 arguments in SAVE_EXPR.
13792
9112bb38
AT
137932009-01-26 Andreas Tobler <a.tobler@schweiz.org>
13794
13795 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 13796 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 13797
4757704f
RG
137982009-01-26 Richard Guenther <rguenther@suse.de>
13799
13800 PR tree-optimization/38745
13801 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
13802 from special handling.
13803
e3e6cff4
RG
138042009-01-26 Richard Guenther <rguenther@suse.de>
13805
13806 PR tree-optimization/38745
13807 * tree-ssa.c (execute_update_addresses_taken): Do not include
13808 variables that cannot possibly be a register in not_reg_needs.
13809 Do not clear TREE_ADDRESSABLE on vars that may not become
13810 registers.
13811 * tree-ssa.c (update_alias_info_1): Include those in the set
13812 of addressable vars.
13813
dc874b53
RG
138142009-01-26 Richard Guenther <rguenther@suse.de>
13815
13816 PR middle-end/38851
13817 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
13818 * tree-ssa-dse.c: Include langhooks.h
13819 (execute_simple_dse): Remove stores with zero size.
13820
849421a3
JJ
138212009-01-24 Jakub Jelinek <jakub@redhat.com>
13822
13823 PR c/38957
13824 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
13825 as PLUS_EXPR.
13826
82f70421
JB
138272009-01-24 Julian Brown <julian@codesourcery.com>
13828
13829 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
13830 config/arm/linux-atomic.c.
13831 * config/arm/linux-atomic.c: New.
13832
863412d6
EB
138332009-01-24 Eric Botcazou <ebotcazou@adacore.com>
13834
13835 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
13836 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
13837 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
13838
8c684300
L
138392009-01-24 H.J. Lu <hongjiu.lu@intel.com>
13840
13841 PR c/38938
93f1527a 13842 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
13843 properly.
13844
b840fb02
SP
138452009-01-24 Sebastian Pop <sebastian.pop@amd.com>
13846
13847 PR tree-optimization/38953
13848 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
13849 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
13850 (gloog): Split the exit of the scop when the scop exit is a loop exit.
13851 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
13852 changed the CFG.
13853
ecee559f
PB
138542009-01-24 Paul Brook <paul@codesourcery.com>
13855
13856 * config/arm/neon.md (neon_type): Move to arm.md.
13857 (neon_mov<VSTRUCT>): Add neon_type attribute.
13858 * config/arm/arm.md (neon_type): Move to here.
13859 (conds): Add "unconditioal" and use as default for NEON insns.
13860
61ad0914
BE
138612009-01-24 Ben Elliston <bje@au.ibm.com>
13862
13863 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
13864 void *' warning from -Wc++-compat.
13865 * Makefile.in (dominance.o-warn): Remove.
13866
38432148 138672009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
13868
13869 PR tree-optimization/38932
13870 * fold-const.c (fold_unary_ignore_overflow): New.
13871 * tree.h (fold_unary_ignore_overflow): Declare.
13872 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
13873 * tree-ssa-sccvn.c (visit_reference_op_load,
13874 simplify_unary_expression): Likewise.
13875
2cd36c22
AN
138762009-01-22 Adam Nemet <anemet@caviumnetworks.com>
13877
13878 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
13879 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
13880 regardless of their type.
13881 * c-common.c (handle_packed_attribute): Don't ignore packed on
13882 bitfields.
13883 * c.opt (Wpacked-bitfield-compat): New warning option.
13884 * stor-layout.c (place_field): Warn if offset of a field changed.
13885 * doc/extend.texi (packed): Mention the ABI change.
13886 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
13887 (Warning Options): Add it to the list.
13888
e4e624ab
L
138892009-01-22 H.J. Lu <hongjiu.lu@intel.com>
13890
13891 * c-opts.c (c_common_post_options): Fix a typo in comments.
13892
d0ea0759
SE
138932009-01-22 Steve Ellcey <sje@cup.hp.com>
13894
13895 PR middle-end/38615
13896 * gimplify.c (gimplify_init_constructor): Fix promotion of const
13897 variables to static.
13898 * doc/invoke.texi (-fmerge-all-constants): Update description.
13899
87673f84
UB
139002009-01-22 Uros Bizjak <ubizjak@gmail.com>
13901
13902 PR target/38931
13903 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
13904 (*movdi_1_rex64): Use type "mmx" for alternative 5.
13905
96339268
RE
139062009-01-22 Richard Earnshaw <rearnsha@arm.com>
13907
13908 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
13909 a word boundary.
13910 (LOCAL_ALIGNMENT): Similarly.
13911
442dc742 139122009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 13913 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
13914
13915 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
13916 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
13917 * config/arm/arm-tune.md: Regenerate.
13918 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
13919 -march=iwmmxt2.
13920
9b34732e
MS
139212009-01-22 Mark Shinwell <shinwell@codesourcery.com>
13922
13923 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
13924 version number to five.
13925
03c2a308
DS
139262009-01-22 Dodji Seketeli <dodji@redhat.com>
13927
13928 PR c++/38930
ba20e309 13929 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
13930 * c-common.c (set_underlying_type): Likewise.
13931 (is_typedef_decl ): Likewise
13932 * tree.h: Likewise
13933 (set_underlying_type): Likewise.
13934 (is_typedef_type): Likewise.
13935
1240d76e
VM
139362009-01-21 Vladimir Makarov <vmakarov@redhat.com>
13937
13938 PR middle-end/38587
13939 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13940 crossing setjmps.
13941
b8a1087d
DK
139422009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
13943
13944 PR bootstrap/37660
13945 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
13946 (LIBGCC_SPEC): Don't define.
13947 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
13948
435da628
UB
139492009-01-21 Uros Bizjak <ubizjak@gmail.com>
13950
13951 PR rtl-optimization/38879
13952 * alias.c (base_alias_check): Unaligned access via AND address can
13953 alias all surrounding object types except those with sizes equal
13954 or wider than the size of unaligned access.
13955
d597b3ce
DS
139562009-01-21 Dodji Seketeli <dodji@redhat.com>
13957
13958 PR c++/26693
ba20e309 13959 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 13960 * c-common.c (set_underlying_type): ... here.
435da628 13961 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
13962 the newly created typedef variant type.
13963 (is_typedef_decl ): New entry point.
13964 * tree.h: Added a new member member_types_needing_access_check to
13965 struct tree_decl_non_common.
13966 (set_underlying_type): New entry point.
13967 (is_typedef_type): Likewise.
13968
71a6fe66
BM
139692009-01-21 Bingfeng Mei <bmei@broadcom.com>
13970
13971 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13972 Check whether two instructions have memory references that
13973 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
13974 are helper functions for traversing.
13975 * alias.h (insn_alias_sets_confilict_p): New prototypes.
13976 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13977 not to draw dependency edge for instructions with non-conflicting
13978 alias sets.
13979
5a248274
JM
139802009-01-20 Joseph Myers <joseph@codesourcery.com>
13981
13982 PR other/38758
6b67572e
UB
13983 * longlong.h: Update copyright years. Use soft-fp license notice.
13984 Sync __clz_tab declaration with glibc.
5a248274 13985
4b84f3de
SE
139862009-01-20 Steve Ellcey <sje@cup.hp.com>
13987
13988 PR target/30687
13989 * doc/extend.texi (syscall_linkage): New.
13990 (version_id): Modify.
13991
37348bf1 139922009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 13993 Richard Guenther <rguenther@suse.de>
37348bf1
AP
13994
13995 PR tree-optimization/38747
13996 PR tree-optimization/38748
13997 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13998 conversion if the base address is an indirect reference and the
13999 aliasing sets could cause issues.
14000
d0a58904
SP
140012009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14002
2ba9daa7 14003 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
14004 explaining why these options are not documented.
14005
71e7afb2
SP
140062009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14007
14008 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
14009 gimple_call_lhs is NULL.
14010
38432148 140112009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
14012
14013 PR target/38868
14014 * emit-rtl.c (adjust_address_1): Make sure memref is never
14015 overwritten.
14016
cbb8dee3
BE
140172009-01-20 Ben Elliston <bje@au.ibm.com>
14018
14019 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 14020 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
14021 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14022 const qualifier from arg 2.
14023
72c66596
IS
140242009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
14025
435da628 14026 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 14027
f68211cd
VM
140282009-01-19 Vladimir Makarov <vmakarov@redhat.com>
14029
14030 PR c/38869
14031 * rtl.h (reinit_regs): New prototype.
14032 * regclass.c: Include ira.h.
14033 (reinit_regs): New.
14034 * Makefile.in (regclass.o): Add ira.h.
14035 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
14036
6e4f1168
L
140372009-01-18 H.J. Lu <hongjiu.lu@intel.com>
14038
14039 PR target/38736
14040 * c-common.c (handle_aligned_attribute): Use
14041 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
14042 default alignment value.
14043
14044 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
14045
14046 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
14047 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
14048
14049 * doc/extend.texi: Update __attribute__ ((aligned)). Document
14050 __BIGGEST_ALIGNMENT__.
14051
14052 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
14053
890065bf
RG
140542009-01-18 Richard Guenther <rguenther@suse.de>
14055
14056 PR tree-optimization/38819
14057 * tree-flow.h (operation_could_trap_helper_p): Declare.
14058 * tree-eh.c (operation_could_trap_helper_p): Export.
14059 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
14060 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
14061 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
14062 are about to insert a possibly trapping instruction and fail
14063 in this case.
14064
a729d731
AS
140652009-01-18 Andreas Schwab <schwab@suse.de>
14066
14067 * doc/install.texi (Configuration): Remove obsolete paragraph
14068 about use of --with-gnu-ld with --with-gnu-as.
14069
a640c13b
KH
140702009-01-18 Kazu Hirata <kazu@codesourcery.com>
14071
14072 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
14073 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
14074 Follow spelling conventions.
14075
dba2cc0c
BE
140762009-01-18 Ben Elliston <bje@au.ibm.com>
14077
14078 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
14079 C++ warning about implicit conversion from void * to struct
14080 bitmap_head_def *.
14081 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 14082 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 14083
2207a498
DK
140842009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
14085
14086 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
14087
8137e465
SP
140882009-01-17 Sebastian Pop <sebastian.pop@amd.com>
14089 Tobias Grosser <tobi.grosser@amd.com>
14090
14091 * graphite.c (graphite_trans_scop_block): Do not block single
14092 nested loops.
14093
5be1c58c
AO
140942009-01-16 Alexandre Oliva <aoliva@redhat.com>
14095
14096 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
14097 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
14098 test with assertion.
14099
786ce82d
RG
141002009-01-16 Richard Guenther <rguenther@suse.de>
14101
14102 PR tree-optimization/38835
14103 PR middle-end/36227
14104 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
14105 and INT + PTR -> (INT)(PTR p+ INT) folding.
14106 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
14107
c1cb09ad
AN
141082009-01-16 Adam Nemet <anemet@caviumnetworks.com>
14109
14110 PR target/38554
14111 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
14112 the subreg from a lowpart subreg if it is also casting the value.
14113
bcab4e19
SP
141142009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14115 Tobias Grosser <tobi.grosser@amd.com>
14116
14117 * graphite.c (compare_prefix_loops): New.
14118 (build_scop_canonical_schedules): Rewritten.
14119 (graphite_transform_loops): Move build_scop_canonical_schedules
14120 after build_scop_iteration_domain.
14121
0b040072
SP
141222009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14123 Tobias Grosser <tobi.grosser@amd.com>
14124
2ba9daa7 14125 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
14126 the dimension of the iteration domain. Do copy the domain
14127 only when it exists.
14128 (build_scop_conditions_1): Do not call add_conditions_to_domain.
14129 (add_conditions_to_constraints): New.
14130 (can_generate_code_stmt, can_generate_code): Removed.
14131 (gloog): Do not call can_generate_code.
14132 (graphite_transform_loops): Call add_conditions_to_constraints
14133 after building the iteration domain.
14134
56c6a499
JJ
141352009-01-16 Jakub Jelinek <jakub@redhat.com>
14136
14137 PR tree-optimization/38789
14138 * tree-ssa-threadedge.c
14139 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14140 __builtin_constant_p.
14141
c95b2534 141422009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
14143
14144 * dce.c (delete_unmarked_insns): Reversed the order that insns are
14145 examined before deleting them.
2ba9daa7 14146
c433cb14
RE
141472009-01-16 Richard Earnshaw <rearnsha@arm.com>
14148
14149 * function.c (aggregate_value_p): Correctly extract the function
14150 type from CALL_EXPR_FN lookup.
14151
c95b2534 141522009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
14153
14154 * config/picochip/picochip.c (picochip_override_options): Revert
14155 CFI asm flag disable commited previously.
14156
c77bb78f
SP
141572009-01-15 Sebastian Pop <sebastian.pop@amd.com>
14158 Tobias Grosser <tobi.grosser@amd.com>
14159 Jan Sjodin <jan.sjodin@amd.com>
14160
14161 * graphite.c (scan_tree_for_params): On substractions negate
14162 all the coefficients of the term.
14163 (clast_to_gcc_expression_red): New. Handle reduction expressions
14164 of more than two operands.
14165 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
14166 (get_vdef_before_scop): Handle also the case of default definitions.
14167
574af2d6
RS
141682009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
14169
14170 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
14171 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
14172 Also use them when walking CALL_INSN_FUNCTION_USAGE.
14173
e939805b
L
141742009-01-15 H.J. Lu <hongjiu.lu@intel.com>
14175 Joey Ye <joey.ye@intel.com>
14176
14177 PR middle-end/37843
14178 * cfgexpand.c (expand_stack_alignment): Don't update stack
14179 boundary nor check incoming stack boundary here.
14180 (gimple_expand_cfg): Update stack boundary and check incoming
14181 stack boundary here.
14182
c95b2534 141832009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 14184
435da628 14185 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 14186
0196c95e
JJ
141872009-01-14 Jakub Jelinek <jakub@redhat.com>
14188
14189 PR rtl-optimization/38245
14190 * calls.c (expand_call): Add stack arguments to
14191 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14192 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
14193 in regs and partially in memory or BLKmode arguments.
14194 (emit_library_call_value_1): Add stack arguments to
14195 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14196 ACCUMULATE_OUTGOING_ARGS).
14197 * dce.c: Include tm_p.h.
14198 (find_call_stack_args): New function.
14199 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
14200 argument.
14201 (mark_insn): Call find_call_stack_args for CALL_Ps.
14202 (prescan_insns_for_dce): Walk insns backwards in bb rather than
14203 forwards. Allocate and free arg_stores bitmap if needed, pass it
14204 down to deletable_insn_p, don't mark stores set in arg_stores
14205 bitmap, clear the bitmap at the beginning of each bb.
14206 * Makefile.in (dce.o): Depend on $(TM_P_H).
14207
6df6bcfa
MM
142082009-01-14 Michael Meissner <gnu@the-meissners.org>
14209
14210 PR target/22599
435da628
UB
14211 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
14212 to make sure the insn is a conditional test (bug 22599). Reformat a
14213 few long lines.
6df6bcfa 14214
765ec70c
SP
142152009-01-14 Sebastian Pop <sebastian.pop@amd.com>
14216
14217 PR middle-end/38431
14218 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
14219 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
14220 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 14221 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
14222 scops have been code generated.
14223
7de2b688
BS
142242009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
14225 * doc/gty.texi (Invoking the garbage collector): Added new node
14226 and section documenting ggc_collect.
14227
10bd6c5c
RG
142282009-01-14 Richard Guenther <rguenther@suse.de>
14229
14230 PR tree-optimization/38826
14231 PR middle-end/38477
14232 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
14233 initialization notes only if we actually emitted a warning.
14234 (intra_create_variable_infos): Add constraints for a result decl
14235 that is passed by hidden reference.
14236 (build_pred_graph): Mark all related variables non-direct on
14237 address-taking.
14238
9c7c70ee
NC
142392009-01-14 Nick Clifton <nickc@redhat.com>
14240
14241 * ira-conflicts.c: Include addresses.h for the definition of
14242 base_reg_class.
435da628
UB
14243 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
14244 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 14245
cf0c2a60
VM
142462009-01-13 Vladimir Makarov <vmakarov@redhat.com>
14247
14248 PR target/38811
14249 * Makefile.in (ira-lives.o): Add except.h.
14250
14251 * ira-lives.c: Include except.h.
14252 (process_bb_node_lives): Process can_throw_internal.
14253
d3302fd3
JJ
142542009-01-13 Jakub Jelinek <jakub@redhat.com>
14255
14256 PR rtl-optimization/38774
14257 * combine.c (simplify_set): When undoing cc_use change, don't do
14258 PUT_CODE on the newly created comparison, but instead put back the
14259 old comparison.
14260
7ab23fd0
JM
142612009-01-13 Joseph Myers <joseph@codesourcery.com>
14262
14263 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
14264 values. Remove duplicate arm8 entry.
14265
f9344488
SP
142662009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14267
14268 PR tree-optimization/38786
14269 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
14270 the SSA_NAME case of expand_scalar_variables_expr.
14271 Set the type of an expression to the type of its assign statement.
14272 (expand_scalar_variables_expr): Also gather the scalar computation
14273 used to index the memory access. Do not pass loop_p.
14274 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
14275 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
14276 the gimple_stmt_iterator where it inserts new code.
14277 Do not pass loop_p.
f9344488
SP
14278 (copy_bb_and_scalar_dependences): Do not pass loop_p.
14279 (translate_clast): Update call to copy_bb_and_scalar_dependences.
14280
2d8bb84d
SP
142812009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14282
14283 * graphite.h (debug_value): Removed.
14284 * graphite.c (debug_value): Removed.
14285
ff128632
RE
142862009-01-13 Richard Earnshaw <rearnsha@arm.com>
14287
435da628
UB
14288 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
14289 ldrd/strd with two 32-bit instructions.
ff128632 14290
d5a0a47b
RE
142912009-01-13 Richard Earnshaw <rearnsha@arm.com>
14292
435da628
UB
14293 * config/arm/arm.c (struct processors): Pass for speed down into
14294 cost helper functions.
d5a0a47b
RE
14295 (const_ok_for_op): Handle COMPARE and inequality nodes.
14296 (arm_rtx_costs_1): Rewrite.
14297 (arm_size_rtx_costs): Update prototype.
14298 (arm_rtx_costs): Pass speed down to helper functions.
14299 (arm_slowmul_rtx_costs): Rework cost calculations.
14300 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
14301 (arm_9e_rtx_costs): Likewise.
14302
26d5bf5b
UB
143032009-01-13 Uros Bizjak <ubizjak@gmail.com>
14304
14305 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 14306 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
14307 (alpha_legitimize_address): Do not split local symbols wider than
14308 UNITS_PER_WORD into HIGH/LO_SUM parts.
14309
5d14e3d5
DS
143102009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
14311
14312 PR bootstrap/38580
14313 * gcc.c (process_command): Replace call to execvp with calls
14314 to pex_one and exit.
14315
33faafca
AS
143162009-01-03 Anatoly Sokolov <aesok@post.ru>
14317
14318 PR target/29141
14319 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
14320 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
14321 variant for devices with 3-byte PC.
ba20e309 14322 (__tablejump_elpm__): New.
33faafca 14323
634b5df5
JJ
143242009-01-12 Jakub Jelinek <jakub@redhat.com>
14325
14326 PR c/32041
14327 * c-parser.c (c_parser_postfix_expression): Allow `->' in
14328 offsetof member-designator, handle it as `[0].'.
14329
2842bb86
JDA
143302009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14331
14332 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
14333 function when not using named sections on targets with named sections
14334 if branch distance is less than 262132.
14335
76ee70f6
RE
143362009-01-12 Richard Earnshaw <rearnsha@arm.com>
14337
14338 * combine.c (combine_instructions): Recompute
14339 optimize_this_for_speed_p for each BB in the main combine loop.
14340
f56e675d
TB
143412009-01-12 Tomas Bily <tbily@suse.cz>
14342
14343 PR middlend/38385
26d5bf5b
UB
14344 * tree-loop-distribution.c (prop_phis): New function.
14345 (generate_builtin): Call prop_phis.
14346 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 14347
c2152239
JJ
143482009-01-12 Jakub Jelinek <jakub@redhat.com>
14349
14350 PR tree-optimization/38807
14351 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
14352 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
14353
0e510b3e
AN
143542009-01-11 Adam Nemet <anemet@caviumnetworks.com>
14355
14356 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
14357 subreg of op0 to the original op0.
14358
c95b2534 143592009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
14360
14361 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 14362
53a7ff9a
MS
143632009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
14364
14365 PR debug/7055
60839f5d 14366 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
14367 starting with digits.
14368
b3a796bc
JJ
143692009-01-10 Jakub Jelinek <jakub@redhat.com>
14370
14371 PR target/38695
14372 * config/arm/arm.c (arm_is_long_call_p): Don't call
14373 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
14374
b21b850e
SB
143752009-01-09 Steven Bosscher <steven@gcc.gnu.org>
14376
14377 * regrename.c (regrename_optimize): Fix dumping.
14378 (find_oldest_value_reg): Preserve REG_POINTER.
14379 (copy_hardreg_forward_1): Likewise.
14380
e0e10d3a
DN
143812009-01-09 Diego Novillo <dnovillo@google.com>
14382
bf9b2cc9 14383 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
14384 the restrictions on its use.
14385 (gimple_uid): Tidy.
14386 (gimple_set_uid): Tidy.
14387
c9da2ae8
JJ
143882009-01-09 Jakub Jelinek <jakub@redhat.com>
14389
14390 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
14391 zero guard even if align_bytes != 0 and count is smaller than
14392 size_needed.
14393
38432148 143942009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
14395
14396 PR rtl-optimization/38495
26d5bf5b 14397 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
14398 (add_range_and_copies_from_move_list): Print all added ranges.
14399 Add ranges to memory optimized destination.
14400
260fda3d
JJ
144012009-01-09 Jakub Jelinek <jakub@redhat.com>
14402
6f6278ad
JJ
14403 PR target/38686
14404 PR target/38708
14405 * config/i386/i386.c (override_options): Reject
14406 -mstringop-strategy=rep_8byte with -m32.
14407 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
14408 to 1. Do count comparison against epilogue_size_needed at compile
14409 time even when count_exp was constant forced into register. For
14410 size_needed don't jump to epilogue, instead just avoid aligning
14411 and invoke the body algorithm. If need_zero_guard, add zero guard
14412 even if count is non-zero, but smaller than size_needed + number of
14413 bytes that could be stored for alignment.
14414 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
14415 to 1. If need_zero_guard, add zero guard even if count is non-zero,
14416 but smaller than size_needed + number of bytes that could be stored
14417 for alignment. Compare size_needed with epilogue_size_needed instead
14418 of desired_align - align, don't adjust size_needed, pass
14419 epilogue_size_needed to the epilogue expanders.
14420
260fda3d 14421 PR c/35742
26d5bf5b 14422 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 14423
67b846fa
JDA
144242009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14425
14426 * pa.c (last_address): Change to unsigned.
14427 (update_total_code_bytes): Change argument to unsigned. Don't
14428 check if insn addresses are set.
14429 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
14430 addresses are not set.
14431 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
14432
91c82473
NC
144332009-01-09 Nick Clifton <nickc@redhat.com>
14434
14435 * config/sh/symbian.c: Replace uses of DECL_INLINE with
14436 DECL_DECLARED_INLINE_P.
14437
4017e262
JJ
144382009-01-09 Jakub Jelinek <jakub@redhat.com>
14439
0a49e5c2
JJ
14440 PR middle-end/38347
14441 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
14442 GET_MODE (op0) in operand_subword_force calls.
14443
4017e262
JJ
14444 PR middle-end/38771
14445 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
14446 fold_convert arg0 operands to TREE_TYPE (op0) first.
14447
7cd06356
VM
144482009-01-08 Vladimir Makarov <vmakarov@redhat.com>
14449
14450 * params.def (ira-max-conflict-table-size): Decrease default value
14451 to 1000.
14452
96867bbd
JJ
144532009-01-08 Jakub Jelinek <jakub@redhat.com>
14454
14455 PR tree-optimization/37031
14456 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
14457 on parameter_set.
14458 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
14459 allocate it using gc instead of heap, use VEC_quick_push instead of
14460 VEC_safe_push.
14461 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
14462 instead of heap, use VEC_quick_push instead of VEC_safe_push.
14463 * tree-data-ref.h (struct access_matrix): Change matrix to gc
14464 allocated vector from heap allocated.
14465 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
14466 * tree-loop-linear.c (linear_transform_loops): Allocate nest
14467 vector only after perfect_loop_nest_depth call.
14468
68f61c3d
SP
144692009-01-08 Sebastian Pop <sebastian.pop@amd.com>
14470 Jan Sjodin <jan.sjodin@amd.com>
14471
14472 PR tree-optimization/38559
14473 * graphite.c (debug_value, copy_constraint,
14474 swap_constraint_variables, scale_constraint_variable, ): New.
14475 (get_lower_bound, get_upper_bound): Removed.
14476 (graphite_trans_bb_strip_mine): Clean up this code that works
14477 only for constant number of iterations. Fully copy upper and
14478 lower bound constraints, not only the constant part of them.
14479 * graphite.h (debug_value): Declared.
14480
82567e33
IR
144812009-01-08 Ira Rosen <irar@il.ibm.com>
14482
14483 PR tree-optimization/37194
14484 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 14485 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
14486 outside cost in case of known number of iterations.
14487
7da13f1d
NF
144882009-01-07 Nathan Froyd <froydnj@codesourcery.com>
14489 Alan Modra <amodra@bigpond.net.au>
14490
14491 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
14492 non-word-aligned REG+CONST addressing.
14493
c0f64575
UB
144942009-01-07 Uros Bizjak <ubizjak@gmail.com>
14495
14496 PR target/38706
14497 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
14498 free_after_compilation when outputting a thunk.
14499 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
14500 Do not call free_after_compilation here.
14501
301b6a4e
UB
145022009-01-07 Uros Bizjak <ubizjak@gmail.com>
14503
14504 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
14505 (ix86_valid_target_attribute_inner_p): Ditto.
14506
6a114766
JS
145072009-01-07 Jan Sjodin <jan.sjodin@amd.com>
14508
14509 PR tree-optimization/38492
14510 PR tree-optimization/38498
14511 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
14512 * tree-chrec.h (scev_is_linear_expression): Declared.
14513 * graphite.c (graphite_cannot_represent_loop_niter): New.
14514 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
14515 (graphite_loop_normal_form): Use gcc_assert.
14516 (scan_tree_for_params): Use CASE_CONVERT.
14517 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
14518 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
14519 Use gcc_assert. Discard scops that contain unhandled cases.
14520 (build_scop_conditions): Return a boolean status for unhandled cases.
14521 (strip_mine_profitable_p): Print the loop number, not its depth.
14522 (is_interchange_valid): Pass the depth of the loop nest, don't
14523 recompute it wrongly.
14524 (graphite_trans_bb_block): Same.
14525 (graphite_trans_bb_block): Print tentative of loop blocking.
14526 (graphite_trans_scop_block): Do not print that the loop has been
14527 blocked.
14528 (graphite_transform_loops): Do not handle scops that contain condition
14529 scalar phi nodes.
14530
65b82caa
L
145312009-01-07 H.J. Lu <hongjiu.lu@intel.com>
14532
14533 AVX Programming Reference (December, 2008)
14534 * config/i386/avxintrin.h (_mm256_stream_si256): New.
14535 (_mm256_stream_pd): Likewise.
14536 (_mm256_stream_ps): Likewise.
14537
14538 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
14539 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
14540 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
14541 (bdesc_special_args): Add __builtin_ia32_movntdq256,
14542 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
14543 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
14544 (ix86_expand_special_args_builtin): Likewise.
14545
14546 * config/i386/sse.md (AVXMODEDI): New.
14547 (avx_movnt<mode>): Likewise.
14548 (avx_movnt<mode>): Likewise.
14549 (<sse>_movnt<mode>): Remove AVX support.
14550 (sse2_movntv2di): Likewise.
14551
cef158f9
RG
145522009-01-07 Richard Guenther <rguenther@suse.de>
14553
14554 PR middle-end/38751
14555 * fold-const.c (extract_muldiv): Remove obsolete comment.
14556 (fold_plusminus_mult_expr): Undo MINUS_EXPR
14557 to PLUS_EXPR canonicalization for the canonicalization.
14558
246cb5be
GP
145592009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
14560
14561 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
14562 hosted cross-compilers generating less efficient code.
14563
84b9b872
RS
145642009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
14565
14566 * function.h (rtl_data): Add a dbr_scheduled_p field.
14567 * reorg.c (dbr_schedule): Set it.
14568 (gate_handle_delay_slots): Check it.
14569 * config/mips/mips.c (mips_base_delayed_branch): Delete.
14570 (mips_reorg): Check flag_delayed_branch instead of
14571 mips_base_delayed_branch.
14572 (mips_override_options): Don't set mips_base_delayed_branch
14573 or flag_delayed_branch.
14574
ace984c8
RS
145752009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
14576
14577 PR rtl-optimization/38426.
14578 * ira.c (ira): Set current_function_is_leaf earlier.
14579
7ad7809b
JJ
145802009-01-06 Jakub Jelinek <jakub@redhat.com>
14581
14582 PR rtl-optimization/38722
14583 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
14584 too early, only set a flag and modify after last possible
14585 undo_all point.
14586
c52ec948
JJ
145872009-01-06 Janis Johnson <janis187@us.ibm.com>
14588
14589 PR c/34252
14590 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
14591 * real.c (decimal_single_format): Correct values of emin and emax.
14592 (decimal_double_format): Ditto.
14593 (decimal_quad_format): Ditto.
14594 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
14595 computation of DECnn_MIN and DECnn_MAX for corrected values of
14596 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
14597 __DECnn_MIN__, and adjust its computation for the corrected value
14598 of emin.
14599
300240e1
JH
146002009-01-06 Jan Hubicka <jh@suse.cz>
14601
14602 PR target/38744
435da628 14603 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 14604
271c069e
GP
146052009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
14606
14607 * doc/contrib.texi (Contributors): Slightly adjust the end note.
14608 Add Robert Clark to the list of testers.
14609
64e4c301 146102009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14611 Kai Tietz <kai.tietz@onevision.com>
64e4c301 14612
435da628
UB
14613 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
14614 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 14615
7650b83e 146162009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14617 Kai Tietz <kai.tietz@onevision.com>
7650b83e 14618
435da628
UB
14619 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
14620 for w64 ABI.
14621 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
14622 (ix86_nsaved_regs): Count only general purpose regs.
14623 (ix86_nsaved_sseregs): New.
14624 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
14625 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
14626 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
14627 general purpose regs.
7650b83e
JH
14628 (ix86_emit_save_sse_regs_using_mov): New.
14629 (ix86_expand_prologue): Save SSE regs if needed.
14630 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
14631 (ix86_emit_restore_sse_regs_using_mov): New.
14632 (ix86_expand_epilogue): Save SSE regs if needed.
14633
9aa5c1b2 146342009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14635 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 14636
435da628
UB
14637 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
14638 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
14639 functions when accumulate outgoing args is off.
9aa5c1b2 14640
f7556aae
L
146412009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14642
14643 PR bootstrap/38742
14644 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
14645 before using pseudos_have_intersected_live_ranges_p.
14646
14647 * ira-int.h (ira_assert): Always define.
14648
e47b7d04
L
146492009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14650
14651 AVX Programming Reference (December, 2008)
14652 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
14653 (_mm256_permute2_pd): Likewise.
14654 (_mm_permute2_ps): Likewise.
14655 (_mm256_permute2_ps): Likewise.
14656 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
14657 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
14658
14659 * config/i386/i386.c (ix86_builtins): Remove
14660 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
14661 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
14662 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
14663 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
14664 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
14665 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
14666 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
14667 __builtin_ia32_vpermil2ps256.
14668 (ix86_init_mmx_sse_builtins): Updated.
14669 (ix86_expand_args_builtin): Likewise.
14670
44b86471
JDA
146712009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14672
e47b7d04
L
14673 * pa.c (output_call): Relocate non-jump insns in the delay slot of
14674 long absolute calls when generating PA 2.0 code.
44b86471 14675
311aab06
VM
146762009-01-05 Vladimir Makarov <vmakarov@redhat.com>
14677
14678 PR rtl-optimization/38583
14679 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
14680
14681 * params.def (ira-max-conflict-table-size): New.
14682
14683 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 14684
311aab06 14685 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 14686
311aab06
VM
14687 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
14688 table. Report this. Return result of building.
14689 (ira_build_conflicts): Use ira_conflicts_p. Check result of
14690 building conflict table.
14691
301b6a4e 14692 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 14693 (ira_color): Use ira_conflicts_p.
2ba9daa7 14694
311aab06
VM
14695 * global.c: Include ira.h.
14696 (pseudo_for_reload_consideration_p, build_insn_chain): Use
14697 ira_conflicts_p.
14698
14699 * Makefile.in (global.o): Add ira.h.
2ba9daa7 14700
311aab06
VM
14701 * ira-build.c (mark_all_loops_for_removal,
14702 propagate_some_info_from_allocno): New.
14703 (remove_unnecessary_allocnos): Call
14704 propagate_some_info_from_allocno.
14705 (remove_low_level_allocnos): New.
14706 (remove_unnecessary_regions): Add parameter. Call
14707 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
14708 parameter to remove_unnecessary_regions.
14709 (ira_build): Remove all regions but root if the conflict table was
14710 not built. Update conflict hard regs for allocnos crossing calls.
14711
14712 * ira.c (ira_conflicts_p): New global.
14713 (ira): Define and use ira_conflicts_p.
14714
14715 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14716 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 14717 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 14718
5641785f
BE
147192009-01-06 Ben Elliston <bje@au.ibm.com>
14720
14721 * gengtype-lex.l (YY_NO_INPUT): Define.
14722
e4e5261f
AP
147232009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
14724
14725 PR c/34911
5641785f
BE
14726 * c-common.c (handle_vector_size_attribute): Also reject
14727 BOOLEAN_TYPE types.
e4e5261f 14728
7b10257f
SP
147292009-01-05 Sebastian Pop <sebastian.pop@amd.com>
14730
14731 PR tree-optimization/38492
14732 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
14733 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
14734 rename_map_elt_info, eq_rename_map_elts,
14735 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
14736 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
14737 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
14738 (sese_build_livein_liveouts): New.
14739 (new_sese, free_sese): New.
14740 (new_scop): Call new_sese.
14741 (free_scop): Call free_sese.
14742 (rename_variables_from_edge, rename_phis_end_scop): Removed.
14743 (register_old_new_names): Renamed register_old_and_new_names.
14744 (register_scop_liveout_renames, add_loop_exit_phis,
14745 insert_loop_close_phis, struct igp,
14746 default_liveout_before_guard, add_guard_exit_phis,
14747 insert_guard_phis, copy_renames): New.
14748 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
14749 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
14750 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
14751 (scop_adjust_phis_for_liveouts): New.
14752 (gloog): Call scop_adjust_phis_for_liveouts.
14753
14754 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 14755 num_ver and livein.
7b10257f
SP
14756 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
14757 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
14758 (struct scop): Added field liveout_renames.
14759 (SCOP_LIVEOUT_RENAMES): New.
14760
9761fcc7
HJ
147612009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
14762
14763 PR tree-optimization/38510
14764 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
14765 (translate_clast): Call recompute_all_dominators before
14766 graphite_verify.
14767 (gloog): Call recompute_all_dominators before graphite_verify.
14768
147692009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 14770 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
14771
14772 PR tree-optimization/38500
14773 * graphite.c (create_sese_edges): Call fix_loop_structure after
14774 splitting blocks.
14775
c95b2534 147762009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
14777
14778 * config.gcc: Add m32r*-*-rtems*.
14779 * config/m32r/rtems.h: New file.
14780
fc0cd180
BE
147812009-01-05 Ben Elliston <bje@au.ibm.com>
14782
14783 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
14784 (.po.pox): Likewise.
14785 (po/gcc.pot): Likewise.
14786
3106d8e5
DM
147872009-01-04 David S. Miller <davem@davemloft.net>
14788
14789 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
14790 (STARTING_FRAME_OFFSET): Always set to zero.
14791
0009b473
RS
147922009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14793
14794 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
14795 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
14796 fixed-point types, and vectors of the same.
14797
4f24c6d6
RS
147982009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14799
14800 * config/mips/sync.md (*mb_barrier): Rename to...
14801 (*memory_barrier): ...this.
14802
1df48f5c
JW
148032009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
14804
14805 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 14806 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
14807 and put in alphabetical order. Fix 'target' name and put in order.
14808 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
14809 typos.
14810
1a8c13b3
UB
148112009-01-04 Uros Bizjak <ubizjak@gmail.com>
14812
14813 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
14814 (memory_barrier): Expand as unspec instead of unspec_volatile.
14815 Remove mem:BLK from insn operands. Use Pmode scratch register.
14816 (*memory_barrier): Define as unspec instead of unspec_volatile.
14817 Use (match_dup 0) as input operand.
14818
14819 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
14820 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
14821 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
14822 scratch register. Remove operand 1.
14823 (*stbar): Define as unspec instead of unspec_volatile.
14824 Use (match_dup 0) as input operand, remove (const_int 8).
14825 (*membar): Define as unspec instead of unspec_volatile.
14826 Use (match_dup 0) as input operand, remove input operand 2.
14827
14828 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
14829 (memory_barrier): Expand as unspec instead of unspec_volatile.
14830 Remove mem:BLK from insn operands. Use Pmode scratch register.
14831 (*memory_barrier): Define as unspec instead of unspec_volatile.
14832 Use (match_dup 0) as input operand.
14833
14834 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
14835 Remove mem:BLK from insn operands. Use Pmode scratch register.
14836 Set volatile flag on operand 0.
14837 (*memory_barrier): New insn pattern.
14838
14839 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
14840 insn operands.
14841 (*memory_barrier): Use (match_dup 0) as input operand.
14842
14843 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
14844 Remove mem:BLK from insn operands. Use Pmode scratch register.
14845 Set volatile flag on operand 0.
301b6a4e 14846 (*mb_internal): New insn pattern.
1a8c13b3
UB
14847
14848 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
14849
fb0703f7
SB
148502009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14851
14852 PR middle-end/38586
14853 * function.c (struct temp_slot): Move to the section of the file
14854 that deals with temp slots. Remove field 'address'.
14855 (temp_slot_address_table): New hash table of address -> temp slot.
14856 (struct temp_slot_address_entry): New struct, items for the table.
14857 (temp_slot_address_compute_hash, temp_slot_address_hash,
14858 temp_slot_address_eq, insert_temp_slot_address): Support functions
14859 for the new table.
14860 (find_temp_slot_from_address): Rewrite to use the new hash table.
14861 (remove_unused_temp_slot_addresses): Remove addresses of temp
14862 slots that have been made available.
14863 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
14864 worker function for remove_unused_temp_slot_addresses.
14865 (assign_stack_temp_for_type): Don't clear the temp slot address list.
14866 Add the temp slot address to the address -> temp slot map.
14867 (update_temp_slot_address): Update via insert_temp_slot_address.
14868 (free_temp_slots): Call remove_unused_temp_slot_addresses.
14869 (pop_temp_slots): Likewise.
14870 (init_temp_slots): Allocate the address -> temp slot map, or empty
14871 the map if it is already allocated.
14872 (prepare_function_start): Initialize temp slot processing.
14873
b5a430f3
SB
148742009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14875
14876 PR middle-end/38584
14877 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
14878 Calculate the size of all stack vars assuming no packing of stack
14879 vars will happen, replacing a quadratic algorithm with a linear one.
14880
5d560619
JJ
148812009-01-03 Jakub Jelinek <jakub@redhat.com>
14882
14883 PR target/38707
14884 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
14885 can't be used.
14886
953a7caa
DN
148872009-01-03 Diego Novillo <dnovillo@google.com>
14888
14889 * doc/contrib.texi: Update contributions.
14890
5f26a230
JJ
148912009-01-03 Jakub Jelinek <jakub@redhat.com>
14892
493aa551
JJ
14893 PR c++/38705
14894 * builtins.c (fold_builtin_memory_op): Give up if either operand
14895 is volatile. Set srctype or desttype to non-qualified version
14896 of the other type.
14897
5f26a230
JJ
14898 PR c/38700
14899 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
14900 and FUNCTION_DECLs.
14901
c95b2534 149022009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
14903
14904 PR rtl-optimization/35805
14905 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
14906 problem if fast dce is able to remove any instructions.
14907 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 14908
0b355794
MM
149092009-01-02 Mark Mitchell <mark@codesourcery.com>
14910
14911 PR 33649
14912 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
14913
0cf0d02b
JJ
149142009-01-02 Jakub Jelinek <jakub@redhat.com>
14915
14916 PR middle-end/38690
14917 * tree-flow.h (op_code_prio, op_prio): New prototypes.
14918 * tree-pretty-print.c (op_code_prio): New function.
14919 (op_prio): No longer static. Use op_code_prio.
14920 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
14921 Use op_prio and op_code_prio to determine if () should be
14922 printed around operand(s) or not.
14923
14924 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
14925 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
14926 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
14927 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
14928 pp_character instead of pp_string for single letter printing.
14929
e3606f3b
RS
149302009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
14931
14932 * doc/extend.texi: Fix '#pragma GCC option' typo.
14933
c95b2534 149342009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 14935
a5f061dc
RG
14936 * doc/install.texi (--enable-checking): Mention different
14937 default for stage1.
14938 (--enable-stage1-checking): Document.
00f39bd5 14939
26de0bcb
AP
149402009-01-01 Andrew Pinski <pinskia@gmail.com>
14941
14942 PR middle-end/30142
14943 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
14944 case to be an error.
14945
7a7d8fab
BE
149462009-01-02 Ben Elliston <bje@au.ibm.com>
14947
14948 * config/fp-bit.h (pack_d): Constify argument.
14949 * config/fp-bit.c (makenan): Constify return type. Remove casts.
14950 (isnan): Constify argument.
14951 (isinf): Likewise.
14952 (iszero): Likewise.
14953 (pack_d): Likewise.
14954 (_fpadd_parts): Constify return type.
14955 (_fpmul_parts): Likewise.
14956 (_fpdiv_parts): Likewise.
14957
b295aee2
JJ
149582009-01-01 Jakub Jelinek <jakub@redhat.com>
14959
14960 PR c/36489
14961 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
14962 warn about overwriting initializer with side-effects or
14963 -Woverride-init if !IMPLICIT.
14964 (output_init_element): Likewise. Pass IMPLICIT down to
14965 add_pending_init.
14966 (process_init_element): Add IMPLICIT argument. Pass it down
14967 to output_init_element.
14968 (push_init_element, pop_init_level, set_designator): Adjust
14969 process_init_element callers.
14970 (set_nonincremental_init, set_nonincremental_init_from_string):
14971 Adjust add_pending_init callers.
14972 (output_pending_init_elements): Adjust output_init_element callers.
14973 * c-tree.h (process_init_element): Adjust prototype.
14974 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14975 process_init_element callers.
ad41bd84
JM
14976
14977\f
14978Copyright (C) 2009 Free Software Foundation, Inc.
14979
14980Copying and distribution of this file, with or without modification,
14981are permitted in any medium without royalty provided the copyright
14982notice and this notice are preserved.