]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR middle-end/40745 (Revision 149624 caused x86-64 failures)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
0b200b80
RG
12009-07-14 Richard Guenther <rguenther@suse.de>
2
3 PR middle-end/40745
4 * cfgexpand.c (partition_stack_vars): Do not bother to update
5 alias information when not optimizing.
6
55b34b5f
RG
72009-07-14 Richard Guenther <rguenther@suse.de>
8 Andrey Belevantsev <abel@ispras.ru>
9
10 * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
11 (pt_solution_set): Likewise.
12 * tree-ssa-alias.c (refs_may_alias_p_1): Export.
13 * tree-ssa-structalias.c (pt_solution_set): New function.
14 * final.c (rest_of_clean_state): Free SSA data structures.
15 * print-rtl.c (print_decl_name): Remove.
16 (print_mem_expr): Implement in terms of print_generic_expr.
17 * alias.c (ao_ref_from_mem): New function.
18 (rtx_refs_may_alias_p): Likewise.
19 (true_dependence): Query alias-export info.
20 (canon_true_dependence): Likewise.
21 (write_dependence_p): Likewise.
22 * tree-dfa.c (get_ref_base_and_extent): For void types leave
23 size unknown.
24 * emit-rtl.c (component_ref_for_mem_expr): Remove.
25 (mem_expr_equal_p): Use operand_equal_p.
26 (set_mem_attributes_minus_bitpos): Do not use
27 component_ref_for_mem_expr.
28 * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
29 (update_alias_info_with_stack_vars): Likewise.
30 (partition_stack_vars): Call update_alias_info_with_stack_vars.
31 * tree-ssa.c (delete_tree_ssa): Do not release SSA names
32 explicitly nor clear stmt operands.
33 Free the decl-to-pointer map.
34 * tree-optimize.c (execute_free_datastructures): Do not free
35 SSA data structures here.
36 * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
37 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
38 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
39 dependencies.
40 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
41
a46f0964
DD
422009-07-13 DJ Delorie <dj@redhat.com>
43
1700c2e7
DD
44 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
45 unrolling at the right iteration count.
46
a46f0964
DD
47 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
48 calculations.
49
ee4764a8
GS
502009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
51
52 * haifa-sched.c
53 (rank_for_schedule): Introduced flags to enable/disable
54 individual scheduling heuristics.
55 * common.opt: Introduced flags to enable/disable
56 individual heuristics in the scheduler.
57 * doc/invoke.texi: Introduced flags to enable/disable
58 individual heuristics in the scheduler.
59
9122666c
KT
602009-07-13 Kai Tietz <kai.tietz@onevision.com>
61
62 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
63 config/i386/mingw-tls.c.
64 * config/i386/mingw-tls.c: Removed.
65
2f3e235b
IR
662009-07-13 Ira Rosen <irar@il.ibm.com>
67
68 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
69 checks access only relevant statements.
70 (vectorizable_reduction): Likewise.
71
f345f84a
KT
722009-07-12 Kai Tietz <kai.tietz@onevision.com>
73
74 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
75 just for 32-bit case.
76
f645e9a2
JH
772009-07-12 Jan Hubicka <jh@suse.cz>
78
79 PR tree-optimization/40585
80 * except.c (expand_resx_expr): When there already is resume
81 instruction, produce linked list.
82 (build_post_landing_pads): Assert that resume is empty.
83 (connect_post_landing_pads): Handle resume lists.
84 (dump_eh_tree): Dump resume list.
85
06066f92
IR
862009-07-12 Ira Rosen <irar@il.ibm.com>
87
88 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
89 with additional argument.
7c8b1a77 90 * tree-vectorizer.h (enum vect_def_type): Add
06066f92
IR
91 vect_double_reduction_def.
92 (vect_is_simple_reduction): Add argument.
7c8b1a77 93 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
06066f92
IR
94 indentation.
95 (vect_analyze_scalar_cycles_1): Detect double reduction. Call
96 vect_is_simple_reduction with additional argument.
97 (vect_analyze_loop_operations): Handle exit phi nodes in case of
98 double reduction.
99 (reduction_code_for_scalar_code): Handle additional codes by
100 returning ERROR_MARK for them. Fix comment and indentation.
101 (vect_is_simple_reduction): Fix comment, add argument to specify
102 double reduction. Detect double reduction.
103 (get_initial_def_for_induction): Fix indentation.
104 (get_initial_def_for_reduction): Fix comment and indentation.
105 Handle double reduction. Create initial definitions that do not
106 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
107 (vect_create_epilog_for_reduction): Fix comment, add argument to
108 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
109 epilogue result extraction. Create double reduction phi node and
110 replace relevant uses.
111 (vectorizable_reduction): Call vect_is_simple_reduction with
112 additional argument. Fix indentation. Update epilogue code treatment
7c8b1a77 113 according to the changes in reduction_code_for_scalar_code. Check
06066f92
IR
114 for double reduction. Call vect_create_epilog_for_reduction with
115 additional argument.
116 * tree-vect-stmts.c (process_use): Handle double reduction, update
117 documentation.
118 (vect_mark_stmts_to_be_vectorized): Handle double reduction.
119 (vect_get_vec_def_for_operand): Likewise.
120
b20231fe
DS
1212009-07-12 Danny Smith <dansmister@gmail.com>
122
123 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
124 dllexport if !TREE_PUBLIC.
125 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
126
97c281da
AS
1272009-07-11 Anatoly Sokolov <aesok@post.ru>
128
129 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
130 (avr_extra_arch_macro) Remove declatation.
131 * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
132 (avr_extra_arch_macro) Declare as static.
133 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
134
6b45de00
JH
1352009-07-11 Jan Hubicka <jh@suse.cz>
136
137 PR middle-end/48388
138 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
139
dd67163f
JJ
1402009-07-11 Jakub Jelinek <jakub@redhat.com>
141
3e3a9a6a
JJ
142 PR debug/40713
143 * dwarf2out.c (dw_fde_struct): Add in_std_section and
144 cold_in_std_section bits.
145 (dwarf2out_begin_prologue): Initialize them.
146 (dwarf2out_finish): Don't emit FDE range into .debug_ranges
147 if already covered by text_section or cold_text_section range.
148
ae58e548
JJ
149 PR rtl-optimization/40667
150 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
151 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
152 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
153 * config/i386/i386.c (ix86_minimum_alignment): New function.
154 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
155 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
156 * emit-rtl.c (gen_reg_rtx): Likewise.
157 * function.c (assign_parms): Likewise. If nominal_type needs
158 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
159 rather than passed_type's alignment.
160
dd67163f
JJ
161 PR target/40668
162 * function.c (assign_parm_setup_stack): Adjust
163 MEM_OFFSET (data->stack_parm) if promoted_mode is different
164 from nominal_mode on big endian.
165
e9edda23
PB
1662009-07-11 Paolo Bonzini <bonzini@gnu.org>
167
168 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
169
82e45095
DD
1702009-07-10 DJ Delorie <dj@redhat.com>
171
172 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
173
98ac6510
MM
1742009-07-10 Mark Mitchell <mark@codesourcery.com>
175
176 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
177 attribute.
178 (thumb2_cbnz): Likewise.
179
b96c5923
DD
1802009-07-10 David Daney <ddaney@caviumnetworks.com>
181
182 PR target/39079
183 * config.gcc (supported_defaults): Add synci.
184 (with_synci): Add validation.
185 (all_defaults): Add synci.
186 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
187 ISA_HAS_SYNCI.
188 (synci): Same.
189 * config/mips/mips.opt (msynci): New option.
190 * config/mips/mips.c (mips_override_options): Warn on use of
191 -msynci for targets that do now support it.
192 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
193 msynci.
194 * gcc/doc/invoke.texi (-msynci): Document the new option.
195 * doc/install.texi (--with-synci): Document the new option.
196
182e00b1
RG
1972009-07-10 Richard Guenther <rguenther@suse.de>
198
199 PR tree-optimization/40496
200 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
201 the PHI result with a compatible type.
202
156f545a
MLI
2032009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
204
205 PR 25509
206 PR 40614
207 * c.opt (Wunused-result): New.
208 * doc/invoke.texi: Document it.
209 * c-common.c (c_warn_unused_result): Use it.
210
06c43499
DD
2112009-07-09 DJ Delorie <dj@redhat.com>
212
5cec9f59
DD
213 * targhooks.c (default_target_can_inline_p): Rename from
214 default_target_option_can_inline_p.
215 * targhooks.h (default_target_can_inline_p): Likewise.
216 * target-def.h (TARGET_CAN_INLINE_P): Rename from
217 TARGET_OPTION_CAN_INLINE_P.
218 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
219 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
220 (mep_target_can_inline_p): Rename from
221 mep_target_option_can_inline_p.
222
223 PR target/40626
b9263ae5
DD
224 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
225 registers used to pass vectors.
226
06c43499
DD
227 * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
228
a80b0574
TT
2292009-07-09 Tom Tromey <tromey@redhat.com>
230
231 * unwind-dw2-fde-darwin.c: Include dwarf2.h.
232 * config/mmix/mmix.c: Include dwarf2.h.
233 * config/rs6000/darwin-fallback.c: Include dwarf2.h.
234 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
235 * config/sh/sh.c: Include dwarf2.h.
236 * config/i386/i386.c: Include dwarf2.h.
237 * Makefile.in (DWARF2_H): Remove 'elf'.
238 * except.c: Include dwarf2.h.
239 * unwind-dw2.c: Include dwarf2.h.
240 * dwarf2out.c: Include dwarf2.h.
241 * unwind-dw2-fde-glibc.c: Include dwarf2.h.
242 * unwind-dw2-fde.c: Include dwarf2.h.
243 * dwarf2asm.c: Include dwarf2.h.
244
356c23b3 2452009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
7c8b1a77 246
356c23b3 247 * haifa-sched.c (insn_finishes_cycle_p): New static function.
7c8b1a77
UB
248 (max_issue): Use it.
249 * sched-int.h (struct sched_info: insn_finishes_block_p): New
250 scheduler hook.
251 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
252 (region_sched_info): Update.
253 * sched-ebb.c (ebb_sched_info): Update.
254 * modulo-sched.c (sms_sched_info): Update.
356c23b3
MK
255 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
256
5223c588
MK
2572009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
258
259 * varasm.c (build_constant_desc): Don't share RTL in pool entries.
8d4cf6d7
BS
260
2612009-07-09 Basile Starynkevitch <basile@starynkevitch.net>
262
263 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
264
b9da76de
JJ
2652009-07-09 Jakub Jelinek <jakub@redhat.com>
266
267 PR middle-end/40692
268 * fold-const.c (fold_cond_expr_with_comparison): Don't replace
269 arg1 with arg01 if arg1 is already INTEGER_CST.
270
fcaf7e12
AN
2712009-07-08 Adam Nemet <anemet@caviumnetworks.com>
272
7c8b1a77
UB
273 * simplify-rtx.c (simplify_binary_operation_1) <AND>:
274 Transform (and (truncate)) into (truncate (and)).
fcaf7e12 275
3f36bac2
AN
2762009-07-08 Adam Nemet <anemet@caviumnetworks.com>
277
278 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
279 creating LHS paradoxical subregs. Fix surrounding returns to
280 use NULL_RTX rather than 0.
281
ae30c1fa
DD
2822009-07-08 DJ Delorie <dj@redhat.com>
283
284 * config/mep/mep.c: (mep_option_can_inline_p): New.
285 (TARGET_OPTION_CAN_INLINE_P): Define.
286
3d78d293
MW
2872009-07-08 Mark Wielaard <mjw@redhat.com>
288
289 PR debug/40659
290 * dwarf2out.c (add_data_member_location_attribute): When we have
291 only a constant offset don't emit a new location description using
292 DW_OP_plus_uconst, but just add the constant with add_AT_int, when
293 dwarf_version > 2.
294
ac2e563f
RH
2952009-07-08 Richard Henderson <rth@redhat.com>
296
297 PR target/38900
298 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
299 (enum reg_class): Add CLOBBERED_REGS.
300 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
301 * config/i386/i386.c (ix86_conditional_register_usage): Moved
302 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
303 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls.
304 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't
305 force 64-bit sibcalls into R11.
306 * config/i386/constraints.md (U): New constraint.
307 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
308 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
309 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
310
8ed77e22
SZ
3112009-07-08 Shujing Zhao <pearly.zhao@oracle.com>
312
313 * basic-block.h (dump_regset, debug_regset): Remove duplicate
314 prototypes.
315 * c-objc-common.h (c_initialize_diagnostics): Ditto.
316 * ebitmap.h (dump_ebitmap): Ditto.
317 * optabs.h (optab_libfunc): Ditto.
318 * tree.h (tree_expr_nonzero_warnv_p): Ditto.
319 * tree-flow.h (vect_can_force_dr_alignment_p,
3f36bac2 320 get_vectype_for_scalar_type): Ditto.
8ed77e22 321 (vectorize_loops): Move prototype to ...
3f36bac2 322 * tree-vectorizer.h: ... here. Also, adjust comment.
8ed77e22
SZ
323 (vect_set_verbosity_level): Remove duplicate prototype.
324 * tree-ssa-loop.c: Include tree-vectorizer.h.
325 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
326
c6075b13
NC
3272009-07-08 Nick Clifton <nickc@redhat.com>
328
329 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
330 forward slash.
331
d1b5afd5
DD
3322009-07-08 DJ Delorie <dj@redhat.com>
333
334 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
335 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
336 cpmovtocc_P0S_P1): Mark volatile. Note which registers are
337 written to.
338 * config/mep/intrinsics.md: Regenerated.
339 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
340 registers when asm() or calls are detected.
3f36bac2 341
d665b6e5
MLI
3422009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
343
344 PR c++/31246
345 * gimplify.c (gimplify_expr): Propagate no_warning flag when
346 gimplifying.
347 * gimple (gimple_build_call_from_tree): Likewise.
348 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
349 no_warning flag before warning.
3f36bac2 350
5e278028
MLI
3512009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
352
353 * tree.c (set_expr_locus): Remove.
354 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
355 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by
356 EXPR_LOCATION.
357 * gimplify.c (internal_get_tmp_var): Likewise.
358 (gimplify_call_expr): Likewise.
359 (gimplify_one_sizepos): Likewise.
360
ed3346c2
EB
3612009-07-07 Eric Botcazou <ebotcazou@adacore.com>
362
363 PR debug/40666
364 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
365 to variables for debugging purposes.
366
4db19cc7
ML
3672009-06-23 Mark Loeser <mark@halcy0n.com>
368
369 PR build/40010
370 * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
371
72f90fde
MLI
3722009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
373
374 * pretty-print.c (pp_base_format): Remove %J.
375 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
376 gcc_cxxdiag_char_table): Likewise.
377 (init_dynamic_diag_info): Likewise.
4db19cc7 378
dcb91ebe
MLI
3792009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
380
381 * pretty-print.c (pp_base_format): Remove %H.
382 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
383 gcc_cxxdiag_char_table): Likewise.
384 (init_dynamic_diag_info): Likewise.
385 * config/mep/mep.c (mep_select_section): Likewise.
386
cf400ddb
DS
3872009-07-07 Duncan Sands <baldrick@free.fr>
388
7c8b1a77
UB
389 * final.c (pass_clean_state): Give the pass a name.
390 * passes.c (pass_rest_of_compilation): Likewise.
391 * tree-optimize.c (pass_all_optimizations): Likewise.
cf400ddb 392
d575725b
L
3932009-07-07 H.J. Lu <hongjiu.lu@intel.com>
394
395 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
396 an extra 'decl' for error_at.
397
535536b4
JJ
3982009-07-07 Jakub Jelinek <jakub@redhat.com>
399
400 PR middle-end/40669
401 * tree-tailcall.c (adjust_return_value_with_ops,
402 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
403 if it has complex or vector type.
404
f062f8f2
OH
4052009-07-07 Olivier Hainque <hainque@adacore.com>
406
d575725b
L
407 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
408 pthread symbols.
f062f8f2 409
cac1b0ee
BS
4102009-07-07 Basile Starynkevitch <basile@starynkevitch.net>
411
412 * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
413
c5d75364
MLI
4142009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
415
7c8b1a77 416 * cgraphunit.c: Replace %J by an explicit location. Update all calls.
c5d75364
MLI
417 * c-decl.c: Likewise.
418 * function.c: Likewise.
419 * varasm.c: Likewise.
420 * tree-ssa.c: Likewise.
421 * c-common.c: Likewise.
422 * tree-cfg.c: Likewise.
423 * config/spu/spu.c: Likewise.
424 * config/ia64/ia64.c: Likewise.
425 * config/v850/v850.c: Likewise.
426
b932c20b
DD
4272009-07-06 DJ Delorie <dj@redhat.com>
428
429 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
430 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
431 unspecified accesses to control registers.
432 * config/mep/intrinsics.md: Regenerate.
433 * config/mep/intrinsics.h: Regenerate.
434 * config/mep/mep-intrin.h: Regenerate.
3f36bac2 435
fab922b1
MLI
4362009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
437
438 * c-lex.c: Replace %H by an explicit location. Update all calls.
439 * c-common.c: Likewise.
440 * c-decl.c: Likewise.
441 * c-typeck.c: Likewise.
442 * fold-const.c: Likewise.
443 * gimplify.c: Likewise.
444 * stmt.c: Likewise.
445 * tree-cfg.c: Likewise.
446 * tree-ssa-loop-niter.c: Likewise.
447 * tree-vrp.c: Likewise.
448 * value-prof.c: Likewise.
449
66350781
DN
4502009-07-06 Diego Novillo <dnovillo@google.com>
451
452 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
453 if it has one. Handle cases where VAR does not have an
454 annotation or cfun is NULL.
455
d251bfca
DN
4562009-07-06 Diego Novillo <dnovillo@google.com>
457
458 * tree.c: Include debug.h.
459 (initialize_tree_contains_struct): New.
460 (init_ttree): Call it.
461 (tree_node_structure_for_code): Factor out of ...
462 (tree_node_structure): ... here.
463 * treestruct.def (TS_PHI_NODE): Remove.
464 (TS_GIMPLE_STATEMENT): Remove.
465
e923c8ea
DN
4662009-07-06 Diego Novillo <dnovillo@google.com>
467
7c8b1a77 468 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
e923c8ea
DN
469 (debug_tree_chain): Handle cycles.
470
7a61cf6f
NC
4712009-07-06 Nick Clifton <nickc@redhat.com>
472 DJ Delorie <dj@redhat.com>
473
474 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
475 __FMOVD_ENABLED__ is defined.
476 * config/sh/sh.h
477 (TARGET_FMOVD): Provide a default definition.
478 (MASK_FMOVD): Likewise.
479 (TARGET_CPU_CPP_BUILTINS): Define
480 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
481 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
7c8b1a77 482 two fmov instructions depending upon whether TARGET_FMOVD is enabled.
7a61cf6f
NC
483 (split for DF load from memory into register): Also handle
484 MEMs which consist of REG+DISP addressing.
485 (split for DF store from register to memory): Likewise.
486 (movsf_ie): Always use single fp_mode.
487 * config/sh/sh.c (sh_override_options): Do not automatically
488 enable TARGET_MOVD for the SH2A when supporting doubles - leave
489 that to the -mfmovd command line switch.
490 (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
491 (fldi_ok): Always allow.
492 * config/sh/sh.opt (mfmovd): Remove this switch.
493 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
494
83f63251
R
4952009-07-06 J"orn Rennecke <joern.rennecke@arc.com>
496 Kaz Kojima <kkojima@gcc.gnu.org>
497
498 PR rtl-optimization/30807
499 * postreload.c (reload_combine): For every new use of REG_SUM,
500 record the use of BASE.
501
172d54e0
JH
5022009-07-06 Jan Hubicka <jh@suse.cz>
503
504 * params.def: Revert my accidental commit at 2009-06-30.
505
34097e36
ILT
5062009-07-04 Ian Lance Taylor <iant@google.com>
507
508 PR target/40636
509 * config/i386/msformat-c.c (mingw_format_attributes): Declare as
510 EXPORTED_CONST.
511 (mingw_format_attribute_overrides): Likewise.
512
bd5b2c2d
JJ
5132009-07-04 Jakub Jelinek <jakub@redhat.com>
514
515 PR debug/40596
516 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
517 don't check cfa.reg. Instead of cfa.indirect use
518 fde && fde->drap_reg != INVALID_REGNUM test.
519
39ba6ab7
EB
5202009-07-04 Eric Botcazou <ebotcazou@adacore.com>
521
522 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
523
54a0ac2d
VM
5242009-07-03 Vladimir Makarov <vmakarov@redhat.com>
525
526 PR target/40587
7c8b1a77 527 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
3f36bac2 528
fae1034e
RG
5292009-07-03 Richard Guenther <rguenther@suse.de>
530
531 PR tree-optimization/40640
532 * tree-switch-conversion.c (build_arrays): Perform arithmetic
533 in original type.
534
ba8978d0
JH
5352009-07-03 Jan Hubicka <jh@suse.cz>
536
537 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
538 for size, reduce amount of inlining.
539
d73fb533
RG
5402009-07-03 Richard Guenther <rguenther@suse.de>
541
542 PR middle-end/34163
7c8b1a77
UB
543 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
544 if t +- x is known to not overflow and the conversion widens the
545 operation.
d73fb533
RG
546 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
547
7351bcaa
JH
5482009-07-03 Jan Hubicka <jh@suse.cz>
549
550 * ipa-pure-const.c (analyze): Update loop optimizer init.
551 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
552 try_remove_empty_loop, remove_empty_loops): Remove.
553 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
554 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
555 to mark regular loops as neccesary.
556 (degenerate_phi_p): New function.
557 (propagate_necessity, remove_dead_phis): Use it.
558 (forward_edge_to_pdom): Likewise.
559 (eliminate_unnecessary_stmts): Take care to remove uses of results of
560 virtual PHI nodes that became unreachable.
561 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
562 * tree-flow.h (remove_empty_loops): Remove.
563 * passes.c (init_optimization_passes): Remove.
564
5071eab7
UB
5652009-07-03 Uros Bizjak <ubizjak@gmail.com>
566
567 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
568 can_create_pseudo_p.
569 (*fix_trunc<mode>_i387_1): Ditto.
570 (*floathi<mode>2_1): Ditto.
571 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
572 (*fistdi2_1): Ditto.
573 (*fist<mode>2_1): Ditto.
574 (frndintxf2_floor): Ditto.
575 (*fist<mode>2_floor_1): Ditto.
576 (frndintxf2_ceil): Ditto.
577 (*fist<mode>2_ceil_1): Ditto.
578 (frndintxf2_trunc): Ditto.
579 (frndintxf2_mask_pm): Ditto.
580 (fxam<mode>2_i387_with_temp): Ditto.
581 * config/i386/sse.md (mulv16qi3): Ditto.
582 (*sse2_mulv4si3): Ditto.
583 (mulv2di3): Ditto.
584 (sse4_2_pcmpestr): Ditto.
585 (sse4_2_pcmpistr): Ditto.
586
1fc41282
JH
5872009-07-03 Jan Hubicka <jh@suse.cz>
588
589 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
590 (mark_stmt_necessary): Set it.
591 (mark_operand_necessary): Set it.
592 (mark_control_dependent_edges_necessary): Set it.
593 (mark_virtual_phi_result_for_renaming): New function.
594 (get_live_post_dom): New function.
595 (forward_edge_to_pdom): New function.
596 (remove_dead_stmt): Fix handling of control dependences.
597 (tree_dce_init): Init new bitmap.
598 (tree_dce_done): Free it.
599
02583d3c
RG
6002009-07-02 Richard Guenther <rguenther@suse.de>
601
602 PR bootstrap/40617
603 * tree-ssa-structalias.c (new_var_info): Initialize
604 is_restrict_var.
605
3c1832c3
JH
6062009-07-02 Jan Hubicka <jh@suse.cz>
607
608 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
609 local.
610
92355a9c
PB
6112009-07-02 Paolo Bonzini <bonzini@gnu.org>
612
613 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
614 instead of recomputing it. Adjust calls.
615 (emit_store_flag): Adjust recursive calls.
616
91deb937
RG
6172009-07-02 Richard Guenther <rguenther@suse.de>
618
619 * tree-ssa-live.c (remove_unused_locals): Do not remove
620 heap variables.
621 * tree-ssa-structalias.c (handle_lhs_call): Delay setting
622 of DECL_EXTERNAL for HEAP variables.
623 (compute_points_to_sets): Set DECL_EXTERNAL for escaped
624 HEAP variables. Do not adjust RESTRICT vars.
625 (find_what_var_points_to): Nobody cares if something
626 points to READONLY.
627
2011dbb0
BE
6282009-07-02 Ben Elliston <bje@au.ibm.com>
629
630 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
631 pc_low and pc_high declarations to the top of the function.
632
f2082f90
DD
6332009-07-01 DJ Delorie <dj@redhat.com>
634
635 * config/mep/mep.c (mep_handle_option): Leave IVC2 control
636 registers as fixed.
5071eab7 637 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
f2082f90
DD
638 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
639 unspecified accesses to control registers.
640 * config/mep/intrinsics.md: Regenerate.
641 * config/mep/intrinsics.h: Regenerate.
642 * config/mep/mep-intrin.h: Regenerate.
3f36bac2 643
9df748c0
AG
6442009-07-01 Anthony Green <green@moxielogic.com>
645
646 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
647 instruction when possible.
648 (moxie_expand_prologue): Ditto. Also, save an instruction and
3f36bac2 649 some complexity by popping off of $r12 instead of $sp.
9df748c0
AG
650 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two
651 operands.
3f36bac2 652
997704f1
RH
6532009-07-01 Richard Henderson <rth@redhat.com>
654
655 PR bootstrap/40347
656 * function.c (reposition_prologue_and_epilogue_notes): If epilogue
657 contained no insns, reposition note before last insn.
658
9f2af3ce
RH
6592009-07-01 Richard Henderson <rth@redhat.com>
660
661 PR debug/40431
662 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
663 DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
664
d66a97e2
MM
6652009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
666
667 PR bootstrap/40558
668 * config/rs6000/rs6000.c (print_operand): Undo change that breaks
669 darwin9 for printing reg addresses with %y.
670
479b1013
AN
6712009-07-01 Adam Nemet <anemet@caviumnetworks.com>
672
673 * combine.c (force_to_mode): Handle TRUNCATE. Factor out
674 truncation from operands in binary operations.
675
c600a155
AN
6762009-07-01 Adam Nemet <anemet@caviumnetworks.com>
677
678 Revert:
679 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
680 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
681 subreg of op0 to the original op0.
682
683 * expmed.c (store_bit_field_1): Use a temporary as the destination
684 instead of a paradoxical subreg when we need to truncate the result.
685
a12e9a5f
DD
6862009-07-01 DJ Delorie <dj@redhat.com>
687
5071eab7
UB
688 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
689 names to VLIW variants.
a12e9a5f
DD
690 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
691 * config/mep/intrinsics.md: Regenerate.
692 * config/mep/intrinsics.h: Regenerate.
693 * config/mep/mep-intrin.h: Regenerate.
694
2a5bd62a
JJ
6952009-07-01 Jakub Jelinek <jakub@redhat.com>
696
697 PR debug/40462
698 * jump.c (returnjump_p): Revert last patch.
699 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
700
3232e9d8
JDA
7012009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
702
4aa7f896
JDA
703 PR target/40575
704 * pa.md (casesi32p): Use jump table label to determine the offset
705 of the jump table.
706 (casesi64p): Likewise.
707
5071eab7
UB
708 * pa.c (forward_branch_p): Return bool type. Use instruction
709 addresses when available. Assert that INSN has a jump label.
3232e9d8
JDA
710 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
711 have a jump label.
712
14c41b9b
RG
7132009-07-01 Richard Guenther <rguenther@suse.de>
714
715 PR tree-optimization/19831
716 * tree-ssa-dce.c (propagate_necessity): Calls to functions
5071eab7 717 that only act as barriers do not make any previous stores necessary.
14c41b9b
RG
718 * tree-ssa-structalias.c (handle_lhs_call): Delay making
719 HEAP variables global, do not add a constraint from nonlocal.
720 (find_func_aliases): Handle escapes through return statements.
721 (compute_points_to_sets): Make escaped HEAP variables global.
722
1ed20a40
PB
7232009-07-01 Paolo Bonzini <bonzini@gnu.org>
724
725 PR bootstrap/40597
726 * expmed.c (emit_store_flag): Perform a conversion if necessary,
727 after reducing a DImode cstore to SImode.
728
ce3aea35
PB
7292009-07-01 Paolo Bonzini <bonzini@gnu.org>
730
731 * expr.c (expand_expr_real_1): Reinstate fallthrough to
732 TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
733
1df34d4d
MR
7342009-07-01 Maciej W. Rozycki <macro@linux-mips.org>
735
736 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1.
737 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the
738 to 0.
739 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
740 and umod_optab if TARGET_BSD_DIVMOD.
741 * config/vax/lib1funcs.asm: New file.
742 * config/vax/t-linux: New file.
743 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
744
085e05ac
JJ
7452009-06-30 Jakub Jelinek <jakub@redhat.com>
746
5ccde5a0
JJ
747 PR c++/40566
748 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
749 to type arguments that have void type.
750
085e05ac
JJ
751 PR debug/40573
752 * dwarf2out.c (gen_formal_parameter_die): Call
753 equate_decl_number_to_die if node is different from origin.
754
9fb374d6
AG
7552009-06-30 Anthony Green <green@moxielogic.com>
756
757 Clean up moxie port for --enable-build-with-cxx.
758 * config/moxie/moxie.c (moxie_function_value): First two
759 parameters are const_tree, not tree.
760 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
761 (REG_CLASS_NAMES): Ditto.
762 (REGNO_REG_CLASS): Ditto.
763 * config/moxie/moxie-protos.h (moxie_override_options): Declare.
764 (moxie_function_value): Fix constyness of arguments.
765
f82a627c
EB
7662009-06-30 Eric Botcazou <ebotcazou@adacore.com>
767
768 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
769 finalize_size_functions before further processing.
770 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
771 (variable_size): Call self_referential_size on size expressions
772 that contain a PLACEHOLDER_EXPR.
773 (size_functions): New static variable.
774 (copy_self_referential_tree_r): New static function.
775 (self_referential_size): Likewise.
776 (finalize_size_functions): New global function.
777 * tree.c: Include tree-inline.h.
778 (push_without_duplicates): New static function.
779 (find_placeholder_in_expr): New global function.
780 (substitute_in_expr) <tcc_declaration>: Return the replacement object
781 on equality.
782 <tcc_expression>: Likewise.
783 <tcc_vl_exp>: If the replacement object is a constant, try to inline
784 the call in the expression.
785 * tree.h (finalize_size_functions): Declare.
786 (find_placeholder_in_expr): Likewise.
787 (FIND_PLACEHOLDER_IN_EXPR): New macro.
788 (substitute_placeholder_in_expr): Update comment.
789 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
790 is true.
791 (copy_tree_body_r): Likewise.
792 (copy_tree_body): New static function.
793 (maybe_inline_call_in_expr): New global function.
794 * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
795 (maybe_inline_call_in_expr): Declare.
796 * Makefile.in (tree.o): Depend on TREE_INLINE_H.
797 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
798 GIMPLE_H.
799
67635176
RG
8002009-06-30 Richard Guenther <rguenther@suse.de>
801
802 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
803 continue walking.
804 (propagate_necessity): Do not mark reaching defs of stores
805 as necessary.
806
2de58650
JH
8072009-06-30 Jan Hubicka <jh@suse.cz>
808
809 * cfgloopanal.c (check_irred): Move into ...
810 (mark_irreducible_loops): ... here; return true if ireducible
811 loops was found.
812 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
813 (analyze_function): Try to prove loop finiteness.
814 * cfgloop.h (mark_irreducible_loops): Update prototype.
815 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
816
46db44cc
BS
8172009-06-30 Basile Starynkevitch <basile@starynkevitch.net>
818
819 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
820
1825a1f3
IR
8212009-06-30 Ira Rosen <irar@il.ibm.com>
822
823 PR tree-optimization/40542
824 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
825 types.
826
71d4d3eb
MJ
8272009-06-30 Martin Jambor <mjambor@suse.cz>
828
829 PR tree-optimization/40582
830 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
831 than useless_type_conversion_p.
832 (generate_subtree_copies): Increment sra_stats.subtree_copies at a
833 proper place.
834
f57017cd
MJ
8352009-06-30 Martin Jambor <mjambor@suse.cz>
836
837 PR middle-end/40554
838 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
839
42bc61e0
RG
8402009-06-30 Richard Guenther <rguenther@suse.de>
841
842 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
843 use ao_ref references.
844 (walk_aliased_vdefs): Likewise.
845 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
846 * tree-ssa-dce.c (struct ref_data): Remove.
847 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
848 (mark_aliased_reaching_defs_necessary): Adjust.
849 (mark_all_reaching_defs_necessary_1): Likewise.
850
ef12ae45
PB
8512009-06-30 Paolo Bonzini <bonzini@gnu.org>
852
853 PR boostrap/40597
854 * expmed.c (emit_cstore): New name of emit_store_flag_1.
855 (emit_store_flag_1): Extract from emit_store_flag, adjust
856 calls to (what now is) emit_cstore.
857 (emit_store_flag): Call emit_store_flag_1 and also use it
858 for what used to be recursive calls.
859
791b59e3
WG
8602009-06-30 Wei Guozhi <carrot@google.com>
861
862 PR/40416
863 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
864 if the target bb post dominates from bb.
865 * config/i386/i386.c (memory_address_length): Check existence of base
866 register before using it.
867
7a61cf6f
NC
8682009-06-30 Nick Clifton <nickc@redhat.com>
869 DJ Delorie <dj@redhat.com>
870
871 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
872 __FMOVD_ENABLED__ is defined.
873 * config/sh/sh.h
874 (TARGET_FMOVD): Provide a default definition.
875 (MASK_FMOVD): Likewise.
876 (TARGET_CPU_CPP_BUILTINS): Define
877 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
878 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
879 two fmov instructions depending upon whether TARGET_FMOVD is
880 enabled.
881 (split for DF load from memory into register): Also handle
882 MEMs which consist of REG+DISP addressing.
883 (split for DF store from register to memory): Likewise.
884 * config/sh/sh.opt (mfmovd): Remove this switch.
885 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
886 * config/sh/sh.c (sh_override_options): Do not automatically
887 enable TARGET_MOVD for the SH2A when supporting doubles - leave
888 that to the -mfmovd command line switch.
889
890 * config/sh/sh.c (broken_move): Do not restrict fldi test to only
891 the SH4 and SH4A.
892 (fldi_ok): Always allow.
893 * config/sh/sh.md (movsf_ie): Always use single fp_mode.
894
5a99fe3e
DD
8952009-06-29 DJ Delorie <dj@redhat.com>
896
897 * doc/install.texi (mep-x-elf): Correct chip's full name.
898
ddaa3488
L
8992009-06-29 H.J. Lu <hongjiu.lu@intel.com>
900
901 * doc/extend.texi: Fix typo.
902
bbf531f0
TT
9032009-06-29 Tom Tromey <tromey@redhat.com>
904
905 * dwarf2.h: Remove.
906 * Makefile.in (DWARF2_H): New variable.
907 (except.o): Use it.
908 (dwarf2out.o): Likewise.
909 (dwarf2asm.o): Likewise.
910 * config/i386/t-i386: Use DWARF2_H.
911 * except.c: Include elf/dwarf2.h.
912 * unwind-dw2.c: Include elf/dwarf2.h.
913 * dwarf2out.c: Include elf/dwarf2.h.
914 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
915 <dtprel>: New field.
916 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
917 (size_of_loc_descr): Likewise.
918 (output_loc_operands_raw): Likewise.
919 (output_loc_operands): Handle new dtprel field.
920 (loc_checksum): Update.
921 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
922 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
923 * unwind-dw2-fde.c: Include elf/dwarf2.h.
924 * dwarf2asm.c: Include elf/dwarf2.h.
925 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
926 * config/mmix/mmix.c: Include elf/dwarf2.h.
927 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
928 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
929 * config/sh/sh.c: Include elf/dwarf2.h.
930 * config/i386/i386.c: Include elf/dwarf2.h.
931
e2491744
DD
9322009-06-29 DJ Delorie <dj@redhat.com>
933
bae38135
DD
934 * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
935
e2491744
DD
936 * doc/extend.texi: Add MeP attributes and pragmas.
937 * doc/invoke.text: Add MeP Options.
938 * doc/contrib.texi: Add MeP contribution.
939 * doc/md.texi: Add MeP constraints.
940 * doc/install.texi: Add MeP target.
941
b52b1749
AS
9422009-06-30 Anatoly Sokolov <aesok@post.ru>
943
944 * target.h (struct gcc_target): Add frame_pointer_required field.
945 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
946 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
947 * ira.c (setup_eliminable_regset): Use frame_pointer_required target
948 hook.
949 * reload1.c (update_eliminables): (Ditto.).
950 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
951 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
952 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
953
954 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
955
956 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
957 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
958 (arm_frame_pointer_required): New function.
959
960 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
961 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
962 (avr_frame_pointer_required_p): Declare as static.
963 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
964
965 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
966 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
967 (bfin_frame_pointer_required): Make as static, change return type
968 to bool.
969 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
970
971 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
972 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
973 (cris_frame_pointer_required): New function.
974
975 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
976
977 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
978 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
979 (fr30_frame_pointer_required): New function.
980
981 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
982 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
983 (frv_frame_pointer_required): Make as static, change return type
984 to bool.
985 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
986
987 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
988 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
989 (ix86_frame_pointer_required): Make as static, change return type to
990 bool.
991 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
992
993 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
994 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
995
996 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
997
998 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
999
1000 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
1001
1002 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
1003 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1004 (mips_frame_pointer_required): Make as static.
1005 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
1006
1007 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
1008 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1009 (mmix_frame_pointer_required): Mew function.
1010
1011 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
1012 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1013
1014 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
1015
1016 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
1017
1018 * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
1019
1020 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
1021 (CAN_ELIMINATE): Redefine.
1022 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
1023 (sparc_frame_pointer_required): New function.
1024 (sparc_can_eliminate): New function.
1025 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
1026
1027 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
1028 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1029
1030 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
1031 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
1032 (xtensa_frame_pointer_required): Make as static, change return type
1033 to bool.
1034 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
1035 Remove.
1036
5071eab7 10372009-06-29 Olatunji Ruwase <tjruwase@google.com>
78bf7bd0
OR
1038
1039 * doc/plugins.texi: Document PLUGIN_START_UNIT.
1040 * toplev.c (compile_file): Call PLUGIN_START_UNIT.
1041 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
1042 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
1043 (register_callback): Handle PLUGIN_START_UNIT.
1044 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
1045
96da8066
EB
10462009-06-29 Eric Botcazou <ebotcazou@adacore.com>
1047
1048 * tree.c (process_call_operands): Propagate TREE_READONLY from the
1049 operands.
1050 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
1051 (build3_stat): Propagate TREE_READONLY for COND_EXPR.
1052
356ecb15
DJ
10532009-06-29 Daniel Jacobowitz <dan@codesourcery.com>
1054
1055 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
1056 move cost.
1057
897eef7b
UB
10582009-06-29 Uros Bizjak <ubizjak@gmail.com>
1059
1060 * doc/extend.texi (Additional Floating Types): __float128 is also
1061 supported on i386 targets.
1062
74d27244
RG
10632009-06-29 Richard Guenther <rguenther@suse.de>
1064
1065 PR middle-end/14187
1066 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1067 flag.
1068 (pt_solutions_same_restrict_base): Declare.
1069 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
1070 flag.
1071 (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
1072 (make_constraint_from, make_copy_constraint): Move earlier.
1073 (make_constraint_from_heapvar): New function.
1074 (make_constraint_from_restrict): Likewise.
1075 (handle_lhs_call): Use it.
1076 (find_func_aliases): Use it to track conversions to restrict
1077 qualified pointers.
1078 (struct fieldoff): Add only_restrict_pointers flag.
1079 (push_fields_onto_fieldstack): Initialize it.
1080 (create_variable_info_for): Track global restrict qualified pointers.
1081 (intra_create_variable_infos): Use make_constraint_from_heapvar.
1082 Track restrict qualified pointer arguments.
1083 (set_uids_in_ptset): Use varinfo is_global_var flag.
1084 (find_what_var_points_to): Set the vars_contains_restrict flag.
1085 Always create the points-to solution for sets including restrict tags.
1086 (pt_solutions_same_restrict_base): New function.
1087 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
1088 qualified pointers use pt_solutions_same_restrict_base as
1089 additional source for disambiguation.
1090
5b21f0f3
RG
10912009-06-29 Richard Guenther <rguenther@suse.de>
1092
1093 PR middle-end/38212
1094 * alias.c (find_base_decl): Remove.
1095 (get_deref_alias_set_1): Remove restrict handling.
1096 * c-common.c (c_apply_type_quals_to_decl): Do not set
1097 DECL_POINTER_ALIAS_SET.
1098 * gimplify.c (find_single_pointer_decl_1): Remove.
1099 (find_single_pointer_decl): Likewise.
1100 (internal_get_tmp_var): Remove restrict handling.
1101 (gimple_regimplify_operands): Likewise.
1102 * omp-low.c (expand_omp_atomic_pipeline): Do not set
1103 DECL_POINTER_ALIAS_SET. Use ref-all pointers.
1104 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
1105 * tree.c (restrict_base_for_decl): Remove.
1106 (init_ttree): Do not allocate it.
1107 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
1108 LABEL_DECL_UID for label decls.
1109 (copy_node_stat): Do not copy restrict information.
1110 (decl_restrict_base_lookup): Remove.
1111 (decl_restrict_base_insert): Likewise.
1112 (print_restrict_base_statistics): Likewise.
1113 (dump_tree_statistics): Do not call print_restrict_base_statistics.
1114 * tree.h (DECL_POINTER_ALIAS_SET): Remove.
1115 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
1116 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
1117 (LABEL_DECL_UID): Adjust.
1118 (DECL_BASED_ON_RESTRICT_P): Remove.
1119 (DECL_GET_RESTRICT_BASE): Likewise.
1120 (SET_DECL_RESTRICT_BASE): Likewise.
1121 (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
1122
1123 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
1124 instead of DECL_POINTER_ALIAS_SET.
1125 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
1126 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
1127 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
1128
09a782eb
RG
11292009-06-29 Richard Guenther <rguenther@suse.de>
1130
1131 PR tree-optimization/40579
1132 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
1133 the IL to simplify has constants that overflowed.
1134
1e9ae5ab
UB
11352009-06-28 Uros Bizjak <ubizjak@gmail.com>
1136
1137 PR tree-optimization/40550
1138 * tree-vect-generic.c (expand_vector_operations_1): Compute in
1139 vector_compute_type only when the size of vector_compute_type is
1140 less than the size of type.
1141
c703e618
EB
11422009-06-28 Eric Botcazou <ebotcazou@adacore.com>
1143
1144 * fold-const.c (contains_label_1): Fix comments.
1145 (contains_label_p): Do not walk trees multiple time.
1146
0948ccb2
PB
11472009-06-28 Paolo Bonzini <bonzini@gnu.org>
1148
897eef7b
UB
1149 * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
1150 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
1151 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
1152 ix86_fp_comparison_operator.
1153 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
1154 *fp_jcc_2_sse, *fp_jcc_2_387): Delete
1155 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
1156 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
1157 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
1158 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
1159 (related splits): Change predicate to ix86_fp_comparison_operator.
1160 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
1161 instead of ix86_fp_comparison_codes.
1162 (ix86_trivial_fp_comparison_operator,
1163 ix86_fp_comparison_operator): New.
1164 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
1165 (ix86_expand_compare): Eliminate last two parameters.
1166 (ix86_fp_jump_nontrivial_p): Kill.
1167 * config/i386/i386.c (put_condition_code): Eliminate call to
1168 ix86_fp_comparison_codes and subsequent assertion.
1169 (ix86_fp_comparison_codes): Eliminate.
1170 (ix86_fp_swap_condition): New.
1171 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
1172 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
1173 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
1174 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
1175 and ix86_fp_swap_condition.
1176 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
1177 Use ix86_fp_comparison_strategy.
1178 (ix86_expand_compare): Likewise. Eliminate last two arguments.
1179 (ix86_fp_jump_nontrivial_p): Eliminate.
1180 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust
1181 call to ix86_expand_compare.
1182 (ix86_split_fp_branch, ix86_expand_setcc,
1183 ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
1184 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
0948ccb2 1185
accbd151
PB
11862009-06-28 Paolo Bonzini <bonzini@gnu.org>
1187
897eef7b
UB
1188 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
1189 related to jump_clobbers.
1190 * config/arm/arm.md (conds): Remove jump_clob case.
1191 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
1192 splits): Change comparison_operator to arm_comparison_operator.
1193 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
1194 Eliminate.
accbd151 1195
45475a3f
PB
11962009-06-28 Paolo Bonzini <bonzini@gnu.org>
1197
897eef7b
UB
1198 * dojump.c (do_compare_rtx_and_jump): Try swapping the
1199 condition for floating point modes.
1200 * expmed.c (emit_store_flag_1): Move here a bigger part
1201 of emit_store_flag.
1202 (emit_store_flag): Try swapping the condition for floating point
1203 modes.
1204 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
45475a3f 1205
495499da
PB
12062009-06-28 Paolo Bonzini <bonzini@gnu.org>
1207
897eef7b
UB
1208 * expr.c (expand_expr_real_1): Just use do_store_flag.
1209 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use
1210 emit_store_flag_force.
1211 * expmed.c (emit_store_flag_force): Copy here trick
1212 previously in expand_expr_real_1. Try reversing the comparison.
1213 (emit_store_flag_1): Work if target is NULL.
1214 (emit_store_flag): Work if target is NULL, using the result mode
1215 from the comparison. Use split_comparison, restructure final part
1216 to simplify conditionals.
495499da 1217
337e5d98
PB
12182009-06-28 Paolo Bonzini <bonzini@gnu.org>
1219
897eef7b
UB
1220 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
1221 * dojump.c (do_jump): Change handling of floating-point
1222 ops to use just do_compare_and_jump.
1223 (split_comparison): New.
1224 (do_compare_rtx_and_jump): Add here logic coming previously
1225 in do_jump, using split_comparison.
337e5d98 1226
2ca57608
L
12272009-06-27 H.J. Lu <hongjiu.lu@intel.com>
1228
1229 PR target/40489
1230 * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
1231
8122ccf1
PB
12322009-06-27 Paolo Bonzini <bonzini@gnu.org>
1233
1234 * tree-ssa-alias.c: Fix unintentional commit.
1235
b9cafe60
PB
12362009-06-27 Paolo Bonzini <bonzini@gnu.org>
1237
1238 * passes.c (execute_one_pass): Fix unintentional commit.
1239
4c78c26b
PB
12402009-06-27 Paolo Bonzini <bonzini@gnu.org>
1241
2ca57608
L
1242 * df-problems.c (df_set_seen, df_unset_seen): Delete.
1243 (df_rd_local_compute, df_md_local_compute): Inline them.
4c78c26b 1244
2ca57608
L
1245 (df_md_scratch): New.
1246 (df_md_alloc, df_md_free): Allocate/free it.
1247 (df_md_local_compute): Only include live registers in init.
1248 (df_md_transfer_function): Prune the in-set computed by
1249 the confluence function, and the gen-set too.
4c78c26b
PB
1250
12512009-06-27 Paolo Bonzini <bonzini@gnu.org>
c6741572
PB
1252
1253 PR rtl-optimization/26854
2ca57608
L
1254 * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
1255 * df-problems.c (df_rd_add_problem): Fix comment.
1256 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
1257 df_md_simulate_artificial_defs_at_top,
1258 df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
1259 df_md_bb_local_compute, df_md_local_compute, df_md_reset,
1260 df_md_transfer_function, df_md_init, df_md_confluence_0,
1261 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
1262 problem_MD, df_md_add_problem): New.
1263 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
1264 df_md_get_bb_info): New.
1e9ae5ab 1265 (DF_LAST_PROBLEM_PLUS1): Adjust.
2ca57608
L
1266
1267 * Makefile.in (fwprop.o): Include domwalk.h.
1268 * fwprop.c: Include domwalk.h.
1269 (reg_defs, reg_defs_stack): New.
1270 (bitmap_only_bit_between): Remove.
1271 (process_defs): New.
1272 (process_uses): Use reg_defs and local_md instead of
1273 bitmap_only_bit_between and local_rd.
1274 (single_def_use_enter_block): New, from build_single_def_use_links.
1275 (single_def_use_leave_block): New.
1276 (build_single_def_use_links): Remove code moved to
1277 single_def_use_enter_block, invoke domwalk.
1278 (use_killed_between): Adjust comment.
c6741572 1279
7ff23740
PB
12802009-06-27 Paolo Bonzini <bonzini@gnu.org>
1281
1282 * bitmap.h (bitmap_ior_and_into): New.
1283 * bitmap.c (bitmap_ior_and_into): New.
1284
ccf5c864
PB
12852009-06-27 Paolo Bonzini <bonzini@gnu.org>
1286
2ca57608
L
1287 * domwalk.h (struct dom_walk_data): Remove all callbacks except
1288 before_dom_children_before_stmts and after_dom_children_after_stmts.
1289 Rename the two remaining callbacks to just before_dom_children and
1290 after_dom_children. Remove other GIMPLE statement walking bits.
1291 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
1292 * graphite.c: Do not include domwalk.h.
1293 * tree-into-ssa.c (interesting_blocks): New global.
1294 (struct mark_def_sites_global_data): Remove it and names_to_rename.
1295 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
1296 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
1297 now that they're not domwalk callbacks.
1298 (rewrite_initialize_block): Rename to...
1299 (rewrite_enter_block): ... this, place after called functions. Test
1300 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
1301 (rewrite_finalize_block): Rename to...
1302 (rewrite_leave_block): ... this, place after called functions.
1303 (rewrite_update_init_block): Rename to...
1304 (rewrite_update_enter_block): ... this, place after called functions.
1305 Test interesting_blocks, call rewrite_update_stmt and
1306 rewrite_update_phi_arguments.
1307 (rewrite_update_fini_block): Rename to...
1308 (rewrite_leave_block): ... this, place after called functions.
1309 (rewrite_blocks): Remove last argument, simplify initialization of
1310 walk_data.
1311 (mark_def_sites_initialize_block): Rename to...
1312 (mark_def_sites_block): ... this, call mark_def_sites.
1313 (mark_def_sites_blocks): Remove argument, simplify initialization of
1314 walk_data.
1315 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
1316 (update_ssa): Likewise.
1317 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
1318 callback.
1319 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
1320 (dom_opt_initialize_block): Rename to...
1321 (dom_opt_enter_block): ... this, place after called functions. Walk
1322 statements here, inline propagate_to_outgoing_edges.
1323 (dom_opt_finalize_block): Rename to...
1324 (dom_opt_leave_block): ... this, place after called functions.
1325 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
1326 domwalk callback.
1327 (dse_enter_block, dse_record_phi): New.
1328 (dse_record_phis): Delete.
1329 (dse_finalize_block): Rename to...
1330 (dse_leave_block): ... this.
1331 (tree_ssa_dse): Simplify initialization of walk_data.
1332 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
1333 Adjust initialization of walk_data.
1334 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
1335 * tree-ssa-loop-phiopt.c (get_non_trapping):
1336 Adjust initialization of walk_data.
1337 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
1338 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
1339 it's not a domwalk callback.
1340 (uncprop_initialize_block): Rename to...
1341 (dse_enter_block): ... this, call uncprop_into_successor_phis.
1342 (dse_finalize_block): Rename to...
1343 (dse_leave_block): ... this.
1344 (tree_ssa_uncprop): Simplify initialization of walk_data.
1345 * Makefile.in: Adjust dependencies.
ccf5c864 1346
75d28030
RE
13472009-06-27 Richard Earnshaw <rearnsha@arm.com>
1348
1349 * arm.md (casesi): Fix test for Thumb1.
1350 (thumb1_casesi_internal_pic): Likewise.
1351 (thumb1_casesi_dispatch): Likewise.
1352
9833720d
DG
13532009-06-26 Daniel Gutson <dgutson@codesourcery.com>
1354
1355 * config/arm/arm-cores.def: Added core cortex-m0.
1356 * config/arm/arm-tune.md: Regenerated.
1357 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
1358
bb7681bf
DD
13592009-06-26 DJ Delorie <dj@redhat.com>
1360
1361 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
1362
1363 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
1364 the scheduler doesn't tag jump insns.
1365
a35120a3
L
13662009-06-26 H.J. Lu <hongjiu.lu@intel.com>
1367
1368 * c-decl.c (merge_decls): Re-indent.
1369
4b6e55df
JJ
13702009-06-26 Janis Johnson <janis187@us.ibm.com>
1371
1372 PR c/39902
1373 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
1374 Special-case decimal float constants.
1375
27dbd3ac
RH
13762009-06-26 Richard Henderson <rth@redhat.com>
1377
1378 * function.h (struct function): Add cannot_be_copied_reason,
1379 and cannot_be_copied_set.
1380 * tree-inline.c (has_label_address_in_static_1): Rename from
1381 inline_forbidden_p_2; don't set inline_forbidden_reason here.
1382 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
1383 don't set inline_forbidden_reason.
1384 (copy_forbidden): New function, split out of inline_forbidden_p.
1385 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
1386 (inline_forbidden_p): Use copy_forbidden.
1387 (tree_versionable_function_p): Likewise.
1388 (inlinable_function_p): Merge into tree_inlinable_function_p.
1389 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
1390 * ipa-cp.c (ipcp_versionable_function_p): New function.
1391 (ipcp_cloning_candidate_p): Use it.
1392 (ipcp_node_modifiable_p): Likewise.
1393
efb303b1
OR
13942009-06-26 Olatunji Ruwase <tjruwase@google.com>
1395
1396 * builtins.c (expand_builtin_alloca): Handle builtin alloca
1397 that is marked not to be inlined. Remove flag_mudflap use.
1398 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
1399 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
1400
947e21c1
SE
14012009-06-26 Steve Ellcey <sje@cup.hp.com>
1402
1403 PR bootstrap/40338
1404 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
1405 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
1406
bae4cf87
KT
14072009-06-26 Kai Tietz <kai.tietz@onevision.com>
1408
1409 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
1410 shared libgcc.
1411 (__mingwthr_remove_key_dtor): Likewise.
1412
46aaa417
RG
14132009-06-26 Richard Guenther <rguenther@suse.de>
1414
1e9ae5ab 1415 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
46aaa417 1416
b3c54c8f
SB
14172009-06-26 Steven Bosscher <steven@gcc.gnu.org>
1418
1419 PR middle-end/40525
1420 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
1421 try the non-cond_exec path also.
1422
f5e66865
JDA
14232009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1424
1425 PR target/40468
1426 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
1427 (output_cbranch): Use new functions.
1428 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
1429 Likewise.
1430
8beb65e3
MM
14312009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
1432 Pat Haugen <pthaugen@us.ibm.com>
1433 Revital Eres <ERES@il.ibm.com>
1434
d66a97e2
MM
1435 * config/rs6000/rs6000.c (print_operand): Correct lossage message
1436 for %c error. Add %x support to print VSX registers as a unified
1437 register set, instead of separate float and altivec registers.
1438 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
1439 %y case, and add support for VSX pre-modify addresses.
1440 (output_toc): Add assert for CONST containing an integer constant
1441 in the PLUS case.
1442 (rs6000_adjust_cost): Add POWER7 support.
1443 (insn_must_be_first_in_group): Ditto.
1444 (insn_must_be_last_in_group): Ditto.
1445 (rs6000_emit_popcount): Ditto.
1446 (rs6000_vector_mode_supported_p): Ditto.
1447
8beb65e3
MM
1448 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
1449 Change some of the functions called by macros to being called
1450 through a pointer, so debug functions can be inserted if
1451 -mdebug=addr or -mdebug=cost.
1452 (rs6000_preferred_reload_class_ptr): Ditto.
1453 (rs6000_secondary_reload_class_ptr): Ditto.
1454 (rs6000_secondary_memory_needed_ptr): Ditto.
1455 (rs6000_cannot_change_mode_class_ptr): Ditto.
1456 (rs6000_secondary_reload_inner): Ditto.
1457 (rs6000_legitimize_reload_address): Ditto.
1458 (rs6000_legitimize_reload_address_ptr): Ditto.
1459 (rs6000_mode_dependent_address): Ditto.
1460 (rs6000_mode_dependent_address_ptr): Ditto.
1461
1462 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
1463 function to return true if the mode allows reg + integer
1464 addresses.
1465 (virtual_stack_registers_memory_p): New function to return true if
1466 the address refers to a virtual stack register.
1467 (rs6000_legitimate_offset_address_p): Move code to say whether a
1468 mode supports reg+int addressing to reg_offset_addressing_ok_p and
1469 call it.
1470 (rs6000_legitimate_address_p): Add checks for modes that only can
1471 do reg+reg addressing. Start adding VSX support.
1472 (rs6000_legitimize_reload_address): Ditto.
1473 (rs6000_legitimize_address): Ditto.
1474 (rs6000_debug_legitimate_address_p): New debug functions for
1475 -mdebug=addr and -mdebug=cost.
1476 (rs6000_debug_rtx_costs): Ditto.
1477 (rs6000_debug_address_costs): Ditto.
1478 (rs6000_debug_adjust_cost): Ditto.
1479 (rs6000_debug_legitimize_address): Ditto.
1480 (rs6000_legitimize_reload_address_ptr): Point to call normal
1481 function or debug function. Make functions called via pointer
1482 static.
1483 (rs6000_mode_dependent_address_ptr): Ditto.
1484 (rs6000_secondary_reload_class_ptr): Ditto.
1485 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
1486 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
1487 into a friendlier error.
1488 (rs6000_init_builtins): Add initial VSX support.
1489 (rs6000_adjust_cost): Fix some spacing issues.
1490
1491 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
1492 (REG_CLASS_NAMES): Ditto.
1493 (REG_CLASS_CONTENTS): Ditto.
1494 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
1495 pointer, to add -mdebug=addr support.
1496 (CANNOT_CHANGE_MODE_CLASS): Ditto.
1497 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
1498 -mdebug=addr support.
1499 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
1500 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
1501 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
1502
1503 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
1504 16-bit values.
1505 (bswapsi*): Set attribute types for load/store. Add combiner
1506 patterns to eliminate zero extend on 64-bit.
1507 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
1508 stdbrx if the hardware supports those instructions.
1509
96be7a11
ILT
15102009-06-25 Ian Lance Taylor <iant@google.com>
1511
1512 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
1513 (Link Options): Document -static-libstdc++.
1514
777a3a6a
AP
15152009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
1516
1517 PR target/38731
1518 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
1519 DATA_ALIGNMENT instead.
1520
1cb367ae
RG
15212009-06-25 Richard Guenther <rguenther@suse.de>
1522
1523 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
1524 indirect references against the callused/escaped solutions.
1525 (call_may_clobber_ref_p_1): Likewise.
1526
fac52fdd
MJ
15272009-06-25 Martin Jambor <mjambor@suse.cz>
1528
1529 PR tree-optimization/40493
1530 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
1531 (enum unscalarized_data_handling): New type.
1532 (handle_unscalarized_data_in_subtree): Return what has been done.
1533 (load_assign_lhs_subreplacements): Handle left flushes differently.
1534 (sra_modify_assign): Use unscalarized_data_handling, simplified
1535 condition determining whether to remove the statement.
1536
3cb71167 15372009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
c8aca64f
EB
1538
1539 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
1540 excerpt - @ should be doubled for texinfo.
3cb71167 1541
5a82ecd9
ILT
15422009-06-24 Ian Lance Taylor <iant@google.com>
1543
1544 * config/arc/arc.c: Include "df.h".
1545 (arc_attribute_table): Make static. Move higher in file.
1546 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
1547 (output_shift): Initialize n later to avoid warning.
1548 * config/arm/arm.c (arm_attribute_table): Make static. Move
1549 higher in file.
1550 * config/avr/avr.c (avr_attribute_table): Make static. Move
1551 higher in file.
1552 (reg_class_tab): Change array type from int to enum reg_class.
1553 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
1554 LABEL_REF.
1555 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
1556 (lshrhi3_out): Likewise.
1557 (class_likely_spilled_p): Change return type to bool.
1558 (avr_rtx_costs): Use local code variable with enum type.
1559 * config/avr/avr.md (movmemhi): Use add_reg_note.
1560 (andhi3, andsi3): Don't use AS2 with "and".
1561 (iorhi3, iorsi3): Don't use AS2 with "or".
1e9ae5ab 1562 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
5a82ecd9
ILT
1563 * config/crx/crx.c: Include "df.h".
1564 (crx_attribute_table): Make static.
1565 * config/m32r/m32r.c: Include "df.h".
1566 (m32r_attribute_table): Make static. Move higher in file.
1567 (pop): Use add_reg_note.
1568 (block_move_call): Change 0 to LCT_NORMAL in function call.
1569 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
1570 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
1571 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
1572 declare, not just when TREE_CODE is defined.
1573 * config/m68hc11/m68hc11.c: Include "expr.h".
1574 (m68hc11_attribute_table): Make static. Move higher in file.
1575 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
1576 function call.
1577 (m68hc11_register_indirect_p): Likewise.
1578 (m68hc11_function_arg_padding): Change return type to enum
1579 direction.
1580 (emit_move_after_reload): Use add_reg_note.
1581 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
1582 (m68hc11_split_logical): Likewise.
1583 (m68hc11_rtx_costs): Add local code_and outer_code variables with
1584 enum type.
1585 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
1586 to VOIDmode in function call.
1587 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
1588 tree is defined.
1589 (m68hc11_split_logical): Update declaration.
1590 (m68hc11_function_arg_padding): Update declaration.
1591 * config/mcore/mcore.c (regno_reg_class): Change form array of int
1592 to array of enum reg_class.
1593 (mcore_attribute_table): Make static. Move higher in file.
1594 (mcore_rtx_costs): Add cast to enum type.
1595 * config/mcore/mcore.h (regno_reg_class): Update declaration.
1596 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
1597 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
1598 in file.
1599 * config/sh/predicates.md (trapping_target_operand): Rename and to
1600 and_expr.
1601 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
1602 higher in file.
1603 * config/spu/spu.c (spu_attribute_table): Make static. Move
1604 higher in file.
1605 * config/v850/v850.c (v850_attribute_table): Make static. Move
1606 higher in file.
1607 (v850_rtx_costs): Use local code with enum type.
1608 (expand_epilogue): Add cast.
1609 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
1610
b4589acc
TY
16112009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
1612
1613 PR target/40515
1614 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
1615 -m2a-single-only and -m2a-nofpu.
1616 * config/sh/sh.opt: Document m2a generates FPU code.
1617
3be639f7
AS
16182009-06-24 Anatoly Sokolov <aesok@post.ru>
1619
1620 * defaults.h (CAN_ELIMINATE): Provide default.
1621 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
1622 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
1623 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
1624 * config/spu/spu.h (CAN_ELIMINATE): Delete.
1625 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
1626 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
1627 * config/cris/cris.h (CAN_ELIMINATE): Delete.
1628 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
1629 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
1630 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
1631
b6402fc3
DD
16322009-06-24 DJ Delorie <dj@redhat.com>
1633
1634 * mep-ext-cop.cpu: Fix copyright notice.
1635 * mep-default: Fix copyright notice.
1636 * mep-core: Fix copyright notice.
1637 * mep: Fix copyright notice.
1638 * mep-ivc2: Fix copyright notice.
1639 * mep-c5: Fix copyright notice.
1640
ead1eb1d
DC
16412009-06-24 Denis Chertykov <chertykov@gmail.com>
1642
1643 * doc/contrib.texi (Contributors):
1644
fb6234e0
AK
16452009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
1646
1647 PR middle-end/40501
1648 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
1649 src and dst operands if necessary.
1650
7acf4da6
DD
16512009-06-23 DJ Delorie <dj@redhat.com>
1652
1653 Add MeP port.
1654 * config.gcc: Add mep support.
1655 * recog.c: Resurrect validate_replace_rtx_subexp().
1656 * recog.h: Likewise.
1657 * config/mep/: Add new port:
1658 * config/mep/constraints.md: New file.
1659 * config/mep/default.h: New file.
1660 * config/mep/intrinsics.h: New file.
1661 * config/mep/intrinsics.md: New file.
1662 * config/mep/ivc2-template.h: New file.
1663 * config/mep/mep-c5.cpu: New file.
1664 * config/mep/mep-core.cpu: New file.
1665 * config/mep/mep-default.cpu: New file.
1666 * config/mep/mep-ext-cop.cpu: New file.
1667 * config/mep/mep-intrin.h: New file.
1668 * config/mep/mep-ivc2.cpu: New file.
1669 * config/mep/mep-lib1.asm: New file.
1670 * config/mep/mep-lib2.c: New file.
1671 * config/mep/mep-pragma.c: New file.
1672 * config/mep/mep-protos.h: New file.
1673 * config/mep/mep-tramp.c: New file.
1674 * config/mep/mep.c: New file.
1675 * config/mep/mep.cpu: New file.
1676 * config/mep/mep.h: New file.
1677 * config/mep/mep.md: New file.
1678 * config/mep/mep.opt: New file.
1679 * config/mep/predicates.md: New file.
1680 * config/mep/t-mep: New file.
1681
00020c16
ILT
16822009-06-23 Ian Lance Taylor <iant@google.com>
1683
1684 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
1685 from loose_warn into c_loose_warn and from strict_warn into
1686 c_strict_warn. Set and substitute warn_cxxflags. Check for
1687 --enable-build-with-cxx. Set and substitute
1688 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
1689 * Makefile.in (CXXFLAGS): New variable.
1690 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
1691 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
1692 the default is the same as $(STRICT_WARN).
1693 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
1694 (CXX): New variable.
1695 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
1696 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
1697 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
1698 (HOST_LIBS): New variable.
1699 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
1700 (ALL_CXXFLAGS): New variable.
1701 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
1702 * doc/install.texi (Configuration): Document
1703 --enable-build-with-cxx, --with-stage1-ldflags,
1704 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
1705 * configure: Rebuild.
1706
2d8b752f 17072009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9df5bfe4 1708
2d8b752f
EB
1709 * config/arm/arm.c (arm_override_options): Fix braces and formatting
1710 from previous commit.
9df5bfe4 1711
73267076
ILT
17122009-06-23 Ian Lance Taylor <iant@google.com>
1713
1714 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
1715
9a476c9c
ILT
17162009-06-23 Ian Lance Taylor <iant@google.com>
1717
1718 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
1719 with ATTRIBUTE_UNUSED.
1720
cacf1ca8
MM
17212009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1722 Pat Haugen <pthaugen@us.ibm.com>
2d8b752f 1723 Revital Eres <eres@il.ibm.com>
cacf1ca8
MM
1724
1725 * config.in (HAVE_AS_POPCNTD): Add default definition.
1726 (HAVE_AS_LWSYNC): Ditto.
1727
1728 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
1729 release number.
1730 (gcc_cv_as_powerpc_cmpb): Ditto.
1731 (gcc_cv_as_powerpc_dfp): Ditto.
1732 (gcc_cv_as_powerpc_vsx): Ditto.
1733 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
1734 supporting the popcntd/lwsync instructions.
1735 (gcc_cv_as_powerpc_lwsync): Ditto.
1736 * configure: Regenerate.
1737
1738 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
1739 -mcpu=native and -mcpu=power7.
1740 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
1741
1742 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
1743 a variable instead of a mask to reduce the number of mask bits.
1744 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1745 (-mbit-word): Ditto.
1746 (-mregnames): Ditto.
1747 * config/rs6000/rs6000.opt (-mupdate): Ditto.
1748 (-mfused-madd): Ditto.
1749
1750 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
1751 2.06 instructions.
1752 (-mvsx): New switch for VSX instructions.
1753 (-misel): Move from a variable to a mask to allow it to be set by
1754 -mcpu=.
1755
1756 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
1757 function declaration to an array declaration.
1758 (rs6000_hard_regno_nregs): New external array declaration.
1759
1760 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
1761 files included by rs6000.md.
1762
1763 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1764 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
1765
1766 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
1767 a target mask.
1768 (rs6000_debug_reg): New -mdebug= variables.
1769 (rs6000_debug_addr): Ditto.
1770 (rs6000_debug_cost): Ditto.
1771 (rs6000_pmode): New variable to hold Pmode.
1772 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
1773 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
1774 calculated at compiler start.
1775 (rs6000_hard_regno_nregs): Change function to an array which holds
1776 HARD_REGNO_NREGS calculated at compiler start.
1777 (rs6000_explicit_options): Delete isel field.
1778 (rs6000_vector_unit): New array to hold which vector unit
1779 supports arithmetic options for a given type.
1780 (rs6000_vector_mem): New array to hold which vector unit supports
1781 memory reference operations for a given type.
1782 (rs6000_vector_align): New array to given the alignment of each
1783 vector type.
1784 (power7_cost): New basic costs for power7.
1785 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
1786 (rs6000_hard_regno_nregs_internal): New function, moved from
1787 HARD_REGNO_NREGS, to calculate the number of registers each hard
1788 register takes for each type.
1789 (rs6000_debug_reg_print): New function for -mdebug=reg support.
1e9ae5ab 1790 (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
cacf1ca8
MM
1791 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
1792 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
1793 unit information here so it is calculated once at compiler startup
1794 time.
1795 (rs6000_override_options): Make -misel a target mask. Add more
1796 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
1797 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
1798 -mdebug=cost.
1799 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
1800 (rs6000_handle_option): Move -misel from variable to target mask.
1801 (rs6000_builtin_mask_for_load): Add VSX support.
1802 (rs6000_conditional_register_usage): Ditto.
1803 (USE_ALTIVEC_FOR_ARG_P): Ditto.
1804 (function_arg_boundary): Ditto.
1805 (rs6000_expand_builtin): Ditto.
1806 (def_builtin): Make abort message a little friendlier.
1807 (rs6000_emit_int_cmove): Add support for 64-bit isel.
1808
1809 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
1810 assembler support the popcntd instruction instead of a vsx
1811 instruction to enable power7 support.
1812 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
1813 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
1814 option to the assembler if -mcpu=native.
1815 (ASM_CPU_NATIVE_SPEC): Ditto.
1816 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
1817 ISA 2.06 features.
1818 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
1819 the lwsync instruction.
1820 (enum processor_type): Add PROCESSOR_POWER7.
1821 (rs6000_debug_reg): New -mdebug= options.
1822 (rs6000_debug_addr): Ditto.
1823 (rs6000_debug_cost): Ditto.
1824 (rs6000_isel): Delete.
1825 (enum rs6000_vector): New enum to say what vector unit we have.
1826 (VECTOR_UNIT_*): New macros to say which vector unit has
1827 arithmetic operations for a given type.
1828 (VECTOR_MEM_*): New macros to say which vector unit has memory
1829 operations for a given type.
1830 (TARGET_LDBRX): Whether the machine supports the ldbrx
1831 instruction.
1832 (TARGET_ISEL): Delete, -misel moved to be a mask.
1833 (TARGET_ISEL64): New macro for 64-bit isel support.
1834 (UNITS_PER_VSX_WORD): New macro.
1835 (POINTER_SIZE): Move to be an external variable, rather than
1836 calculating whether we are generating 32 ot 64-bit code.
1837 (Pmode): Ditto.
1838 (STACK_BOUNDARY): Add VSX support.
1839 (LOCAL_ALIGNMENT): Ditto.
1840 (SLOW_UNALIGNED_ACCESS): Ditto.
1841 (VSX_REGNO_P): New macro for VSX support.
1842 (VFLOAT_REGNO_P): Ditto.
1843 (VINT_REGNO_P): Ditto.
1844 (VLOGICAL_REGNO_P): Ditto.
1845 (VSX_VECTOR_MODE): Ditto.
1846 (VSX_SCALAR_MODE): Ditto.
1847 (VSX_MODE): Ditto.
1848 (VSX_MOVE_MODE): Ditto.
1849 (VSX_REG_CLASS_P): Ditto.
1850 (HARD_REGNO_NREGS): Instead of calling a function, use an array
1851 lookup.
1852 (UNITS_PER_SIMD_WORD): Add VSX support.
1853 (MODES_TIEABLE_P): Ditto.
1854 (STARTING_FRAME_OFFSET): Ditto.
1855 (STACK_DYNAMIC_OFFSET): Ditto.
1856 (EPILOGUE_USES): Ditto.
1857 (REGNO_REG_CLASS): Move to array lookup.
1858 (CLASS_MAX_NREGS): Ditto.
1859 (rs6000_vector_reg_class): Add declaration.
1860 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
1861 overlap with the floating point and Altivec registers.
1862
1863 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
1864
1865 * config/rs6000/driver-rs6000.c (asm_names): New static array to
1866 give the appropriate asm switches if -mcpu=native.
1867 (host_detect_local_cpu): Add support for "asm".
1868 (host_detect_local_cpu): Follow GNU code guidelines for name.
1869
1870 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
1871 -mbit-word to a variable instead of being a target mask.
1872
1873 * config/rs6000/sync.md (lwsync): If the assembler supports it,
1874 emit the lwsync instruction instead of emitting the instruction as
1875 an integer constant.
1876
1877 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
1878 fixuns_trundfsi2, move expander into rs6000.md.
1879
1880 * config/rs6000/rs6000.md (cpu): Add power7.
1881 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
1882 (logical predicate patterns): Change the single instruction
1883 primitives that set CR0 to be fast_compare instead of compare.
1884 (norsi*): Ditto.
1885 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
1886 (popcntddi2): Ditto.
1887 (popcount<mode>): Ditto.
1888 (floating multiply/add insns): Name the floating point
1889 multiply/add insns.
1890 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
1891 (isel_unsigned_<mode>): Ditto.
1892 (fixuns_trundfsi2): Move expander here from spe.md.
1893 (smindi3): Define if we have -misel on 64-bit systems.
1894 (smaxdi3): Ditto.
1895 (umindi3): Ditto.
1896 (umaxdi3): Ditto.
1897
59ab92d2
AS
18982009-06-23 Anatoly Sokolov <aesok@post.ru>
1899
1900 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
1901 extra_objs.
1902 * config/avr/avr.c (avr_current_device): New variable.
1903 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
1904 (avr_arch, mcu_type_s): Move to avr.h.
1905 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
1906 default_data_section_start fields.
1907 (avr_arch): Moved from avr.c.
1908 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
1909 library_name fields.
1910 (avr_current_device, avr_mcu_types, avr_arch_types,
1911 avr_device_to_arch, avr_device_to_data_start,
1912 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
1913 (EXTRA_SPEC_FUNCTIONS): Define.
1914 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
1915 options mapping. Use device_to_arch and device_to_data_start insted.
1916 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
1917 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
1918 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
1919 * config/avr/driver-avr.c: New file.
1920 * config/avr/avr-devices.c: New file.
1921
8593e0b6
JJ
19222009-06-23 Jakub Jelinek <jakub@redhat.com>
1923
7eb3f1f7
JJ
1924 * var-tracking.c (unshare_variable): Force initialized to
1925 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
1926 (set_variable_part): Likewise.
1927 (struct variable_union_info): Remove pos_src field.
1928 (vui_vec, vui_allocated): New variables.
1929 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
1930 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
1931 == 1 use a simpler sorting algorithm. Compute pos field right
1932 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
1933 Avoid quadratic comparison if !flag_var_tracking_uninit.
1934 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
1935 unshare_variable unconditionally.
1936 (dataflow_set_different_2): Removed.
1937 (dataflow_set_different): Don't traverse second hash table.
1938 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
1939 unconditionally to var_reg_set or var_mem_set.
1940 (emit_notes_in_bb): Likewise.
1941 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
1942 unshare_variable.
1943 (emit_note_insn_var_location): Don't set initialized to
1944 VAR_INIT_STATUS_INITIALIZED early.
1945 (vt_finalize): Free vui_vec if needed, clear vui_vec and
1946 vui_allocated.
1947 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
1948
8593e0b6
JJ
1949 * tree-object-size.c (addr_object_size): Instead of checking
1950 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
1951 are no FIELD_DECLs following it.
1952
fef015a8
AK
19532009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
1954
1955 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
1956 order to match bswaps with signed source operands.
1957
b6d83244
RO
19582009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1959
1960 * sdbout.c (sdbout_one_type): Fix braces in switch.
1961
0bbf2ffa
RG
19622009-06-23 Richard Guenther <rguenther@suse.de>
1963
1964 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
1965 member.
1966 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
1967 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
1968 var_callused, callused_tree, var_storedanything, storedanything_tree,
1969 var_integer, integer_tree): Remove global variables.
1970 (new_var_info): Do not pass new id, append the new var to the
1971 global variable vector.
1972 (do_ds_constraint): Use is_global_var member of the variable-info.
1973 (new_scalar_tmp_constraint_exp): Adjust.
1974 (create_function_info_for): Likewise.
1975 (create_variable_info_for): Likewise.
1976 (find_what_var_points_to): Remove dead code.
1977 (init_base_vars): Simplify.
1978 (compute_points_to_sets): Adjust.
1979
28a5fb2e
AN
19802009-06-22 Adam Nemet <anemet@caviumnetworks.com>
1981
1982 * combine.c (try_combine): Dump information about the insns we're
1983 combining.
1984
cfb8805e
AN
19852009-06-22 Adam Nemet <anemet@caviumnetworks.com>
1986
1987 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
1988 check when calling force_to_mode on TRUNCATE's operand.
1989
df4ba119
ILT
19902009-06-22 Ian Lance Taylor <iant@google.com>
1991
897eef7b 1992 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
df4ba119 1993
c986683b
SB
19942009-06-22 Steven Bosscher <steven@gcc.gnu.org>
1995
1996 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
1997
5c6927bd
RW
19982009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1999
2000 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
2001 override library linkage flags such as -static-libgcc or
2002 -shared-libgcc.
2003
19973be2
MK
20042009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
2005
2006 * config/m68k/m68k-devices.def: Add line for MCF5221x.
2007
7a5d2eb8
ILT
20082009-06-22 Ian Lance Taylor <iant@google.com>
2009
2010 * config/linux.opt: Put mglibc ahead of muclibc.
2011
2012 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
2013 for duplicate decls.
2014
86e3c83a
MK
20152009-06-22 Matthias Klose <doko@ubuntu.com>
2016
2017 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
2018
0a7d7dea
MK
20192009-06-22 Steven Bosscher <steven@gcc.gnu.org>
2020
2021 PR objc/28050
2022 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
2023 instead of NULL if a parser error occurs.
2024
a77264d5
RO
20252009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2026
2027 * dwarf2out.c (dwarf2_debug_hooks): Initialize
2028 non-DWARF2_DEBUGGING_INFO version.
2029
54f549af
KT
20302009-06-22 Kai Tietz <kai.tietz@onevision.com>
2031
34481f28
UB
2032 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
2033 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2034
2035 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
54f549af
KT
2036 (LIBGCC2_TF_CEXT): Define.
2037 (TF_SIZE): Define.
2038
7cea01df
RR
20392009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2040
2041 PR target/40463
2042 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
2043
3ce14752
RR
20442009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2045
34481f28
UB
2046 * config/arm/arm.c (arm_override_options): Disable
2047 -mcaller-super-interworking and -mcallee-super-interworking.
2048 * doc/invoke.texi (ARM Options): Document this.
3ce14752 2049
d58bc084
NS
20502009-06-22 Nathan Sidwell <nathan@codesourcery.com>
2051
2052 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
2053 * config/arm/constraints.md (j): New constraint for movw operands.
2054 (N): Remove thumb2 meaning.
2055 * config/arm/arm.md (*arm_movw): Delete.
2056 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
2057 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
2058 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
2059
ac6cb60c
MJ
20602009-06-22 Martin Jambor <mjambor@suse.cz>
2061
2062 PR tree-optimization/40492
2063 * tree-sra.c (sra_modify_assign): Pass zero offsets to
2064 build_ref_for_offset.
2065
481683e1
SZ
20662009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
2067
2068 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
2069 JUMP_TABLE_DATA_P predicates where applicable.
2070 * auto-inc-dec.c: Ditto.
2071 * builtins.c: Ditto.
2072 * caller-save.c: Ditto.
2073 * calls.c: Ditto.
2074 * cfgcleanup.c: Ditto.
2075 * cfglayout.c: Ditto.
2076 * cfgrtl.c: Ditto.
2077 * combine.c: Ditto.
2078 * combine-stack-adj.c: Ditto.
2079 * cse.c: Ditto.
2080 * cselib.c: Ditto.
2081 * dbxout.c: Ditto.
2082 * df-scan.c: Ditto.
2083 * dse.c: Ditto.
2084 * dwarf2asm.c: Ditto.
2085 * dwarf2out.c: Ditto.
2086 * emit-rtl.c: Ditto.
2087 * except.c: Ditto.
2088 * explow.c: Ditto.
2089 * expmed.c: Ditto.
2090 * expr.c: Ditto.
2091 * final.c: Ditto.
2092 * function.c: Ditto.
2093 * fwprop.c: Ditto.
2094 * gcse.c: Ditto.
2095 * genpreds.c: Ditto.
2096 * genrecog.c: Ditto.
2097 * ifcvt.c: Ditto.
2098 * ira-costs.c: Ditto.
2099 * ira-lives.c: Ditto.
2100 * jump.c: Ditto.
2101 * loop-iv.c: Ditto.
2102 * lower-subreg.c: Ditto.
2103 * modulo-sched.c: Ditto.
2104 * optabs.c: Ditto.
2105 * postreload.c: Ditto.
2106 * print-rtl.c: Ditto.
2107 * recog.c: Ditto.
2108 * reginfo.c: Ditto.
2109 * regmove.c: Ditto.
2110 * reload1.c: Ditto.
2111 * reload.c: Ditto.
2112 * reorg.c: Ditto.
2113 * rtlanal.c: Ditto.
2114 * rtl.c: Ditto.
2115 * sched-vis.c: Ditto.
2116 * sdbout.c: Ditto.
2117 * sel-sched-ir.c: Ditto.
2118 * simplify-rtx.c: Ditto.
2119 * targhooks.c: Ditto.
2120 * var-tracking.c: Ditto.
2121 * vmsdbgout.c: Ditto.
2122
1407d6cf
MK
21232009-06-22 Matthias Klose <doko@ubuntu.com>
2124
2125 * Makefile.in (install-plugin): Always use DESTDIR.
2126
28326880
OH
21272009-06-22 Olivier Hainque <hainque@adacore.com>
2128
2129 * config/pa/pa.c (output_call): Don't optimize post call jumps
2130 into return address adjustments if the call may throw.
2131
907dd0c7
RE
21322009-06-21 Richard Earnshaw <rearnsha@arm.com>
2133
2134 * arm.c (thumb1_output_casesi): New function.
2135 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
2136 optimizing for size or PIC.
2137 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
2138 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
2139 (casesi): Handle Thumb-1 when optimizing for size or PIC.
2140 (thumb1_casesi_internal_pic): New expand rule.
2141 (thumb1_casesi_dispatch): New pattern.
2142 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
2143 thumb-1 mode.
2144 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
2145 in the text seciton when PIC or optimizing for size.
2146 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2147 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
2148 preservation properties of code.
2149 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
2150 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
2151 (__gnu_thumb1_case_si): New function.
2152 * t-arm (LIB1ASMSRC): Define here.
2153 (LIB1ASMFUNCS): Add some common functions.
2154 * t-arm-elf (LIB1ASMSRC): Delete.
2155 (LIB1ASMFUNCS): Append to existing set.
2156 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2157 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2158 * t-symbian (LIB1ASMFUNCS): Likewise.
2159 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2160 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
2161
2cee1509
RG
21622009-06-21 Richard Guenther <rguenther@suse.de>
2163
2164 PR tree-optimization/38729
2165 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
2166 to loops with a single exit if -fno-expensive-optimizations.
2167
d24686d7
JJ
21682009-06-21 Jakub Jelinek <jakub@redhat.com>
2169
2170 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
2171 (dataflow_set): Change vars type from htab_t to shared_hash.
2172 (shared_hash_pool, empty_shared_hash): New variables.
2173 (vars_clear): Removed.
2174 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
2175 shared_hash_find_slot_unshare, shared_hash_find_slot,
2176 shared_hash_find_slot_noinsert, shared_hash_find): New
2177 static inlines.
2178 (shared_hash_unshare, shared_hash_destroy): New functions.
2179 (unshare_variable): Unshare set->vars if shared, use
2180 shared_hash_htab.
2181 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
2182 (get_init_value, find_src_set_src, dump_dataflow_set,
2183 clobber_variable_part, emit_notes_for_differences): Use
2184 shared_hash_htab.
2185 (dataflow_set_init): Remove second argument, set vars to
2186 empty_shared_hash instead of creating a new htab.
2187 (dataflow_set_clear): Call shared_hash_destroy and set vars
2188 to empty_shared_hash instead of calling vars_clear.
2189 (dataflow_set_copy): Don't call vars_copy, instead just share
2190 the src htab with dst.
2191 (variable_union): Use shared_hash_*, use initially NO_INSERT
2192 lookup if set->vars is shared. Don't keep slot cleared before
2193 calling unshare_variable. Unshare set->vars if needed.
2194 Even ->refcount == 1 vars must be unshared if set->vars is shared
2195 and var needs to be modified.
2196 (variable_canonicalize): New function.
2197 (dataflow_set_union): If dst->vars is empty, just share src->vars
2198 with dst->vars and traverse with variable_canonicalize to canonicalize
2199 and unshare what is needed.
2200 (dataflow_set_different): If old_set and new_set use the same shared
2201 htab, they aren't different. If number of htab elements is different,
2202 htabs are different. Use shared_hash_*.
2203 (dataflow_set_destroy): Call shared_hash_destroy instead of
2204 htab_delete.
2205 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
2206 second argument to dataflow_set_init.
2207 (vt_initialize): Likewise. Initialize shared_hash_pool and
2208 empty_shared_hash, move bb in/out initialization afterwards.
2209 Use variable_htab_free instead of NULL as changed_variables del hook.
2210 (variable_was_changed): Change type of second argument to pointer to
2211 dataflow_set. When inserting var into changed_variables, bump
2212 refcount. Unshare set->vars if set is shared htab and slot needs to
2213 be cleared.
2214 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
2215 lookup if set->vars is shared. Unshare set->vars if needed.
2216 Even ->refcount == 1 vars must be unshared if set->vars is shared
2217 and var needs to be modified. Adjust variable_was_changed caller.
2218 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
2219 vars must be unshared if set->vars is shared and var needs to be
2220 modified. Adjust variable_was_changed caller.
2221 (emit_note_insn_var_location): Don't pool_free var.
2222 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
2223 instead of 1.
2224 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
2225 free_alloc_pool on shared_hash_pool.
2226
525b459f
AG
22272009-06-20 Anthony Green <green@moxielogic.com>
2228
2229 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
2230 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
2231
825be69e
RG
22322009-06-20 Richard Guenther <rguenther@suse.de>
2233
2234 * tree-ssa-structalias.c (find_func_aliases): For memset use
2235 a constraint from NULL if we memset to zero.
2236 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
2237 we explicitly handle that do not read from memory.
2238 (call_may_clobber_ref_p_1): Properly handle builtins that may
2239 set errno.
2240
b14e9388
RG
22412009-06-20 Richard Guenther <rguenther@suse.de>
2242
2243 PR tree-optimization/40495
2244 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
2245 (new_scalar_tmp_constraint_exp): New function.
2246 (process_constraint): Do not create temporary decls.
2247 (process_all_all_constraints): Likewise.
2248 (handle_const_call): Likewise.
2249 (create_function_info_for): Do not set decl.
2250
c885ca89
ILT
22512009-06-19 Ian Lance Taylor <iant@google.com>
2252
2253 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
2254 (rs6000_attribute_table): Make static; move before use.
2255
6569d386
EB
22562009-06-19 Eric Botcazou <ebotcazou@adacore.com>
2257
2258 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
2259 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
2260 Propagate the TREE_READONLY flag without overwriting it.
2261 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
2262 Propagate the TREE_READONLY flag onto the result.
2263 (process_call_operands): Move around. Use correct constant value.
2264
ce41c38b
RR
22652009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2266
2267 PR target/40482
897eef7b 2268 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
ce41c38b
RR
2269 * config/arm/arm.md: Likewise.
2270
96be7a11 22712009-06-19 Ian Lance Taylor <iant@google.com>
d130ae11
ILT
2272
2273 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
2274 to GIMPLE_ERROR_MARK.
2275
2276 * c-typeck.c (build_conditional_expr): Add op1_original_type and
897eef7b 2277 op2_original_type parameters. Warn about using different enum types.
d130ae11
ILT
2278 * c-parser.c (c_parser_conditional_expression): Pass original
2279 types to build_conditional_expr.
2280 * c-tree.h (build_conditional_expr): Update declaration.
2281
d4aa4f4b
ILT
22822009-06-19 Ian Lance Taylor <iant@google.com>
2283
2284 * config/i386/i386.c (ix86_function_specific_save): Test that
2285 fields match values, rather than testing the values are in a
2286 certain range.
2287
779704e7
RG
22882009-06-19 Richard Guenther <rguenther@suse.de>
2289
2290 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2291 ADDR_EXPR pointers.
2292 (ptr_derefs_may_alias_p): Likewise.
2293 (ptr_deref_may_alias_ref_p_1): New function.
2294 (ptr_deref_may_alias_ref_p): Likewise.
2295 (ref_maybe_used_by_call_p_1): Handle builtins that are not
2296 covered by looking at the ESCAPED solution.
2297 (call_may_clobber_ref_p_1): Likewise.
2298 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
2299 Handle NULL_TREE offset. Do not produce redundant constraints.
2300 (process_all_all_constraints): New helper function.
2301 (do_structure_copy): Use it.
2302 (handle_lhs_call): Likewise.
2303 (find_func_aliases): Handle some builtins with pointer arguments
2304 and/or return values explicitly.
2305
217655da
ILT
23062009-06-19 Ian Lance Taylor <iant@google.com>
2307
2308 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
2309
50ae5fea
ILT
23102009-06-19 Ian Lance Taylor <iant@google.com>
2311
2312 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
2313
642324bb
ILT
23142009-06-19 Ian Lance Taylor <iant@google.com>
2315
2316 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
2317 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
2318 version.
2319
2320 * c-decl.c (finish_decl): If -Wc++-compat, warn about
2321 uninitialized const.
2322
dc491a25
ILT
23232009-06-19 Ian Lance Taylor <iant@google.com>
2324
2325 * dse.c (struct store_info): Rename bitmap field to bmap. Change
2326 all uses.
2327
2328 * c-decl.c (in_struct, struct_types): Remove.
2329 (struct c_binding): Add in_struct field.
2330 (c_binding_ptr): Define type, along with VEC.
2331 (struct c_struct_parse_info): Define.
2332 (struct_parse_info): New static variable.
2333 (bind): Initialize in_struct field.
2334 (start_struct): Remove enclosing_in_struct and
2335 enclosing_struct_types parameters. Add
2336 enclosing_struct_parse_info parameter. Change all callers. Set
2337 struct_parse_info rather than in_struct and struct_types.
2338 (grokfield): If -Wc++-compat and there is a symbol binding for the
2339 field name, set the in_struct flag and push it on the
2340 struct_parse_info->fields vector.
2341 (warn_cxx_compat_finish_struct): New static function.
2342 (finish_struct): Remove enclosing_in_struct and
2343 enclosing_struct_types parameters. Add
2344 enclosing_struct_parse_info parameter. Change all callers. Don't
2345 set C_TYPE_DEFINED_IN_STRUCT here. Call
2346 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
2347 parameter. Only push on struct_types if warn_cxx_compat.
2348 (finish_enum): Only push on struct_types if warn_cxx_compat.
2349 (declspecs_add_type): Add loc parameter. Change all callers.
2350 Change all error calls to error_at. Pass loc, not input_location,
2351 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
2352 defined in a struct. If -Wc++-compat and parsing a struct, record
2353 that a typedef name was used.
2354 * c-parser.c (c_parser_declspecs): Get location to pass to
2355 declspecs_add_type.
2356 (c_parser_struct_or_union_specifier): Update calls to start_struct
2357 and finish_struct.
2358 * c-tree.h (struct c_struct_parse_info): Declare.
2359 (finish_struct, start_struct): Update declarations.
2360 (declspecs_add_type): Update declaration.
2361
88eeff6f
ILT
23622009-06-19 Ian Lance Taylor <iant@google.com>
2363
2364 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
2365 variable with an anonymous type.
2366
28a876a4
UB
23672009-06-19 Uros Bizjak <ubizjak@gmail.com>
2368
2369 * see.c: Remove for real.
2370
dc6707b8
UB
23712009-06-19 Uros Bizjak <ubizjak@gmail.com>
2372
2373 * optabs.h (enum optab_index): Add new OTI_significand.
2374 (significand_optab): Define corresponding macro.
2375 * optabs.c (init_optabs): Initialize significand_optab.
2376 * genopinit.c (optabs): Implement significand_optab using
2377 significand?f2 patterns.
2378 * builtins.c (expand_builtin_mathfn): Handle
2379 BUILT_IN_SIGNIFICAND{,F,L}.
2380 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
2381 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2382
2383 * config/i386/i386.md (significandxf2, significand<mode>2): New
2384 expanders to implement significandf, significand and significandl
2385 built-ins as inline x87 intrinsics.
2386
dd26af70
AS
23872009-06-18 Anatoly Sokolov <aesok@post.ru>
2388
2389 * config/avr/avr.c (avr_override_options): Remove setting value of
2390 PARAM_INLINE_CALL_COST.
2391
394bd84d
RH
23922009-06-18 Richard Henderson <rth@redhat.com>
2393
2394 PR 40488
2395 * tree-pass.h (TDF_ASMNAME): New.
2396 * tree-dump.c (dump_options): Add asmname.
2397 * doc/invoke.texi: Document it.
2398
2399 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
2400 (dump_decl_name): ...here.
2401 (dump_function_name): New flags arg; mind TDF_ASMNAME.
2402 (dump_generic_node): Update dump_function_name calls.
2403 (print_call_name): New flags arg; update all dump calls.
2404 * diagnostic.h (print_call_name): Update.
2405 * gimple-pretty-print.c (dump_gimple_call): Update.
2406
2a457a9b
L
24072009-06-18 H.J. Lu <hongjiu.lu@intel.com>
2408
2409 PR target/40470
2410 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
2411
fca5bb5c
DN
24122009-06-18 Diego Novillo <dnovillo@google.com>
2413
2414 * doc/plugins.texi: Document plugin_is_GPL_compatible.
2415 * plugin.c (str_license): Declare.
2416 (try_init_one_plugin): Assert that the symbol
2417 'plugin_is_GPL_compatible' exists.
2418
b6680d72
SD
24192009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
2420
2421 * see.c: Remove.
2422 * Makefile.in (OBJS-common): Remove see.o.
2423 (see.o): Remove.
2424 * common.opt (fsee): Mark as preserved for backward compatibility.
2425 * opts.c (common_handle_option): Add OPT_fsee to the backward
2426 compatibility section.
2427 * passes.c (init_optimization_passes, pass_see): Remove pass.
2428 * timevar.def (TV_SEE): Remove.
2429 * tree-pass.h (pass_see): Remove declaration.
2430 * doc/invoke.texi (-fsee): Remove documentation.
b6680d72 2431
2a45675f
MJ
24322009-06-18 Martin Jambor <mjambor@suse.cz>
2433
2434 * tree-sra.c: Include statistics.h
2435 (sra_stats): New variable.
2436 (sra_initialize): Clear sra_stats.
2437 (create_access_replacement): Increment sra_stats.replacements.
2438 (get_access_replacement): Do not return twice.
2439 (analyze_all_variable_accesses): Increment statistics counter by the
2440 number of scalarized aggregates.
2441 (generate_subtree_copies): Increment sra_stats.subtree_copies.
2442 (sra_modify_expr): Increment sra_stats.exprs.
2443 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
2444 (sra_modify_assign): Increment sra_stats.exprs,
2445 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
2446 (perform_intra_sra): Update statistics counters.
2447 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
2448
bdc4827b
SL
24492009-06-18 Sandra Loosemore <sandra@codesourcery.com>
2450
2451 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
2452 (arm_scalar_mode_supported_p): New function.
2453
d9dd51dc
PB
24542009-06-18 Paul Brook <paul@codesourcery.com>
2455 Sandra Loosemore <sandra@codesourcery.com>
2456
2457 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
2458 (__extendhfsf2, __truncsfhf2): Define.
2459 * config/arm/fp16.c: New file.
2460 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
2461 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
2462
0fd8c3ad
SL
24632009-06-18 Sandra Loosemore <sandra@codesourcery.com>
2464
2465 * doc/extend.texi (Half-Precision): New section.
2466 * doc/invoke.texi (Option Summary): List -mfp16-format.
2467 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
2468 * config/arm/arm.opt (mfp16-format=): New.
2469 * config/arm/arm.c: Include intl.h.
2470 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
2471 (TARGET_INVALID_RETURN_TYPE): Redefine.
2472 (TARGET_PROMOTED_TYPE): Redefine.
2473 (TARGET_CONVERT_TO_TYPE): Redefine.
2474 (arm_fp16_format): Define.
2475 (all_fpus): Add entry for neon-fp16.
2476 (fp_model_for_fpu): Likewise.
2477 (struct fp16_format): Declare.
2478 (all_fp16_formats): Define.
2479 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
2480 functions.
2481 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
2482 and no ldrh.
2483 (arm_legitimate_index_p): Treat HFmode like HImode.
2484 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
2485 (coproc_secondary_reload_class): Special-case HFmode.
2486 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
2487 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
2488 (arm_init_fp16_builtins): New.
2489 (arm_init_builtins): Call it.
2490 (arm_invalid_parameter_type): New.
2491 (arm_invalid_return_type): New.
2492 (arm_promoted_type): New.
2493 (arm_convert_to_type).
2494 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
2495 format.
2496 (arm_emit_fp16_const): New function.
2497 (arm_mangle_type): Mangle __fp16 as "Dh".
2498 * config/arm/arm.h (TARGET_VFPD32): Make it know about
2499 FPUTYPE_NEON_FP16.
2500 (TARGET_NEON_FP16): New.
2501 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
2502 (enum fputype): Add FPUTYPE_NEON_FP16.
2503 (enum arm_fp16_format_type): Declare.
2504 (arm_fp16_format): Declare.
2505 (LARGEST_EXPONENT_IS_NORMAL): Define.
2506 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
2507 * config/arm/arm-modes.def (HFmode): Define.
2508 * config/arm/vfp.md: (*movhf_vfp): New.
2509 (extendhfsf2): New.
2510 (truncsfhf2): New.
2511 * config/arm/arm.md: (fpu): Add neon_fp16.
2512 (floatsihf2, floatdihf2): New.
2513 (fix_trunchfsi2, fix_trunchfdi2): New.
2514 (truncdfhf2): New.
2515 (extendhfdf2): New.
2516 (movhf): New.
2517 (*arm32_movhf): New.
2518 (*thumb1_movhf): New.
2519 (consttable_2): Add check for HFmode constants.
2520 (consttable_4): Handle HFmode constants.
2521
2c2f70e1
UB
25222009-06-18 Uros Bizjak <ubizjak@gmail.com>
2523
2524 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
2525
db4fa1c1
OH
25262009-06-17 Olivier Hainque <hainque@adacore.com>
2527
2528 * collect2.c (main): Use CONST_CAST2 to perform char ** to
2529 const char ** conversion in AIX specific section.
2530
6bec4135
L
25312009-06-17 H.J. Lu <hongjiu.lu@intel.com>
2532
2533 * config/i386/i386.c (ix86_special_builtin_type): Remove
2534 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
2535 (bdesc_special_args): Updated.
2536 (ix86_init_mmx_sse_builtins): Likewise.
2537 (ix86_expand_special_args_builtin): Likewise.
2538
958d6d58
RH
25392009-06-17 Richard Henderson <rth@redhat.com>
2540
2541 * tree-pretty-print.c (maybe_dump_asm_name): New.
2542 (dump_decl_name): Use it.
2543 (PRINT_FUNCTION_NAME): Merge into...
2544 (dump_function_name): ... here. Use maybe_dump_asm_name.
2545
ed5ef2e4
CC
25462009-06-17 Cary Coutant <ccoutant@google.com>
2547
2548 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
2549 Change caller.
2550 * debug.c (struct gcc_debug_hooks): Change placeholder for
2551 source_line hook.
2552 (debug_nothing_int_charstar_int): Replaced by...
2553 (debug_nothing_int_charstar_int_bool): ...this.
2554 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
2555 source_line prototype.
2556 (debug_nothing_int_charstar_int): Replaced by...
2557 (debug_nothing_int_charstar_int_bool): ...this.
2558 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
2559 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
2560 Output is_stmt operand when necessary.
01a0acb7 2561 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
ed5ef2e4
CC
2562 (notice_source_line): Add is_stmt parameter.
2563 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
2564 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
2565 Change callers.
2566 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
2567 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
2568
b0f43ca0
ILT
25692009-06-17 Ian Lance Taylor <iant@google.com>
2570
2571 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
2572 Change all uses.
2573 (struct store_by_pieces_d): Rename from store_by_pieces. Change
2574 call uses.
2575
23314e77
AN
25762009-06-17 Adam Nemet <anemet@caviumnetworks.com>
2577
2578 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
2579 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
2580 tree_strip_sign_nop_conversions and
2581 tree_ssa_strip_useless_type_conversions rather than stripping
2582 the operations here.
2583 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
2584 Declare them.
2585 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
2586 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
2587 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
2588 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
2589 functions.
2590
799dbb0f
ME
25912009-06-17 Michael Eager <eager@eagercon.com>
2592
c637b0fa
UB
2593 * config/rs6000/constraints.md (register_constraint "d"): New.
2594 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
2595 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
2596 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
2597 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
2598 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
2599 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
2600 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
2601 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
799dbb0f
ME
2602 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
2603 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c637b0fa
UB
2604 __fctiwz): Same.
2605 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
799dbb0f
ME
2606 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
2607 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
2608 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c637b0fa
UB
2609 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2610 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
2611 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
2612 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
2613 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
2614 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
2615 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
2616 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
2617 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
799dbb0f
ME
2618 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
2619
1469de3c
ILT
26202009-06-16 Ian Lance Taylor <iant@google.com>
2621
2622 * profile.c (total_num_never_executed): Don't define.
2623 (compute_branch_probabilities): Don't count or print
2624 num_never_executed.
2625 (init_branch_prob): Don't set total_num_never_executed.
2626 (end_branch_prob): Don't print total_num_never_executed.
2627
2cb0a60d
DD
26282009-06-17 David Daney <ddaney@caviumnetworks.com>
2629
c637b0fa 2630 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2cb0a60d 2631
82882240
DE
26322009-06-17 David Edelsohn <edelsohn@gnu.org>
2633
2634 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
2635 (nabstd2_fpr): Same.
2636
a1a65f89
SE
26372009-06-17 Steve Ellcey <sje@cup.hp.com>
2638
2639 * expr.c (expand_assignment): Change complex type check.
2640
07ae5620
BS
26412009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
2642
2643 * doc/plugins.texi (Building GCC plugins): Added new section.
2644
5eb4df45
ILT
26452009-06-17 Ian Lance Taylor <iant@google.com>
2646
2647 * c-pch.c (get_ident): Don't set size of templ array.
2648 (pch_init): Don't set size of partial_pch array.
2649
2650 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
2651 string constant to intialize an array whose size is the length of
2652 the string.
2653
4d61856d
RG
26542009-06-17 Richard Guenther <rguenther@suse.de>
2655
2656 PR tree-optimization/40389
2657 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
2658 to addressable types.
2659 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
2660
3cb8677c
RG
26612009-06-17 Richard Guenther <rguenther@suse.de>
2662
2663 PR middle-end/40460
2664 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
2665 if there is no evolution of left in the loop bail out.
2666 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
2667 chrec_fold_multiply.
2668
a4d99c86
R
26692009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
2670 Janis Johnson <janis187@us.ibm.com>
2671
2672 PR target/39254
2673 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
2674 for the symbol ref of a constant that is the source of a move
2675 - nor for any other not-obvious-label-ref constants.
2676
8dd1bca0
OR
26772009-06-16 Olatunji Ruwase <tjruwase@google.com>
2678
1469de3c 2679 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
2680 traversal to avoid repeated insertion.
2681
8019538f
ILT
26822009-06-16 Ian Lance Taylor <iant@google.com>
2683
2684 * vec.h (VEC_stack_alloc): Define different version if
2685 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
2686 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
2687 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
2688 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
2689
7c45393e
L
26902009-06-16 H.J. Lu <hongjiu.lu@intel.com>
2691
2692 * config.gcc (extra_headers): Add ia32intrin.h for x86.
2693
2694 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
2695 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
2696 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
2697 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
2698 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
2699 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 2700 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
2701 (bdesc_special_args): Add __builtin_ia32_rdtsc and
2702 __builtin_ia32_rdtscp.
2703 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
2704 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c637b0fa 2705 and __builtin_ia32_rorhi.
7c45393e
L
2706 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
2707 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 2708 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
2709 (ix86_expand_args_builtin): Likewise.
2710 (ix86_expand_special_args_builtin): Likewise.
2711
2712 * config/i386/i386.md (UNSPECV_RDTSCP): New.
2713 (UNSPECV_RDTSC): Likewise.
2714 (UNSPECV_RDPMC): Likewise.
c637b0fa 2715 (*bsr): Renamed to ...
7c45393e 2716 (bsr): This
c637b0fa 2717 (*bsr_rex64): Renamed to ...
7c45393e
L
2718 (bsr_rex64): This.
2719 (rdpmc): New.
2720 (*rdpmc): Likewise.
2721 (*rdpmc_rex64): Likewise.
2722 (rdtsc): Likewise.
2723 (*rdtsc): Likewise.
2724 (*rdtsc_rex64): Likewise.
2725 (rdtscp): Likewise.
2726 (*rdtscp): Likewise.
2727 (*rdtscp_rex64): Likewise.
2728
2729 * config/i386/ia32intrin.h: New.
2730
2731 * config/i386/x86intrin.h: Include <ia32intrin.h>.
2732
504b33d8
ILT
27332009-06-16 Ian Lance Taylor <iant@google.com>
2734
2735 * ira-build.c (copy_info_to_removed_store_destinations):
2736 Initialize parent_a.
2737
f9551830
ILT
27382009-06-16 Ian Lance Taylor <iant@google.com>
2739
2740 * c-decl.c (grokdeclarator): Change size_varies to bool.
2741
c32e2175
ILT
27422009-06-16 Ian Lance Taylor <iant@google.com>
2743
2744 * sel-sched.c: Make forward declarations of move_op_hooks and
2745 fur_hooks explicitly extern.
2746
415a06c2
ILT
27472009-06-16 Ian Lance Taylor <iant@google.com>
2748
c637b0fa 2749 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
415a06c2
ILT
2750 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
2751
675f99c9
ILT
27522009-06-16 Ian Lance Taylor <iant@google.com>
2753
2754 * resource.c (mark_referenced_resources): Change
2755 include_delayed_effects parameter to bool. Change all callers.
2756 (mark_end_of_function_resources): Likewise.
2757 * reorg.c (insn_references_resource_p): Likewise.
2758 (insn_sets_resource_p): Likewise.
2759 * resource.h (mark_referenced_resources): Update declaration.
2760 (mark_end_of_function_resources): Update declaration.
2761
a322799d
DE
27622009-06-16 David Edelsohn <edelsohn@gnu.org>
2763
2764 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
2765
c58c92f5
DE
27662009-06-16 David Edelsohn <edelsohn@gnu.org>
2767
2768 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
2769 GCC can bootstrap on AIX with GNU Binutils 2.20.
2770
95228603
ILT
27712009-06-16 Ian Lance Taylor <iant@google.com>
2772
2773 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
2774
9c727c9a
ILT
27752009-06-16 Ian Lance Taylor <iant@google.com>
2776
2777 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
2778 inline, not extern inline.
2779 (exact_log2): Likewise.
2780 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
2781 test CLZ_HWI.
2782 (exact_log2): Likewise, but don't test CTZ_HWI.
2783
5fd8300b
ILT
27842009-06-16 Ian Lance Taylor <iant@google.com>
2785
2786 * bitmap.c (bitmap_clear): Don't declare as inline.
2787 * gimple.c (gimplify_assign): Likewise.
2788 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
2789 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
2790 (sched_scan_info): Remove duplicate definition.
2791
7d882b83
ILT
27922009-06-16 Ian Lance Taylor <iant@google.com>
2793
2794 * c-common.c (skip_evaluation): Don't define.
2795 (c_inhibit_evaluation_warnings): Define global variable.
2796 (overflow_warning): Check c_inhibit_evaluation_warnings rather
2797 than skip_evaluation.
2798 (convert_and_check, warn_for_div_by_zero): Likewise.
2799 * c-common.h (skip_evaluation): Don't declare.
2800 (c_inhibit_evaluation_warnings): Declare.
2801 * c-parser.c (c_parser_typeof_specifier): Set
2802 c_inhibit_evaluation_warnings rather than skip_evaluation.
2803 (c_parser_conditional_expression): Likewise.
2804 (c_parser_binary_expression): Likewise.
2805 (c_parser_sizeof_expression): Likewise.
2806 (c_parser_alignof_expression): Likewise.
2807 * c-typeck.c (build_indirect_ref): Check
2808 c_inhibit_evaluation_warnings rather than skip_evaluation.
2809 (build_conditional_expr, build_binary_op): Likewise.
2810
2e407842
RG
28112009-06-16 Richard Guenther <rguenther@suse.de>
2812
2813 * tree-ssa-alias.c (is_escape_site): Remove.
2814 * tree-ssa-alias.h (enum escape_type): Remove.
2815 (is_escape_site): Likewise.
2816 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
2817 via casts and asms without deferring to is_escape_site.
2818
f2ff8872
JJ
28192009-06-16 Jakub Jelinek <jakub@redhat.com>
2820
2821 PR middle-end/40446
2822 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
2823 use gen_lowpart if op0 has complex mode.
2824
de70bb20
RG
28252009-06-16 Richard Guenther <rguenther@suse.de>
2826
2827 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
2828 variables add them to ESCAPED.
c637b0fa 2829 (find_func_aliases): Do not make all indirectly stored values escaped.
de70bb20 2830
daa0eeb8
RAE
28312009-06-16 Rafael Avila de Espindola <espindola@google.com>
2832
2833 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
2834 make_decl_one_only.
2835
0ec19b8c
MJ
28362009-06-16 Martin Jambor <mjambor@suse.cz>
2837
2838 PR tree-optimization/40432
2839 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
2840 check whether we need to force gimple register operand.
2841
2b26b801
MJ
28422009-06-16 Martin Jambor <mjambor@suse.cz>
2843
2844 PR tree-optimization/40413
2845 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
2846 build_ref_for_offset.
2847 (propagate_subacesses_accross_link): Fix a typo in a comment.
2848
7c5222ff
IR
28492009-06-16 Ira Rosen <irar@il.ibm.com>
2850
2851 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
2852 with additional parameter.
c637b0fa 2853 * tree-vectorizer.h (enum vect_def_type): Add new value
7c5222ff
IR
2854 vect_nested_cycle.
2855 (enum vect_relevant): Add comments.
2856 (vect_is_simple_reduction): Add new argument.
2857 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
2858 Detect nested cycles.
2859 (vect_is_simple_reduction): Update documentation, add an argument to
2860 distinguish inner-loop reduction from nested cycle, detect nested
2861 cycles, fix printings and indentation, don't swap operands in case
2862 of nested cycle.
2863 (get_initial_def_for_reduction): Handle subtraction.
2864 (vect_create_epilog_for_reduction): Add new argument to specify
2865 reduction variable.
2866 (vect_finalize_reduction): Handle subtraction, fix comments.
c637b0fa
UB
2867 (vectorizable_reduction): Handle nested cycles. In case of nested
2868 cycle keep track of the reduction variable position. Call
7c8b1a77 2869 vect_is_simple_reduction with additional parameter. Use original
7c5222ff
IR
2870 statement code in reduction epilogue for nested cycle. Call
2871 vect_create_epilog_for_reduction with additional parameter.
c637b0fa
UB
2872 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
2873 inner-loop vectorization.
7c5222ff
IR
2874 (vect_recog_widen_sum_pattern): Likewise.
2875 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
2876 and reductions.
2877 (vect_mark_stmts_to_be_vectorized): Likewise.
2878 (vect_get_vec_def_for_operand): Handle nested cycles.
2879
d376d545
RW
28802009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2881
2882 * doc/invoke.texi (Debugging Options): Fix option index entries
2883 for -fdump-statistics, -frandom-seed add entries for
2884 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
2885 (FRV Options): Fix entries for -mTLS, -mtls.
2886 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
2887 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
2888 (M68hc1x Options): Fix @itemx for -mnominmax.
2889 (MCore Options): Fix entry for -mno-lsim.
2890 (MMIX Options): Fix entry for -mabi=mmixware.
2891 (PDP-11 Options): Fix entry for -mbcopy-builtin.
2892
bd117bb6
BS
28932009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
2894
2895 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
2896 Mention the plugin mode of gengtype.
c637b0fa 2897 * doc/gty.texi (Source Files Containing Type Information): Likewise.
bd117bb6
BS
2898 * gengtype.c: Updated copyright.
2899 (plugin_files, nb_plugin_files) Added new static variables.
2900 (measure_input_list) Care about plugin_files.
2901 (write_rtx_next): Added early return in plugin mode.
2902 (create_file): Updated copyright year in generated file. Added
2903 asserts.
2904 (oprintf): Added early return if NULL outf.
2905 (get_output_file_with_visibility): Care of plugin_files.
2906 (get_output_file_name): May return null.
2907 (write_local): Added early return.
2908 (put_mangled_filename): Ditto.
2909 (finish_root_table): Added check for base_files.
2910 (write_roots): Care about null when plugins.
2911 (main): Added plugin mode.
2912
e1b7793c
ILT
29132009-06-15 Ian Lance Taylor <iant@google.com>
2914
c637b0fa 2915 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
e1b7793c
ILT
2916 * gcov.c (read_count_file): Add braces around variables declared
2917 before label.
2918
2919 * c.opt (Wjump-misses-init): New warning.
2920 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
2921 -Wall and -Wc++-compat if not already set.
2922 (c_common_post_options): Clear warn_jump_misses_init if it was not
2923 set.
2924 * c-decl.c (struct c_binding): Change type field to a union with
2925 new label field. Make it the first field in the struct. Update
2926 references to type to use u.type instead.
2927 (struct c_spot_bindings): Define.
2928 (struct c_goto_bindings): Define.
2929 (c_goto_bindings_p): Define, along with VECs.
2930 (struct c_label_vars): Define.
2931 (struct c_scope): Add has_label_bindings field.
2932 (bind_label, set_spot_bindings): New static functions.
2933 (decl_jump_unsafe, update_spot_bindings): New static functions.
2934 (update_label_decls): New static function.
2935 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
2936 Update binding u.label field to shadowed field.
2937 (c_binding_start_stmt_expr): New function.
2938 (c_binding_end_stmt_expr): New function.
2939 (pushdecl): Don't call c_begin_vm_scope.
2940 (make_label): Add defining and p_label_vars parameters. Change
2941 all callers.
2942 (lookup_label): Correct test for whether a label has not yet been
2943 defined. Call bind_label rather than bind.
2944 (warn_about_goto): New static function.
2945 (lookup_label_for_goto): New function.
2946 (declare_label): Call bind_label rather than bind.
2947 (check_earlier_gotos): New static function.
2948 (define_label): Don't give errors about jumping into statement
2949 expressions or scopes of variably modified types. Call
2950 set_spot_bindings and check_earlier_gotos. Call bind_label
2951 instead of bind. Don't set label_context_stack_se or
2952 label_context_stack_vm.
2953 (c_get_switch_bindings): New function.
2954 (c_release_switch_bindings): New function.
2955 (c_check_switch_jump_warnings): New function.
2956 (start_function): Don't set label_context_stack_se or
2957 label_context_stack_vm.
2958 (finish_function): Likewise.
2959 * c-typeck.c (label_context_stack_se): Don't define.
2960 (label_context_stack_vm): Don't define.
2961 (c_finish_goto_label): Call lookup_label_for_goto rather than
2962 lookup_label. Don't give errors about jumping into a statement
2963 expression or the scope of a variably modified type. Don't set
2964 label_context_stack_se or label_context_stack_vm.
2965 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
2966 fields. Add bindings field.
2967 (c_start_case): Don't set deleted fields. Set bindings field.
2968 (do_case): Rework order of tests. Don't check blocked_stmt_expr
2969 or blocked_vm. Call c_check_switch_jump_warnings.
2970 (c_finish_case): Don't test blocked_stmt_expr field. Call
2971 c_release_switch_bindings.
2972 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
2973 c_switch_stack. Don't walk label_context_stack_se labels. Don't
2974 set label_context_stack_se. Call c_bindings_start_stmt_expr.
2975 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
2976 c_switch_stack. Don't walk label_context_stack_se labels. Don't
2977 set label_context_stack_se. Call c_bindings_end_stmt_expr.
2978 (c_begin_vm_scope, c_end_vm_scope): Don't define.
2979 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
2980 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
2981 (C_DECL_UNJUMPABLE_VM): Don't define.
2982 (C_DECL_UNDEFINABLE_VM): Don't define.
2983 (struct c_label_list): Don't define.
2984 (struct c_label_context_se): Don't define.
2985 (struct c_label_context_vm): Don't define.
2986 (struct c_spot_bindings): Declare.
2987 (c_bindings_start_stmt_expr): Declare.
2988 (c_bindings_end_stmt_expr): Declare.
2989 (lookup_label_for_goto): Declare.
2990 (c_get_switch_bindings, c_release_switch_bindings): Declare.
2991 (c_check_switch_jump_warnings): Declare.
2992 (label_context_stack_se, label_context_stack_vm): Don't declare.
2993 (c_finish_goto_label): Update declaration.
2994 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
2995 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
2996 (Warning Options): Document -Wjump-misses-init.
2997
98a129b9
JJ
29982009-06-15 Jakub Jelinek <jakub@redhat.com>
2999
3000 * tree-object-size.c (addr_object_size): Fix a pasto in the last
3001 change.
3002
19751f1f
RAE
30032009-06-15 Rafael Avila de Espindola <espindola@google.com>
3004
3005 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
3006
d40eb158
AH
30072009-06-15 Aldy Hernandez <aldyh@redhat.com>
3008
3009 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
3010
30112009-06-15 Aldy Hernandez <aldyh@redhat.com>
3012
3013 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
3014
fc26fae3
RAE
30152009-06-15 Rafael Avila de Espindola <espindola@google.com>
3016
3017 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
3018 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
3019 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
3020 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c637b0fa
UB
3021 * dwarf2asm.c (dw2_force_const_mem): Update call to
3022 make_decl_one_only.
fc26fae3
RAE
3023 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
3024 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
3025 * langhooks.c (lhd_comdat_group): Remove.
3026 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
3027 * tree.h (DECL_COMDAT_GROUP): New.
3028 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
3029 (tree_decl_with_vis): Add comdat_group. Remove one_only.
3030 (make_decl_one_only): Change signature.
3031 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
3032 make_decl_one_only.
3033 (make_decl_one_only): Change signature.
3034 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
3035
0eb92735
RG
30362009-06-15 Richard Guenther <rguenther@suse.de>
3037
3038 PR middle-end/40439
3039 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
3040
0ab352d5
AK
30412009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3042
3043 * tree-ssa-math-opts.c: Remove extra divide.
3044
677fbff4
AK
30452009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3046
3047 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
3048
03bd2f1a
AK
30492009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3050
3051 * passes.c: Add bswap pass.
3052 * tree-pass.h: Add pass_optimize_bswap declaration.
3053 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
3054 Include rtl.h, expr.h and optabs.h for optab_handler check.
3055 (struct symbolic_number, pass_optimize_bswap): New definition.
3056 (do_shift_rotate, verify_symbolic_number_p): New functions.
3057 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
3058 (gate_optimize_bswap): New function.
3059 * tree.c (widest_int_cst_value): New function.
3060 * tree.h (widest_int_cst_value): Prototype added.
3061
fb4c4640
SB
30622009-06-14 Steven Bosscher <steven@gcc.gnu.org>
3063
3064 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
3065 REG_EQUAL/REG_EQUIV notes.
3066
1d24fdd9
RG
30672009-06-14 Richard Guenther <rguenther@suse.de>
3068
3069 PR middle-end/40389
3070 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
3071 has its address taken if NRV was applied and it is addressable.
3072 * tree-ssa-structalias.c (get_constraint_for_address_of): New
3073 function split out from ...
3074 (get_constraint_for_1): ... here.
3075 (handle_rhs_call): Use it to mark the return slot escaped if
3076 it is addressable and NRV was applied.
3077
4b29c5e5
AH
30782009-06-13 Aldy Hernandez <aldyh@redhat.com>
3079
3080 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
3081 Change first argument type to location_t.
3082 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
3083 Do not set input_location.
3084 Use loc instead of input_location throughout.
3085
e1e6dc73
RG
30862009-06-13 Richard Guenther <rguenther@suse.de>
3087
1d24fdd9 3088 PR tree-optimization/40421
e1e6dc73
RG
3089 * tree-predcom.c (should_unroll_loop_p): Remove.
3090 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
3091
8012b923
MM
30922009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
3093
3094 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3095 Add location argument.
3096
4c4bde29
AH
30972009-06-13 Aldy Hernandez <aldyh@redhat.com>
3098
3099 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
3100 build_decl.
3101 * config/s390/s390.c (s390_build_builtin_va_list): Same.
3102 (s390_gimplify_va_arg): Pass location to create_artificial_label.
3103 * config/spu/spu-protos.h: Add location to
3104 spu_resolve_overloaded_builtin.
3105 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
3106 spu_build_builtin_va_list.
3107 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
3108 argument. Pass location to build_function_call_vec.
3109 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
3110 build_decl.
3111 (emit_fpu_switch): Same.
3112 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
3113 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
3114 to build_decl and create_artificial_label.
3115 (xtensa_gimplify_va_arg_expr): Same.
3116 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
3117 (xstormy16_gimplify_va_arg_expr): Same.
3118 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
3119 * config/arm/arm.c (arm_build_builtin_va_list): Same.
3120 * config/mips/mips.c (mips_build_builtin_va_list): Same.
3121 (mips16_build_function_stub): Same.
3122 (mips16_build_call_stub): Same.
3123
81beb031
RE
31242009-06-13 Richard Earnshaw <rearnsha@arm.com>
3125
3126 PR target/40327
3127 * arm/constraints.md (Pa, Pb): New constraints.
3128 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
3129 split pattern to deal with them.
3130
98f6c600
JS
31312009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
3132
3133 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
3134 fix index entry for -Xpreprocessor.
3135
71856685
AH
31362009-06-12 Aldy Hernandez <aldyh@redhat.com>
3137
3138 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3139 Add location argument to build_decl call.
3140 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
3141 (rs6000_init_builtins): Same.
3142 (spe_init_builtins): Same.
3143 (rs6000_gimplify_va_arg): Add location argument to
3144 create_artificial_label call.
3145
756b65f5
SB
31462009-06-12 Steven Bosscher <steven@gcc.gnu.org>
3147
3148 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
3149 * combine-stack-adj.c (pass_stack_adjustments): Use it.
3150 * Makefile.in: Fix GGC dependency for gcse.o.
3151
c2255bc4
AH
31522009-06-12 Aldy Hernandez <aldyh@redhat.com>
3153
3154 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
3155 * gimple-pretty-print.c (dump_gimple_stmt): Same.
3156 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
3157 created.
3158 * c-parser.c (c_parser_binary_expression): Use current column while
3159 building binary operations.
3160 * common.opt (fshow-column): Enable by default.
3161 * tree-vrp.c (check_array_ref): Use warning_at.
3162 (check_array_bounds): Use location from call back if expr has no
3163 location.
3164 * tree.h: Add location argument to maybe_fold_*.
3165 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
3166 (maybe_fold_offset_to_array_ref): Add location argument and use it.
3167 (maybe_fold_offset_to_component_ref): Same.
3168 (maybe_fold_offset_to_reference): Same.
3169 (maybe_fold_offset_to_address): Same.
3170 (maybe_fold_stmt_indirect): Same.
3171 (maybe_fold_stmt_addition): Same.
3172 (fold_stmt_r): Pass location to maybe_fold_*.
3173 (fold_gimple_assign): Same.
3174 * c-tree.h: Add location argument to finish_decl,
3175 default_function_array_conversion, store_init_value.
3176 * c-decl.c (define_label): Use error_at.
3177 (c_make_fname_decl): Pass location to finish_decl.
3178 (finish_decl): New location argument.
3179 (build_compound_literal): Pass location to store_init_value.
3180 (grokdeclarator): Pass location to finish_decl.
3181 (grokfield): Same.
3182 * c-typeck.c (array_to_pointer_conversion): New location argument.
3183 (function_to_pointer_conversion): Same.
3184 (default_function_array_conversion): Same.
3185 (parser_build_unary_op): Pass location to overflow_warning.
3186 (parser_build_binary_op): Same. Use warning_at.
3187 (build_unary_op): Pass location to array_to_pointer_conversion.
3188 (build_c_cast): Pass location to digest_init.
3189 (build_modify_expr): New location argument.
3190 (convert_for_assignment): Same.
3191 (store_init_value): Same.
3192 (digest_init): Same.
3193 (output_init_element): Pass location to digest_init and
3194 array_to_pointer_conversion.
3195 (c_finish_return): Pass location to convert_for_assignment.
3196 * gimplify.c (gimplify_conversion): Pass location to
3197 maybe_fold_offset_to_address.
3198 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
3199 to maybe_fold_stmt_addition.
3200 * c-omp.c (c_finish_omp_atomic): Pass new location to
3201 build_modify_expr.
3202 (c_finish_omp_for): Same.
3203 * c-common.c (overflow_warning): New argument.
3204 * c-common.h: New argument to build_modify_expr, overflow_warning.
3205 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
3206 finish_decl.
3207 (c_parser_initializer): Pass location to
3208 default_function_array_conversion.
3209 (c_parser_initelt): Same.
3210 (c_parser_initval): Same.
3211 (c_parser_asm_operands): Same.
3212 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
3213 (c_parser_conditional_expression): Same.
3214 (c_parser_binary_expression): Add location info to stack. Use it.
3215 (c_parser_unary_expression): Pass location to
3216 default_function_array_conversion, parser_build_unary_op,
3217 build_indirect_ref, c_parser_postfix_expression_after_primary.
3218 (c_parser_postfix_expression_after_primary): New location argument.
3219 Use it.
3220 (c_parser_expression_conv): Pass location to
3221 default_function_array_conversion.
3222 (c_parser_expr_list): Same.
3223 (c_parser_omp_atomic): Same.
3224 (c_parser_omp_for_loop): Same.
3225 * c-tree.h: (struct c_declarator): Add comment to id_loc.
3226 (build_array_declarator): New argument.
3227 * c-decl.c (build_array_declarator): Add location argument.
3228 (grokdeclarator): Set id_loc for cdk_array.
3229 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
3230 build_array_declarator.
3231 * tree.c (build_omp_clause): Add location argument.
3232 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
3233 (OMP_CLAUSE_LOCATION): New macro.
3234 (struct tree_omp_clause): Add location field.
3235 (build_omp_clause): Add argument.
3236 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
3237 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
3238 build_omp_clause.
3239 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
3240 (cp_parser_omp_clause_collapse): Same.
3241 (cp_parser_omp_clause_default): Same.
3242 (cp_parser_omp_clause_if): Same.
3243 (cp_parser_omp_clause_nowait): Same.
3244 (cp_parser_omp_clause_num_threads): Same.
3245 (cp_parser_omp_clause_ordered): Same.
3246 (cp_parser_omp_clause_schedule): Same.
3247 (cp_parser_omp_clause_untied): Same.
3248 (cp_parser_omp_for_loop): Same.
3249 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
3250 * c-tree.h (c_start_case): Add location argument.
3251 (c_process_expr_stmt): Same.
3252 (c_finish_goto_*): Same.
3253 * tree-parloops.c (initialize_reductions): Pass location to
3254 build_omp_clause.
3255 (create_parallel_loop): Same.
3256 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
3257 (gfc_trans_omp_reduction_list): Same.
3258 (gfc_trans_omp_clauses): Same.
3259 (gfc_trans_omp_do): Same.
3260 * c-typeck.c (c_finish_goto_label): Same.
3261 (c_finish_goto_ptr): New location argument.
3262 (c_start_case): Same.
3263 (emit_side_effect_warnings): Same.
3264 (c_process_expr_stmt): Same.
3265 (c_finish_stmt_expr): Same.
3266 (c_finish_omp_clauses): Use error_at instead of error.
3267 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
3268 build_omp_clause.
3269 * c-omp.c (c_split_parallel_clauses): New location argument.
3270 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
3271 to build_omp_clause.
3272 (convert_local_reference_stmt): Same.
3273 (convert_gimple_call): Same.
3274 * c-common.h (c_split_parallel_clauses): New argument.
3275 * c-parser.c (c_parser_statement_after_labels): Pass location to
3276 c_finish_goto_label.
3277 (c_parser_switch_statement): Pass location to c_start_case.
3278 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
3279 and c_process_expr_stmt.
3280 (c_parser_omp_variable_list): Add location argument.
c637b0fa 3281 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
c2255bc4
AH
3282 (c_parser_omp_clause_default): Same.
3283 (c_parser_omp_clause_if): Same.
3284 (c_parser_omp_clause_num_threads): Same.
3285 (-c_parser_omp_clause_ordered): Same.
3286 (c_parser_omp_clause_reduction): Pass location to
3287 c_parser_omp_variable_list.
3288 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
3289 (c_parser_omp_clause_untied): Same.
3290 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c637b0fa 3291 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
c2255bc4
AH
3292
3293 * c-tree.h (check_for_loop_decls, undeclared_variable,
3294 build_component_ref, build_array_ref, build_external_ref,
3295 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
3296 build_conditional_expr, build_compound_expr, c_cast_expr,
3297 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
3298 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
3299 argument.
3300 * c-semantics.c (build_stmt): Same.
3301 (build_case_label): Same.
3302 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
3303 (undeclared_variable): New argument.
3304 (make_label): Same.
3305 (lookup_label): Pass location on down.
3306 (define_label): Same.
3307 (finish_decl): Same.
3308 (build_compound_literal): Same.
3309 (finish_struct): Same.
3310 (finish_function): Do not set location here.
3311 (check_for_loop_decls): New argument.
3312 * tree.c (save_expr): Set location.
3313 (build_empty_stmt): New argument.
3314 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
3315 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
3316 * builtins.c (gimplify_va_arg_expr): Use locations.
3317 (expand_builtin_sync_operation): Same.
3318 * c-typeck.c (build_component_ref): New argument.
3319 (build_array_ref): Same.
3320 (build_external_ref): Same.
3321 (c_expr_sizeof_expr): Same.
3322 (c_expr_sizeof_type): Same.
3323 (parser_build_unary_op): Same.
3324 (build_conditional_expr): Same.
3325 (build_compound_expr): Pass location on down.
3326 (build_compound_expr): New argument.
3327 (build_c_cast): Same.
3328 (c_cast_expr): Same.
3329 (build_asm_expr): Same.
3330 (c_finish_return): Same.
3331 (c_process_expr_stmt): Pass location on down.
3332 (c_finish_stmt_expr): New argument.
3333 (push_clenaup): Same.
3334 (c_finish_omp_parallel): Same.
3335 (c_finish_omp_task): Same.
3336 * gimplify.c (gimplify_call_expr): Pass location on down.
3337 * c-omp.c (c_finish_omp_master): New argument.
3338 (c_finish_omp_critical): Same.
3339 (c_finish_omp_ordered): Same.
3340 (c_finish_omp_barrier): Same.
3341 (-c_finish_omp_taskwait): Same.
3342 (c_finish_omp_atomic): Same.
3343 (c_finish_omp_flush): Same.
3344 * tree-inline.c (copy_tree_body_r): Pass location on down.
3345 (inline_forbidden_p): Remove use of input_location.
3346 * c-gimplify.c (c_build_bind_expr): New argument.
3347 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
3348 (c_sizeof_or_alignof_type): New argument.
3349 (c_alignof_expr): Same.
3350 (build_va_arg): Same.
3351 (c_add_case_label): Same.
3352 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
3353 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
3354 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
3355 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
3356 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
3357 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
3358 New argument.
3359 * stub-objc.c (objc_build_selector_expr): Same.
3360 (objc_build_throw_stmt): Same.
3361 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
3362 (c_parser_initelt): Same.
3363 (c_parser_compound_statement): Same.
3364 (c_parser_compound_statement_nostart): Same.
3365 (c_parser_label): Same.
3366 (c_parser_statement_after_labels): Same.
3367 (c_parser_if_body): Same.
3368 (c_parser_else_body): Same.
3369 (c_parser_if_statement): Same.
3370 (c_parser_switch_statement): Same.
3371 (c_parser_while_statement): Same.
3372 (c_parser_do_statement): Same.
3373 (c_parser_for_statement): Same.
3374 (c_parser_asm_statement): Same.
3375 (c_parser_conditional_expression): Same.
3376 (c_parser_binary_expression): Same.
3377 (c_parser_cast_expression): Same.
3378 (c_parser_unary_expression): Same.
3379 (c_parser_sizeof_expression): Same.
3380 (c_parser_alignof_expression): Same.
3381 (c_parser_postfix_expression): Same.
3382 (c_parser_expression): Same.
3383 (c_parser_objc_receiver): Same.
3384 (c_parser_omp_variable_list): Same.
3385 (c_parser_omp_structured_block): Same.
3386 (c_parser_omp_atomic): New argument.
3387 (c_parser_omp_barrier): Same.
3388 (c_parser_omp_critical): Same.
3389 (c_parser_omp_flush): Pass location on down.
3390 (c_parser_omp_for_loop): New argument.
3391 (c_parser_omp_for): Same.
3392 (c_parser_omp_master): Same.
3393 (c_parser_omp_ordered): Same.
3394 (c_parser_omp_sections_scope): Same.
3395 (c_parser_omp_sections): Same.
3396 (c_parser_omp_parallel): Same.
3397 (c_parser_omp_single): Same.
3398 (c_parser_omp_task): Same.
3399 (c_parser_omp_taskwait): Pass location on down.
3400 (c_parser_omp_construct): Same.
3401 (c_parser_omp_threadprivate): Same.
3402 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
3403 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
3404 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
3405 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
3406 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
3407 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
3408 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
3409 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
3410 config/i386/i386.c, stmt.c:
3411 Add location argument to the following function definitions and/or
3412 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
3413 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
3414 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
3415 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
3416 do_case, c_finish_bc_stmt, build_compound_literal,
3417 build_function_call.
3418 * c-decl.c (build_compound_literal): Add location argument.
3419 Make all diagnostic calls use location.
3420 (start_struct): Same.
3421 (finish_struct): Same.
3422 (start_enum): Same.
3423 (build_enumerator): Same.
3424 (start_function): Same.
3425 (grokdeclarator): Make all diagnostic calls use location.
3426 (store_parm_decls_oldstyle): Same.
3427 * c-typeck.c (build_function_call): Add location argument.
3428 Make all diagnostic calls use location.
3429 (do_case): Same.
3430 (c_finish_bc_stmt): Same.
3431 * tree-nested.c (get_trampoline_type): Add argument.
3432 Pass location to build_decl.
3433 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
3434 * rtl.h (RTL_LOCATION): New.
3435 * c-common.c (c_add_case_label): Add location argument.
3436 Make all diagnostic calls use location.
3437 * c-common.h: Add location argument to make_fname_decl, do_case,
3438 c_add_case_label, build_function_call, resolve_overloaded_builtin.
3439 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
3440 Set it appropriately for every case. Pass enum_loc to start_enum
3441 call. Pass value_loc first to build_enumerator. Pass enum_loc to
3442 parser_xref_tag.
3443 (c_parser_struct_or_union_specifier): Save location. Use it for
3444 start_struct, finish_struct, and parser_xref_tag.
3445
3d8b2a98
ILT
34462009-06-12 Ian Lance Taylor <iant@google.com>
3447
c637b0fa 3448 * fold-const.c (fold_unary): Rename local variable and to and_expr.
3d8b2a98
ILT
3449
3450 * c-opts.c (c_common_handle_option): For -Wc++-compat set
3451 cpp_opts->warn_cxx_operator_names.
3452
737142ce
AP
34532009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
3454
3455 PR tree-opt/38865
3456 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
3457 is returns NULL and OP is a VCE, look through the VCE.
3458
d3a0d55d
ILT
34592009-06-12 Ian Lance Taylor <iant@google.com>
3460
3461 PR bootstrap/40430
3462 * collect2.c (main): Use CONST_CAST2 in code inside #if
3463 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
3464
f85882d8
JY
34652009-06-12 Joey Ye <joey.ye@intel.com>
3466
3467 PR middle-end/39146
3468 * cfgexpand.c (get_decl_align_unit): Update
3469 max_used_stack_slot_alignment with align instead of
3470 stack_alignment_needed.
3471
3472 * function.c (assign_stack_local_1): Update
3473 max_used_stack_slot_alignment with alignment_in_bits instead
3474 of stack_alignment_needed.
3475 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
3476 here.
3477
fc9f468b
JJ
34782009-06-12 Jakub Jelinek <jakub@redhat.com>
3479
3480 * dwarf2out.c (last_var_location_insn): New variable.
3481 (dwarf2out_end_epilogue): Clear last_var_location_insn.
3482 (dwarf2out_var_location): Don't record anything after last real
3483 insn. Only change labels if there were any real instructions
3484 in between last note and this one, or if changed sections.
3485
7c1db202
RH
34862009-06-11 Richard Henderson <rth@redhat.com>
3487
f85882d8 3488 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
3489 note when storing the frame pointer in a register.
3490 (FRP): Don't redefine to nothing for epilogue.
3491 (alpha_expand_epilogue): Mark register and sp restores.
3492 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
3493
7c1db202
RH
3494 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
3495 when gen_lowpart is needed.
3496
f2ae7631
RH
34972009-06-11 Richard Henderson <rth@redhat.com>
3498
42755c21
RH
3499 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
3500
f2ae7631
RH
3501 * dwarf2out.c (need_data_align_sf_opcode): New.
3502 (div_data_align): Move earlier.
3503 (def_cfa_1, reg_save): Use it.
3504
8ed0ce99
L
35052009-06-11 H.J. Lu <hongjiu.lu@intel.com>
3506
3507 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
3508 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
3509 (ix86_handle_option): Handle OPT_mcrc32.
3510 (ix86_target_string): Add -mcrc32.
3511 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
3512
3513 * config/i386/i386.h (TARGET_CRC32): New.
3514
c637b0fa 3515 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
8ed0ce99
L
3516 (sse4_2_crc32di): Likewise.
3517
c637b0fa 3518 * config/i386/i386.opt (mcrc32): New.
8ed0ce99
L
3519
3520 * doc/invoke.texi: Document -mcrc32.
3521
9fd68a1f
RH
35222009-06-11 Richard Henderson <rth@redhat.com>
3523
8ed0ce99 3524 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
3525 * doc/invoke.texi (gdwarf-): Update docs.
3526 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
3527 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
3528 version level, and record it.
3529
3530 * dwarf2.h (DW_CIE_VERSION): Remove.
3531 * dwarf2out.c (DWARF_VERSION): Remove.
3532 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
3533 (output_call_frame_info): Use CIE version 3 for dwarf3,
3534 or if the return register column is out of range for version 1.
3535 (dwarf_stack_op_name): Add all dwarf3 values.
3536 (DEBUG_PUBTYPES_SECTION): New.
3537 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
3538 encoding change for dwarf3.
3539 (output_die) [dw_val_class_die_ref]: Likewise.
3540 (output_compilation_unit_header): Emit correct version for dwarf3.
3541 (output_line_info): Likewise.
3542 (output_pubnames): Update for DWARF_VERSION removal.
3543 (output_aranges): Likewise.
3544 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
3545 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
3546 (dwarf2out_finish): Likewise.
3547
4de8ce3b
DD
35482009-06-11 David Daney <ddaney@caviumnetworks.com>
3549
3550 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
3551 in r148403.
3552
468059bc
DD
35532009-06-11 David Daney <ddaney@caviumnetworks.com>
3554
3555 PR c/39252
3556 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
3557 * builtins.c (expand_builtin_unreachable): New function.
3558 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
3559 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
3560 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
3561 successors.
3562 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
3563 searching for missing barriers.
3564
b5a6e96f
FXC
35652009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3566
3567 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
3568 when -fprofile-generate* was passed.
3569 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
3570
6be6462e
AG
35712009-06-11 Anthony Green <green@moxielogic.com>
3572
c637b0fa 3573 * config/moxie/moxie.md: Define length attribute for all instructions.
6be6462e
AG
3574 (rCC): Define.
3575 (*b<cond:code>): Support limited branch ranges for new PC-relative
3576 branch instructions.
3577 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
3578
caaabe0a
JJ
35792009-06-11 Jakub Jelinek <jakub@redhat.com>
3580
e5219642
JJ
3581 * config/i386/i386.c (min_insn_size): Use get_attr_length
3582 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
3583 For __asm return 0.
3584
caaabe0a
JJ
3585 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
3586 instead of emit_insn_before.
3587
a567fa6a
ILT
35882009-06-10 Ian Lance Taylor <iant@google.com>
3589
3590 PR bootstrap/40408
3591 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
3592 GIMPLE_SWITCH.
3593
6a753d5f
RE
35942009-06-10 Revital Eres <eres@il.ibm.com>
3595
3596 * passes.c (init_optimization_passes): Reschedule
3597 predictive-commoning pass before complete unroll pass.
3598
a550d677
MJ
35992009-06-10 Martin Jambor <mjambor@suse.cz>
3600
3601 * cgraph.c (cgraph_node_can_be_local_p): New function.
3602 (cgraph_make_node_local): New function.
3603 * cgraph.h (cgraph_node_can_be_local_p): Declare.
3604 (cgraph_make_node_local): Declare.
3605
d8259b07
NF
36062009-06-10 Nathan Froyd <froydnj@codesourcery.com>
3607
3608 * tree.h (tree_base): Add packed_flag and user_align fields.
3609 Decrease size of spare field.
3610 (TYPE_USER_ALIGN): Use user_align from tree_base.
3611 (DECL_USER_ALIGN): Likewise.
3612 (TYPE_PACKED): Use packed_flag from tree_base.
3613 (DECL_PACKED): Likewise.
3614 (tree_type): Delete packed_flag and user_align fields. Widen
3615 precision field. Widen mode field and shuffle fields to align
3616 mode on an 8-bit boundary.
3617 (tree_decl_common): Delete decl_flag_1 and user_align fields.
3618 Renumber decl_flag_* fields. Fix comments. Widen
3619 decl_common_unused field.
c637b0fa 3620 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
d8259b07
NF
3621 (DECL_EXTERNAL): Likewise.
3622 (DECL_BIT_FIELD): Likewise.
3623 (DECL_NONADDRESSABLE_P): Likewise.
3624 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
3625 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
3626
c2569604
ILT
36272009-06-10 Ian Lance Taylor <iant@google.com>
3628
3629 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
3630 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
3631 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
3632 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
3633 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
3634 DEF_VEC_ALLOC_FUNC_P.
3635 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
3636 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
3637 DEF_VEC_ALLOC_FUNC_O.
3638 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
3639 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
3640 DEF_VEC_ALLOC_FUNC_I.
3641 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
3642 (vec_stack_p_reserve_exact_1): Declare.
3643 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
3644 (vec_stack_free): Declare.
3645 (VEC_stack_alloc): Define.
3646 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
3647 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
3648 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
3649 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
3650 for void_p.
3651 (stack_vecs): New static variable.
3652 (vec_stack_p_reserve_exact_1): New function.
3653 (vec_stack_o_reserve_1): New static function.
3654 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
3655 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
3656 (vec_stack_free): New function.
3657 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
3658 (VEC_df_ref_stack_alloc): Define.
3659 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
3660 DEF_VEC_ALLOC_P_STACK.
3661 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
3662 (struct df_collection_rec): Change _vec fields to VEC. Remove
3663 _use fields.
3664 (df_free_collection_rec): Adjust for new fields.
3665 (df_insn_rescan): Use new df_collection_rec fields.
3666 (df_notes_rescan, df_canonize_collection_rec): Likewise.
3667 (df_ref_create_structure, df_ref_record): Likewise.
3668 (df_get_conditional_uses, df_get_call_refs): Likewise.
3669 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
3670 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
3671 (df_record_exit_block_uses, df_bb_verify): Likewise.
c637b0fa 3672 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
c2569604
ILT
3673 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
3674 Remove count parameter. Change return type to void. Change all
3675 callers.
3676 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
3677 Remove count parameter. Change return type to void. Change all
3678 callers.
3679 (df_install_refs): Change old_vec parameter to VEC. Remove count
3680 parameter. Change all callers.
3681 (df_install_mws): Change old_vec parameter to VEC. Remove count
3682 parameter. Change all callers.
3683 (df_refs_verify): Change new_rec parameter to VEC. Change call
3684 callers.
3685 (df_mws_verify): Likewise.
3686
e7aae3e8
AO
36872009-06-10 Alexandre Oliva <aoliva@redhat.com>
3688
3689 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
3690
412ac8d5
L
36912009-06-10 H.J. Lu <hongjiu.lu@intel.com>
3692
3693 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
3694
cceb575c
AG
36952009-06-10 Anthony Green <green@moxielogic.com>
3696
3697 * config/moxie/crti.asm: New file.
3698 * config/moxie/crtn.asm: New file.
3699 * config/moxie/moxie.c: New file.
3700 * config/moxie/moxie.h: New file.
3701 * config/moxie/sfp-machine.h: New file.
3702 * config/moxie/moxie-protos.h: New file.
3703 * config/moxie/t-moxie: Created.
3704 * config/moxie/t-moxie-softfp: Created.
3705 * config/moxie/moxie.md: Created.
3706 * config/moxie/constraints.md: Created.
3707 * config.gcc: Add moxie support.
3708 * doc/md.texi (Machine Constraints): Add moxie constraints.
3709 * doc/contrib.texi (Contributors): Mention moxie port.
3710 * doc/install.texi (Specific): Mention the moxie port.
3711
bf406687
ILT
37122009-06-09 Ian Lance Taylor <iant@google.com>
3713
3714 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
3715 compiling with C++.
3716 * optabs.c (optab_table): Only use designated initializers if
3717 HAVE_DESIGNATED_INITIALIZERS is defined.
3718 (convert_optab_table): Likewise.
3719 (init_optabs): Always call init_insn_codes if
3720 HAVE_DESIGNATED_INITIALIZERS is not defined.
3721
744aa42f
ILT
37222009-06-09 Ian Lance Taylor <iant@google.com>
3723
3724 * targhooks.c (default_builtin_vectorized_function): Change fn
3725 parameter to unsigned int.
3726 (default_builtin_vectorized_conversion): Change code parameter to
3727 unsigned int.
3728 (default_builtin_reciprocal): Change fn parameter to unsigned int.
3729 * targhooks.h: Update declarations.
3730 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
3731 parameter to unsigned int.
3732
3733 * c-typeck.c (comptypes_check_enum_int): New static function.
3734 (comptypes_internal): Add enum_and_int_p parameter. Change all
3735 callers.
3736 (comp_target_types): Add location parameter. Change all callers.
3737 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
3738 Change all callers.
3739 (function_types_compatible_p, type_lists_compatible_p): Likewise.
3740 (build_conditional_expr): Add colon_loc parameter. Change all
3741 callers.
c637b0fa 3742 (convert_for_assignment): Add location parameter. Change all callers.
744aa42f
ILT
3743 * c-parser.c (c_parser_conditional_expression): Pass location of
3744 colon to build_conditional_expr.
3745 * c-tree.h (build_conditional_expr): Update declaration.
3746
bcbe3b25
SP
37472009-06-09 Sebastian Pop <sebastian.pop@amd.com>
3748
3749 * graphite.c: Revert previous patch.
3750
dc2a6925
SP
37512009-06-09 Sebastian Pop <sebastian.pop@amd.com>
3752
3753 PR bootstrap/40103
3754 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
3755
d81f5387
GS
37562009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
3757
8ed0ce99
L
3758 * tree-ssa-loop-prefetch.c
3759 (loop_prefetch_arrays): Fixed a portability problem in printf format
3760 string.
d81f5387 3761
8056eb4f
MJ
37622009-06-09 Martin Jambor <mjambor@suse.cz>
3763
3764 PR tree-optimization/40351
c637b0fa
UB
3765 * tree-sra.c (propagate_subacesses_accross_link): Check that a
3766 refrence to a potential artifical subaccess can be constructed.
8056eb4f 3767
bd9a3465
KK
37682009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
3769
3770 * config/sh/sh-protos.h (sh_optimization_options): Declare.
3771 (sh_override_options): Likewise.
3772 * config/sh/sh.c: Include params.h.
3773 (sh_optimization_options): New.
3774 (sh_override_options): Likewise.
3775 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
3776 (OVERRIDE_OPTIONS): Use sh_override_options.
3777
8845deab
JJ
37782009-06-08 Jakub Jelinek <jakub@redhat.com>
3779
3780 * dwarf2out.c (emit_cfa_remember): New variable.
3781 (add_fde_cfi): If emit_cfa_remember, recurse to add
3782 DW_CFA_remember_state first.
3783 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
3784 instead just set emit_cfa_remember.
3785
9ea81b0c
JH
37862009-06-08 Jan Hubicka <jh@suse.cz>
3787
3788 PR debug/40126
3789 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
3790
21ecdec5
JH
37912009-06-08 Jan Hubicka <jh@suse.cz>
3792
3793 PR middle-end/39834
c637b0fa
UB
3794 * cgraphunit.c (save_inline_function_body): Do not copy transform
3795 hooks for saved inline bodies.
21ecdec5
JH
3796 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
3797 for given function.
3798
72e48218
AN
37992009-06-08 Adam Nemet <anemet@caviumnetworks.com>
3800
3801 * jump.c (returnjump_p): Handle delayed branches. Add missing
3802 function comment.
3803
6ce2002b
JH
38042009-06-08 Jan Hubicka <jh@suse.cz>
3805
3806 PR middle-end/40102
3807 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
3808 original node might've been modified.
3809 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
3810
eb9ed98a
JJ
38112009-06-08 Jakub Jelinek <jakub@redhat.com>
3812
3813 * tree-object-size.c (addr_object_size): Add OSI argument.
3814 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
3815 (compute_builtin_object_size, expr_object_size): Adjust callers.
3816 (plus_stmt_object_size): Call addr_object_size instead of
3817 compute_builtin_object_size.
3818
db34470d 38192009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 3820 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
3821
3822 * tree-ssa-loop-prefetch.c
3823 (gather_memory_references): Introduced a counter for the number of
3824 memory references.
3825 (anything_to_prefetch_p): Introduced a counter for the number of
3826 prefetches.
3827 (is_loop_prefetching_profitable): New function with a cost model
3828 for prefetching.
3829 (loop_prefetch_arrays): Use the new cost model to determine if
3830 prefetching is profitable.
3831 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
3832 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
3833 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
3834 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
3835 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
3836 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
3837
eb7adebc
MM
38382009-06-08 Michael Matz <matz@suse.de>
3839
3840 PR debug/40012
eb7adebc
MM
3841 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
3842 partitions use the same.
3843 (expand_one_var): Deal with DECL_RTL sometimes begin set also
3844 for basevars of SSA_NAMEs.
3845 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
3846 to not expand them twice.
3847 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
3848 multiple places.
3849
2153915d
AO
38502009-06-08 Alexandre Oliva <aoliva@redhat.com>
3851
3852 * common.opt (fcompare-debug=, fcompare-debug-second): New.
3853 (fdump-final-insns=, gtoggle): New.
3854 * doc/invoke.texi: Document them.
3855 * final.c (rest_of_clean_state): Dump final insn stream.
3856 * gcc.c (invoke_as): Hook in -fcompare-debug.
3857 (static_spec_functions): Add compare-debug-dump-opt,
3858 compare-debug-self-opt and compare-debug-auxbase-opt.
3859 (compare_debug, compare_debug_second, compare_debug_opt): New.
3860 (switches_debug_check, n_switches_debug_check): New.
3861 (debug_auxbase_opt, debug_check_temp_file): New.
3862 (process_command): Handle -fno-compare-debug, -fcompare-debug and
3863 -fcompare-debug=*.
3864 (do_self_spec): Handle arguments after switches.
3865 (do_spec_1): Add .gk extension to temp file basenames for compare.
3866 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
3867 (cc1_options): Use it instead of normal auxbase computation for
3868 the second compare-debug compilation.
3869 (compare_files): New.
3870 (main): Set up and implement compare debug mode.
3871 (compare_debug_dump_opt_spec_function): New.
3872 (compare_debug_self_opt_spec_function): New.
3873 (compare_debug_auxbase_opt_spec_function): New.
3874 * toplev.c (process_options): Handle flag_gtoggle,
3875 flag_dump_final_insns.
3876 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
3877 during -fcompare-debug-second compilation.
3878
cdb88468
ILT
38792009-06-07 Ian Lance Taylor <iant@google.com>
3880
c637b0fa 3881 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
cdb88468
ILT
3882 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
3883
3884 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
3885 with no default node. Change warning with %H to warning_at.
3886 Don't clear warn_switch around case checking.
3887 * doc/invoke.texi (Warning Options): Clarify distinction between
3888 -Wswitch and -Wswitch-enum.
3889
4fe8e1a2
BRF
38902009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3891
3892 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
3893
69952c1d
BRF
38942009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3895
3896 * gbl-ctors.h: Add header guard.
3897
b2ad0284
BRF
38982009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3899
3900 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
3901 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
3902 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
3903 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
3904 prototypes for removed functions.
3905 (expressions_equal_p): Move to ...
3906 * tree-ssa-sccvn.h: ... here and ...
3907 * matrix-reorg.c: ... adjust includes.
3908
c3df55f9
BRF
39092009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3910
3911 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
3912
b5a7159f
BRF
39132009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3914
3915 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
3916 (finish_function): Remove erroneous whitespace.
3917
95bca6b0
BRF
39182009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3919
2cd713a0
BRF
3920 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
3921 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
3922
39232009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3924
3925 * errors.c (internal_error): Commentary typo fix.
3926 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
3927 * tree-ssa-pre.c: Ditto.
95bca6b0 3928
2cd713a0
BRF
39292009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3930
3931 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
3932 them is supposed to hold actual statements.
3933
5bca4e80
ILT
39342009-06-06 Ian Lance Taylor <iant@google.com>
3935
3936 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
3937 empty statements can now have attributes.
3938
47ac44d6
SZ
39392009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
3940
3941 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
3942 * config/mips/mips.md: Ditto.
3943
19b905ce
NF
39442009-06-05 Nathan Froyd <froydnj@codesourcery.com>
3945
3946 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
3947 _RELOCATABLE.
3948 (__eabi_uconvert): Likewise.
3949
16702e19
NF
39502009-06-05 Nathan Froyd <froydnj@codesourcery.com>
3951
3952 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
3953 CFI_* definitions with IN_GCC.
3954
a735afd1
DE
39552009-06-05 David Edelsohn <edelsohn@gnu.org>
3956
3957 * xcoffout.h (xcoffout_source_line): Update prototype.
3958
26a347c5
KG
39592009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3960
3961 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
3962 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
3963
9f706f23
JJ
39642009-06-05 Jakub Jelinek <jakub@redhat.com>
3965
3966 PR middle-end/40340
3967 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
3968 inlined_function_outer_scope_p blocks for artificial inlines
3969 even at -g0/-g1.
3970 * tree.c (tree_nonartificial_location): Rewrite using
3971 block_nonartificial_location.
3972
8f439681
RE
39732009-06-05 Revital Eres <eres@il.ibm.com>
3974 Leehod Baruch <leehod@il.ibm.com>
3975
3976 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
3977 (expand_expr_real_1): Remove comment.
3978 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3979 Vectorize misaligned access when the target supports it.
c637b0fa 3980 (vect_supportable_dr_alignment): Check for unaligned access support.
8f439681
RE
3981 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
3982 and remove asset.
3983
b89f8e3c
JB
39842009-06-05 Julian Brown <julian@codesourcery.com>
3985
3986 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
3987 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
3988
47d1f191
RG
39892009-06-05 Richard Guenther <rguenther@suse.de>
3990
3991 PR bootstrap/40350
3992 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
3993 as possibly unused.
3994
9f706f23 39952009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
3996
3997 * config/s390/s390.c (global_not_special_regno_p): New static inline.
3998 (save_gprs): Don't tell unwinder when a global register is saved.
3999 (s390_emit_epilogue): Emit needed epilogue unwind info.
4000
90f06248
AO
40012009-06-05 Alexandre Oliva <aoliva@redhat.com>
4002
4003 * dwarf2out.c (deferred_asm_name): New.
4004 (add_name_and_src_coords_attributes): Defer creation of
4005 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
4006 computed yet.
4007 (move_linkage_attr): New.
4008 (dwarf2out_finish): Revisit deferrals and emit attributes at the
4009 right place.
4010
c10348e5
AO
40112009-06-05 Alexandre Oliva <aoliva@redhat.com>
4012
4013 * tree-nested.c (finalize_nesting_tree_1): Declare the
4014 frame_decl in the binding tree.
4015
6c52e687
CC
40162009-06-04 Cary Coutant <ccoutant@google.com>
4017
4018 * basic-block.h (struct basic_block_def): Add discriminator field.
4019 * dbxout.c (dbxout_source_line): Add new parameter. Change all
4020 callers.
4021 * debug.c (do_nothing_debug_hooks): Add additional entry.
4022 (debug_nothing_int_charstar_int): New function.
c637b0fa 4023 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6c52e687
CC
4024 (debug_nothing_int_charstar_int): New declaration.
4025 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
4026 discriminator value in .loc directive.
4027 * final.c (last_discriminator): New variable.
4028 (discriminator): New variable.
4029 (final_start_function): Initialize above variables, pass current
4030 discriminator to debug hook.
4031 (notice_source_line): Check for discriminator change.
4032 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
4033 * sdbout.c (sdbout_source_line): New parameter.
4034 * tree-cfg.c (struct locus_discrim_map): New structure type.
4035 (discriminator_per_locus): New hash table.
4036 (build_gimple_cfg): Allocate and free discriminator hash table.
4037 (make_edges): Call assign_discriminator.
4038 (locus_map_hash): New function.
4039 (locus_map_eq): New function.
4040 (next_discriminator_for_locus): New function.
4041 (same_line_p): New function.
4042 (assign_discriminator): New function.
4043 (make_cond_expr_edges): Call assign_discriminator.
4044 (make_gimple_switch_edges): Likewise.
4045 (first_non_label_stmt): New function.
4046 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
4047 all callers.
4048 * xcoffout.c (xcoffout_source_line): Add new parameter.
4049
4050 * configure.ac (gcc_cv_as_discriminator): New configury check for
4051 gas support for discriminator.
4052 * configure: Regenerate.
4053 * config.in: Regenerate.
4054
e07e020b
RR
40552009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4056
4057 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
4058 val after checking for integers.
4059
72fa3605
UB
40602009-06-04 Uros Bizjak <ubizjak@gmail.com>
4061
4062 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
4063 X64_REGPARM_MAX.
4064 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
4065 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
4066 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
4067 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
4068 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
4069 X64_SSE_REGPARM_MAX.
4070 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
4071 X64_SSE_REGPARM_MAX.
4072
bdde878c
AO
40732009-06-04 Alexandre Oliva <aoliva@redhat.com>
4074
4075 * gcc.c (report_times_to_file): New.
4076 (execute): Implement it.
4077 (process_command): Support -time=.
4078 * doc/invoke.texi: Document it.
4079
2ce59df7
AO
40802009-06-04 Alexandre Oliva <aoliva@redhat.com>
4081
4082 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
4083 that have value exprs.
4084
78bd9046
AO
40852009-06-04 Alexandre Oliva <aoliva@redhat.com>
4086
4087 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
4088 declarations for constants until...
4089 (dw2_output_indirect_constant_1): ... this point.
4090
e63d4106
RE
40912009-06-04 Richard Earnshaw <rearnsha@arm.com>
4092
4093 PR target/10242
4094 * arm.md (arm_addsi3): Don't try to split an add with an
4095 eliminable register until after reload has completed.
4096
6bc7bc14
ILT
40972009-06-03 Ian Lance Taylor <iant@google.com>
4098
4099 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
4100 * genattrtab.c (write_length_unit_log): Likewise.
4101 * genchecksum.c (dosum): Likewise.
4102 * gengtype.c (write_rtx_next): Likewise.
4103 (finish_root_table, write_roots): Likewise.
4104 * gimple.c (gimple_ops_offset_): Likewise.
4105 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
4106 * config/arc/arc.c (arc_attribute_table): Likewise.
4107 * config/arm/arm.c (arm_attribute_table): Likewise.
4108 * config/avr/avr.c (avr_attribute_table): Likewise.
4109 * config/crx/crx.c (crx_attribute_table): Likewise.
4110 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
4111 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
4112 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
4113 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
4114 * config/sh/sh.c (sh_attribute_table): Likewise.
4115 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
4116 * config/spu/spu.c (spu_attribute_table): Likewise.
4117 * config/v850/v850.c (v850_attribute_table): Likewise.
4118
4119 * config/alpha/alpha.c (vms_attribute_table): Make static.
4120 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
4121 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
4122 * config/mips/mips.c (mips_attribute_table): Likewise.
4123
4124 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
4125 $(SYSTEM_H).
4126 (cc1-checksum.o): Likewise.
4127
19d892fd
SE
41282009-06-03 Steve Ellcey <sje@cup.hp.com>
4129
4130 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
4131
679f3354
JJ
41322009-06-03 Jakub Jelinek <jakub@redhat.com>
4133
ff35822b
JJ
4134 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
4135 insn if it is changing sp. Use gen_add3_insn instead of
4136 conditionally gen_addsi3 and gen_adddi3.
4137 (offset_below_red_zone_p): New static inline function.
4138 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
4139 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
4140 * config/rs6000/ppc-asm.h: Include auto-host.h.
4141 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
4142 CFI_RESTORE): Define.
4143 * config/rs6000/crtresxgpr.asm: Add unwind info.
4144 * config/rs6000/crtresxfpr.asm: Likewise.
4145 * config/rs6000/crtresgpr.asm: Likewise.
4146 * config/rs6000/crtresfpr.asm: Likewise.
4147 * config/rs6000/crtsavgpr.asm: Likewise.
4148 * config/rs6000/crtsavfpr.asm: Likewise.
4149
dc6707b8
UB
4150 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
4151 argument of DWARF2_FRAME_REG_OUT macros.
679f3354 4152
2e94c12d
JB
41532009-06-03 Julian Brown <julian@codesourcery.com>
4154
4155 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
4156 words or less (including TImode) in core registers.
4157
3111cce0
RG
41582009-06-03 Richard Guenther <rguenther@suse.de>
4159
4160 PR middle-end/40328
4161 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
4162
5e1b50f6
AB
41632009-06-03 Andrey Belevantsev <abel@ispras.ru>
4164
4165 * statistics.c (statistics_counter_event): Do not record event
4166 in pass dump if its number == -1.
4167 (curr_statistics_hash): Add assert that we never get passes
4168 with static number == -1.
4169
6f11d690
RG
41702009-06-03 Richard Guenther <rguenther@suse.de>
4171 Andrey Belevantsev <abel@ispras.ru>
4172
4173 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
4174 non-BLKmode arrays addressable.
4175
88961471
MK
41762009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
4177
4178 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
4179 * config/m68k/m68k.h: ... here.
4180 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
4181 m68k and fido.
4182
9961eb45
MJ
41832009-06-03 Martin Jambor <mjambor@suse.cz>
4184
4185 PR tree-optimization/40323
4186 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
4187 assignment.
4188
2f2c62a0
RG
41892009-06-03 Richard Guenther <rguenther@suse.de>
4190
4191 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4192 consistently.
4193
d6ced3b7
SZ
41942009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
4195
4196 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
4197 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
4198 JUMP_TABLE_DATA_P where applicable.
4199 * config/sh/sh.c: Ditto.
4200 * config/sh/sh.h: Ditto.
4201 * config/sh/sh.md: Ditto.
4202 * config/sh/symbian.c: Ditto.
4203
f3afc8a7
UB
42042009-06-03 Uros Bizjak <ubizjak@gmail.com>
4205
4206 * config/i386/driver-i386.c (describe_cache): Optimize
4207 concatenation of strings. Use snprintf instead of sprintf.
4208 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
4209 target when not compiling with GCC.
4210
1964788a
KK
42112009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
4212
4213 * config/sh/sh.c: Revert last change.
4214 (sh_expand_epilogue): Emit a blockage insn before the frame
4215 pointer adjustment unconditionally.
4216
8633c315
RS
42172009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
4218
4219 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
4220 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
4221 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
4222 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
4223 to COLLECT_GCC_OPTIONS.
4224
781a1758
RS
42252009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
4226
4227 * collect2.c (target_system_root): New variable.
4228 (main): Handle --sysroot=.
4229 (ignore_library): Strip the sysroot from the library path.
4230
dfb636dc
RS
42312009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
4232
4233 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
4234 (collect2.o): Depend on collect2-aix.h.
4235 (collect2-aix.o): New rule.
4236 * collect2-aix.h: New file.
4237 * collect2-aix.c: Likewise.
4238 * collect2.c: Include collect2-aix.h. Don't undefine
4239 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
4240 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
4241 Use TARGET_AIX_VERSION instead of _AIX51.
4242 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
4243 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
4244 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
4245 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
4246 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
4247
51136ae8
RS
42482009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
4249
4250 * collect2.c (ignore_library): Avoid premature post-increment
4251 and null deference.
4252
7f142d33
RS
42532009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
4254
4255 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
4256 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
4257 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
4258 CROSS_DIRECTORY_STRUCTURE too.
4259 (LINK_LIBG_SPEC): Likewise.
4260 (LIB_SPEC): Add %R to sysroot paths.
4261 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
4262 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
4263 * config/rs6000/aix51.h: As for aix43.h.
4264 * config/rs6000/aix52.h: Likewise.
4265 * config/rs6000/aix53.h: Likewise.
4266 * config/rs6000/aix61.h: Likewise.
4267 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
4268 to the beginning of sysroot paths.
4269
9e74b7d2
AO
42702009-06-02 Alexandre Oliva <aoliva@redhat.com>
4271
4272 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
4273 INSN_LISTs that are out of the REG_NOTE range.
4274
a9f6ecee
AO
42752009-06-02 Alexandre Oliva <aoliva@redhat.com>
4276
4277 * loop-unroll.c (struct iv_to_split): Add pointer to next.
4278 (struct var_to_expand): Likewise.
4279 (struct opt_info): Add head and tail for linked lists of the above.
4280 (analyze_insn_to_expand_var): Initialize next.
4281 (analyze_iv_to_split_insn): Likewise.
4282 (analyze_insns_in_loop): Create linked lists.
4283 (allocate_basic_variable): Simplify for use without hash table.
4284 (insert_var_expansion_initialization): Likewise, make it type-safer.
4285 (combine_var_copies_in_loop_exit): Likewise.
4286 (apply_opt_in_copies): Walk lists rather than hash tables.
4287 (release_var_copies): Simplified and inlined by hand into...
4288 (free_opt_info): ... this function.
4289
69596c69
RG
42902009-06-02 Richard Guenther <rguenther@suse.de>
4291
4292 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
4293 for field decls.
4294
fe8a7779
AO
42952009-06-02 Alexandre Oliva <aoliva@redhat.com>
4296
4297 * cfgexpand.c (gimple_expand_cfg): Discard the source location
4298 only for builtins that are not overridden.
4299
1bcca2c5
AO
43002009-06-02 Alexandre Oliva <aoliva@redhat.com>
4301
4302 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
4303 label string.
4304
8588f797
AO
43052009-06-02 Alexandre Oliva <aoliva@redhat.com>
4306
4307 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
4308
45f39d78
AO
43092009-06-02 Alexandre Oliva <aoliva@redhat.com>
4310
4311 * combine.c (move_deaths): Compare LUIDs within the same BB only.
4312
2aa7c49b
AO
43132009-06-02 Alexandre Oliva <aoliva@redhat.com>
4314
4315 * common.opt (fdump-unnumbered-links): New.
4316 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
4317 * print-rtl.c (flag_dump_unnumbered_links): New.
4318 (print_rtx): Test it.
4319
55b2829b
RE
43202009-06-02 Richard Earnshaw <rearnsha@arm.com>
4321
4322 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
4323 push/pop multiple to 8-byte alignment.
e63d4106 4324
6c0d7021
JJ
43252009-06-01 Jakub Jelinek <jakub@redhat.com>
4326
0aa34d44
JJ
4327 * config/i386/i386.c (queued_cfa_restores): New static variable.
4328 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
4329 functions.
4330 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
4331 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
4332 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
4333 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
4334 note unconditionally.
4335 (ix86_emit_restore_regs_using_mov): Likewise.
4336 (ix86_emit_restore_sse_regs_using_mov): Likewise.
4337 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
4338 it through to ix86_emit_restore_reg_using_pop.
4339 (ix86_emit_leave): Add RED_OFFSET argument. Call
4340 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
4341 instead of adding REG_CFA_OFFSET note unconditionally.
4342 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
4343 the above functions. Call ix86_add_queued_cfa_restore_notes when
4344 needed.
4345
4346 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
4347 force output of the label even for dwarf2out_do_cfi_asm.
4348 (add_fde_cfi): If -g2 and above and cfi might change CFA,
4349 force creation of CFI label and chain DW_CFA_set_loc jumping to it
4350 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
4351 caller.
4352 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
4353 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
4354 dwarf2out_cfi_label callers.
4355 * tree.h (dwarf2out_cfi_label): Adjust prototype.
4356 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
4357 Adjust dwarf2out_cfi_label callers.
4358 * config/vax/vax.c (vax_output_function_prologue): Likewise.
4359
604a6be9
JJ
4360 * config/i386/i386.h (struct machine_cfa_state,
4361 struct machine_function): Guard with ifndef USED_FOR_TARGET
4362 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
4363
df0026a7
JJ
4364 PR other/40024
4365 * emutls.c (__emutls_get_address): Change arr->size to mean number
4366 of allocated arr->data entries instead of # of slots + 1.
4367
6c0d7021
JJ
4368 PR middle-end/40316
4369 * recog.c (peep2_reinit_state): New function.
4370 (peephole2_init_state): Use it at the end of a basic block and also
4371 when seeing a RTX_FRAME_RELATED_P insn.
4372
49df2fb8
SE
43732009-06-01 Steve Ellcey <sje@cup.hp.com>
4374
4375 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
4376 fixuns_truncrfdi2): New.
4377 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
4378 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
4379 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
4380 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
4381 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
4382 *recip_approx): Remove.
4383 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
4384 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
4385 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
4386 move to div.md.
4387 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
4388 setf_exp_rf): New.
4389
67165eb3
ILT
43902009-06-01 Ian Lance Taylor <iant@google.com>
4391
4392 * attribs.c (register_attribute): Use CONST_CAST.
4393 * collect2.c (main): Use CONST_CAST2.
4394 (scan_prog_file): Likewise.
4395 * gcc.c (process_command, main): Likewise.
4396 * toplev.c (toplev_main): Likewise.
4397
4398 * c-typeck.c (handle_warn_cast_qual): New static function,
4399 partially broken out of build_c_cast.
4400 (build_c_cast): Call handle_warn_cast_qual.
4401 * doc/invoke.texi (Warning Options): Document new effect of
4402 -Wcast-qual.
4403
e74fe492
AH
44042009-06-01 Aldy Hernandez <aldyh@redhat.com>
4405
4406 * diagnostic.c (diagnostic_build_prefix): Always print columns.
4407 (diagnostic_report_current_module): Print columns.
4408 * common.opt (flag_show_column): Enable by default.
4409
7eba2d1f
LM
44102009-06-01 Luis Machado <luisgpm@br.ibm.com>
4411
4412 * alias.c (find_base_term): Check for NULL term before returning.
4413
ee88d9aa
MK
44142009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
4415
4416 Revert due to PR40320:
ee88d9aa
MK
4417 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
4418 * calls.c (emit_library_call_value_1): Don't force_operand for move
4419 and push insns.
4420
324c9b02 44212009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 4422 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
4423
4424 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
4425 to be processed as a bitfield for constructor output purposes.
4426 * output.h (initializer_constant_valid_for_bitfield_p): Declare
4427 new function.
4428 * varasm.c (oc_local_state): New type, output_constructor
4429 local state to support communication with helpers.
4430 (oc_outer_state): New type, output_constructor outer state of
4431 relevance in recursive calls.
4432 (output_constructor_array_range): New output_constructor helper,
4433 extracted code for an array range element.
4434 (output_constructor_regular_field): New output_constructor helper,
4435 extracted code for an element that is not a bitfield.
4436 (output_constructor_bitfield): New output_constructor helper,
4437 extracted code for a bitfield element. Accept an OUTER state
4438 argument for recursive processing. Recurse on record or array
4439 CONSTRUCTOR values, possibly past noop conversions.
62295314 4440 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
4441 VALUE is a valid constant-valued expression for use in a static
4442 bit-field initializer.
62295314
OH
4443 (output_constructor): Rework to use helpers. Accept and honor an
4444 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
4445 prepared for nested constructors initializing bitfields.
4446 (output_constant): Feed OUTER in calls to output_constructor.
4447
0980d7fe
MK
44482009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
4449
4450 * calls.c (emit_library_call_value_1): Don't force_operand for move
4451 and push insns.
4452
29661412
NC
44532009-06-01 Nick Clifton <nickc@redhat.com>
4454
4455 * doc/invoke.texi (IA-64 Options): Fix typo.
4456
e9dbe7bb
IR
44572009-06-01 Ira Rosen <irar@il.ibm.com>
4458
4459 PR tree-optimization/39129
7c8b1a77 4460 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
e9dbe7bb 4461 printed message.
7c8b1a77 4462 (vect_do_peeling_for_loop_bound): Use
e9dbe7bb
IR
4463 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
4464 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
4465 (vect_loop_versioning): Likewise.
4466 (vect_create_cond_for_alias_checks): Fix indentation.
7c8b1a77 4467 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
e9dbe7bb
IR
4468 macros.
4469 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
4470 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
7c8b1a77 4471 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
e9dbe7bb 4472 "control flow in loop".
7c8b1a77 4473 (vect_estimate_min_profitable_iters): Use
e9dbe7bb
IR
4474 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
4475 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
4476 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
4477 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
7c8b1a77
UB
4478 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
4479 statement belongs to a group of strided accesses with the exact code
e9dbe7bb
IR
4480 check.
4481 (vectorizable_load): Likewise.
4482 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
4483 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
4484
5ac69a80
GP
44852009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
4486
4487 * config/freebsd-stdint.h: New file.
4488 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
4489 Add freebsd-stdint.h to tm_file.
4490
54b2b460
RE
44912009-06-01 Richard Earnshaw <rearnsha@arm.com>
4492
4493 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
4494 (thumb2_extendhidi2): Likewise.
4495
a7ca77cf
ILT
44962009-05-31 Ian Lance Taylor <iant@google.com>
4497
f3afc8a7 4498 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
4499
45002009-05-31 Ian Lance Taylor <iant@google.com>
4501
f3afc8a7 4502 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
4503 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
4504 (ipa-reference.o): Depend upon gt-ipa-reference.h.
4505
1aec401e
JM
45062009-05-31 Jason Merrill <jason@redhat.com>
4507
4508 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 4509 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
4510 (dump_generic_node): Adjust.
4511 * diagnostic.h: Declare print_call_name.
4512 * gimple-pretty-print.c (dump_gimple_call): Use it.
4513
ed7910bb
KK
45142009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
4515
4516 * config/sh/sh.md (ashldi3_std): New define_expand.
4517 (ashldi3): Use it.
4518
47ea8d4e
KK
45192009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
4520
4521 PR target/40313
4522 * config/sh/sh.c: Include debug.h.
4523 (sh_expand_epilogue): Emit a blockage insn before the frame
4524 pointer adjustment also when dwarf2out_do_frame returns true.
4525
405e8b49
RE
45262009-05-31 Richard Earnshaw <rearnsha@arm.com>
4527
4528 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
4529 (thumb2_extendqidi2): New pattern.
4530
71ece343
IR
45312009-05-31 Ira Rosen <irar@il.ibm.com>
4532
4533 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
4534 mark phis for renaming.
4535 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
4536 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
4537 Call mark_sym_for_renaming.
4538 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
4539 * tree-vect-loop.c (vect_transform_loop): Remove
4540 vect_memsyms_to_rename initialization and a call to
4541 mark_set_for_renaming.
71ece343 4542
b3041944
JJ
45432009-05-31 Jakub Jelinek <jakub@redhat.com>
4544
4545 PR middle-end/40304
4546 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
4547 frame related even if !set_cfa && style < 0.
4548
a1bda0d7
KT
45492009-05-30 Kai Tietz <kai.tietz@onevision.com>
4550
4551 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
4552 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
4553 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
4554 defining _WIN32 but not __CYGWIN__.
a1bda0d7 4555
acd26225
KG
45562009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4557
4558 * configure.ac: Add MPC support.
4559
4560 * config.in, configure: Regenerate.
4561
cd9c1ca8
RH
45622009-05-29 Richard Henderson <rth@redhat.com>
4563
4564 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
4565 NOTE_INSN_BASIC_BLOCK.
4566 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
4567 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
4568 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
4569 to be deleted.
4570 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
4571 add in_use field.
4572 (add_cfi): Disable check redefining cfa away from drap.
4573 (lookup_cfa_1): Add remember argument; handle remember/restore.
4574 (lookup_cfa): Pass remember argument.
4575 (cfa_remember): New.
4576 (compute_barrier_args_size_1): Remove sibcall check.
4577 (dwarf2out_frame_debug_def_cfa): New.
4578 (dwarf2out_frame_debug_adjust_cfa): New.
4579 (dwarf2out_frame_debug_cfa_offset): New.
4580 (dwarf2out_frame_debug_cfa_register): New.
4581 (dwarf2out_frame_debug_cfa_restore): New.
4582 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
4583 (dwarf2out_begin_epilogue): New.
4584 (dwarf2out_frame_debug_restore_state): New.
4585 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
4586 DW_CFA_restore_state.
4587 (output_cfi_directive): Likewise.
4588 (convert_cfa_to_fb_loc_list): Likewise.
4589 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
4590 * dwarf2out.h: Update.
4591 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
4592 (copy_insn_1): Early out for null.
4593 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
4594 and dwarf2out_frame_debug_restore_state.
4595 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
4596 (prologue_insn_hash, epilogue_insn_hash): New.
4597 (free_after_compilation): Adjust freeing accordingly.
4598 (record_insns): Create hash table if needed; push insns into
4599 hash instead of array.
4600 (maybe_copy_epilogue_insn): New.
4601 (contains): Search hash table instead of array.
4602 (sibcall_epilogue_contains): Remove.
4603 (thread_prologue_and_epilogue_insns): Split eh_return insns
4604 and mark them as epilogues.
4605 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
4606 scanning in terms of basic blocks.
4607 * insn-notes.def (CFA_RESTORE_STATE): New.
4608 * jump.c (returnjump_p_1): Accept EH_RETURN.
4609 (eh_returnjump_p_1, eh_returnjump_p): New.
4610 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
4611 CFA_REGISTER, CFA_RESTORE): New.
4612 * rtl.def (EH_RETURN): New.
4613 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
4614
4615 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
4616 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
4617
4618 * config/i386/i386.c (gen_push): Update cfa state.
4619 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
4620 add a CFA_ADJUST_CFA note.
4621 (ix86_dwarf_handle_frame_unspec): Remove.
4622 (ix86_expand_prologue): Update cfa state.
4623 (ix86_emit_restore_reg_using_pop): New.
4624 (ix86_emit_restore_regs_using_pop): New.
4625 (ix86_emit_leave): New.
4626 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
4627 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
4628 * config/i386/i386.h (struct machine_cfa_state): New.
4629 (ix86_cfa_state): New.
4630 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
4631 (eh_return_internal): Merge from eh_return_<mode>,
4632 use eh_return rtx, split w/ epilogue.
4633
72b5577d
ILT
46342009-05-29 Ian Lance Taylor <iant@google.com>
4635
4636 * builtins.c (validate_gimple_arglist): Don't use va_arg with
4637 enum type.
4638 * calls.c (emit_library_call_value_1): Likewise.
4639
4640 * c-typeck.c (c_build_va_arg): New function.
4641 * c-tree.h (c_build_va_arg): Declare.
4642 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
4643 instead of build_va_arg.
4644
7a2faca1
EB
46452009-05-29 Eric Botcazou <ebotcazou@adacore.com>
4646
4647 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
4648 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
4649 (ptr_difference_cost): Use affine combinations to compute it.
4650 (difference_cost): Likewise.
4651 (get_computation_cost_at): Compute more accurate cost for addresses
4652 if the ratio is a multiplier allowed in addresses.
4653 For non-addresses, consider that an additional offset or symbol is
4654 added only once.
4655
725fd454
JJ
46562009-05-29 Jakub Jelinek <jakub@redhat.com>
4657
a0987204
JJ
4658 * config/i386/i386.c (ix86_decompose_address): Avoid useless
4659 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
4660
725fd454
JJ
4661 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
4662 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
4663 (prefix_rex): For UNIT_MMX don't imply the prefix by default
4664 if MODE_DI.
4665 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
4666 to 1 for TYPE_SSE{IADD1,CVT1}.
4667 (prefix_vex_imm8): Removed.
4668 (length_vex): Only pass 1 as second argument to
4669 ix86_attr_length_vex_default if prefix_extra is 0.
4670 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
4671 (length): For prefix vex computation use length_immediate
4672 attribute instead of prefix_vex_imm8.
4673 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
4674 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
4675 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
4676 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
4677 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
4678 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
4679 a space in between the operands.
4680 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
4681 if one operand is 0xff and the other one si, di, bp or sp.
4682 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
4683 other one si, di, bp or sp.
4684 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
4685 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
4686 type and mode attributes.
4687 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
4688 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
4689 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
4690 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
4691 prefix_data16 attribute iff MODE_DF.
4692 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
4693 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
4694 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
4695 constm128_operand in length_immediate computation.
4696 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
4697 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
4698 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
4699 length_immediate attribute to 1.
4700 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
4701 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
4702 for certain alternatives.
4703 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
4704 prefix_data16 attribute if MODE_V1DF.
4705 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
4706 length_immediate to 1.
4707 (set_got_rex64, set_rip_rex64): Remove length attribute, set
4708 length_address to 4, set mode attribute to MODE_DI.
4709 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
4710 (fxam<mode>2_i387): Set length attribute to 4.
4711 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
4712 *prefetch_3dnow_rex): Override length_address attribute.
4713 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
4714 attributes.
4715 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
4716 (constm128_operand): Removed.
4717 * config/i386/i386.c (memory_address_length): For
4718 disp && !index && !base in 64-bit mode account for SIB byte if
4719 print_operand_address can't optimize disp32 into disp32(%rip)
4720 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
4721 for fs: or gs: segment.
4722 (ix86_attr_length_immediate_default): When checking if shortform
4723 is possible, truncate immediate to the length of the non-shortened
4724 immediate.
4725 (ix86_attr_length_address_default): Ignore MEM_P operands
4726 with X constraint.
4727 (ix86_attr_length_vex_default): Only check for DImode on
4728 GENERAL_REG_P operands.
4729 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
4730 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
4731 (sse_cvttps2pi): Clear prefix_rep attribute.
4732 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
4733 attribute.
4734 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
4735 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
4736 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
4737 iff operand 2 is const_int_operand.
4738 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
4739 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
4740 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
4741 instead of vex.
4742 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
4743 prefix_data16.
4744 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
4745 prefix_data16 attribute for movlpd and movhpd instructions.
4746 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
4747 length_immediate for shufpd instruction.
4748 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
4749 (avx_cmpp<avxmodesuffixf2c><mode>3,
4750 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
4751 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
4752 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 4753 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
4754 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
4755 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
4756 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
4757 prefix_data16 attribute for the first alternative to 1.
4758 (*avx_loadlps): Override length_immediate for the first alternative.
4759 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
4760 attributes for second alternative.
4761 (*vec_concatv2sf_sse4_1): Override length_immediate and
4762 prefix_data16 attributes for second alternative.
4763 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
4764 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
4765 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
4766 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
4767 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
4768 prefix_data16 and length_immediate to 1.
4769 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
4770 to 1.
4771 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 4772 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
4773 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
4774 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
4775 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
4776 *sse4_1_pextrd): Set length_immediate to 1.
4777 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
4778 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
4779 to 1.
4780 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
4781 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
4782 length_immediate to 1 for second alternative.
4783 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
4784 prefix_extra and length_immediate attributes for the first
4785 alternative.
4786 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
4787 first alternative.
4788 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
4789 to 1 for the first and third alternative.
4790 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
4791 alternative.
4792 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
4793 attribute.
4794 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
4795 attribute to 0.
4796 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
4797 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
4798 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
4799 *avx_psign<mode>3): Set prefix_extra attribute to 1.
4800 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
4801 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
4802 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
4803 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 4804 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
4805 (ssse3_palignrti): Override length_immediate to 1.
4806 (ssse3_palignrdi): Override length_immediate to 1, override
4807 prefix_rex attribute.
f3afc8a7 4808 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
4809 (sse4a_extrqi): Override length_immediate to 2.
4810 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
4811 (sse4a_insertq): Override prefix_data16 to 0.
4812 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
4813 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
4814 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
4815 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
4816 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
4817 and length_immediate to 1.
4818 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
4819 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
4820 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
4821 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
4822 and length_immediate to 1.
4823 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
4824 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
4825 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
4826 avx_ptest256): Override prefix_extra to 1.
4827 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
4828 Override prefix_data16 and length_immediate to 1.
4829 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
4830 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
4831 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
4832 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
4833 prefix_data16 to 0 and prefix_extra to 2.
4834 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
4835 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
4836 attribute.
4837 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
4838 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
4839 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
4840 and prefix_extra to 2.
4841 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
4842 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
4843 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
4844 avx_vpermilvar<mode>3,
4845 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
4846 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
4847 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
4848 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
4849 Override prefix_extra to 1.
4850 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
4851 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
4852 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
4853 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
4854 prefix_extra and length_immediate to 1.
4855 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
4856 modrm to 0.
4857 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
4858 to 1 for the first alternative.
4859 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
4860 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
4861 cases.
4862 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
4863 *movv2sf_internal_avx, *movv2sf_internal): Override
4864 prefix_rep attribute for certain alternatives.
4865 (*mov<mode>_internal): Override prefix_rep or prefix_data16
4866 attributes for certain alternatives.
4867 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
4868 attributes for certain alternatives.
4869 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
4870 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
4871 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
4872 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
4873 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
4874 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
4875 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
4876 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
4877 length_immediate to 1 if operand 2 is const_int_operand.
4878 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 4879 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
4880 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
4881 using old 3DNOW insn rather than SSE/3DNOW_A.
4882 (mmx_emms, mmx_femms): Clear modrm attribute.
4883
0674b9d0
MJ
48842009-05-29 Martin Jambor <mjambor@suse.cz>
4885
4886 * tree-sra.c: New implementation of SRA.
4887
4888 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
4889 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
4890 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
4891 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
4892 (SRA_MAX_STRUCTURE_COUNT): Removed.
4893 (SRA_FIELD_STRUCTURE_RATIO): Removed.
4894 * doc/invoke.texi (sra-max-structure-size): Removed.
4895 (sra-field-structure-ratio): Removed.
4896
616f21df
JJ
48972009-05-29 Jakub Jelinek <jakub@redhat.com>
4898
4899 PR middle-end/40291
4900 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
4901 before expansion.
4902
da7ba240
AB
49032009-05-29 Andrey Belevantsev <abel@ispras.ru>
4904
4905 PR rtl-optimization/40101
4906 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
4907 seqno. Adjust comment.
4908 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
4909 inserting bookkeeping before a jump, the jump is not scheduled.
4910 When no positive seqno found, provide a value. Add comment.
4911
71dcd609
RG
49122009-05-29 Richard Guenther <rguenther@suse.de>
4913
4914 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
4915 short-cutting on the first component.
4916
a900ae6b
JJ
49172009-05-29 Jakub Jelinek <jakub@redhat.com>
4918
4919 PR middle-end/39958
4920 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
4921 for trees other than decls/types.
4922
821bb7f8
RG
49232009-05-29 Richard Guenther <rguenther@suse.de>
4924
4925 * tree-ssa-operands.c (get_expr_operands): Do not handle
4926 INDIRECT_REFs in the handled-component case. Remove
4927 unused get_ref_base_and_extent case.
4928 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
4929 tree_low_cst and host_integerp where possible.
4930 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
4931 codes for equivalence.
4932 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
4933
e997fb9c
DB
49342009-05-29 David Billinghurst <billingd@gcc.gnu.org>
4935
4936 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
4937 to tmake_file for i[34567]86-*-cygwin*.
4938
58195b74
JJ
49392009-05-29 Jakub Jelinek <jakub@redhat.com>
4940
4941 PR target/40017
4942 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
4943 (altivec_categorize_keyword, init_vector_keywords,
4944 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
4945 similar to bool.
4946
055df276
KT
49472009-05-29 Kai Tietz <kai.tietz@onevision.com>
4948
4949 * tree.c (handle_dll_attribute): Check if node is
4950 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
4951
f5939ef3
RE
49522009-05-29 Richard Earnshaw <rearnsha@arm.com>
4953
4954 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
4955 component.
4956 (thumb2_zero_extendqidi2): Likewise.
4957
c185de40
KK
49582009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
4959
4960 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
4961 instead of gen_movrt.
4962 * config/sh/sh.md (movrt): Remove.
4963
bf3c6caf
SE
49642009-05-28 Steve Ellcey <sje@cup.hp.com>
4965
f3afc8a7 4966 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
4967 Add -msdata, -mfused-madd, -mno-inline-float-divide,
4968 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
4969 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
4970 -msched-prefer-non-control-spec-insns,
4971 -msched-stop-bits-after-every-cycle,
4972 -msched-count-spec-in-critical-path,
4973 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 4974 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
4975 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
4976 and -msched-spec-verbose.
4977
8a66e987
JM
49782009-05-28 Joseph Myers <joseph@codesourcery.com>
4979
f3afc8a7 4980 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
4981 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
4982 error if used.
4983 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
4984
b45d2719
RG
49852009-05-28 Richard Guenther <rguenther@suse.de>
4986
4987 * tree-ssa-alias.c (ao_ref_init): New function.
4988 (ao_ref_base): Likewise.
4989 (ao_ref_base_alias_set): Likewise.
4990 (ao_ref_alias_set): Likewise.
4991 (refs_may_alias_p_1): Change signature.
4992 (refs_may_alias_p): Adjust.
4993 (refs_anti_dependent_p): Likewise.
4994 (refs_output_dependent_p): Likewise.
4995 (call_may_clobber_ref_p_1): Change signature.
4996 (call_may_clobber_ref_p): Adjust.
4997 (stmt_may_clobber_ref_p_1): New function split out from ...
4998 (stmt_may_clobber_ref_p): ... here.
4999 (maybe_skip_until): Adjust signature.
5000 (get_continuation_for_phi): Likewise.
5001 (walk_non_aliased_vuses): Likewise.
5002 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
5003 (ao_ref_init): Declare.
5004 (ao_ref_base): Likewise.
5005 (ao_ref_alias_set): Likewise.
5006 (stmt_may_clobber_ref_p_1): Likewise.
5007 (walk_non_aliased_vuses): Adjust.
5008 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
5009 (get_ref_from_reference_ops): remove.
5010 (vn_reference_lookup_2): Adjust signature.
5011 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 5012 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
5013 (vn_reference_lookup): Adjust.
5014 (vn_reference_insert): Likewise.
5015 (vn_reference_insert_pieces): Adjust signature.
5016 (visit_reference_op_call): Adjust.
5017 * tree-ssa-pre.c (get_expr_type): Simplify.
5018 (phi_translate_1): Adjust.
5019 (compute_avail): Likewise.
5020 (translate_vuse_through_block): Do not re-build trees.
5021 (value_dies_in_block_x): Likewise.
5022 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
5023 fields.
5024 (vn_reference_lookup_pieces): Adjust declaration.
5025 (vn_reference_insert_pieces): Likewise.
5026
554223b6
BK
50272009-05-28 Benjamin Kosnik <bkoz@redhat.com>
5028
5029 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
5030 with checking disabled.
5031
233215fe
DK
50322009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
5033
5034 PR target/37216
5035
5036 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
5037 macro definition for support of three-operand format aligned
5038 .comm directive in assembler on cygwin/pe/mingw target OS.
5039 * configure: Regenerate.
5040 * config.h: Regenerate.
5041
5042 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
5043 aligned form of .comm directive if -mpe-aligned-commons is in effect.
5044 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
5045
5046 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
5047 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
5048
24adb18f
IR
50492009-05-28 Ira Rosen <irar@il.ibm.com>
5050
5051 PR tree-optimization/40254
5052 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
5053 in analysis of basic blocks.
5054
2c5bfdf7
AN
50552009-05-28 Adam Nemet <anemet@caviumnetworks.com>
5056
5057 PR middle-end/33699
f3afc8a7 5058 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
5059 * target-def.h (TARGET_CONST_ANCHOR): New macro.
5060 (TARGET_INITIALIZER): Use it.
5061 * cse.c (CHEAPER): Move it up to the other macros.
5062 (insert): Rename this ...
5063 (insert_with_costs): ... to this. Add cost parameters. Update
5064 function comment.
5065 (insert): New function. Call insert_with_costs.
5066 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
5067 find_reg_offset_for_const, try_const_anchors): New functions.
5068 (cse_insn): Call try_const_anchors. Adjust cost of src_related
5069 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 5070 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
5071 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
5072
9e6aced0
AO
50732009-05-28 Alexandre Oliva <aoliva@redhat.com>
5074
5075 * tree-inline.c (remap_decls): Enable nonlocalized variables
5076 when not optimizing.
5077
89fbbe4e
AO
50782009-05-28 Alexandre Oliva <aoliva@redhat.com>
5079
5080 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
5081 Simplify other tests involving optimize.
5082
e455776a
TT
50832009-05-27 Tom Tromey <tromey@redhat.com>
5084
5085 * unwind-dw2.c (_Unwind_DebugHook): New function.
5086 (uw_install_context): Call _Unwind_DebugHook.
5087
cea32bca
TT
50882009-05-27 Tom Tromey <tromey@redhat.com>
5089
5090 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
5091
c607156f
ILT
50922009-05-27 Ian Lance Taylor <iant@google.com>
5093
5094 * Makefile.in (LINKER, LINKER_FLAGS): Define.
5095 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
5096 (ALL_LINKERFLAGS): Define.
5097 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
5098 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5099 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
5100 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5101 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
5102 $(LINKER_FOR_BUILD).
5103 (build/gcov-iov$(build_exeext)): Likewise.
5104
ec0a1343
JB
51052009-05-27 Julian Brown <julian@codesourcery.com>
5106
5107 * gcse.c (target.h): Include.
5108 (can_assign_to_reg_without_clobbers_p): Check that the target allows
5109 copy of argument to a pseudo register.
5110
ac80ba07
DN
51112009-05-27 Diego Novillo <dnovillo@google.com>
5112
5113 * tree-ssa-live.c (dump_scope_block): Document arguments.
5114 (dump_scope_blocks): Document.
5115 (debug_scope_blocks): New.
5116 * tree-flow.h (debug_scope_blocks): Declare.
5117
d1803a17
DC
51182009-05-21 Denis Chertykov <denisc@overta.ru>
5119
f3afc8a7 5120 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 5121
51fb7760 51222009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
5123
5124 * expr.c (target_align): New function. Alignment the TARGET of an
5125 assignment may be assume to have.
5126 (highest_pow2_factor_for_target): Use it instead of relying on
5127 immediate tree attributes of TARGET, not necessarily honored when
5128 intermediate bitfields are involved.
5129
634fa334
L
51302009-05-27 H.J. Lu <hongjiu.lu@intel.com>
5131
5132 PR target/40266
5133 * config/i386/driver-i386.c (host_detect_local_cpu): Support
5134 AVX, SSE4, AES, PCLMUL and POPCNT.
5135
65332587
DN
51362009-05-27 Diego Novillo <dnovillo@google.com>
5137
5138 * tree-pretty-print.c (dump_location): New.
5139 (dump_generic_node): Call it.
5140 Factor code to handle BLOCK nodes ...
5141 (dump_block_node): ... here.
5142
3e17e31d
RAE
51432009-05-27 Rafael Avila de Espindola <espindola@google.com>
5144
f3afc8a7
UB
5145 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
5146 with it.
3e17e31d
RAE
5147 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
5148 included.
5149 * gcc-plugin.h: Include config.h and system.h.
5150 (IN_GCC): Define if not defined.
5151
5e370570
HPN
51522009-05-27 Hans-Peter Nilsson <hp@axis.com>
5153
5154 PR middle-end/40249
5155 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
5156 with -fno-inline.
5157
d000f0d9
SZ
51582009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
5159
5160 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
5161 applicable.
5162 * config/m32r/m32r.h: Ditto.
5163 * config/m32r/m32r.md: Ditto.
5164 * config/m32r/predicates.md: Ditto.
5165
82f331ff
AO
51662009-05-27 Alexandre Oliva <aoliva@redhat.com>
5167
5168 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
5169
ae2392a9
BS
51702009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
5171
5172 * doc/plugins.texi
5173 (Loading plugins): typo.
5174 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
5175 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
5176 (Interacting with the GCC Garbage Collector): Added new section.
5177 (Giving information about a plugin): Added new section for
5178 PLUGIN_INFO.
ae2392a9
BS
5179 * ggc.h (ggc_register_root_tab): Added declaration.
5180 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
5181 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
5182 (register_callback): Improved comment in declaration.
f3afc8a7
UB
5183 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
5184 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
5185 (ggc_register_root_tab) Added new routine.
5186 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
5187 PLUGIN_GGC_MARKING event.
5188 * ggc-zone.c: Include plugin.h.
5189 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
5190 * ggc-page.c: Include plugin.h.
5191 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
5192 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
5193 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
5194 (register_callback): check lack of callbacks for
5195 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
5196 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
5197 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
5198 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
5199 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
5200 dependency on plugin.h.
5201 (plugin.o): Added dependency on ggc.h...
5202
f0cfd3a8
RG
52032009-05-26 Richard Guenther <rguenther@suse.de>
5204
5205 PR middle-end/40248
5206 Revert
5207 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
5208 with mismatched comparison modes.
5209
5210 * expr.c (expand_expr_real_1): Expand the operand of a
5211 VIEW_CONVERT_EXPR in its natural mode.
5212
7980bfb8
ILT
52132009-05-26 Ian Lance Taylor <iant@google.com>
5214
5215 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
5216 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
5217 (ALL_COMPILERFLAGS): Define.
5218 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
5219 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
5220 (collect2$(exeext), collect2.o): Likewise.
5221 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
5222 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
5223 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
5224 (libbackend.o, intl.o, cppdefault.o): Likewise.
5225 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
5226 (build/%.o): Use $(COMPILER_FOR_BUILD).
5227 (build/gen%$(build_exeext)): Likewise.
5228 (build/gcov-iov$(build_exeext)): LIkewise.
5229 * config/t-darwin (darwin.o): Use $(COMPILER).
5230 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
5231 * config/t-sol2 (sol2-c.o): Likewise.
5232 (sol2.o): Likewise.
5233 * config/t-vxworks (vxworks.o): Likewise.
5234 * config/x-darwin (host-darwin.o): Likewise.
5235 * config/x-hpux (host-hpux.o): Likewise.
5236 * config/x-linux (host-linux.o): Likewise.
5237 * config/x-solaris (host-solaris.o): Likewise.
5238 * config/alpha/x-alpha (driver-alpha.o): Likewise.
5239 * config/arm/t-arm (arm-c.o): Likewise.
5240 * config/arm/t-pe (pe.o): Likewise.
5241 * config/arm/t-wince-pe (pe.o): Likewise.
5242 * config/i386/t-cygming (winnt.o): Likewise.
5243 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
5244 * config/i386/t-cygwin (cygwin1.o): Likewise.
5245 (cygwin2.o): Likewise.
5246 * config/i386/t-i386 (i386-c.o): Likewise.
5247 * config/i386/t-interix (winnt.o): Likewise.
5248 * config/i386/t-netware (netware.o): Likewise.
5249 * config/i386/t-nwld (nwld.o): Likewise.
5250 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
5251 * config/i386/x-i386 (driver-i386.o): Likewise.
5252 * config/i386/x-cygwin (host-cygwin.o): Likewise.
5253 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
5254 * config/ia64/t-ia64 (ia64-c.o): Likewise.
5255 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
5256 * config/mips/x-native (driver-native.o): Likewise.
5257 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
5258 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
5259 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
5260 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
5261 * config/score/t-score-elf (score7.o): Likewise.
5262 (score3.o): Likewise.
5263 * config/sh/t-sh (sh-c.o): Likewise.
5264 * config/sh/t-symbian (sh-c.o): Likewise.
5265 (symbian.o): Likewise.
5266 * config/spu/t-spu-elf (spu-c.o): Likewise.
5267 * config/v850/t-v850 (v850-c.o): Likewise.
5268 * config/v850/t-v850e (v850-c.o): Likewise.
5269
23977d3c
RG
52702009-05-26 Richard Guenther <rguenther@suse.de>
5271
5272 PR tree-optimization/40122
5273 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
5274 VECTOR_CSTs if possible.
5275 (fold_gimple_assign): Likewise.
5276
3d62b895
RG
52772009-05-26 Richard Guenther <rguenther@suse.de>
5278
5279 PR middle-end/40252
5280 * fold-const.c (fold_binary): Use the correct types for building
5281 rotates.
5282
12346147
RG
52832009-05-26 Richard Guenther <rguenther@suse.de>
5284
5285 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
5286 redundant calls to merge_alias_info.
5287 (bump_vector_ptr): Likewise.
5288 * tree-ssa-copy.c (merge_alias_info): Remove.
5289 (replace_exp_1): Remove call to merge_alias_info.
5290 (propagate_tree_value): Likewise.
5291 (fini_copy_prop): Propagate points-to info.
5292 * tree-flow.h (merge_alias_info): Remove.
5293
807d5e6f
HS
52942009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5295
5296 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
5297
85057983
JH
52982009-05-25 Jan Hubicka <jh@suse.cz>
5299
5300 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5301 * cgraph.h (struct inline_summary): New filed self_wize,
5302 size_inlining_benefit, self_time and time_inlining_benefit.
5303 (struct cgraph_global_info): Replace insns by time ans size fields.
5304 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5305 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5306 (ipcp_update_callgraph): Do not touch function bodies.
5307 * ipa-inline.c: Include except.h
5308 (MAX_TIME): New constant.
5309 (overall_insns): Remove.
5310 (leaf_node_p): New.
5311 (overall_size, max_benefit): New static variables.
5312 (cgraph_estimate_time_after_inlining): New function.
5313 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5314 (cgraph_clone_inlined_nodes): Update size.
5315 (cgraph_mark_inline_edge): Update size.
5316 (cgraph_estimate_growth): Use size info.
5317 (cgraph_check_inline_limits): Check size.
5318 (cgraph_default_inline_p): Likewise.
5319 (cgraph_edge_badness): Compute badness based on benefit and size cost.
5320 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
5321 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5322 and times.
85057983
JH
5323 (cgraph_decide_inlining): Likewise.
5324 (cgraph_decide_inlining_incrementally): Likewise; honor
5325 PARAM_EARLY_INLINING_INSNS.
5326 (likely_eliminated_by_inlining_p): New predicate.
5327 (estimate_function_body_sizes): New function.
5328 (compute_inline_parameters): Use it.
5329 * except.c (must_not_throw_labels): New function.
5330 * except.h (must_not_throw_labels): Declare.
5331 * tree-inline.c (init_inline_once): Kill inlining_weigths
5332 * tree-ssa-structalias.c: Avoid uninitialized warning.
5333 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5334 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5335 (PARAM_INLINE_CALL_COST): Remove.
5336 (PARAM_EARLY_INLINING_INSNS): New.
5337
01df5c8a
RG
53382009-05-25 Richard Guenther <rguenther@suse.de>
5339
5340 PR tree-optimization/36327
5341 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 5342 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
5343 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
5344 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
5345 for union COMPONENT_REFs.
5346 (vn_reference_lookup_3): New callback. Lookup from memset
5347 and CONSTRUCTOR assignment, translate through struct copies.
5348 (vn_reference_lookup_pieces): Make sure to not free the
5349 passed operands array. Adjust walk_non_aliased_vuses call.
5350 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
5351 make sure we do not leak memory.
5352
6b8ed145
RG
53532009-05-25 Richard Guenther <rguenther@suse.de>
5354
5355 * tree-ssa-alias.h (dump_points_to_solution): Declare.
5356 * tree-inline.c (expand_call_inline): Reset the escaped and
5357 callused solutions.
5358 * tree-ssa-structalias.c (pass_build_ealias): New.
5359 * tree-pass.h (pass_build_ealias): Declare.
5360 * passes.c (init_optimization_passes): Add PTA during
5361 early optimizations.
5362 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
5363 and CALLUSED solutions.
5364 (dump_points_to_solution): New function, split out from ...
5365 (dump_points_to_info_for): ... here.
5366 * tree-parloops.c (parallelize_loops): Reset the escaped and
5367 callused solutions.
5368
0adcf178
RO
53692009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5370
5371 PR bootstrap/40027
5372 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
5373 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
5374
12aaf609
IR
53752009-05-25 Ira Rosen <irar@il.ibm.com>
5376
5377 PR tree-optimization/40238
5378 * tree-vect-stmts.c (vect_init_vector): Insert initialization
5379 statements after basic block's labels.
5380 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
5381 to free the allocated memory.
5382
7f9a14e3
KK
53832009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
5384
5385 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
5386 return address with a USE.
5387
b842d478
RG
53882009-05-24 Richard Guenther <rguenther@suse.de>
5389
5390 PR middle-end/40233
5391 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
5392 array type from the main variant of the inner type.
5393
8db7b33f
JBG
53942009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5395
5396 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
5397 definition to bool (from int) to un-break build.
5398 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
5399
cff4e50d
PB
54002009-05-24 Paolo Bonzini <bonzini@gnu.org>
5401
5402 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
5403 discard_stmt_changes): Delete.
5404 * tree-ssa-operands.c (scb_stack): Delete.
5405 (init_ssa_operands): Do not initialize it.
5406 (fini_ssa_operands): Do not free it.
5407 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
5408
5409 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
5410 update_stmt, remove the others. Fix comments.
5411 * tree-dfa.c (optimize_stack_restore): Likewise.
5412 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
5413 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
5414 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
5415 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
5416 Likewise.
5417 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
5418 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
5419 (dom_opt_finalize_block): Likewise, adjusting access to
5420 stmts_to_rescan.
cff4e50d
PB
5421 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
5422 (stmts_to_rescan): Change item type to gimple.
5423 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
5424
a70d6342
IR
54252009-05-24 Ira Rosen <irar@il.ibm.com>
5426
5427 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
5428 * tree-pass.h (pass_slp_vectorize): New pass.
5429 * params.h (SLP_MAX_INSNS_IN_BB): Define.
5430 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
5431 * tree-vectorizer.c (timevar.h): Include.
5432 (user_vect_verbosity_level): Declare.
5433 (vect_location): Fix comment.
5434 (vect_set_verbosity_level): Update user_vect_verbosity_level
5435 instead of vect_verbosity_level.
5436 (vect_set_dump_settings): Add an argument. Ignore user defined
5437 verbosity if dump flags require higher level of verbosity. Print to
5438 stderr only for loop vectorization.
5439 (vectorize_loops): Update call to vect_set_dump_settings.
5440 (execute_vect_slp): New function.
5441 (gate_vect_slp): Likewise.
5442 (struct gimple_opt_pass pass_slp_vectorize): New.
5443 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
5444 access its members.
5445 (vec_info_for_bb): New function.
5446 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
5447 (VECTORIZATION_ENABLED): New macro.
5448 (SLP_ENABLED, SLP_DISABLED): Likewise.
5449 (vect_is_simple_use): Add bb_vec_info argument.
5450 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
5451 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
5452 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
5453 vect_schedule_slp, vect_analyze_slp): Likewise.
5454 (vect_analyze_stmt): Add slp_tree argument.
5455 (find_bb_location): Declare.
5456 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
5457 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
5458 (vect_analyze_loop_operations, vect_analyze_loop,
5459 get_initial_def_for_induction, vect_create_epilog_for_reduction,
5460 vect_finalize_reduction, vectorizable_reduction,
5461 vectorizable_live_operation, vect_transform_loop): Likewise.
5462 * tree-data-ref.c (dr_analyze_innermost): Update comment,
5463 skip evolution analysis if analyzing a basic block.
5464 (dr_analyze_indices): Likewise.
5465 (initialize_data_dependence_relation): Skip the test whether the
5466 object is invariant for basic blocks.
5467 (compute_all_dependences): Skip dependence analysis for data
5468 references in basic blocks.
5469 (find_data_references_in_stmt): Don't fail in case of invariant
5470 access in basic block.
5471 (find_data_references_in_bb): New function.
5472 (find_data_references_in_loop): Move code to
782dc37a 5473 find_data_references_in_bb and add a call to it.
a70d6342
IR
5474 (compute_data_dependences_for_bb): New function.
5475 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
5476 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
5477 that STEP is 0.
5478 (vect_analyze_data_ref_dependence): Check for interleaving in case of
5479 unknown dependence in basic block and fail in case of dependence in
5480 basic block.
5481 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
5482 dependence instances from either loop or basic block vectorization
5483 info.
5484 (vect_compute_data_ref_alignment): Check if it is loop vectorization
5485 before calling nested_in_vect_loop_p.
5486 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
5487 dependence instances from either loop or basic block vectorization
5488 info.
5489 (vect_verify_datarefs_alignment): Likewise.
5490 (vect_enhance_data_refs_alignment): Adjust function calls.
5491 (vect_analyze_data_refs_alignment): Likewise.
5492 (vect_analyze_group_access): Fix printing. Skip different checks if
5493 DR_STEP is 0. Keep strided stores either in loop or basic block
5494 vectorization data structure. Fix indentation.
5495 (vect_analyze_data_ref_access): Fix comments, allow zero step in
5496 basic blocks.
5497 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
5498 dependence instances from either loop or basic block vectorization
5499 info.
5500 (vect_analyze_data_refs): Update comment. Call
5501 compute_data_dependences_for_bb to analyze basic blocks.
5502 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
5503 case of loop vectorization. In case of basic block vectorization use
782dc37a 5504 data-ref itself as a base.
a70d6342
IR
5505 (vect_create_data_ref_ptr): In case of basic block vectorization:
5506 don't advance the pointer, add new statements before the current
5507 statement. Adjust function calls.
5508 (vect_supportable_dr_alignment): Support only aligned accesses in
5509 basic block vectorization.
5510 * common.opt (ftree-slp-vectorize): New flag.
5511 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
5512 (vect_pattern_recog_1): Likewise.
5513 * tree-vect-stmts.c (process_use): Likewise.
5514 (vect_init_vector): Add new statements in the beginning of the basic
5515 block in case of basic block SLP.
5516 (vect_get_vec_def_for_operand): Adjust function calls.
5517 (vect_finish_stmt_generation): Likewise.
5518 (vectorizable_call): Add assert that it is loop vectorization, adjust
5519 function calls.
5520 (vectorizable_conversion, vectorizable_assignment): Likewise.
5521 (vectorizable_operation): In case of basic block SLP, take
5522 vectorization factor from statement's type and skip the relevance
5523 check. Adjust function calls.
5524 (vectorizable_type_demotion): Add assert that it is loop
5525 vectorization, adjust function calls.
5526 (vectorizable_type_promotion): Likewise.
5527 (vectorizable_store): Check for outer loop only in case of loop
5528 vectorization. Adjust function calls. For basic blocks, skip the
5529 relevance check and don't advance pointers.
5530 (vectorizable_load): Likewise.
5531 (vectorizable_condition): Add assert that it is loop vectorization,
5532 adjust function calls.
5533 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
5534 that it is not reduction, get vector type, call only supported
782dc37a 5535 functions, skip loop specific parts.
a70d6342
IR
5536 (vect_transform_stmt): Check for outer loop only in case of loop
5537 vectorization.
5538 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
5539 (vect_is_simple_use): Fix comment, add new argument, fix conditions
5540 for external definition.
5541 * passes.c (pass_slp_vectorize): New pass.
5542 * tree-vect-slp.c (find_bb_location): New function.
5543 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
5544 check for patterns only in loops.
5545 (vect_build_slp_tree): Add argument, adjust function calls, fail in
5546 case of multiple types in basic block SLP.
5547 (vect_mark_slp_stmts_relevant): New function.
5548 (vect_supported_load_permutation_p): Fix comment.
5549 (vect_analyze_slp_instance): Add argument. In case of basic block
5550 SLP, take vectorization factor from statement's type, check that
5551 unrolling factor is 1. Adjust function call. Save SLP instance in
5552 either loop or basic block vectorization structure. Return FALSE,
5553 if SLP failed.
5554 (vect_analyze_slp): Add argument. Get strided stores groups from
5555 either loop or basic block vectorization structure. Return FALSE
5556 if basic block SLP failed.
5557 (new_bb_vec_info): New function.
5558 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
5559 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
5560 (vect_schedule_slp): Add argument. Get SLP instances from either
5561 loop or basic block vectorization structure. Set vectorization factor
5562 to be 1 for basic block SLP.
5563 (vect_slp_transform_bb): New function.
5564 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
5565
0676c393
MM
55662009-05-23 Mark Mitchell <mark@codesourcery.com>
5567
5568 * final.c (shorten_branches): Do not align labels for jump tables.
5569 (final_scan_insn): Use JUMP_TABLE_DATA_P.
5570
94324dae
EB
55712009-05-23 Eric Botcazou <ebotcazou@adacore.com>
5572
5573 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
5574 Remove outdated reference to flow.c and fix nits.
5575 * doc/gccint.texi: Tweak RTL description.
5576 * doc/rtl.texi: Likewise.
5577
92bffc14
DC
55782009-05-23 Denis Chertykov <chertykov@gmail.com>
5579
5580 * config/avr/avr.c: Change my email address.
5581 * config/avr/avr.h: Likewise.
5582 * config/avr/avr.md: Likewise.
5583 * config/avr/avr-protos.h: Likewise.
5584 * config/avr/libgcc.S: Likewise.
5585
eec9405e
TS
55862009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
5587
5588 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
5589 (spu_split_load, spu_split_store): Change return type to int.
5590 (spu_split_convert): Declare.
5591 * config/spu/predicates.md (spu_mem_operand): Remove.
5592 (spu_mov_operand): Update.
5593 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
5594 * config/spu/spu.c (regno_aligned_for_load): Remove.
5595 (reg_aligned_for_addr, spu_expand_load): Define.
5596 (spu_expand_extv): Reimplement and handle MEM.
5597 (spu_expand_insv): Handle MEM.
5598 (spu_sched_reorder): Handle insn's with length 0.
5599 (spu_legitimate_address_p): Reimplement.
5600 (store_with_one_insn_p): Return TRUE for any mode with size
5601 larger than 16 bytes.
5602 (address_needs_split): Define.
5603 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
5604 operands.
5605 (spu_convert_move): Define.
782dc37a 5606 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
5607 (spu_split_store): Change all MEM's to TImode.
5608 (spu_init_expanders): Preallocate registers that correspond to
5609 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
5610 mark_reg_pointer.
5611 (spu_split_convert): Define.
5612 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
5613 (_move<mode>, _movdi, _movti): Update predicate and condition.
5614 (load, store): Change to define_split.
5615 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
5616 extend<mode>ti2.
5617 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
5618 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
5619 define_insn_and_split of lshr<mode>3.
5620 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
5621 (<v>ashr<mode>3_imm): Define.
5622 (extv, extzv, insv): Allow MEM operands.
5623 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
5624 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
5625 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
5626 (_spu_convert2): Change to define_insn_and_split and remove the
5627 corresponding define_peephole2.
5628 (stack_protect_set, stack_protect_test, stack_protect_test_si):
5629 Change predicates to memory_operand.
5630
7d31a807
MM
56312009-05-22 Mark Mitchell <mark@codesourcery.com>
5632
5633 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 5634
d021d274
MM
56352009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
5636
5637 PR tree-optimization/40219
5638 * tree.c (iterative_hash_expr): Make sure the builtin function is
5639 a normal builtin function and not a front end or back end builtin
5640 before indexing into the built_in_decls array.
5641
4d7a65ea
RG
56422009-05-22 Richard Guenther <rguenther@suse.de>
5643
5644 PR middle-end/38964
5645 * alias.c (write_dependence_p): Do not use TBAA for answering
5646 anti-dependence or output-dependence.
782dc37a 5647 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
5648 (emit_pointer_definition): Remove.
5649 (emit_alias_warning): Likewise.
5650 (find_what_var_points_to): Remove TBAA pruning code.
5651 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
5652 violations.
5653 (compute_points_to_sets): Remove code computing the set of
5654 dereferenced pointers.
5655 * tree-data-ref.c (dr_may_alias_p): Properly use the split
5656 oracle for querying anti and output dependencies.
5657 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
5658 if TBAA may be applied.
5659 (refs_anti_dependent_p): New function.
5660 (refs_output_dependent_p): Likewise.
5661 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
5662 (refs_output_dependent_p): Likewise.
5663 * doc/tree-ssa.texi (Memory model): New section.
5664 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
5665 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
5666 * cfgexpand.c (expand_gimple_basic_block): Do not handle
5667 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
5668 * expr.c (expand_expr_real_1): Likewise.
5669 * gimple-low.c (lower_stmt): Likewise.
5670 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
5671 (dump_gimple_cdt): Remove.
5672 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
5673 (gimple_size): Likewise.
5674 (walk_gimple_op): Likewise.
5675 (is_gimple_stmt): Likewise.
5676 (walk_stmt_load_store_addr_ops): Likewise.
5677 (gimple_build_cdt): Remove.
5678 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
5679 * gimple.h (gimple_cdt_new_type): Remove.
5680 (gimple_cdt_new_type_ptr): Likewise.
5681 (gimple_cdt_set_new_type): Likewise.
5682 (gimple_cdt_location): Likewise.
5683 (gimple_cdt_location_ptr): Likewise.
5684 (gimple_cdt_set_location): Likewise.
5685 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
5686 * tree-cfg.c (remove_useless_stmts_1): Do not handle
5687 GIMPLE_CHANGE_DYNAMIC_TYPE.
5688 (verify_types_in_gimple_stmt): Likewise.
5689 * tree-inline.c (estimate_num_insns): Likewise.
5690 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
5691 (copy_decl_to_var): Likewise.
5692 (copy_result_decl_to_var): Likewise.
5693 * tree-pretty-print.c (dump_generic_node): Do not handle
5694 CHANGE_DYNAMIC_TYPE_EXPR.
5695 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5696 * tree-ssa-operands.c (get_expr_operands): Likewise.
5697 * tree-ssa-structalias.c (struct variable_info): Remove
5698 no_tbaa_pruning member.
5699 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
5700 (unify_nodes): Do not copy it.
5701 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
5702 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
5703 (set_uids_in_ptset): Do not check it.
5704 (find_what_var_points_to): Likewise.
5705 (compute_tbaa_pruning): Remove.
5706 (compute_points_to_sets): Do not call it.
5707 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
5708 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
5709 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
5710 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
5711 (DECL_NO_TBAA_P): Likewise.
5712 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
5713 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
5714 (expand_omp_atomic_pipeline): Do not set it.
5715 * print-tree.c (print_node): Do not dump it.
5716 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
5717 redundant check.
5718
83a6ac60
VM
57192009-05-22 Vladimir Makarov <vmakarov@redhat.com>
5720
5721 PR target/39856
5722 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
5723 for clobber.
5724
fe2978fb
MM
57252009-05-22 Mark Mitchell <mark@codesourcery.com>
5726
5727 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
5728 non-external.
5729
134ef638
BE
57302009-05-22 Ben Elliston <bje@au.ibm.com>
5731
5732 * Makefile.in (bversion.h, s-bversion): New targets.
5733 (TOPLEV_H): Add bversion.h.
5734 * toplev.h: Include "bversion.h".
5735 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
5736 the __format__ attribute only if compiling with the same version
5737 of GCC as the sources (the "build version").
5738
52fc669d
BE
57392009-05-22 Ben Elliston <bje@au.ibm.com>
5740
5741 * c-format.c (handle_format_attribute): Fix comment typo.
5742
583ca921
SE
57432009-05-21 Steve Ellcey <sje@cup.hp.com>
5744
5745 PR target/37846
5746 * config/ia64/ia64.opt (mfused-madd): New.
5747 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
5748 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
5749 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
5750 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
5751 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
5752 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
5753 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
5754 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
5755 instruction if !TARGET_FUSED_MADD.
5756 (fpma, fpms): Remove colon from name.
5757
150e3929
RG
57582009-05-22 Richard Guenther <rguenther@suse.de>
5759
5760 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
5761 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
5762 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
5763 TARGET_MEM_REF.
5764 (create_expression_by_pieces): Only convert if necessary.
5765 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
5766 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
5767
9a2b090c
AN
57682009-05-21 Adam Nemet <anemet@caviumnetworks.com>
5769
5770 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
5771 regular pattern from a template and rename it ...
5772 (*extzv_truncsi_exts): ... to this.
5773
33b92c9d
RG
57742009-05-21 Richard Guenther <rguenther@suse.de>
5775
5776 * cgraph.h (struct cgraph_node): Remove inline_decl member.
5777 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
5778 (cgraph_default_inline_p): Likewise.
5779 (cgraph_decide_inlining_incrementally): Likewise.
5780
cabf85c3
L
57812009-05-21 H.J. Lu <hongjiu.lu@intel.com>
5782 Uros Bizjak <ubizjak@gmail.com>
5783
5784 * config/i386/cpuid.h (bit_MOVBE): New.
5785
5786 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
5787
5788 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
5789 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
5790 (ix86_handle_option): Handle OPT_mmovbe.
5791 (ix86_target_string): Add -mmovbe.
5792 (pta_flags): Add PTA_MOVBE.
5793 (processor_alias_table): Add PTA_MOVBE to "atom".
5794 (override_options): Handle PTA_MOVBE.
5795
5796 * config/i386/i386.h (TARGET_MOVBE): New.
5797
5798 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
5799 (*bswapsi_movbe): New.
5800 (*bswapdi_movbe): Likewise.
5801 (bswapdi2): Renamed to ...
5802 (*bswapdi_1): This.
5803 (bswapdi2): New expander.
5804
5805 * config/i386/i386.opt (mmovbe): New.
5806
5807 * doc/invoke.texi: Document -mmovbe.
5808
9fefa0aa
TG
58092009-05-21 Taras Glek <tglek@mozilla.com>
5810
5811 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
5812 * gcc-plugin.h (plugin_init): Updated signature.
5813 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
5814 * doc/plugins.texi (plugin_init): Updated documention to reflect
5815 API change.
9fefa0aa
TG
5816 * doc/plugins.texi (plugin_name_args): Added to documention.
5817
1ea9fe56
MM
58182009-05-21 Mark Mitchell <mark@codesourcery.com>
5819
5820 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
5821 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
5822
52f84254
SZ
58232009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
5824
5825 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
5826 JUMP_TABLE_DATA_P predicates where applicable.
5827 * config/i386/predicates.md: Ditto.
5828 * config/i386/sse.md: Ditto.
5829
a952487c
JJ
58302009-05-21 Jakub Jelinek <jakub@redhat.com>
5831
93cac287
JJ
5832 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
5833 operand2 -128 override length_immediate attribute to 1.
5834 * config/i386/predicates.md (constm128_operand): New predicate.
5835
a952487c
JJ
5836 * config/i386/i386.c (memory_address_length): Handle %r12
5837 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
5838 also check REGNO.
5839 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
5840 mode look through optional ZERO_EXTEND and SUBREG.
5841 * config/i386/i386.md (R12_REG): New define_constant.
5842 (prefix_data16): For sse unit set also for MODE_TI insns.
5843 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
5844 insns set if operand 1 is ext_QIreg_operand.
5845 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
5846 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
5847 immediate.
5848 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
5849 mode from MODE_DI to MODE_SI.
5850 (movdi_1_rex64): Override modrm and length_immediate attributes
5851 only for movabs (TYPE_IMOV, alternative 2).
5852 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
5853 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
5854 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
5855 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
5856 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
5857 prefix_rex attribute if DImode.
5858 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
5859 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
5860 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
5861 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
5862 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
5863 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
5864 Likewise. For TYPE_IMOV clear length_immediate attribute.
5865 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
5866 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
5867 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
5868 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
5869 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
5870 or one operand TYPE_ISHIFT.
5871 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
5872 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
5873 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
5874 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
5875 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
5876 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
5877 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
5878 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
5879 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
5880 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
5881 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
5882 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
5883 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
5884 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
5885 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
5886 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
5887 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
5888 set mode attribute, don't override length attribute.
5889 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
5890 to 1.
5891 (return_internal_long): Set length attribute to 2 instead of 1.
5892 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
5893 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
5894 prefix_rex attribute.
782dc37a
UB
5895 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
5896 New predicates.
5897 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 5898
64af62c2
RR
58992009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5900
5901 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
5902
c166b898
ILT
59032009-05-20 Ian Lance Taylor <iant@google.com>
5904
5905 * tree.c (build_tree_list_vec_stat): New function.
5906 (ctor_to_vec): New function.
5907 (build_nt_call_vec): New function.
5908 (build_call_array): Change args to be a const pointer.
5909 (build_call_vec): New function.
5910 * tree.h (build_nt_call_vec): Declare.
5911 (build_tree_list_vec_stat): Declare.
5912 (build_tree_list_vec): Define.
5913 (build_call_array): Update declaration.
5914 (build_call_vec): Declare.
5915 (ctor_to_vec): Declare.
5916 * c-common.c (tree_vector_cache): New static variable.
5917 (make_tree_vector): New function.
5918 (release_tree_vector): New function.
5919 (make_tree_vector_single): New function.
5920 (make_tree_vector_copy): New function.
5921 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
5922 (make_tree_vector_single, make_tree_vector_copy): Declare.
5923 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
5924 (c_parser_expr_list): Don't manage cache here, instead call
5925 make_tree_vector.
5926 (c_parser_release_expr_list): Remove static function.
5927 (c_parser_vec_to_tree_list): Remove static function.
5928 (c_parser_attributes): Call build_tree_list_vec instead of
5929 c_parser_vec_to_tree_list. Call release_tree_vector instead of
5930 c_parser_release_expr_list.
5931 (c_parser_postfix_expression_after_primary): Likewise.
5932 (c_parser_objc_keywordexpr): Likewise.
5933
40449a90
SL
59342009-05-20 Sandra Loosemore <sandra@codesourcery.com>
5935
5936 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
5937 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
5938 TARGET_CONVERT_TO_TYPE.
5939 * hooks.c (hook_tree_const_tree_null): Define.
5940 * hooks.h (hook_tree_const_tree_null): Declare.
5941 * target.h (struct gcc_target): Add invalid_parameter_type,
5942 invalid_return_type, promoted_type, and convert_to_type fields.
5943 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
5944 (TARGET_INVALID_RETURN_TYPE): Define.
5945 (TARGET_PROMOTED_TYPE): Define.
5946 (TARGET_CONVERT_TO_TYPE): Define.
5947 (TARGET_INITIALIZER): Update for new fields.
5948 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
5949 (grokparms): Check targetm.invalid_parameter_type.
5950 * c-typeck.c (default_conversion): Check targetm.promoted_type.
5951 * c-convert.c (convert): Check targetm.convert_to_type.
5952
642d97ff
AN
59532009-05-20 Adam Nemet <anemet@caviumnetworks.com>
5954
5955 * config/mips/mips.md (*extenddi_truncate<mode>,
5956 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
5957 defintions.
5958 (*extendhi_truncateqi): New define_insn_and_sptit.
5959
776248b8
JJ
59602009-05-20 Jakub Jelinek <jakub@redhat.com>
5961
5962 PR middle-end/40204
5963 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 5964 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 5965
d98e8686
EB
59662009-05-20 Eric Botcazou <ebotcazou@adacore.com>
5967
5968 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
5969 the operand of VIEW_CONVERT_EXPR.
5970
37c50435
L
59712009-05-20 H.J. Lu <hongjiu.lu@intel.com>
5972
5973 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 5974 extended family and model for Intel processors. Support Intel Atom.
37c50435 5975
dbb6088f
OH
59762009-05-20 Olivier Hainque <hainque@adacore.com>
5977
5978 * gstab.h (stab_code_type): Define, to be used instead of the
5979 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
5980 notice.
5981 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
5982 occurrences by stab_code_type.
5983 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
5984
7ec49257
MJ
59852009-05-20 Martin Jambor <mjambor@suse.cz>
5986
5987 * tree-flow.h (insert_edge_copies_seq): Undeclare.
5988 (sra_insert_before): Likewise.
5989 (sra_insert_after): Likewise.
5990 (sra_init_cache): Likewise.
5991 (sra_type_can_be_decomposed_p): Likewise.
5992 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
5993 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
5994 (sra_insert_before): Likewise.
5995 (sra_insert_after): Likewise.
5996 (sra_init_cache): Likewise.
5997 (insert_edge_copies_seq): Made static and moved upwards.
5998
5999 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
6000 case.
6001
6002 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
6003
6004 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
6005 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
6006 simple copies.
6007
0328ae4d
RG
60082009-05-20 Richard Guenther <rguenther@suse.de>
6009
6010 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
6011 with mismatched comparison modes.
6012
a7994a57 60132009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 6014
a7994a57 6015 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
6016 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
6017 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
6018 with shifts for Thumb2.
6019 (orsi_notsi): New for orn.
6020 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
6021 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
6022 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
6023 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
6024 Don't invert remainder for IOR.
a7994a57 6025
e36dc339
ZD
60262009-05-19 Zdenek Dvorak <ook@ucw.cz>
6027
6028 PR tree-optimization/40087
6029 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
6030 number_of_iterations_ne): Rename never_infinite argument.
6031 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
6032 number_of_iterations_le): Handle pointer-type ivs when
6033 exit_must_be_taken is false.
6034 (number_of_iterations_cond): Do not always assume that
6035 exit_must_be_taken if the control variable is a pointer.
6036
5cfd5d9b
AP
60372009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
6038
6039 * c-typeck.c (build_binary_op): Allow % on integal vectors.
6040 * doc/extend.texi (Vector Extension): Document that % is allowed too.
6041
2f1c7156
L
60422009-05-19 H.J. Lu <hongjiu.lu@intel.com>
6043
6044 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
6045 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
6046
7bb27074
MLI
60472009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
6048
6049 PR c/40172
6050 * c.opt (Wlogical-op): Disabled by default.
6051 * c-opt (c_common_post_options): Do not enable Wlogical-op with
6052 Wextra.
6053 * doc/invoke.texi (Wlogical-op): Likewise.
6054
5aefc6a0
EB
60552009-05-19 Eric Botcazou <ebotcazou@adacore.com>
6056
6057 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
6058 into CASE_CONVERT.
6059 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
6060 Propagate the type of the first operand.
6061 <ASSERT_EXPR>: Simplify.
6062 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
6063 Rewrite using the RHS code as discriminant.
6064 <NOP_EXPR>: Turn into CASE_CONVERT.
6065 <PLUS_EXPR>: Propagate the type of the first operand.
6066
f3a83111
SE
60672009-05-19 Steve Ellcey <sje@cup.hp.com>
6068
6069 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
6070 (ia64_dconst_0_375): New.
6071 * config/ia64/ia64.c (ia64_override_options): Remove
6072 -minline-sqrt-min-latency warning.
6073 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
6074 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
6075 * config/ia64/ia64.md (*sqrt_approx): Remove.
6076 (sqrtsf2): Remove #if 0.
6077 (sqrtsf2_internal_thr): Rewrite and move to div.md.
6078 (sqrtdf): Remove assert.
6079 (sqrtdf2_internal_thr): Rewrite and move to div.md.
6080 (sqrtxf2): Remove #if 0.
6081 (sqrtxf2_internal_thr): Rewrite and move to div.md.
6082 * div.md (sqrt_approx_rf): New.
6083 (sqrtsf2_internal_thr): New implementation.
6084 (sqrtsf2_internal_lat): New.
6085 (sqrtdf2_internal_thr: New implementation.
6086 (sqrtxf2_internal): New implementation.
6087
1ffc7157
FXC
60882009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
6089 Hans-Peter Nilsson <hp@axis.com>
6090
6091 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
6092 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
6093 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
6094 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
6095 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
6096 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
6097 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
6098 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
6099 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
6100 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
6101 * c-common.c: ...from here.
6102
db91d9ef
MLI
61032009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
6104
f3afc8a7 6105 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 6106
bbb9d91f
KG
61072009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6108
6109 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
6110
ce883f54
BE
61112009-05-19 Ben Elliston <bje@au.ibm.com>
6112
6113 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
6114 assignments with memcpy calls.
6115 (add_fdes): Likewise.
6116 (binary_search_unencoded_fdes): Likewise.
6117 (linear_search_fdes): Eliminate type puns.
6118
377f099a
RG
61192009-05-19 Richard Guenther <rguenther@suse.de>
6120
6121 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
6122 not falsely claim to have propagated into all uses.
6123
848bc769
BE
61242009-05-19 Ben Elliston <bje@au.ibm.com>
6125
6126 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
6127 version to v3.0.
6128
1bb99877
KK
61292009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
6130
6131 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
6132 * config/sh/sh.c (sh_legitimate_address_p): Make static.
6133 (TARGET_LEGITIMATE_ADDRESS_P): New.
6134 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6135 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
6136
82725547
DS
61372009-05-18 Dodji Seketeli <dodji@redhat.com>
6138
6139 PR debug/40109
6140 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
6141 child of the containing namespace's DIE.
6142
f6a1e430
AN
61432009-05-18 Adam Nemet <anemet@caviumnetworks.com>
6144
6145 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
6146 *zero_extendhi_truncqi): Move after the zero_extend patterns.
6147 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
6148 extend patterns.
6149
6a90d232
L
61502009-05-18 H.J. Lu <hongjiu.lu@intel.com>
6151
6152 PR target/39942
6153 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
6154 gen_align with gen_pad.
6155 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
6156 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
6157
6158 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
6159 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
6160
6161 * config/i386/i386.md (align): Renamed to ...
6162 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
6163 ASM_OUTPUT_MAX_SKIP_PAD.
6164
c4406f74
AS
61652009-05-18 Andreas Schwab <schwab@linux-m68k.org>
6166
06555043
AS
6167 * config.gcc: Fix variable syntax.
6168
c4406f74
AS
6169 PR target/39531
6170 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
6171 before calling exact_log2.
6172 (output_iorsi3): Likewise.
6173 (output_xorsi3): Likewise.
6174
99052692
KK
61752009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
6176
6177 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
6178 for the none zero constant operand except for EQ and NE
6179 comprisons even when the first operand is R0.
6180
f4aa3848
AK
61812009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
6182
6183 * config/s390/2064.md: Remove trailing whitespaces.
6184 * config/s390/2084.md: Likewise.
6185 * config/s390/constraints.md: Likewise.
6186 * config/s390/fixdfdi.h: Likewise.
6187 * config/s390/libgcc-glibc.ver: Likewise.
6188 * config/s390/s390-modes.def: Likewise.
6189 * config/s390/s390-protos.h: Likewise.
6190 * config/s390/s390.c: Likewise.
6191 * config/s390/s390.h: Likewise.
6192 * config/s390/s390.md: Likewise.
6193 * config/s390/tpf-unwind.h: Likewise.
6194
ab7256e4
MK
61952009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
6196
6197 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
6198
75df395f
MK
61992009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
6200
6201 M68K TLS support.
6202 * configure.ac (m68k-*-*): Check if binutils support TLS.
6203 * configure: Regenerate.
6204 * config/m68k/predicates.md (symbolic_operand): Extend comment.
6205 * config/m68k/constraints.md (Cu): New constraint.
6206 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
6207 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
6208 (movsi): Handle TLS symbols.
6209 (addsi3_5200): Handle XTLS symbols, indent.
6210 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
6211 (m68k_tls_reference_p): Declare.
6212 (m68k_legitimize_address): Declare.
6213 (m68k_unwrap_symbol): Declare.
6214 * config/m68k/m68k.opt (mxtls): New option.
6215 * config/m68k/m68k.c (ggc.h): Include.
6216 (m68k_output_dwarf_dtprel): Implement hook.
6217 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
6218 (m68k_expand_prologue): Load GOT pointer when function needs it.
6219 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
6220 (m68k_legitimate_constant_address_p): Same.
6221 (m68k_decompose_address): Handle TLS references.
6222 (m68k_get_gp): New static function.
6223 (enum m68k_reloc): New contants.
6224 (TLS_RELOC_P): New macro.
6225 (m68k_wrap_symbol): New static function.
6226 (m68k_unwrap_symbol): New function.
6227 (m68k_final_prescan_insn_1): New static function.
6228 (m68k_final_prescan_insn): New function.
6229 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
6230 functions.
6231 (legitimize_pic_address): Handle TLS references..
6232 (m68k_tls_get_addr, m68k_get_tls_get_addr)
6233 (m68k_libcall_value_in_a0_p)
6234 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
6235 (m68k_call_m68k_read_tp): Helper variables and functions for ...
6236 (m68k_legitimize_tls_address): Handle TLS references.
6237 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
6238 New functions.
6239 (m68k_legitimize_address): Handle TLS symbols.
6240 (m68k_get_reloc_decoration): New static function.
6241 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
6242 UNSPEC_RELOC32.
6243 (m68k_output_dwarf_dtprel): Implement hook.
6244 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
6245 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
6246 m68k_call_* routines.
6247 (sched_attr_op_type): Handle TLS symbols.
6248 (gt-m68k.h): Include.
6249 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
6250 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
6251
8b75fc9b
MJ
62522009-05-18 Martin Jambor <mjambor@suse.cz>
6253
6254 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
6255 (visit_store_addr_for_mod_analysis): New function.
6256 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
6257 (determine_cst_member_ptr): Use gimple_assign_single_p.
6258 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
6259 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
6260 operands. Don't check number of operands of a NOP_EXPR.
6261
f133d4a2
EF
62622009-05-18 Eric Fisher <joefoxreal@gmail.com>
6263
6264 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
6265
ae8af500
L
62662009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
6267
6268 PR c/40172
6269 * c-common.c (warn_logical_operator): Don't warn if one of
6270 expression isn't always true or false.
6271
25e8fde8
KT
62722009-05-17 Kai Tietz <kai.tietz@onevision.com>
6273
ae8af500
L
6274 * config/i386/biarch32.h: New file.
6275 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 6276
ef67af22
AN
62772009-05-17 Adam Nemet <anemet@caviumnetworks.com>
6278
6279 * config/mips/mips.md (*zero_extend<mode>_trunchi,
6280 *zero_extend<mode>_truncqi): Merge these into ...
6281 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
6282 Name the pattern following this as *zero_extendhi_truncqi.
6283
e2d87023
BL
62842009-05-16 Brad Lucier <lucier@math.purdue.edu>
6285
6286 PR middle-end/39301
6287 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
6288 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
6289 (output_info): Make field HOST_WIDEST_INT.
6290 (print_statistics): Use HOST_WIDEST_INT_PRINT.
6291 (dump_bitmat_statistics): Same.
6292
428ddbf0
FXC
62932009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
6294
6295 * config.gcc (use_gcc_stdint): Set to wrap.
6296 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6297 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6298 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6299 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6300 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6301 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6302 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6303 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6304
1ab8a8c2
JM
63052009-05-16 Joseph Myers <joseph@codesourcery.com>
6306
6307 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
6308 tune_64.
6309 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
6310 Move definitions earlier.
6311 (OPT_ARCH64, OPT_ARCH32): Define.
6312 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
6313 and tune_64.
6314
70544f44
RE
63152009-05-16 Richard Earnshaw <rearnsha@arm.com>
6316
6317 PR target/40153
6318 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
6319 implies.
6320
6241ded1
RE
63212009-05-16 Richard Earnshaw <rearnsha@arm.com>
6322
6323 * arm.md (movdi2): Copy non-reg values to DImode registers.
6324
a99c6711
JJ
63252009-05-16 Jakub Jelinek <jakub@redhat.com>
6326
40a8f07a
JJ
6327 PR target/39942
6328 * final.c (label_to_max_skip): New function.
6329 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
6330 CODE_LABEL_NUMBER <= max_labelno.
6331 * output.h (label_to_max_skip): New prototype.
6332 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
6333 (ix86_avoid_jump_mispredicts): ... this. Don't define if
6334 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
6335 Handle CODE_LABELs with >= 16 byte alignment or with
6336 max_skip == (1 << align) - 1.
6337 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
6338 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
6339
a99c6711
JJ
6340 PR target/39942
6341 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
6342 .p2align 3 if MAX_SKIP is smaller than 7.
6343 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
6344
7e5487a2
ILT
63452009-05-15 Ian Lance Taylor <iant@google.com>
6346
6347 * alias.c (struct alias_set_entry_d): Rename from struct
6348 alias_set_entry. Change all uses.
6349 * except.c (struct call_site_record_d): Rename from struct
6350 call_site_record. Change all uses.
6351 * except.h (struct eh_region_d): Rename from struct eh_region.
6352 Change all uses.
6353 * gcse.c (struct hash_table_d): Rename from struct hash_table.
6354 Change all uses.
6355 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
6356 ivtype_map_elt. Change all uses.
6357 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
6358 Change all uses.
6359 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
6360 * graphite.h (struct name_tree_d): Rename from struct name_tree.
6361 Change all uses.
6362 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
6363 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
6364 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
6365 * optabs.h (struct optab_d): Rename from struct optab. Change all
6366 uses.
6367 (struct convert_optab_d): Rename from struct convert_optab.
6368 Change all uses.
6369 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
6370 ipa_opt_pass. Change all uses.
6371 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
6372 all uses.
6373
6374 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
6375 defined as a typedef.
6376 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
6377 defined as a tag.
6378
a243fb4a
MLI
63792009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
6380
6381 PR 16302
6382 * fold-const.c (make_range,build_range_check,merge_ranges): Move
6383 declaration to...
6384 (merge_ranges): Returns bool.
6385 * tree.h (make_range): .. to here.
6386 (build_range_check): Likewise.
6387 (merge_ranges): Likewise. Renamed from merge_ranges.
6388 * c-typeck.c (parser_build_binary_op): Update calls to
6389 warn_logical_operator.
6390 * c-common.c (warn_logical_operator): Add new warning.
6391 * c-common.h (warn_logical_operator): Update declaration.
6392
1b53c5f3
MLI
63932009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
6394
782dc37a 6395 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 6396
c128599a
KG
63972009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6398
f9bab007
KG
6399 * doc/install.texi: Document MPC requirements, flags etc.
6400
c128599a
KG
6401 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
6402 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
6403 Evaluate constant arguments.
6404 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
6405 (fold_builtin_1): Likewise, also evaluate constant arguments.
6406 Remove superfluous break.
6407 (do_mpc_ckconv): New.
6408 * real.h: Include mpc.h.
6409 * toplev.c (print_version): Output MPC version info if available.
6410
d33e4b70
SL
64112009-05-15 Sandra Loosemore <sandra@codesourcery.com>
6412
782dc37a 6413 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 6414
a02ab464
L
64152009-05-15 H.J. Lu <hongjiu.lu@intel.com>
6416
6417 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
6418 only once.
6419
796bda22
JH
64202009-05-15 Jan Hubicka <jh@suse.cz>
6421
6422 * doc/invoke.texi (max-early-inliner-iterations): New flag.
6423 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
6424 (try_inline): Fix return value.
6425 (cgraph_decide_inlining_incrementally): Honor new value.
6426 (cgraph_early_inlining): Handle indirect inlining.
6427 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
6428
d88e5c37
JH
64292009-05-15 Jan Hubicka <jh@suse.cz>
6430
6431 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
6432 * cgraphunit.c (cgraph_finalize_function): Set it.
6433 (cgraph_expand_function): Use it.
6434
ae63687c
SL
64352009-05-15 Sandra Loosemore <sandra@codesourcery.com>
6436
6437 * real.c (encode_ieee_half): Define.
6438 (decode_ieee_half): Define.
6439 (ieee_half_format): Define.
6440 (arm_half_format): Define.
6441 * real.h (ieee_half_format): Declare.
6442 (arm_half_format): Declare.
6443
1bd74ad9
SL
64442009-05-15 Sandra Loosemore <sandra@codesourcery.com>
6445
6446 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
6447 swapped, and reversed optabs exist before trying to use them.
6448
dc34db56
PB
64492009-05-15 Paul Brook <paul@codesourcery.com>
6450 Sandra Loosemore <sandra@codesourcery.com>
6451
dc34db56
PB
6452 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
6453 loads. Allow PRE_DEC.
6454 (output_move_neon): Handle PRE_DEC.
6455 (arm_print_operand): Add 'A' for neon structure loads.
6456 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
6457 * config/arm/neon.md (neon_mov): Update comment.
6458 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
6459 calls.
6460 (Um): New constraint.
6461
1d405d7b
JH
64622009-05-15 Jan Hubicka <jh@suse.cz>
6463
6464 Revert the following patch until testsuite fallout is fixed:
6465 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6466 * cgraph.h (struct inline_summary): New filed self_wize,
6467 size_inlining_benefit, self_time and time_inlining_benefit.
6468 (struct cgraph_global_info): Replace insns by time ans size fields.
6469 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6470 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6471 (ipcp_update_callgraph): Do not touch function bodies.
6472 * ipa-inline.c: Include except.h
782dc37a 6473 (MAX_TIME): New constant.
1d405d7b
JH
6474 (overall_insns): Remove
6475 (overall_size, max_benefit): New static variables.
6476 (cgraph_estimate_time_after_inlining): New function.
6477 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6478 (cgraph_clone_inlined_nodes): Update size.
6479 (cgraph_mark_inline_edge): Update size.
6480 (cgraph_estimate_growth): Use size info.
6481 (cgraph_check_inline_limits): Check size.
6482 (cgraph_default_inline_p): Likewise.
6483 (cgraph_edge_badness): Compute badness based on benefit and size cost.
6484 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
6485 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
6486 and times.
1d405d7b 6487 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
6488 (cgraph_decide_inlining_incrementally): Likewise; honor
6489 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
6490 (likely_eliminated_by_inlining_p): New predicate.
6491 (estimate_function_body_sizes): New function.
6492 (compute_inline_parameters): Use it.
6493 * except.c (must_not_throw_labels): New function.
6494 * except.h (must_not_throw_labels): Declare.
6495 * tree-inline.c (init_inline_once): Kill inlining_weigths
6496 * tree-ssa-structalias.c: Avoid uninitialized warning.
6497 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
6498 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
6499 (PARAM_INLINE_CALL_COST): Remove.
6500 (PARAM_EARLY_INLINING_INSNS): New.
6501
7ffa47ca
RG
65022009-05-15 Richard Guenther <rguenther@suse.de>
6503
6504 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
6505 not TODO_update_ssa.
6506
828552ed
RG
65072009-05-15 Richard Guenther <rguenther@suse.de>
6508
6509 PR tree-optimization/39999
6510 * gimple.h (gimple_expr_type): Use the expression type looking
6511 through useless conversions.
6512 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
6513 (vn_nary_op_insert_stmt): Likewise.
6514 (simplify_binary_expression): Likewise.
6515
248fc9f3
RG
65162009-05-15 Richard Guenther <rguenther@suse.de>
6517
6518 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6519 New options, enabled by default.
6520 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
6521 Document.
6522 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
6523 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
6524 * tree-ssa-structalias.c (gate_tree_pta): New function.
6525 (pass_build_alias): Use it.
6526
16b29cc4
JM
65272009-05-15 Joseph Myers <joseph@codesourcery.com>
6528
6529 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
6530 recurse on an invariant address if a conversion from a pointer
6531 type to a wider integer type is involved.
6532
125cae84
JH
65332009-05-15 Jan Hubicka <jh@suse.cz>
6534
6535 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6536 * cgraph.h (struct inline_summary): New filed self_wize,
6537 size_inlining_benefit, self_time and time_inlining_benefit.
6538 (struct cgraph_global_info): Replace insns by time ans size fields.
6539 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6540 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6541 (ipcp_update_callgraph): Do not touch function bodies.
6542 * ipa-inline.c: Include except.h
782dc37a 6543 (MAX_TIME): New constant.
125cae84
JH
6544 (overall_insns): Remove
6545 (overall_size, max_benefit): New static variables.
6546 (cgraph_estimate_time_after_inlining): New function.
6547 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6548 (cgraph_clone_inlined_nodes): Update size.
6549 (cgraph_mark_inline_edge): Update size.
6550 (cgraph_estimate_growth): Use size info.
6551 (cgraph_check_inline_limits): Check size.
6552 (cgraph_default_inline_p): Likewise.
6553 (cgraph_edge_badness): Compute badness based on benefit and size cost.
6554 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
6555 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
6556 and times.
125cae84 6557 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
6558 (cgraph_decide_inlining_incrementally): Likewise; honor
6559 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
6560 (likely_eliminated_by_inlining_p): New predicate.
6561 (estimate_function_body_sizes): New function.
6562 (compute_inline_parameters): Use it.
6563 * except.c (must_not_throw_labels): New function.
6564 * except.h (must_not_throw_labels): Declare.
6565 * tree-inline.c (init_inline_once): Kill inlining_weigths
6566 * tree-ssa-structalias.c: Avoid uninitialized warning.
6567 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
6568 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
6569 (PARAM_INLINE_CALL_COST): Remove.
6570 (PARAM_EARLY_INLINING_INSNS): New.
6571 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
6572 (inline-call-cost): Remove.
6573 (early-inlining-insns): New.
6574
84fb43a1
EB
65752009-05-15 Eric Botcazou <ebotcazou@adacore.com>
6576
6577 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
6578 for bounds.
6579 (print_int_cst_bounds_in_octal_p): Likewise.
6580 (dbxout_type): Adjust calls to above functions. Be prepared to deal
6581 with subtypes.
6582 * dwarf2out.c (base_type_die): Likewise.
6583 (is_subrange_type): Delete.
6584 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
6585 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
6586 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
6587 if the destination type is boolean.
84fb43a1
EB
6588 (build_range_check): Do not special-case subtypes.
6589 (fold_sign_changed_comparison): Likewise.
6590 (fold_unary): Likewise.
6591 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
6592 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
6593 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
6594 * tree.c (subrange_type_for_debug_p): New predicate based on the
6595 former is_subrange_type.
84fb43a1
EB
6596 * tree.h (subrange_type_for_debug_p): Declare.
6597 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
6598 (convert_affine_scev): Remove call to above function.
6599 (chrec_convert_aggressive): Likewise.
6600 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
6601 false for conversions involving subtypes.
6602 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
6603 (vrp_val_min): Likewise.
6604 (needs_overflow_infinity): Likewise.
6605 (extract_range_from_unary_expr): Likewise.
6606
331d9186
PB
66072009-05-15 Paolo Bonzini <bonzini@gnu.org>
6608
e9351712
L
6609 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
6610 * config/frv/frv.c: Likewise.
6611 * config/s390/s390.c: Likewise.
6612 * config/sparc/sparc.h: Likewise.
6613 * config/i386/i386.h: Likewise.
6614 * config/i386/i386.c: Likewise.
6615 * config/crx/crx.c: Likewise.
6616 * config/m68hc11/m68hc11.h: Likewise.
6617 * config/iq2000/iq2000.c: Likewise.
6618 * config/mn10300/mn10300.h: Likewise.
6619 * config/mn10300/mn10300.c: Likewise.
6620 * config/m68k/m68k.c: Likewise.
6621 * config/rs6000/rs6000.c: Likewise.
6622 * config/rs6000/xcoff.h: Likewise.
6623 * config/rs6000/linux64.h: Likewise.
6624 * config/rs6000/sysv4.h: Likewise.
6625 * config/score/score3.c: Likewise.
6626 * config/score/score7.c: Likewise.
6627 * config/score/score.c: Likewise.
6628 * config/arm/arm.md: Likewise.
6629 * config/mips/mips.c: Likewise.
6630 * config/mips/mips.md: Likewise.
6631 * config/bfin/bfin.h: Likewise.
6632 * config/pa/pa.c: Likewise.
6633 * config/pa/constraints.md: Likewise.
6634
6635 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
6636 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
6637 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 6638
09639a83
ILT
66392009-05-14 Ian Lance Taylor <iant@google.com>
6640
6641 * passes.c (finish_optimization_passes): Change i to int.
6642 * plugin.c (plugins_active_p): Change event to int.
6643 (dump_active_plugins): Likewise.
6644 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
6645 Add cast.
6646 * tree.c (tree_range_check_failed): Change c to unsigned int.
6647 (omp_clause_range_check_failed): Likewise.
6648 (build_common_builtin_nodes): Change mode to int. Add cast.
6649 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
6650 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
6651
6652 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
6653 ++ or -- with a variable of enum type.
6654
c04a56bf
SB
66552009-05-14 Steven Bosscher <steven@gcc.gnu.org>
6656
6657 PR driver/40144
6658 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
6659
237ee620
SB
66602009-05-14 Steven Bosscher <steven@gcc.gnu.org>
6661
6662 * store-motion.c: Do not include params.h
6663 * Makefile.in: Fix dependencies for various files.
6664
1154c4fa
SB
66652009-05-14 Steven Bosscher <steven@gcc.gnu.org>
6666
6667 * auto-inc-dec.c: Fix pass description, remove apparent
6668 accidental duplication.
6669
61c27353
L
66702009-05-14 H.J. Lu <hongjiu.lu@intel.com>
6671
6672 PR middle-end/40147
6673 * ipa-utils.h (memory_identifier_string): Moved to ...
6674 * tree.h (memory_identifier_string): Here. Add GTY(()).
6675
c6c3dba9
PB
66762009-05-14 Paolo Bonzini <bonzini@gnu.org>
6677
6678 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
6679 in the former documentation of...
6680 (GO_IF_LEGITIMATE_ADDRESS): ... this.
6681 * ira-conflicts.c (get_dup_num): Use address_operand.
6682 * targhooks.c (default_legitimate_address_p): New.
6683 * targhooks.h (default_legitimate_address_p): New.
6684 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
6685 Call hook.
6686 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
6687 * target.h (struct target): Add legitimate_address_p.
6688 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
6689 (TARGET_INITIALIZER): Include it.
6690
6691 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6692 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
6693 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
6694 (TARGET_LEGITIMATE_ADDRESS_P): New.
6695
6696 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6697 (REG_OK_STRICT_P): Delete.
6698 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
6699 (frv_legitimate_address_p_1): ... this.
6700 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
6701 (frv_legitimate_address_p_1): ... the renamed old
6702 frv_legitimate_address_p.
6703 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
6704 (TARGET_LEGITIMATE_ADDRESS_P): New.
6705
6706 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6707 * config/s390/s390-protos.h (legitimate_address_p): Remove.
6708 * config/s390/s390.c (legitimate_address_p): Rename to...
6709 (s390_legitimate_address_p): ... this, make static.
6710 (legitimize_address): Adjust call.
6711 (TARGET_LEGITIMATE_ADDRESS_P): New.
6712 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
6713
6714 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6715 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
6716 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
6717 (TARGET_LEGITIMATE_ADDRESS_P): New.
6718
6719 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6720 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
6721 * config/spu/spu.c (spu_legitimate_address): Rename to...
6722 (spu_legitimate_address_p): ... this, make static.
6723 (TARGET_LEGITIMATE_ADDRESS_P): New.
6724
6725 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6726 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
6727 * config/sparc/sparc.c (legitimate_address_p): Rename to...
6728 (sparc_legitimate_address_p): ... this, make static and return bool.
6729 (legitimize_address): Adjust call.
6730 (TARGET_LEGITIMATE_ADDRESS_P): New.
6731
6732 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6733 * config/i386/i386-protos.h (legitimate_address_p): Remove.
6734 * config/i386/i386.c (legitimate_address_p): Rename to...
6735 (ix86_legitimate_address_p): ... this, make static.
6736 (constant_address_p): Move after it, adjust call.
6737 (TARGET_LEGITIMATE_ADDRESS_P): New.
6738
6739 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6740 * config/avr/avr-protos.h (legitimate_address_p): Remove.
6741 * config/avr/avr.c (legitimate_address_p): Rename to...
6742 (avr_legitimate_address_p): ... this, make static.
6743 (legitimize_address): Adjust call.
6744 (TARGET_LEGITIMATE_ADDRESS_P): New.
6745
6746 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6747 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
6748 * config/crx/crx.c (crx_legitimate_address_p): Make static.
6749 (TARGET_LEGITIMATE_ADDRESS_P): New.
6750
6751 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6752 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
6753 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
6754 (TARGET_LEGITIMATE_ADDRESS_P): New.
6755
6756 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6757 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
6758 Remove.
6759 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
6760 Make static.
6761 (TARGET_LEGITIMATE_ADDRESS_P): New.
6762
6763 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6764 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
6765 Remove.
6766 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
6767 Rename to...
6768 (m68hc11_legitimate_address_p): ... this, make static.
6769 (go_if_legitimate_address_internal): Rename to...
6770 (m68hc11_legitimate_address_p_1): ... this.
6771 (legitimize_address): Adjust call.
6772 (TARGET_LEGITIMATE_ADDRESS_P): New.
6773
6774 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
6775 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
6776 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
6777 (TARGET_LEGITIMATE_ADDRESS_P): New.
6778
6779 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6780 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
6781 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
6782 (mn10300_legitimate_address_p): ... this, make static.
6783 (TARGET_LEGITIMATE_ADDRESS_P): New.
6784
6785 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6786 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
6787 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
6788 (TARGET_LEGITIMATE_ADDRESS_P): New.
6789
6790 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6791 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
6792 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
6793 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6794 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
6795 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
6796 (rs6000_legitimate_address_p): ... this, make static.
6797 (TARGET_LEGITIMATE_ADDRESS_P): New.
6798 (REG_MODE_OK_FOR_BASE_P): Delete.
6799 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
6800
6801 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6802 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
6803 Delete.
6804 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
6805 static, adjust types.
6806 (TARGET_LEGITIMATE_ADDRESS_P): New.
6807
6808 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6809 * config/score/score.c (score_address_p): Rename to...
6810 (score_legitimate_address_p): ... this.
6811 (TARGET_LEGITIMATE_ADDRESS_P): New.
6812 * config/score/score3.c (score3_address_p): Rename to...
6813 (score3_legitimate_address_p): ... this.
6814 * config/score/score7.c (score7_address_p): Rename to...
6815 (score7_legitimate_address_p): ... this.
6816
6817 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
6818 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
6819 GO_IF_LEGITIMATE_ADDRESS): Delete.
6820 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
6821 thumb2_legitimate_address_p): Delete.
6822 (arm_legitimate_address_p): Rename to...
6823 (arm_legitimate_address_outer_p): ... this.
6824 * config/arm/constraints.md ("Uq"): Adjust call.
6825 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
6826 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
6827 to...
c6c3dba9 6828 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
6829 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
6830 static.
c6c3dba9
PB
6831 (TARGET_LEGITIMATE_ADDRESS_P): New.
6832
6833 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6834 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
6835 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
6836 (TARGET_LEGITIMATE_ADDRESS_P): New.
6837
6838 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6839 * config/vax/vax-protos.h (legitimate_address_p): Remove.
6840 * config/vax/vax.c (legitimate_address_p): Rename to...
6841 (vax_legitimate_address_p): ... this, make static.
6842 (TARGET_LEGITIMATE_ADDRESS_P): New.
6843
6844 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6845 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
6846 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
6847 (TARGET_LEGITIMATE_ADDRESS_P): New.
6848
6849 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6850 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
6851 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
6852 (mmix_legitimate_address_p): ... this, make static.
6853 (TARGET_LEGITIMATE_ADDRESS_P): New.
6854
6855 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
6856 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
6857 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
6858 (TARGET_LEGITIMATE_ADDRESS_P): New.
6859
3bd0d9c8
PB
68602009-05-14 Paolo Bonzini <bonzini@gnu.org>
6861
6862 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
6863 of MODE_COMPLEX_INT.
6864
fe049033
RO
68652009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6866
6867 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
6868 LCT_NORMAL in function call.
6869 * mips-tdump.c (print_file_desc): Add cast to enum type.
6870 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
6871 (mark_stabs): Add casts to enum types.
6872 (parse_stabs_common): Add casts to enum types.
16f7ad42 6873
b0907a6c
AN
68742009-05-13 Adam Nemet <anemet@caviumnetworks.com>
6875
6876 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
6877 Check for invalid values of LETTER.
6878
d1c8e08a
TG
68792009-05-13 Taras Glek <tglek@mozilla.com>
6880
f3afc8a7
UB
6881 * attribs.c (register_attribute): moved out attribute registration
6882 into register_attribute.
6883 * doc/plugins.texi: Documented register_attribute and
6884 PLUGIN_ATTRIBUTES.
16f7ad42
TG
6885 * gcc-plugin.h: Added forward decl for register_attribute.
6886 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
6887 * plugin.c (register_callback, invoke_plugin_callbacks): Added
6888 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 6889
4ed7f970
DK
68902009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
6891
6892 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
6893 values even in sentinel and empty entries.
6894 (ms_printf_flag_specs): Likewise.
6895 (ms_scanf_flag_specs): Likewise.
6896 (ms_strftime_flag_specs): Likewise.
6897 (ms_print_char_table): Likewise.
6898 (ms_scan_char_table): Likewise.
6899 (ms_time_char_table): Likewise.
6900
3d8fa148
DK
69012009-05-13 Doug Kwan <dougkwan@google.com>
6902
6903 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
6904
f06257d3
AN
69052009-05-13 Adam Nemet <anemet@caviumnetworks.com>
6906
6907 * config/mips/mips.md (store): Add attributes for QI and HI.
6908 Update comment.
6909 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
6910 (truncdi<mode>2): ... this new pattern.
6911
fb201767
BH
69122009-05-13 Brad Hards <bradh@kde.org>
6913
6914 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
6915
c7bda60e 69162009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
6917 Ben Elliston <bje@au.ibm.com>
6918
6919 PR middle-end/40035
6920 * dse.c (check_mem_read_rtx): Guard against width == -1.
6921
ce985b43
MM
69222009-05-13 Michael Matz <matz@suse.de>
6923
6924 PR middle-end/39976
6925 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
6926 (trivially_conflicts_p): New function.
6927 (insert_backedge_copies): Use it.
6928
7de1d221
JJ
69292009-05-13 Janis Johnson <janis187@us.ibm.com>
6930
6931 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
6932 (handle_stdc_pragma): Use new enum constant names.
6933 (handle_pragma_float_const_decimal64): Ditto.
6934
bfefafc6
ILT
69352009-05-13 Ian Lance Taylor <iant@google.com>
6936
6937 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
6938 tree.def.
6939
286c4fcb
NS
69402009-05-13 Nathan Sidwell <nathan@codesourcery.com>
6941
6942 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
6943 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
6944 multilibs.
6945 * config/m68k/m68k.h (FL_UCLINUX): Define.
6946
ebaa6ea7
JH
69472009-05-13 Jan Hubicka <jh@suse.cz>
6948
6949 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
6950
2b703e1a
KK
69512009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
6952
6953 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
6954 unless -fschedule-insns is specified.
6955
c3537723
KK
69562009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
6957
6958 PR target/39561
6959 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
6960 TARGET_EXPAND_CBRANCHDI4.
6961 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
6962 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
6963 (cmpeqdi): Fix comment.
6964
cdeed45a
KK
69652009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
6966
6967 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
6968 (sh_legitimate_address_p): Likewise.
6969 * config/sh/sh.c (sh_legitimate_index_p): New.
6970 (sh_legitimate_address_p): Likewise.
6971 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
6972 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
6973 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
6974 (MAYBE_BASE_REGISTER_RTX_P): New macro.
6975 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
6976 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
6977 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
6978 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
6979 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
6980
02f0b13a
JH
69812009-05-12 Jan Hubicka <jh@suse.cz>
6982
6983 * tree-inline.c (estimate_operator_cost): Add operands;
6984 when division happens by constant, it is cheap.
6985 (estimate_num_insns): Loads and stores are not having cost of 0;
6986 EH magic stuff is cheap; when computing runtime cost of switch,
6987 use log2 base of amount of its cases; builtin_expect has cost of 0;
6988 compute cost for moving return value of call.
6989 (init_inline_once): Initialize time_based flags.
6990 * tree-inline.h (eni_weights_d): Add time_based flag.
6991
ecb7f6de
PB
69922009-05-12 Paolo Bonzini <bonzini@gnu.org>
6993
6994 * df-core.c: Update head documentation.
6995
c24151ce
MM
69962009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6997
6998 PR bootstrap/40118
6999 * rs6000.c (rs6000_generate_compare): Use op1b instead of
7000 shadowing exisiting variable op1.
7001
fbdf817d
UB
70022009-05-12 Uros Bizjak <ubizjak@gmail.com>
7003
704bf7c8 7004 PR target/37179
fbdf817d
UB
7005 * config/i386/driver-i386.c (processor_signatures): New enum.
7006 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
7007 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
7008 processor signature to detect geode processor.
7009
5e8d1826
PB
70102009-05-12 Paolo Bonzini <bonzini@gnu.org>
7011
7012 Revert:
7013
7014 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
7015
7016 * optabs.c (prepare_cmp_insn): Temporarily disable test that
7017 causes spurious differences between trunk and cond-optab branch.
7018
f90b7a5a
PB
70192009-05-12 Paolo Bonzini <bonzini@gnu.org>
7020
fbdf817d
UB
7021 * dojump.c (compare_from_rtx): Delete.
7022 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
7023 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
7024 if the comparison does not satisfy the predicate; test predicates for
7025 operands 2 and 3 of a cstore pattern. Don't try cstore optab
7026 further if one existing pattern fails.
fbdf817d 7027 * expr.h (compare_from_rtx): Delete.
f90b7a5a 7028 (prepare_operand): Declare it.
fbdf817d 7029 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 7030 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
7031 HAVE_conditional_trap, emit_cmp_insn): Delete.
7032 (can_compare_p): Delete cmp_optab case.
f90b7a5a 7033 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
7034 Accept other parameters by value.
7035 (prepare_operand): Make non-static.
7036 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
7037 other parameters by value. Try to widen operands here based on
7038 an optab_methods argument and looking at cbranch_optab.
7039 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
7040 loop. Use cbranch_optab directly.
7041 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
7042 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
7043 assertion.
7044 (emit_conditional_move, emit_conditional_add): Inline what's needed
7045 of compare_from_rtx, using new prepare_cmp_insn for the rest.
7046 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
7047 with COMPARE. Move cmov_optab and cstore_optab above
7048 with cbranch_optab, move cmp_optab down with ucmp_optab,
7049 remove tst_otpab. Do not initialize trap_rtx.
7050 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
7051 for trap code. Do not check HAVE_conditional_trap. Use
7052 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
7053 * optabs.h (OTI_cmp): Mark as used only for libcalls.
7054 (OTI_ctrap, ctrap_optab): New.
7055 (tst_optab): Delete.
7056 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
7057 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
7058 with lookup of ctrap_optab.
f3afc8a7
UB
7059 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
7060 Delete.
fbdf817d
UB
7061 (ctrap_optab): New.
7062
7063 * combine.c (combine_simplify_rtx, simplify_set): Do not
7064 special case comparing against zero for cc0 machines.
f90b7a5a
PB
7065 * simplify-rtx.c (simplify_binary_operation_1): Never remove
7066 COMPARE on cc0 machines.
7067 (simplify_relational_operation): Return a new expression when
7068 a COMPARE could be removed.
fbdf817d
UB
7069 * final.c (final_scan_insn): Compare cc_status values
7070 against LHS of a (compare FOO (const_int 0)) cc0 source.
7071 Also check if cc_status.value is the full compare.
f90b7a5a 7072
fbdf817d
UB
7073 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
7074 (cstoreMM4): Document.
f90b7a5a 7075 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 7076 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
7077 (Dependent Patterns): Eliminate obsolete information referring to
7078 the old jump optimization phase.
fbdf817d 7079 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
7080 of compares with 0 on cc0 machines.
7081 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
7082 avoiding references to cc0. Remove text about storing operands
7083 in cmpMM.
7084 * doc/tm.texi (Condition Codes): Include blurb on different
7085 condition code representations, separate into subsections for
7086 CC0, MODE_CC and conditional execution.
7087
fbdf817d
UB
7088 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
7089 alpha_emit_setcc): Accept operands and a machine mode.
7090 * config/alpha/alpha.c (alpha_emit_conditional_branch):
7091 Get code/op0/op1 from operands, use machine mode argument
7092 instead of alpha_compare.fp_p. Emit the branch here.
7093 (alpha_emit_setcc): Likewise, and return boolean.
7094 (alpha_emit_conditional_move): Likewise. Assert that
7095 cmp_op_mode == cmp_mode, and simplify accordingly.
7096 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
7097 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
7098 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
7099 Delete.
7100 (stack probe test): Use cbranchdi4.
7101 * config/alpha/predicates.md (alpha_cbranch_operator): New.
7102
7103 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
7104 * config/arc/arc.h (movsicc, movsfcc): Use it.
7105 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
7106 (cbranchsi4, cstoresi4): New.
7107 (cmpsi, bCC and sCC expanders): Remove.
7108
7109 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
7110 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
7111 * config/arm/predicates.md (arm_comparison_operator): Only include
7112 floating-point operators if there is a hardware floating-point unit.
7113 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
7114 deferring to cbranch_cc and cstore_cc respectively.
7115 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
7116 cbranch_cc, cstore_cc): New.
7117 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 7118 arm_compare_op1.
fbdf817d
UB
7119 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
7120
7121 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
7122 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
7123 as an argument.
7124 (adjust_insn_length): Adjust calls.
7125 (avr_reorg): Handle (compare (foo) (const_int 0)).
7126 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
7127 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
7128 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
7129 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
7130 (bCC): Remove.
7131 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
7132 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
7133
fbdf817d
UB
7134 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
7135 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 7136 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
7137 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
7138 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
7139 (bfin_optimize_loop): Use cbranch expander.
7140 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
7141 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
7142 (bfin_bimode_comparison_operator): ... this.
7143 (bfin_direct_comparison_operator): New.
f90b7a5a 7144
fbdf817d
UB
7145 * config/cris/cris.c (cris_normal_notice_update_cc): Look
7146 inside (compare FOO (const_int 0)).
7147 (cris_rtx_costs): Handle ZERO_EXTRACT.
7148 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
7149 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
7150 (*tstdi_v32): Delete.
7151 (*cmpdi_non_v32): Add M alternative for operand 1.
7152 (cmpsi, cmp<mode>): Make private.
7153 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
7154 with COMPARE.
7155 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
7156
7157 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
7158 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
7159 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
7160 (cc_reg_operand): New.
7161 (any_cond): Delete.
fbdf817d
UB
7162 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
7163 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
7164 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
7165 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
7166 crx_expand_scond): Delete.
7167
7168 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
7169 (cbranchsi4): New.
7170 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
7171 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
7172
7173 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
7174 cstoresi4, cstoresf4, cstoredf4): New.
7175 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
7176 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
7177 Receive the entire operands array.
7178 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
7179 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
7180 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
7181 Get test/op0/op1 from the operands array.
7182 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
7183
7184 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
7185 (h8300_expand_store): New.
7186 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
7187 (const_int 0)).
7188 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
7189 (h8300_expand_store): New.
7190 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
7191 or do not try to produce (set (cc0) REG).
7192 (peepholes): Wrap arguments with COMPARE. Add a peephole to
7193 change a compare into a move to a scratch register. Disable some
7194 peepholes when comparing with zero.
7195 (tstsi, tsthi, tstsi, cmpqi): Make private.
7196 (cmphi): Delete.
7197 (bCC, sCC): Delete.
7198 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
7199 cstoresi4): New.
f90b7a5a
PB
7200
7201 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
7202 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
7203 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
7204 (ix86_emit_i387_log1p): Use cbranchxf2.
7205 (ix86_expand_setcc): Return void.
7206 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
7207 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
7208 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
7209 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
7210 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
7211 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
7212 (sCC and bCC expanders): Remove.
7213 (stack_protect_test): Use cbranchcc4.
7214
fbdf817d
UB
7215 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
7216 Delete.
7217 (ia64_expand_compare): Accept three rtx by reference and return void.
7218 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
7219 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
7220 from *expr. Update *expr with the BImode comparison to do.
7221 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
7222 cmptf, bCC, sCC, conditional_trap): Delete.
7223 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
7224 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
7225 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
7226 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
7227 * config/ia64/predicates.md (ia64_cbranch_operator): New.
7228
7229 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
7230 type of last argument.
7231 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
7232 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
7233 use machine mode argument instead of branch_type. Remove dead
7234 code for floating-point comparisons.
7235 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
7236 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
7237 Remove.
7238 (cbranchsi4, cstoresi4): New.
7239 * config/iq2000/predicates.md (reg_or_const_operand): New.
7240
7241 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
7242 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
7243 (b<code>_op): Rewrite to...
7244 (bcc_op): ... this, using match_operator.
7245 (s<code>_op): Rewrite to...
7246 (scc_op): ... this, using match_operator.
7247 (s<code>_24_op): Rewrite to...
7248 (scc_op_24): ... this, using match_operator.
7249 (s<code>_<mode>): Rewrite to...
7250 (cstore<mode>4): ... this, using match_operator.
7251 (s<code>_<mode>_24): Rewrite to...
7252 (cstore<mode>4_24): ... this, using match_operator.
7253 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
7254 m32c_unpend_compare, m32c_expand_scc): Delete.
7255 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
7256 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
7257 (m32c_expand_movcc): Change NE to EQ if necessary.
7258 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
7259
7260 * config/m32r/m32r-protos.h (gen_cond_store): New.
7261 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
7262 (gen_cond_store): New, from sCC patterns.
7263 (m32r_expand_block_move): Use cbranchsi4.
7264 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
7265 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
7266 (cbranchsi4, cstoresi4): New.
7267
7268 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
7269 Delete.
7270 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 7271 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
7272 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
7273 Delete.
7274 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
7275 cmphi, cmpqi, bCC): Delete.
7276 (cbranchsi4, cbranchhi4, cbranchqi4): New.
7277 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
7278 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
7279 sets with COMPARE.
7280
7281 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
7282 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
7283 * config/m68k/constraints.md (H): New.
7284 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
7285 the define_insn below.
7286 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
7287 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
7288 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
7289 patterns): Wrap RHS with COMPARE.
7290 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
7291 (*cmpdi_internal): Name this pattern.
7292 (cmpdi): Change to define_insn.
7293 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
7294 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
7295 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
7296 predicate.
7297 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
7298 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
7299 (conditional_trap): Change to...
7300 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
7301 (*conditional_trap): Use the ordered_comparison_operator and
7302 const1_operand predicates.
7303 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
7304 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
7305 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
7306 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
7307
7308 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
7309 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
7310 (mcore_gen_compare): New.
7311 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
7312 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
7313 (mcore_gen_compare): ... this.
7314 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
7315 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
7316 (stack probe pattern): Use cbranchsi4.
7317
7318 * config/mips/predicates.md (mips_cstore_operator): New.
7319 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
7320 * config/mips/mips.md (any_cond): Delete.
7321 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
7322 always succeed.
7323 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
7324 fixuns_truncsfdi2): Use cbranch patterns.
7325 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
7326 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
7327 Adjust call to mips_expand_conditional_branch.
7328 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
7329 cstore<GPR:mode>4.
7330 * config/mips/mips-protos.h (mips_expand_conditional_branch,
7331 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
7332 * config/mips/mips.c (cmp_operands): Delete.
7333 (mips_emit_compare): Get comparison operands from *op0/*op1.
7334 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
7335 that it succeeds. Use op0/op1 instead of cmp_operands.
7336 (mips_expand_conditional_branch, mips_expand_conditional_move,
7337 mips_expand_conditional_trap): Likewise.
7338 (mips_block_move_loop): Use cbranch patterns.
7339 * config/mips/mips.h (cmp_operands): Delete.
7340
7341 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
7342 (mmix_gen_compare_reg): Just return a register in the right CC mode.
7343 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
7344 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
7345 (*cmpcc_folded): Rename to...
7346 (*cmpdi_folded): this.
7347 (*cmpcc): Rename to...
7348 (*cmps): ... this.
7349 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
7350 (bCC): Remove.
7351 (cbranchdi4): New.
7352 (cbranchdf4): New. Handle invalid comparisons here.
7353 * config/mmix/predicates.md (float_comparison_operator): New.
7354
7355 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
7356 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
7357 * config/mn10300/mn10300.md (tst): Delete.
7358 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
7359 Name these patterns and wrap RHS in a compare.
7360 (*cmpsi): Make this pattern private. Include tst.
7361 (*cmpsf): Make this pattern private.
7362 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
7363 (compare with zero peepholes): Likewise.
7364 (bCC): Remove.
7365 (cbranchsi4, cbranchsf4): New.
7366 (casesi): Use cbranchsi4.
7367
7368 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
7369 hppa_branch_type): Delete.
7370 (return_addr_rtx): Use cbranchsi4.
7371 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
7372 Emit CCFPmode comparison here.
7373 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
7374 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
7375 hppa_branch_type): Delete.
7376 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
7377 (movsicc, movdicc): Remove references to hppa_compare_op0,
7378 hppa_compare_op1 and compare_from_rtx.
7379 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
7380 (casesi): Use cbranchsi4.
7381
7382 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
7383 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
7384 * config/pdp11/pdp11.md (register_or_const0_operand): New.
7385 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
7386 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
7387 (bCC): Delete.
7388 (cbranchdf4, cbranchhi4, cbranchqi4): New.
7389 (*branch, *branch_inverted): New.
7390
7391 * config/picochip/picochip.md (cbranchhi4): Use
7392 ordered_comparison_operator.
7393 (cmphi, bCC): Remove.
7394
7395 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
7396 (trap_comparison_operator): Delete.
7397 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
7398 rs6000_emit_cbranch): Accept mode and operands.
7399 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
7400 rs6000_compare_fp_p): Delete.
7401 (rs6000_generate_compare): Accept mode and comparison. Extract code
7402 and op0/op1 from there. Replace references to rs6000_compare_op0
7403 and rs6000_compare_op1.
7404 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
7405 extract result from passed operands.
7406 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
7407 extract loc from passed operands.
7408 (rs6000_emit_cmove): Likewise.
7409 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
7410 rs6000_compare_fp_p): Delete.
7411 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
7412 (cbranch<GPR>4, cbranch<FP>4): New.
7413 (cstore<mode>4): New. Consolidate here all choices about when to use
7414 portable or specialized sCC sequences.
7415 (stack_protect_test): Use cbranchsi4.
7416 (conditional_trap): Replace with ctrap<GPR>4.
7417 (conditional trap insn): Replace trap_comparison_operator with
7418 ordered_comparison_operator.
7419
7420 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
7421 (s390_emit_prologue): Use ctrap.
7422 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
7423 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
7424 New predicates replacing...
7425 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
7426 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
7427 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
7428 (add<mode>cc): Do not use s390_compare_op0/op1.
7429 (s<code>): Change to...
7430 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
7431 (seq): Change to...
7432 (cstorecc4): ... this. Handle EQ or NE equally.
7433 (*sne): Un-privatize for use in cstorecc4.
7434 (b<code>): Change to...
7435 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
7436 (conditional_trap): Replace with...
7437 (ctrap<GPR>4, ctrap<FP>4): ... these.
7438 (stack_protect): Use cbranchcc4.
7439
7440 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
7441 * config/score/score-protos.h (score_gen_cmp): Delete.
7442 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
7443 (score_block_move-loop): Use cbranchsi4.
7444 * config/score/score.md (cbranchsi4): New.
7445 (cmpsi, bCC): Delete.
7446 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
7447 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
7448 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
7449 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
7450 * config/score/score3.h (score3_gen_cmp): Delete.
7451 * config/score/score7.h (score7_gen_cmp): Delete.
7452
7453 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
7454 (sh_emit_scc_to_t): ... this. Return void.
7455 (from_compare): Rename to...
7456 (sh_emit_compare_and_branch): ... this.
7457 (sh_emit_compare_and_set): New.
7458 (sh_expand_t_scc): Accept operands.
7459 * config/sh/predicates.md (sh_float_comparison_operator): New.
7460 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
7461 (prepare_scc_operands): Rename to...
7462 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
7463 arguments.
7464 (sh_emit_cheap_store_flag): New.
f90b7a5a 7465 (sh_emit_set_t_insn): New.
fbdf817d
UB
7466 (from_compare): Rename to...
7467 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
7468 handling of TARGET_SH2E floating point to avoid recursive call.
7469 Generate branch here.
7470 (sh_emit_compare_and_set): New.
7471 (sh_expand_t_scc): Get op0/op1 from arguments.
7472 (sh_emit_cheap_store_flag): New.
7473 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
7474 cases.
f90b7a5a 7475 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
7476 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
7477 (movsicc, movdicc): Do nothing when it recreated operands from
7478 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
7479 prepare_scc_operands (now sh_emit_scc_to_t).
7480 (udivdi3): Use cstoresi4.
7481 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
7482 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
7483 (cbranchint4_media, cbranchfp4_media): New.
7484 (casesi): Use cbranchdi4.
7485 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
7486 Delete.
7487 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
7488 (movnegt): Remove second operand.
7489 (cbranchsf4, cbranchdf4): New.
7490 (stack_protect): Use cbranchdi4/cbranchsi4.
7491
7492 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
7493 (gen_compare_reg): Accept comparison, extract part of it to...
7494 (gen_compare_reg_1): ... this.
7495 (gen_compare_operator): Delete.
7496 (gen_v9_scc): Accept separate destination, comparison code and arms.
7497 Do not use sparc_compare_op0/sparc_compare_op1.
7498 (emit_scc_insn, emit_conditional_branch_insn): New.
7499 (emit_v9_brxx): Make static. Remove useless assertion.
7500 (sparc_emit_float_lib_cmp): Return RTL instead of calling
7501 emit_cmp_insn.
7502 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
7503 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
7504 sparc_emit_float_lib_cmp): Adjust prototype.
7505 (emit_scc_insn, emit_conditional_branch_insn): New.
7506 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
7507 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
7508 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
7509 iterators to the top.
7510 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
7511 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 7512 snedi_special_trunc): Delete.
fbdf817d 7513 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 7514 and snedi_special_trunc.
fbdf817d
UB
7515 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
7516 cbranchdi4, cbranch<F:mode>4): New.
7517 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
7518 here. Use gen_compare_reg instead of gen_compare_operator.
7519 (conditional_trap): Replace with...
7520 (ctrapsi4, ctrapdi4): ... this.
7521 (stack_protect_test): Use cbranchcc4.
7522
7523 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
7524 argument to rtx.
7525 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
7526 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
7527 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
7528 from operands[0] or operands[3] depending on is_set.
7529 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
7530 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
7531 cmpdf, bCC), sCC: Remove.
7532 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
7533 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
7534 cstoredf4): New.
7535 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
7536 spu_emit_branch_or_set.
7537
7538 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
7539 Add two arguments.
7540 * config/stormy16/stormy16.h (xstormy16_compare_op0,
7541 xstormy16_compare_op1): Delete.
7542 * config/stormy16/stormy16.c (xstormy16_compare_op0,
7543 xstormy16_compare_op1): Delete.
7544 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
7545 Adjust calls.
7546 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
7547 (cmphi, cmpsi, bCC): Remove.
7548
7549 * config/v850/v850.md (tstsi, cmpsi): Fold into...
7550 (*cmpsi): ... this one.
7551 (cbranchsi4, cstoresi4): New.
7552 (bCC expanders): Delete.
7553 (sCC insns): Fold into...
7554 (*setcc): ... this one.
7555 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
7556 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
7557 (movsicc): Simplify.
7558 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
7559
fbdf817d
UB
7560 * config/vax/vax-protos.h (cond_name): New.
7561 (vax_output_conditional_branch): Remove.
7562 * config/vax/vax.c (cond_name): New.
7563 (vax_output_conditional_branch): Remove.
7564 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
7565 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
7566 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
7567 (bit<VAXint>): Wrap source with (compare).
7568 (b<code> and following unnamed pattern): Rename to *branch and
7569 *branch_reversed. Change macroization to match_operator.
7570 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
7571
7572 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
7573 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
7574 Change last argument to machine_mode.
7575 (xtensa_expand_scc): Add machine_mode argument.
7576 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
7577 (gen_conditional_move, xtensa_expand_conditional_branch,
7578 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
7579 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
7580 Adjust operand numbers.
7581 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
7582 Delete.
7583 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
7584 (cmpsi, cmpsf, b<code>, s<code>): Delete.
7585 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 7586
16670495
PB
75872009-05-12 Paolo Bonzini <bonzini@gnu.org>
7588
7589 * optabs.c (prepare_cmp_insn): Temporarily disable test that
7590 causes spurious differences between trunk and cond-optab branch.
7591
4a4a4e99
AO
75922009-05-12 Alexandre Oliva <aoliva@redhat.com>
7593
7594 PR target/37137
7595 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
7596
72b9acff
AO
75972009-05-12 Alexandre Oliva <aoliva@redhat.com>
7598
7599 * tree.c (iterative_hash_pointer): Delete.
7600 (iterative_hash_expr): Short-circuit handling of NULL pointer.
7601 Hash UIDs and versions of SSA names. Don't special-case built-in
7602 function declarations.
7603
b7dd69ac
ILT
76042009-05-11 Ian Lance Taylor <iant@google.com>
7605
7606 PR bootstrap/40103
7607 * graphite.c: Force -Wc++-compat to only be a warning before
7608 #including "cloog/cloog.h".
7609
ed102b70
MJ
76102009-05-11 Martin Jambor <mjambor@suse.cz>
7611
7612 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
7613
08f1af2e
JH
76142009-05-11 Jan Hubicka <jh@suse.cz>
7615
7616 * tree-ssa-loop-ivcanon.c: Include target.h
7617 (struct loop_size): new structure.
7618 (constant_after_peeling): New predicate.
7619 (tree_estimate_loop_size): New function.
7620 (estimated_unrolled_size): Rewrite for new estimates.
7621 (try_unroll_loop_completely): Use new estimates.
7622 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
7623
a7d39bd3
AP
76242009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
7625
7626 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
7627 libcpp interface change.
7628 (spu_macro_to_expand): Likewise.
7629
f5a1f0d0
PB
76302009-05-11 Paolo Bonzini <bonzini@gnu.org>
7631
7632 PR tree-optimization/40026
7633 * gimplify.c (gimplify_init_constructor): Change initial conditional
7634 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
7635 optimize_compound_literals_in_ctor.
7636
c260f01f
NS
76372009-05-11 Nathan Sidwell <nathan@codesourcery.com>
7638
7639 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
7640 New devices.
7641 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
7642
df398a37
L
76432009-05-11 H.J. Lu <hongjiu.lu@intel.com>
7644
7645 * tree-vect-data-refs.c (vect_analyze_group_access): Use
7646 HOST_WIDE_INT for gap.
7647
4da39468
IR
76482009-05-11 Ira Rosen <irar@il.ibm.com>
7649
7650 PR tree-optimization/40074
7651 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
7652 account in group size and step comparison.
7653
4effdf02
RG
76542009-05-11 Richard Guenther <rguenther@suse.de>
7655
7656 * passes.c (init_optimization_passes): Strip now incorrect comment.
7657 (execute_function_todo): Do not set PROP_alias.
7658 * tree-pass.h (PROP_alias): Remove.
7659 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
7660 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
7661 * tree-nrv.c (pass_return_slot): Likewise.
7662 * tree-object-size.c (pass_object_sizes): Likewise.
7663 * tree-ssa-dom.c (pass_dominator): Likewise.
7664 (pass_phi_only_cprop): Likewise.
7665 * tree-ssa-dse.c (pass_dse): Likewise.
7666 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
7667 (pass_cselim): Likewise.
7668 * tree-ssa-pre.c (pass_pre): Likewise.
7669 (pass_fre): Likewise.
7670 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
7671 * tree-ssa-sink.c (pass_sink_code): Likewise.
7672 * tree-stdarg.c (pass_stdarg): Likewise.
7673 * tree-tailcall.c (pass_tail_calls): Likewise.
7674 * tree-vrp.c (pass_vrp): Likewise.
7675
24b97832
ILT
76762009-05-10 Ian Lance Taylor <iant@google.com>
7677
7678 * basic-block.h (enum profile_status): Break out of struct
7679 control_flow_graph.
7680 * cgraph.h (struct inline_summary): Break out of struct
7681 cgraph_local_info.
7682 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
7683 of struct cgraph_order_sort.
fbdf817d 7684 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
7685 * cse.c (struct branch_path): Break out of struct
7686 cse_basic_block_data.
7687 * except.h (enum eh_region_type): Break out of struct eh_region.
7688 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 7689 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
7690 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
7691 ggc_pch_data.
fbdf817d
UB
7692 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
7693 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
7694 * sched-int.h (enum post_call_group): New enum, broken out of
7695 struct deps.
7696 (struct deps_reg): Break out of struct deps.
7697 * target.h (struct asm_int_op): Break out of struct gcc_target.
7698 * tree-eh.c (struct goto_queue_node): Break out of struct
7699 leh_tf_state.
7700 * tree-inline.h (enum copy_body_cge_which): Break out of
7701 copy_body_data.
7702 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
7703
7704 * c-decl.c (in_struct, struct_types): New static variables.
7705 (pushtag): Add loc parameter. Change all callers.
7706 (lookup_tag): Add ploc parameter. Change all callers.
7707 (check_compound_literal_type): New function.
7708 (parser_xref_tag): Add loc parameter. Change all callers. If
7709 -Wc++-compat, warn about struct/union/enum types defined within a
7710 struct or union.
7711 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
7712 and loc parameters. Change all callers. Change error calls to
7713 error_at, using loc. For a redefinition, if the location of the
7714 original definition is known, report it. Set in_struct and
fbdf817d 7715 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
7716 (finish_struct): Add new parameters enclosing_in_struct and
7717 enclosing_struct_types. Change all callers. Set
7718 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
7719 in the struct. If in a struct, add this struct to struct_types.
7720 (start_enum): Add loc parameter. Change all callers. Use
7721 error_at for errors, using loc. For a redefinition, if the
7722 location of the original definition is known, report it. If in a
7723 struct, add this enum type to struct_types. If -Wc++-compat warn
7724 if in sizeof, typeof, or alignof.
fbdf817d
UB
7725 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
7726 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
7727 (c_parser_enum_specifier): Get enum location for start_enum.
7728 (c_parser_struct_or_union_specifier): Get struct location for
7729 start_struct. Save in_struct and struct_types status between
7730 start_struct and finish_struct.
7731 (c_parser_cast_expression): Get location of cast.
7732 (c_parser_alignof_expression): Get location of type.
7733 (c_parser_postfix_expression): Likewise.
7734 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
7735 parameter. Change all callers. Call check_compound_literal_type.
7736 Use type_loc for error about variable size type.
7737 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
7738 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
7739 (c_cast_expr): Add loc parameter. Change all callers. If
7740 -Wc++-compat, warn about defining a type in a cast.
7741 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
7742 (start_enum, start_struct, finish_struct): Update declarations.
7743 (parser_xref_tag, c_cast_expr): Update declarations.
7744 (check_compound_literal_type): Declare.
7745
7a2738fa
BE
77462009-05-11 Ben Elliston <bje@au.ibm.com>
7747
7748 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
7749 for recent libcpp interface change.
7750 (rs6000_macro_to_expand): Likewise.
7751
af618949
MM
77522009-05-10 Michael Matz <matz@suse.de>
7753
7754 PR target/40031
7755 * config/arm/arm.c (require_pic_register): Emit on entry edge,
7756 not at entry of function.
7757
b7d7a473
RG
77582009-05-10 Richard Guenther <rguenther@suse.de>
7759
7760 PR tree-optimization/40081
7761 Revert
7762 * tree-sra.c (instantiate_element): Instantiate scalar replacements
7763 using the main variant of the element type. Do not fiddle with
7764 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
7765
7766 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
7767 structs with volatile fields.
7768
078c3644
JH
77692009-05-10 Jan Hubicka <jh@suse.cz>
7770
7771 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
7772 (estimate_move_cost): Assert that it does not get called for
7773 VOID_TYPE_P.
078c3644
JH
7774 (estimate_num_insns): Skip VOID types in argument handling.
7775 (optimize_inline_calls): Delete unreachable blocks and verify that
7776 callgraph is valid.
7777
39ff5a96
JH
77782009-05-10 Jan Hubicka <jh@suse.cz>
7779
7780 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
7781 * cgraph.c (cgraph_mark_address_taken_node): New function.
7782 (dump_cgraph_node): Dump new flag.
7783 * cgraph.h (struct cgraph_node): Add address_taken.
7784 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
7785 * ipa.c (cgraph_postorder): Prioritize functions with address taken
7786 since new direct calls can be born.
7787
9a0c6187
JM
77882009-05-10 Joseph Myers <joseph@codesourcery.com>
7789
7790 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
7791 tok->val.node.node.
7792
4b685e14
JH
77932009-05-10 Jan Hubicka <jh@suse.cz>
7794
7795 PR middle-end/40084
fb0be169
EB
7796 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
7797 argument; rewrite.
4b685e14
JH
7798 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
7799 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
7800 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
7801 (fold_marked_statements): Update call to
7802 cgraph_update_edges_for_call_stmt.
4b685e14 7803
29d08eba
JM
78042009-05-10 Joseph Myers <joseph@codesourcery.com>
7805
7806 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
7807 identifiers in diagnostics.
7808 * config/arm/arm.c (arm_handle_fndecl_attribute,
7809 arm_handle_isr_attribute): Likewise.
7810 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 7811 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
7812 * config/bfin/bfin.c (handle_int_attribute,
7813 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
7814 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
7815 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
7816 Likewise.
7817 * config/darwin.c (darwin_handle_kext_attribute,
7818 darwin_handle_weak_import_attribute): Likewise.
7819 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
7820 h8300_handle_eightbit_data_attribute,
7821 h8300_handle_tiny_data_attribute): Likewise.
7822 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 7823 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
7824 * config/i386/winnt.c (ix86_handle_shared_attribute,
7825 ix86_handle_selectany_attribute): Likewise.
7826 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
7827 * config/m32c/m32c.c (function_vector_handler): Likewise.
7828 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
7829 m68hc11_handle_fntype_attribute): Likewise.
7830 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
7831 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
7832 * config/mips/mips.c (mips_insert_attributes,
7833 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
7834 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
7835 rs6000_handle_struct_attribute): Likewise.
7836 * config/sh/sh.c (sh_insert_attributes,
7837 sh_handle_resbank_handler_attribute,
7838 sh_handle_interrupt_handler_attribute,
7839 sh2a_handle_function_vector_handler_attribute,
7840 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
7841 Likewise.
7842 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
7843 * config/spu/spu.c (spu_handle_fndecl_attribute,
7844 spu_handle_vector_attribute): Likewise.
7845 * config/stormy16/stormy16.c
7846 (xstormy16_handle_interrupt_attribute): Likewise.
7847 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
7848 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
7849
f41c4af3
JM
78502009-05-10 Joseph Myers <joseph@codesourcery.com>
7851
782dc37a 7852 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
7853 (pp_translate_identifiers): New.
7854 (pp_identifier): Only conditionally translate identifier to locale
7855 character set.
7856 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
7857 (pp_base_tree_identifier): Only conditionally translate identifier
7858 to locale character set.
7859 * c-pretty-print.c (M_): Define.
7860 (pp_c_type_specifier, pp_c_primary_expression): Mark English
7861 fragments for conditional translation with M_.
7862 * tree-pretty-print.c (maybe_init_pretty_print): Disable
7863 identifier translation.
7864
896d7dbd
RG
78652009-05-10 Richard Guenther <rguenther@suse.de>
7866
7867 PR tree-optimization/40081
7868 * tree-sra.c (instantiate_element): Instantiate scalar replacements
7869 using the main variant of the element type. Do not fiddle with
7870 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
7871
9a23acef
JH
78722009-05-09 Jan Hubicka <jh@suse.cz>
7873
7874 PR middle-end/40080
7875 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
7876 indirect calls; verify cgraph afterwards.
7877
d563610d
JH
78782009-05-09 Jan Hubicka <jh@suse.cz>
7879
7880 PR bootstrap/40082
7881 * ipa.c (update_inlined_to_pointer): New function.
7882 (cgraph_remove_unreachable_nodes): Use it.
7883
f08a18d0
JH
78842009-05-09 Jan Hubicka <jh@suse.cz>
7885
7886 * tree-eh.c (struct leh_state): Remove prev_try.
7887 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
7888 not track prev_try.
7889 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
7890 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
7891 remove_eh_handler_and_replace, foreach_reachable_handler,
7892 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
7893 * except.h (struct eh_region): Remove eh_region_u_cleanup.
7894 (gen_eh_region_cleanup): Update prototype.
7895
0afd7219
JH
78962009-05-09 Jan Hubicka <jh@suse.cz>
7897
7898 PR middle-end/40043
7899 * except.c (copy_eh_region): Always set prev_try.
7900 (redirect_eh_edge_to_label): Find outer try.
7901 (foreach_reachable_handler): When looking for prev try
7902 handle case where previous try is not going to be taken.
7903
ad6c0864
MM
79042009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
7905
7906 PR tree-optimization/40049
7907 * tree-vect-stmts.c (vectorizable_operation): If the machine has
7908 only vector/vector shifts, convert the type of the constant to the
7909 appropriate type to avoid building incorrect trees, which
7910 eventually have problems with garbage collection.
7911
c94f9067
JM
79122009-05-08 Joseph Myers <joseph@codesourcery.com>
7913
7914 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
7915 -1 for complex floating-point types if honoring signed zeros.
7916
9187e02d
JH
79172009-05-08 Jan Hubicka <jh@suse.cz>
7918
20acb8a2
EB
7919 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
7920 argument; handle correctly when profile is absent.
9187e02d
JH
7921 (build_cgraph_edges): Update.
7922 (rebuild_cgraph_edges): Update.
20acb8a2
EB
7923 * cgraph.c: Do not include varray.h.
7924 (cgraph_set_call_stmt_including_clones): New function.
7925 (cgraph_create_edge_including_clones): Likewise
7926 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
7927 (cgraph_update_edges_for_call_stmt): Handle clones.
7928 (cgraph_remove_node): Handle clone tree.
7929 (cgraph_remove_node_and_inline_clones): New function.
7930 (dump_cgraph_node): Dump clone tree.
7931 (cgraph_clone_node): Handle clone tree.
20acb8a2 7932 (clone_function_name): Bring here from tree-inline.c.
9187e02d 7933 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
7934 * cgraph.h (ipa_replace_map): Move here from ipa.h.
7935 (cgraph_clone_info): New function.
9187e02d 7936 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
7937 (cgraph_remove_node_and_inline_clones,
7938 cgraph_set_call_stmt_including_clones,
7939 cgraph_create_edge_including_clones,
7940 cgraph_create_virtual_clone): Declare.
9187e02d
JH
7941 (cgraph_function_versioning): Use VEC argument.
7942 (compute_call_stmt_bb_frequency): Update prototype.
7943 (cgraph_materialize_all_clones): New function.
7944 * ipa-cp.c (ipcp_update_cloned_node): Remove.
7945 (ipcp_create_replace_map): Update to VECtors.
7946 (ipcp_update_callgraph): Use virtual clones.
7947 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
7948 (ipcp_update_profiling): Do not update local profiling.
7949 (ipcp_insert_stage): Use VECtors and virtual clones.
7950 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
7951 (clone_of_p): New function.
7952 (cgraph_preserve_function_body_p): Use clone tree.
7953 (cgraph_optimize): Materialize clones.
7954 (cgraph_function_versioning): Update for VECtors.
7955 (save_inline_function_body): Use clone tree.
20acb8a2
EB
7956 (cgraph_materialize_clone): New function.
7957 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
7958 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
7959 * ipa.c: Include gimple.h.
7960 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
7961 * ipa-prop.c (ipa_note_param_call): Update call to
7962 compute_call_stmt_bb_frequencycall.
9187e02d 7963 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 7964 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
7965 (copy_bb): Handle updating of clone tree; add new edge when new call
7966 appears.
7967 (expand_call_inline): Be strict about every call having edge.
7968 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
7969 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
7970 (tree_function_versioning): Use VECtors; always remove unreachable
7971 blocks and fold conditionals.
7972 * tree-inline.h: Do not include varray.h.
9187e02d
JH
7973 (tree_function_versioning): Remove.
7974 * Makefile.in (GTFILES): Remove tree-inline.c
7975 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
7976 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
7977 tree.
9187e02d 7978
9b86d6bb
L
79792009-05-08 H.J. Lu <hongjiu.lu@intel.com>
7980 Andrew Morrow <acm@google.com>
7981
7982 PR c/36892
7983 * c-common.c (c_common_attribute_table): Permit deprecated
7984 attribute to take an optional argument.
7985 (handle_deprecated_attribute): If the optional argument to
7986 __attribute__((deprecated)) is not a string ignore the attribute
7987 and emit a warning.
7988
7989 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
7990 * c-typeck.c (build_component_ref): Likewise.
7991 (build_external_ref): Likewise.
7992
7993 * toplev.c (warn_deprecated_use): Add an attribute argument.
7994 Emit the message associated with __attribute__((deprecated)).
7995
7996 * toplev.h (warn_deprecated_use): Updated.
7997
7998 * doc/extend.texi: Document new optional parameter to
7999 __attribute__((deprecated))
8000
82ad047f
ME
80012009-05-08 Michael Eager <eager@eagercon.com>
8002
8003 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
8004 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
8005
788d3075
RG
80062009-05-08 Richard Guenther <rguenther@suse.de>
8007
8008 PR tree-optimization/40062
8009 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
8010 Avoid exponential behavior.
8011
00952e97
PB
80122009-05-08 Paolo Bonzini <bonzini@gnu.org>
8013
8014 PR rtl-optimization/33928
8015 PR 26854
8016 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
8017 process_uses, build_single_def_use_links): New.
8018 (update_df): Update use_def_ref.
8019 (forward_propagate_into): Use get_def_for_use instead of use-def
8020 chains.
8021 (fwprop_init): Call build_single_def_use_links and let it initialize
8022 dataflow.
8023 (fwprop_done): Free use_def_ref.
8024 (fwprop_addr): Eliminate duplicate call to df_set_flags.
8025 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
8026 df_rd_simulate_one_insn): New.
8027 (df_rd_bb_local_compute_process_def): Update head comment.
8028 (df_chain_create_bb): Use the new RD simulation functions.
8029 * df.h (df_rd_simulate_artificial_defs_at_top,
8030 df_rd_simulate_one_insn): New.
8031 * opts.c (decode_options): Enable fwprop at -O1.
8032 * doc/invoke.texi (-fforward-propagate): Document this.
8033
2ca862e9
JM
80342009-05-08 Joseph Myers <joseph@codesourcery.com>
8035
8036 PR c/24581
8037 * c-typeck.c (build_binary_op): Handle arithmetic between one real
8038 and one complex operand specially.
8039 * tree-complex.c (some_nonzerop): Do not identify a real value as
8040 zero if flag_signed_zeros.
8041
3e807ffc
PB
80422009-05-08 Paolo Bonzini <bonzini@gnu.org>
8043
8044 PR rtl-optimization/33928
7925c06c 8045 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 8046
1bfdbb29
PB
80472009-05-08 Paolo Bonzini <bonzini@gnu.org>
8048
8049 PR rtl-optimization/33928
e913423f
EB
8050 * loop-invariant.c (struct use): Add addr_use_p.
8051 (struct def): Add n_addr_uses.
8052 (struct invariant): Add cheap_address.
8053 (create_new_invariant): Set cheap_address.
8054 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
8055 (record_uses): Pass df_ref to record_use.
8056 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
8057 used only as such.
1bfdbb29 8058
702cb2a0
KK
80592009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
8060
8061 * config/sh/sh.c: Do not include c-pragma.h.
8062
5e8df753
AP
80632009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
8064
8065 * config/spu/spu.c: Remove include of c-common.h.
8066
6ec637a4
JJ
80672009-05-07 Janis Johnson <janis187@us.ibm.com>
8068
8069 PR c/39037
8070 * c-common.h (mark_valid_location_for_stdc_pragma,
8071 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
8072 clear_float_const_decimal64, float_const_decimal64_p): New.
8073 * c.opt (Wunsuffixed-float-constants): New.
8074 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
8075 unsuffixed float constant, handle new warning.
8076 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
8077 * c-decl.c (c_scope): New flag float_const_decimal64.
8078 (set_float_const_decimal64, clear_float_const_decimal64,
8079 float_const_decimal64_p): New.
8080 (push_scope): Set new flag.
8081 * c-parser.c (c_parser_translation_unit): Mark when it's valid
8082 to use STDC pragmas.
8083 (c_parser_external_declaration): Ditto.
8084 (c_parser_compound_statement_nostart): Ditto.
8085 * c-pragma.c (valid_location_for_stdc_pragma,
8086 mark_valid_location_for_stdc_pragma,
8087 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
8088 handle_pragma_float_const_decimal64): New.
8089 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
8090 * cp/semantics.c (valid_location_for_stdc_pragma_p,
8091 set_float_const_decimal64, clear_float_const_decimal64,
8092 float_const_decimal64_p): New dummy functions.
8093 * doc/extend.texi (Decimal Float): Remove statement that the
8094 pragma, and suffix for double constants, are not supported.
8095 * doc/invoke.texi (Warning Options): List new option.
8096 (-Wunsuffixed-float-constants): New.
8097
45b9b2e9
SB
80982009-05-08 Steven Bosscher <steven@gcc.gnu.org>
8099
8100 * config/i386/i386.c: Do not include c-common.h.
8101
e71da632
MH
81022009-05-07 Mark Heffernan <meheff@google.com>
8103
8104 * doc/invoke.texi (Debugging Options): Document change of debugging
8105 dump location.
e913423f 8106 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
8107 aux_base_name directory.
8108
fe4c7bc6
HS
81092009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
8110
8111 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
8112 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
8113
3b3e44eb
RAE
81142009-05-07 Rafael Avila de Espindola <espindola@google.com>
8115
8116 * Makefile.in (install-plugin): Simplify a bit.
8117
fac41238
PB
81182009-05-07 Paolo Bonzini <bonzini@gnu.org>
8119
8120 * Makefile.in (OBJS-common): Add regcprop.o.
8121 (regcprop.o): New.
8122 * timevar.def (TV_CPROP_REGISTERS): New.
8123 * regrename.c (regrename_optimize): Return 0.
8124 (rest_of_handle_regrename): Delete.
8125 (pass_rename_registers): Point to regrename_optimize.
8126 (struct value_data_entry, struct value_data,
8127 kill_value_one_regno, kill_value_regno, kill_value,
8128 set_value_regno, init_value_data, kill_clobbered_value,
8129 kill_set_value, kill_autoinc_value, copy_value,
8130 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
8131 replace_oldest_value_reg, replace_oldest_value_addr,
8132 replace_oldest_value_mem, copyprop_hardreg_forward_1,
8133 debug_value_data, validate_value_data): Move...
8134 * regcprop.c: ... here.
8135 (rest_of_handle_cprop): Delete.
8136 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
8137
472e0df9
JJ
81382009-05-07 Jakub Jelinek <jakub@redhat.com>
8139
8140 PR middle-end/40057
8141 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
8142 GEN_INT for 1 << bitnum.
8143 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
8144 build_int_cst_type.
8145
0d50d55a
UB
81462009-05-07 Uros Bizjak <ubizjak@gmail.com>
8147
8148 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 8149 Remove wrong description of "nand" operation.
0d50d55a 8150
22f597f1
RG
81512009-05-06 Richard Guenther <rguenther@suse.de>
8152 Adam Nemet <anemet@caviumnetworks.com>
8153
8154 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
8155 comment. Add that if LHS is not a gimple register, then RHS1 has
8156 to be a single object (GIMPLE_SINGLE_RHS).
8157
641cac0b
AN
81582009-05-06 Adam Nemet <anemet@caviumnetworks.com>
8159
8160 * expr.c (get_def_for_expr): Move it up in the file.
8161 (store_field): When expanding a bit-field store, look at the
8162 defining gimple stmt for the masking conversion.
8163
5a5c6435
JJ
81642009-05-06 Janis Johnson <janis187@us.ibm.com>
8165
8166 PR middle-end/39986
8167 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
8168 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
8169 32-bit memcpy into long.
8170
96474f36
JJ
81712009-05-06 Jakub Jelinek <jakub@redhat.com>
8172
8173 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
8174 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
8175 new_reg_loc_descr.
8176 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
8177 instead of appending DW_OP_deref*.
8178
529ff441
MM
81792009-05-06 Michael Matz <matz@suse.de>
8180
8181 PR middle-end/40021
8182 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
8183 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
8184
9419a9fd
RAE
81852009-05-06 Rafael Avila de Espindola <espindola@google.com>
8186
8187 * Makefile.in (install-plugin): Fix srcdir handling.
8188
fff1894c
AB
81892009-05-06 Andrey Belevantsev <abel@ispras.ru>
8190
8191 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
8192 when processing for not_regs_needed bitmap.
8193 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
8194 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
8195 handling it for rhs.
8196
700ae70c
L
81972009-05-06 H.J. Lu <hongjiu.lu@intel.com>
8198
ab3426a7 8199 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 8200 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
8201 * config/i386/predicates.md (incdec_operand): Likewise.
8202 (aligned_operand): Likewise.
8203 * config/i386/sse.md (divv8sf3): Likewise.
8204 (sqrtv8sf2): Likewise.
8205
67341fb5
L
82062009-05-06 H.J. Lu <hongjiu.lu@intel.com>
8207
8208 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
8209
8210 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
8211
87946f42
L
82122009-05-06 H.J. Lu <hongjiu.lu@intel.com>
8213
8214 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
8215 ssemodesuffixf2c with avxmodesuffixf2c.
8216
1202aec1
JM
82172009-05-06 Joseph Myers <joseph@codesourcery.com>
8218
8219 PR c/40032
aa016ff7 8220 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 8221
6e57a01d
JJ
82222009-05-05 Jakub Jelinek <jakub@redhat.com>
8223
8224 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
8225 (struct tree_base): Adjust spacing for 8 bit boundaries.
8226 (struct tree_decl_common): Add decl_by_reference_flag bit.
8227 (DECL_BY_REFERENCE): Adjust.
8228 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
8229 print DECL_BY_REFERENCE bit.
8230 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
8231 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
8232 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
8233 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
8234 unconditionally.
8235
32f579f6
JJ
8236 PR middle-end/39666
8237 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
8238 range of the type, but default label is missing, add it with one
8239 of the existing labels instead of adding a new label for it.
8240
617ab743
JM
82412009-05-05 Joseph Myers <joseph@codesourcery.com>
8242
8243 * dwarf.h: Remove.
8244
bf016de8
RAE
82452009-05-05 Rafael Avila de Espindola <espindola@google.com>
8246
8247 * Makefile.in (enable_plugin, plugin_includedir): New.
8248 (install): Depend on install-plugin.
8249 (PLUGIN_HEADERS): New.
8250 (install-plugin): New.
8251 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
8252
7f8fdb9f
RG
82532009-05-05 Richard Guenther <rguenther@suse.de>
8254
8255 PR tree-optimization/40022
8256 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
8257 the only vuse.
8258 (phivn_valid_p): Fix tuplification error, simplify.
8259 (phiprop_insert_phi): Add dumps.
8260 (propagate_with_phi): Simplify.
8261
8d972839
RG
82622009-05-05 Richard Guenther <rguenther@suse.de>
8263
8264 PR middle-end/40023
aa016ff7 8265 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 8266
66ba9b0b
SZ
82672009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
8268
8269 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
8270 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
8271 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
8272 block_ultimate_origin): Rearrange the declarations line to match the
8273 comment that indicates the .c file which the functions are defined.
8274 (dwarf2out_*, set_decl_rtl): Add comment.
8275 (get_base_address): Adjust comment.
8276 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
8277 declarations line and add comment.
8278 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 8279
4f1e4960
JM
82802009-05-04 Joseph Myers <joseph@codesourcery.com>
8281
8282 * attribs.c (decl_attributes): Use %qE for identifiers in
8283 diagnostics.
8284 * cgraphunit.c (verify_cgraph_node): Translate function names to
8285 locale character set in diagnostics.
8286 * coverage.c (get_coverage_counts): Use %qE for identifiers in
8287 diagnostics.
8288 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
8289 Document that functions are named in UTF-8.
8290 * expr.c (expand_expr_real_1): Translate function names to locale
8291 character set in diagnostics.
8292 * gimplify.c (omp_notice_variable, omp_is_private,
8293 gimplify_scan_omp_clauses): Use %qE for identifiers in
8294 diagnostics.
8295 * langhooks.c (lhd_print_error_function): Translate function names
8296 to locale character set.
8297 * langhooks.h (decl_printable_name): Document that return value is
8298 in internal character set.
8299 * stmt.c: Include pretty-print.h
8300 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
8301 diagnostics.
8302 (resolve_operand_name_1): Translate named operand name to locale
8303 character set.
8304 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
8305 diagnostics.
8306 * toplev.c (announce_function): Translate function names to locale
8307 character set.
8308 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
8309 (default_tree_printer): Use pp_identifier or translate identifiers
8310 to locale character set. Mark "<anonymous>" for translation.
8311 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
8312 for identifiers in diagnostics.
8313 * tree.c (handle_dll_attribute): Use %qE for identifiers in
8314 diagnostics.
8315 * varasm.c (output_constructor): Use %qE for identifiers in
8316 diagnostics.
8317
40540e68
RAE
83182009-05-04 Rafael Avila de Espindola <espindola@google.com>
8319
8320 * configure.ac: use ` ` instead of $()
8321 * configure: Regenerate.
8322
33fc884c
BE
83232009-05-05 Ben Elliston <bje@au.ibm.com>
8324
8325 * config/pa/linux-atomic.c: Eliminate conditional include of
8326 errno.h on non-LP64 systems to simplify build requirements.
8327
88388a52
JM
83282009-05-04 Joseph Myers <joseph@codesourcery.com>
8329
8330 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
8331 diagnostics.
8332 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
8333 and pass value to identifier_to_locale.
8334 (warn_variable_length_array): Make name a tree.
8335 (grokdeclarator): Separate diagnostic texts for named and unnamed
8336 declarators. Use %qE for named declarators.
8337 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
8338 diagnostics.
8339 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
8340 identifiers in diagnostics.
8341 * c-typeck.c (push_member_name, start_init): Pass identifiers to
8342 identifier_to_locale. Mark "anonymous" strings for translation.
8343
960c5c79
ME
83442009-05-04 Michael Eager <eager@eagercon.com>
8345
8346 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 8347 address for DImode/DFmode only if double-precision FP regs.
960c5c79 8348
d083fbba
ME
83492009-05-04 Michael Eager <eager@eagercon.com>
8350
8351 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
8352 TARGET_SINGLE_FLOAT check.
8353
c3ba8d32
ME
83542009-05-04 Michael Eager <eager@eagercon.com>
8355
8356 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
8357
edce9f18
ME
83582009-05-04 Michael Eager <eager@eagercon.com>
8359
8360 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
8361 * config/rs6000/t-xilinx: New
8362
506d7b68
PB
83632009-05-04 Paolo Bonzini <bonzini@gnu.org>
8364
e913423f 8365 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
8366 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
8367 * gcc/explow.c (memory_address): Use target hook.
8368 * gcc/targhooks.c (default_legitimize_address): New.
8369 * gcc/targhooks.h (default_legitimize_address): New.
8370 * gcc/target.h (legitimize_address): New.
8371 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
8372 (TARGET_INITIALIZER): Include it.
8373 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
8374
8375 * config/bfin/bfin-protos.h (legitimize_address): Remove.
8376 * config/bfin/bfin.c (legitimize_address): Remove.
8377 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
8378 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
8379 Remove.
506d7b68
PB
8380 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
8381 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
8382
8383 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
8384 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
8385 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
8386 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
8387 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
8388 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
8389 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
8390 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
8391 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
8392 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
8393 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
8394 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
8395 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
8396 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
8397 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
8398 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
8399 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
8400 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
8401 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
8402 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
8403 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
8404 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
8405 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
8406
8407 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
8408 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
8409 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
8410 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
8411 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
8412 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
8413 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
8414 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
8415 (thumb_legitimize_address): Delete.
8416 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
8417 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
8418 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
8419 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
8420 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
8421 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
8422 Delete.
8423 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
8424 Delete.
506d7b68
PB
8425
8426 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
8427 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
8428 * config/m32r/m32r.c (m32r_legitimize_address): New.
8429 * config/m68k/m68k.c (m68k_legitimize_address): New.
8430 * config/score/score.c (score_legitimize_address): Standardize.
8431 * config/score/score3.c (score3_legitimize_address): Standardize.
8432 * config/score/score3.h (score3_legitimize_address): Adjust.
8433 * config/score/score7.c (score7_legitimize_address): Standardize.
8434 * config/score/score7.h (score7_legitimize_address): Adjust.
8435 * config/sh/sh.c (sh_legitimize_address): New.
8436 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
8437
8438 * gcc/config/s390/s390.c (legitimize_address): Rename to...
8439 (s390_legitimize_address): ... this.
8440 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
8441 (sparc_legitimize_address): ... this.
8442 * gcc/config/i386/i386.c (legitimize_address): Rename to...
8443 (ix86_legitimize_address): ... this.
8444 * gcc/config/avr/avr.c (legitimize_address): Rename to...
8445 (avr_legitimize_address): ... this.
8446 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
8447 (mn10300_legitimize_address): ... this.
8448 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
8449 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
8450 (alpha_expand_mov): Adjust call.
8451
8452 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
8453 * config/spu/spu.c (spu_legitimize_address): Likewise.
8454 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
8455 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
8456
a3af5087
JM
84572009-05-04 Joseph Myers <joseph@codesourcery.com>
8458
8459 * intl.c (locale_encoding, locale_utf8): New.
8460 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
8461 * intl.h (locale_encoding, locale_utf8): Declare.
8462 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
8463 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
8464 New.
8465 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
8466 argument.
8467 (pp_tree_identifier): Define to call pp_base_tree_identifier.
8468 (pp_base_tree_identifier): Declare as function.
8469 (identifier_to_locale): Declare.
8470 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 8471 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 8472
ea5cd5f1
RG
84732009-05-04 Richard Guenther <rguenther@suse.de>
8474
8475 PR middle-end/40015
8476 * builtins.c (fold_builtin_memory_op): Do not decay to element
8477 type if the size matches the whole array.
8478
ddc2690a
KH
84792009-05-04 Kazu Hirata <kazu@codesourcery.com>
8480
8481 * expmed.c (synth_mult): When trying out a shift, pass the result
8482 of a signed shift.
8483
ef268d34
KH
84842009-05-04 Kazu Hirata <kazu@codesourcery.com>
8485
8486 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
8487 (shiftsub1_cost): New.
8488 (init_expmed): Compute shiftsub1_cost.
8489 (synth_mult): Optimize multiplications by constants of the form
8490 -(2^^m-1) for some constant positive integer m.
8491
255d3827
RG
84922009-05-03 Richard Guenther <rguenther@suse.de>
8493
8494 PR c/39983
8495 * c-typeck.c (array_to_pointer_conversion): Do not built
8496 ADDR_EXPRs of arrays of pointer-to-element type.
8497 * c-gimplify.c (c_gimplify_expr): Revert change fixing
8498 up wrong ADDR_EXPRs after-the-fact.
8499 * c-common.c (strict_aliasing_warning): Strip pointer
8500 conversions for obtaining the original type.
8501 * builtins.c (fold_builtin_memset): Handle array types.
8502 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
8503 and array types
8504
16c33770
RG
85052009-05-03 Richard Guenther <rguenther@suse.de>
8506
8507 PR middle-end/23329
8508 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
8509 Do not lose casts from array types with unknown extent to array
8510 types with known extent.
8511 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
8512 alias set compatibility.
8513
62a67c94
MLI
85142009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
8515
8516 * flags.h (extra_warnings): Delete.
8517 * toplev.c (process_options): Handle Wuninitialized here.
8518 * opts.c (extra_warnings): Delete.
8519 (set_Wextra): Delete.
8520 (common_handle_option): -Wextra can be handled automatically.
8521 * c-opts.c (c_common_handle_option): Delete obsolete code.
8522 (c_common_post_options): Simplify comment.
8523 * common.opt (W): Add Var.
8524 (Wextra): Add Var.
8525 (Wuninitialized): Initialize to -1.
8526
8c7926c4
AN
85272009-05-03 Adam Nemet <anemet@caviumnetworks.com>
8528 Richard Guenther <rguenther@suse.de>
8529
8530 * expr.c (get_def_for_expr): New function.
8531 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
8532 SSA rather than trees.
8533 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
8534 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
8535
fa5da7de
JM
85362009-05-03 Joseph Myers <joseph@codesourcery.com>
8537
8538 * c-common.c (reswords): Add _Imaginary.
8539 * c-common.c (enum rid): Add RID_IMAGINARY.
8540
2ddd5020
PB
85412009-05-03 Paolo Bonzini <bonzini@gnu.org>
8542
8543 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
8544 Patch by Richard Guenther.
8545
aea88c05
AS
85462009-05-03 Anatoly Sokolov <aesok@post.ru>
8547
8548 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
8549 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
8550 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
8551 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
8552 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
8553 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
8554 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
8555 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
8556 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
8557 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
8558 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
8559 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
8560 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
8561 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
8562 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
8563 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
8564 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
8565 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
8566
85e59f3a
RG
85672009-05-02 Richard Guenther <rguenther@suse.de>
8568
8569 PR tree-optimization/39940
8570 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
8571 doing so.
8572
4636b850
RG
85732009-05-02 Richard Guenther <rguenther@suse.de>
8574
8575 PR middle-end/40001
8576 * tree-ssa.c (execute_update_addresses_taken): Properly check
8577 if we can mark a variable DECL_GIMPLE_REG_P.
8578 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
8579 back to the end of the function.
8580 (is_gimple_reg_type): Remove complex type special casing.
8581 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
8582 if not optimizing.
8583
5e10cb5a
BE
85842009-05-02 Ben Elliston <bje@au.ibm.com>
8585
8586 * doc/collect2.texi (Collect2): Document search path behaviour
8587 when configured with --with-ld.
8588
048bf48b
JH
85892009-05-02 Jan Hubicka <jh@suse.cz>
8590
8591 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
8592 parameter; update callers.
aa016ff7
UB
8593 (coalesce_cost_edge): EH edges are costier because they needs
8594 splitting even if not critical and even more costier when there are
8595 multiple EH predecestors.
048bf48b 8596
d5c5f9ab
JH
85972009-05-02 Jan Hubicka <jh@suse.cz>
8598
8599 * except.c (remove_eh_handler_and_replace): Handle updating after
8600 removing TRY blocks.
8601
2ed1959a
EB
86022009-05-02 Eric Botcazou <ebotcazou@adacore.com>
8603
8604 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
8605
d363a7e7
SB
86062009-05-02 Steven Bosscher <steven@gcc.gnu.org>
8607
8608 * varasm.c: Do not include c-pragma.h.
8609 * attribs.c: Do not incude c-common.h.
8610
9c3d55b4
MM
86112009-05-01 Michael Matz <matz@suse.de>
8612
8613 * calls.c (initialize_argument_information): Handle SSA names like
8614 decls with a non MEM_P DECL_RTL.
8615
ea264ca5
SB
86162009-05-01 Steven Bosscher <steven@gcc.gnu.org>
8617
8618 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
8619 * ipa-utils.c: Likewise.
8620 * ipa-type-escape.c: Likewise.
8621 * cgraphunit.c Do not include c-common.h.
8622 * ipa-pure-const.c: Likewise.
8623 * tree-if-conv.c: Likewise.
8624 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
8625 * ipa-struct-reorg.c: Likewise.
8626 * tree-nomudflap.c: Likewise.
8627 * tree-ssa-structalias.c: Likewise.
8628
6c5d4d1a
SB
86292009-05-01 Steven Bosscher <steven@gcc.gnu.org>
8630
8631 * store-motion.c: Many cleanups to make this pass a first-class
8632 citizen instead of an appendix to gcse load motion. Add TODO list
8633 to make this pass faster/cleaner/better.
8634
8635 (struct ls_expr): Post gcse.c-split cleanups.
8636 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
8637 "stores" field to "avail_stores".
8638 (pre_ldst_mems): Rename to store_motion_mems.
8639 (pre_ldst_table): Rename to store_motion_mems_table.
8640 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
8641 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
8642 (ldst_entry): Rename to st_expr_entry, update users.
8643 (free_ldst_entry): Rename to free_st_expr_entry, update users.
8644 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
8645 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
8646 update caller.
6c5d4d1a
SB
8647 (first_ls_expr): Rename to first_st_expr, update users.
8648 (next_ls_expr): Rename to next_st_expr, update users.
8649 (print_ldst_list): Rename to print_store_motion_mems. Print names of
8650 fields properly for store motion instead of names inherited from load
8651 motion in gcse.c.
8652 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
8653 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
8654 are done with it.
8655
8656 (ae_kill): Rename to st_kill, update users.
8657 (ae_gen): Rename to st_avloc, update users.
8658 (transp): Rename to st_transp, update users.
8659 (pre_insert_map): Rename to st_insert_map, update users.
8660 (pre_delete_map): Rename to st_delete_map, update users.
8661 (insert_store, build_store_vectors, free_store_memory,
8662 one_store_motion_pass): Update for abovementioned changes.
8663
8664 (gcse_subst_count, gcse_create_count): Remove.
8665 (one_store_motion_pass): New statistics counters "n_stores_deleted"
8666 and "n_stores_created", local variables.
8667
8668 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
8669 use for_each_rtx.
8670
8671 (regvec, compute_store_table_current_insn): Remove.
8672 (reg_set_info, reg_clear_last_set): Remove.
8673 (compute_store_table): Use DF caches instead of local dataflow
8674 solvers.
8675
b02cec6e
JM
86762009-05-01 Joseph Myers <joseph@codesourcery.com>
8677
8678 * c-objc-common.c (c_tree_printer): Print identifiers with
8679 pp_identifier, not pp_string. Mark "({anonymous})" for
8680 translation.
8681 * c-pretty-print.c (pp_c_ws_string): New.
8682 (pp_c_cv_qualifier, pp_c_type_specifier,
8683 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
8684 pp_c_storage_class_specifier, pp_c_function_specifier,
8685 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
8686 pp_c_primary_expression, pp_c_postfix_expression,
8687 pp_c_unary_expression, pp_c_shift_expression,
8688 pp_c_relational_expression, pp_c_equality_expression,
8689 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
8690 use pp_string and pp_c_ws_string in place of pp_identifier and
8691 pp_c_identifier for non-identifiers. Mark English strings for
8692 translation.
8693 * c-pretty-print.h (pp_c_ws_string): Declare.
8694
cd533689
PP
86952009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
8696 Roland McGrath <roland@redhat.com>
8697
aa016ff7 8698 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
8699 (ENABLE_LD_BUILDID): New configuration option.
8700 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
8701 (LINK_BUILDID_SPEC): New macro.
8702 (init_spec): If defined, prepend it between LINK_EH_SPEC and
8703 link_spec.
8704 * doc/install.texi: Document --enable-linker-build-id option.
8705 * configure: Rebuild.
8706 * config.in: Rebuild.
8707
ba6adec4
AN
87082009-04-30 Adam Nemet <anemet@caviumnetworks.com>
8709
8710 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
8711 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
8712 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
8713 MIPS_GP_SAVE_AREA_SIZE.
8714 * config/mips/mips.c (struct mips_frame_info): Update comment
8715 before arg_pointer_offset and hard_frame_pointer_offset.
8716 (mips_compute_frame_info): Update diagram before function: to
8717 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
8718 indicate the position of frame_pointer_rtx with -fstack-protector and
8719 to show args_size. Don't allocate cprestore area for leaf functions
8720 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
8721 cprestore_size.
8722 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
8723
48f5b722
MM
87242009-04-30 Michael Matz <matz@suse.de>
8725
ba6adec4
AN
8726 PR tree-optimization/39955
8727 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 8728
b65d6744
DK
87292009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
8730
8731 * ira.c (setup_cover_and_important_classes): Use safe macro
8732 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
8733 directly.
8734 * genpreds.c (write_tm_preds_h): Output suitable definition of
8735 REG_CLASS_FOR_CONSTRAINT.
8736
f136c8ae
RAE
87372009-04-30 Rafael Avila de Espindola <espindola@google.com>
8738
8739 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
8740 instead of an int.
8741 * bitmap.c (bitmap_descriptor): Likewise.
8742 * ggc-common.c (loc_descriptor): Likewise.
8743 * varray.c (varray_descriptor): Likewise.
8744 * vec.c (vec_descriptor): Likewise.
8745
43fcece8 87462009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
8747
8748 * Makefile.in (dce.o): Add $(EXCEPT_H).
8749 * dce.c: Include except.h and delete redundant vector definitions.
8750 (deletable_insn_p): Return false for non-call insns that can throw
8751 if DF is running.
8752
df35c271
SB
87532009-04-30 Steven Bosscher <steven@gcc.gnu.org>
8754
8755 * gcse.c (ae_gen): Remove.
8756 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
8757 and make non-static function to make it available in store-motion.c.
8758 Update call sites with search-and-replace.
8759 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
8760 extract_mentioned_regs, extract_mentioned_regs_helper,
8761 find_moveable_store, compute_store_table, load_kills_store, find_loads,
8762 store_killed_in_insn, store_killed_after, store_killed_before,
8763 build_store_vectors, insert_insn_start_basic_block, insert-store,
8764 remove_reachable_equiv_notes, replace_store_insn, delete_store,
8765 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
8766 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
8767 * store-motion.c: ...new file. Also copy data structures from gcse.c
8768 and clean up to remove parts not used by store motion.
8769 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
8770 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
8771
f711a87a
RR
87722009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8773
8774 PR target/38571
8775 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
8776 when optimizing for size.
8777
fa5ed76e
HPN
87782009-04-30 Hans-Peter Nilsson <hp@axis.com>
8779
8780 * gcse.c (gcse_constant_p): Fix typo in last change.
8781
0acbbdb0
RAE
87822009-04-30 Rafael Avila de Espindola <espindola@google.com>
8783
8784 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
8785
82f5c05d
AK
87862009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
8787
8788 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
8789
6d8f135b
JW
87902009-04-29 James E. Wilson <wilson@codesourcery.com>
8791
8792 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
8793 CONST_HIGH_PART result.
8794
c21ca196
AS
87952009-04-29 Anatoly Sokolov <aesok@post.ru>
8796
8797 * config/avr/avr.c (initial_elimination_offset): Rename to
8798 avr_initial_elimination_offset.
8799 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
8800 change return type to bool.
8801 (avr_can_eliminate): New function.
8802 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
8803 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
8804 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 8805 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
8806 avr_initial_elimination_offset.
8807 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
8808 (avr_initial_elimination_offset): Define.
8809
2a34bece 88102009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 8811 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
8812
8813 PR rtl-optimization/39938
8814 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
8815 * cfgrtl.c: Include insn-attr.h.
8816 (rest_of_pass_free_cfg): New function.
8817 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
8818 * resource.c (init_resource_info): Remove call to df_analyze.
8819
5dc7911e
RG
88202009-04-29 Richard Guenther <rguenther@suse.de>
8821
8822 PR target/39943
8823 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
8824 allow conversion to signed integers.
8825
1fe479fd
RG
88262009-04-29 Richard Guenther <rguenther@suse.de>
8827
8828 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
8829 shifts of floating point vectors if the shift amount is
8830 a constant multiple of the element size.
8831
8e001680
AK
88322009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
8833 Michael Matz <matz@suse.de>
8834
8835 PR middle-end/39927
8836 PR bootstrap/39929
8837 * tree-outof-ssa.c (emit_partition_copy): New function.
8838 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
8839 insert_part_to_rtx_on_edge): Perform the partition base var
8840 copy using emit_partition_copy.
8841 (insert_value_copy_on_edge): Convert constants to the right mode.
8842 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
8843 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
8844
e50e3081
BS
88452009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
8846
8847 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
8848 scan backwards to try to find a constant to initialize it.
8849
4e5d521b
BS
8850 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
8851 insn before the loop_end instruction, don't look past labels.
8852
7c90021d
RG
88532009-04-29 Richard Guenther <rguenther@suse.de>
8854
8855 PR middle-end/39937
8856 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
8857 loose type conversions.
8858 (forward_propagate_addr_expr): Fix tuplification bug. Remove
8859 stmts only if there are no uses of its definition.
8860
97a988bc
BS
88612009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
8862
8863 * config/bfin/bfin.h (splitting_loops): Declare.
8864 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
8865 Reorder bit definitions to be ascending.
8866 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
8867 * config/bfin/bfin.c (splitting_loops): New variable.
8868 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
8869 (struct loop_info): Remove members INIT and LOOP_INIT.
8870 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
8871 the LSETUP sequence. Allow LC to be loaded from any register, but
8872 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
8873 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
8874 set to 1.
8875 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
8876 of reload_completed.
aa016ff7 8877
97a988bc
BS
8878 From Jie Zhang:
8879 * config/bfin/bfin.md (movsi_insn): Refine constraints.
8880
0c463e16
RAE
88812009-04-29 Rafael Avila de Espindola <espindola@google.com>
8882
8883 * Makefile.in (PLUGIN_VERSION_H): New.
8884 (OBJS-common): Remove plugin-version.o.
8885 (plugin.o): Depend on (PLUGIN_VERSION_H).
8886 (plugin-version.o): Remove.
8887 * configure: Regenerate
8888 * configure.ac: Create plugin-version.h.
8889 * gcc-plugin.h (plugin_gcc_version): Remove.
8890 (plugin_default_version_check): Change signature.
8891 * plugin-version.c: Remove.
8892 * plugin.c: Include plugin-version.h.
8893 (str_plugin_gcc_version_name): Remove.
8894 (try_init_one_plugin): Pass gcc version to plugin_init.
8895 (plugin_default_version_check): Both gcc and plugin versions are now
8896 arguments.
8897
307e7eab
BS
88982009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
8899
8900 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
8901 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
8902 Remove special case testing for last insn of inner loops. Don't fail
8903 if the loop ends with a jump, emit an extra nop instead.
307e7eab 8904
c5d96723
BS
8905 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
8906 DREGS rather than comparing directly. Remove code that tries to
8907 account for latencies.
8908
de0b4ad5
RG
89092009-04-29 Richard Guenther <rguenther@suse.de>
8910
8911 PR tree-optimization/39941
8912 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
8913 eliminating an indirect call.
8914
3a19701a
RG
89152009-04-29 Richard Guenther <rguenther@suse.de>
8916
8917 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
8918 parameter. Allow invariants as base if !require_lvalue.
8919 (verify_gimple_assign_single): Adjust.
8920
a0a31d1e
BS
89212009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
8922
8923 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
8924 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
8925 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
8926 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
8927 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
8928 a VEC_SELECT.
aa016ff7
UB
8929 * config/bfin/bfin.c (bfin_expand_builtin,
8930 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 8931
795bd26a
RG
89322009-04-28 Richard Guenther <rguenther@suse.de>
8933
8934 * tree-vect-loop.c (get_initial_def_for_induction): Use
8935 correct types for pointer increment.
8936
04be270f
KG
89372009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8938
8939 * toplev.c (print_version): Update GMP version string calculation.
8940
e1a3b85c
EB
89412009-04-28 Eric Botcazou <ebotcazou@adacore.com>
8942
8943 PR rtl-optimization/39938
8944 * resource.c (init_resource_info): Add call to df_analyze.
8945
8224166e
UB
89462009-04-28 Uros Bizjak <ubizjak@gmail.com>
8947
8948 * config/alpha/alpha.md (usegp): Cast the result of
8949 alpha_find_lo_sum_using_gp to enum attr_usegp.
8950 * config/alpha/alpha.c (override_options): Remove end-of-structure
8951 marker element from cpu_table. Use array size of cpu_table to handle
8952 -mcpu and -mtune options.
8953 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
8954
c5f0fe67
JM
89552009-04-28 Joseph Myers <joseph@codesourcery.com>
8956
8957 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
8958 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
8959 tune_32 and tune_64.
8960 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
8961 support on PowerPC.
8962 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
8963 * config/rs6000/option-defaults.h: ... here. New file.
8964 (OPT_64, OPT_32): Define.
8965 (MASK_64BIT): Define to 0 if not already defined.
8966 (OPT_ARCH64, OPT_ARCH32): Define.
8967 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
8968 and tune_64.
8969
0c48a567
RR
89702009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8971
8972 * config/arm/arm.c (arm_override_options): Emit error on using
8973 fpa with AAPCS.
8974
f1028b9d
UB
89752009-04-28 Uros Bizjak <ubizjak@gmail.com>
8976
8977 PR rtl-optimization/39914
8978 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
8979 registers for allocnos created from user-defined variables only
8980 when not optimizing.
8981
e0dd989a
RG
89822009-04-28 Richard Guenther <rguenther@suse.de>
8983
8984 PR middle-end/39937
8985 * fold-const.c (fold_binary): Use distribute_real_division only
8986 on float types.
8987
9a17c91d
SE
89882009-04-28 Steve Ellcey <sje@cup.hp.com>
8989
8990 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
8991 add hpux-stdint.h to tm_file.
8992 (hppa[12]*-*-hpux11*): Ditto.
8993 (ia64*-*-hpux*): Ditto.
8994 * config/hpux-stdint.h: New.
60839f5d 8995 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 8996 __STDC_EXT__ for all compiles.
60839f5d
EB
8997 * config/pa/pa-hpux.h: Ditto.
8998 * config/pa/pa-hpux10.h: Ditto.
8999 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 9000
af04e659
CM
90012009-04-28 Catherine Moore <clm@codesourcery.com>
9002
9003 * debug.h (set_name): Add comment.
9004
04ef80ce
AP
90052009-04-28 Andrew Pinski <pinskia@gmail.com>
9006
9007 PR target/39929
9008 * config/darwin.c (machopic_gen_offset): Check
9009 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
9010 * config/arm/arm.c (require_pic_register): Likewise.
9011
65ad77af
PB
90122009-04-28 Paolo Bonzini <bonzini@gnu.org>
9013
8224166e
UB
9014 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
9015 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
9016 m32c_promote_prototypes): Delete.
65ad77af 9017
1b15a008
MM
90182009-04-28 Michael Matz <matz@suse.de>
9019
9020 PR middle-end/39922
9021 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
9022 constants.
9023
7569a6cc
RG
90242009-04-28 Richard Guenther <rguenther@suse.de>
9025
f1028b9d 9026 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 9027
ead204d9
RR
90282009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9029
9030 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
9031 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
9032 * config/arm/arm-tune.md: Regenerate.
9033
f2c45f08 90342009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 9035
f2c45f08
AM
9036 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
9037 block if there are complex incoming edges.
9038 (sel_merge_blocks): Remove useless assert.
9039 (sel_redirect_edge_and_branch): Check that edge was redirected.
9040 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
9041 (sel_find_rgns): Delete declaration.
9042 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
9043 the region when it is not a preheader.
9044
7a00d767
UB
90452009-04-28 Uros Bizjak <ubizjak@gmail.com>
9046
9047 PR c/39323
9048 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
9049
448ee662
RG
90502009-04-28 Richard Guenther <rguenther@suse.de>
9051
9052 * tree.h (SSA_NAME_VALUE): Remove.
9053 (struct tree_ssa_name): Remove value_handle member.
9054 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
9055 array for jump threading.
9056 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
9057 SSA_NAME_VALUEs.
9058 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
9059 * tree-flow.h (threadedge_initialize_values): Declare.
9060 (threadedge_finalize_values): Likewise.
9061 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
9062 (SSA_NAME_VALUE): Define.
9063 (threadedge_initialize_values): New function.
9064 (threadedge_finalize_values): Likewise.
9065 * tree-ssa-dom.c (ssa_name_values): New global variable.
9066 (SSA_NAME_VALUE): Define.
f1028b9d 9067 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 9068
8644a673
IR
90692009-04-28 Ira Rosen <irar@il.ibm.com>
9070
9071 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
9072 Use REPORT_VECTORIZED_LOCATIONS instead
9073 REPORT_VECTORIZED_LOOPS.
9074 * tree-vectorizer.c (vect_verbosity_level): Make static.
9075 (vect_loop_location): Rename to vect_location.
9076 (vect_set_verbosity_level): Update comment.
9077 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
9078 and vect_location.
9079 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
9080 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
9081 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
9082 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
9083 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 9084 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 9085 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
9086 REPORT_UNVECTORIZED_LOCATIONS.
9087 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
9088 and vect_used_in_loop and to vect_unused_in_scope and
9089 vect_used_in_scope.
9090 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
9091 (vect_verbosity_level): Remove declaration.
9092 (vect_analyze_operations): Likewise.
9093 (vect_analyze_stmt): Declare.
9094 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
9095 REPORT_UNVECTORIZED_LOCATIONS.
9096 (vect_get_loop_niters): Fix indentation.
9097 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
9098 (vect_analyze_loop_operations): New function.
9099 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
9100 vect_analyze_operations.
9101 (vect_is_simple_reduction): Use new names.
9102 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
9103 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
9104 to specify whether the data references can be a part of interleaving
9105 chain.
8644a673
IR
9106 (vect_analyze_data_ref_dependence): Use new names.
9107 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
9108 (vect_create_addr_base_for_vector_ref): Remove redundant code.
9109 * tree-vect-patterns.c (widened_name_p): Use new names.
9110 (vect_recog_dot_prod_pattern): Likewise.
9111 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
9112 (process_use, vect_mark_stmts_to_be_vectorized,
9113 vect_model_simple_cost, vect_model_store_cost,
9114 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
9115 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
9116 vectorizable_operation, vectorizable_type_demotion,
9117 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
9118 vectorizable_condition): Likewise.
9119 (vect_analyze_operations): Split into vect_analyze_loop_operations
9120 and ...
9121 (vect_analyze_stmt): ... new function.
9122 (new_stmt_vec_info): Use new names.
9123 (vect_is_simple_use): Use new names and fix comment.
9124 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
9125 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
9126
b91322f2
UB
91272009-04-28 Uros Bizjak <ubizjak@gmail.com>
9128
9129 PR target/39911
9130 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
9131 and integer modes for x87 operands. Do not ICE for unsupported size,
9132 generate error instead. Generate error for unsupported operand types.
9133 ['z']: Do not handle HImode memory operands specially. Warning
9134 for floating-point operands. Fallthru to 'Z' for unsupported operand
9135 types. Do not ICE for unsupported size, generate error instead.
9136 (output_387_binary_op): Use %Z to output operands.
9137 (output_fp_compare): Ditto.
9138 (output_387_reg_move): Ditto.
9139
b2ed71b6
BE
91402009-04-28 Ben Elliston <bje@au.ibm.com>
9141
9142 PR c++/35652
9143 Revert:
9144
9145 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9146
9147 * builtins.c (c_strlen): Do not warn here.
9148 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
9149 * c-common.c (pointer_int_sum): Take an explicit location.
9150 Warn about offsets out of bounds.
9151 * c-common.h (pointer_int_sum): Adjust declaration.
9152
81f40b79
ILT
91532009-04-27 Ian Lance Taylor <iant@google.com>
9154
9155 * collect2.c (is_ctor_dtor): Change type of ret field in struct
9156 names to symkind.
9157 * dce.c (run_fast_df_dce): Change type of old_flags to int.
9158 * df-core.c (df_set_flags): Change return type to int. Change
9159 type of old_flags to int.
9160 (df_clear_flags): Likewise.
9161 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
9162 (df_get_conditional_uses): Likewise.
9163 * df.h (df_set_flags, df_clear_flags): Update declarations.
9164 * dwarf2out.c (struct indirect_string_node): Change type of form
9165 field to enum dwarf_form.
9166 (AT_string_form): Change return type to enum dwarf_form.
9167 * fixed-value.c (fixed_compare): Add cast to enum type.
9168 * fwprop.c (update_df): Change 0 to VOIDmode.
9169 * gensupport.c: Change 0 to UNKNOWN.
9170 * gimple.h (gimple_cond_code): Add cast to enum type.
9171 * haifa-sched.c (reemit_notes): Add cast to enum type.
9172 * hooks.c (hook_int_void_no_regs): Remove function.
9173 * hooks.h (hook_int_void_no_regs): Remove declaration.
9174 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 9175 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
9176 * real.c (real_arithmetic): Add cast to enum type.
9177 (real_compare): Likewise.
9178 * target.h (struct gcc_target): Change return type of
9179 branch_target_register_class to enum reg_class.
9180 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
9181 default_branch_target_register_class.
7a00d767 9182 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 9183 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 9184 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
9185 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
9186 cast to int.
9187 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
9188 ERROR_MARK.
9189 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
9190 vect_uninitialized_def. Change 0 to ERROR_MARK.
9191 * tree-vect-stmts.c (supportable_widening_operation): Don't
9192 initialize icode1 and icode2.
7a00d767 9193 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
9194 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
9195 and to STD_C89.
9196 (cmn_err_flag_specs): Change 0 to STD_C89.
9197 (cmn_err_char_table): Likewise.
9198 * config/arm/arm.c (get_arm_condition_code): Change type of code
9199 to enum arm_cond_code.
9200 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
9201 (IWMMXT_BUILTIN2): Likewise.
9202 (neon_builtin_type_bits): Don't define typedef.
9203 (neon_builtin_datum): Change type of bits field to int.
9204 (arm_expand_neon_args): Add cast to enum type.
9205 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
9206 TLS_MODEL_NONE.
9207 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
9208 casts to enum type.
9209 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
9210 MIPS_FP_COND_f.
9211 * config/mips/mips.md (jal_macro): Return enum constant.
9212 (single_insn): Likewise.
9213 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
9214 CODE_FOR_nothing.
9215 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9216 casts to enum type.
9217 * config/s390/s390.c (s390_tune_flags): Change type to int.
9218 (s390_arch_flags): Likewise.
7a00d767 9219 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
9220 * config/s390/s390.h (s390_tune_flags): Update declaration.
9221 (s390_arch_flags): Likewise.
9222 * config/sh/sh.c (prepare_move_operands): Compare
9223 tls_symbolic_operand result with enum constant.
9224 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
9225 (sh_expand_prologue): Add cast to enum type.
9226 (sh_expand_epilogue): Likewise.
9227 (tls_symbolic_operand): Change return type to enum tls_model.
9228 (fpscr_set_from_mem): Add cast to enum type.
9229 (legitimize_pic_address): Compare tls_symbolic_operand result with
9230 enum constant.
9231 (sh_target_reg_class): Change return type to enum reg_class.
9232 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
9233 PROCESSOR_xxx.
7a00d767
UB
9234 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
9235 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
9236 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
9237 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
9238 (delayed_branch, tls_call_delay): Likewise.
9239 (eligible_for_sibcall_delay): Likewise.
9240 (eligible_for_return_delay): Likewise.
9241 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
9242 (spu_expand_builtin_1): Likewise.
9243
9244 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
9245 for all types of conversions.
9246 (output_init_element): Issue -Wc++-compat warning if needed when
9247 initializing a bitfield with enum type.
9248 * c-parser.c (c_parser_expression): Set original_type to
9249 original_type of right hand operand of comman operator.
9250
e4ae5e77
RW
92512009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9252
9253 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
9254 grammar nits.
7a00d767 9255 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
9256 * doc/cpp.texi (Standard Predefined Macros)
9257 (Implementation-defined behavior): Likewise.
7a00d767 9258 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
9259 * doc/gimple.texi (GIMPLE Exception Handling)
9260 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 9261 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
9262 * doc/invoke.texi (Warning Options, Optimize Options)
9263 (AVR Options, Darwin Options): Likewise.
9264 (Optimize Options): Reformulate -fwhole-program description.
9265 * doc/loop.texi (Lambda): Likewise.
9266 * doc/md.texi (Output Template, Define Constraints)
9267 (Standard Names, Insn Splitting): Likewise.
9268 * doc/options.texi (Option properties): Likewise.
9269 * doc/passes.texi (Tree-SSA passes): Likewise.
9270 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
9271 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
9272 (File Names and DBX): Likewise.
9273 * doc/trouble.texi (Incompatibilities): Likewise.
9274
1883802f 92752009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
9276
9277 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
9278 instruction is correct.
9279
1883802f 92802009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
9281
9282 Allow non-constant arguments to conversion intrinsics.
9283 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
9284 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
9285 * spu.c (print_operand): Handle 'v' and 'w'.
9286 (exp2_immediate_p, spu_gen_exp2): Define.
9287 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
9288 spu_convtf_1): Update parameter descriptions.
7a00d767 9289 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
9290 * constraints.md ('v', 'w'): New.
9291 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
9292 Remove.
9293 (i2f, I2F): New define_mode_attr.
9294 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
9295 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
9296 fixuns_truncv4sfv4si2): Update to use mode attribute.
9297 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
9298 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
9299 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
9300 patterns for combine.
9301
5f39ad47
SB
93022009-04-27 Steven Bosscher <steven@gcc.gnu.org>
9303
9304 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
9305 (cprop, hoist, pre, store_motion): New debug counters.
9306 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
9307 is not an RTL pass anymore.
9308 (pass_profiling): Remove extern decl for pass removed in 2005.
9309 (pass_gcse, pass_jump_bypass): Remove.
9310 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
9311 to 0 for clean state.
9312 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
9313 * cse.c (gate_handle_cse_after_global_opts,
9314 rest_of_handle_cse_after_global_opts): New functions.
9315 (pass_cse_after_global_opts): New pass, does local CSE.
9316 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
9317 (TV_CPROP): New timevar.
9318 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
9319 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
9320 (gcse_main, recompute_all_luids): Remove.
9321 (compute_hash_table_work): Call max_reg_num instead of reading
9322 max_gcse_regno.
9323 (cprop_jump): Don't set run_jump_opt_after_gcse.
9324 (constprop_register): Always allow to alter jumps.
9325 (cprop_insn): Likewise.
9326 (do_local_cprop): Likewise.
9327 (local_cprop_pass): Likewise. Return non-zero if something changed.
9328 (cprop): Remove function, fold interesting bits into one_cprop_pass.
9329 (find_implicit_sets): Add note about missed optimization opportunity.
9330 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
9331 pass_rtl_cprop execute function.
9332 Don't bother tracking the pass number, each pass gets its own dumpfile
9333 now anyway.
9334 Always allow to alter jumpsand bypass jumps.
9335 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
9336 will just find no suitable set.
9337 (pre_edge_insert): Fix dumping, this function is for PRE only.
9338 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
9339 pass_rtl_pre execute function.
9340 (hoist_code): Return non-zero if something changed. Keep track of
9341 substitutions and insertions for statistics gathering similar to PRE.
9342 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
9343 called from the pass_rtl_hoist execute function. Show pass statistics.
9344 (compute_store_table): Use max_reg_num directly instead of using the
9345 formerly global max_gcse_regno.
9346 (build_store_vectors): Likewise.
9347 (replace_store_insn): Fix dumping.
9348 (store_motion): Rename to ...
9349 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
9350 pass, called from the pass_rtl_store_motion execute function. Keep
9351 track of substitutions and insertions for statistics gathering similar
9352 to PRE.
9353 (bypass_jumps): Remove, fold interesting bits into ...
9354 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
9355 from the pass_rtl_cprop execute function.
9356 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
9357 pass_jump_bypass): Remove.
9358 (gate_handle_gcse, rest_of_handle_gcse): Remove.
9359 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
9360 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
9361 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
9362 (gate_rtl_store_motion, execute_rtl_store_motion,
9363 pass_rtl_store_motion): New.
9364 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
9365 make it clear that -fcse-skip-blocks is a no-op for backward compat.
9366 * passes.c (init_optimization_passes): Remove pass_gcse and
9367 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
9368 and cse_after_global_opts in place of pass_gcse. Schedule cprop
9369 instead of pass_jump_bypass.
9370
c685de4a
RG
93712009-04-27 Richard Guenther <rguenther@suse.de>
9372
9373 PR middle-end/39928
9374 * gimplify.c (gimplify_expr): If we are required to create
9375 a temporary make sure it ends up as register.
9376
72d41f29
L
93772009-04-27 H.J. Lu <hongjiu.lu@intel.com>
9378
9379 PR target/39903
9380 * config/i386/i386.c (construct_container): Don't call
9381 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
9382 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
9383
e97809c6
MM
93842009-04-27 Michael Matz <matz@suse.de>
9385
9386 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
9387 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
9388 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
9389 (dump_replaceable_exprs): Take a bitmap.
9390 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
9391 array.
9392 (expand_gimple_basic_block): Likewise.
9393 * tree-ssa-ter.c (struct temp_expr_table_d): Make
9394 replaceable_expressions member a bitmap.
9395 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
9396 (mark_replaceable): Likewise.
9397 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
9398 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
9399
211ca15c
RG
94002009-04-27 Richard Guenther <rguenther@suse.de>
9401
9402 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
9403 (verify_stmts): Dispatch to gimple/type verification code.
9404 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
9405 issue with call argument types.
9406
fca5f3d1
MM
94072009-04-27 Michael Matz <matz@suse.de>
9408
9409 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
9410 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
9411 to above.
9412
a1fa3e79 94132009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 9414 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
9415
9416 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
9417 a label's basic block.
9418 (mark_target_live_regs): Tidy and rework obsolete comments.
9419 Change back DF problem to LIVE. If a label starts a basic block,
9420 assume that all registers that used to be live then still are.
9421 (init_resource_info): If a label starts a basic block, set its
9422 BLOCK_FOR_INSN accordingly.
9423 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
9424
33b223c0
RG
94252009-04-27 Richard Guenther <rguenther@suse.de>
9426
9427 * tree-flow-inline.h (function_ann): Remove.
9428 (get_function_ann): Likewise.
9429 * tree-dfa.c (create_function_ann): Remove.
9430 * tree-flow.h (struct static_var_ann_d): Remove.
9431 (struct function_ann_d): Likewise.
9432 (union tree_ann_d): Remove fdecl member.
9433 (function_ann_t): Remove.
9434 (function_ann, get_function_ann, create_function_ann): Remove
9435 declarations.
9436
e3136fa2
UB
94372009-04-27 Uros Bizjak <ubizjak@gmail.com>
9438
9439 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
9440
f87c9042
JH
94412009-04-27 Jan Hubicka <jh@suse.cz>
9442
9443 * ipa-pure-const.c (struct funct_state_d): New fields
9444 state_previously_known, looping_previously_known; remove
9445 state_set_in_source.
9446 (analyze_function): Use new fields.
9447 (propagate): Avoid assumption that state_set_in_source imply
9448 nonlooping.
9449
9450 * tree-ssa-loop-niter.c (finite_loop_p): New function.
9451 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
9452 * cfgloop.h (finite_loop_p): Declare.
9453
33abd718
MM
94542009-04-26 Michael Matz <matz@suse.de>
9455
e3136fa2 9456 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 9457
ddc34084
MM
94582009-04-26 Michael Matz <matz@suse.de>
9459
9460 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
9461 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
9462 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
9463 pass_mark_used_blocks): Remove.
9464 * tree-optimize.c (pass_free_datastructures,
9465 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
9466 * passes.c (init_optimization_passes): Don't call
9467 pass_mark_used_blocks, remove dead code.
9468
1fec7ed4
L
94692009-04-26 H.J. Lu <hongjiu.lu@intel.com>
9470
9471 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
9472 * tree-ssa-live.h (register_ssa_partition): Likewise.
9473
4e3825db
MM
94742009-04-26 Michael Matz <matz@suse.de>
9475
9476 Expand from SSA.
9477 * builtins.c (fold_builtin_next_arg): Handle SSA names.
9478 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
9479 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
9480 SSA names.
9481 (compare_pairs): Swap cost comparison.
9482 (coalesce_ssa_name): Don't use change_partition_var.
9483 * tree-nrv.c (struct nrv_data): Add modified member.
9484 (finalize_nrv_r): Set it.
9485 (tree_nrv): Use it to update statements.
9486 (pass_nrv): Require PROP_ssa.
9487 * tree-mudflap.c (mf_decl_cache_locals,
9488 mf_build_check_statement_for): Use make_rename_temp.
9489 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
9490 * alias.c (find_base_decl): Handle SSA names.
9491 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
9492 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
9493 * rtl.h (set_reg_attrs_for_parm): Declare.
9494 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
9495 to "optimized", remove unused locals at finish.
9496 (execute_free_datastructures): Make global, call
9497 delete_tree_cfg_annotations.
9498 (execute_free_cfg_annotations): Don't call
9499 delete_tree_cfg_annotations.
9500
9501 * ssaexpand.h: New file.
9502 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 9503 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
9504 (expand_expr_real_1): Expand SSA names.
9505 * cfgexpand.c (toplevel): Include ssaexpand.h.
9506 (SA): New global variable.
9507 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
9508 (SSAVAR): New macro.
9509 (set_rtl): New helper function.
9510 (add_stack_var): Deal with SSA names, use set_rtl.
9511 (expand_one_stack_var_at): Likewise.
9512 (expand_one_stack_var): Deal with SSA names.
9513 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
9514 before unique numbers.
9515 (expand_stack_vars): Use set_rtl.
9516 (expand_one_var): Accept SSA names, add asserts for them, feed them
9517 to above subroutines.
9518 (expand_used_vars): Expand all partitions (without default defs),
9519 then only the local decls (ignoring those expanded already).
9520 (expand_gimple_cond): Remove edges when jumpif() expands an
9521 unconditional jump.
9522 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
9523 or remove abnormal edges. Ignore insns setting the LHS of a TERed
9524 SSA name.
9525 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
9526 members of SA; deal with PARM_DECL partitions here; expand
9527 all PHI nodes, free tree datastructures and SA. Commit instructions
9528 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
9529 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
9530 info and statements at start, collect garbage at finish.
9531 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
9532 (VAR_ANN_PARTITION) Remove.
9533 (change_partition_var): Don't declare.
9534 (partition_to_var): Always return SSA names.
9535 (var_to_partition): Only accept SSA names.
9536 (register_ssa_partition): Only check argument.
9537 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
9538 member.
9539 (delete_var_map): Don't free it.
9540 (var_union): Only accept SSA names, simplify.
9541 (partition_view_init): Mark only useful SSA names as used.
9542 (partition_view_fini): Only deal with SSA names.
9543 (change_partition_var): Remove.
9544 (dump_var_map): Use ssa_name instead of partition_to_var member.
9545 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
9546 basic blocks.
9547 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
9548 (struct _elim_graph): New member const_dests; nodes member vector of
9549 ints.
9550 (set_location_for_edge): New static helper.
9551 (create_temp): Remove.
9552 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 9553 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
9554 (new_elim_graph): Allocate const_dests member.
9555 (clean_elim_graph): Truncate const_dests member.
9556 (delete_elim_graph): Free const_dests member.
9557 (elim_graph_size): Adapt to new type of nodes member.
9558 (elim_graph_add_node): Likewise.
9559 (eliminate_name): Likewise.
9560 (eliminate_build): Don't take basic block argument, deal only with
9561 partition numbers, not variables.
9562 (get_temp_reg): New static helper.
9563 (elim_create): Use it, deal with RTL temporaries instead of trees.
9564 (eliminate_phi): Adjust all calls to new signature.
9565 (assign_vars, replace_use_variable, replace_def_variable): Remove.
9566 (rewrite_trees): Only do checking.
9567 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
9568 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
9569 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
9570 contains_tree_r, MAX_STMTS_IN_LATCH,
9571 process_single_block_loop_latch, analyze_edges_for_bb,
9572 perform_edge_inserts): Remove.
9573 (expand_phi_nodes): New global function.
9574 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
9575 functions, initialize new parameter, remember partitions having a
9576 default def.
9577 (finish_out_of_ssa): New global function.
9578 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
9579 don't reset in_ssa_p here, don't disable TER when mudflap.
9580 (pass_del_ssa): Remove.
9581 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
9582 partition members.
9583 (execute_free_datastructures): Declare.
9584 * Makefile.in (SSAEXPAND_H): New variable.
9585 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
9586 * basic-block.h (commit_one_edge_insertion): Declare.
9587 * passes.c (init_optimization_passes): Move pass_nrv and
9588 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
9589 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
9590 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
9591 (redirect_branch_edge): Deal with super block when expanding, split
9592 out jump patching itself into ...
9593 (patch_jump_insn): ... here, new static helper.
9594
17c665a9
MM
95952009-04-26 Michael Matz <matz@suse.de>
9596
9597 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
9598 beyond num_ssa_names.
9599 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
9600 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
9601
92061771
JJ
96022009-04-26 Jakub Jelinek <jakub@redhat.com>
9603
ce372372
JJ
9604 PR inline-asm/39543
9605 * fwprop.c (forward_propagate_asm): New function.
9606 (forward_propagate_and_simplify): Propagate also into __asm, if it
9607 doesn't increase the number of referenced registers.
9608
92061771
JJ
9609 PR c/39889
9610 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
9611
96122009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
9613
9614 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
9615 note_nonlocal_vla_type for nonlocal VLAs.
9616 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
9617 contains_remapped_vars, remap_vla_decls): New functions.
9618 (convert_nonlocal_reference_stmt): If not optimizing, call
9619 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
9620 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
9621 if it wasn't found in var_map.
9622 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
9623 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
9624 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
9625 declare_vars.
9626 * gimplify.c (nonlocal_vlas): New variable.
9627 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
9628 referenced VLAs.
9629 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 9630
4561e242
JJ
9631 * dwarf2out.c (loc_descr_plus_const): New function.
9632 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
9633 mem_loc_descriptor, loc_descriptor_from_tree_1,
9634 descr_info_loc, gen_variable_die): Use it.
9635
a9548ddf
JJ
9636 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
9637 !TREE_STATIC VAR_DECLs.
9638 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
9639 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
9640 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
9641 DECL_BY_REFERENCE is valid.
9642 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
9643 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
9644 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
9645 Copy DECL_BY_REFERENCE.
9646 (struct nesting_copy_body_data): New type.
9647 (nesting_copy_decl): New function.
9648 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
9649 if they have variable length.
9650
10555d08
MM
96512009-04-26 Michael Matz <matz@suse.de>
9652
9653 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
9654 mark new temporaries for renaming.
9655
e11187cc
JM
96562009-04-26 Joseph Myers <joseph@codesourcery.com>
9657
9658 PR c/39581
9659 * c-decl.c (global_bindings_p): Return negative value.
9660 (c_variable_size): New. Based on variable_size from
9661 stor-layout.c.
9662 (grokdeclarator): Call c_variable_size not variable_size.
9663
f6a51d31
UB
96642009-04-26 Uros Bizjak <ubizjak@gmail.com>
9665
9666 * config/i386/i386.c (print_operand) ['z']: Fix typo.
9667
4b97723d
KT
96682009-04-26 Kai Tietz <kai.tietz@onevision.com>
9669
9670 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
9671 Redefine it to just use mingw/include.
9672 (ASM_SPEC): Rules for -m32 and -m64.
9673 (LINK_SPEC): Use Likewise.
9674 (SPEC_32): New define.
9675 (SPEC_64): Likewise.
9676 (SUB_LINK_SPEC): Likewise.
9677 (MULTILIB_DEFAULTS): New define.
9678 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
9679 Add multilib options.
9680 (MULTILIB_DIRNAMES): Likewise.
9681 (MULTILIB_OSDIRNAMES): Likewise.
9682 (LIBGCC): Likewise.
9683 (INSTALL_LIBGCC): Likewise.
9684
991d6621
JM
96852009-04-26 Joseph Myers <joseph@codesourcery.com>
9686
9687 PR c/39556
9688 * c-tree.h (enum c_inline_static_type): New.
9689 (record_inline_static): Declare.
9690 * c-decl.c (struct c_inline_static, c_inline_statics,
9691 record_inline_static, check_inline_statics): New.
9692 (pop_file_scope): Call check_inline_statics.
9693 (start_decl): Call record_inline_static instead of pedwarning
9694 directly for static in inline function.
9695 * c-typeck.c (build_external_ref): Call record_inline_static
9696 instead of pedwarning directly for static referenced in inline
9697 function.
9698
4a81774c
SB
96992009-04-26 Steven Bosscher <steven@gcc.gnu.org>
9700
9701 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
9702 not new but only being rescanned.
9703 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
9704 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
9705 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
9706 record_set_info, compute_set, grealloc): Remove.
9707 (recompute_all_luids): New function.
9708 (gcse_main): Don't compute sets, and don't do related memory
9709 allocations/free-ing. If something changed before the end of the
9710 pass, update LUIDs using recompute_all_luids.
9711 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
9712 (free_gcse_mem): Don't free it either.
9713 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
9714 Use the df insn LUIDs.
9715 (load_killed_in_block): Likewise.
9716 (compute_hash_table_work): Don't compute reg_set_in_block.
9717 (compute_transp): Use DF_REG_DEF_CHAINs.
9718 (local_cprop_pass): Don't use compute_sets and related functions.
9719 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
9720 Use get_max_uid() instead of max_cuid.
9721 (insert_insn_end_basic_block, pre_insert_copy_insn,
9722 update_ld_motion_stores): Don't try to
9723 keep reg_set tables up to date.
9724 (pre_insert_copies): Use df insn LUIDs.
9725 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
9726 (reg_set_info): Don't use extra bitmap argument.
9727 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
9728 information to compute regs_set_in_block.
9729 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
9730 (bypass_jumps): Don't use compute_sets and friends.
9731
e8f99a9d
RW
97322009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9733
9734 PR testsuite/39710
9735 * opts.c (undocumented_msg): Do not leave blank even with
9736 ENABLE_CHECKING.
9737
6895bac8
JM
97382009-04-25 Joseph Myers <joseph@codesourcery.com>
9739
9740 * c-decl.c (build_enumerator): Allow values folding to integer
9741 constants but not integer constant expressions with a pedwarn if
9742 pedantic.
9743
24070fcb
JM
97442009-04-25 Joseph Myers <joseph@codesourcery.com>
9745
9746 PR c/39582
9747 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
9748 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
9749 type is an integer constant.
9750
d6d89aa1
UB
97512009-04-25 Uros Bizjak <ubizjak@gmail.com>
9752
9753 PR target/39897
9754 * config/i386/i386.c (print_operand) ['z']: Revert handling of
9755 HImode operands.
9756
92f6fd0b
JM
97572009-04-25 Joseph Myers <joseph@codesourcery.com>
9758
9759 PR c/39564
9760 * c-decl.c (grokdeclarator): Diagnose declarations of functions
9761 with variably modified return type and no storage class
9762 specifiers, except for the case of nested functions. Distinguish
9763 extern declarations of functions with variably modified return
9764 types from those of objects with variably modified types.
9765
a3710436
JH
97662009-04-25 Jan Hubicka <jh@suse.cz>
9767
9768 * tree.c (list_equal_p): New function.
9769 * tree.h (list_equal_p): Declare.
9770 * coretypes.h (edge_def, edge, const_edge, basic_block_def
9771 basic_block_def, basic_block, const_basic_block): New.
9772 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
9773 (redirect_eh_edge): New function.
9774 (make_eh_edge_update_phi): EH edges are not abnormal.
9775 * except.c: Include tree-flow.h.
9776 (list_match): New function.
9777 (eh_region_replaceable_by_p): New function.
9778 (replace_region): New function.
9779 (hash_type_list): New function.
9780 (hash_eh_region): New function.
9781 (eh_regions_equal_p): New function.
9782 (merge_peers): New function.
9783 (remove_unreachable_regions): Verify EH tree when checking;
9784 merge peers.
9785 (copy_eh_region_1): New function.
9786 (copy_eh_region): New function.
9787 (push_reachable_handler): New function.
9788 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
9789 regions without label but with live RESX.
9790 * except.h (redirect_eh_edge_to_label): New.
9791 * tree-flow.h (redirect_eh_edge): New.
9792 * coretypes.h (edge_def, edge, const_edge, basic_block_def
9793 basic_block_def, basic_block, const_basic_block): Remove.
9794 * Makefile.in (except.o): Add dependency on tree-flow.h
9795 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
9796 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
9797 Remove.
9798
3764d512
EB
97992009-04-25 Eric Botcazou <ebotcazou@adacore.com>
9800
9801 PR bootstrap/39645
9802 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
9803 on the destination of memcpy.
9804
1c62e8f2
PB
98052009-04-25 Paolo Bonzini <bonzini@gnu.org>
9806
9807 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
9808 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
9809 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
9810
496a4ef5
JH
98112009-04-25 Jan Hubicka <jh@suse.cz>
9812
9813 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
9814 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
9815 to be reached by different label than left.
9816 (update_eh_edges): Update comment; remove edge_to_remove if possible
9817 and return true if suceeded.
9818 (cleanup_empty_eh): Accept sharing map; handle shared regions.
9819 (cleanup_eh): Compute sharing map.
9820 * except.c (remove_eh_handler_and_replace): Add argument if we should
9821 update regions.
9822 (remove_unreachable_regions): Update for label sharing.
9823 (label_to_region_map): Likewise.
9824 (get_next_region_sharing_label): New function.
9825 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
9826 prev_try pointers.
9827 (remove_eh_handler): Update.
9828 (remove_eh_region_and_replace_by_outer_of): New function.
9829 * except.h (struct eh_region): Add next_region_sharing_label.
9830 (remove_eh_region_and_replace_by_outer_of,
9831 get_next_region_sharing_label): Declare.
9832 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
9833
98342009-04-25 Jan Hubicka <jh@suse.cz>
9835
9836 * tree-cfg.c (split_critical_edges): Split also edges where we can't
9837 insert code even if they are not critical.
9838
98392009-04-25 Jan Hubicka <jh@suse.cz>
9840
9841 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
9842 (gimple_can_remove_branch_p): EH edges won't remove branch by
9843 redirection.
9844 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
9845 updating of non-abnormal EH edges.
9846 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
9847 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
9848 (split_critical_edges): Split also edges where emitting code on them
9849 will lead to splitting later.
9850
a3a5e3d1
UB
98512009-04-25 Uros Bizjak <ubizjak@gmail.com>
9852 H.J. Lu <hongjiu.lu@intel.com>
9853
9854 PR target/39590
9855 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
9856 the configured assembler supports fildq and fistpq mnemonics.
9857 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
9858 * configure: Regenerated.
9859 * config.in: Ditto.
9860
9861 * config/i386/i386.c (print_operand): Handle 'Z'.
9862 ['z']: Remove handling of special fild/fist suffixes.
9863 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
9864 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
9865 suffix of fild insn.
9866 (*floatsi<mode>2_vector_mixed): Ditto.
9867 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
9868 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
9869 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
9870 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
9871 * config/i386/gas.h (GAS_MNEMONICS): Remove.
9872
23750d7f
BE
98732009-04-25 Ben Elliston <bje@au.ibm.com>
9874
9875 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
9876 the source of a set operation.
9877
e6ff3083
AS
98782009-04-25 Anatoly Sokolov <aesok@post.ru>
9879
9880 * target.h (struct gcc_target): Add case_values_threshold field.
9881 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
9882 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
9883 * targhooks.c (default_case_values_threshold): New function.
9884 * targhooks.h (default_case_values_threshold): Declare function.
9885 * stmt.c (expand_case): Use case_values_threshold target hook.
9886 * expr.h (case_values_threshold): Remove declartation.
9887 * expr.c (case_values_threshold): Remove function.
9888 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
9889
9890 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
9891 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
9892 (avr_case_values_threshold): Declare as static.
9893 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
9894
9895 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
9896 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
9897 (mn10300_case_values_threshold): New function.
9898
569c72fc
L
98992009-04-24 H.J. Lu <hongjiu.lu@intel.com>
9900
9901 * ira.c (setup_cover_and_important_classes): Add enum cast.
9902
ff3cb468
VM
99032009-04-24 Vladimir Makarov <vmakarov@redhat.com>
9904
9905 * genpreds.c (write_enum_constraint_num): Output definition of
9906 CONSTRAINT_NUM_DEFINED_P macro.
9907 * ira.c (setup_cover_and_important_classes): Use
9908 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
9909
4f7be849
DD
99102009-04-24 DJ Delorie <dj@redhat.com>
9911
9912 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
9913 __SH2A_SINGLE_ONLY__ also.
9914
735b94a7
SE
99152009-04-24 Steve Ellcey <sje@cup.hp.com>
9916
9917 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
9918 (movdf_internal): Ditto.
9919 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
9920 SFmode and DFmode constants.
9921 (ia64_print_operand): Add 'G' format for printing
9922 floating point constants.
9923
77a30264
RG
99242009-04-24 Richard Guenther <rguenther@suse.de>
9925
9926 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
9927 from unsigned additions.
9928
2b6da65c
JM
99292009-04-24 Joseph Myers <joseph@codesourcery.com>
9930
9931 * c-typeck.c (set_init_index): Allow array designators that are
9932 not integer constant expressions with a pedwarn if pedantic.
9933
f5a17c43
BS
99342009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
9935
9936 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
9937 zero if no overlap in nonzero bits between the operands.
9938
32e8bb8e
ILT
99392009-04-24 Ian Lance Taylor <iant@google.com>
9940
9941 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
9942 (record_dead_and_set_regs): Likewise.
9943 * df.h (struct df_mw_hardreg): Change flags field to int.
9944 (struct df_base_ref): Likewise.
9945 (struct df): Change changeable_flags field to int.
9946 * df-scan.c (df_defs_record): Change clobber_flags to int.
9947 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
9948 constants rather than #define macros.
9949 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
9950 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
9951 (enum dwarf_calling_convention): Likewise.
9952 (enum dwarf_line_number_x_ops): Likewise.
9953 (enum dwarf_call_frame_info): Likewise.
9954 (enum dwarf_source_language): Likewise.
9955 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
9956 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
9957 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
9958 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
9959 * genrecog.c (maybe_both_true_2): Change c to int.
9960 (write_switch): Likewise. Add cast to enum type.
9961 * gimplify.c (gimplify_omp_for): Handle return values from
9962 gimplify_expr using MIN rather than bitwise or.
9963 (gimplify_expr): Add cast to enum type.
9964 * ipa-prop.c (update_jump_functions_after_inlining): Change
9965 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
9966 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
9967 Add casts to enum type.
32e8bb8e
ILT
9968 (setup_cover_and_important_classes): Change cl to int. Add casts
9969 to enum type.
9970 (setup_class_translate): Change cl and mode to int.
9971 (ira_init_once): Change mode to int.
9972 (free_register_move_costs): Likewise.
9973 (setup_prohibited_mode_move_regs): Add casts to enum type.
9974 * langhooks.c (add_builtin_function_common): Rework assertion that
9975 value fits bitfield.
9976 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
9977 * omega.c (omega_do_elimination): Avoid math on enum types.
9978 * optabs.c (expand_vec_shift_expr): Remove casts to int.
9979 * opts.c (set_debug_level): Change 2 to enum constant. Use new
9980 int local to handle integral_argment value.
9981 * regmove.c (try_auto_increment): Change PUT_MODE to
9982 PUT_REG_NOTE_KIND.
9983 * reload.c (push_secondary_reload): Add casts to enum type.
9984 (secondary_reload_class, find_valid_class): Likewise.
9985 * reload1.c (emit_input_reload_insns): Likewise.
9986 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
9987 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
9988 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
9989 constant.
9990 * tree.c (build_common_builtin_nodes): Add casts to enum type.
9991 * tree-complex.c (complex_lattice_t): Typedef to int rather than
9992 enum type.
9993 (expand_complex_libcall): Add casts to enum type.
9994 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
9995 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
9996 with ERROR_MARK, not NUM_TREE_CODES.
9997 (vect_create_epilog_for_reduction): Likewise.
9998 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 9999 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
10000 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
10001 enum machine_mode.
10002 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
10003 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 10004 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
10005 * var-tracking.c (get_init_value): Change return type to enum
10006 var_init_status.
10007 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
10008 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
10009 arm_fp_model.
10010 (arm_override_options): Add casts to enum type.
10011 (arm_emit_tls_decoration): Likewise.
10012 * config/i386/i386.c (ix86_function_specific_restore): Add casts
10013 to enum type.
10014 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
10015 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
10016 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
10017 enum type.
10018 * config/s390/s390.c (code_for_builtin_64): Change to array of
10019 enum insn_code.
10020 (code_for_builtin_31): Likewise.
10021 (s390_expand_builtin): Change code_for_builtin to enum insn_code
10022 const *.
10023 * config/sparc/sparc.c (sparc_override_options): Change value
10024 field in struct code_model to enum cmodel. In initializer change
10025 0 to NULL and add cast to enum type.
10026
10027 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
10028 Change all callers. Issue a -Wc++-compat warning using
10029 lhs_origtype if necessary.
10030 (convert_for_assignment): Issue -Wc++-compat warnings about
10031 invalid conversions to enum type on assignment.
10032 * c-common.h (build_modify_expr): Update declaration.
10033
ac4fc08a
NC
100342009-04-24 Nick Clifton <nickc@redhat.com>
10035
10036 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
10037 (function_arg_advance): Likewise.
10038 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
10039 5th alternative.
10040
f22e891a
AK
100412009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
10042
10043 * config/s390/constraints.md ('I', 'J'): Fix condition.
10044
ad58aabe
DN
100452009-04-24 Diego Novillo <dnovillo@google.com>
10046
10047 * gengtype-parse.c (parse_error): Add newline after message.
10048
879a4a01
L
100492009-04-24 H.J. Lu <hongjiu.lu@intel.com>
10050
10051 * config/i386/sse.md (avxmodesuffixs): Removed.
10052 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
10053 (*avx_pinsr<ssevecsize>): This.
10054
f63426af
BS
100552009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
10056
10057 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
10058 follow chains of regs with a single definition, and allow expressions
10059 that are function_invariant_p.
ce72fe6c 10060 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 10061
30349c74
PB
100622009-04-24 Paolo Bonzini <bonzini@gnu.org>
10063
10064 PR middle-end/39867
10065 * fold-const.c (fold_cond_expr_with_comparison): When folding
10066 > and >= to MAX, make sure the MAX uses the same type as the
10067 comparison's operands.
10068
8d8256c1
NC
100692009-04-24 Nick Clifton <nickc@redhat.com>
10070
10071 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
10072 addressing for DImode accesses.
10073 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 10074 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 10075
6216f94e
JJ
100762009-04-24 Jakub Jelinek <jakub@redhat.com>
10077
10078 PR rtl-optimization/39794
10079 * alias.c (canon_true_dependence): Add x_addr argument.
10080 * rtl.h (canon_true_dependence): Adjust prototype.
10081 * cse.c (check_dependence): Adjust canon_true_dependence callers.
10082 * cselib.c (cselib_invalidate_mem): Likewise.
10083 * gcse.c (compute_transp): Likewise.
10084 * dse.c (scan_reads_nospill): Likewise.
10085 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
10086 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
10087 canon_base_addr of the group, plus optional offset.
10088 (struct group_info): Rename canon_base_mem to
10089 canon_base_addr.
10090 (get_group_info): Set canon_base_addr to canon_rtx of base, not
10091 canon_rtx of base_mem.
10092
6de7a512
PB
100932009-04-23 Paolo Bonzini <bonzini@gnu.org>
10094
10095 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
10096 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
10097
4a3a2376
UW
100982009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10099
10100 * config/spu/spu-builtins.h: Delete file.
10101
10102 * config/spu/spu.h (enum spu_builtin_type): Move here from
10103 spu-builtins.h.
10104 (struct spu_builtin_description): Likewise. Add GTY marker.
10105 Do not use enum spu_function_code or enum insn_code.
10106 (spu_builtins): Add extern declaration.
10107
10108 * config/spu/spu.c: Do not include "spu-builtins.h".
10109 (enum spu_function_code, enum spu_builtin_type_index,
10110 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
10111 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
10112 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
10113 unsigned_V2DI_type_node): Move here from spu-builtins.h.
10114 (spu_builtin_types): Make static. Add GTY marker.
10115 (spu_builtins): Add extern declaration with GTY marker.
10116 Include "gt-spu.h".
10117
10118 * config/spu/spu-c.c: Do not include "spu-builtins.h".
10119 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
10120 Check programmatically whether all parameters are scalar.
10121
10122 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
10123
bbaba73f
EB
101242009-04-23 Eric Botcazou <ebotcazou@adacore.com>
10125
10126 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
10127 assignment from the constructor either if the target is volatile.
10128
ee93c1c6
DJ
101292009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
10130
10131 * config/arm/arm.md (insv): Do not share operands[0].
10132
b2f21330
NS
101332009-04-23 Nathan Sidwell <nathan@codesourcery.com>
10134
10135 * config/vxlib-tls.c (active_tls_threads): Delete.
10136 (delete_hook_installed): New.
10137 (tls_delete_hook): Don't delete the delete hook.
10138 (tls_destructor): Delete it here.
10139 (__gthread_set_specific): Adjust installing the delete hook.
10140 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
10141 __gthread_leave_tsd_dtor_context.
10142
4782dfa7
RAE
101432009-04-23 Rafael Avila de Espindola <espindola@google.com>
10144
10145 * c-format.c (gcc_tdiag_char_table): Add support for %E.
10146
bf758008
UB
101472009-04-23 Uros Bizjak <ubizjak@gmail.com>
10148
10149 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
10150 enum type.
10151 (alpha_rtx_costs): Ditto.
10152 (emit_unlikely_jump): Use add_reg_note.
10153 (emit_frame_store_1): Ditto.
10154 (alpha_expand_prologue): Ditto.
10155 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10156 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
10157
7323a100
NC
101582009-04-23 Nick Clifton <nickc@redhat.com>
10159
10160 * config/v850/v850.md (epilogue): Remove suppressed code.
10161 (return): Rename to return_simple and remove test of frame size.
10162 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
10163 to gen_return_simple.
10164
360032ba
JY
101652009-04-22 Jing Yu <jingyu@google.com>
10166
10167 PR testsuite/39781
10168 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
10169
53650abe
AP
101702009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
10171
10172 PR C/31499
10173 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
10174 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
10175 value is a VECTOR_CST, the element type is the element type of the
10176 vector.
10177
89043e8a
DD
101782009-04-22 DJ Delorie <dj@redhat.com>
10179
10180 * config/m32c/m32c.h: Update GTY annotations to new syntax.
10181
023f059b
JJ
101822009-04-22 Jakub Jelinek <jakub@redhat.com>
10183
10184 * alias.c (find_base_term): Move around LO_SUM case, so that
10185 CONST falls through into PLUS/MINUS handling.
10186
2c0eba5a
JJ
10187 PR c/39855
10188 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
10189 into 0, use omit_one_operand.
10190
9a461028
BE
101912009-04-23 Ben Elliston <bje@au.ibm.com>
10192
10193 * config/rs6000/linux-unwind.h (get_regs): Remove type
10194 puns. Change the type of `pc' to an array of unsigned ints and
10195 update all users. Constify frame24.
10196
653e2568
DD
101972009-04-22 DJ Delorie <dj@redhat.com>
10198
10199 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
10200 declarations before code.
10201 (current_function_special_page_vector): Likewise.
10202 (m32c_expand_insv): Silence a warning.
10203
60839f5d 102042009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
10205
10206 * alias.c: Update GTY annotations to new syntax.
10207 * basic-block.h: Likewise.
10208 * bitmap.h: Likewise.
10209 * c-common.h: Likewise.
10210 * c-decl.c: Likewise.
10211 * c-parser.c: Likewise.
10212 * c-pragma.c: Likewise.
10213 * c-tree.h: Likewise.
10214 * cfgloop.h: Likewise.
10215 * cgraph.h: Likewise.
10216 * config/alpha/alpha.c: Likewise.
10217 * config/arm/arm.h: Likewise.
10218 * config/avr/avr.h: Likewise.
10219 * config/bfin/bfin.c: Likewise.
10220 * config/cris/cris.c: Likewise.
10221 * config/darwin.c: Likewise.
10222 * config/frv/frv.c: Likewise.
10223 * config/i386/i386.c: Likewise.
10224 * config/i386/i386.h: Likewise.
10225 * config/i386/winnt.c: Likewise.
10226 * config/ia64/ia64.h: Likewise.
10227 * config/iq2000/iq2000.c: Likewise.
10228 * config/mips/mips.c: Likewise.
10229 * config/mmix/mmix.h: Likewise.
10230 * config/pa/pa.c: Likewise.
10231 * config/pa/pa.h: Likewise.
10232 * config/rs6000/rs6000.c: Likewise.
10233 * config/s390/s390.c: Likewise.
10234 * config/sparc/sparc.c: Likewise.
10235 * config/xtensa/xtensa.c: Likewise.
10236 * cselib.h: Likewise.
10237 * dbxout.c: Likewise.
10238 * dwarf2out.c: Likewise.
10239 * except.c: Likewise.
10240 * except.h: Likewise.
10241 * fixed-value.h: Likewise.
10242 * function.c: Likewise.
10243 * function.h: Likewise.
10244 * gimple.h: Likewise.
10245 * integrate.c: Likewise.
10246 * optabs.c: Likewise.
10247 * output.h: Likewise.
10248 * real.h: Likewise.
10249 * rtl.h: Likewise.
10250 * stringpool.c: Likewise.
10251 * tree-data-ref.c: Likewise.
10252 * tree-flow.h: Likewise.
10253 * tree-scalar-evolution.c: Likewise.
10254 * tree-ssa-address.c: Likewise.
10255 * tree-ssa-alias.h: Likewise.
10256 * tree-ssa-operands.h: Likewise.
10257 * tree.c: Likewise.
10258 * tree.h: Likewise.
10259 * varasm.c: Likewise.
10260 * varray.h: Likewise.
10261 * vec.h: Likewise.
bf758008 10262 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
10263 * doc/gty.texi: Update GTY documentation to new syntax.
10264 * gengtype-lex.l: Enforce attribute-like syntax for GTY
10265 annotations on structs.
10266 * gengtype-parse.c: Likewise.
10267
a123d175
MH
102682009-04-22 Mark Heffernan <meheff@google.com>
10269
bf758008 10270 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 10271
4c7c486a
KH
102722009-04-22 Kazu Hirata <kazu@codesourcery.com>
10273
10274 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
10275 where appropriate.
10276
6e782a29
KH
102772009-04-22 Kazu Hirata <kazu@codesourcery.com>
10278
10279 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
10280 the same as a PLUS without a shift. Increase the cost of a
10281 CONST_INT in MULT.
10282
38d2336a
MLI
102832009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10284
10285 * Makefile.in: Update dependencies.
bf758008 10286 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
10287 * errors.h: Remove bogus comment about compatibility.
10288 (warning): Update declaration.
10289 * genautomata.c: Update all calls to warning.
10290 * gimple.c: Do not include errors.h. Include toplev.h.
10291 * tree-ssa-structalias.c: Do not include errors.h.
10292 * omega.c: Likewise.
10293 * tree-ssa-reassoc.c: Likewise.
10294 * config/spu/spu-c.c: Likewise.
10295 * config/spu/t-spu-elf: Update dependencies.
10296
aea4deba
RG
102972009-04-22 Richard Guenther <rguenther@suse.de>
10298
10299 PR tree-optimization/39824
10300 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
10301 make sure the types are compatible.
10302
cfc93532
MLI
103032009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10304
10305 PR c++/14875
10306 * c-common.c (c_parse_error): Take a token_flags parameter.
10307 Use token_type for the token type instead.
10308 Pass token_flags to cpp_type2name.
10309 * c-common.h (c_parse_error): Update declaration.
10310 * c-parser.c (c_parser_error): Pass 0 as token flags.
10311
8632d02a
AB
103122009-04-22 Andrey Belevantsev <abel@ispras.ru>
10313
10314 PR rtl-optimization/39580
10315 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
10316
4c33221c
UW
103172009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10318
10319 * function.c (expand_function_end): Do not emit a jump to the "naked"
10320 return label for fall-through returns.
10321 * except.c (sjlj_emit_function_exit): Always place the call to the
10322 unregister function at the location installed by expand_function_end.
10323
9925bce0
RG
103242009-04-22 Richard Guenther <rguenther@suse.de>
10325
10326 PR tree-optimization/39845
10327 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
10328 (gen_inbound_check): Likewise.
10329
24a40b35
NS
103302009-04-22 Nathan Sidwell <nathan@codesourcery.com>
10331
10332 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
10333 padding for PPC.
10334 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
10335 * config/vxlib.c (__gthread_once): Add race guard for PPC.
10336
6c34a092
PB
103372009-04-22 Paolo Bonzini <bonzini@gnu.org>
10338
10339 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
10340 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
10341 shift counts to avoid out-of-bounds array accesses.
10342
baa48dfa
PB
103432009-04-22 Paolo Bonzini <bonzini@gnu.org>
10344
10345 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
10346 (Pmode): Move above.
10347
7d83f4f5
UB
103482009-04-22 Uros Bizjak <ubizjak@gmail.com>
10349
10350 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
10351 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
10352 GET_CODE macro. Use IN_RANGE macro where appropriate.
10353 * config/alpha/alpha.h: Ditto.
10354 * config/alpha/alpha.md: Ditto.
10355 * config/alpha/constraints.md: Ditto.
10356 * config/alpha/predicates.md: Ditto.
10357
3ad606bc
PB
103582009-04-22 Paolo Bonzini <bonzini@gnu.org>
10359
10360 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
10361 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10362 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10363 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10364 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10365 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10366 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10367 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10368 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10369 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10370 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10371 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10372 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10373 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10374 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10375 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10376 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10377 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10378 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10379 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10380 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10381 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10382 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10383 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10384 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10385 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10386 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
10387
3cabd6d1
LB
103882009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
10389
10390 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
10391 references from comments.
10392 * cfgbuild.c: (count_basic_blocks): Delete.
10393 (find_basic_blocks_1): Delete.
10394 (find_basic_blocks): Delete.
10395 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 10396 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
10397 * except.h (finish_eh_generation): Delete.
10398 * basic-block.h (find_basic_blocks): Delete.
10399 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
10400
270d1bcd
DK
104012009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
10402
10403 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
10404 (sdbout_parms): Likewise.
10405
b757d36f
KK
104062009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
10407
10408 * config/sh/sh.c (prepare_cbranch_operands): Use
10409 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
10410 (expand_cbranchdi4): Likewise.
10411 (from_compare): Add cast to enum type.
10412 (expand_cbranchsi4): Use add_reg_note.
10413 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
10414 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
10415 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
10416 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
10417 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
10418 instead of CODE_FOR_nothing.
10419 (cbranchdi4): Likewise. Fix the order of arguments for
10420 gen_rtx_fmt_ee.
10421 (push_fpscr): Use add_reg_note.
10422 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
10423 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
10424
ad41bd84
JM
104252009-04-21 Joseph Myers <joseph@codesourcery.com>
10426
10427 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
10428 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
10429 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
10430 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
10431 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
10432 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
10433 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
10434 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
10435 config/alpha/x-vms, config/arc/t-arc,
10436 config/arm/README-interworking, config/arm/arm-c.c,
10437 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
10438 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
10439 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
10440 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
10441 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
10442 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
10443 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
10444 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
10445 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
10446 config/cris/t-elfmulti, config/crx/t-crx,
10447 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
10448 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
10449 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
10450 config/h8300/t-h8300, config/i386/athlon.md,
10451 config/i386/darwin-libgcc.10.4.ver,
10452 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
10453 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
10454 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
10455 config/i386/t-linux64, config/i386/t-nwld,
10456 config/i386/t-rtems-i386, config/i386/t-sol2-10,
10457 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
10458 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
10459 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
10460 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
10461 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
10462 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
10463 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
10464 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
10465 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
10466 config/m68k/t-uclinux, config/mcore/t-mcore,
10467 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
10468 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
10469 config/mips/crtn.asm, config/mips/irix-crti.asm,
10470 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
10471 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
10472 config/mips/mips-fixed.md, config/mips/sb1.md,
10473 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
10474 config/mips/t-iris6, config/mips/t-isa3264,
10475 config/mips/t-libgcc-mips16, config/mips/t-linux64,
10476 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
10477 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
10478 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
10479 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
10480 config/mn10300/t-linux, config/mn10300/t-mn10300,
10481 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
10482 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
10483 config/picochip/libgccExtras/clzsi2.asm,
10484 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
10485 config/rs6000/darwin-libgcc.10.4.ver,
10486 config/rs6000/darwin-libgcc.10.5.ver,
10487 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
10488 config/rs6000/t-aix43, config/rs6000/t-aix52,
10489 config/rs6000/t-darwin, config/rs6000/t-fprules,
10490 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
10491 config/rs6000/t-lynx, config/rs6000/t-netbsd,
10492 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
10493 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
10494 config/rs6000/t-rtems, config/rs6000/t-spe,
10495 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
10496 config/score/t-score-elf, config/sh/divcost-analysis,
10497 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
10498 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
10499 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
10500 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
10501 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
10502 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
10503 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
10504 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
10505 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
10506 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
10507 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
10508 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
10509 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
10510 limitx.h, version.c, xcoff.h: Add copyright and license notices.
10511 * config/h8300/genmova.sh: Include copyright and license notices
10512 in generated output.
10513 * config/h8300/mova.md: Regenerate.
10514 * doc/install.texi2html: Include word "Copyright" in copyright
10515 notice and use name "Free Software Foundation, Inc.".
10516 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
10517 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
10518 ChangeLog-2007, ChangeLog-2008: Correct dates.
10519
ca80e52b
EB
105202009-04-21 Eric Botcazou <ebotcazou@adacore.com>
10521
10522 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
10523 NE_EXPR operations as well.
10524 * c-parser.c (c_parser_condition): Do not set location information on
10525 the condition.
10526 (c_parser_conditional_expression): Likewise.
10527 (c_parser_binary_expression): Set location information on operators.
10528 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
10529 TRUTH_NOT_EXPR has been folded.
10530 * fold-const.c (fold_truth_not_expr): Copy location information from
10531 the incoming expression to the outgoing one.
10532 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
10533 recursive calls on the LHS of the operator but pass that of the
10534 operator to recursive calls on the RHS of the operator. Set it
10535 on the COND_EXPR.
10536 (shortcut_cond_expr): Set the locus of the operator on the second
10537 COND_EXPR and that of the expression on the first in degenerate cases.
10538 Pass the locus of the expression to calls to shortcut_cond_r.
10539 Set the locus of the 'then' block on the associated jump, if any.
10540 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
10541 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
10542 expression to call to gimplify_boolean_expr.
10543
35091630
KT
105442009-04-21 Kai Tietz <kai.tietz@onevision.com>
10545
10546 * config.gcc: Add additional configuration for
10547 i686-w64-mingw* and x86_64-w64-mingw* triplet.
10548 * config/i386/mingw-w64.h: New mingw-w64 specific header.
10549 (CPP_SPEC): Redefine for allowing -municode option.
10550 (STARTFILE_SPEC): Likewise.
10551 * config/i386/t-mingw-w64: New.
10552 * config/i386/mingw-w64.opt: New.
10553 (municode): Add new target option.
10554 * doc/invoke.texi (municode): Add documentation for new option.
10555
0267afc4
ILT
105562009-04-21 Ian Lance Taylor <iant@google.com>
10557
10558 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10559 Correct test for number of arguments.
10560 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
10561
2ba9daa7
AS
105622009-04-21 Andreas Schwab <schwab@linux-m68k.org>
10563
10564 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
10565 argument of emit_library_call.
10566
ad8a1ac0
RG
105672009-04-21 Richard Guenther <rguenther@suse.de>
10568
10569 PR middle-end/39829
10570 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
10571 inside VIEW_CONVERT_EXPRs.
10572
7156c8ab
MJ
105732009-04-21 Martin Jambor <mjambor@suse.cz>
10574
10575 * tree-switch-conversion.c (build_constructors): Split a long line.
10576 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
10577 (build_one_array): Create assigns of constants if possible, do not
10578 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
10579 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
10580 make_rename_temp. Do not call mark_symbols_for_renaming, call
10581 update_stmt.
10582 (gen_def_assigns): Do not call mark_symbols_for_renaming or
10583 find_new_referenced_vars, call update_stmt.
10584 (gen_inbound_check): Use create_tmp_var and create ssa names manually
10585 instead of calling make_rename_temp. Do not call
10586 find_new_referenced_vars or mark_symbols_for_renaming, call
10587 update_stmt.
10588
2970ccb3
RG
105892009-04-21 Richard Guenther <rguenther@suse.de>
10590
10591 PR tree-optimization/39827
7d83f4f5 10592 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
10593 (tree_ssa_phiprop): Pass the correct array size.
10594
47f402d1
UB
105952009-04-21 Uros Bizjak <ubizjak@gmail.com>
10596
10597 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
10598
1e4ae551
MLI
105992009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
10600
10601 PR 16202
10602 * c-typeck.c (lvalue_p): Move declaration ...
10603 * c-common.h (lvalue_p): ... to here.
10604 * c-common.c (candidate_equal_p): New.
10605 (add_tlist): Use it.
10606 (merge_tlist): Use it.
10607 (warn_for_collisions_1): Likewise.
10608 (warning_candidate_p): Accept more candidates.
10609 (verify_tree): A warning candidate can be an expression. Use
10610 candidate_equal_p.
10611
244609a6
BE
106122009-04-21 Ben Elliston <bje@au.ibm.com>
10613
10614 PR target/5267
10615 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
10616 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
10617 options. Remove -mcall-solaris documentation.
10618
9c650d90
MLI
106192009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10620
10621 PR c++/13358
10622 * doc/invoke.texi (-Wlong-long): Update description.
10623 * c-lex (interpret_integer): Only warn if there was no previous
10624 overflow and -Wlong-long is enabled.
10625 * c-decl.c (declspecs_add_type): Drop redundant flags.
10626 * c.opt (Wlong-long): Init to -1.
10627 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
10628 and front-end warn_long_long. Wlong-long only depends on other
10629 flags if it is uninitialized.
10630 * c-parser.c (disable_extension_diagnostics): warn_long_long is
10631 the same for CPP and FE.
10632 (restore_extension_diagnostics): Likewise.
10633
bbbbb16a
ILT
106342009-04-20 Ian Lance Taylor <iant@google.com>
10635
10636 Fix enum conversions which are invalid in C++:
47f402d1
UB
10637 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
10638 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
10639 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
10640 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 10641 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 10642 (dbxout_parms): Likewise.
47f402d1 10643 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
10644 (df_clear_flags): Likewise.
10645 * df-problems.c (df_rd_bb_local_compute_process_def): Change
10646 top_flag parameter to int.
10647 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
10648 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
10649 Remove cast.
bbbbb16a
ILT
10650 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
10651 (df_ref_create_structure, df_def_record_1): Likewise.
10652 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
10653 (df_notes_rescan): Change 0 to VOIDmode in function call.
10654 (df_get_call_refs, df_insn_refs_collect): Likewise.
10655 (df_bb_regs_collect): Likewise.
10656 (df_entry_block_defs_collect): Likewise.
10657 (df_exit_block_uses_collect): Likewise.
10658 * df.h: Update declarations.
10659 * double-int.c (double_int_divmod): Add cast to enum type.
10660 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
10661 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
10662 (based_loc_descr): Likewise.
10663 (loc_descriptor_from_tree_1): Change first_op and second_op to
10664 enum dwarf_location_atom. Add cast to enum type.
10665 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 10666 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
10667 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
10668 (do_store_flag): Likewise.
10669 * fixed-value.h (struct fixed_value): Change mode to enum
10670 machine_mode.
47f402d1 10671 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
10672 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
10673 function call.
10674 (insert_insn_decl, insert_decl, insert_state): Likewise.
10675 (automata_list_finish): Likewise.
10676 * genrecog.c (process_define_predicate): Add cast to enum type.
10677 * gensupport.c (init_predicate_table): Add cast to enum type.
10678 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
10679 function call.
10680 (gimple_build_call_1, gimple_build_label): Likewise.
10681 (gimple_build_goto, gimple_build_asm_1): Likewise.
10682 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 10683 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
10684 (enum fallback): Rename from enum fallback_t.
10685 (fallback_t): Typedef as int.
10686 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
10687 GSI_SAME_STMT in function call.
10688 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
10689 enum type.
10690 (setup_reg_class_relations): Likewise.
47f402d1 10691 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
10692 (setup_prohibited_class_mode_regs): Add cast to enum type.
10693 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 10694 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
10695 (record_address_regs): Change i to enum reg_class.
10696 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
10697 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
10698 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
10699 (GET_MODE_2XWIDER_MODE): Likewise.
10700 (GET_CLASS_NARROWEST_MODE): Likewise.
10701 * omp-low.c (expand_omp_for): Add cast to enum type.
10702 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
10703 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
10704 * postreload.c (reload_cse_simplify_operands): Change rclass local
10705 to enum reg_class.
10706 * predict.c (combine_predictions_for_insn): Change best_predictor
10707 and predictor to enum br_predictor.
10708 (combine_predictions_for_bb): Likewise.
10709 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
10710 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 10711 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
10712 * reginfo.c (init_move_cost): Add casts to enum type.
10713 (init_reg_sets_1, init_fake_stack_mems): Likewise.
10714 * regmove.c (regclass_compatible_p): Change class0 and class1 to
10715 enum reg_class.
10716 * reload.c (find_valid_class): Add casts to enum type.
10717 (push_reload): Change 0 to NO_REGS in function call.
10718 (find_reloads): Change this_alternative to array of enum
10719 reg_class. Remove some now-unnecessary casts.
10720 (make_memloc): Change 0 to VOIDmode in function call.
10721 * reload1.c (reload): Change 0 to VOIDmode in function call.
10722 (eliminate_regs_1, elimination_effects): Likewise.
10723 (eliminate_regs_in_insn): Likewise.
10724 (emit_input_reload_insns): Add cast to enum type.
10725 (delete_output_reload): Change 0 to VOIDmode in function call.
10726 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
10727 to enum type in function call.
10728 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
10729 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 10730 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
10731 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
10732 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
10733 (dump_function): Likewise.
10734 * tree-dump.h: Update declarations.
10735 * tree-pass.h: Update declarations.
10736 * varasm.c (assemble_integer): Change mclass to enum mode_class.
10737 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
10738 enum type.
10739 (arm_rtx_costs_1): Correct parenthesization.
10740 (arm_rtx_costs): Add casts to enum type.
10741 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
10742 (vfp_emit_fstmd): Use add_rg_note.
10743 (emit_multi_reg_push, emit_sfm): Likewise.
10744 (thumb_set_frame_pointer): Likewise.
10745 (arm_expand_prologue): Likewise.
10746 (arm_regno_class): Change return type to enum reg_class.
10747 (thumb1_expand_prologue): Use add_reg_note.
10748 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
10749 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
10750 in function call.
10751 * config/arm/gentune.sh: Add cast to enum type.
10752 * config/arm/arm-tune.md: Rebuild.
10753 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
10754 (ix86_split_fp_branch, predict_jump): Likewise.
10755 (ix86_expand_multi_arg_builtin): Change sub_code from enum
10756 insn_code to enum rtx_code.
10757 (ix86_builtin_vectorized_function): Add cast to enum type.
10758 * config/i386/i386.md (truncdfsf2): Change slot to enum
10759 ix86_stack_slot.
10760 (truncxf<mode>2, isinf<mode>2): Likewise.
10761 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
10762 enum type.
10763 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
10764 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
10765 (insert_bundle_state): Change 1 to INSERT in function call.
10766 (ia64_add_bundle_selector_before): Likewise.
10767 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
10768 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
10769 (restore_stack_nonlocal): Likewise.
10770 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
10771 function call.
10772 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
10773 function call.
10774 (mips_rtx_costs): Likewise.
10775 (mips_override_options): Add casts to enum type.
10776 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
10777 in function call.
10778 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
10779 (store_reg, set_reg_plus_d): Likewise.
10780 (hppa_expand_prologue, hppa_profile_hook): Likewise.
10781 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
10782 cast to enum type.
10783 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
10784 function call.
10785 (emit_unlikely_jump): Use add_reg_note.
10786 (rs6000_emit_allocate_stack): Likewise.
10787 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
10788 (output_toc): Change 1 to INSERT in function call.
10789 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
10790 (rs6000_initialize_trampoline): Likewise.
10791 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
10792 function call.
10793 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
10794 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
10795 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
10796 (save_gprs): Use add_reg_note.
10797 (s390_emit_prologue): Likewise.
47f402d1 10798 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
10799 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
10800 (sparc_fold_builtin): Add cast to enum type.
10801 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
10802 enum insn_code.
10803 (spu_expand_prologue): Use add_reg_note.
47f402d1 10804 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
10805
108062009-04-20 Ian Lance Taylor <iant@google.com>
10807
10808 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
10809 (c_parser_postfix_expression_after_primary): Get VEC for list of
10810 arguments. Get original types of arguments. Call
10811 build_function_call_vec.
10812 (cached_expr_list_1, cached_expr_list_2): New static variables.
10813 (c_parser_expr_list): Change return type to VEC *. Add
10814 p_orig_types parameter. Change all callers.
10815 (c_parser_release_expr): New static function.
10816 (c_parser_vec_to_tree_list): New static function.
10817 * c-typeck.c (build_function_call): Rewrite to build a VEC and
10818 call build_function_call_vec.
10819 (build_function_call_vec): New function, based on old
10820 build_function_call.
10821 (convert_arguments): Remove nargs and argarray parameters. Change
10822 values to a VEC. Add origtypes parameter.
47f402d1 10823 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
10824 (convert_for_assignment): Add origtype parameter. Change all
10825 callers. If warn_cxx_compat, check for conversion to an enum
10826 type when calling a function.
10827 (store_init_value): Add origtype parameter. Change all callers.
10828 (digest_init): Likewise.
10829 (struct init_node): Add origtype field.
10830 (add_pending_init): Add origtype parameter. Change all callers.
10831 (output_init_element): Likewise.
10832 (output_pending_init_elements): Pass origtype from init_node to
10833 output_init_element.
f28a61ab 10834 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
10835 output_init_element.
10836 (c_finish_return): Add origtype parameter. Change all callers.
10837 * c-common.c (sync_resolve_size): Change params to VEC *. Change
10838 caller.
10839 (sync_resolve_params): Likewise.
47f402d1 10840 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 10841 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 10842 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
10843 * c-decl.c (finish_decl): Add origtype parameter. Change all
10844 callers. Call build_function_call_vec rather than
10845 build_function_call for cleanup.
10846 * c-tree.h: Update declarations.
10847 * c-common.h: Update declarations.
10848 * stub-objc.c (objc_rewrite_function_call): Change parameter from
10849 params to first_param.
10850 * target.h (struct gcc_target): Change resolve_overloaded_builtin
10851 params parameter from tree to void *.
10852 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10853 Change arglist parameter to have type void *, and to be a pointer
10854 to a VEC.
10855 * config/rs6000/rs6000-protos.h
10856 (altivec_resolve_overloaded_builtin): Update declaration.
10857 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
10858 fnargs parameter to have type void *, and to be a pointer to a
10859 VEC. Call build_function_call_vec instead of
10860 build_function_call.
47f402d1 10861 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 10862
6ff078d4 108632009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 10864 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
10865 H.J. Lu <hongjiu.lu@intel.com>
10866
10867 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
10868
10869 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
10870 (IX86_LEA_PRIORITY): Likewise.
10871 (distance_non_agu_define): New function.
10872 (distance_agu_use): Likewise.
10873 (ix86_lea_for_add_ok): Likewise.
10874 (ix86_dep_by_shift_count): Likewise.
10875
10876 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
10877 should split for LEA.
10878
10879 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
10880 function.
10881 (ix86_dep_by_shift_count): Likewise.
10882
87a5b4cc
RG
108832009-04-20 Richard Guenther <rguenther@suse.de>
10884
10885 * expr.c (handled_component_p): Move ...
10886 * tree.h (handled_component_p): ... here.
10887 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
10888 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
10889 and REALPART_EXPR to be in one group.
10890
438c239d
RG
108912009-04-20 Richard Guenther <rguenther@suse.de>
10892
10893 * basic-block.h (get_all_dominated_blocks): Declare.
10894 * dominance.c (get_all_dominated_blocks): New function.
10895 * tree-cfg.c (get_all_dominated_blocks): Remove.
10896 (remove_edge_and_dominated_blocks): Adjust.
10897 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
10898 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
10899 instead of recursing.
10900
fed5ae11
DK
109012009-04-20 Doug Kwan <dougkwan@google.com>
10902
10903 * cgraph.h (cgraph_node_ptr): New type for vector functions.
10904 (struct cgraph_node_set_def): New type.
10905 (cgraph_node_set) New type. Also declare vector functions.
10906 (struct cgraph_node_set_element_def): New type.
10907 (cgraph_node_set_element): Ditto.
10908 (cgraph_node_set_iterator): New iterator type.
10909 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
10910 cgraph_node_set_remove, dump_cgraph_node_set,
10911 debug_cgraph_node_set): New prototypes.
10912 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
10913 cgraph_node_set_size): New inlines.
10914 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
10915 including cgraph.h.
10916 (struct ipa_opt_pass): Add struct cgraph_node_set_def
10917 argument to function 'write_summary'.
10918 * ipa.c: Include ggc.h.
10919 (hash_cgraph_node_set_element,
10920 eq_cgraph_node_set_element, cgraph_node_set_new,
10921 cgraph_node_set_add, cgraph_node_set_remove,
10922 cgraph_node_set_find, dump_cgraph_node_set,
10923 debug_cgraph_node_set): New functions.
10924 * Makefile.in (ipa.o): Add dependency on GGC_H.
10925
c4551b28
IR
109262009-04-20 Ira Rosen <irar@il.ibm.com>
10927
10928 PR tree-optimization/39675
2ba9daa7 10929 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
10930 check of the return code of vect_schedule_slp. Check that
10931 stmt_vec_info still exists for the statement, before checking its
10932 vectorization type.
c4551b28 10933
21a495fb
MM
109342009-04-20 Michael Matz <matz@suse.de>
10935
10936 * Makefile.in (generated_files): Take out $(simple_generated_c).
10937
8e208874
DK
109382009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
10939
10940 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
10941 (UINTPTR_TYPE): Likewise.
10942
a45e580b
JM
109432009-04-19 Joseph Myers <joseph@codesourcery.com>
10944
10945 PR c/37481
10946 * c-typeck.c (digest_init): Check for initializing an array with a
10947 string literal.
10948
20845d35
JM
109492009-04-19 Joseph Myers <joseph@codesourcery.com>
10950
10951 PR c/19771
10952 * c-semantics.c (pop_stmt_list): Propagate
10953 STATEMENT_LIST_HAS_LABEL to parent statement list.
10954
28143fdd
AN
109552009-04-19 Adam Nemet <anemet@caviumnetworks.com>
10956
10957 * config/mips/mips.h (mips_tune_attr): New macro.
10958 * config/mips/mips.md (cpu): Use it.
10959
da377db9
JM
109602009-04-19 Joseph Myers <joseph@codesourcery.com>
10961
10962 PR c/38243
10963 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
10964 declaring a tag.
10965
3baf459d
DN
109662009-04-19 Diego Novillo <dnovillo@google.com>
10967
10968 * toplev.c (compile_file): Move call to coverage_finish ...
10969 * cgraphunit.c (ipa_passes): ... here.
10970 Call cgraph_process_new_functions.
10971 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
10972 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
10973
b6fa5b01
JH
109742009-04-19 Jan Hubicka <jh@suse.cz>
10975
47f402d1
UB
10976 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
10977 cfun.
b6fa5b01
JH
10978 (dump_cgraph_node): Dump can throw external flag.
10979 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
10980
ca409efd
MLI
109812009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
10982
10983 PR c/32061
10984 PR c++/36954
10985 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
10986 * common.opt (Wlogical-op): Move from here...
10987 * c.opt (Wlogical-op): ... to here.
10988 * c-typeck.c (parser_build_binary_op): Update call to
10989 warn_logical_operator.
10990 * c-opts.c (c_common_post_options): Enable warn_logical_op with
10991 extra_warnings.
10992 * c-common.c (warn_logical_op): Update.
10993 * c-common.h (warn_logical_op): Update declaration.
10994
9db4cdd3
EB
109952009-04-19 Eric Botcazou <ebotcazou@adacore.com>
10996
10997 * tree.c (protected_set_expr_location): Fix formatting.
10998
f37acdf9
JM
109992009-04-18 Joseph Myers <joseph@codesourcery.com>
11000
11001 PR c/27676
11002 * c-typeck.c (readonly_warning): new.
11003 (build_unary_op, build_modify_expr): Use readonly_warning for
11004 storing into something readonly but not const-qualified.
11005
2b4b7036
JM
110062009-04-18 Joseph Myers <joseph@codesourcery.com>
11007
11008 PR c/22367
11009 * c-typeck.c (build_unary_op): Check for taking address of
11010 expression of type void.
11011
3ce62965
JM
110122009-04-18 Joseph Myers <joseph@codesourcery.com>
11013
11014 PR c/35210
11015 * c-typeck.c (build_function_call): Check for calling a function
11016 with qualified void return types. Call require_complete_type when
11017 generating a trap.
11018
2505c5ed
JH
110192009-04-18 Jan Hubicka <jh@suse.cz>
11020
11021 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
11022 Set nothrow flag.
11023 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
11024 can_throw_external flag.
11025 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
11026 * ipa-pure-const.c (ignore_edge): New function.
11027 (propagate): Compute order for NOTHROW computation; set NOTHROWs
11028 only over can_throw_external edges.
11029 (local_pure_const): Add nothrow flag.
11030 * ipa-utils.c (searchc): Add ignore_edge callback.
11031 (ipa_utils_reduced_inorder): Add ignore_edge callback.
11032 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
11033 (set_nothrow_function_flags): Update cgraph.
11034 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
11035
2586ba4b
RG
110362009-04-18 Richard Guenther <rguenther@suse.de>
11037
11038 PR middle-end/39804
11039 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
11040 (fold_stmt): ... this and ...
11041 (fold_stmt_inplace): ... this.
11042 (fold_stmt_1): Fold references in calls and asms.
11043 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
11044
1eefab17
KH
110452009-04-18 Kazu Hirata <kazu@codesourcery.com>
11046
11047 * tree-vrp.c (ssa_name_nonzero_p): Remove.
11048 * tree.h: Remove the prototype for ssa_name_nonzero_p.
11049
aa424b01
KH
110502009-04-18 Kazu Hirata <kazu@codesourcery.com>
11051
11052 * tree.c (function_args_count): Remove.
11053 * tree.h: Remove the prototype for function_args_count.
11054
613a896b
KH
110552009-04-18 Kazu Hirata <kazu@codesourcery.com>
11056
11057 * tree-iterator.c (expr_only): Remove.
11058 * tree.h: Remove the prototype for expr_only.
11059
579e694c
KH
110602009-04-18 Kazu Hirata <kazu@codesourcery.com>
11061
11062 * reginfo.c (cannot_change_mode_set_regs): Remove.
11063 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
11064
ee7e3ad3
AS
110652009-04-08 Anatoly Sokolov <aesok@post.ru>
11066
11067 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
11068 whether operands 0 and 1 overlaps.
11069
92ef7fb1
MLI
110702009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
11071
11072 PR middle-end/36902
11073 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
11074 pointer. Use warning_at instead of warning.
11075 (search_for_addr_array): Likewise.
11076 (check_array_bounds): Likewise.
11077 (check_all_array_refs): Check that the incoming edge is not in the
11078 list of edges to be removed.
11079 (check_all_array_refs): Avoid the temporal pointer.
11080 (vrp_visit_cond_stmt): Fix typo.
11081 (simplify_switch_using_ranges): Handle the case where the switch
11082 index is an integer constant.
11083
0e097268
AN
110842009-04-18 Adam Nemet <anemet@caviumnetworks.com>
11085
11086 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
11087
c782f1dd
KH
110882009-04-18 Kazu Hirata <kazu@codesourcery.com>
11089
11090 * doc/extend.texi, doc/invoke.texi: Fix typos.
11091
668fb0e8
CC
110922009-04-17 Cary Coutant <ccoutant@google.com>
11093
11094 * tree-flow-inline.h (get_lineno): Fix inverted test.
11095
4d4014c1
DN
110962009-04-17 Diego Novillo <dnovillo@google.com>
11097
11098 * tree-ssa-pre.c (create_expression_by_pieces): Remove
11099 assertion for AVAIL_OUT.
11100
2984e1b6
MF
111012009-04-17 Mike Frysinger <vapier@gentoo.org>
11102
11103 PR target/38627
11104 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
11105 * config/sh/linux-atomic.asm: Likewise.
11106
9994a182
DN
111072009-04-17 Diego Novillo <dnovillo@google.com>
11108
11109 * except.c (debug_eh_tree): New.
11110 (struct eh_region, struct eh_status): Move ...
11111 * except.h: ... here.
11112 (add_type_for_runtime): Declare extern.
11113 (lookup_type_for_runtime): Likewise.
11114 (debug_eh_tree): Declare.
11115 * Makefile.in (GTFILES): List except.h before except.c
11116
07485407
DN
111172009-04-17 Diego Novillo <dnovillo@google.com>
11118
47f402d1 11119 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
11120 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
11121 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
11122 (find_vars_r): ... here.
11123 * tree-flow.h (find_referenced_vars_in): Declare.
11124 * tree-ssa-pre.c (create_expression_by_pieces): Assert
11125 that AVAIL_OUT exists for BLOCK.
11126 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
11127 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
11128 (tree-parloops.o): Likewise.
11129
4e53d196
SB
111302009-04-17 Simon Baldwin <simonb@google.com>
11131
11132 * toplev.c (default_tree_printer): Add handling for %E format.
11133
413d3aa8
DN
111342009-04-17 Diego Novillo <dnovillo@google.com>
11135
47f402d1
UB
11136 * tree-pretty-print.c (dump_generic_node): Add break after
11137 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
11138 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
11139 FUNCTION_TYPE together. Call print_struct_decl when printing
11140 structures and TDF_SLIM is not given.
413d3aa8
DN
11141 (print_struct_decl): Fix logic for detecting recursion.
11142
5a691e98
RAE
111432009-04-17 Rafael Avila de Espindola <espindola@google.com>
11144
11145 PR 31567
11146 * gcc.c (create_at_file): New.
11147 (compile_input_file_p): New.
11148 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
11149 * main.c (main): Update call to toplev_main.
11150 * toplev.c (toplev_main): Change signature. Call expandargv.
11151 * toplev.h (toplev_main): Change signature.
11152
9eacf7a6
EB
111532009-04-17 Eric Botcazou <ebotcazou@adacore.com>
11154
11155 * dwarf2out.c (field_byte_offset): Use the type size as the field size
11156 if the latter is not constant.
11157
58298177
DE
111582009-04-17 David Edelsohn <edelsohn@gnu.org>
11159
11160 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
11161
5b4c43d7
EB
111622009-04-17 Eric Botcazou <ebotcazou@adacore.com>
11163
11164 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
11165 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
11166
b51605c4
RG
111672009-04-17 Richard Guenther <rguenther@suse.de>
11168
11169 * tree-ssa-structalias.c (get_constraint_for_component_ref):
11170 Handle component references view-converting an invariant address.
11171
9e3be889
AN
111722009-04-17 Adam Nemet <anemet@caviumnetworks.com>
11173
11174 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
11175 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
11176 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
11177 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
11178 Use @deftypevr rather than @deftypevar.
11179
7c3e9dc3
RG
111802009-04-17 Richard Guenther <rguenther@suse.de>
11181
47f402d1 11182 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
11183 (get_prop_source_stmt): Likewise.
11184 (can_propagate_from): Likewise.
11185
aca600aa
AS
111862009-04-17 Andrew Stubbs <ams@codesourcery.com>
11187
11188 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
11189 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
11190 (--with-multilib-list): Add default value.
11191 * configure: Regenerate.
11192 * Makefile.in (TM_ENDIAN_CONFIG): Define.
11193 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
11194 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
11195 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
11196 Don't add default cpu to multilib list unnecessarily, but do enable
11197 the relevant compiler option..
11198 Add support for --with-multilib-list=<blank> and
11199 --with-multilib-list=!<somelib> to supress unwanted multilibs.
11200 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
11201 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
11202 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
11203 TM_MULTILIB_CONFIG.
11204 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
11205 (MULTILIB_OSDIRNAMES): New variable.
11206 * config/sh/t-1e: Delete file.
11207 * config/sh/t-mlib-sh1: Delete file.
11208 * config/sh/t-mlib-sh2: Delete file.
11209 * config/sh/t-mlib-sh2a: Delete file.
11210 * config/sh/t-mlib-sh2a-nofpu: Delete file.
11211 * config/sh/t-mlib-sh2a-single: Delete file.
11212 * config/sh/t-mlib-sh2a-single-only: Delete file.
11213 * config/sh/t-mlib-sh2e: Delete file.
11214 * config/sh/t-mlib-sh3e: Delete file.
11215 * config/sh/t-mlib-sh4: Delete file.
11216 * config/sh/t-mlib-sh4-nofpu: Delete file.
11217 * config/sh/t-mlib-sh4-single: Delete file.
11218 * config/sh/t-mlib-sh4-single-only: Delete file.
11219 * config/sh/t-mlib-sh4a: Delete file.
11220 * config/sh/t-mlib-sh4a-nofpu: Delete file.
11221 * config/sh/t-mlib-sh4a-single: Delete file.
11222 * config/sh/t-mlib-sh4a-single-only: Delete file.
11223 * config/sh/t-mlib-sh4al: Delete file.
11224 * config/sh/t-mlib-sh5-32media: Delete file.
11225 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
11226 * config/sh/t-mlib-sh5-64media: Delete file.
11227 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
11228 * config/sh/t-mlib-sh5-compact: Delete file.
11229 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
11230 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
11231 * doc/install.texi (Options specification): Add
11232 --with-multilib-list and --with-endian.
11233
cf8aba7f
RAE
112342009-04-17 Rafael Avila de Espindola <espindola@google.com>
11235
11236 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
11237 REVISION_c.
11238 (OBJS-common): Add plugin-version.o.
11239 (plugin-version.o): New.
11240 * gcc-plugin.h (plugin_gcc_version): New.
11241 (plugin_default_version_check): New.
11242 (plugin_init_func, plugin_init): Add version argument.
11243 * plugin-version.c: New.
11244 * plugin.c (str_plugin_gcc_version_name): New.
11245 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
11246 pass it to the init function.
11247 (plugin_default_version_check): New.
11248
61e20b90
RG
112492009-04-17 Richard Guenther <rguenther@suse.de>
11250
11251 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
11252 for decl-vs-decl disambiguation.
11253
90c6fd8a
AK
112542009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
11255
11256 * config/s390/s390.h (s390_tune_attr): New macro definition.
11257 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
11258
9fe9fe04
RG
112592009-04-17 Richard Guenther <rguenther@suse.de>
11260
11261 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
11262 (fold_stmt_r): Likewise.
11263 (maybe_fold_reference): New function.
11264 (fold_gimple_assign): Handle cases fold_stmt_r did.
11265 (fold_stmt): Do not use fold_stmt_r.
11266 (fold_stmt_inplace): Likewise.
11267
7e673273
RG
112682009-04-17 Richard Guenther <rguenther@suse.de>
11269
11270 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
11271 (record_equivalences_from_stmt): Remove useless checks and
11272 simplifications.
11273 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
11274 the type is already suitable.
11275
fabf2749
PB
112762009-04-17 Paolo Bonzini <bonzini@gnu.org>
11277
11278 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
11279
68f7b061
UB
112802009-04-17 Uros Bizjak <ubizjak@gmail.com>
11281
11282 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
11283 (CMPtype): Define as __gcc_CMPtype.
11284
532bfb0a
AJ
112852009-04-17 Aurelien Jarno <aurelien@aurel32.net>
11286
11287 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
11288 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
11289
e3ac77ff
RG
112902009-04-17 Richard Guenther <rguenther@suse.de>
11291
11292 PR tree-optimization/39746
11293 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
11294 special-casing for builtins and static variable use/def.
11295 (call_may_clobber_ref_p_1): Likewise.
11296
7072a650
ILT
112972009-04-16 Ian Lance Taylor <iant@google.com>
11298
11299 * df.h: Include "timevar.h".
11300 (struct df_problem): Change tv_id field to timevar_id_t.
11301 * tree-pass.h: Include "timevar.h".
11302 (struct opt_pass): Change tv_id field to timevar_id_t.
11303 * timevar.h (timevar_id_t): Define TV_NONE.
11304 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
11305 TV_NONE rather than tv_id != 0.
11306 (execute_one_pass): Likewise.
11307 * Makefile.in (DF_H): Add $(TIMEVAR_H).
11308 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
11309 dependencies to $(TREE_PASS_H).
11310 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
11311 to TV_NONE.
11312 (pass_branch_target_load_optimize2): Likewise.
11313 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
11314 (pass_outof_cfg_layout_mode): Likewise.
11315 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
11316 (pass_rebuild_cgraph_edges): Likewise.
11317 (pass_remove_cgraph_callee_edges): Likewise.
11318 * df-core.c (pass_df_initialize_opt): Likewise.
11319 (pass_df_initialize_no_opt): Likewise.
11320 (pass_df_finish): Likewise.
11321 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
11322 * except.c (pass_set_nothrow_function_flags): Likewise.
11323 (pass_convert_to_eh_region_ranges): Likewise.
11324 * final.c (pass_compute_alignments): Likewise.
11325 * function.c (pass_instantiate_virtual_regs): Likewise.
11326 (pass_init_function): Likewise.
11327 (pass_leaf_regs): Likewise.
11328 (pass_match_asm_constraints): Likewise.
11329 * gimple-low.c (pass_lower_cf): Likewise.
11330 (pass_mark_used_blocks): Likewise.
11331 * init-regs.c (pass_initialize_regs): Likewise.
11332 * integrate.c (pass_initial_value_sets): Likewise.
11333 * ira.c (pass_ira): Likewise.
11334 * jump.c (pass_cleanup_barriers): Likewise.
11335 * omp-low.c (pass_expand_omp): Likewise.
11336 (pass_lower_omp): Likewise.
11337 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
11338 * recog.c (pass_split_all_insns): Likewise.
11339 (pass_split_after_reload): Likewise.
11340 (pass_split_before_regstack): Likewise.
11341 (pass_split_before_sched2): Likewise.
11342 (pass_split_for_shorten_branches): Likewise.
11343 * reginfo.c (pass_reginfo_init): Likewise.
11344 (pass_subregs_of_mode_init): Likewise.
11345 (pass_subregs_of_mode_finish): Likewise.
11346 * passes.c (pass_postreload): Likewise.
11347 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
11348 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
11349 (pass_warn_function_return): Likewise.
11350 (pass_warn_function_noreturn): Likewise.
11351 * tree-complex.c (pass_lower_complex): Likewise.
11352 (pass_lower_complex_O0): Likewise.
11353 * tree-if-conv.c (pass_if_conversion): Likewise.
11354 * tree-into-ssa.c (pass_build_ssa): Likewise.
11355 * tree-mudflap.c (pass_mudflap_1): Likewise.
11356 (pass_mudflap_2): Likewise.
11357 * tree-nomudflap.c (pass_mudflap_1): Likewise.
11358 (pass_mudflap_2): Likewise.
11359 * tree-nrv.c (pass_return_slot): Likewise.
11360 * tree-object-size.c (pass_object_sizes): Likewise.
11361 * tree-optimize.c (pass_all_optimizations): Likewise.
11362 (pass_early_local_passes): Likewise.
11363 (pass_all_early_optimizations): Likewise.
11364 (pass_cleanup_cfg): Likewise.
11365 (pass_cleanup_cfg_post_optimizing): Likewise.
11366 (pass_free_datastructures): Likewise.
11367 (pass_free_cfg_annotations): Likewise.
11368 (pass_fixup_cfg): Likewise.
11369 (pass_init_datastructures): Likewise.
11370 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
11371 (pass_late_warn_uninitialized): Likewise.
11372 (pass_update_address_taken): Likewise.
11373 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
11374 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
11375 (pass_cse_sincos): Likewise.
11376 (pass_convert_to_rsqrt): Likewise.
11377 * tree-ssa-structalias.c (pass_build_alias): Likewise.
11378 * tree-stdarg.c (pass_stdarg): Likewise.
11379 * tree-tailcall.c (pass_tail_recursion): Likewise.
11380 (pass_tail_calls): Likewise.
11381 * tree-vect-generic.c (pass_lower_vector): Likewise.
11382 (pass_lower_vector_ssa): Likewise.
11383 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
11384
0051ef59
JM
113852009-04-16 Joseph Myers <joseph@codesourcery.com>
11386
11387 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
11388 XLR entry.
11389 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
11390 Handle -march=xlr.
11391 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
11392 logical and signext.
11393
b3f8558a
KK
113942009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
11395
11396 PR target/39767
11397 * config/sh/predicates.md (arith_operand): Check if the operand
11398 of TRUNCATE is a REG.
11399
f57597d9
KH
114002009-04-16 Kazu Hirata <kazu@codesourcery.com>
11401
11402 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
11403 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
11404
b172d063
KH
114052009-04-16 Kazu Hirata <kazu@codesourcery.com>
11406
11407 * tree-iterator.c (tsi_split_statement_list_after,
11408 tsi_split_statement_list_before): Remove.
11409 * tree-iterator.h: Remove the prototypes for
532bfb0a 11410 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 11411
78fe4f1f
KH
114122009-04-16 Kazu Hirata <kazu@codesourcery.com>
11413
11414 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
11415 * tree-ssa-propagate.h: Remove the prototype for
11416 stmt_makes_single_load.
11417
43dd3201
KH
114182009-04-16 Kazu Hirata <kazu@codesourcery.com>
11419
11420 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
11421 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
11422
4252a4aa
KH
114232009-04-16 Kazu Hirata <kazu@codesourcery.com>
11424
11425 * tree-iterator.c (EXPR_LAST_BODY): Remove.
11426
bfb69968
KH
114272009-04-16 Kazu Hirata <kazu@codesourcery.com>
11428
11429 * except.c (eh_region_outer_p): Remove.
11430 * except.h: Remove the prototype for eh_region_outer_p.
11431
c7db7fa5
KH
114322009-04-16 Kazu Hirata <kazu@codesourcery.com>
11433
11434 * function.c (current_function_assembler_name): Remove.
11435 * function.h: Remove the prototype for
11436 current_function_assembler_name.
11437
efc0b2bd
ILT
114382009-04-16 Ian Lance Taylor <iant@google.com>
11439
532bfb0a 11440 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
11441 (add_reg_note): Call alloc_reg_note.
11442 * rtl.h (alloc_reg_note): Declare.
11443 * combine.c (try_combine): Use alloc_reg_note.
11444 (recog_for_combine, move_deaths): Likewise.
11445 (distribute_notes): Use alloc_reg_note and add_reg_note.
11446 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
11447 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
11448 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
11449
6080348f
VM
114502009-04-16 Vladimir Makarov <vmakarov@redhat.com>
11451
11452 PR rtl-optimization/39762
11453 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
11454 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 11455 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 11456
6080348f
VM
11457 * ira-conflicts.c (process_regs_for_copy): Use function
11458 ira_get_register_move_cost instead of global
11459 ira_register_move_cost.
11460
11461 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
11462 color_pass, move_spill_restore, update_curr_costs): Ditto.
11463
11464 * ira-lives.c (process_single_reg_class_operands): Ditto.
11465
11466 * ira-emit.c (emit_move_list): Ditto.
11467
11468 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
11469 (record_reg_classes): Ditto. Use functions
11470 ira_get_register_move_cost and ira_get_may_move_cost instead of
11471 global vars ira_register_move_cost, ira_may_move_out_cost and
11472 ira_may_move_in_cost.
11473 (record_address_regs): Don't call ira_init_register_move_cost.
11474 Use function ira_get_may_move_cost instead of global
11475 ira_may_move_in_cost.
11476 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 11477 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 11478 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 11479
646bea10
RG
114802009-04-16 Richard Guenther <rguenther@suse.de>
11481
11482 * tree-cfg.c (verify_gimple_assign_binary):
11483 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
11484 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
11485 (create_general_new_stmt): Note that this function is broken.
11486
02e819ff
RAE
114872009-04-16 Rafael Avila de Espindola <espindola@google.com>
11488
11489 * common.opt (fhelp): Add Var(help_flag).
11490 * gcc-plugin.h (plugin_info): Add help.
11491 * plugin.c (plugin_name_args): Add help.
11492 (register_plugin_info): Set plugin->help.
11493 (print_help_one_plugin): New.
11494 (print_plugins_help): New.
11495 * plugin.h (print_plugins_help): New.
11496 * toplev.c (toplev_main): Call print_plugins_help if needed.
11497
ccacdf06
RG
114982009-04-16 Richard Guenther <rguenther@suse.de>
11499
11500 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
11501 (gimple_ior_addresses_taken_1): New function.
11502 (gimple_ior_addresses_taken): Likewise.
11503 * gimple.h (struct gimple_statement_with_ops_base): Remove
11504 addresses_taken member.
11505 (gimple_ior_addresses_taken): Declare.
11506 (gimple_addresses_taken, gimple_addresses_taken_ptr,
11507 gimple_set_addresses_taken): Remove.
11508 * ipa-reference.c (mark_address): New function.
11509 (scan_stmt_for_static_refs): Use it for marking addresses taken.
11510 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
11511 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
11512 (gimple_add_to_addresses_taken): Remove.
11513 (get_tmr_operands): Call mark_address_taken.
11514 (get_asm_expr_operands): Likewise.
11515 (get_expr_operands): Likewise.
11516 (build_ssa_operands): Do not clear the addresses_taken bitmap.
11517 (free_stmt_operands): Do not free it.
11518 * tree-ssa.c (delete_tree_ssa): Likewise.
11519 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
11520
346ef3fa
RG
115212009-04-16 Richard Guenther <rguenther@suse.de>
11522
11523 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
11524 (walk_stmt_load_store_ops): Likewise.
11525 * gimple.c (get_base_loadstore): New function.
11526 (walk_stmt_load_store_addr_ops): Likewise.
11527 (walk_stmt_load_store_ops): Likewise.
11528 * ipa-pure-const.c (check_op): Simplify.
11529 (check_load, check_store): New functions.
11530 (check_stmt): Use walk_stmt_load_store_ops.
11531 * ipa-reference.c (mark_load): Adjust signature.
11532 (mark_store): Likewise.
11533 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
11534
44e9f006
RAE
115352009-04-16 Rafael Avila de Espindola <espindola@google.com>
11536
11537 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
11538 (plugin_info): New.
11539 * opts.c (common_handle_option): Don't call print_version.
11540 * plugin.c (plugin_name_args): Add version.
11541 (register_plugin_info): New.
11542 (register_callback): Handle PLUGIN_INFO.
11543 (try_init_one_plugin): New.
11544 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
11545 if failed to init.
11546 (finalize_one_plugin): New.
11547 (finalize_plugins): New.
11548 (print_one_plugin): New.
11549 (print_plugins_versions): New.
11550 * plugin.h (print_plugins_versions): New.
11551 (finalize_plugins): New.
11552 * toplev.c (compile_file): Don't call initialize_plugins.
11553 (print_version): Call print_plugins_versions.
11554 (toplev_main): Call initialize_plugins. Print version if needed.
11555 Call finalize_plugins.
11556
41fd0f9b
RAE
115572009-04-16 Rafael Avila de Espindola <espindola@google.com>
11558
11559 * common.opt (fversion): New.
11560 * gcc.c (print_version): New.
11561 (process_command): Don't print the version. Just set print_version.
11562 (main): Print version. Call subprocesses if print_version and
11563 verbose_flag are set.
11564 * opts.c (common_handle_option): Handle OPT_fversion.
11565
550918ca 115662009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 11567 Ira Rosen <irar@il.ibm.com>
550918ca
RG
11568
11569 PR tree-optimization/39698
11570 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
11571 type of the reduction variable. Only generate the def if
11572 it is needed.
11573
11574 * omp-low.c (expand_omp_for_generic): When converting to a pointer
11575 make sure to first convert to an integer of the same precision.
11576 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
11577 the type of the evolution correctly in computing the new
11578 induction variable base.
11579
54634841
RG
115802009-04-16 Richard Guenther <rguenther@suse.de>
11581
11582 PR middle-end/39625
11583 * tree-cfg.c (make_blocks): Split statements with to-be
11584 abnormal SSA names on the lhs.
11585
b6fc2cdb
PB
115862009-04-16 Paolo Bonzini <bonzini@gnu.org>
11587
11588 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
11589 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
11590 * c-typeck.c (really_start_incremental_init): Likewise.
11591 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
11592 (TARGET_INITIALIZER): Remove it.
11593 * target.h (struct target): Remove vector_opaque_p.
11594 * tree.c (build_opaque_vector_type): New.
11595 * tree.h (TYPE_VECTOR_OPAQUE): New.
11596 (build_opaque_vector_type): Declare.
11597 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
11598 * config/rs6000/rs6000.c (build_opaque_vector_type,
11599 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
11600 (rs6000_init_builtins): Use build_opaque_vector_type for
11601 opaque_V4SI_type_node.
11602
a417cdd9
CM
116032009-04-15 Catherine Moore <clm@codesourcery.com>
11604
532bfb0a
AJ
11605 * debug.h (set_name): Declare.
11606 * dwarf2out.c (dwarf2out_set_name): Declare.
11607 (dwarf2_debug_hooks): Add set_name.
11608 (find_AT_string): New.
11609 (add_AT_string): Call find_AT_string.
11610 (dwarf2out_set_name): New.
11611 * cp/decl.c (grokdeclarator): Call set_name.
11612 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
11613 * debug.c (do_nothing_debug_hooks): Likewise.
11614 * dbxout.c (dbx_debug_hooks): Likewise.
11615 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 11616
60839f5d 116172009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 11618
532bfb0a
AJ
11619 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
11620 reg for single-precision FPU.
11621 * config/rs6000/rs6000.md (movsi_internal1): Only for
11622 !TARGET_SINGLE_FPU.
11623 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
11624 single-precision FP regs.
11625
ada39f0b
RG
116262009-04-15 Richard Guenther <rguenther@suse.de>
11627
11628 * omp-low.c (lower_rec_input_clauses): Build correct address
11629 expressions.
11630 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 11631 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
11632 (generate_memset_zero): Fix types.
11633 * tree-profile.c (prepare_instrumented_value): Correctly
11634 widen a pointer.
11635
6866c6e8
ILT
116362009-04-15 Ian Lance Taylor <iant@google.com>
11637
11638 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
11639 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
11640 for -Wall and for -Wc++-compat.
11641 (c_common_post_options): For C++, set warn_enum_compare if not
11642 already set.
11643 * c-tree.h (struct c_expr): Add field original_type.
11644 (build_external_ref): Update declaration.
11645 * c-parser.c (c_parser_braced_init): Set original_type.
11646 (c_parser_initelt): Likewise.
11647 (c_parser_expr_no_commas): Likewise.
11648 (c_parser_conditional_expression): Likewise.
11649 (c_parser_cast_expression): Likewise.
11650 (c_parser_unary_expression): Likewise. Pull setting of
11651 original_code to top of function.
11652 (c_parser_sizeof_expression): Set original_type.
11653 (c_parser_alignof_expression): Likewise.
11654 (c_parser_postfix_expression): Likewise. Pull setting of
11655 original_code to top of function.
532bfb0a 11656 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
11657 (c_parser_postfix_expression_after_primary): Likewise.
11658 (c_parser_expression): Likewise.
11659 * c-typeck.c (build_external_ref): Add type parameter. Change all
11660 callers.
11661 (c_expr_sizeof_expr): Set original_type field.
11662 (parser_build_unary_op): Likewise.
11663 (parser_build_binary_op): Likewise. Optionally warn about
11664 comparisons of enums of different types.
11665 (digest_init): Set original_type field.
11666 (really_start_incremental_init): Likewise.
11667 (push_init_level, pop_init_level): Likewise.
11668 * doc/invoke.texi (Warning Options): -Wenum-compare now
11669 supported in C.
11670
f116fecf
RG
116712009-04-15 Richard Guenther <rguenther@suse.de>
11672
11673 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
11674 out a necessary conversion.
11675 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
11676 names we didn't value number.
11677 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
11678
25e20805
RG
116792009-04-15 Richard Guenther <rguenther@suse.de>
11680
11681 PR tree-optimization/39764
11682 * tree-ssa-ccp.c (get_value): Canonicalize value with
11683 canonicalize_float_value.
11684
90cc3676
JH
116852009-04-15 Jan Hubicka <jh@suse.cz>
11686
11687 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
11688 Wrong version of patch.
11689
6d14c006
JH
116902009-04-15 Jan Hubicka <jh@suse.cz>
11691
11692 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
11693
5afaa917
NS
116942009-04-15 Nathan Sidwell <nathan@codesourcery.com>
11695
11696 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
11697 our distinct integral and vector types.
11698
3b482fca
RAE
116992009-04-15 Rafael Avila de Espindola <espindola@google.com>
11700
11701 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
11702 * init.c (build_vtbl_address): Remove call to assemble_external.
11703
6cd1d2e2
DJ
117042009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
11705
11706 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
11707 output for other floating point modes.
11708
dab71827
DN
117092009-04-14 Diego Novillo <dnovillo@google.com>
11710
11711 * diagnostic.c (diagnostic_report_diagnostic): Do not
11712 warn about loaded plugins for DK_ERROR and DK_WARNING.
11713 * c-decl.c (declspecs_add_type): Move call to
11714 invoke_plugin_callbacks ...
11715 * c-parser.c (c_parser_declspecs): ... here.
11716 * plugin.c (dump_active_plugins): Tidy output.
11717
68a607d8
DN
117182009-04-14 Diego Novillo <dnovillo@google.com>
11719 Le-Chun Wu <lcwu@google.com>
11720
11721 * configure.ac: Add --enable-plugin support.
11722 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
11723 * Makefile.in (PLUGIN_H): Define.
11724 Export ENABLE_PLUGIN and GMPINC to site.exp.
11725 Add PLUGINLIBS to link command.
11726 Add/modify dependencies for plugin.o and files including plugin.h.
11727 (plugin.o): New.
11728 * config.in: Regenerate.
2ba9daa7 11729
68a607d8
DN
11730 * opts.c (common_handle_option): Handle OPT_fplugin_ and
11731 OPT_fplugin_arg_.
11732
117332009-04-14 Le-Chun Wu <lcwu@google.com>
11734
11735 * tree-pass.h (register_one_dump_file): Add a prototype for
11736 register_one_dump_file.
11737 * toplev.c (compile_file): Call initialize_plugins.
11738 (do_compile): Call invoke_plugin_callbacks.
11739 (toplev_main): Call invoke_plugin_callbacks.
11740 * common.opt: Add -fplugin= and -fplugin-arg-.
11741 * gcc-plugin.h: New public header file for plugins to include.
11742 * plugin.c: New source file.
11743 * plugin.h: New internal header file.
11744 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 11745
68a607d8
DN
11746 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
11747
117482009-04-14 Diego Novillo <dnovillo@google.com>
11749
11750 * doc/plugins.texi: New.
11751 * doc/gccint.texi: Add reference to Plugins chapter.
11752 * doc/invoke.texi: Document -fplugin and -fplugin-arg
11753 * diagnostic.c (diagnostic_report_diagnostic): Warn about
11754 loaded plugins, if any.
11755 * timevar.def (TV_PLUGIN_INIT): Define.
11756 (TV_PLUGIN_RUN): Define.
11757 * plugin.c: Include timevar.h
11758 (plugins_active_p): New.
11759 (dump_active_plugins): New.
11760 (debug_active_plugins): New.
11761
50617257
JM
117622009-04-14 Joseph Myers <joseph@codesourcery.com>
11763
11764 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
11765 library paths.
11766 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
11767
b32f6fff
KH
117682009-04-14 Kazu Hirata <kazu@codesourcery.com>
11769
11770 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
11771 the same as a minus without a shift.
11772
85d04fa2
NC
117732009-04-14 Nick Clifton <nickc@redhat.com>
11774
11775 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
11776 comparisons with small integers will always produce a short
11777 branch.
11778
e495a0c8
RAE
117792009-04-14 Rafael Avila de Espindola <espindola@google.com>
11780
11781 Merge:
e495a0c8
RAE
11782 2008-12-19 Diego Novillo <dnovillo@google.com>
11783
532bfb0a 11784 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 11785
ad41bd84 117862009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
11787
11788 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
11789 verification.
11790 (verify_gimple_assign_binary): Likewise. Handle shifts and
11791 rotates correctly.
11792 (verify_gimple_phi): Print the mismatched argument position.
11793 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
11794 Fix types.
11795 (vect_update_init_of_dr): Likewise.
11796 * matrix-reorg.c (transform_access_sites): Do what the
11797 comment suggests.
11798 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
11799
60839f5d 118002009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
11801
11802 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
11803 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
11804 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 11805 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
11806 remove duplicate config
11807
b0e2d008
DR
118082009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
11809
11810 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
11811 file_name:line_number type locator of the call site.
2ba9daa7 11812
1244a8b7
VM
118132009-04-13 Vladimir Makarov <vmakarov@redhat.com>
11814
11815 * genautomata.c: Put blank after comma.
11816 (automaton_decls): New.
11817 (struct unit_usage): Add comments to member next.
11818 (store_alt_unit_usage): Keep the list ordered.
11819 (unit_present_on_list_p, equal_alternatives_p): New.
11820 (check_regexp_units_distribution): Check units distribution
11821 correctness correctly.
11822 (main): Don't write automata if error is found. Return correct
11823 exit code.
2ba9daa7 11824
1244a8b7
VM
11825 * config/m68k/cf.md (cfv4_ds): Remove.
11826 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
11827 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
11828
11829 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
11830 power4-load-ext, power4-store, power4-store-update,
11831 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
11832 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
11833 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
11834 power4-sqrt, power4-isync): Modify reservation to make correct
11835 unit distribution to automata.
11836
11837 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
11838 power5-store-update, power5-two, power5-three, power5-lmul,
11839 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 11840
f7dd1864
AN
118412009-04-13 Adam Nemet <anemet@caviumnetworks.com>
11842
11843 * except.c (pass_set_nothrow_function_flags): Set name and add
11844 TODO_dump_func.
11845 (set_nothrow_function_flags): Mention in the dump file when
11846 changing a function to nothrow.
11847
59a1171f
OS
118482009-04-13 Ozkan Sezer <sezeroz@gmail.com>
11849
11850 PR/39066
11851 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
11852 instead of unsigned long.
11853
934c2060
RR
118542009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11855
f7dd1864
AN
11856 * config/arm/arm.c (return_used_this_function): Remove.
11857 (arm_output_function_prologue): Remove use of
934c2060 11858 return_used_this_function.
f7dd1864 11859 (output_return_instruction): Replace use of
934c2060
RR
11860 return_used_this_function
11861 by cfun->machine->return_used_this_function.
f7dd1864
AN
11862 (arm_output_epilogue): Likewise.
11863 (arm_output_function_epilogue): Likewise.
11864 (thumb_unexpanded_epilogue): Likewise.
11865 * config/arm/arm.h (struct machine_function):
934c2060 11866 New member return_used_this_function.
f7dd1864 11867
ae5cc016
MM
118682009-04-12 Mark Mitchell <mark@codesourcery.com>
11869
11870 * doc/install.texi: Correct description of default directory for
11871 --with-gxx-include-dir.
11872
a0ce68df 118732009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
11874
11875 * fold-const.c (build_range_check): Properly deal with enumeral and
11876 boolean base types.
11877
3906a4a1
SB
118782009-04-12 Steven Bosscher <steven@gcc.gnu.org>
11879
11880 * doc/invoke.texi (max_gcse_passes): Remove documentation.
11881 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
11882 * params.h (MAX_GCSE_PASSES): Remove.
11883 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
11884 in sequence. Remove ability to run multiple passes.
11885 (bypass_jumps): Report run as third CPROP pass.
11886
efaadb93
AN
118872009-04-12 Adam Nemet <anemet@caviumnetworks.com>
11888
11889 PR middle-end/39651
11890 * except.c (can_throw_external): Look at each insn in a SEQUENCE
11891 when deciding whether the whole SEQUENCE can throw.
11892
4c48007b
UB
118932009-04-12 Uros Bizjak <ubizjak@gmail.com>
11894
11895 PR target/39740
11896 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
11897 offseted label references.
11898
b4104018
JH
118992009-04-11 Jan Hubicka <jh@suse.cz>
11900
11901 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
11902
32848948
RG
119032009-04-11 Richard Guenther <rguenther@suse.de>
11904
11905 PR middle-end/39732
11906 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
11907 return variables as TREE_ADDRESSABLE.
11908
8810712e
RG
119092009-04-11 Richard Guenther <rguenther@suse.de>
11910
11911 PR tree-optimization/39713
11912 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
11913 reference trees have SSA_NAME operands.
11914
fa78c0c1
RG
119152009-04-11 Richard Guenther <rguenther@suse.de>
11916
11917 PR c/39712
11918 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
11919 address expressions.
11920
4d722130
DK
119212009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
11922
11923 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
11924 match changes in Cygwin 1.7
11925 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
11926 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
11927
567a90f5
PB
119282009-04-10 Paolo Bonzini <bonzini@gnu.org>
11929
11930 PR tree-optimization/39701
11931 * doc/invoke.texi (Optimization Options): Document change in
11932 meaning and initialization of -fdelete-null-pointer-checks.
11933
1ad2f450
L
119342009-04-10 H.J. Lu <hongjiu.lu@intel.com>
11935
11936 PR middle-end/39701
11937 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
11938
11939 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
11940 here.
11941
11942 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
11943
1afc5373
CF
119442009-04-10 Chao-ying Fu <fu@mips.com>
11945
11946 * doc/tm.texi (Instruction Output): Document
11947 TARGET_ASM_FINAL_POSTSCAN_INSN.
11948 * target.h (final_postscan_insn): New field in asm_out.
11949 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
11950 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
11951 * final.c (final_scan_insn): Call
11952 targetm.asm_out.final_postscan_insn after outputting
11953 an asm macro and a normal instruction.
11954
11955 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
11956 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
11957 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
11958 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
11959 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
11960
4d35e75c
PB
119612009-04-10 Paolo Bonzini <bonzini@gnu.org>
11962
11963 PR middle-end/39701
1ad2f450
L
11964 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
11965 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 11966
62c49b83
L
119672009-04-10 H.J. Lu <hongjiu.lu@intel.com>
11968
11969 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
11970
80558628
L
119712009-04-09 H.J. Lu <hongjiu.lu@intel.com>
11972
11973 PR target/39678
11974 * config/i386/i386.c (classify_argument): Handle SCmode with
11975 (bit_offset % 64) != 0.
11976
8c70d28b
SL
119772009-04-09 Sandra Loosemore <sandra@codesourcery.com>
11978
11979 * doc/invoke.texi (Optimize Options): Add cross-reference to
11980 -Q --help=optimizers examples.
11981
e1ff19bf
BE
119822009-04-10 Ben Elliston <bje@au.ibm.com>
11983
11984 PR target/36800
11985 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
11986 regalign for the reg == fpr and TDmode case.
11987
52daca75
DA
119882009-04-09 David Ayers <ayers@fsfe.org>
11989
11990 PR objc/29200
11991 * objc/objc-act.c (warn_with_method): Remove helper function.
11992 (check_duplicates): Call warning and inform directly.
11993 (really_start_method): Likewise.
11994
b45f0e58
PB
119952009-04-09 Paolo Bonzini <bonzini@gnu.org>
11996
11997 * expmed.c (expand_divmod): Always use a comparison for a division
11998 by a large unsigned integer.
11999
1ad2f450
L
12000 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
12001 for things others than variables or functions as nonzero.
b45f0e58 12002
748086b7
JJ
120032009-04-09 Nick Clifton <nickc@redhat.com>
12004
12005 * unwind-compat.c: Change copyright header to refer to version
12006 3 of the GNU General Public License with version 3.1 of the
12007 GCC Runtime Library Exception and to point readers at the
7a715bba 12008 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
12009 * config/alpha/crtfastmath.c: Likewise.
12010 * config/alpha/linux-unwind.h: Likewise.
12011 * config/alpha/qrnnd.asm: Likewise.
12012 * config/alpha/vms-crt0-64.c: Likewise.
12013 * config/alpha/vms-crt0.c: Likewise.
12014 * config/alpha/vms-dwarf2.asm: Likewise.
12015 * config/alpha/vms-dwarf2eh.asm: Likewise.
12016 * config/alpha/vms-psxcrt0-64.c: Likewise.
12017 * config/alpha/vms-psxcrt0.c: Likewise.
12018 * config/alpha/vms_tramp.asm: Likewise.
12019 * config/arc/initfini.c: Likewise.
12020 * config/arc/lib1funcs.asm: Likewise.
12021 * config/arm/bpabi-v6m.S: Likewise.
12022 * config/arm/bpabi.S: Likewise.
12023 * config/arm/bpabi.c: Likewise.
12024 * config/arm/crti.asm: Likewise.
12025 * config/arm/crtn.asm: Likewise.
12026 * config/arm/ieee754-df.S: Likewise.
12027 * config/arm/ieee754-sf.S: Likewise.
12028 * config/arm/lib1funcs.asm: Likewise.
12029 * config/arm/libunwind.S: Likewise.
12030 * config/arm/linux-atomic.c: Likewise.
12031 * config/arm/mmintrin.h: Likewise.
12032 * config/arm/pr-support.c: Likewise.
12033 * config/arm/unaligned-funcs.c: Likewise.
12034 * config/arm/unwind-arm.c: Likewise.
12035 * config/arm/unwind-arm.h: Likewise.
12036 * config/avr/libgcc.S: Likewise.
12037 * config/bfin/crti.s: Likewise.
12038 * config/bfin/crtlibid.s: Likewise.
12039 * config/bfin/crtn.s: Likewise.
12040 * config/bfin/lib1funcs.asm: Likewise.
12041 * config/bfin/linux-unwind.h: Likewise.
12042 * config/cris/arit.c: Likewise.
12043 * config/cris/cris_abi_symbol.c: Likewise.
12044 * config/darwin-64.c: Likewise.
12045 * config/darwin-crt2.c: Likewise.
12046 * config/darwin-crt3.c: Likewise.
12047 * config/darwin.h: Likewise.
12048 * config/dbxelf.h: Likewise.
12049 * config/dfp-bit.c: Likewise.
12050 * config/dfp-bit.h: Likewise.
12051 * config/elfos.h: Likewise.
12052 * config/fixed-bit.c: Likewise.
12053 * config/fixed-bit.h: Likewise.
12054 * config/fp-bit.c: Likewise.
12055 * config/fp-bit.h: Likewise.
12056 * config/fr30/crti.asm: Likewise.
12057 * config/fr30/crtn.asm: Likewise.
12058 * config/fr30/lib1funcs.asm: Likewise.
12059 * config/freebsd-spec.h: Likewise.
12060 * config/frv/cmovd.c: Likewise.
12061 * config/frv/cmovh.c: Likewise.
12062 * config/frv/cmovw.c: Likewise.
12063 * config/frv/frvbegin.c: Likewise.
12064 * config/frv/frvend.c: Likewise.
12065 * config/frv/lib1funcs.asm: Likewise.
12066 * config/glibc-stdint.h: Likewise.
12067 * config/h8300/clzhi2.c: Likewise.
12068 * config/h8300/crti.asm: Likewise.
12069 * config/h8300/crtn.asm: Likewise.
12070 * config/h8300/ctzhi2.c: Likewise.
12071 * config/h8300/fixunssfsi.c: Likewise.
12072 * config/h8300/lib1funcs.asm: Likewise.
12073 * config/h8300/parityhi2.c: Likewise.
12074 * config/h8300/popcounthi2.c: Likewise.
12075 * config/i386/ammintrin.h: Likewise.
12076 * config/i386/att.h: Likewise.
12077 * config/i386/avxintrin.h: Likewise.
12078 * config/i386/biarch64.h: Likewise.
12079 * config/i386/bmmintrin.h: Likewise.
12080 * config/i386/cpuid.h: Likewise.
12081 * config/i386/cross-stdarg.h: Likewise.
12082 * config/i386/crtfastmath.c: Likewise.
12083 * config/i386/crtprec.c: Likewise.
12084 * config/i386/cygming-crtbegin.c: Likewise.
12085 * config/i386/cygming-crtend.c: Likewise.
12086 * config/i386/cygwin.asm: Likewise.
12087 * config/i386/emmintrin.h: Likewise.
12088 * config/i386/gmm_malloc.h: Likewise.
12089 * config/i386/gthr-win32.c: Likewise.
12090 * config/i386/i386.h: Likewise.
12091 * config/i386/immintrin.h: Likewise.
12092 * config/i386/linux-unwind.h: Likewise.
12093 * config/i386/linux64.h: Likewise.
12094 * config/i386/mm3dnow.h: Likewise.
12095 * config/i386/mmintrin-common.h: Likewise.
12096 * config/i386/mmintrin.h: Likewise.
12097 * config/i386/nmmintrin.h: Likewise.
12098 * config/i386/pmm_malloc.h: Likewise.
12099 * config/i386/pmmintrin.h: Likewise.
12100 * config/i386/smmintrin.h: Likewise.
12101 * config/i386/sol2-c1.asm: Likewise.
12102 * config/i386/sol2-ci.asm: Likewise.
12103 * config/i386/sol2-cn.asm: Likewise.
12104 * config/i386/sol2-gc1.asm: Likewise.
12105 * config/i386/tmmintrin.h: Likewise.
12106 * config/i386/unix.h: Likewise.
12107 * config/i386/w32-unwind.h: Likewise.
12108 * config/i386/wmmintrin.h: Likewise.
12109 * config/i386/x86-64.h: Likewise.
12110 * config/i386/x86intrin.h: Likewise.
12111 * config/i386/xmmintrin.h: Likewise.
12112 * config/ia64/crtbegin.asm: Likewise.
12113 * config/ia64/crtend.asm: Likewise.
12114 * config/ia64/crtfastmath.c: Likewise.
12115 * config/ia64/crti.asm: Likewise.
12116 * config/ia64/crtn.asm: Likewise.
12117 * config/ia64/fde-glibc.c: Likewise.
12118 * config/ia64/lib1funcs.asm: Likewise.
12119 * config/ia64/linux-unwind.h: Likewise.
12120 * config/ia64/quadlib.c: Likewise.
12121 * config/ia64/unwind-ia64.c: Likewise.
12122 * config/linux.h: Likewise.
12123 * config/m32c/m32c-lib1.S: Likewise.
12124 * config/m32c/m32c-lib2-trapv.c: Likewise.
12125 * config/m32c/m32c-lib2.c: Likewise.
12126 * config/m32r/initfini.c: Likewise.
12127 * config/m68hc11/larith.asm: Likewise.
12128 * config/m68hc11/m68hc11-crt0.S: Likewise.
12129 * config/m68k/cf.md: Likewise.
12130 * config/m68k/crti.s: Likewise.
12131 * config/m68k/crtn.s: Likewise.
12132 * config/m68k/lb1sf68.asm: Likewise.
12133 * config/m68k/linux-unwind.h: Likewise.
12134 * config/mcore/crti.asm: Likewise.
12135 * config/mcore/crtn.asm: Likewise.
12136 * config/mcore/lib1.asm: Likewise.
12137 * config/mips/linux-unwind.h: Likewise.
12138 * config/mips/loongson.h: Likewise.
12139 * config/mips/mips16.S: Likewise.
12140 * config/mmix/crti.asm: Likewise.
12141 * config/mmix/crtn.asm: Likewise.
12142 * config/pa/fptr.c: Likewise.
12143 * config/pa/hpux-unwind.h: Likewise.
12144 * config/pa/lib2funcs.asm: Likewise.
12145 * config/pa/linux-atomic.c: Likewise.
12146 * config/pa/linux-unwind.h: Likewise.
12147 * config/pa/milli64.S: Likewise.
12148 * config/pa/quadlib.c: Likewise.
12149 * config/pa/stublib.c: Likewise.
12150 * config/picochip/libgccExtras/adddi3.asm: Likewise.
12151 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
12152 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
12153 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
12154 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
12155 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
12156 * config/picochip/libgccExtras/divmod15.asm: Likewise.
12157 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
12158 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
12159 * config/picochip/libgccExtras/longjmp.asm: Likewise.
12160 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
12161 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
12162 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
12163 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
12164 * config/picochip/libgccExtras/setjmp.asm: Likewise.
12165 * config/picochip/libgccExtras/subdi3.asm: Likewise.
12166 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
12167 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
12168 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
12169 * config/rs6000/750cl.h: Likewise.
12170 * config/rs6000/altivec.h: Likewise.
12171 * config/rs6000/biarch64.h: Likewise.
12172 * config/rs6000/crtresfpr.asm: Likewise.
12173 * config/rs6000/crtresgpr.asm: Likewise.
12174 * config/rs6000/crtresxfpr.asm: Likewise.
12175 * config/rs6000/crtresxgpr.asm: Likewise.
12176 * config/rs6000/crtsavfpr.asm: Likewise.
12177 * config/rs6000/crtsavgpr.asm: Likewise.
12178 * config/rs6000/darwin-asm.h: Likewise.
12179 * config/rs6000/darwin-fallback.c: Likewise.
12180 * config/rs6000/darwin-fpsave.asm: Likewise.
12181 * config/rs6000/darwin-ldouble.c: Likewise.
12182 * config/rs6000/darwin-tramp.asm: Likewise.
12183 * config/rs6000/darwin-unwind.h: Likewise.
12184 * config/rs6000/darwin-vecsave.asm: Likewise.
12185 * config/rs6000/darwin-world.asm: Likewise.
12186 * config/rs6000/e500crtres32gpr.asm: Likewise.
12187 * config/rs6000/e500crtres64gpr.asm: Likewise.
12188 * config/rs6000/e500crtres64gprctr.asm: Likewise.
12189 * config/rs6000/e500crtrest32gpr.asm: Likewise.
12190 * config/rs6000/e500crtrest64gpr.asm: Likewise.
12191 * config/rs6000/e500crtresx32gpr.asm: Likewise.
12192 * config/rs6000/e500crtresx64gpr.asm: Likewise.
12193 * config/rs6000/e500crtsav32gpr.asm: Likewise.
12194 * config/rs6000/e500crtsav64gpr.asm: Likewise.
12195 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
12196 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
12197 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
12198 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
12199 * config/rs6000/eabi-ci.asm: Likewise.
12200 * config/rs6000/eabi-cn.asm: Likewise.
12201 * config/rs6000/eabi.asm: Likewise.
12202 * config/rs6000/linux-unwind.h: Likewise.
12203 * config/rs6000/linux64.h: Likewise.
12204 * config/rs6000/paired.h: Likewise.
12205 * config/rs6000/paired.md: Likewise.
12206 * config/rs6000/ppc64-fp.c: Likewise.
12207 * config/rs6000/ppu_intrinsics.h: Likewise.
12208 * config/rs6000/rs6000.h: Likewise.
12209 * config/rs6000/si2vmx.h: Likewise.
12210 * config/rs6000/sol-ci.asm: Likewise.
12211 * config/rs6000/sol-cn.asm: Likewise.
12212 * config/rs6000/spe.h: Likewise.
12213 * config/rs6000/spu2vmx.h: Likewise.
12214 * config/rs6000/sysv4.h: Likewise.
12215 * config/rs6000/tramp.asm: Likewise.
12216 * config/rs6000/vec_types.h: Likewise.
12217 * config/s390/linux-unwind.h: Likewise.
12218 * config/s390/tpf-unwind.h: Likewise.
12219 * config/score/crti.asm: Likewise.
12220 * config/score/crtn.asm: Likewise.
12221 * config/sh/crt1.asm: Likewise.
12222 * config/sh/crti.asm: Likewise.
12223 * config/sh/crtn.asm: Likewise.
12224 * config/sh/divtab-sh4-300.c: Likewise.
12225 * config/sh/divtab-sh4.c: Likewise.
12226 * config/sh/divtab.c: Likewise.
12227 * config/sh/lib1funcs-4-300.asm: Likewise.
12228 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
12229 * config/sh/lib1funcs.asm: Likewise.
12230 * config/sh/lib1funcs.h: Likewise.
12231 * config/sh/linux-atomic.asm: Likewise.
12232 * config/sh/linux-unwind.h: Likewise.
12233 * config/sh/shmedia.h: Likewise.
12234 * config/sh/sshmedia.h: Likewise.
12235 * config/sh/ushmedia.h: Likewise.
12236 * config/sparc/crtfastmath.c: Likewise.
12237 * config/sparc/linux-unwind.h: Likewise.
12238 * config/sparc/sol2-c1.asm: Likewise.
12239 * config/sparc/sol2-ci.asm: Likewise.
12240 * config/sparc/sol2-cn.asm: Likewise.
12241 * config/spu/divmodti4.c: Likewise.
12242 * config/spu/divv2df3.c: Likewise.
12243 * config/spu/float_disf.c: Likewise.
12244 * config/spu/float_unsdidf.c: Likewise.
12245 * config/spu/float_unsdisf.c: Likewise.
12246 * config/spu/float_unssidf.c: Likewise.
12247 * config/spu/mfc_multi_tag_release.c: Likewise.
12248 * config/spu/mfc_multi_tag_reserve.c: Likewise.
12249 * config/spu/mfc_tag_release.c: Likewise.
12250 * config/spu/mfc_tag_reserve.c: Likewise.
12251 * config/spu/mfc_tag_table.c: Likewise.
12252 * config/spu/multi3.c: Likewise.
12253 * config/spu/spu_internals.h: Likewise.
12254 * config/spu/spu_intrinsics.h: Likewise.
12255 * config/spu/spu_mfcio.h: Likewise.
12256 * config/spu/vec_types.h: Likewise.
12257 * config/spu/vmx2spu.h: Likewise.
12258 * config/stormy16/stormy16-lib2.c: Likewise.
12259 * config/svr4.h: Likewise.
12260 * config/sync.c: Likewise.
12261 * config/v850/lib1funcs.asm: Likewise.
12262 * config/vxlib-tls.c: Likewise.
12263 * config/vxlib.c: Likewise.
12264 * config/vxworks-dummy.h: Likewise.
12265 * config/xtensa/crti.asm: Likewise.
12266 * config/xtensa/crtn.asm: Likewise.
12267 * config/xtensa/ieee754-df.S: Likewise.
12268 * config/xtensa/ieee754-sf.S: Likewise.
12269 * config/xtensa/lib1funcs.asm: Likewise.
12270 * config/xtensa/lib2funcs.S: Likewise.
12271 * config/xtensa/linux-unwind.h: Likewise.
12272 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
12273 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
12274 * coretypes.h: Likewise.
12275 * crtstuff.c: Likewise.
12276 * defaults.h: Likewise.
12277 * dwarf2.h: Likewise.
12278 * emutls.c: Likewise.
12279 * gbl-ctors.h: Likewise.
12280 * gcov-io.h: Likewise.
12281 * ginclude/float.h: Likewise.
12282 * ginclude/iso646.h: Likewise.
12283 * ginclude/stdarg.h: Likewise.
12284 * ginclude/stdbool.h: Likewise.
12285 * ginclude/stddef.h: Likewise.
12286 * ginclude/stdfix.h: Likewise.
12287 * ginclude/stdint-gcc.h: Likewise.
12288 * ginclude/tgmath.h: Likewise.
12289 * gthr-aix.h: Likewise.
12290 * gthr-dce.h: Likewise.
12291 * gthr-gnat.c: Likewise.
12292 * gthr-gnat.h: Likewise.
12293 * gthr-lynx.h: Likewise.
12294 * gthr-mipssde.h: Likewise.
12295 * gthr-nks.h: Likewise.
12296 * gthr-posix.c: Likewise.
12297 * gthr-posix.h: Likewise.
12298 * gthr-posix95.h: Likewise.
12299 * gthr-rtems.h: Likewise.
12300 * gthr-single.h: Likewise.
12301 * gthr-solaris.h: Likewise.
12302 * gthr-tpf.h: Likewise.
12303 * gthr-vxworks.h: Likewise.
12304 * gthr-win32.h: Likewise.
12305 * gthr.h: Likewise.
12306 * libgcc2.c: Likewise.
12307 * libgcc2.h: Likewise.
12308 * libgcov.c: Likewise.
12309 * tsystem.h: Likewise.
12310 * typeclass.h: Likewise.
12311 * unwind-c.c: Likewise.
12312 * unwind-compat.h: Likewise.
12313 * unwind-dw2-fde-compat.c: Likewise.
12314 * unwind-dw2-fde-darwin.c: Likewise.
12315 * unwind-dw2-fde-glibc.c: Likewise.
12316 * unwind-dw2-fde.c: Likewise.
12317 * unwind-dw2-fde.h: Likewise.
12318 * unwind-dw2.c: Likewise.
12319 * unwind-dw2.h: Likewise.
12320 * unwind-generic.h: Likewise.
12321 * unwind-pe.h: Likewise.
12322 * unwind-sjlj.c: Likewise.
12323 * unwind.inc: Likewise.
12324 * config/arm/neon-gen.ml: Change generated copyright header to
12325 refer to version 3 of the GNU General Public License with
12326 version 3.1 of the GCC Runtime Library Exception and to point
12327 readers at the COPYING3 and COPYING3.RUNTIME files and the
12328 FSF's license web page.
12329 * config/arm/arm_neon.h: Regenerate.
12330
123312009-04-09 Jakub Jelinek <jakub@redhat.com>
12332
12333 * config/cris/cris.md: Change copyright header to refer to version
12334 3 of the GNU General Public License.
12335 * doc/install.texi2html: Change copyright header to refer to version
12336 3 of the GNU General Public License and to point readers at the
12337 COPYING3 file and the FSF's license web page.
12338 * config/vax/linux.h: Likewise.
12339
4a77c72b
PB
123402009-04-09 Paolo Bonzini <bonzini@gnu.org>
12341
1ad2f450
L
12342 * config/i386/i386.md (cmpcc): New.
12343 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
12344 (sync_compare_and_swap_cc*): Delete.
12345
12346 * config/s390/s390.c (s390_compare_emitted): Remove.
12347 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
12348 s390_compare_emitted used to be handled. Assert that modes match.
12349 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
12350 refer to sync_compare_and_swap_ccsi.
12351 * config/s390/s390.h (s390_compare_emitted): Remove.
12352 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
12353 instead of s390_compare_emitted.
12354 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
12355 instead of s390_compare_emitted.
12356 * config/s390/s390.md (cmpcc): New.
12357 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
12358 CC_REGNUM, do not pretend it's set.
12359 (sync_compare_and_swap_cc*): Delete.
12360 * config/s390/predicates.md (cc_reg_operand): New.
12361
12362 * expr.c (sync_compare_and_swap_cc): Delete.
12363 * optabs.h (sync_compare_and_swap_cc): Delete.
12364 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
12365 is being used with can_compare_p.
12366 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
12367 (find_cc_set): New.
12368 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
12369 look for a MODE_CC set instead. Use emit_store_flag.
12370 (expand_compare_and_swap_loop): Likewise, with some additional
12371 complication to avoid a force_reg when useless. Use
12372 emit_cmp_and_jump_insns.
12373 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
12374 * doc/md.texi (sync_compare_and_swap_cc): Merge with
12375 sync_compare_and_swap documentation.
4a77c72b 12376
0c0efb33
JH
123772009-04-09 Jan Hubicka <jh@suse.cz>
12378
12379 * except.c (find_prev_try): Break out from ....
12380 (duplicate_eh_regions): ... here; properly update prev_try pointers
12381 when duplication part of tree.
12382 (dump_eh_tree): Improve dumping.
12383 (verify_eh_region): New.
12384 (verify_eh_tree): Use it.
12385
22a65a54
RG
123862009-04-06 Richard Guenther <rguenther@suse.de>
12387
12388 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
12389 &ARRAY addresses by adjusting their types and prepending
12390 a conversion.
12391 * tree-cfg.c (verify_gimple_assign_single): Verify that
12392 addresses are correct.
12393
f76968e6
RG
123942009-04-09 Richard Guenther <rguenther@suse.de>
12395
12396 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
12397 indices into an array reference if possible.
12398 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
12399 Fold POINTER_PLUS_EXPR statements with invariant address.
12400
c90c5fb5
AM
124012009-04-09 Alan Modra <amodra@bigpond.net.au>
12402
12403 PR target/39634
12404 * config.gcc (powerpc64-*-linux*): Always build biarch.
12405
17cede2e
JM
124062009-04-09 Joseph Myers <joseph@codesourcery.com>
12407
12408 PR c/39613
12409 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
12410 it and pedwarn if this results in an INTEGER_CST.
12411
a3337ea2
KG
124122009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12413
12414 * doc/install.texi: Update minimum GMP version. Remove obsolete
12415 text in MPFR section.
12416
ce9ba79b
JJ
124172009-04-08 Jakub Jelinek <jakub@redhat.com>
12418
12419 * dwarf2out.c (class_scope_p): New static inline.
12420 (class_or_namespace_scope_p): Use it.
12421 (gen_variable_die): Use DW_TAG_member tag for static data member
12422 declarations instead of DW_TAG_variable.
12423
4f0ae266
JJ
12424 PR middle-end/39573
12425 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
12426 variables.
12427
d27f0ddc
RG
124282009-04-08 Richard Guenther <rguenther@suse.de>
12429
12430 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
12431 valueize random data.
12432
557cc596
DE
124332009-04-08 David Edelsohn <edelsohn@gnu.org>
12434
12435 * config.gcc (aix tm_file): Add aix-stdint.h.
12436 (aix tm clause use_gcc_stdint): Set to wrap.
12437 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 12438
75ccc1e7
RG
124392009-04-08 Richard Guenther <rguenther@suse.de>
12440
12441 PR middle-end/36291
12442 * tree-dfa.c (add_referenced_var): Do not recurse into
12443 global initializers.
12444 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
12445 exposed variables.
12446 (fold_const_aggregate_ref): Likewise.
12447
c6963675
PB
124482009-04-08 Paolo Bonzini <bonzini@gnu.org>
12449
6c44cf79
L
12450 * recog.c (ordered_comparison_operator): New.
12451 * gensupport.c (std_preds): Add it.
c6963675
PB
12452 * doc/md.texi (Machine-Independent Predicates): Document it.
12453
6d07ad98
JH
124542009-04-08 Jan Hubicka <jh@suse.cz>
12455
12456 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
12457 * function.h (rtl_eh): Remove exception_handler_label_map.
12458 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
12459 remove_exception_handler_label, for_each_eh_label_1): Remove.
12460 (rtl_remove_unreachable_regions): Remove.
12461 (convert_from_eh_region_ranges): Do not remove unreachable regions.
12462 (find_exception_handler_labels): Don't build the hashtable.
12463 (maybe_remove_eh_handler): Remove.
12464 (for_each_eh_label): Rewrite to walk the tree.
12465 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
12466 * except.h (maybe_remove_eh_handler): Remove.
12467 * passes.c (init_optimization_passes): Schedule second EH cleanup
12468 before out-of-ssa.
12469 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
12470 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
12471
7ddf71e3
PB
124722009-04-08 Paolo Bonzini <bonzini@gnu.org>
12473
12474 * genoutput.c (validate_optab_operands): New.
12475 (gen_insn, gen_expand): Call it.
12476
12477 * genflags.c (gen_insn): Detect misused iterators.
12478 (main): Pass line_no to gen_insn, exit with status 1 on error.
12479
12480 * genextract.c (line_no): Make global.
12481 (VEC_safe_set_locstr): Change assertion to error message.
12482 (main): Exit with status 1 on error.
12483
4d84fe7c
JM
124842009-04-08 Joseph Myers <joseph@codesourcery.com>
12485
12486 PR c/39614
12487 PR c/39673
12488 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12489 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12490 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
12491 * c-convert.c (convert): Do not call fold on results of conversion
12492 functions when the result is a C_MAYBE_CONST_EXPR.
12493 * c-parser.c (c_parser_postfix_expression): Do not fold condition
12494 of __builtin_choose_expr.
12495 * c-typeck.c (remove_c_maybe_const_expr): New.
12496 (build_unary_op, build_conditional_expr, build_compound_expr,
12497 build_binary_op, c_objc_common_truthvalue_conversion): Call
12498 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
12499 integer operands.
12500
60839f5d 125012009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 12502
2ba9daa7 12503 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 12504 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 12505
8e481a2c
DS
125062009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
12507
12508 PR bootstrap/39660
12509 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
12510 mix declarations and code.
12511
ee618c17
BE
125122009-04-08 Ben Elliston <bje@au.ibm.com>
12513
12514 * gcc.c: Replace `CC' with `GCC' throughout.
12515
f2a758a2
L
125162009-04-07 H.J. Lu <hongjiu.lu@intel.com>
12517
12518 * doc/invoke.texi: Document Atom support.
12519
6ea2bd47
JM
125202009-04-07 Jason Merrill <jason@redhat.com>
12521
12522 PR c++/25185
12523 * c-common.h, c-common.c: Add flag_pretty_templates.
12524 * c-opts.c (c_common_handle_option): Set it.
12525 * c.opt: Add -fno-pretty-templates.
12526 * doc/invoke.texi (C++ Dialect Options): Likewise.
12527
fcb82ab0
UB
125282009-04-07 Uros Bizjak <ubizjak@gmail.com>
12529
12530 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
12531 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
12532 (ia64_expand_builtin): Likewise.
12533
dc5e7298
MJ
125342009-04-07 Martin Jambor <mjambor@suse.cz>
12535
12536 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
12537 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
12538 ADDR_EXPRS are include too.
12539
0609b355
RG
125402009-04-07 Richard Guenther <rguenther@suse.de>
12541
12542 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
12543 decls are only used if passes as parameters or if they are
12544 local statics and the call is not to a builtin.
12545 (call_may_clobber_ref_p_1): Likewise.
12546
d8e535fa
PB
125472009-04-07 Paolo Bonzini <bonzini@gnu.org>
12548
12549 * expr.c (do_store_flag): Remove last argument. Simplify code
12550 to avoid duplication of tests already done by can_compare_p.
12551 (expand_expr_real_1): Adjust caller.
12552
c3c64f50
PB
125532009-04-07 Paolo Bonzini <bonzini@gnu.org>
12554
fcb82ab0
UB
12555 * optabs.c (can_compare_p): Test the predicate of a
12556 cbranch and cstore pattern.
c3c64f50 12557
9a53bc17
PB
125582009-04-07 Paolo Bonzini <bonzini@gnu.org>
12559
fcb82ab0
UB
12560 * expr.c (convert_move): Use emit_store_flag instead of
12561 "emulating" it.
9a53bc17 12562
67b8f1c1
PB
125632009-04-07 Paolo Bonzini <bonzini@gnu.org>
12564
fcb82ab0
UB
12565 * config/i386/i386.c (ix86_compare_emitted): Remove.
12566 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
12567 ix86_compare_op0 like ix86_compare_emitted used to be handled.
12568 * config/i386/i386.h (ix86_compare_emitted): Remove.
12569 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
12570 instead of ix86_compare_emitted.
12571 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 12572
44509946
AS
125732009-04-07 Andrew Stubbs <ams@codesourcery.com>
12574
12575 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
12576 Add t-sysroot-suffix to tmake_file.
12577 * config/print-sysroot-suffix.sh: New file.
12578 * config/t-sysroot-suffix: New file.
12579
ca22d882
BE
125802009-04-07 Ben Elliston <bje@au.ibm.com>
12581
12582 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
12583 as the latter produces a warning when the target does not support
12584 infinity.
12585
95aac11b
BE
125862009-04-07 Ben Elliston <bje@au.ibm.com>
12587
12588 * dfp.c: Replace type punning assignments with memcpy throughout.
12589 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 12590
633dd061
AM
125912009-04-07 Alan Modra <amodra@bigpond.net.au>
12592
12593 PR target/39634
12594 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
12595 Include soft-fp/t-softfp after rs6000/t-linux64.
12596
fe0a25ec
EB
125972009-04-06 Eric Botcazou <ebotcazou@adacore.com>
12598
12599 * stor-layout.c (set_sizetype): Use the full precision of their
12600 machine mode for bitsize types.
12601
0c011bc3
L
126022009-04-06 H.J. Lu <hongjiu.lu@intel.com>
12603
12604 * config/i386/i386.md: Revert 2 accidental checkins.
12605
b6837b94 126062009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 12607 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
12608 H.J. Lu <hongjiu.lu@intel.com>
12609
12610 Atom pipeline model, tuning and insn selection.
12611 * config.gcc (atom): Add atom config options and target.
12612
12613 * config/i386/atom.md: New.
12614
12615 * config/i386/i386.c (atom_cost): New cost.
12616 (m_ATOM): New macro flag.
12617 (initial_ix86_tune_features): Set m_ATOM.
12618 (x86_accumulate_outgoing_args): Likewise.
12619 (x86_arch_always_fancy_math_387): Likewise.
12620 (processor_target): Add Atom cost.
12621 (cpu_names): Add Atom cpu name.
12622 (override_options): Set Atom ISA.
12623 (ix86_issue_rate): New case PROCESSOR_ATOM.
12624 (ix86_adjust_cost): Likewise.
12625
12626 * config/i386/i386.h (TARGET_ATOM): New target macro.
12627 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
12628 (TARGET_OPT_AGU): New target option.
12629 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
12630 (processor_type): Add PROCESSOR_ATOM.
12631
12632 * config/i386/i386.md (cpu): Add new value "atom".
12633 (use_carry, movu): New attr.
12634 (atom.md): Include atom.md.
12635 (adddi3_carry_rex64): Set attr "use_carry".
12636 (addqi3_carry): Likewise.
12637 (addhi3_carry): Likewise.
12638 (addsi3_carry): Likewise.
12639 (*addsi3_carry_zext): Likewise.
12640 (subdi3_carry_rex64): Likewise.
12641 (subqi3_carry): Likewise.
12642 (subhi3_carry): Likewise.
12643 (subsi3_carry): Likewise.
12644 (x86_movdicc_0_m1_rex64): Likewise.
12645 (*x86_movdicc_0_m1_se): Likewise.
12646 (x86_movsicc_0_m1): Likewise.
12647 (*x86_movsicc_0_m1_se): Likewise.
12648 (*adddi_1_rex64): Emit add insn as much as possible.
12649 (*addsi_1): Likewise.
12650 (return_internal): Set atom_unit.
12651 (return_internal_long): Likewise.
12652 (return_pop_internal): Likewise.
12653 (*rcpsf2_sse): Set atom_sse_attr attr.
12654 (*qrt<mode>2_sse): Likewise.
12655 (*prefetch_sse): Likewise.
12656
12657 * config/i386/i386-c.c (ix86_target_macros_internal): New case
12658 PROCESSOR_ATOM.
12659 (ix86_target_macros_internal): Likewise.
12660
12661 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
12662 (*prefetch_sse_rex): Likewise.
12663 (sse_rcpv4sf2): Likewise.
12664 (sse_vmrcpv4sf2): Likewise.
12665 (sse_sqrtv4sf2): Likewise.
12666 (<sse>_vmsqrt<mode>2): Likewise.
12667 (sse_ldmxcsr): Likewise.
12668 (sse_stmxcsr): Likewise.
12669 (*sse_sfence): Likewise.
12670 (sse2_clflush): Likewise.
12671 (*sse2_mfence): Likewise.
12672 (*sse2_lfence): Likewise.
12673 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
12674 (<sse>_movup<ssemodesuffixf2c>): Likewise.
12675 (avx_movdqu<avxmodesuffix>): Likewise.
12676 (avx_lddqu<avxmodesuffix>): Likewise.
12677 (sse2_movntv2di): Change attr "type" to "ssemov".
12678 (sse2_movntsi): Likewise.
12679 (rsqrtv8sf2): Change attr "type" to "sseadd".
12680 (sse3_addsubv2df3): Set attr "atom_unit".
12681 (sse3_h<plusminus_insn>v4sf3): Likewise.
12682 (*sse2_pmaddwd): Likewise.
12683 (*vec_extractv2di_1_rex64): Likewise.
12684 (*vec_extractv2di_1_avx): Likewise.
12685 (sse2_psadbw): Likewise.
12686 (ssse3_phaddwv8hi3): Likewise.
12687 (ssse3_phaddwv4hi3): Likewise.
12688 (ssse3_phadddv4si3): Likewise.
12689 (ssse3_phadddv2si3): Likewise.
12690 (ssse3_phaddswv8hi3): Likewise.
12691 (ssse3_phaddswv4hi3): Likewise.
12692 (ssse3_phsubwv8hi3): Likewise.
12693 (ssse3_phsubwv4hi3): Likewise.
12694 (ssse3_phsubdv4si3): Likewise.
12695 (ssse3_phsubdv2si3): Likewise.
12696 (ssse3_phsubswv8hi3): Likewise.
12697 (ssse3_phsubswv4hi3): Likewise.
12698 (ssse3_pmaddubsw128): Likewise.
12699 (sse3_pmaddubsw: Likewise.
12700 (ssse3_palignrti): Likewise.
12701 (ssse3_palignrdi): Likewise.
12702
53e350d3
GP
127032009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
12704
12705 * doc/install.texi (Specific): Fix two cross-references to MinGW.
12706
439ef907
RG
127072009-04-06 Richard Guenther <rguenther@suse.de>
12708
12709 PR tree-optimization/28868
12710 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
12711 of which PHI results we inserted.
12712 (insert_into_preds_of_block): Record inserted PHIs.
12713 (eliminate): Eliminate redundant PHI nodes.
12714 (init_pre): Init inserted_phi_names.
12715
4bad83f5
RG
127162009-04-06 Richard Guenther <rguenther@suse.de>
12717
12718 PR tree-optimization/39643
12719 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
12720 IMAGPART_EXPRs of complex constants.
12721 (execute_fold_all_builtins): If we folded a call queue
12722 TODO_update_address_taken.
12723
570c4247
JH
127242009-04-06 Jan Hubicka <jh@suse.cz>
12725
12726 PR middle-end/39659
12727 * except.c (remove_unreachable_regions): Propagate may_contain_throw
12728 flag.
12729
a460d7a1
AS
127302009-04-06 Andrew Stubbs <ams@codesourcery.com>
12731
12732 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
12733 delay slot.
12734 (ic_invalidate_array): Likewise.
12735
60839f5d 127362009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
12737
12738 * calls.c (emit_library_call_value_1): Fix a problem with parameter
12739 alignment for library calls.
12740
7d253f6e
DS
127412009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
12742
12743 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
12744 (mingw32 tm clause use_gcc_stdint): Set to wrap.
12745 * config/i386/mingw-stdint.h: New file.
12746
941c3614
RB
127472009-04-05 Richard Guenther <rguenther@suse.de>
12748
12749 PR tree-optimization/39648
12750 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
12751 our &A vs. &A[0] IL deficiencies.
12752
12633413
JH
127532009-04-04 Jan Hubicka <jh@suse.cz>
12754
941c3614
RB
12755 * except.c (sjlj_find_directly_reachable_regions): Be ready for
12756 removed toplevel regions.
12633413
JH
12757 (sjlj_mark_call_sites): Likewise.
12758
bb2aaded
DK
127592009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
12760
12761 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
12762 (cygwin tm clause use_gcc_stdint): Set to wrap.
12763 * config/i386/cygwin-stdint.h: New file.
12764
86290011
RG
127652009-04-04 Richard Guenther <rguenther@suse.de>
12766
12767 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
12768 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
12769 single-argument PHIs if we are in loop-closed SSA form.
12770 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
12771 for the pre-condition.
12772 (slpeel_tree_peel_loop_to_edge): Likewise.
12773 (vect_build_loop_niters): Take an optional sequence to append stmts.
12774 (vect_generate_tmps_on_preheader): Likewise.
12775 (vect_do_peeling_for_loop_bound): Take extra guards for the
12776 pre-condition.
12777 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
12778 the cost model check.
12779 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 12780 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
12781 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
12782 (vect_do_peeling_for_loop_bound): Likewise.
12783 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
12784 loop bound only record extra pre-conditions, do not apply loop
12785 versioning.
12786
5eeeac64
RG
127872009-04-04 Richard Guenther <rguenther@suse.de>
12788
12789 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
12790 renaming code.
12791
1ff7d06b
JH
127922009-04-04 Jan Hubicka <jh@suse.cz>
12793
12794 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
12795 last_basic_block for size of bb->index indexed array.
12796 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
12797 compute_out, link_btr_uses, build_btr_def_use_webs,
12798 build_btr_def_use_webs, migrate_btr_defs): Likewise.
12799
14925fcd
JH
128002009-04-04 Jan Hubicka <jh@suse.cz>
12801
12802 * except.c (remove_eh_handler_and_replace): Break out from ...
12803 (remove_eh_handler): ... here.
12804 (bring_to_root): New function.
12805 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
12806 handled ones, bring others to root of tree.
12807
4e6d1743
JH
128082009-04-04 Jan Hubicka <jh@suse.cz>
12809
4cb735f7
JH
12810 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
12811 (all_phis_safe_to_merge): New function.
12812 (update_info): New structure.
12813 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
12814 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 12815
c6803d43
RG
128162009-04-04 Richard Guenther <rguenther@suse.de>
12817
12818 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
12819 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
12820 (append_vuse): Likewise.
12821
54f5943c
JJ
128222009-04-04 Jakub Jelinek <jakub@redhat.com>
12823
12824 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
12825 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
12826 instead of REG_UNSAVED for DW_CFA_undefined.
12827 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
12828 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
12829 outermost frame.
12830
aad2bccb
RE
128312009-04-04 Richard Earnshaw <rearnsha@arm.com>
12832
12833 PR target/39501
12834 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
12835 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
12836 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
12837
aa7069aa
RG
128382009-04-04 Richard Guenther <rguenther@suse.de>
12839
12840 PR tree-optimization/8781
12841 PR tree-optimization/37892
12842 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
12843 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
12844 (valueize_refs): Call it for *& valueizations.
12845 (shared_reference_ops_from_ref): Rename to ...
12846 (valueize_shared_reference_ops_from_ref): ... this and valueize.
12847 (shared_reference_ops_from_call): Rename to ...
12848 (valueize_shared_reference_ops_from_call): ... this and valueize.
12849 (vn_reference_lookup): Update.
12850 (visit_reference_op_call): Likewise.
12851 * tree-ssa-pre.c (phi_translate_1): Fold *&.
12852 (eliminate): Value-replace the call address in call statements.
12853
cd15ad3e
RG
128542009-04-04 Richard Guenther <rguenther@suse.de>
12855
12856 PR tree-optimization/39636
12857 * tree-ssa-forwprop.c
12858 (forward_propagate_addr_into_variable_array_index): Check for
12859 GIMPLE_ASSIGN before accessing the rhs code.
12860
462f3262
JM
128612009-04-03 Jason Merrill <jason@redhat.com>
12862
12863 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
12864
6adb807e
SE
128652009-04-03 Steve Ellcey <sje@cup.hp.com>
12866
12867 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
12868 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
12869 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
12870 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
12871 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
12872 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
12873 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
12874 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
12875 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
12876 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
12877 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
12878 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
12879 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
12880 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
12881 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
12882 Use fr_reg_or_fp01_operand instead of fr_register_operand
12883
12884 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
12885 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
12886 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
12887
174b3107
VM
128882009-04-03 Vladimir Makarov <vmakarov@redhat.com>
12889
b844e5d8
L
12890 PR rtl-optimization/39607
12891 PR rtl-optimization/39631
7a715bba
UB
12892
12893 Revert:
2ba9daa7 12894
174b3107
VM
12895 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
12896 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
12897 instead of DF_LR_OUT.
12898 * ira-lives.c (process_bb_node_lives): Ditto.
12899 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
12900 instead of DF_LR_{OUT,IN}.
12901 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
12902 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
12903
535b544a
SB
129042009-04-03 Steven Bosscher <steven@gcc.gnu.org>
12905
12906 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
12907 (execute_lower_omp): Always run but take the short way out if -fopenmp
12908 is not given.
12909 (gate_lower_omp): Remove, forcing the pass manager to always run the
12910 pass and always set PROP_gimple_lomp.
12911 (pass_lower_omp): Remove gate function.
12912 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
12913 PROP_trees. Instead, require it.
12914 * ipa-cp.c (pass_ipa_cp): Likewise.
12915 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
12916 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
12917 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
12918 and PROP_gimple_leh.
12919
5006671f
RG
129202009-04-03 Richard Guenther <rguenther@suse.de>
12921
12922 PR middle-end/13146
12923 PR tree-optimization/23940
12924 PR tree-optimization/33237
12925 PR middle-end/33974
12926 PR middle-end/34093
12927 PR tree-optimization/36201
12928 PR tree-optimization/36230
12929 PR tree-optimization/38049
12930 PR tree-optimization/38207
12931 PR tree-optimization/38230
12932 PR tree-optimization/38301
12933 PR tree-optimization/38585
12934 PR middle-end/38895
12935 PR tree-optimization/38985
12936 PR tree-optimization/39299
12937 * tree-ssa-structalias.h: Remove.
12938 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
12939 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
12940 (struct vuse_element_d): Remove.
12941 (struct vuse_vec_d): Likewise.
12942 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
12943 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
12944 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
12945 VUSE_ELEMENT_VAR): Likewise.
12946 (struct voptype_d): Likewise.
12947 (NUM_VOP_FREE_BUCKETS): Likewise.
12948 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
12949 (struct stmt_operands_d): Remove.
12950 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
12951 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
12952 VDEF_NUM, VDEF_VECT): Likewise.
12953 (copy_virtual_operands): Remove.
12954 (operand_build_cmp): Likewise.
12955 (create_ssa_artificial_load_stmt): Likewise.
12956 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
12957 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
12958 vuse_index and mayuse_index members. Pack and move done and iter_type
12959 members to the front.
12960 (SSA_OP_VMAYUSE): Remove.
12961 (SSA_OP_VIRTUAL_USES): Adjust.
12962 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
12963 (unlink_stmt_vdef): Declare.
12964 (add_to_addressable_set): Remove.
12965 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
12966 (vrp_visit_stmt): Likewise.
12967 * doc/tree-ssa.texi (Alias analysis): Update.
12968 * doc/invoke.texi (max-aliased-vops): Remove docs.
12969 (avg-aliased-vops): Likewise.
12970 * tree-into-ssa.c (syms_to_rename): Remove.
12971 (need_to_update_vops_p): Likewise.
12972 (need_to_initialize_update_ssa_p): Rename to ...
12973 (update_ssa_initialized_fn): ... this. Track function we are
12974 initialized for.
12975 (symbol_marked_for_renaming): Simplify.
12976 (add_new_name_mapping): Do not set need_to_update_vops_p.
12977 (dump_currdefs): Use SYMS_TO_RENAME.
12978 (rewrite_update_stmt): Always walk all uses/defs.
12979 (dump_update_ssa): Adjust.
12980 (init_update_ssa): Take function argument. Track what we are
12981 initialized for.
12982 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
12983 (create_new_def_for): Initialize for cfun, assert we are initialized
12984 for cfun.
12985 (mark_sym_for_renaming): Simplify.
12986 (mark_set_for_renaming): Do not initialize update-ssa.
12987 (need_ssa_update_p): Simplify. Take function argument.
12988 (name_mappings_registered_p): Assert we ask for the correct function.
12989 (name_registered_for_update_p): Likewise.
12990 (ssa_names_to_replace): Likewise.
12991 (release_ssa_name_after_update_ssa): Likewise.
12992 (update_ssa): Likewise. Use SYMS_TO_RENAME.
12993 (dump_decl_set): Do not print a newline.
12994 (debug_decl_set): Do it here.
12995 (dump_update_ssa): And here.
12996 * tree-ssa-loop-im.c (move_computations): Adjust.
12997 (movement_possibility): Likewise.
12998 (determine_max_movement): Likewise.
12999 (gather_mem_refs_stmt): Likewise.
13000 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
13001 or NAME_MEMORY_TAG.
13002 * tree-complex.c (update_all_vops): Remove.
13003 (expand_complex_move): Adjust.
13004 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
13005 Simplify test for memory referencing statement. Exclude
13006 non-invariant ADDR_EXPRs.
13007 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
13008 * tree-loop-distribution.c (generate_memset_zero): Adjust.
13009 (rdg_flag_uses): Likewise.
13010 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
13011 related code.
13012 (tree_optimize_tail_calls_1): Also split the
13013 edge from the entry block if we have degenerate PHI nodes in
13014 the first basic block.
13015 * tree.c (init_ttree): Remove memory-tag related code.
13016 (tree_code_size): Likewise.
13017 (tree_node_structure): Likewise.
13018 (build7_stat): Re-write to be build6_stat.
13019 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
13020 (SSA_VAR_P): Adjust.
13021 (struct tree_memory_tag): Remove.
13022 (struct tree_memory_partition_tag): Likewise.
13023 (union tree_node): Adjust.
13024 (build7): Re-write to be build6.
13025 * tree-pass.h (pass_reset_cc_flags): Remove.
13026 (TODO_update_address_taken): New flag.
13027 (pass_simple_dse): Remove.
13028 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
13029 * params.h (MAX_ALIASED_VOPS): Remove.
13030 (AVG_ALIASED_VOPS): Likewise.
13031 * omp-low.c (expand_omp_taskreg): Update SSA form.
13032 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
13033 aliases the lhs in a copy stmt.
13034 * tree-ssa-dse.c (struct address_walk_data): Remove.
13035 (memory_ssa_name_same): Likewise.
13036 (memory_address_same): Likewise.
13037 (get_kill_of_stmt_lhs): Likewise.
13038 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
13039 unused stores. Look through PHI nodes into post-dominated regions.
13040 (dse_optimize_stmt): Simplify. Properly remove stores.
13041 (tree_ssa_dse): Compute dominators.
13042 (execute_simple_dse): Remove.
13043 (pass_simple_dse): Likewise.
13044 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
13045 gimple_loaded_syms and gimple_stored_syms computation.
13046 * toplev.c (dump_memory_report): Dump alias and pta stats.
13047 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
13048 (vn_reference_eq): Likewise.
13049 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
13050 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
13051 valueize_vuses): Remove.
13052 (get_def_ref_stmt_vuses): Simplify. Rename to ...
13053 (get_def_ref_stmt_vuse): ... this.
13054 (vn_reference_lookup_2): New function.
13055 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
13056 walking equivalent vuses. Simplify.
13057 (vn_reference_lookup): Likewise.
13058 (vn_reference_insert): Likewise.
13059 (vn_reference_insert_pieces): Likewise.
13060 (visit_reference_op_call): Simplify.
13061 (visit_reference_op_load): Likewise.
13062 (visit_reference_op_store): Likewise.
13063 (init_scc_vn): Remove shared_lookup_vuses initialization.
13064 (free_scc_vn): Remove shared_lookup_vuses freeing.
13065 (sort_vuses, sort_vuses_heap): Remove.
13066 (get_ref_from_reference_ops): Export.
13067 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
13068 vector with single vuse pointer.
13069 (vn_reference_lookup_pieces, vn_reference_lookup,
13070 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
13071 (shared_vuses_from_stmt): Remove.
13072 (get_ref_from_reference_ops): Declare.
13073 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
13074 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
13075 memory-tag related code.
13076 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
13077 (likely_value): Add comment, skip static-chain of call statements.
13078 (surely_varying_stmt_p): Adjust.
13079 (gimplify_and_update_call_from_tree): Likewise.
13080 (execute_fold_all_builtins): Do not rebuild alias info.
13081 (gimplify_and_update_call_from_tree): Properly update VOPs.
13082 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
13083 (copy_ref_info): Remove memory-tag related code.
13084 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
13085 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
13086 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
13087 computation.
13088 * tree-ssa-dom.c (gimple_p): Remove typedef.
13089 (eliminate_redundant_computations): Adjust.
13090 (record_equivalences_from_stmt): Likewise.
13091 (avail_expr_hash): Likewise.
13092 (avail_expr_eq): Likewise.
7a715bba 13093 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
13094 (stmt_makes_single_load): Likewise.
13095 (stmt_makes_single_store): Likewise.
13096 * tree-ssa-alias.c: Rewrite completely.
13097 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
13098 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
13099 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
13100 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
13101 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
13102 Remove public functions.
13103 (pass_reset_cc_flags): Remove.
13104 (pass_build_alias): Move ...
13105 * tree-ssa-structalias.c (pass_build_alias): ... here.
13106 * tree-ssa-alias.c (may_be_aliased): Move ...
13107 * tree-flow-inline.h (may_be_aliased): ... here.
13108 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
13109 count_uses_and_derefs): Move ...
13110 * gimple.c: ... here.
13111 * gimple.h (count_uses_and_derefs): Declare.
13112 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
13113 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
13114 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
13115 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
13116 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
13117 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
13118 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
13119 New functions.
13120 * tree-dfa.c (refs_may_alias_p): Move ...
13121 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
13122 * tree-ssa-alias.h: New file.
13123 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
13124 (statement_sink_location): Likewise.
13125 * opts.c (decode_options): Do not adjust max-aliased-vops or
13126 avg-aliased-vops values.
13127 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
13128 (TV_CALL_CLOBBER): Likewise.
13129 (TV_FLOW_SENSITIVE): Likewise.
13130 (TV_FLOW_INSENSITIVE): Likewise.
13131 (TV_MEMORY_PARTITIONING): Likewise.
13132 (TV_ALIAS_STMT_WALK): New timevar.
13133 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
13134 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
13135 (get_address_description): Remove memory-tag related code.
13136 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
13137 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
13138 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
13139 and immediate uses in statements. Document.
13140 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
13141 (dump_symbols): Remove.
13142 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
13143 * alias.c (get_deref_alias_set): New function split out from ...
13144 (get_alias_set): ... here.
13145 * alias.h (get_deref_alias_set): Declare.
13146 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
13147 type parameter. Remove restrict pointer handling. Create a
13148 ref-all pointer in case type-based alias sets do not conflict.
13149 (vect_analyze_data_refs): Remove SMT related code.
13150 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
13151 (vectorizable_load): Likewise.
13152 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
13153 (DR_SYMBOL_TAG, DR_VOPS): Remove.
13154 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
13155 Ignore vops and SMTs.
13156 (dr_analyze_alias): Likewise..
13157 (free_data_ref): Likewise.
13158 (create_data_ref): Likewise.
13159 (analyze_all_data_dependences): Likewise.
13160 (get_references_in_stmt): Adjust.
13161 * tree-flow-inline.h (gimple_aliases_computed_p,
13162 gimple_addressable_vars, gimple_call_clobbered_vars,
13163 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
13164 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
13165 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
13166 gimple_mem_ref_stats): Remove.
13167 (gimple_vop): New function.
13168 (op_iter_next_use): Remove vuses and mayuses cases.
13169 (op_iter_next_def): Remove vdefs case.
13170 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
13171 (clear_and_done_ssa_iter): Do not set removed fields.
13172 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
13173 Assert we are not iterating over vuses or vdefs if not also
13174 iterating over uses or defs.
13175 (op_iter_init_use): Likewise.
13176 (op_iter_init_def): Likewise.
13177 (op_iter_next_vdef): Remove.
13178 (op_iter_next_mustdef): Likewise.
13179 (op_iter_init_vdef): Likewise.
13180 (compare_ssa_operands_equal): Likewise.
13181 (link_use_stmts_after): Handle vuse operand.
13182 (is_call_used): Use is_call_clobbered.
13183 (is_call_clobbered): Global variables are always call clobbered,
13184 query the call-clobbers bitmap.
13185 (mark_call_clobbered): Ignore global variables.
13186 (clear_call_clobbered): Likewise.
13187 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
13188 virtual operands sanity check.
13189 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
13190 Remove.
13191 (TARGET_MEM_REF): Remove TMR_TAG operand.
13192 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
13193 Remove call-clobber related code.
13194 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
13195 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
13196 partitions or escape reason.
13197 (get_single_def_stmt, get_single_def_stmt_from_phi,
13198 get_single_def_stmt_with_phi): Remove.
13199 (dump_referenced_vars): Tidy.
13200 (get_ref_base_and_extent): Allow bare decls.
13201 (collect_dfa_stats): Adjust.
13202 * graphite.c (rename_variables_in_stmt): Adjust.
13203 (graphite_copy_stmts_from_block): Likewise.
13204 (translate_clast): Likewise.
13205 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
13206 (EXPR_DIES): New.
13207 (translate_vuse_through_block): Use the oracle.
13208 (phi_translate_1): Adjust.
13209 (value_dies_in_block_x): Use the oracle. Cache the outcome
13210 in EXPR_DIES.
13211 (valid_in_sets): Check if the VUSE for
13212 a REFERENCE is available.
13213 (eliminate): Do not remove stmts during elimination,
13214 instead queue and remove them afterwards.
13215 (do_pre): Do not rebuild alias info.
13216 (pass_pre): Run TODO_rebuild_alias before PRE.
13217 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
13218 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
13219 (mark_all_v_defs_stmt): Remove.
13220 (mark_all_v_defs_seq): Adjust.
13221 (sra_replace): Likewise.
13222 (scalarize_use): Likewise.
13223 (scalarize_copy): Likewise.
13224 (scalarize_init): Likewise.
13225 (scalarize_ldst): Likewise.
13226 (todoflags): Remove.
13227 (tree_sra): Do not rebuild alias info.
13228 (tree_sra_early): Adjust.
13229 (pass_sra): Run TODO_update_address_taken before SRA.
13230 * tree-predcom.c (set_alias_info): Remove.
13231 (prepare_initializers_chain): Do not call it.
13232 (mark_virtual_ops_for_renaming): Adjust.
13233 (mark_virtual_ops_for_renaming_list): Remove.
13234 (initialize_root_vars): Adjust.
13235 (initialize_root_vars_lm): Likewise.
13236 (prepare_initializers_chain): Likewise.
13237 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
13238 (may_propagate_copy_into_stmt): Likewise.
13239 (merge_alias_info): Do nothing for now.
13240 (propagate_tree_value_into_stmt): Adjust.
13241 (stmt_may_generate_copy): Likewise.
13242 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
13243 not mark symbols for renaming.
13244 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
13245 with the same statement, make sure to update the new pointed-to one.
13246 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
13247 call statements, do not mark symbols for renaming.
13248 (mark_operand_necessary): Dump something.
13249 (ref_may_be_aliased): New function.
13250 (mark_aliased_reaching_defs_necessary_1): New helper function.
13251 (mark_aliased_reaching_defs_necessary): Likewise.
13252 (mark_all_reaching_defs_necessary_1): Likewise.
13253 (mark_all_reaching_defs_necessary): Likewise.
13254 (propagate_necessity): Do not process virtual PHIs. For
13255 non-aliased loads mark all reaching definitions as necessary.
13256 For aliased loads and stores mark the immediate dominating
13257 aliased clobbers as necessary.
13258 (visited): New global static.
13259 (perform_tree_ssa_dce): Free visited bitmap after propagating
13260 necessity.
13261 (remove_dead_phis): Perform simple dead virtual PHI removal.
13262 (remove_dead_stmt): Properly unlink virtual operands when
13263 removing stores.
13264 (eliminate_unnecessary_stmts): Schedule PHI removal after
13265 stmt removal.
13266 * tree-ssa-ter.c (is_replaceable_p): Adjust.
13267 (process_replaceable): Likewise.
13268 (find_replaceable_in_bb): Likewise.
13269 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
13270 based on the single gimple vop.
13271 (verify_flow_insensitive_alias_info): Remove.
13272 (verify_flow_sensitive_alias_info): Likewise.
13273 (verify_call_clobbering): Likewise.
13274 (verify_memory_partitions): Likewise.
13275 (verify_alias_info): Likewise.
13276 (verify_ssa): Adjust..
13277 (execute_update_addresses_taken): Export. Update SSA
13278 manually. Optimize only when optimizing. Use a local bitmap.
13279 (pass_update_address_taken): Remove TODO_update_ssa, add
13280 TODO_dump_func.
13281 (pass_update_address_taken): Just use TODO_update_address_taken.
13282 (init_tree_ssa): Do not initialize addressable_vars.
13283 (verify_ssa): Verify new VUSE / VDEF properties.
13284 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
13285 Do not call verify_alias_info.
13286 (delete_tree_ssa): Clear the VUSE, VDEF operands.
13287 Do not free the loaded and stored syms bitmaps. Reset the escaped
13288 and callused solutions. Do not free addressable_vars.
13289 Remove memory-tag related code.
13290 (warn_uninitialized_var): Aliases are always available.
13291 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
13292 * lambda-code.c (can_put_in_inner_loop): Adjust.
13293 (can_put_after_inner_loop): Likewise.
13294 (perfect_nestify): Likewise.
13295 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
13296 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
13297 (vectorizable_conversion): Do not mark symbols for renaming.
13298 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
13299 (expand_call_inline): Unlink the calls virtual operands before
13300 replacing it.
13301 (tree_function_versioning): Do not call update_ssa if we are not
13302 updating clones. Simplify.
13303 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
13304 (propagate_with_phi): Likewise..
13305 * tree-outof-ssa.c (create_temp): Remove memory tag and call
13306 clobber code. Assert we are not aliased or global.
13307 * tree-flow.h: Include tree-ssa-alias.h
13308 (enum escape_type): Remove.
13309 (struct mem_sym_stats_d): Likewise.
13310 (struct mem_ref_stats_d): Likewise.
13311 (struct gimple_df): Add vop member. Remove global_var,
13312 call_clobbered_vars, call_used_vars, addressable_vars,
13313 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
13314 escaped and callused members.
13315 (struct ptr_info_def): Remove all members, add points-to solution
13316 member pt.
13317 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
13318 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
13319 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
13320 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
13321 (tree-ssa-alias.o): Likewise.
13322 (toplev.o): Add tree-ssa-alias.h
13323 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
13324 * gimple.c (gimple_set_bb): Fix off-by-one error.
13325 (is_gimple_reg): Do not handle memory tags.
13326 (gimple_copy): Also copy virtual operands.
13327 Delay updating the statement. Do not reset loaded and stored syms.
13328 (gimple_set_stored_syms): Remove.
13329 (gimple_set_loaded_syms): Likewise.
13330 (gimple_call_copy_skip_args): Copy the virtual operands
13331 and mark the new statement modified.
13332 * tree-ssa-structalias.c (may_alias_p): Remove.
13333 (set_uids_in_ptset): Take the alias set to prune with as
13334 parameter. Fold in the alias test of may_alias_p.
13335 (compute_points_to_sets): Compute whether a ptr is dereferenced
13336 in a local sbitmap.
13337 (process_constraint): Deal with &ANYTHING on the lhs, reject all
13338 other ADDRESSOF constraints on the lhs.
13339 (get_constraint_for_component_ref): Assert that we don't get
13340 ADDRESSOF constraints from the base of the reference.
13341 Properly generate UNKNOWN_OFFSET for DEREF if needed.
13342 (struct variable_info): Remove collapsed_to member.
13343 (get_varinfo_fc): Remove.
13344 (new_var_info): Do not set collapsed_to.
13345 (dump_constraint): Do not follow cycles.
13346 (dump_constraint_graph): Likewise.
13347 (build_pred_graph): Likewise.
13348 (build_succ_graph): Likewise.
13349 (rewrite_constraints): Likewise.
13350 (do_simple_structure_copy): Remove.
13351 (do_rhs_deref_structure_copy): Remove.
13352 (do_lhs_deref_structure_copy): Remove.
13353 (collapse_rest_of_var): Remove.
13354 (do_structure_copy): Re-implement.
13355 (pta_stats): New global variable.
13356 (dump_pta_stats): New function.
13357 (struct constraint_expr): Make offset signed.
13358 (UNKNOWN_OFFSET): Define special value.
13359 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
13360 (solution_set_expand): New helper function split out from ...
13361 (do_sd_constraint): ... here.
13362 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
13363 (do_ds_constraint): Likewise.
13364 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
13365 and CALLUSED = *CALLUSED.
13366 (set_union_with_increment): Make inc argument signed.
13367 (type_safe): Remove.
13368 (get_constraint_for_ptr_offset): Handle unknown and negative
13369 constant offsets.
13370 (first_vi_for_offset): Handle offsets before start. Bail
13371 out early for offsets beyond the variable extent.
13372 (first_or_preceding_vi_for_offset): New function.
13373 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
13374 Together with ESCAPED = *ESCAPED this properly computes reachability.
13375 (find_what_var_points_to): New function.
13376 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
13377 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
13378 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
13379 pt_solutions_intersect): New functions.
13380 (compute_call_used_vars): Remove.
13381 (compute_may_aliases): New main entry into PTA computation.
13382 * gimple.h (gimple_p): New typedef.
13383 (struct gimple_statement_base): Remove references_memory_p.
13384 (struct gimple_statement_with_memory_ops_base): Remove
13385 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
13386 members.
13387 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
13388 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
13389 gimple_set_references_memory): Remove.
13390 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
13391 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
13392 New functions.
13393 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
13394 (verify_expr): Allow RESULT_DECL.
13395 (gimple_duplicate_bb): Do not copy virtual operands.
13396 (gimple_duplicate_sese_region): Adjust.
13397 (gimple_duplicate_sese_tail): Likewise.
13398 (mark_virtual_ops_in_region): Remove.
13399 (move_sese_region_to_fn): Do not call it.
13400 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
13401 and pass_simple_dse.
13402 (execute_function_todo): Handle TODO_update_address_taken,
13403 call execute_update_addresses_taken for TODO_rebuild_alias.
13404 (execute_todo): Adjust.
13405 (execute_one_pass): Init dump files early.
13406 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
13407 call-clobbered.
13408 (create_general_new_stmt): Clear vops.
13409 * tree-ssa-reassoc.c (get_rank): Adjust.
13410 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
13411 symbols for renaming.
13412 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
13413 (PARAM_AVG_ALIASED_VOPS): Likewise.
13414 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
13415 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 13416 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
13417 (operand_build_cmp, copy_virtual_operands,
13418 create_ssa_artificial_load_stmt, add_to_addressable_set,
13419 gimple_add_to_addresses_taken): Remove public functions.
13420 (unlink_stmt_vdef): New function.
13421
457d1d00
AM
134222009-04-03 Alan Modra <amodra@bigpond.net.au>
13423
13424 * config.gcc (powerpc-*-linux*): Merge variants.
13425
e19da24c 134262009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 13427 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
13428
13429 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
13430 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
13431 cop0_sp_offset.
13432 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
13433 keep_interrupts_masked_p, use_debug_exception_return_p.
13434 (mips_attribute_table): Add interrupt, use_shadow_register_set,
13435 keep_interrupts_masked, use_debug_exception_return.
13436 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
13437 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
13438 New functions.
13439 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
13440 (mips_print_operand): Process COP0 registers to print $0 .. $31
13441 correctly for GAS to process.
13442 (mips_interrupt_extra_call_saved_reg_p): New function.
13443 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
13444 extra registers.
13445 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
13446 (mips_compute_frame_info): Add supports for interrupt context that
13447 includes doubleword accumulators and COP0 registers.
13448 (mips_for_each_saved_acc): New function.
13449 (mips_for_each_saved_gpr_and_fpr): Change the function name from
13450 mips_for_each_saved_reg.
13451 (mips_save_reg): Save accumulators.
13452 (mips_kernel_reg_p): A new for_each_rtx callback.
13453 (mips_expand_prologue): Support interrupt handlers.
13454 (mips_restore_reg): Restore accumulators.
13455 (mips_expand_epilogue): Support interrupt handlers.
13456 (mips_can_use_return_insn): Return false for interrupt handlers.
13457 (mips_epilogue_uses): New function.
13458 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
13459 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
13460 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
13461 cop0_move): New instructions.
13462 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
13463 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
13464 defines.
13465 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
13466 New defines.
13467 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
13468 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
13469 interrupt handlers, we use K0 as the temporary register.
13470 (EPILOGUE_USES): Change to a function call.
13471 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
13472 handlers, we use K0 as the temporary register.
2ba9daa7 13473
e19da24c
CF
13474 * doc/extend.texi (Function Attributes): Document interrupt,
13475 use_shadow_register_set, keep_interrupts_masked,
13476 use_debug_exception_return for MIPS attributes.
13477
aa1ca044
AM
134782009-04-03 Alan Modra <amodra@bigpond.net.au>
13479
13480 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
13481 Remove a number of t-files from tmake_file.
13482 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
13483 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
13484 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
13485 target_prototype, not TARGET_PROTOTYPE.
13486 (LINK_OS_GNU_SPEC): Define.
13487 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
13488 and darwin-ldoubdle.c.
13489
14fdc613
MM
134902009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
13491
13492 PR driver/39293
13493 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
13494 (cpp_options): Ditto.
13495 (default_compilers): Ditto.
13496 (display_help): Ditto.
13497 (process_command): Ditto.
13498 (do_spec_1): Ditto.
13499 (set_input): Use lbasename instead of duplicate code.
13500 (save_temps_prefix): New static for -save-temps=obj.
13501 (save_temps_length): Ditto.
2ba9daa7 13502
14fdc613
MM
13503 * doc/invoke.texi (-save-temps=obj): Document new variant to
13504 -save-temps switch.
13505
d3aa398e
JL
135062009-04-02 Jeff Law <law@redhat.com>
13507
13508 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
13509 variable.
13510
83f0ccb8
L
135112009-04-02 H.J. Lu <hongjiu.lu@intel.com>
13512
13513 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
13514 * configure: Regenerated.
13515
dcb6e951
RAE
135162009-04-02 Rafael Avila de Espindola <espindola@google.com>
13517
13518 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
13519 share the argument list.
13520
d85478c2
RAE
135212009-04-02 Rafael Avila de Espindola <espindola@google.com>
13522
13523 Merge
13524
13525 2009-02-12 Diego Novillo <dnovillo@google.com>
13526
83f0ccb8
L
13527 * varpool.c (debug_varpool): New.
13528 * cgraph.h (debug_varpool): Declare.
d85478c2 13529
34f42a49
JH
135302009-04-02 Jan Hubicka <jh@suse.cz>
13531
13532 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
13533 pass.
13534
a4747b4a
L
135352009-04-02 H.J. Lu <hongjiu.lu@intel.com>
13536
13537 * config/i386/i386.c (ix86_abi): Move initialization to ...
13538 (override_options): Here.
13539
63a9de54
CB
135402009-04-02 Christian Bruel <christian.bruel@st.com>
13541
13542 * config/sh/sh.c (sh_dwarf_register_span): New function.
13543 (TARGET_DWARF_REGISTER_SPAN): Define.
13544 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 13545
2f0fa28e
IR
135462009-04-02 Ira Rosen <irar@il.ibm.com>
13547
13548 PR tree-optimization/39595
2ba9daa7 13549 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
13550 interleaved loads group is not greater than the SLP group size.
13551
bbf7ce11
RAE
135522009-04-02 Rafael Avila de Espindola <espindola@google.com>
13553
13554 * builtins.c (is_builtin_name): New.
13555 (called_as_built_in): Use is_builtin_name.
13556 * tree.h (is_builtin_name): New.
13557 * varasm.c (incorporeal_function_p): Use is_builtin_name
13558
47e4dfcf
AS
135592009-04-02 Andrew Stubbs <ams@codesourcery.com>
13560
13561 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
13562
d0940d56
DS
135632009-04-02 Dodji Seketeli <dodji@redhat.com>
13564
13565 PR c++/26693
532bfb0a 13566 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
13567 * c-common.c (set_underlying_type): ... here.
13568 Also, make sure the function properly sets TYPE_STUB_DECL() on
13569 the newly created typedef variant type.
13570 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
13571 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
13572 points.
d0940d56 13573
bf1cbdc6
RG
135742009-04-02 Richard Guenther <rguenther@suse.de>
13575
13576 PR tree-optimization/37221
13577 * tree-flow.h (degenerate_phi_result): Declare.
13578 * tree-ssa-dom.c (degenerate_phi_result): Export.
13579 * tree-scalar-evolution.c (analyze_initial_condition): If
13580 the initial condition is defined by a degenerate PHI node
13581 use the degenerate value.
13582
87cfb32c
EB
135832009-04-01 Eric Botcazou <ebotcazou@adacore.com>
13584
13585 PR rtl-optimization/39588
13586 * combine.c (merge_outer_ops): Do not set the constant when this
13587 is not necessary.
13588 (simplify_shift_const_1): Do not modify it either in this case.
13589
bbb6eae8
SB
135902009-04-01 Steven Bosscher <steven@gcc.gnu.org>
13591
13592 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
13593 tuning is deprecated if -mtune value is set to an Itanium1 variant.
13594
839a3b8a
JJ
135952009-04-01 Janis Johnson <janis187@us.ibm.com>
13596
13597 PR c/29027
13598 * c-lex.c (interpret_float): Default (no suffix) is double.
13599
667e8acb
XDL
136002009-04-1 Xinliang David Li <davidxl@google.com>
13601
13602 * config/i386/i386.c (legitimate_constant_p): Recognize
13603 all one vector constant.
13604
60839f5d 136052009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 13606
60839f5d 13607 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
13608 Change #include order to silence two warnings.
13609
60839f5d 136102009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 13611
60839f5d 13612 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
13613 (ASM_SPEC): Pass -k to the assembler for PIC code.
13614
60839f5d 136152009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 13616
60839f5d
EB
13617 * config.gcc: Add vax-*-linux* to the switch.
13618 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
13619 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
13620
60839f5d 136212009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 13622
60839f5d 13623 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 13624 Use predicate macros instead of GET_CODE() == foo.
60839f5d 13625 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
13626 ashlsi3, rotrsi3, <unnamed>): Likewise.
13627
60839f5d 136282009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 13629
60839f5d 13630 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 13631 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
13632 * config/vax/constraints.md: Likewise.
13633 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
13634 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
13635 * config/vax/predicates.md: Likewise.
13636 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 13637 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
13638 * config/vax/vax.h: Likewise.
13639 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 13640
60839f5d 136412009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 13642
60839f5d 13643 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
13644 (indirectable_address_p, adjacent_operands_p): Add spaces around
13645 braces.
60839f5d 13646 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 13647
60839f5d 136482009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 13649
60839f5d 13650 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
13651 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
13652 index_term_p, reg_plus_index_p, legitimate_address_p,
13653 vax_mode_dependent_address_p): Update comments to match functions
13654 modified by the recent int->bool conversion.
13655
60839f5d 136562009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 13657
60839f5d
EB
13658 * config/vax/builtins.md: Update copyright message.
13659 * config/vax/constraints.md: Likewise.
13660 * config/vax/netbsd-elf.h: Likewise.
13661 * config/vax/predicates.md: Likewise.
13662 * config/vax/vax-protos.h: Likewise.
13663 * config/vax/vax.c: Likewise.
13664 * config/vax/vax.h: Likewise.
13665 * config/vax/vax.md: Likewise.
13666 * config/vax/vax.opt: Likewise.
c4e75102 13667
60839f5d 136682009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 13669
60839f5d 13670 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 13671 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
13672 * config/vax/constraints.md (B, R): Likewise.
13673 * config/vax/predicates.md (external_memory_operand,
c4e75102 13674 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
13675 * config/vax/vax.c (vax_output_int_add): Likewise.
13676 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
13677 untyped_call): Likewise.
13678
60839f5d 136792009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 13680
7a715bba
UB
13681 * config/vax/predicates.md: New file.
13682 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
13683 external_const_operand, nonsymbolic_operand, external_memory_operand,
13684 indirect_memory_operand, indexed_memory_operand,
13685 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
13686 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
13687 predicate.
7a715bba
UB
13688 * config/vax/constraints.md: New file.
13689 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
13690 New constraint.
13691 * config/vax/builtins.md: New file.
13692 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
13693 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
13694 jbbccisi): Define.
c4e75102
MT
13695 * config/vax/vax.opt (mqmath): Add option.
13696 * config/vax/vax.md (isfx): Extend with DI.
13697 (VAXintQH, VAXintQHSD): Define.
13698 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
13699 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
13700 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
13701 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
13702 (movdi): Update constraints and use vax_output_int_move().
13703 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
13704 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
13705 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
13706 nonlocal_goto): New.
13707 (mov<mode>): Extend accepted operand types.
13708 (subdi3_old): Rename from subdi3, change update constraints and use
13709 a new implementation.
60839f5d 13710 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
13711 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
13712 MOVE_RATIO, CLEAR_RATIO): Define.
13713 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
13714 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
13715 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 13716 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
13717 (split_quadword_operands): Make static and really allow variable
13718 splitting.
13719 (print_operand_address): Update for PIC generation.
13720 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
13721 indexable_address_p, fixup_mathdi_operand,
13722 vax_expand_addsub_di_operands, adjacent_operands_p): New.
13723 (vax_float_literal, legitimate_constant_p,
13724 indirectable_constant_address_p, index_term_p,
13725 reg_plus_index_p): Return bool instead of int.
13726 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
13727 where needed.
13728 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
13729 generation.
13730 (vax_output_conditional_branch): Indent.
13731 (legitimate_constant_address_p, indirectable_constant_address_p,
13732 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
13733 vax_mode_dependent_address_p): Return bool instead of int, update for
13734 PIC generation.
13735 * config/vax/vax-protos.h (legitimate_constant_address_p,
13736 legitimate_constant_p, legitimate_address_p,
13737 vax_mode_dependent_address_p): Change declaration to bool.
13738 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
13739 vax_expand_addsub_di_operands, vax_output_int_subtract,
13740 vax_output_movmemsi): Declare.
13741 (split_quadword_operands, vax_float_literal): Delete declaration.
13742 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
13743 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
13744 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
13745 ASM_OUTPUT_DWARF_PCREL): Define.
13746 (ASM_SPEC): Change definition to allow PIC generation.
13747
9332c6eb
L
137482009-04-01 Steve Ellcey <sje@cup.hp.com>
13749
13750 * doc/sourcebuild.texi: Update front-end requirements.
13751
d93e052c
JJ
137522009-04-01 Jakub Jelinek <jakub@redhat.com>
13753
13754 PR target/39226
13755 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
13756 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
13757 (booldi3_internal3): Use boolean_or_operator instead of
13758 boolean_operator.
13759
6ccb2a4a
JM
137602009-04-01 Joseph Myers <joseph@codesourcery.com>
13761
13762 PR c/39605
13763 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
13764 declarator whose size is not an integer constant expression but
13765 folds to an integer constant, then treat it as a constant
13766 subsequently.
13767
299b87f8
RG
137682009-04-01 Richard Guenther <rguenther@suse.de>
13769
13770 * fold-const.c (fold_plusminus_mult_expr): Do not fold
13771 i * 4 + 2 to (i * 2 + 1) * 2.
13772
b85eb797
JJ
137732009-04-01 Jakub Jelinek <jakub@redhat.com>
13774
13775 PR c/37772
13776 * c-parser.c (c_parser_asm_statement): Skip until close paren and
13777 return if c_parser_asm_string_literal returned NULL.
13778
235e1fe8
NC
137792009-04-01 Nick Clifton <nickc@redhat.com>
13780
13781 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
13782 already defined.
13783 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
13784 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
13785 other typedefs to avoid conflicts with libgcc2.c. Define labels
13786 to gain 16-bit bit-manipulation functions from libgcc2.c and then
13787 include it.
13788 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
13789 to gain 16-bit trapping arithmetic functions from libgcc2.c and
13790 then include it.
13791
d6868399
RAE
137922009-04-01 Rafael Avila de Espindola <espindola@google.com>
13793
7a715bba
UB
13794 * varasm.c (default_function_rodata_section): Declare DOT as
13795 const char*.
d6868399 13796
73d21f56 137972009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 13798 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
13799
13800 PR/39492
13801 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
13802 Make object_name unique for each process.
13803
03742a9b
JJ
138042009-04-01 Jakub Jelinek <jakub@redhat.com>
13805
13806 PR other/39591
13807 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
13808 addressable variables in the parallel that could go out of scope while
13809 running queued tasks.
13810
4223ff5f
AS
138112009-04-01 Anatoly Sokolov <aesok@post.ru>
13812
13813 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
13814 (CASE_VALUES_THRESHOLD): Redefine.
13815 * config/avr/avr.c (avr_override_options): Remove initialization of
13816 avr_case_values_threshold variable.
13817 (avr_case_values_threshold): Remove variable. Add new function.
13818 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
13819 * config/avr/avr.opt (mno-tablejump): Remove option.
13820 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
13821
e893f6f3
DD
138222009-04-01 DJ Delorie <dj@redhat.com>
13823
13824 * varasm.c (default_function_rodata_section): Don't assume
13825 anything about where the first '.' in the section name is.
13826
b246d100
AM
138272009-04-01 Alan Modra <amodra@bigpond.net.au>
13828
13829 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
13830 rs6000_emit_stack_tie.
13831
d3e37a9e
ILT
138322009-03-31 Ian Lance Taylor <iant@google.com>
13833
13834 * tree-eh.c (tree_remove_unreachable_handlers): Compare
13835 gimple_code with GIMPLE_RESX, not RESX.
13836
c1b61fca
JM
138372009-03-31 Joseph Myers <joseph@codesourcery.com>
13838
13839 * c-common.c (c_get_ident): New.
7a715bba 13840 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 13841
c2d2ad48
BE
138422009-04-01 Ben Elliston <bje@au.ibm.com>
13843
13844 * config/rs6000/sysv4.opt (msdata): Improve option description.
13845
13d1a6e7
SE
138462009-03-31 Steve Ellcey <sje@cup.hp.com>
13847
13848 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
13849 (divdf3_internal_lat): Remove.
13850 (divxf3_internal_lat): Remove.
13851 (divxf3_internal_thr): Remove.
13852 (divxf): Use divxf3_internal.
13853 * config/ia64/div.md (divsf3_internal_lat): New.
13854 (divdf3_internal_lat): New.
13855 (divxf3_internal): New.
13856
207bf79d
JM
138572009-03-31 Joseph Myers <joseph@codesourcery.com>
13858
13859 PR c/448
13860 * Makefile.in (USE_GCC_STDINT): Define.
13861 (stmp-int-hdrs): Install stdint.h if applicable.
13862 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
13863 if known.
13864 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
13865 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
13866 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
13867 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
13868 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
13869 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
13870 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
13871 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
13872 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
13873 (c_common_nodes_and_builtins): Initialize
13874 underlying_wchar_type_node. Do not initialize
13875 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
13876 nodes for new types.
13877 (c_stddef_cpp_builtins): Define macros for new types.
13878 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
13879 Remove.
13880 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
13881 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
13882 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
13883 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
13884 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
13885 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
13886 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
13887 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
13888 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
13889 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
13890 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
13891 int16_type_node, int32_type_node, int64_type_node,
13892 uint8_type_node, uint16_type_node, c_uint32_type_node,
13893 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
13894 int_least32_type_node, int_least64_type_node,
13895 uint_least8_type_node, uint_least16_type_node,
13896 uint_least32_type_node, uint_least64_type_node,
13897 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
13898 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
13899 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
13900 uintptr_type_node): Define.
13901 * c-cppbuiltin.c (builtin_define_constants,
13902 builtin_define_type_minmax): New.
13903 (builtin_define_stdint_macros): Define more macros.
13904 (c_cpp_builtins): Define more limit macros.
13905 (type_suffix): New.
13906 (builtin_define_type_max): Define in terms of
13907 builtin_define_type_minmax. Remove is_long parameter. All
13908 callers changed.
13909 * config.gcc (use_gcc_stdint): Define.
13910 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
13911 Add newlib-stdint.h for generic targets.
13912 * config/glibc-stdint.h, config/newlib-stdint.h,
13913 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
13914 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
13915 * config/score/score.h (UINTPTR_TYPE): Define.
13916 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
13917 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
13918 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
13919 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
13920 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
13921 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
13922 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
13923 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
13924 * config/spu/spu.h (STDINT_LONG32): Define.
13925 * configure.ac (use_gcc_stdint): Substitute.
13926 * configure: Regenerate.
13927 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
13928 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
13929 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
13930 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
13931 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
13932 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
13933 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
13934 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
13935 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
13936 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
13937 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
13938 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
13939 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
13940 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
13941 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
13942 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
13943 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
13944 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
13945 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
13946 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
13947 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
13948 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
13949 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
13950 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
13951 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
13952 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
13953 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
13954 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
13955 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
13956
ed853664
BS
139572009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
13958
13959 * loop-iv.c (suitable_set_for_replacement): Renamed from
13960 simplify_using_assignment; changed to return bool and to accept new
13961 args DEST and SRC. Return true iff we find a source/destination pair
13962 that can be used to make a replacement, and fill SRC and DEST if so.
13963 Remove arg ALTERED. Don't deal with altered regs here. All callers
13964 changed.
13965 (simplify_using_initial_values): Deal with altered regs here and track
13966 more precisely the effect they have on the validity of our expression.
13967
1569e190
BS
13968 * loop-iv.c (simplify_using_condition): A condition of the form
13969 (EQ REG CONST) can be used to simply make a substitution.
13970 (simplify_using_initial_values): Keep track of conditions we have seen
13971 and keep using them to simplify new expressions, while applying the
13972 same substitutions to them as to the expression.
13973
1d1eb80c
BS
13974 * simplify-rtx.c (simplify_relational_operation_1): Simplify
13975 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
13976 GEU/LTU reversed.
13977
28af33b0
BS
13978 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
13979 changed. Use this when trying to improve the upper bound.
13980 Generate the comparison by using simplify_gen_relational.
13981
b30321cd
BS
13982 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
13983
60081874
BS
13984 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
13985 functions.
2ba9daa7 13986 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
13987 replace_in_expr to make replacements. Call replace_single_def_regs
13988 once on the initial version of the expression.
13989
bebc6e07
RR
139902009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13991
fcb82ab0 13992 PR target/27237
bebc6e07 13993 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 13994
6b12efe9
RG
139952009-03-31 Richard Guenther <rguenther@suse.de>
13996
13997 PR middle-end/31029
13998 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
13999 equality comparisons. Fold C - X CMP X if C % 2 == 1.
14000
108f6c2f
RG
140012009-03-31 Richard Guenther <rguenther@suse.de>
14002
14003 * tree.h (div_if_zero_remainder): Declare.
14004 * fold-const.c (div_if_zero_remainder): Export.
14005 * tree-ssa-forwprop.c
14006 (forward_propagate_addr_into_variable_array_index): Handle
14007 constant array index addition outside of the variable index.
14008
8f612190
JM
140092009-03-31 Joseph Myers <joseph@codesourcery.com>
14010
14011 PR target/39592
14012 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
14013 define_splits, floatunssi<mode>2): Require x87 conversions from
14014 DImode to be permitted.
14015
47580d22
JM
140162009-03-31 Joseph Myers <joseph@codesourcery.com>
14017
14018 PR preprocessor/15638
14019 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
14020
ba4d8f9d
RG
140212009-03-31 Richard Guenther <rguenther@suse.de>
14022
14023 PR middle-end/23401
14024 PR middle-end/27810
14025 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
14026 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
14027 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
14028 a separate statement.
14029 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
14030 (lookup_tmp_var): Likewise.
14031 (is_gimple_formal_tmp_or_call_rhs): Remove.
14032 (is_gimple_reg_or_call_rhs): Rename to ...
14033 (is_gimple_reg_rhs_or_call): ... this.
14034 (is_gimple_mem_or_call_rhs): Rename to ...
14035 (is_gimple_mem_rhs_or_call): ... this.
14036 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
14037 DECL_GIMPLE_REG_P only if is_formal is true.
14038 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
14039 for non-proper post-modify expression gimplification.
14040 (gimplify_self_mod_expr): For post-modify expressions gimplify
14041 the lvalue to a minimal lvalue.
14042 (rhs_predicate_for): Remove formal temp case.
14043 (gimplify_modify_expr_rhs): Likewise.
14044 (gimplify_addr_expr): Use is_gimple_reg.
14045 (gimplify_expr): Remove formal temp cases.
14046 (gimple_regimplify_operands): Likewise.
14047 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
14048 and FILTER_EXPR like constants.
14049 * gimple.c (walk_gimple_op): Fix val_only initialization, use
14050 is_gimple_reg.
14051 (is_gimple_formal_tmp_rhs): Remove.
14052 (is_gimple_reg_rhs): Remove special casing.
14053 (is_gimple_mem_rhs): Fix.
14054 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
14055 (is_gimple_formal_tmp_var): Remove.
14056 (is_gimple_formal_tmp_reg): Likewise.
14057 (is_gimple_min_lval): Allow invariant component ref parts.
14058 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
14059 is_gimple_formal_tmp_reg): Remove declarations.
14060 * tree-cfg.c (verify_expr): Verify that variables with address
14061 taken do not have DECL_GIMPLE_REG_P set.
14062 * tree-mudflap.c (mf_build_check_statement_for): Use
14063 force_gimple_operand instead of gimplify_expr.
14064
8de9b877
AZ
140652009-03-31 Ayal Zaks <zaks@il.ibm.com>
14066
14067 * modulo-sched.c (sms_schedule_by_order): Pass the actual
14068 schedulable rows to compute_split_row.
14069
b5e3caf2
BE
140702009-03-31 Ben Elliston <bje@au.ibm.com>
14071
14072 PR target/31635
14073 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
14074 OPT_mvrsave.
14075
9752c4ad
AM
140762009-03-31 Alan Modra <amodra@bigpond.net.au>
14077
14078 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
14079 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
14080 * configure: Regenerate.
14081 * config.in: Regenerate.
14082 * config/rs6000/rs6000.opt (mtls-markers): Add.
14083 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
14084 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
14085 (tls_ld_aix, tls_ld_sysv): Likewise.
14086 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
14087 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
14088
b597d1b6
AM
140892009-03-31 Alan Modra <amodra@bigpond.net.au>
14090
14091 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
14092
a203a221
JH
140932009-03-30 Jan Hubicka <jh@suse.cz>
14094
b597d1b6
AM
14095 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
14096 out of RESX.
14097 (tree_remove_unreachable_handlers): Cleanup EH predecestor
14098 detection and label handling.
a203a221 14099
5b0c0b2c
VM
141002009-03-30 Vladimir Makarov <vmakarov@redhat.com>
14101
14102 * ira-int.h (ira_allocno): Rename left_conflicts_num to
14103 left_conflicts_size.
14104 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
14105 ALLOCNO_LEFT_CONFLICTS_SIZE.
14106
14107 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
14108 remove_allocno_from_bucket_and_push,
14109 allocno_spill_priority_compare, push_allocnos_to_stack,
14110 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14111 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
14112 (setup_allocno_left_conflicts_num): Ditto. Rename to
14113 setup_allocno_left_conflicts_size.
14114 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
14115 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
14116 setup_allocno_left_conflicts_size instead of
14117 setup_allocno_left_conflicts_num.
14118
14119 * ira-build.c (ira_create_allocno): Use
14120 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
14121 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 14122
9a48a93f
VM
141232009-03-30 Vladimir Makarov <vmakarov@redhat.com>
14124
14125 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
14126 instead of DF_LR_OUT.
14127
14128 * ira-lives.c (process_bb_node_lives): Ditto.
14129
14130 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
14131 instead of DF_LR_{OUT,IN}.
14132
14133 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
14134
14135 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
14136
4c936d4f
JH
141372009-03-30 Jan Hubicka <jh@suse.cz>
14138
14139 * except.c (label_to_region_map): Fix thinko.
14140
f4d9f129
SE
141412009-03-30 Steve Ellcey <sje@cup.hp.com>
14142
14143 PR middle-end/38237
14144 * tree.h (tree_find_value): New declaration.
14145 * tree.c (tree_find_value): New function.
14146 * varasm.c (assemble_external): Avoid duplicate entries on lists.
14147
b3f27c15
JJ
141482009-03-30 Jakub Jelinek <jakub@redhat.com>
14149
14150 PR debug/39563
14151 * c-decl.c (struct c_binding): Add locus field.
14152 (bind): Add locus argument, set locus field from it.
14153 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
14154 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
14155 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
14156 implicitly_declare, undeclared_variable, lookup_label,
14157 declare_label, c_make_fname_decl, c_builtin_function,
14158 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
14159 bind callers.
14160
ad41bd84 141612009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
14162
14163 PR target/38781
14164 * config/i386/i386.c (classify_argument): Check total size of
14165 structure.
14166
133f9369
MJ
141672009-03-30 Martin Jambor <mjambor@suse.cz>
14168
14169 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
14170 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
14171 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
14172 respectively.
14173
14174 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
14175 seen_variable_array_ref while also traversing a union.
14176
14177 * tree-inline.c (optimize_inline_calls): Do not call
14178 cgraph_node_remove_callees.
14179 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
14180 (pass_remove_cgraph_callee_edges): New variable.
14181 * passes.c (init_optimization_passes): Add
14182 pass_remove_cgraph_callee_edges after early inlining and before all
14183 late intraprocedural passes.
14184
14185 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
14186
1190f2eb
PB
141872009-03-30 Paolo Bonzini <bonzini@gnu.org>
14188
14189 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
14190 Fix typos in names.
14191
fedc1775
PB
141922009-03-30 Paolo Bonzini <bonzini@gnu.org>
14193
fcb82ab0
UB
14194 * combine.c (simplify_comparison): Use have_insn_for.
14195 * dojump.c (do_jump): Likewise.
fedc1775 14196
65c5ae8b
PB
141972009-03-30 Paolo Bonzini <bonzini@gnu.org>
14198
14199 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
14200 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
14201 sparc_compare_op0 like sparc_compare_emitted used to be handled.
14202 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
14203 instead of sparc_compare_emitted.
14204 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
14205 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
14206 instead of sparc_compare_emitted.
14207
d25aa7ab
PB
142082009-03-30 Paolo Bonzini <bonzini@gnu.org>
14209
14210 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
14211 enter/exit cfglayout mode.
14212 (pass_partition_block): Require it.
14213 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
14214 (combine_instructions): Track basic blocks instead of labels.
14215 (update_cfg_for_uncondjump): New.
14216 (try_combine): Use it. Update jumps after rescanning.
14217 (pass_combine): Require PROP_cfglayout.
14218 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
14219
9c9e26f5
PB
142202009-03-30 Paolo Bonzini <bonzini@gnu.org>
14221
fcb82ab0
UB
14222 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
14223 Provide/destroy PROP_cfglayout respectively.
14224 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
14225 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 14226
28ddeea1
PB
142272009-03-30 Paolo Bonzini <bonzini@gnu.org>
14228
14229 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
14230 fold_convert_const_fixed_from_fixed,
14231 fold_convert_const_fixed_from_int,
14232 fold_convert_const_fixed_from_real, fold_negate_const): Do not
14233 set TREE_CONSTANT_OVERFLOW.
14234 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
14235 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
14236
ebfd146a
IR
142372009-03-30 Ira Rosen <irar@il.ibm.com>
14238
14239 * tree-vect-loop-manip.c: New file.
14240 * tree-vectorizer.c: Update documentation and included files.
14241 (vect_loop_location): Make extern.
14242 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
14243 (rename_variables_in_bb, rename_variables_in_loop,
14244 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
14245 slpeel_update_phi_nodes_for_guard1,
14246 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
14247 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
14248 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 14249 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
14250 find_loop_location): Likewise.
14251 (new_stmt_vec_info): Move to tree-vect-stmts.c.
14252 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
14253 get_vectype_for_scalar_type, vect_is_simple_use,
14254 supportable_widening_operation, supportable_narrowing_operation):
14255 Likewise.
14256 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
14257 (new_loop_vec_info, destroy_loop_vec_info,
14258 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
14259 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
14260 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
14261 (vect_supportable_dr_alignment): Likewise.
14262 * tree-vectorizer.h (tree-data-ref.h): Include.
14263 (vect_loop_location): Declare.
14264 Reorganize function declarations according to the new file structure.
14265 * tree-vect-loop.c: New file.
2ba9daa7 14266 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
14267 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
14268 * tree-vect-data-refs.c: New file.
14269 * tree-vect-patterns.c (timevar.h): Don't include.
14270 * tree-vect-stmts.c: New file.
2ba9daa7 14271 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 14272 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
14273 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
14274 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
14275 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
14276 (tree-vect-analyze.o): Remove.
14277 (tree-vect-transform.o): Likewise.
14278 (tree-vect-data-refs.o): Add rule.
2ba9daa7 14279 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
14280 tree-vect-slp.o): Likewise.
14281 (tree-vect-patterns.o): Remove redundant dependencies.
14282 (tree-vectorizer.o): Likewise.
14283 * tree-vect-slp.c: New file.
14284
40a1cfba
RW
142852009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14286
14287 * optc-gen.awk: Warn if an option flag has multiple different
14288 help strings.
14289
a9a7a9a2
SP
142902009-03-30 Sebastian Pop <sebastian.pop@amd.com>
14291
14292 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
14293 -floop-block): Document dependences on PPL, CLooG and Graphite.
14294
8ce94e44
JM
142952009-03-30 Joseph Myers <joseph@codesourcery.com>
14296
14297 PR rtl-optimization/323
14298 * c-common.c (c_fully_fold, convert_and_check,
14299 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
14300 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
14301 * c-common.def (EXCESS_PRECISION_EXPR): New.
14302 * c-cppbuiltin.c (builtin_define_float_constants): Define
14303 constants with enough digits for long double.
14304 * c-lex.c (interpret_float): Interpret constant with excess
14305 precision where appropriate.
14306 * c-opts.c (c_common_post_options): Set
14307 flag_excess_precision_cmdline. Give an error for
14308 -fexcess-precision=standard for C++ for processors where the
14309 option is significant.
14310 * c-parser.c (c_parser_conditional_expression): Handle excess
14311 precision in condition.
14312 * c-typeck.c (convert_arguments): Handle arguments with excess
14313 precision.
14314 (build_unary_op): Move excess precision outside operation.
14315 (build_conditional_expr): Likewise.
14316 (build_compound_expr): Likewise.
14317 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
14318 (build_modify_expr): Handle excess precision in RHS.
14319 (convert_for_assignment): Handle excess precision in converted
14320 value.
14321 (digest_init, output_init_element, process_init_element): Handle
14322 excess precision in initializer.
14323 (c_finish_return): Handle excess precision in return value.
14324 (build_binary_op): Handle excess precision in operands and add
14325 excess precision as needed for operation.
14326 * common.opt (-fexcess-precision=): New option.
14327 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
14328 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
14329 For standard excess precision, output explicit conversion to and
14330 truncation from XFmode.
14331 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
14332 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
14333 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
14334 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
14335 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
14336 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
14337 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
14338 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
14339 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
14340 define_splits, sqrt<mode>2): Disable where appropriate for
14341 standard excess precision.
14342 * convert.c (convert_to_real): Do not shorten arithmetic to type
14343 for which excess precision would be used.
14344 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
14345 * doc/invoke.texi (-fexcess-precision=): Document option.
14346 (-mfpmath=): Correct index entry.
14347 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
14348 flag_excess_precision): New.
14349 * langhooks.c (lhd_post_options): Set
14350 flag_excess_precision_cmdline.
14351 * opts.c (common_handle_option): Handle -fexcess-precision=.
14352 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
14353 init_excess_precision): New.
14354 (lang_dependent_init_target): Call init_excess_precision.
14355 * tree.c (excess_precision_type): New.
14356 * tree.h (excess_precision_type): Declare.
14357
1e57bf47
JM
143582009-03-30 Joseph Myers <joseph@codesourcery.com>
14359
14360 PR c/35235
14361 * c-typeck.c (build_component_ref): Do not copy qualifiers from
14362 non-lvalue to component.
14363
148e4216
JM
143642009-03-29 Joseph Myers <joseph@codesourcery.com>
14365
14366 PR preprocessor/34695
14367 * Makefile.in (c-opts.o): Depend on c-tree.h.
14368 * c-common.c: Move down include of diagnostic.h.
14369 (done_lexing, c_cpp_error): New.
14370 * c-common.h (done_lexing): Declare.
14371 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
14372 (parse_in).
14373 * c-opts.c: Include c-tree.h.
14374 (c_common_init_options): Set preprocessor error callback.
14375 (c_common_handle_option): Do not set preprocessor
14376 inhibit_warnings, warnings_are_errors, warn_system_headers,
14377 pedantic_errors or inhibit_warnings flags.
14378 (c_common_post_options): Do not check cpp_errors (parse_in).
14379 (c_common_finish): Do not output dependencies if there were
14380 errors. Do not check return value of cpp_finish.
14381 * c-ppoutput.c (pp_file_change): Set input_location.
14382 * c-tree.h (c_cpp_error): Declare.
14383 * diagnostic.c (diagnostic_set_info_translated): Also initialize
14384 override_column.
14385 (diagnostic_build_prefix): Check override_column.
14386 * diagnostic.h (diagnostic_info): Add override_column field.
14387 (diagnostic_override_column): Define.
14388
2ec5deb5
PB
143892009-03-28 Paolo Bonzini <bonzini@gnu.org>
14390
ba20e309
UB
14391 * c-common.c (c_expand_expr, c_staticp): Remove.
14392 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
14393 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
14394 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
14395 * c-gimplify.c (gimplify_compound_literal_expr,
14396 optimize_compound_literals_in_ctor): Remove.
14397 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
14398 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
14399 * c-semantics.c (emit_local_var): Remove.
14400
14401 * langhooks-def.h (lhd_expand_expr): Remove.
14402 * langhooks.c (lhd_expand_expr): Remove.
14403 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
14404
14405 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
14406 handling from c-semantics.c; don't call into langhook.
14407 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
14408 * gimplify.c (gimplify_compound_literal_expr,
14409 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
14410 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
14411 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
14412 as was done in c-gimplify.c.
14413 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
14414 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
14415 Move from c-common.h.
14416 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
14417
14418 * tree.c (staticp): Do not call langhook.
14419 * langhooks.c (lhd_staticp): Delete.
14420 * langhooks-def.h (lhd_staticp): Delete prototype.
14421 (LANG_HOOKS_STATICP): Delete.
14422 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
14423
ba20e309
UB
14424 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
14425 instead of DECL_STMTs.
2ec5deb5 14426
928c19bb
JM
144272009-03-29 Joseph Myers <joseph@codesourcery.com>
14428
14429 PR c/456
14430 PR c/5675
14431 PR c/19976
14432 PR c/29116
14433 PR c/31871
14434 PR c/35198
14435 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
14436 void_type_node.
14437 (fold_call_expr): Return a NOP_EXPR from folding rather than the
14438 contained expression.
ba20e309 14439 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
14440 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
14441 conditional expressions for C.
14442 (decl_constant_value_for_optimization): Move from
ba20e309 14443 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
14444 whether optimizing and that the expression is a VAR_DECL not of
14445 array type instead of doing such checks in the caller. Do not
14446 check pedantic. Call gcc_unreachable for C++.
14447 * c-common.def (C_MAYBE_CONST_EXPR): New.
14448 * c-common.h (c_fully_fold, c_save_expr,
14449 decl_constant_value_for_optimization): New prototypes.
14450 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
14451 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
14452 EXPR_INT_CONST_OPERANDS): Define.
14453 * c-convert.c (convert): Strip nops from expression.
14454 * c-decl.c (groktypename): Take extra parameters expr and
14455 expr_const_operands. Update call to grokdeclarator.
14456 (start_decl): Update call to grokdeclarator. Add statement for
14457 expressions used in type of decl.
14458 (grokparm): Update call to grokdeclarator.
14459 (push_parm_decl): Update call to grokdeclarator.
14460 (build_compound_literal): Add parameter non_const and build a
14461 C_MAYBE_COSNT_EXPR if applicable.
14462 (grokdeclarator): Take extra parameters expr and
14463 expr_const_operands. Track expressions used in declaration
14464 specifiers and declarators. Fold array sizes and track whether
14465 they are constant expressions and whether they are integer
14466 constant expressions.
14467 (parser_xref_tag): Set expr and expr_const_operands fields in
14468 return value.
14469 (grokfield): Update call to grokdeclarator.
14470 (start_function): Update call to grokdeclarator.
14471 (build_null_declspecs): Set expr and expr_const_operands fields in
14472 return value.
14473 (declspecs_add_type): Handle expressions in typeof specifiers.
14474 * c-parser.c (c_parser_declspecs): Set expr and
14475 expr_const_operands fields for declaration specifiers.
14476 (c_parser_enum_specifier): Likewise.
14477 (c_parser_struct_or_union_specifier): Likewise.
14478 (c_parser_typeof_specifier): Likewise. Update call to
14479 groktypename. Fold expression as needed. Return expressions with
14480 type instead of adding statements.
14481 (c_parser_attributes): Update calls to c_parser_expr_list.
14482 (c_parser_statement_after_labels): Fold expression before passing
14483 to objc_build_throw_stmt.
14484 (c_parser_condition): Fold expression.
14485 (c_parser_asm_operands): Fold expression.
14486 (c_parser_conditional_expression): Use c_save_expr. Update call
14487 to build_conditional_expr.
14488 (c_parser_alignof_expression): Update call to groktypename.
14489 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
14490 original_code. Fold expression argument of va_arg. Create
14491 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
14492 argument to va_arg. Update calls to groktypename. Fold array
14493 index for offsetof. Verify that first argument to
14494 __builtin_choose_expr has integer type.
14495 (c_parser_postfix_expression_after_paren_type): Update calls to
14496 groktypename and build_compound_literal. Handle expressions with
14497 side effects in type name.
14498 (c_parser_postfix_expression_after_primary): Update call to
14499 c_parser_expr_list. Set original_code for calls to
14500 __builtin_constant_p.
14501 (c_parser_expr_list): Take extra parameter fold_p. Fold
14502 expressions if requested.
14503 (c_parser_objc_type_name): Update call to groktypename.
14504 (c_parser_objc_synchronized_statement): Fold expression.
14505 (c_parser_objc_receiver): Fold expression.
14506 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
14507 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
14508 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
14509 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
14510 (struct c_typespec): Add elements expr and expr_const_operands.
14511 (struct c_declspecs): Add elements expr and expr_const_operands.
14512 (groktypename, build_conditional_expr, build_compound_literal):
14513 Update prototypes.
14514 (in_late_binary_op): Declare.
14515 * c-typeck.c (note_integer_operands): New function.
14516 (in_late_binary_op): New variable.
14517 (decl_constant_value_for_broken_optimization): Move to c-common.c
14518 and rename to decl_constant_value_for_optimization.
14519 (default_function_array_conversion): Do not strip nops.
14520 (default_conversion): Do not call
14521 decl_constant_value_for_broken_optimization.
14522 (build_array_ref): Do not fold result.
14523 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
14524 result when operand is a VLA.
14525 (c_expr_sizeof_type): Update call to groktypename. Handle
14526 expressions included in type name. Use C_MAYBE_CONST_EXPR for
14527 result when operand names a VLA type.
14528 (build_function_call): Update call to build_compound_literal.
14529 Only fold result for calls to __builtin_* functions. Strip
14530 NOP_EXPR from INTEGER_CST returned from such functions. Fold
14531 the function designator.
14532 (convert_arguments): Fold arguments. Update call to
14533 convert_for_assignment.
14534 (build_unary_op): Handle increment and decrement of
14535 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
14536 decrement earlier. Fold operand of increment and decrement.
14537 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
14538 built for integer operand. Wrap returns that are INTEGER_CSTs
14539 without being integer constant expressions or that have integer
14540 constant operands without being INTEGER_CSTs.
14541 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
14542 (build_conditional_expr): Add operand ifexp_bcp. Track whether
14543 result is an integer constant expression or can be used in
14544 unevaluated parts of one and avoid folding and wrap as
14545 appropriate. Fold operands before possibly doing -Wsign-compare
14546 warnings.
14547 (build_compound_expr): Wrap result for C99 if operands can be used
14548 in integer constant expressions.
14549 (build_c_cast): Update call to digest_init. Do not ignore
14550 overflow from casting floating-point constants to integers. Wrap
14551 results that could be confused with integer constant expressions,
14552 null pointer constants or floating-point constants.
14553 (c_cast_expr): Update call to groktypename. Handle expressions
14554 included in type name.
14555 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
14556 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
14557 Update calls to convert_for_assignment.
14558 (convert_for_assignment): Take new parameter
14559 null_pointer_constant. Do not strip nops or call
14560 decl_constant_value_for_broken_optimization. Set
14561 in_late_binary_op for conversions to boolean.
14562 (store_init_value): Update call to digest_init.
14563 (digest_init): Take new parameter null_pointer_constant. Do not
14564 call decl_constant_value_for_broken_optimization. pedwarn for
14565 initializers not constant expressions. Update calls to
14566 convert_for_assignment.
14567 (constructor_nonconst): New.
14568 (struct constructor_stack): Add nonconst element.
14569 (really_start_incremental_init, push_init_level, pop_init_level):
14570 Handle constructor_nonconst and nonconst element.
14571 (set_init_index): Call constant_expression_warning for array
14572 designators.
14573 (output_init_element): Fold value. Set constructor_nonconst as
14574 applicable. pedwarn for initializers not constant expressions.
14575 Update call to digest_init. Call constant_expression_warning
14576 where constant initializers are required.
14577 (process_init_element): Use c_save_expr.
14578 (c_finish_goto_ptr): Fold expression.
14579 (c_finish_return): Fold return value. Update call to
14580 convert_for_assignment.
14581 (c_start_case): Fold switch expression.
14582 (c_process_expr_stmt): Fold expression.
14583 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 14584 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
14585 (build_binary_op): Track whether results are integer constant
14586 expressions or may occur in such, disable folding and wrap results
14587 as applicable. Fold operands for -Wsign-compare warnings unless
14588 in_late_binary_op.
14589 (c_objc_common_truthvalue_conversion): Handle results folded to
14590 integer constants that are not integer constant expressions.
14591 * doc/extend.texi: Document when typeof operands are evaluated,
14592 that condition of __builtin_choose_expr is an integer constant
14593 expression, and more about use of __builtin_constant_p in
14594 initializers.
14595
5babbcc0
RG
145962009-03-29 Richard Guenther <rguenther@suse.de>
14597
14598 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
14599 propagate addresses of array references.
14600
0340f2ba
SB
146012009-03-29 Steven Bosscher <steven@gcc.gnu.org>
14602
14603 * regmove.c (perhaps_ends_bb_p): Remove.
14604 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
14605 from INSN and check that the main loop stays within that basic block.
14606 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
14607 (regmove_forward_pass): Split out from regmove_optimize. Use
14608 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
14609 (regmove_backward_pass): Split out from regmove_optimize. Use
14610 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
14611 (regmove_optimize): Simplify.
14612
eeae74a1
L
146132009-03-29 H.J. Lu <hongjiu.lu@intel.com>
14614
14615 PR target/39545
14616 * config/i386/i386.c (classify_argument): Ignore flexible array
14617 member in struct and warn ABI change.
14618
a24078b2
L
146192009-03-29 H.J. Lu <hongjiu.lu@intel.com>
14620
14621 * config/i386/i386-protos.h (ix86_agi_dependent): New.
14622
14623 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
14624 (ix86_adjust_cost): Updated.
14625
a8da523f
JH
146262009-03-29 Jan Hubicka <jh@suse.cz>
14627
14628 PR middle-end/28850
14629 * tree-pass.h (pass_cleanup_eh): New function.
14630 (remove_unreachable_regions): Break code handling RTL
14631 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
14632 that can not be reached by runtime.
14633 (can_be_reached_by_runtime): New function.
14634 (label_to_region_map): New function.
14635 (num_eh_regions): New function.
14636 (rtl_remove_unreachable_regions): New function.
14637 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
14638 (remove_eh_region): New function.
14639 * except.h: Include sbitmap and vecprim.
14640 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
14641 num_eh_regions): Declare.
14642 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 14643 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
14644 * tree-eh.c (tree_remove_unreachable_handlers): New function.
14645 (tree_empty_eh_handler_p): New function.
14646 (cleanup_empty_eh): New function.
14647 (cleanup_eh): New function.
14648 (pass_cleanup_eh): New function.
14649
98f358e5
JH
146502009-03-29 Jan Hubicka <jh@suse.cz>
14651
14652 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
14653 for removed regions.
14654
13a9fa44
JH
146552009-03-29 Jan Hubicka <jh@suse.cz>
14656
14657 * except.c (dump_eh_tree): Dump all datastructures.
14658
e38cf733
JH
146592009-03-29 Jan Hubicka <jh@suse.cz>
14660
14661 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
14662 (duplicate_eh_regions_1): Likewise.
14663 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
14664 vector; call EH verification.
14665 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
14666 Be ready for region being removed.
14667
12802c2b
JH
146682009-03-29 Jan Hubicka <jh@suse.cz>
14669
14670 * bitmap.c (bitmap_last_set_bit): New function.
14671 * bitmap.h (bitmap_last_set_bit): Declare.
14672
4ea80a41
DA
146732009-03-29 David Ayers <ayers@fsfe.org>
14674
14675 PR objc/27377
14676 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
14677 by calling objc_compare_types and surpress warnings about
14678 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 14679
4ea80a41 146802009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
14681
14682 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
14683 call initialize_inline_failed.
14684 (initialize_inline_failed): Move it from here ...
14685 * cgraph.c (initialize_inline_failed): ... to here.
14686 (cgraph_create_edge): Call initialize_inline_failed rather than
14687 setting inline_failed directly.
14688
7fb0ee07
BE
146892009-03-29 Ben Elliston <bje@au.ibm.com>
14690
14691 PR target/32542
14692 * sysv4.opt (msdata): Improve comment.
14693 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
14694 * sysv4.h (SVR4_ASM_SPEC): Likewise.
14695
0be77bf2
BE
146962009-03-29 Ben Elliston <bje@au.ibm.com>
14697
14698 PR target/30451
14699 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
14700 load and store attributes.
14701
593812b6
BE
147022009-03-29 Ben Elliston <bje@au.ibm.com>
14703
14704 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
14705 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
14706 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
14707 * doc/extend.texi (X86 Built-in Functions): Add index entries for
14708 __builtin_infq and __builtin_huge_valq.
14709
8272d11d
AS
147102009-03-28 Anatoly Sokolov <aesok@post.ru>
14711
14712 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
14713 atmega8m1 devices.
14714 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14715 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
14716
74fe548b
XDL
147172009-03-28 Xinliang David Li <davidxl@google.com>
14718
2ba9daa7 14719 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
14720 (do_dbg_cnt): New function.
14721
33977f81
JH
147222009-03-28 Jan Hubicka <jh@suse.cz>
14723
14724 Merge from pretty-ipa:
14725
14726 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 14727
33977f81
JH
14728 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
14729 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
14730 * passes.c (function_called_by_processed_nodes_p): New.
14731 * ipa-pure-const.c (check_call): Fix handling of operands.
14732 (analyze_function): Dump debug output for skipped bodies.
14733 (local_pure_const): Use function_called_by_processed_nodes_p.
14734 * dwarf2out.c (reference_to_unused): Use output.
14735 * passes.c (do_per_function_toporder): Likewise.
14736
14737 2008-11-12 Jan Hubicka <jh@suse.cz>
14738
14739 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
14740 * ipa-pure-const.c (funct_state_d): Add can throw field; make
14741 state_set_in_source enum
14742 (check_decl): Ignore memory tags; do not set fake looping flags;
14743 dump diagnostics.
14744 (check_operand, check_tree, check_rhs_var, check_lhs_var,
14745 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
14746 (check_call, analyze_function): Rewrite.
14747 (check_stmt): New.
14748 (add_new_function): Update call of analyze_function.
14749 (generate_summary): Add call of analyze_function.
14750 (propagate): Propagate can_throw; handle state_set_in_source correctly.
14751 (local_pure_const): New function.
14752 (pass_local_pure_const): New pass.
14753 * ipa-inline.c (inline_transform): Set after_inlining.
14754 * tree-eh.c (stmt_can_throw_external): New.
14755 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
14756 work with aliasing built.
14757 * tree-flow.h (stmt_can_throw_external): New.
14758 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
14759 and local pure/const pass in early and late optimization queue.
ba20e309 14760
617f3897
MJ
147612009-03-28 Martin Jambor <mjambor@suse.cz>
14762
14763 * fold-const.c (get_pointer_modulus_and_residue): New parameter
14764 allow_func_align.
14765 (fold_binary): Allow function decl aligment consideration is the
14766 second argument is integer constant one.
14767 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
14768 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
14769 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
14770
fe89fbc5
JH
147712009-03-28 Jan Hubicka <jh@suse.cz>
14772
14773 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
14774 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
14775 * function.h (rtl_data): Add nothrow flag.
14776 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
14777 set DECL_NOTHROW for AVAILABLE functions.
14778
574872ff
JJ
147792009-03-28 Jakub Jelinek <jakub@redhat.com>
14780
b3bf8855
JJ
14781 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
14782 following vector keyword has expansion starting with pixel or bool
14783 keyword, expand vector to __vector and pixel or bool to __pixel or
14784 __bool.
14785
574872ff
JJ
14786 PR c++/39554
14787 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
14788 warn_if_disallowed_function_p): Removed.
14789 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
14790 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
14791 warning_if_disallowed_function_p.
14792 * flags.h (warn_if_disallowed_function_p,
14793 warn_disallowed_functions): Removed.
14794 * common.opt (Wdisallowed-function-list=): Removed.
14795 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
14796
b005da11
RG
147972009-03-28 Richard Guenther <rguenther@suse.de>
14798
14799 PR tree-optimization/38723
14800 * tree-ssa-pre.c (compute_avail): Add all default definitions to
14801 the entry block.
14802
1de812a6
JH
148032009-03-28 Jan Hubicka <jh@suse.cz>
14804
14805 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
14806 test introduced by my previous patch.
14807
fbb789d4
RG
148082009-03-28 Richard Guenther <rguenther@suse.de>
14809
14810 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
14811 the PHIs value undefined.
14812
6f1873a1
JH
148132009-03-28 Jan Hubicka <jh@suse.cz>
14814
14815 * tree-pass.h (pass_fixup_cfg): New pass.
14816 * ipa-inline.c (inline_transform): Set
14817 always_inline_functions_inlined/after_inlining.
14818 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
14819 (pass_fixup_cfg): New pass.
14820 * passes.c (init_optimization_passes): Add fixup_cfg.
14821
17021bc8
RG
148222009-03-28 Richard Guenther <rguenther@suse.de>
14823
14824 PR tree-optimization/38458
14825 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
14826 argument use the arguments copy-of value.
14827
e8114fba
RG
148282009-03-28 Richard Guenther <rguenther@suse.de>
14829
14830 PR tree-optimization/38180
14831 * tree-ssa-ccp.c (get_default_value): Simplify.
14832 (likely_value): Likewise.
14833 (surely_varying_stmt_p): Properly handle VOP case.
14834 (ccp_initialize): Likewise.
14835 (ccp_fold): Handle propagating through *&.
14836 (fold_const_aggregate_ref): Also handle decls.
14837
257eb6e3
JH
148382009-03-28 Jan Hubicka <jh@suse.cz>
14839
14840 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
14841 * cgraph.h (cgraph_node): Likewise.
14842 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
14843 (cgraph_reset_node): Use process flag.
14844 (cgraph_mark_functions_to_output): Likewise.
14845 (cgraph_expand_function): Likewise.
14846 (cgraph_expand_all_functions): Likewise.
14847 (cgraph_output_in_order): Likewise.
14848 * dwarf2out.c (reference_to_unused): Likewise.
14849 * passes.c do_per_function_toporder): Likewise.
14850
61a05df1
JH
148512009-03-28 Jan Hubicka <jh@suse.cz>
14852
14853 Bring from lto-branch:
ba20e309 14854
61a05df1
JH
14855 2008-09-03 Doug Kwan <dougkwan@google.com>
14856
14857 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
14858 enums instead of reason strings.
14859 * cgraph.c (cgraph_create_edge): Same.
14860 (cgraph_inline_failed_string): New function.
14861 * cgraph.h (cgraph_inline_failed_t): New enum type.
14862 (cgraph_inline_failed_string): New prototype.
14863 (struct cgraph_edge): Change type of INLINED_FAILED from constant
14864 char pointer to cgraph_inline_failed_t.
14865 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
14866 (cgraph_default_inline_p): Ditto.
60839f5d 14867 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
14868 to cgraph_inline_failed_t pointer.
14869 * cif-code.def: New file.
14870 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
14871 reason string.
14872 (cgraph_check_inline_limits): Change type of REASON to pointer to
14873 cgraph_inline_failed_t. Replace reason strings with enums.
14874 (cgraph_default_inline_p): Ditto.
14875 (cgraph_recursive_inlining_p): Ditto.
14876 (update_caller_keys): Change type of FAILED_REASON to
14877 cgraph_inline_failed_t.
14878 (cgraph_set_inline_failed): Change type of REASON to pointer to
14879 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
14880 convert enums to strings for text output.
14881 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
14882 to be of type cgraph_inline_failed_t. Replace reason strings with
14883 enums. Call cgraph_inline_failed_string to covert enums
14884 to strings for text output.
14885 (cgraph_decide_inlining): Replace reason strings with enums.
14886 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
14887 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
14888 for text output.
14889 * tree-inline.c (expand_call_inline): Change type of REASON
14890 to cgraph_inline_failed_t. Replace reason strings with enums.
14891 Call cgraph_inline_failed_string for text output.
14892 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
14893 (cgraph.o): Ditto.
14894
144e8aac
JH
148952009-03-28 Jan Hubicka <jh@suse.cz>
14896
14897 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
14898 cgraph_clone_node): Remove master clone handling.
14899 (cgraph_is_master_clone, cgraph_master_clone): Remove.
14900 * cgraph.h (master_clone): Remove.
14901 (cgraph_is_master_clone, cgraph_master_clone): Remove.
14902 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
14903 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
14904
4a371c8d
JH
149052009-03-28 Jan Hubicka <jh@suse.cz>
14906
14907 * cgraph.c (cgraph_function_body_availability): Functions declared
14908 inline are always safe to assume that it is not going to be replaced.
14909
6cdb0ee3
RG
149102009-03-28 Richard Guenther <rguenther@suse.de>
14911
14912 PR tree-optimization/38513
14913 * tree-ssa-pre.c (eliminate): Remove redundant stores.
14914 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
14915 EXC_PTR_EXPR and FILTER_EXPR.
14916 (get_ref_from_reference_ops): Likewise.
14917
8ca1fd76
RG
149182009-03-28 Richard Guenther <rguenther@suse.de>
14919
14920 PR tree-optimization/38968
14921 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
14922 Use FLOOR_MOD_EXPR to compute misalignment.
14923
a254e44d
RG
149242009-03-28 Richard Guenther <rguenther@suse.de>
14925
14926 PR tree-optimization/37795
14927 * tree.h (combine_comparisons): Declare.
14928 * fold-const.c (combine_comparisons): Export.
14929 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
14930 comparisons.
14931 (ifcombine_iforif): Use combine_comparisons.
14932
a8ee227c
JH
149332009-03-28 Jan Hubicka <jh@suse.cz>
14934
14935 * tree-eh.c (inlinable_call_p): New function.
14936 (make_eh_edges): Use it.
14937 (verify_eh_edges): Use it.
14938 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
14939 * except.c (reachable_next_level): Add inlinable_function argument
14940 (sjlj_find_directly_reachable_regions): Update.
14941 (add_reachable_handler): Do not set saw_any_handlers.
14942 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
14943 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
14944 Add new inlinable call parameter.
14945 (can_throw_internal, can_throw_external): Update.
14946 * except.h (can_throw_internal_1, can_throw_external_1,
14947 foreach_reachable_handler): Update declaration.
14948
52c0e446
JM
149492009-03-28 Joseph Myers <joseph@codesourcery.com>
14950
14951 * config/arm/t-arm-coff, config/h8300/coff.h,
14952 config/i386/i386-aout.h, config/i386/i386-coff.h,
14953 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
14954 config/pdp11/2bsd.h, config/rs6000/aix41.h,
14955 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
14956 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
14957 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
14958 sys-types.h: Remove.
14959 * Makefile.in: Remove protoize and fixproto support and references
14960 in comments.
14961 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
14962 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
14963 Remove.
14964 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
14965 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
14966 unprotoize$(exeext).
14967 (rest.encap): Don't depend on $(STMP_FIXPROTO)
14968 (.PHONY): Don't depend on proto.
14969 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
14970 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
14971 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
14972 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
14973 build/gen-protos.o, build/scan.o, xsys-protos.h,
14974 build/fix-header$(build_exeext), build/fix-header.o,
14975 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
14976 stmp-install-fixproto): Remove.
14977 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
14978 SYSCALLS.c or fixproto files.
14979 (install-common): Don't install protoize.
14980 (install-headers-tar, install-headers-cpio, install-headers-cp):
14981 Don't depend on $(STMP_FIXPROTO).
14982 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
14983 install fixproto files or write out fixproto settings.
14984 (uninstall): Don't uninstall protoize.
14985 * config.gcc (use_fixproto): Remove.
14986 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
14987 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
14988 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
14989 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
14990 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
14991 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
14992 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
14993 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
14994 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
14995 * config/t-vxworks (STMP_FIXPROTO): Remove.
14996 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
14997 STMP_FIXPROTO): Remove.
14998 * config.in, configure: Regenerate.
14999 * crtstuff.c (gid_t, uid_t): Don't undefine.
15000 * doc/install.texi: Change m68k-coff to m68k-elf in example.
15001 (arm-*-coff, arm-*-aout: Remove target entries.
15002 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
15003 Remove mention of AIX 4.1.
15004 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
15005 * doc/invoke.texi (Running Protoize): Remove.
15006 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
15007 (Protoize Caveats): Remove.
15008 * tsystem.h: Update comments on headers assumed to exist.
15009
20a07f44
VM
150102009-03-27 Vladimir Makarov <vmakarov@redhat.com>
15011
15012 * genautomata.c: Add a new year to the copyright. Add a new
15013 reference.
15014 (struct insn_reserv_decl): Add comments for member bypass_list.
15015 (find_bypass): Remove.
15016 (insert_bypass): New.
15017 (process_decls): Use insert_bypass.
15018 (output_internal_insn_latency_func): Output all bypasses with the
15019 same input insn in one switch case.
15020
15021 * rtl.def (define_bypass): Describe bypass choice.
15022 * doc/md.texi (define_bypass): Ditto.
15023
3a0d06c1
RB
150242009-03-27 Richard Guenther <rguenther@suse.de>
15025
15026 * gimplify.c (mark_addressable): Export.
15027 * tree-flow.h (mark_addressable): Declare.
15028 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
15029 * tree-ssa.c (verify_phi_args): Verify that address taken
15030 variables have TREE_ADDRESSABLE set.
15031
150322009-03-27 Richard Guenther <rguenther@suse.de>
15033
15034 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
15035 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
15036 Do not mark decls TREE_ADDRESSABLE.
15037 (build_fold_addr_expr): Adjust.
15038 (fold_addr_expr): Remove.
15039 (fold_unary): Use build_fold_addr_expr.
15040 (fold_comparison): Likewise.
15041 (split_address_to_core_and_offset): Likewise.
15042 * coverage.c (tree_coverage_counter_addr): Mark the array decl
15043 TREE_ADDRESSABLE.
15044 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
15045 (gimplify_modify_expr_to_memcpy): Mark source and destination
15046 addressable.
15047 * omp-low.c (create_omp_child_function): Mark the object decl
15048 TREE_ADDRESSABLE.
15049 (lower_rec_input_clauses): Mark the var we take the address of
15050 TREE_ADDRESSABLE.
15051 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
15052
2ac26e15
L
150532009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15054
15055 PR middle-end/39315
15056 * cfgexpand.c (expand_one_stack_var_at): Change alignment
15057 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
15058
472c7fbd
RG
150592009-03-27 Richard Guenther <rguenther@suse.de>
15060
15061 PR tree-optimization/39120
15062 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
15063 constraints.
15064 (handle_lhs_call): Process return constraints. Add escape
15065 constraints if necessary.
15066 (handle_const_call): Fill out return constraints. Make nested
15067 case more precise. Avoid consttmp if possible.
15068 (handle_pure_call): Fill out return constraints. Avoid
15069 callused if possible.
15070 (find_func_aliases): Simplify call handling.
15071
150722009-03-27 Richard Guenther <rguenther@suse.de>
15073
15074 PR tree-optimization/39120
15075 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
15076 as a representative.
15077 (solve_graph): Do propagate CALLUSED.
15078 (handle_pure_call): Use a scalar constraint from CALLUSED for
15079 the return value.
15080 (find_what_p_points_to): CALLUSED shall not appear in poins-to
15081 solutions.
15082
d9223014
L
150832009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15084
15085 PR c/39323
15086 * c-common.c (handle_aligned_attribute): Properly check alignment
15087 overflow. Use (1U << i) instead of (1 << i).
15088
ba20e309 15089 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
15090
15091 * expr.h (get_mem_align_offset): Updated.
15092
15093 * tree.h (tree_decl_common): Change align to "unsigned int" and
15094 move it before pointer_alias_set.
15095
689b689c
L
150962009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15097 Jakub Jelinek <jakub@redhat.com>
15098
15099 PR target/38034
15100 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
15101 gr_register_operand with gr_reg_or_0_operand.
15102 (cmpxchg_rel_di): Likewise.
15103 (sync_lock_test_and_set<mode>): Likewise.
15104
c619e982
L
151052009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15106
15107 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
15108 (true_regnum): Likewise.
15109
15110 * rtlanal.c (subreg_info): Moved to ...
15111 * rtl.h (subreg_info): Here. New.
15112 (subreg_get_info): New.
15113
15114 * rtlanal.c (subreg_get_info): Make it extern.
15115
51212b32
L
151162009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15117
15118 PR target/39472
15119 * config/i386/i386.c (ix86_abi): New.
15120 (override_options): Handle -mabi=.
ba20e309 15121 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
15122 (ix86_call_abi_override): Likewise.
15123 (init_cumulative_args): Likewise.
15124 (function_arg_advance): Likewise.
15125 (function_arg_64): Likewise.
15126 (function_arg): Likewise.
15127 (ix86_pass_by_reference): Likewise.
15128 (ix86_function_value_regno_p): Likewise.
15129 (ix86_build_builtin_va_list_abi): Likewise.
15130 (setup_incoming_varargs_64): Likewise.
15131 (is_va_list_char_pointer): Likewise.
15132 (ix86_init_machine_status): Likewise.
ba20e309 15133 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
15134 (ix86_function_type_abi): Return enum calling_abi. Rewrite
15135 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 15136 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
15137 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
15138 with ix86_abi.
15139 (ix86_fn_abi_va_list): Updated.
15140
15141 * config/i386/i386.h (ix86_abi): New.
15142 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
15143 (CONDITIONAL_REGISTER_USAGE): Likewise.
15144 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
15145 (machine_function): Likewise.
15146
15147 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
15148 with ix86_abi.
15149 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
15150 (STACK_BOUNDARY): Likewise.
15151 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
15152
15153 * config/i386/i386.opt (mabi=): New.
15154
15155 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
15156 return enum calling_abi.
15157 (ix86_function_type_abi): Likewise.
15158 (ix86_function_abi): Removed.
15159
15160 * doc/invoke.texi: Document -mabi= option for x86.
15161
7338ea63
KG
151622009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15163
15164 * builtins.c (real_dconstp): Delete.
15165 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
15166
68599f33
DS
151672009-03-27 Dodji Seketeli <dodji@redhat.com>
15168 Jakub Jelinek <jakub@redhat.com>
15169
15170 PR debug/37959
15171 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
15172 (gen_subprogram_die): When a function is explicit, generate the
15173 DW_AT_explicit attribute.
15174 * langhooks.h (struct lang_hooks_for_decls): Add
15175 function_decl_explicit_p langhook.
15176 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
15177 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
15178
9f5e9983
JJ
151792009-03-27 Jakub Jelinek <jakub@redhat.com>
15180
64d7685c
JJ
15181 * builtins.c (fold_builtin_memory_op): Optimize memmove
15182 into memcpy if we can prove source and destination don't overlap.
15183
9f5e9983
JJ
15184 * tree-inline.c: Include gt-tree-inline.h.
15185 (clone_fn_id_num): New variable.
15186 (clone_function_name): New function.
15187 (tree_function_versioning): Use it.
15188 * Makefile.in (GTFILES): Add tree-inline.c.
15189
e54d52a8
MM
151902009-03-27 Mark Mitchell <mark@codesourcery.com>
15191
15192 * BASE-VER: Change to 4.5.0.
15193
e9d51dc6
XDL
151942009-03-27 Xinliang David Li <davidxl@google.com>
15195
15196 PR tree-optimization/39557
15197 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
15198
4577cea1
XDL
151992009-03-27 Xinliang David Li <davidxl@google.com>
15200
15201 PR tree-optimization/39548
2ba9daa7 15202 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
15203 candidate check.
15204
0f7464f4
L
152052009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15206
15207 * c-common.c (pointer_int_sum): Use %wd on return from
15208 tree_low_cst.
15209
a8847a7f
L
152102009-03-27 H.J. Lu <hongjiu.lu@intel.com>
15211
15212 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
15213 on return from tree_low_cst.
15214
b0957daf
AP
152152009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
15216
15217 PR c++/36799
ba20e309
UB
15218 * ginclude/stdarg.h (va_copy): Define also for
15219 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 15220
a5f805df
MLI
152212009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15222
15223 PR c++/35652
15224 * builtins.h (c_strlen): Do not warn here.
15225 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
15226 * c-common.c (pointer_int_sum): Take an explicit location.
15227 Warn about offsets out of bounds.
15228 * c-common.h (pointer_int_sum): Adjust declaration.
15229
6f401211
RW
152302009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15231
a5f805df
MLI
15232 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
15233 markup glitch.
6f401211 15234
5a59b39e
JJ
152352009-03-26 Jakub Jelinek <jakub@redhat.com>
15236
15237 PR c++/39554
15238 * opts.c (warn_if_disallowed_function_p): Don't assume
15239 get_callee_fndecl must return non-NULL.
15240
d5f89b53
VM
152412009-03-26 Vladimir Makarov <vmakarov@redhat.com>
15242
15243 PR rtl-optimization/39522
15244 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
15245 when reg_reloaded_valid is set.
15246
61238a79
UW
152472009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15248
15249 * config/spu/divv2df3.c: New file.
15250 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
15251 (DPBIT_FUNCS): Filter out _div_df.
15252
03f8829b
BS
152532009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
15254
15255 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
15256 a jump insn, count that jump in the distance to the loop start.
15257
9fdcdc74
KK
152582009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
15259
15260 PR target/39523
15261 * config/sh/sh.c (calc_live_regs): Fix condition for global
15262 registers except PIC_OFFSET_TABLE_REGNUM.
15263
46994828
KT
152642009-03-25 Kai Tietz <kai.tietz@onevision.com>
15265
15266 PR/39518
15267 * doc/invoke.texi (-mconsole): New.
15268 (-mcygwin): New.
15269 (-mno-cygwin): New.
15270 (-mdll): New.
15271 (-mnop-fun-dllimport): New.
15272 (-mthread): New.
15273 (-mwin32): New.
15274 (-mwindows): New.
15275 (sub section "i386 and x86-64 Windows Options"): New.
15276
60839f5d 152772009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
15278
15279 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
15280 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
15281
ae560440
RG
152822009-03-25 Richard Guenther <rguenther@suse.de>
15283
15284 PR middle-end/39497
15285 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
15286 of -Wno-error.
15287
cd510f15
AM
152882009-03-25 Andrey Belevantsev <abel@ispras.ru>
15289
15290 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
15291 neither of haifa/selective schedulers are working.
15292
44ab0f0e
RW
152932009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15294
15295 * doc/invoke.texi (Debugging Options): Fix description of
15296 -fno-merge-debug-strings.
15297
ad9646c7
HPN
152982009-03-24 Hans-Peter Nilsson <hp@axis.com>
15299
e6142656
HPN
15300 * config/cris/libgcc.ver: New version-script.
15301 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
15302
ad9646c7
HPN
15303 * configure.ac <GAS features, nop mnemonic>: Add pattern
15304 crisv32-*-* for "nop".
ba20e309 15305 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
15306 * configure: Regenerate.
15307
09ac4473
IR
153082009-03-24 Ira Rosen <irar@il.ibm.com>
15309
15310 PR tree-optimization/39529
15311 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
15312 mark_sym_for_renaming for the tag copied to the new vector
15313 pointer.
15314
d94a427e
AL
153152009-03-24 Arthur Loiret <aloiret@debian.org>
15316
ba20e309 15317 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
15318 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
15319 EXTRA_SPEC_FUNCTIONS.
15320 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
15321 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
15322 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
15323 -march and -mtune options.
15324
60839f5d 153252009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
15326
15327 * config/m68k/t-rtems: Add m5329 multilib.
15328
603f5959
DS
153292009-03-24 Dodji Seketeli <dodji@redhat.com>
15330 Jakub Jelinek <jakub@redhat.com>
15331
15332 PR debug/39524
15333 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
15334 nodes.
15335
c5cdb03f
JJ
153362009-03-23 Jakub Jelinek <jakub@redhat.com>
15337
15338 PR c/39495
15339 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
15340 instead of c_parser_expression_conv, if original_code isn't one of the
15341 4 allowed comparison codes, fail.
15342
3691626c
RG
153432009-03-23 Richard Guenther <rguenther@suse.de>
15344
15345 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
15346 * tree.h (struct tree_type): Likewise.
15347 * reload.h (struct insn_chain): Likewise.
15348 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
15349 * function.h (struct function): Likewise.
15350 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
15351
88ccb72a
JJ
153522009-03-23 Jakub Jelinek <jakub@redhat.com>
15353
15354 PR tree-optimization/39516
15355 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
15356
60839f5d 153572009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 15358
2ba9daa7 15359 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
15360 should be set true if BITS_PER_WORD of target is bigger than 32
15361
f82162f8
HPN
153622009-03-22 Hans-Peter Nilsson <hp@axis.com>
15363
15364 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
15365 Translate -B-options to -rpath-link. Correct existing
15366 rpath-link and conditionalize on !nostdlib.
15367
048fd785
RW
153682009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15369
15370 * doc/extend.texi (Function Attributes, Variable Attributes):
15371 Fix typos.
15372 * doc/invoke.texi (Debugging Options, Optimize Options)
15373 (i386 and x86-64 Options, MCore Options): Likewise.
15374
6e75c1a9
JJ
153752009-03-20 Jakub Jelinek <jakub@redhat.com>
15376
15377 PR debug/37890
15378 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
15379 it for block local namespace aliases.
15380 (gen_decl_die): Pass context_die to gen_namespace_die.
15381
ea1199ee
JJ
153822009-03-19 Jakub Jelinek <jakub@redhat.com>
15383
15384 PR c/39495
15385 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
15386 minimum or maximum value.
15387
58929c10
AO
153882009-03-19 Alexandre Oliva <aoliva@redhat.com>
15389
15390 * reginfo.c (globalize_reg): Recompute derived reg sets.
15391
60839f5d 153922009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
15393
15394 PR target/39063
15395 * libgcc2.c (mprotect): Do not use signed arguments for
15396 VirtualProtect, use DWORD arguments. Also fix the 'may
15397 be used uninitialized' warning for the np variable.
15398
f57c2f04
JJ
153992009-03-19 Jakub Jelinek <jakub@redhat.com>
15400
15401 PR target/39496
15402 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
15403 functions using regparm calling conventions when not optimizing.
15404 (ix86_function_sseregparm): Similarly for sseregparm calling
15405 conventions.
15406
9e517d61
LF
154072009-03-19 Li Feng <nemokingdom@gmail.com>
15408
15409 PR middle-end/39500
15410 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
15411 dependence if the first conflict is after niter iterations.
15412
8ef20026
HPN
154132009-03-19 Hans-Peter Nilsson <hp@axis.com>
15414
15415 PR middle-end/38609
15416 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
15417 functions with dynamic stack-pointer adjustments.
15418
64e4a1a6
BE
154192009-03-19 Ben Elliston <bje@au.ibm.com>
15420
15421 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
15422 option; change to -msdata=data.
15423
9a0f3e86
RW
154242009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15425
15426 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
15427 and -fopenmp.
15428
09bc5979
EB
154292009-03-18 Eric Botcazou <ebotcazou@adacore.com>
15430
15431 PR target/35180
15432 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
15433
332459cd
SL
154342009-03-18 Sandra Loosemore <sandra@codesourcery.com>
15435
15436 * doc/invoke.texi (Code Gen Options): Expand discussion of
15437 -fno-common.
15438
8f5929e1
JJ
154392009-03-18 Jakub Jelinek <jakub@redhat.com>
15440
15441 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
15442 * matrix-reorg.c (struct matrix_info): Likewise.
15443 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
15444 * rtl.h (struct mem_attrs): Likewise.
15445 * df.h (struct df): Likewise.
15446 * tree-data-ref.h (struct data_dependence_relation): Likewise.
15447 * ira-int.h (struct ira_allocno): Likewise.
15448 * df-scan.c (struct df_collection_rec): Likewise.
15449 * ira.c (struct equivalence): Likewise.
15450 * function.c (struct temp_slot): Likewise.
15451 * cfgloop.h (struct loop): Likewise.
15452
d130d647
JJ
15453 PR debug/39485
15454 * function.c (use_register_for_decl): When not optimizing, disregard
15455 register keyword for variables with types containing methods.
15456
9968d233
SP
154572009-03-18 Sebastian Pop <sebastian.pop@amd.com>
15458
15459 PR middle-end/39447
15460 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
15461 (is_simple_operand): Call contains_component_ref_p before calling data
15462 reference analysis that would fail on COMPONENT_REFs.
15463
15464 * tree-vrp.c (search_for_addr_array): Fix formatting.
15465
69484bfd
RG
154662009-03-18 Richard Guenther <rguenther@suse.de>
15467
15468 * tree-vect-transform.c (vect_loop_versioning): Fold the
15469 generated comparisons.
15470 * tree-vectorizer.c (set_prologue_iterations): Likewise.
15471 (slpeel_tree_peel_loop_to_edge): Likewise.
15472
66811228
RW
154732009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15474
0631b69f
RW
15475 PR middle-end/37805
15476 * opts.c (print_specific_help): In addition to `undocumented',
15477 accept `separate' and `joined' flags if passed alone. Describe
15478 output by the first matched one of those.
15479 (common_handle_option): Skip over empty strings.
15480 * gcc.c (display_help): Fix help string for `--help='.
15481 * doc/invoke.texi (Option Summary, Overall Options): With
15482 `--help=', classes and qualifiers can both be repeated, but
15483 only the latter can be negated. One should not pass only
15484 negated qualifiers. Fix markup and examples.
15485
66811228
RW
15486 Revert
15487 2008-10-14 Jakub Jelinek <jakub@redhat.com>
15488 PR middle-end/37805
15489 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
15490 and -fhelp=separate.
15491
3c072c6b
JY
154922009-03-17 Jing Yu <jingyu@google.com>
15493
15494 PR middle-end/39378
80c65208
JY
15495 * function.h (struct rtl_data): Move is_thunk from here...
15496 (struct function): ...to here.
15497 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
15498 * varasm.c (assemble_start_function): Change is_thunk from crtl to
15499 cfun.
80c65208
JY
15500 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
15501 cfun.
15502 (alpha_does_function_need_gp, alpha_start_function): Likewise.
15503 (alpha_output_function_end_prologue): Likewise.
15504 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
15505 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
15506 (rs6000_output_function_epilogue): Likewise.
15507 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 15508
9ade279b
UB
155092009-03-17 Uros Bizjak <ubizjak@gmail.com>
15510
15511 PR target/39482
15512 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
15513 from different units in a single alternative.
15514 (*truncdfsf_i387): Ditto.
15515 (*truncxfsf2_mixed): Ditto.
15516 (*truncxfdf2_mixed): Ditto.
15517
16e60c17
JJ
155182009-03-17 Jakub Jelinek <jakub@redhat.com>
15519
98381eb4
JJ
15520 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
15521 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
15522
df5deb18
JJ
15523 PR debug/39474
15524 * tree-ssa-live.c (remove_unused_locals): Don't remove local
15525 unused non-artificial variables when not optimizing.
15526
a3f596ba
JJ
15527 PR debug/39471
15528 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
15529 DW_TAG_imported_module even if decl is IMPORTED_DECL with
15530 NAMESPACE_DECL in its DECL_INITIAL.
15531
6b2b8871
JJ
15532 PR middle-end/39443
15533 * optabs.c (set_user_assembler_libfunc): New function.
15534 * expr.h (set_user_assembler_libfunc): New prototype.
15535 * c-common.c: Include libfuncs.h.
15536 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
15537 for memcmp, memset, memcpy, memmove and abort.
15538 * Makefile.in (c-common.o): Depend on libfuncs.h.
15539
16e60c17
JJ
15540 PR debug/39412
15541 * dwarf2out.c (gen_inlined_enumeration_type_die,
15542 gen_inlined_structure_type_die, gen_inlined_union_type_die,
15543 gen_tagged_type_instantiation_die): Removed.
15544 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
15545 do nothing.
15546
4d936aca
JJ
155472009-03-17 Janis Johnson <janis187@us.ibm.com>
15548
15549 PR testsuite/38526
15550 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
15551 its use.
15552 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
15553 (check-parallel-%): Ditto.
15554 (check-consistency): Ditto.
15555
4e9b2e50
KT
155562009-03-17 Kai Tietz <kai.tietz@onevision.com>
15557
15558 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
15559 local variable rhs by NULL_TREE.
15560
21440b2d
L
155612009-03-17 H.J. Lu <hongjiu.lu@intel.com>
15562
15563 PR target/39477
9ade279b 15564 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 15565
d8905c6a
L
155662009-03-17 H.J. Lu <hongjiu.lu@intel.com>
15567
15568 PR target/39476
9ade279b 15569 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
15570
155712009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
15572
15573 PR target/39473
15574 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
15575 for ms->sysv ABI calls only in 64bit mode.
15576
15577 * config/i386/i386.md (untyped_call): Support 32bit.
15578
cdcabece
L
155792009-03-16 H.J. Lu <hongjiu.lu@intel.com>
15580
15581 * doc/extend.texi: Replace x86_65 with x86_64.
15582
97b4ba9f
JJ
155832009-03-16 Jakub Jelinek <jakub@redhat.com>
15584
15585 PR tree-optimization/39455
15586 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
15587 mismatches for POINTER_TYPE_P (type).
15588 (number_of_iterations_le): Likewise.
15589
60839f5d 155902009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
15591
15592 * config/picochip/picochip.c: Removed profiling support.
15593 * config/picochip/picochip.md: Removed profiling instruction.
15594 * config/picochip/picochip.h: Removed profiling builtin.
15595
f38095f3
JM
155962009-03-16 Joseph Myers <joseph@codesourcery.com>
15597
15598 * doc/install.texi (--with-host-libstdcxx): Document.
15599
2cb4817b
AS
156002009-03-14 Anatoly Sokolov <aesok@post.ru>
15601
15602 PR target/34299
15603 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
15604 generate a warning if the function name does not begin with
15605 "__vector" and the function has either the 'signal' or 'interrupt'
15606 attribute, from here to ...
15607 (avr_declare_function_name): ...here. New function.
15608 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
15609 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
15610
39b2ac74
JJ
156112009-03-14 Jakub Jelinek <jakub@redhat.com>
15612
15613 PR bootstrap/39454
15614 * cse.c (fold_rtx): Don't modify original const_arg1 when
15615 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
15616 separate variable instead.
15617 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
15618 from out of range shift counts.
15619 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
15620
ad41bd84 156212009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 15622
60839f5d 15623 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
15624 diagnostic.h with $(DIAGNOSTIC_H).
15625
ad41bd84 156262009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
15627
15628 PR target/39431
15629 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
15630 predicate.
15631 * config/i386/sync.md (sync_compare_and_swap<mode>,
15632 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
15633 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
15634 into a register.
15635 (sync_double_compare_and_swapdi_pic,
15636 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
15637 cmpxchg8b_pic_memory_operand instead of just memory_operand.
15638
122c59c7
L
156392009-03-12 H.J. Lu <hongjiu.lu@intel.com>
15640
15641 PR target/39445
9ade279b 15642 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 15643
cec8874f
L
156442009-03-12 H.J. Lu <hongjiu.lu@intel.com>
15645
15646 PR target/39327
15647 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
15648 (avx_addsubv4df3): Likewise.
15649 (*avx_addsubv4sf3): Likewise.
15650 (sse3_addsubv4sf3): Likewise.
15651
bbb52802
L
156522009-03-12 H.J. Lu <hongjiu.lu@intel.com>
15653
15654 PR target/38824
9ade279b 15655 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 15656
a812fb07
VM
156572009-03-12 Vladimir Makarov <vmakarov@redhat.com>
15658
15659 PR debug/39432
15660 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
15661 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
15662 registers for allocnos created from user-defined variables.
15663
4caab5ba
UW
156642009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15665
15666 PR target/39181
15667 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
15668 of non-integer mode as well.
15669
498e51ca
AN
156702009-03-11 Adam Nemet <anemet@caviumnetworks.com>
15671
15672 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
15673 for functions for which the parameter types are unknown.
15674
9bfaf89d
JJ
156752009-03-11 Jakub Jelinek <jakub@redhat.com>
15676
15677 PR target/39137
9ade279b 15678 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
15679 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
15680 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
15681 * config/i386/i386.c (ix86_local_alignment): For
15682 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
15683 long long variables on the stack to avoid dynamic realignment.
15684 Allow the first argument to be a decl rather than type.
15685 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
15686
18a3bdcb
NC
156872009-03-11 Nick Clifton <nickc@redhat.com>
15688
15689 PR target/5362
40190a76
NC
15690 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
15691 options.
15692 Add description to mno-lsim option.
15693 * config/mcore/mcore.h: Remove comment about deprecated m4align
15694 option.
15695 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
15696 * doc/invoke.texi: Add description of mno-lsim and
15697 mstack-increment options.
15698
18a3bdcb
NC
15699 * config/fr30/fr30.opt: Document the -mno-lsim option.
15700 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
15701 and -mno-lsim options.
15702
dc215785
UW
157032009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15704
15705 * fold-const.c (fold_comparison): Only call fold_inf_compare
15706 if the mode supports infinities.
15707
7716876b
JM
157082009-03-11 Jason Merrill <jason@redhat.com>
15709
15710 PR debug/39086
15711 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
15712 end already did. Notice GIMPLE_CALL modifications of the result.
15713 Don't copy debug information from an ignored decl or a decl from
15714 another function.
15715
ddef83d2
RG
157162009-03-10 Richard Guenther <rguenther@suse.de>
15717 Nathan Froyd <froydnj@codesourcery.com>
15718
15719 PR middle-end/37850
9ade279b 15720 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
15721 (__divMODE3): Likewise.
15722
9a9ba8d9
JJ
157232009-03-09 Jakub Jelinek <jakub@redhat.com>
15724
15725 PR tree-optimization/39394
15726 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
15727 DECL_SIZE_UNIT of variable length FIELD_DECLs.
15728
929b7fc3
AK
157292009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15730
15731 * recog.c (verfiy_changes): Disallow renaming of hard regs in
15732 inline asms for register asm ("") declarations.
15733
1803581d
EB
157342009-03-09 Eric Botcazou <ebotcazou@adacore.com>
15735
15736 * fold-const.c (fold_unary): Fix comment.
15737
8454d27e
JH
157382009-03-07 Jan Hubicka <jh@suse.cz>
15739
15740 PR target/39361
969a5433
JJ
15741 * tree-inline.c (setup_one_parameter): Do replacement of const
15742 argument by constant in SSA form.
8454d27e 15743
3a695389
UW
157442009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15745
15746 PR middle-end/38028
15747 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
15748 determine alignment passed to assign_stack_local.
15749 (assign_parms_unsplit_complex): Likewise.
15750 * except.c (sjlj_build_landing_pads): Likewise.
15751
9f0e7885
JJ
157522009-03-06 Jakub Jelinek <jakub@redhat.com>
15753
65401a0b
JJ
15754 PR middle-end/39360
15755 * tree-flow.h (add_referenced_var): Return bool instead of void.
15756 * tree-dfa.c (add_referenced_var): Return result of
15757 referenced_var_check_and_insert call.
15758 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
15759 of referenced_var_check_and_insert.
15760
9f0e7885 15761 PR debug/39372
9ade279b 15762 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
15763 (gen_variable_die): Emit DW_AT_location on abstract static variable's
15764 DIE, don't emit it if abstract origin already has it.
15765 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
15766 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
15767
3b664bd1
JBG
157682009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
15769
ba20e309 15770 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
15771 detection.
15772 (write_tm_constrs_h): Indent generated code.
15773
d8f8ca80
RR
157742009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15775
15776 * doc/extend.texi (Function Attributes): Add documentation
15777 for isr attributes.
15778
6c3d550c
JJ
157792009-03-06 Jakub Jelinek <jakub@redhat.com>
15780
15781 PR debug/39387
15782 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
15783 take locus from its DECL_SOURCE_LOCATION instead of input_location.
15784
f9e96751
BS
157852009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
15786
15787 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
15788 the loop as bad.
15789
ee0ee7e2
JJ
157902009-03-05 Jakub Jelinek <jakub@redhat.com>
15791
15792 PR debug/39379
15793 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
15794 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
15795
6c6094f1
UB
157962009-03-05 Uros Bizjak <ubizjak@gmail.com>
15797
15798 * config/i386/i386.md (R8_REG, R9_REG): New constants.
15799 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
15800 constants instead of magic numbers.
15801 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
15802 (QI_REG_P): Ditto.
15803 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
15804 (x86_64_ms_abi_int_parameter_registers): Ditto.
15805 (x86_64_int_return_registers): Ditto.
09f8a8d3 15806 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
15807 (ix86_expand_call): Ditto for clobbered_registers array.
15808 (ix86_hard_regno_mode_ok): Ditto.
15809 (x86_extended_QIreg_mentioned_p): Ditto.
15810
b267bd41
R
158112009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
15812
6c6094f1 15813 PR tree-optimization/39349
1f3ad3f0
R
15814 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
15815
b267bd41
R
15816 * combine.c (gen_lowpart_for_combine): Use omode when generating
15817 clobber.
15818
1242bc9d
R
158192009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
15820
6c6094f1 15821 PR rtl-optimization/39235
1242bc9d
R
15822 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
15823
48f03606
ZD
158242009-03-04 Zdenek Dvorak <ook@ucw.cz>
15825
15826 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
15827
b505e785
RG
158282009-03-04 Richard Guenther <rguenther@suse.de>
15829
15830 PR tree-optimization/39362
15831 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
15832 that occur in abnormal PHIs should be varying.
15833
f017bf5e
ZD
158342009-03-04 Zdenek Dvorak <ook@ucw.cz>
15835
15836 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
15837 Extend comments.
15838 (simple_iv): Take loop as an argument instead of statement.
15839 * tree-scalar-evolution.h (simple_iv): Declaration changed.
15840 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
15841 to simple_iv.
15842 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
15843 Ditto.
15844 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
15845 * matrix-reorg.c (analyze_transpose): Ditto.
15846 * tree-data-ref.c (dr_analyze_innermost): Ditto.
15847 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
15848 * tree-predcom.c (ref_at_iteration): Ditto.
15849 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
15850
6a66f28e
RG
158512009-03-04 Richard Guenther <rguenther@suse.de>
15852
15853 PR tree-optimization/39358
15854 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
15855 escaped_id and callused_id.
15856 (solve_graph): Likewise.
15857
57e454ee
RG
158582009-03-04 Richard Guenther <rguenther@suse.de>
15859
15860 PR tree-optimization/39339
15861 * tree-sra.c (try_instantiate_multiple_fields): Make it
15862 no longer ICE on the above.
15863
a6fe9ed4
JM
158642009-03-03 Joseph Myers <joseph@codesourcery.com>
15865
15866 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
15867 that fits within Pmode.
15868
dc672951
SE
158692009-03-03 Steve Ellcey <sje@cup.hp.com>
15870
15871 PR middle-end/10109
15872 * tm.texi (LIBCALL_VALUE): Update description.
15873
8b9d598f
SE
158742009-03-03 Steve Ellcey <sje@cup.hp.com>
15875
15876 PR middle-end/34443
15877 * doc/extend.texi (section): Update description.
15878
13e4e36e
L
158792009-03-03 H.J. Lu <hongjiu.lu@intel.com>
15880
15881 PR middle-end/39345
15882 * tree-inline.c (remapped_type): New.
15883 (can_be_nonlocal): Call remapped_type instead of remap_type.
15884
067dd3c9
JJ
158852009-03-03 Jakub Jelinek <jakub@redhat.com>
15886
15887 PR fortran/39354
15888 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
15889 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
15890
9bd9f738
RG
158912009-03-03 Richard Guenther <rguenther@suse.de>
15892
15893 PR middle-end/39272
15894 * tree.c (tree_nonartificial_location): New function.
15895 * tree.h (tree_nonartificial_location): Declare.
15896 * builtins.c (expand_builtin_memory_chk): Provide location
15897 of the call location for artificial function pieces.
15898 (maybe_emit_chk_warning): Likewise.
15899 (maybe_emit_sprintf_chk_warning): Likewise.
15900 (maybe_emit_free_warning): Likewise.
15901 * expr.c (expand_expr_real_1): Likewise.
15902
f07049c8
JJ
159032009-03-03 Jakub Jelinek <jakub@redhat.com>
15904
15905 PR tree-optimization/39343
15906 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
15907 COMPONENT_REF t has ARRAY_TYPE.
15908
7d4fba4a
SP
159092009-03-02 Sebastian Pop <sebastian.pop@amd.com>
15910
15911 PR middle-end/39335
15912 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
15913 when the type precision of the induction variable should be
15914 larger than the type precision of nit.
15915 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
15916 * graphite.c (graphite_loop_normal_form): Same.
15917 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
15918
78168632
UB
159192009-03-02 Uros Bizjak <ubizjak@gmail.com>
15920
15921 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
15922 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 15923 numbers to describe clobbered registers.
78168632 15924 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
15925 * config/i386/mmx.md (mmx_emms): Ditto.
15926 (mmx_femms): Ditto.
78168632 15927
63553059
RS
159282009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
15929
15930 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
15931 of ABI_64.
15932
500a1f85
UW
159332009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15934
15935 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
15936 (spu_section_type_flags): New function.
15937
962aae34
UB
159382009-03-02 Uros Bizjak <ubizjak@gmail.com>
15939
15940 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
15941 reg_class_contents of FLOAT_REGS into a temporary.
15942
6dfb529c 159432009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 15944 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
15945
15946 PR tree-optimization/39318
15947 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
15948 information to the vectorized statement.
15949
6b5629db
UB
159502009-03-01 Uros Bizjak <ubizjak@gmail.com>
15951
434426d2
UB
15952 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
15953 variable. Use defined names instead of magic constants for REX SSE
15954 registers.
6b5629db 15955
14e5b285
RG
159562009-03-01 Richard Guenther <rguenther@suse.de>
15957
15958 PR tree-optimization/39331
15959 * omp-low.c (lower_send_shared_vars): Do not receive new
15960 values for the reference of DECL_BY_REFERENCE parms or results.
15961
526d73ab
JH
159622009-03-01 Jan Hubicka <jh@suse.cz>
15963
15964 PR debug/39267
15965 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
15966 BLOCK_NONLOCALIZED_VAR): New macros.
15967 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
15968 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
15969 gen_decl_die): Add origin argument. Allow generation of die with
15970 origin at hand only.
526d73ab 15971 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
15972 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
15973 of gen_*.
526d73ab
JH
15974 (gen_block_die): Fix checking for unused blocks.
15975 (process_scope_var): Break out from .... ; work with origins only.
15976 (decls_for_scope) ... here; process nonlocalized list.
15977 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
15978 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
15979 vars.
526d73ab
JH
15980 (dump_scope_block): Dump them.
15981 * tree-inline.c (remap_decls): Handle nonlocalized vars.
15982 (remap_block): Likewise.
15983 (can_be_nonlocal): New predicate.
15984 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
15985
7a9d3fe8
RW
159862009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15987
15988 * configure: Regenerate.
15989
b3cdf3cb
RW
159902009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15991
a16d1645 15992 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 15993 Reuse help texts for duplicate options which do not have any.
a16d1645 15994
1156c176
RW
15995 * gcc.c (display_help): Document --version.
15996
033505fc
RW
15997 * gcc.c (main): If print_help_list and verbose_flag, ensure
15998 driver output comes before subprocess output.
15999
4d077054
RW
16000 * optc-gen.awk: Assign all remaining fields to help string,
16001 space-separated, for multi-line help in *.opt.
16002
a072f1cf
RW
16003 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
16004 -Wno-pedantic-ms-format is for MinGW targets only.
16005
b3cdf3cb
RW
16006 * doc/options.texi (Option file format): Fix bad indentation,
16007 restoring dropped sentence.
16008
a3aadcc5
JH
160092009-02-28 Jan Hubicka <jh@suse.cz>
16010
16011 * tree-inline.c (tree_function_versioning): Output debug info.
16012
1cf5abb3
JH
160132009-02-28 Jan Hubicka <jh@suse.cz>
16014
16015 PR debug/39267
16016 * tree-inline.c (setup_one_parameter): Do not copy propagate
16017 arguments when not optimizing.
16018
c4d3f42f
L
160192009-02-28 H.J. Lu <hongjiu.lu@intel.com>
16020
16021 PR target/39327
16022 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
16023 (avx_addsubv4df3): Likewise.
16024 (*avx_addsubv4sf3): Likewise.
16025 (sse3_addsubv4sf3): Likewise.
16026 (*avx_addsubv2df3): Likewise.
16027 (sse3_addsubv2df3): Likewise.
16028 (avx_unpckhps256): Correct item selectors.
16029 (avx_unpcklps256): Likewise.
16030 (avx_unpckhpd256): Likewise.
16031 (avx_unpcklpd256): Likewise.
16032
eb50f5f4
JH
160332009-02-28 Jan Hubicka <jh@suse.cz>
16034
16035 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
16036 static vars.
16037 (copy_arguments_for_versioning): If var is declared don't declare it.
16038 (tree_function_versioning): First setup substitutions and then copy
16039 args.
16040
26140130
JH
160412009-02-27 Jan Hubicka <jh@suse.cz>
16042
16043 PR debug/39267
16044 * cgraph.h (varpool_output_debug_info): Remove.
16045 * cgraphunit.c (varpool_output_debug_info): Remove.
16046 * dwarf2out.c (deferred_locations_struct): New struct
16047 (deferred_locations): New type.
16048 (deferred_locations_list): New static var.
16049 (deffer_location): New function.
16050 (gen_variable_die): Use it.
16051 (decls_for_scope): Output info on local static vars.
16052 (dwarf2out_finish): Process deferred locations.
16053 * varpool.c (varpool_output_debug_info): Remove.
16054
cff7525f
JH
160552009-02-27 Jan Hubicka <jh@suse.cz>
16056
16057 PR debug/39267
16058 * tree.h (TREE_PROTECTED): Fix comment.
16059 (BLOCK_HANDLER_BLOCK): Remove.
16060 (struct tree_block): Remove handler_block add body_block.
16061 (inlined_function_outer_scope_p): New.
16062 (is_body_block): Remove.
16063 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
16064 * dwarf2out.c (is_inlined_entry_point): Remove.
16065 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
16066 (gen_block_die): Use is_inlined_entry_point check. Remove body block
16067 code.
cff7525f
JH
16068 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
16069 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
16070 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
16071 block with multiple subblocks.
cff7525f
JH
16072 (dump_scope_block): Prettier output; dump more flags and info.
16073 (dump_scope_blocks): New.
16074 (remove_unused_locals): Use dump_scope_blocks.
16075 * tree-flow.h (dump_scope_blocks): Declare.
16076 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
16077 * stmt.c (is_body_block): Remove.
16078 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
16079 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
16080
c20993b9
SP
160812009-02-27 Sebastian Pop <sebastian.pop@amd.com>
16082
16083 PR middle-end/39308
2ba9daa7 16084 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
16085 number_of_iterations_exit from a gcc_assert.
16086
e3cba5e5
AK
160872009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16088
60839f5d 16089 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
16090 jumps if COND is NULL.
16091 (find_cond_jump): New function.
16092 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 16093 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 16094
9dadeeb8
UB
160952009-02-26 Uros Bizjak <ubizjak@gmail.com>
16096
16097 * config/alpha/alpha.h (alpha_expand_mov): Return false if
16098 force_const_mem returns NULL_RTX.
16099
625d3251
EB
161002009-02-26 Jan Hubicka <jh@suse.cz>
16101
16102 PR debug/39267
16103 * cgraph.h (varpool_output_debug_info): Remove.
16104 * cgraphunit.c (varpool_output_debug_info): Remove.
16105 * dwarf2out.c (deferred_locations_struct): New struct
16106 (deferred_locations): New type.
16107 (deferred_locations_list): New static var.
16108 (deffer_location): New function.
16109 (gen_variable_die): Use it.
16110 (decls_for_scope): Output info on local static vars.
16111 (dwarf2out_finish): Process deferred locations.
16112 * varpool.c (varpool_output_debug_info): Remove.
16113
38432148 161142009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
16115
16116 PR rtl-optimization/39241
16117 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
16118 to subreg_offset_representable_p.
16119
62d049cf
PB
161202009-02-25 Paolo Bonzini <bonzini@gnu.org>
16121
16122 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
16123 execute function prototype. Get f and nregs from max_reg_num
16124 and get_insns. Remove the first backward pass as it's dead,
16125 guard the forward pass by flag_expensive_optimizations.
16126 (rest_of_handle_regmove): Delete.
16127 (pass_regmove): Replace it with regmove_optimize.
16128
f618d33e
MJ
161292009-02-25 Martin Jambor <mjambor@suse.cz>
16130
16131 PR tree-optimization/39259
16132 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 16133 calls_alloca function flags.
f618d33e
MJ
16134 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
16135 calls are detected.
16136
c8a05f7c
PB
161372009-02-25 Paolo Bonzini <bonzini@gnu.org>
16138
16139 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
16140 flags_set_1_rtx, flags_set_1_set): Delete.
16141 (regmove_optimize): Do not call mark_flags_life_zones.
16142
6d2538f5
JB
161432009-02-24 Julian Brown <julian@codesourcery.com>
16144
16145 PR target/35965
16146 * config/arm/arm.c (require_pic_register): Only set
16147 cfun->machine->pic_reg once per function.
16148
a2fa6772
SL
161492009-02-24 Sandra Loosemore <sandra@codesourcery.com>
16150
16151 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 16152 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 16153
5472de36
SE
161542009-02-24 Steve Ellcey <sje@cup.hp.com>
16155
16156 PR target/33785
16157 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
16158
844216f3
RG
161592009-02-24 Richard Guenther <rguenther@suse.de>
16160
16161 PR debug/39285
16162 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
16163
71adbef3 161642009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 16165 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
16166
16167 PR tree-optimization/39233
16168 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
16169 from converting them to a generic type.
16170
f1a558e0
SP
161712009-02-23 Sebastian Pop <sebastian.pop@amd.com>
16172
16173 PR tree-optimization/39260
16174 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
16175 contains a condition with a real type.
16176 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
16177
d8028f2c
JM
161782009-02-23 Jason Merrill <jason@redhat.com>
16179
16180 PR c++/38880
16181 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
16182 narrowing_initializer_constant_valid_p.
2ba9daa7 16183 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
16184 null_pointer_node for adding a pointer to itself.
16185
9283b513
JH
161862009-02-23 Jan Hubicka <jh@suse.cz>
16187
16188 PR c/12245
9dadeeb8
UB
16189 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
16190 resizing.
9283b513 16191
61e04322
JH
161922009-02-23 Jan Hubicka <jh@suse.cz>
16193
9dadeeb8
UB
16194 PR tree-optimization/37709
16195 * tree.c (block_ultimate_origin): Move here from dwarf2out.
16196 * tree.h (block_ultimate_origin): Declare.
16197 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
16198 * tree-ssa-live.c (remove_unused_scope_block_p):
16199 Eliminate blocks containig no instructions nor live variables nor
16200 nested blocks.
16201 (dump_scope_block): New function.
16202 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 16203 enable dumping at TDF_DETAILS.
61e04322 16204
38432148 162052009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
16206
16207 * config/i386/i386.c (classify_argument): Don't allow COImode
16208 and OImode.
16209 (function_arg_advance_32): Don't allow OImode.
16210 (function_arg_32): Likewise.
16211 (function_value_32): Likewise.
16212 (return_in_memory_32): Likewise.
16213 (function_arg_64): Remove OImode comment.
16214
38432148 162152009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
16216
16217 PR target/39261
16218 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
16219 ix86_expand_vector_set for V4DImode in 64bit mode only.
16220 (ix86_expand_vector_init_one_var): Likewise.
16221
dcd739a6
SP
162222009-02-21 Sebastian Pop <sebastian.pop@amd.com>
16223
16224 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
16225
6c3b938d
RS
162262009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
16227
8e361f23 16228 PR bootstrap/39257
6c3b938d
RS
16229 * loop-iv.c: Revert last change.
16230 * emit-rtl.c: Likewise.
16231
38432148 162322009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
16233
16234 PR target/39256
16235 * config/i386/i386.c (type_natural_mode): Remove an extra
16236 space in the warning message.
16237 (function_value_32): Handle 32-byte vector modes.
16238 (return_in_memory_32): Likewise.
16239
2ec62529
RS
162402009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
16241
16242 * loop-iv.c (truncate_value): New function.
16243 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
16244 of lowpart_subreg.
16245 (lowpart_subreg): Move to...
16246 * emit-rtl.c: ...here.
16247
ecb8c3cc 162482009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 16249
ecb8c3cc
DS
16250 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
16251 accidental and undocumented change at revision 140860.
16252
ae46a823
JM
162532009-02-21 Joseph Myers <joseph@codesourcery.com>
16254
16255 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
16256 take gimple_seq * arguments.
16257 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
16258 types_compatible_p langhook.
16259
07d8efe3 162602009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 16261 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
16262
16263 * config/arm/arm.c (arm_builtin_va_list): New function.
16264 (arm_expand_builtin_va_start): Likewise.
16265 (arm_gimplify_va_arg_expr): Likewise.
16266 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
16267 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
16268 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
16269 (va_list_type): New variable.
16270 (arm_mangle_type): Mangle va_list_type appropriately.
16271
b1fb9f56
JJ
162722009-02-20 Jakub Jelinek <jakub@redhat.com>
16273
16274 PR middle-end/39157
16275 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
16276 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
16277 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
16278 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
16279 parameter to 1000 for -O1 by default.
16280 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
16281 parameter.
16282 * loop-invariant.c: Include params.h.
16283 (move_loop_invariants): Don't call move_single_loop_invariants on
16284 very large loops.
16285
5bc0807c
JM
162862009-02-20 Jaka Mocnik <jaka@xlab.si>
16287
16288 * calls.c (emit_library_call_value_1): Use slot_offset instead of
16289 offset when calculating bounds for indexing stack_usage_map. Fixes
16290 a buffer overflow with certain target setups.
16291
c69cd1f5
JJ
162922009-02-20 Jakub Jelinek <jakub@redhat.com>
16293
16294 PR target/39240
16295 * calls.c (expand_call): Clear try_tail_call if caller and callee
16296 disagree in promotion of function return value.
16297
09812622
JJ
162982009-02-19 Jakub Jelinek <jakub@redhat.com>
16299
16300 PR target/39175
16301 * c-common.c (c_determine_visibility): If visibility changed and
16302 DECL_RTL has been already set, call make_decl_rtl to update symbol
16303 flags.
16304
68017cb4
L
163052009-02-19 H.J. Lu <hongjiu.lu@intel.com>
16306
16307 PR c++/39188
16308 * varasm.c (assemble_variable): Don't check DECL_NAME when
16309 globalizing a variable.
16310
ab4194da
JM
163112009-02-19 Joseph Myers <joseph@codesourcery.com>
16312
16313 PR c/38483
16314 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
16315 expression before any __builtin_trap call.
16316 * c-typeck.c (build_function_call): Convert and check function
16317 arguments before generating a call to a trap. Evaluate the
16318 function arguments before the trap.
16319
6b67572e
UB
163202009-02-19 Uros Bizjak <ubizjak@gmail.com>
16321
16322 PR target/39228
16323 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
16324 (UNSPEC_FXAM_MEM): New unspec.
16325 (fxam<mode>2_i387_with_temp): New insn and split pattern.
16326 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
16327 memory using fxam<mode>2_i387_with_temp to remove excess precision.
16328
9e39dba6
RG
163292009-02-19 Richard Guenther <rguenther@suse.de>
16330
16331 PR tree-optimization/39207
16332 PR tree-optimization/39074
16333 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
16334 storedanything_tree): New.
16335 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 16336 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
16337 (build_succ_graph): Add edges from STOREDANYTHING to all
16338 non-direct nodes.
16339 (init_base_vars): Initialize STOREDANYTHING.
16340 (compute_points_to_sets): Free substitution info after
16341 building the succ graph.
16342 (ipa_pta_execute): Likewise.
16343
16344 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
16345 field.
16346 (do_ds_constraint): Do not add to special var or non-pointer
16347 field solutions.
16348 (type_could_have_pointers): Split out from ...
16349 (could_have_pointers): ... here. For arrays use the element type.
16350 (create_variable_info_for): Initialize may_have_pointers.
16351 (new_var_info): Likewise.
16352 (handle_lhs_call): Make the HEAP variable unknown-sized.
16353 (intra_create_variable_infos): Use a type with pointers for
16354 PARM_NOALIAS, make it unknown-sized.
16355
fd7b2603
L
163562009-02-18 H.J. Lu <hongjiu.lu@intel.com>
16357
16358 PR target/39224
6b67572e 16359 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 16360
98b80692
JM
163612009-02-18 Jason Merrill <jason@redhat.com>
16362
16363 PR target/39179
16364 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
16365 value if DECL_EXTERNAL.
16366 * tree-sra.c (sra_walk_gimple_assign): Likewise.
16367 * target.h (gcc_target::binds_local_p): Clarify "module".
16368 * tree.h (TREE_PUBLIC): Clarify "module".
16369
0705d3f4
L
163702009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
16371
16372 PR target/38891
16373 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
16374 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
16375
bce08d50
L
163762009-02-17 H.J. Lu <hongjiu.lu@intel.com>
16377
16378 PR target/39082
16379 * c.opt (Wabi): Support C and ObjC.
16380 (Wpsabi): New.
16381
16382 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
16383
16384 * config/i386/i386.c (classify_argument): Warn once about the ABI
16385 change when passing union with long double.
16386
16387 * doc/invoke.texi: Update -Wabi for warning psABI changes.
16388
5600f233
JM
163892009-02-18 Joseph Myers <joseph@codesourcery.com>
16390
16391 PR c/35447
16392 * c-parser.c (c_parser_compound_statement): Always enter and leave
16393 a scope.
16394
8cd01fe6
JDA
163952009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16396
16397 PR target/34587
16398 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
16399
418df9d7
JJ
164002009-02-18 Jakub Jelinek <jakub@redhat.com>
16401
16402 PR tree-optimization/36922
16403 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
16404 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
16405 Likewise.
16406
082d2ebb
RS
164072009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
16408
16409 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
16410 to 0 for EABI64.
16411
17de576c
RS
164122009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
16413
16414 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
16415
6d8d5435
RS
164162009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
16417
16418 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
16419 tree sharing.
16420
e69ff910
RB
164212009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
16422 Richard Sandiford <rdsandiford@googlemail.com>
16423
16424 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
16425 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
16426 (loongson_biadd): ...this.
16427
6b24ee26
RG
164282009-02-17 Richard Guenther <rguenther@suse.de>
16429
16430 PR tree-optimization/39202
16431 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
16432 a var make sure to follow existing collapses.
16433
91ab2c86
RG
164342009-02-17 Richard Guenther <rguenther@suse.de>
16435
16436 PR middle-end/39214
16437 * langhooks.c (lhd_print_error_function): Check for NULL block.
16438
73a63870
RG
164392009-02-17 Richard Guenther <rguenther@suse.de>
16440
16441 PR tree-optimization/39204
16442 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
16443 of the PHI arg.
16444
0e08f686
UB
164452009-02-17 Uros Bizjak <ubizjak@gmail.com>
16446
16447 * config/soft-fp/double.h: Update from glibc CVS.
16448
a60b7ddb
RG
164492009-02-17 Richard Guenther <rguenther@suse.de>
16450
16451 PR tree-optimization/39207
16452 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
16453 strict-aliasing warnings for pointers pointing to NULL.
16454
a47e20fd
JM
164552009-02-16 Joseph Myers <joseph@codesourcery.com>
16456
16457 PR c/35446
16458 * c-parser.c (c_parser_braced_init): Call pop_init_level when
16459 skipping until next close brace.
16460
50aab7dc
L
164612009-02-16 H.J. Lu <hongjiu.lu@intel.com>
16462
16463 PR target/37049
16464 * config/i386/i386.c (ix86_expand_push): Set memory alignment
16465 to function argument boundary.
16466
68e53db0
HS
164672009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
16468
16469 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
16470 in the lea_add. Reload eventually constraints it properly.
0d50d55a 16471 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
16472 "b", since it is not needed anymore.
16473
09e361bb
JJ
164742009-02-16 Jakub Jelinek <jakub@redhat.com>
16475
16476 * gthr-dce.h: Uglify function parameter and local variable names.
16477 * gthr-gnat.h: Likewise.
16478 * gthr-mipssde.h: Likewise.
16479 * gthr-nks.h: Likewise.
16480 * gthr-posix95.h: Likewise.
16481 * gthr-posix.h: Likewise.
16482 * gthr-rtems.h: Likewise.
16483 * gthr-single.h: Likewise.
16484 * gthr-solaris.h: Likewise.
16485 * gthr-tpf.h: Likewise.
16486 * gthr-vxworks.h: Likewise.
16487 * gthr-win32.h: Likewise.
16488
47f5a48f
L
164892009-02-15 H.J. Lu <hongjiu.lu@intel.com>
16490
16491 PR target/39196
16492 * config/i386/i386.md: Restrict the new peephole2 to move
16493 between MMX/SSE registers.
16494
68c9ab45
RG
164952009-02-15 Richard Guenther <rguenther@suse.de>
16496
16497 Revert
16498 2009-02-13 Richard Guenther <rguenther@suse.de>
16499
16500 * configure.ac: Enable LFS.
16501 * configure: Re-generate.
16502 * config.in: Likewise.
16503
d7815554
UW
165042009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16505
16506 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
16507 spu_srqwbyte, spu_srqwbytebc): Define.
16508 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
16509 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
16510 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
16511 "shrqby_<mode>"): New insn-and-split patterns.
16512 * config/spu/spu.c (expand_builtin_args): Determine and return
16513 number of operands using spu_builtin_description data.
16514 (spu_expand_builtin_1): Use it.
16515
c208436c
SE
165162009-02-13 Steve Ellcey <sje@cup.hp.com>
16517
16518 PR target/38056
16519 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
16520 TARGET_CONST_GP.
16521
c2e7ba7e
L
165222009-02-13 H.J. Lu <hongjiu.lu@intel.com>
16523
16524 PR target/39149
16525 * config/i386/i386.c (override_options): Correct warning
6c6094f1 16526 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 16527
72f4e3a7
L
165282009-02-13 H.J. Lu <hongjiu.lu@intel.com>
16529
16530 PR target/39152
16531 * config/i386/i386.md: Restrict the new peephole2 to move
16532 between the general purpose registers.
16533
53f648e2
L
165342009-02-13 H.J. Lu <hongjiu.lu@intel.com>
16535
16536 PR target/39162
16537 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 16538 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
16539 (function_arg_advance): Updated.
16540 (function_arg): Likewise.
16541 (ix86_function_value): Likewise.
16542 (ix86_return_in_memory): Likewise.
16543 (ix86_sol10_return_in_memory): Likewise.
16544 (ix86_gimplify_va_arg): Likewise.
16545 (function_arg_32): Don't warn ABX ABI change here.
16546 (function_arg_64): Likewise.
16547
38432148 165482009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
16549
16550 * loop-iv.c (implies_p): In the final case, test that operands 0
16551 of the two comparisons match.
16552
dd2139e7
BS
16553 * config/bfin/bfin.c (find_prev_insn_start): New function.
16554 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
16555 (find_next_insn_start): Move.
16556
601b3e1a
RG
165572009-02-13 Richard Guenther <rguenther@suse.de>
16558
16559 * configure.ac: Enable LFS.
16560 * configure: Re-generate.
16561 * config.in: Likewise.
16562
f007042e
JM
165632009-02-13 Joseph Myers <joseph@codesourcery.com>
16564
16565 PR c/35444
16566 * c-parser.c (c_parser_parms_list_declarator): Discard pending
16567 sizes on syntax error after some arguments have been parsed.
16568
3f238e8b
JJ
165692009-02-12 Jakub Jelinek <jakub@redhat.com>
16570
16571 * doc/invoke.texi (-fira): Remove.
16572
328e13b7
L
165732009-02-12 H.J. Lu <hongjiu.lu@intel.com>
16574
16575 * caller-save.c: Replace regclass.c with reginfo.c in comments.
16576 * recog.c: Likewise.
16577 * rtl.h: Likewise.
16578
c252db20
L
165792009-02-12 Uros Bizjak <ubizjak@gmail.com>
16580
16581 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
16582 (umul_ppmm): Likewise.
16583 (count_leading_zeros): Likewise.
16584 (count_trailing_zeros): Likewise.
16585 (UMUL_TIME): Likewise.
16586
165872009-02-12 H.J. Lu <hongjiu.lu@intel.com>
16588
ba181049
UB
16589 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
16590 soft-fp/t-softfp to tmake_file.
c252db20
L
16591
16592 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
16593 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
16594 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
16595 IA64_BUILTIN_INFQ]: New.
c252db20
L
16596 (ia64_init_builtins): Initialize __builtin_infq,
16597 __builtin_fabsq and __builtin_copysignq if not HPUX.
16598 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
16599 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
16600
16601 * config/ia64/lib1funcs.asm (__divtf3): Define only if
16602 SHARED is defined.
16603 (__fixtfti): Likewise.
16604 (__fixunstfti): Likewise.
16605 (__floattitf): Likewise.
16606
16607 * config/ia64/libgcc-glibc.ver: New.
16608 * config/ia64/t-fprules-softfp: Likewise.
16609 * config/ia64/sfp-machine.h: Likewise.
16610
16611 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
16612 (LIBGCC2_TF_CEXT): Likewise.
16613 (TF_SIZE): Likewise.
16614 (TARGET_INIT_LIBFUNCS): Likewise.
16615
ba181049 16616 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 16617 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 16618
f13eae6a
L
166192009-02-12 H.J. Lu <hongjiu.lu@intel.com>
16620
16621 * config/i386/i386.c (construct_container): Rewrite processing
16622 BLKmode with X86_64_SSE_CLASS.
16623
12019aec
L
166242009-02-12 Paolo Bonzini <bonzini@gnu.org>
16625
16626 PR target/39152
16627 * config/i386/i386.md: Replace simplify_replace_rtx with
16628 replace_rtx in the new peephole2.
16629
28c11eb3
NS
166302009-02-12 Nathan Sidwell <nathan@codesourcery.com>
16631
16632 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
16633 loop unrolling do not happen at -O2.
16634
c7b94907
MM
166352009-02-12 Michael Matz <matz@suse.de>
16636
16637 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
16638
61e98967
JJ
166392009-02-12 Jakub Jelinek <jakub@redhat.com>
16640
16641 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
16642 for -g3.
16643
a2a237b5
BE
166442009-02-12 Ben Elliston <bje@au.ibm.com>
16645
16646 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
16647 patterns when updating the back chain. Missed in the 2009-02-10
16648 change.
16649
853eda8d
JJ
166502009-02-11 Janis Johnson <janis187@us.ibm.com>
16651
16652 * doc/extend.texi (Decimal Floating Types): Update identifier of
16653 draft TR and list of missing support.
16654
3ad6b266
JJ
166552009-02-11 Jakub Jelinek <jakub@redhat.com>
16656
16657 PR middle-end/39154
16658 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
16659 bit to variable length decl's flags, add it also to its
16660 pointer replacement variable.
16661
b058b753
UB
166622009-02-11 Uros Bizjak <ubizjak@gmail.com>
16663 Jakub Jelinek <jakub@redhat.com>
16664
16665 PR target/39118
16666 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
16667 (memory_blockage): New expander.
16668 (*memory_blockage): New insn pattern.
16669 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
16670 instead of general blockage at the end of function prologue when
16671 frame pointer is used to access red zone area. Do not emit blockage
16672 when profiling, it is emitted in generic code.
16673 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
16674 function epilogue when frame pointer is used to access red zone area.
16675
bab64f23
PB
166762009-02-11 Paolo Bonzini <bonzini@gnu.org>
16677
0ce6dcfa 16678 PR target/38824
bab64f23
PB
16679 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
16680 by arithmetic with memory operands.
16681 * config/i386/predicates.md (commutative_operator): New.
16682
8fd94bda
JJ
166832009-02-10 Janis Johnson <janis187@us.ibm.com>
16684
16685 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
16686 bulleted lists.
16687
794511d2
EB
166882009-02-10 Eric Botcazou <ebotcazou@adacore.com>
16689
16690 * alias.h (record_alias_subset): Declare.
16691 * alias.c (record_alias_subset): Make global.
16692
6da7fc87
NC
166932009-02-10 Nick Clifton <nickc@redhat.com>
16694
16695 * tree-parloops.c: Change license to GPLv3.
16696 * ipa-struct-reorg.c: Change license to GPLv3.
16697 * ipa-struct-reorg.h: Change license to GPLv3.
16698
a03813c8
SE
166992009-02-10 Steve Ellcey <sje@cup.hp.com>
16700
16701 PR c/39084
16702 * c-decl.c (start_struct): Return NULL on error.
16703
fc3103e7
JJ
167042009-02-10 Jakub Jelinek <jakub@redhat.com>
16705
9b43d37b
JJ
16706 PR middle-end/39124
16707 * cfgloopmanip.c (remove_path): Call remove_bbs after
16708 cancel_loop_tree, not before it.
16709
fc3103e7 16710 PR target/39139
b058b753 16711 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
16712 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
16713 VAR_DECLs were seen.
16714 * tree-ssa-live.c (remove_unused_locals): Recompute
16715 cfun->has_local_explicit_reg_vars.
16716 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
16717 copies or clearings if cfun->has_local_explicit_reg_vars.
16718
dbf9ee15
UB
167192009-02-10 Uros Bizjak <ubizjak@gmail.com>
16720
16721 PR target/39118
16722 * config/i386/i386.c (expand_prologue): Emit blockage at the end
16723 of function prologue when frame pointer is used to access
16724 red zone area.
16725
bdec4dc7
RG
167262009-02-10 Richard Guenther <rguenther@suse.de>
16727
16728 PR middle-end/39127
16729 * gimplify.c (gimple_regimplify_operands): Always look if
16730 we need to create a temporary.
16731
7cae94fc
RG
167322009-02-10 Richard Guenther <rguenther@suse.de>
16733
16734 PR tree-optimization/39132
16735 * tree-loop-distribution.c (todo): New global var.
16736 (generate_memset_zero): Trigger TODO_rebuild_alias.
16737 (tree_loop_distribution): Return todo.
16738
a8800687
L
167392009-02-10 H.J. Lu <hongjiu.lu@intel.com>
16740
16741 PR target/39119
16742 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
16743 (x86_64_reg_class_name): Removed.
16744 (classify_argument): Return 0 if bytes > 32. Return 0 if the
16745 first one isn't X86_64_SSE_CLASS or any other ones aren't
16746 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
16747 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
16748 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
16749 and 3 X86_64_SSEUP_CLASS.
16750 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
16751 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
16752
d4bacef0
BE
167532009-02-10 Ben Elliston <bje@au.ibm.com>
16754
16755 * config/rs6000/rs6000.md (allocate_stack): Always use an update
16756 form instruction to update the stack back chain word, even if the
16757 user has disabled the generation of update instructions.
16758 (movdi_<mode>_update_stack): New.
16759 (movsi_update_stack): Likewise.
16760 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
16761 always use an update form instruction to update the stack back
16762 chain word.
16763
01d7d2f3
SP
167642009-02-09 Sebastian Pop <sebastian.pop@amd.com>
16765
16766 PR middle-end/38953
b058b753
UB
16767 * graphite.c (if_region_set_false_region): After moving a region in
16768 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
16769 (gloog): Remove wrong fix for PR38953.
16770
e41e2ab4
UW
167712009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16772
16773 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
16774 generation due to implicit sign extension.
16775
4bb07c5d
EB
167762009-02-09 Eric Botcazou <ebotcazou@adacore.com>
16777
16778 PR middle-end/38981
16779 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
16780 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
16781
f060a261
RG
167822009-02-09 Richard Guenther <rguenther@suse.de>
16783
16784 PR middle-end/35202
16785 * convert.c (convert_to_real): Disable (float)fn((double)x)
16786 to fnf(x) conversion if errno differences may occur and
16787 -fmath-errno is set.
16788
5a7e237c
AS
167892009-02-07 Anatoly Sokolov <aesok@post.ru>
16790
16791 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
16792 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
16793 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
16794
feab5a67
JM
167952009-02-06 Joseph Myers <joseph@codesourcery.com>
16796
16797 PR c/35434
16798 * c-common.c (handle_alias_attribute): Disallow attribute for
16799 anything not a FUNCTION_DECL or VAR_DECL.
16800
90ef2296
JJ
168012009-02-06 Janis Johnson <janis187@us.ibm.com>
16802
16803 PR c/39035
16804 * real.c (do_compare): Special-case compare of zero against
16805 decimal float value.
16806
1de2c900
JM
168072009-02-06 Joseph Myers <joseph@codesourcery.com>
16808
16809 PR c/36432
16810 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
16811 as indicating flexible array members unless the field itself is
16812 being declarared as the incomplete array.
16813
e901811a
JH
168142009-02-06 Jan Hubicka <jh@suse.cz>
16815
16816 PR tree-optimization/38844
16817 * ipa-inline.c (try_inline): Stop inlining recursion when edge
16818 is already inlined.
16819
3cfa762b
RG
168202009-02-06 Richard Guenther <rguenther@suse.de>
16821
16822 PR middle-end/38977
16823 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
16824 fork because we may expand it as __gcov_fork.
16825
8506528c
NC
168262009-02-06 Nick Clifton <nickc@redhat.com>
16827
dbf9ee15 16828 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 16829
85169114
PB
168302009-02-06 Paolo Bonzini <bonzini@gnu.org>
16831
16832 PR tree-optimization/35659
16833 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
16834 vn_phi_eq): Shortcut if hashcode does not match.
16835 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
16836 NULL operands.
16837 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
16838 and avoid iterative_hash_expr.
16839 (FOR_EACH_VALUE_ID_IN_SET): New.
16840 (value_id_compare): Remove.
16841 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
16842 sort expressions by value id.
16843
6d39673d
KK
168442009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
16845
16846 PR target/38991
16847 * config/sh/predicates.md (general_movsrc_operand): Don't check
16848 the subreg of system registers here.
16849
e6e1c050
JJ
168502009-02-05 Jakub Jelinek <jakub@redhat.com>
16851
16852 PR c++/39106
16853 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
16854 on the copied decl.
16855
65a74b5d
PB
168562009-02-05 Paolo Bonzini <bonzini@gnu.org>
16857
16858 PR rtl-optimization/39110
16859 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
16860 addresses, not aligned ones.
16861
08e14b2a
DB
168622009-02-05 Daniel Berlin <dberlin@dberlin.org>
16863 Richard Guenther <rguenther@suse.de>
16864
16865 PR tree-optimization/39100
16866 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
16867 comment says and add edges.
16868
5006381c
JM
168692009-02-05 Joseph Myers <joseph@codesourcery.com>
16870
16871 PR c/35435
16872 * c-common.c (handle_tls_model_attribute): Ignore attribute for
16873 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
16874
2ba9daa7 168752009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
16876
16877 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
16878 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
16879 register_bb_in_sese, new_sese, free_sese): Moved.
16880 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
16881 outermost_loop_in_scop, build_scop_iteration_domain,
16882 expand_scalar_variables_ssa_name, get_vdef_before_scop,
16883 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
16884 Use loop_in_sese_p instead of loop_in_scop_p.
16885 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
16886 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
16887 (scopdet_basic_block_info): Fix bug in scop detection.
16888 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
16889 eq_loop_to_cloog_loop): Remove.
16890 (nb_loops_around_loop_in_scop, nb_loop
16891 ref_nb_loops): Moved here...
16892 * graphite.h (ref_nb_loops): ... from here.
16893 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
16894 (loop_domain_dim, loop_iteration_vector_dim): Remove.
16895 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
16896 * testsuite/gcc.dg/graphite/scop-19.c: New
16897
48e8382e
PB
168982009-02-04 Paolo Bonzini <bonzini@gnu.org>
16899 Hans-Peter Nilsson <hp@axis.com>
16900
16901 PR rtl-optimization/37889
16902 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
16903 Move offset handling from PLUS to before the switch. Use new
16904 arguments when considering SYMBOL_REFs too.
16905 (rtx_addr_can_trap_p): Pass dummy offset and size.
16906 (enum may_trap_p_flags): Remove.
16907 (may_trap_p_1): Pass size from MEM_SIZE.
16908
16909 PR rtl-optimization/38921
16910 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
16911 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
16912 * rtlanal.c (may_trap_after_code_motion_p): Delete.
16913 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
16914
69349ea5
L
169152009-02-04 H.J. Lu <hongjiu.lu@intel.com>
16916
16917 AVX Programming Reference (January, 2009)
16918 * config/i386/sse.md (*vpclmulqdq): New.
16919
b545e411
JJ
169202009-02-04 Jakub Jelinek <jakub@redhat.com>
16921
16922 PR tree-optimization/38977
16923 PR gcov-profile/38292
bf9b2cc9 16924 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 16925
5b43bf05
HS
169262009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
16927
16928 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
16929 non-indexable addresses even before reload.
16930
062c4bb3
JM
169312009-02-03 Joseph Myers <joseph@codesourcery.com>
16932
16933 PR c/29129
16934 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
16935 as having variable size. Do not give an error for unnamed
16936 parameters with [*] declarators. Give a warning for type names
16937 with [*] declarators and mark them as variable size.
16938 * c-parser.c (c_parser_sizeof_expression): Do not give an error
16939 for sizeof applied to [*] type names.
16940
6175f578
AP
169412009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
16942
16943 PR C++/36607
16944 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
16945
d4f4bc84
JJ
169462009-02-03 Jakub Jelinek <jakub@redhat.com>
16947
16948 * gcc.c (process_command): Update copyright notice dates.
16949 * gcov.c (print_version): Likewise.
16950 * gcov-dump.c (print_version): Likewise.
16951 * mips-tfile.c (main): Likewise.
16952 * mips-tdump.c (main): Likewise.
16953
f6294de7
JM
169542009-02-03 Joseph Myers <joseph@codesourcery.com>
16955
16956 PR c/35433
16957 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
16958 for composite type involving a zero-length array type.
16959
754ccf7c
JJ
169602009-02-03 Jakub Jelinek <jakub@redhat.com>
16961
70f16287
JJ
16962 PR target/35318
16963 * function.c (match_asm_constraints_1): Skip over
16964 initial optional % in the constraint.
16965
754ccf7c
JJ
16966 PR inline-asm/39059
16967 * c-parser.c (c_parser_postfix_expression): If fixed point is not
16968 supported, don't accept FIXED_CSTs.
16969 * c-decl.c (finish_declspecs): Error if fixed point is not supported
16970 and _Sat is used without _Fract/_Accum. Set specs->type to
16971 integer_type_node for cts_fract/cts_accum if fixed point is not
16972 supported.
16973
965fdadf
CM
169742009-02-02 Catherine Moore <clm@codesourcery.com>
16975
dbf9ee15 16976 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 16977
2e8a796f
RS
169782009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
16979
16980 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
16981 (ABI_HAS_64BIT_SYMBOLS): Use it.
16982 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
16983
e0079468
PB
169842009-02-02 Paul Brook <paul@codesourcery.com>
16985
16986 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
16987
eca72963
JJ
169882009-02-02 Jakub Jelinek <jakub@redhat.com>
16989
16990 PR inline-asm/39058
16991 * recog.h (asm_operand_ok): Add constraints argument.
16992 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
16993 recurse on matching constraint.
16994 (check_asm_operands): Pass constraints as 3rd argument to
16995 asm_operand_ok. Don't look up matching constraint here.
16996 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
16997 to asm_operand_ok.
16998
b5bde9ff
BE
169992009-02-02 Ben Elliston <bje@au.ibm.com>
17000
17001 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
17002 TARGET_NARROW_VOLATILE_BITFIELD macro names.
17003
30f3e427
JDA
170042009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17005
be7659ba
JDA
17006 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
17007 information. Remove some obsolete information. Reorganize.
17008
30f3e427
JDA
17009 * config/pa/fptr.c: Revert license to GPL 2.
17010 * config/pa/milli64.S: Likewise.
17011
3cbfaf98
DK
170122009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
17013
17014 PR target/38904
17015 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
17016 LIBRARY name in, instead of hard-coding it.
17017 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
17018 extra target make frag to tmake_files according to EH model.
17019 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
17020 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
17021 frags that define makefile variable EH_MODEL appropriately.
17022 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
17023 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
17024 to "-sjlj" according to type of EH configured.
17025 (LIBGCC_SONAME): Concatenate it to shared library base name.
17026 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
17027 to "_sjlj" according to type of EH configured.
17028 (LIBGCC_SONAME): Concatenate it to shared library base name.
17029 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
17030 (SHLIB_LINK): Add missing semicolon to if-else construct.
17031 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
17032 string value of "pe_dll" command-line option.
17033 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
17034 (SHLIB_SONAME): Use it when overriding t-cygming default.
17035 (SHLIB_IMPLIB): Override t-cygming default.
17036 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
17037 string value of "pe_dll" command-line option.
17038
8d0b6068
DK
170392009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
17040
17041 PR target/38952
17042 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 17043 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 17044
14c28276
RG
170452009-01-31 Richard Guenther <rguenther@suse.de>
17046
17047 PR tree-optimization/38937
17048 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
17049 computing the transitive closure.
17050
5f4d82c2
RG
170512009-01-30 Richard Guenther <rguenther@suse.de>
17052
17053 PR tree-optimization/39041
17054 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
17055 Propagate variable indices only if the types match for this stmt.
17056
d0728ae0
JJ
170572009-01-30 Jakub Jelinek <jakub@redhat.com>
17058
17059 PR target/39013
17060 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
17061 inline but never defined.
17062
6b67572e 170632009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
17064
17065 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
17066 (*insv_h_di_reg_extimm): New insn.
17067 (*insv_l<mode>_reg_extimm): New insn.
17068
170692009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
17070
17071 * config/picochip/picochip.c (flag_conserve_stack): set
17072 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
17073 fconserve-stack. Reduce call-overhead used by inliner.
17074
9fec758d 170752009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
17076
17077 PR/38157
17078 * common.opt (flag_conserve_stack): Initialised to zero.
17079
7f1c539c
KT
170802009-01-30 Kai Tietz <kai.tietz@onevision.com>
17081
17082 PR/39002
17083 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
17084 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
17085 method.
17086
3631be48
L
170872009-01-29 H.J. Lu <hongjiu.lu@intel.com>
17088
17089 * ira-color.c (allocno_reload_assign): Update comments.
17090 * regmove.c (regmove_optimize): Likewise.
17091
17092 * ra.h: Removed.
17093
416ac4d4
RM
170942009-01-29 Robert Millan <rmh@aybabtu.com>
17095
60839f5d
EB
17096 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
17097 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 17098 `MD_UNWIND_SUPPORT'.
60839f5d 17099 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 17100
d5e54bc1
KH
171012009-01-29 Kazu Hirata <kazu@codesourcery.com>
17102
17103 PR tree-optimization/39007
17104 * tree-loop-distribution.c (generate_builtin): Use
17105 recompute_dominator to compute the immediate dominator of the
17106 basic block just after the loop.
17107
38432148 171082009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
17109
17110 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
17111 (ASM_OUTPUT_DWARF_PCREL): Define.
17112
38432148 171132009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
17114
17115 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
17116 * doc/passes.texi: Remove entries about regclass, local-alloc, and
17117 global. Modify entries about regmove and IRA.
17118
17119 * ra-conflict.c: Remove the file.
17120
17121 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
17122
17123 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
17124 (pass_regclass_init): Rename to pass_reginfo_init.
17125
17126 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
17127
17128 * toplev.h (flag_ira): Remove.
17129
17130 * caller-save.c (setup_save_areas): Remove flag_ira.
17131
bf9b2cc9 17132 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
17133
17134 * global.c: Remove the file.
17135
ba20e309 17136 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
17137
17138 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
17139
17140 * regmove.c: Modify file description.
17141 (find_use_as_address, try_auto_increment): Define them only if
17142 AUTO_INC_DEC is defined.
17143 (replacement_quality, replace_in_call_usage, fixup_match_1,
17144 stable_and_no_regs_but_for_p): Remove.
17145 (reg_set_in_bb): Make it static.
17146 (regmove_optimize): Remove flag_ira and code which worked for
17147 !flag_ira.
17148
17149 * local-alloc.c: Remove the file.
17150
17151 * common.opt (fira): Remove.
17152
17153 * ira.c: Include except.h.
17154 (eliminable_regset): Move from global.c.
17155 (mark_elimination): Ditto. Remove flag_ira.
17156 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
17157 equiv_mem_modified, validate_equiv_mem_from_store,
17158 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
17159 contains_replace_regs, memref_referenced_p, memref_used_between_p,
17160 no_equiv, recorded_label_ref): Move from local-alloc.c.
17161 (update_equiv_regs): Ditto. Make it static.
17162 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 17163 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
17164 (build_insn_chain): Ditto. Make it static.
17165 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
17166 Rename to init_live_subregs.
17167 (gate_ira): Remove flag_ira.
17168
17169 * regclass.c: Rename reginfo.c. Change file description.
17170 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 17171 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
17172 (init_reg_sets_1): Remove code for evaluation of
17173 reg_class_superclasses and losing_caller_save_reg_set.
17174 (init_regs): Remove init_reg_autoinc.
17175 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
17176 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 17177 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
17178 (pass_regclass_init): Rename to pass_reginfo_init. Modify
17179 corresponding entries.
17180 (dump_regclass, record_operand_costs, scan_one_insn,
17181 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
17182 record_address_regs, auto_inc_dec_reg_p): Remove.
17183 (gt-regclass.h): Rename to gt-reginfo.h.
17184
17185 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 17186 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
17187
17188 * Makefile.in (RA_H): Remove.
17189 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
17190 Rename regclass.o to reginfo.o.
17191 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
17192 gt-reginfo.h.
17193 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
17194 (GTFILES): Rename regclass.c to reginfo.c.
17195
17196 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 17197 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
17198
17199 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
17200 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
17201 Remove flag_ira.
6b67572e 17202 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 17203
c95b2534 172042009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
17205
17206 PR middle-end/35854
17207 * doc/invoke.texi (rtl debug options): Complete rewrite.
17208 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
17209 to auto_inc_dec".
17210 * mode-switching.c (pass_mode_switching): Rename pass from
17211 "mode-sw" to "mode_sw".
17212 * except.c (pass_convert_to_eh_ranges): Rename pass from
17213 "eh-ranges" to "eh_ranges".
17214 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
17215 to "subreg1".
2ba9daa7
AS
17216
17217
72a54528
AM
172182009-01-29 Andrey Belevantsev <abel@ispras.ru>
17219 Alexander Monakov <amonakov@ispras.ru>
17220
17221 PR middle-end/38857
17222 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
17223 register.
17224 (move_exprs_to_boundary): Change return type and pass through
17225 should_move from move_op. Relax assert. Update usage ...
17226 (schedule_expr_on_boundary): ... here. Use should_move instead of
17227 cant_move.
17228 (move_op_orig_expr_found): Indicate that insn was disconnected from
17229 stream.
17230 (code_motion_process_successors): Do not call after_merge_succs
17231 callback if original expression was not found when traversing any of
17232 the branches.
17233 (code_motion_path_driver): Change return type. Update prototype.
17234 (move_op): Update comment. Add a new parameter (should_move). Update
17235 prototype. Set *should_move based on indication provided by
17236 move_op_orig_expr_found.
17237
001b9eb6
PH
172382009-01-28 Pat Haugen <pthaugen@us.ibm.com>
17239
17240 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
17241 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
17242 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
17243 * config/rs6000/rs6000.c (rs6000_override_options): Default
17244 avoid-indexed-addresses on for Power6, off for everything else.
17245 (avoiding_indexed_address_p): New function.
17246 (rs6000_legitimize_address): Use it.
17247 (rs6000_legitimate_address): Likewise.
17248 * config/rs6000/rs6000.md (movXX_updateX): Likewise
17249
59dc4898
KH
172502009-01-28 Kazu Hirata <kazu@codesourcery.com>
17251
17252 PR tree-optimization/38997
17253 * tree-loop-distribution.c (generate_memset_zero): Use
17254 POINTER_PLUS_EXPR for a pointer addition.
17255
07da44ab
AK
172562009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
17257
17258 * config/s390/s390.md (bswap<mode>2): New pattern added.
17259
cdc15d23
WG
172602009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
17261
17262 * config/s390/s390.md (*tls_load_31): Added type attribute.
17263
d46f24b6
WG
172642009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
17265
17266 * config/s390/s390.md: Fix a few comments.
17267
729e750f
WG
172682009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
17269
17270 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
17271 (*tm<mode>_full): Fixed z10prop attribute.
17272 (*tst<mode>_extimm): Fixed z10prop attribute.
17273 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
17274 (*tstqiCCT_cconly): Fixed z10prop attribute.
17275 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
17276 (*movsi_larl): Fixed z10prop attribute.
17277 (*movsi_zarch): Fixed z10prop attribute.
17278 (*movsi_eas): Fixed z10prop attribute.
17279 (*movhi): Fixed z10prop attribute.
17280 (*movqi): Fixed z10prop attribute.
17281 (*movstrictqi): Fixed z10prop attribute.
17282 (*mov<mode>): Fixed z10prop attribute.
17283 (*movcc): Fixed z10prop attribute.
17284 (*sethighpartdi_64): Fixed z10prop attribute.
17285 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
17286 (*negdi2_sign_cc): Fixed z10prop attribute.
17287 (*negdi2_sign): Fixed z10prop attribute.
17288 (*absdi2_sign_cc): Fixed z10prop attribute.
17289 (*absdi2_sign): Fixed z10prop attribute.
17290 (*negabsdi2_sign_cc): Fixed z10prop attribute.
17291 (*negabsdi2_sign): Fixed z10prop attribute.
17292 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
17293 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
17294 (doloop_si64): Fixed z10prop attribute.
17295 (doloop_si31): Fixed z10prop attribute.
17296 (doloop_long): Fixed z10prop attribute.
17297 (indirect_jump): Fixed z10prop attribute.
17298 (nop): Fixed z10prop attribute.
17299 (main_base_64): Fixed z10prop attribute.
17300 (reload_base_64): Fixed z10prop attribute.
17301
c7789bfb
JJ
173022009-01-28 Jakub Jelinek <jakub@redhat.com>
17303
17304 PR rtl-optimization/38740
6b67572e
UB
17305 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
17306 if !optimize.
c7789bfb
JJ
17307 * config/mips/mips.c (mips_reorg): Likewise.
17308
de081cfd
RG
173092009-01-28 Richard Guenther <rguenther@suse.de>
17310
17311 PR tree-optimization/38926
17312 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
17313 with the correct value id to a value.
17314 (do_regular_insertion): Use the value number of edoubleprime
17315 for the value number of the expr.
17316
17317 Revert
17318 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 17319
d748c406
UB
17320 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
17321 a PHI ask VN if it is already available.
17322 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
17323 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 17324
a9d386a1
JJ
173252009-01-28 Jakub Jelinek <jakub@redhat.com>
17326
17327 PR middle-end/38934
17328 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
17329 set to varying whenever max has TREE_OVERFLOW set, similarly
17330 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
17331
97a170cd
RG
173322009-01-28 Richard Guenther <rguenther@suse.de>
17333
17334 PR middle-end/38908
17335 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
17336 uninitialized aggregate uses in call arguments.
17337
89ebafc6
PB
173382009-01-28 Paolo Bonzini <bonzini@gnu.org>
17339
17340 PR tree-optimization/38984
17341 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
17342 the nothing_id variable if -fno-delete-null-pointer-checks.
17343
bef3c57b
UB
173442009-01-28 Uros Bizjak <ubizjak@gmail.com>
17345
17346 PR target/38988
17347 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
17348 (set_got_offset_rex64): Ditto.
17349
0c6390fa
L
173502009-01-27 H.J. Lu <hongjiu.lu@intel.com>
17351
17352 PR target/38941
17353 * doc/extend.texi: Improve local variable with asm reg.
17354
bee6fa6d
AN
173552009-01-27 Adam Nemet <anemet@caviumnetworks.com>
17356
17357 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
17358 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
17359 was not supplied then set warn_packed_bitfield_compat to the
17360 default value of 1.
17361 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
17362 against 1.
17363
b5c3dfbb
RG
173642009-01-27 Richard Guenther <rguenther@suse.de>
17365
17366 PR tree-optimization/38503
17367 * cfgexpand.c (expand_gimple_basic_block): Ignore
17368 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
17369 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
17370 variables that cannot have TBAA applied.
17371 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
17372 statements.
17373
d748c406 173742009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
17375
17376 PR middle-end/38969
17377 * calls.c (initialize_argument_information): Do not wrap complex
17378 arguments in SAVE_EXPR.
17379
9112bb38
AT
173802009-01-26 Andreas Tobler <a.tobler@schweiz.org>
17381
17382 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 17383 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 17384
4757704f
RG
173852009-01-26 Richard Guenther <rguenther@suse.de>
17386
17387 PR tree-optimization/38745
17388 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
17389 from special handling.
17390
e3e6cff4
RG
173912009-01-26 Richard Guenther <rguenther@suse.de>
17392
17393 PR tree-optimization/38745
17394 * tree-ssa.c (execute_update_addresses_taken): Do not include
17395 variables that cannot possibly be a register in not_reg_needs.
17396 Do not clear TREE_ADDRESSABLE on vars that may not become
17397 registers.
17398 * tree-ssa.c (update_alias_info_1): Include those in the set
17399 of addressable vars.
17400
dc874b53
RG
174012009-01-26 Richard Guenther <rguenther@suse.de>
17402
17403 PR middle-end/38851
17404 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
17405 * tree-ssa-dse.c: Include langhooks.h
17406 (execute_simple_dse): Remove stores with zero size.
17407
849421a3
JJ
174082009-01-24 Jakub Jelinek <jakub@redhat.com>
17409
17410 PR c/38957
17411 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
17412 as PLUS_EXPR.
17413
82f70421
JB
174142009-01-24 Julian Brown <julian@codesourcery.com>
17415
17416 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
17417 config/arm/linux-atomic.c.
17418 * config/arm/linux-atomic.c: New.
17419
863412d6
EB
174202009-01-24 Eric Botcazou <ebotcazou@adacore.com>
17421
17422 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
17423 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
17424 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
17425
8c684300
L
174262009-01-24 H.J. Lu <hongjiu.lu@intel.com>
17427
17428 PR c/38938
93f1527a 17429 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
17430 properly.
17431
b840fb02
SP
174322009-01-24 Sebastian Pop <sebastian.pop@amd.com>
17433
17434 PR tree-optimization/38953
17435 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
17436 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
17437 (gloog): Split the exit of the scop when the scop exit is a loop exit.
17438 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
17439 changed the CFG.
17440
ecee559f
PB
174412009-01-24 Paul Brook <paul@codesourcery.com>
17442
17443 * config/arm/neon.md (neon_type): Move to arm.md.
17444 (neon_mov<VSTRUCT>): Add neon_type attribute.
17445 * config/arm/arm.md (neon_type): Move to here.
17446 (conds): Add "unconditioal" and use as default for NEON insns.
17447
61ad0914
BE
174482009-01-24 Ben Elliston <bje@au.ibm.com>
17449
17450 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
17451 void *' warning from -Wc++-compat.
17452 * Makefile.in (dominance.o-warn): Remove.
17453
38432148 174542009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
17455
17456 PR tree-optimization/38932
17457 * fold-const.c (fold_unary_ignore_overflow): New.
17458 * tree.h (fold_unary_ignore_overflow): Declare.
17459 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
17460 * tree-ssa-sccvn.c (visit_reference_op_load,
17461 simplify_unary_expression): Likewise.
17462
2cd36c22
AN
174632009-01-22 Adam Nemet <anemet@caviumnetworks.com>
17464
17465 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
17466 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
17467 regardless of their type.
17468 * c-common.c (handle_packed_attribute): Don't ignore packed on
17469 bitfields.
17470 * c.opt (Wpacked-bitfield-compat): New warning option.
17471 * stor-layout.c (place_field): Warn if offset of a field changed.
17472 * doc/extend.texi (packed): Mention the ABI change.
17473 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
17474 (Warning Options): Add it to the list.
17475
e4e624ab
L
174762009-01-22 H.J. Lu <hongjiu.lu@intel.com>
17477
17478 * c-opts.c (c_common_post_options): Fix a typo in comments.
17479
d0ea0759
SE
174802009-01-22 Steve Ellcey <sje@cup.hp.com>
17481
17482 PR middle-end/38615
17483 * gimplify.c (gimplify_init_constructor): Fix promotion of const
17484 variables to static.
17485 * doc/invoke.texi (-fmerge-all-constants): Update description.
17486
87673f84
UB
174872009-01-22 Uros Bizjak <ubizjak@gmail.com>
17488
17489 PR target/38931
17490 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
17491 (*movdi_1_rex64): Use type "mmx" for alternative 5.
17492
96339268
RE
174932009-01-22 Richard Earnshaw <rearnsha@arm.com>
17494
17495 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
17496 a word boundary.
17497 (LOCAL_ALIGNMENT): Similarly.
17498
442dc742 174992009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 17500 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
17501
17502 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
17503 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
17504 * config/arm/arm-tune.md: Regenerate.
17505 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
17506 -march=iwmmxt2.
17507
9b34732e
MS
175082009-01-22 Mark Shinwell <shinwell@codesourcery.com>
17509
17510 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
17511 version number to five.
17512
03c2a308
DS
175132009-01-22 Dodji Seketeli <dodji@redhat.com>
17514
17515 PR c++/38930
ba20e309 17516 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
17517 * c-common.c (set_underlying_type): Likewise.
17518 (is_typedef_decl ): Likewise
17519 * tree.h: Likewise
17520 (set_underlying_type): Likewise.
17521 (is_typedef_type): Likewise.
17522
1240d76e
VM
175232009-01-21 Vladimir Makarov <vmakarov@redhat.com>
17524
17525 PR middle-end/38587
17526 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
17527 crossing setjmps.
17528
b8a1087d
DK
175292009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
17530
17531 PR bootstrap/37660
17532 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
17533 (LIBGCC_SPEC): Don't define.
17534 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
17535
435da628
UB
175362009-01-21 Uros Bizjak <ubizjak@gmail.com>
17537
17538 PR rtl-optimization/38879
17539 * alias.c (base_alias_check): Unaligned access via AND address can
17540 alias all surrounding object types except those with sizes equal
17541 or wider than the size of unaligned access.
17542
d597b3ce
DS
175432009-01-21 Dodji Seketeli <dodji@redhat.com>
17544
17545 PR c++/26693
ba20e309 17546 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 17547 * c-common.c (set_underlying_type): ... here.
435da628 17548 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
17549 the newly created typedef variant type.
17550 (is_typedef_decl ): New entry point.
17551 * tree.h: Added a new member member_types_needing_access_check to
17552 struct tree_decl_non_common.
17553 (set_underlying_type): New entry point.
17554 (is_typedef_type): Likewise.
17555
71a6fe66
BM
175562009-01-21 Bingfeng Mei <bmei@broadcom.com>
17557
17558 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
17559 Check whether two instructions have memory references that
17560 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
17561 are helper functions for traversing.
17562 * alias.h (insn_alias_sets_confilict_p): New prototypes.
17563 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
17564 not to draw dependency edge for instructions with non-conflicting
17565 alias sets.
17566
5a248274
JM
175672009-01-20 Joseph Myers <joseph@codesourcery.com>
17568
17569 PR other/38758
6b67572e
UB
17570 * longlong.h: Update copyright years. Use soft-fp license notice.
17571 Sync __clz_tab declaration with glibc.
5a248274 17572
4b84f3de
SE
175732009-01-20 Steve Ellcey <sje@cup.hp.com>
17574
17575 PR target/30687
17576 * doc/extend.texi (syscall_linkage): New.
17577 (version_id): Modify.
17578
37348bf1 175792009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 17580 Richard Guenther <rguenther@suse.de>
37348bf1
AP
17581
17582 PR tree-optimization/38747
17583 PR tree-optimization/38748
17584 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
17585 conversion if the base address is an indirect reference and the
17586 aliasing sets could cause issues.
17587
d0a58904
SP
175882009-01-20 Sebastian Pop <sebastian.pop@amd.com>
17589
2ba9daa7 17590 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
17591 explaining why these options are not documented.
17592
71e7afb2
SP
175932009-01-20 Sebastian Pop <sebastian.pop@amd.com>
17594
17595 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
17596 gimple_call_lhs is NULL.
17597
38432148 175982009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
17599
17600 PR target/38868
17601 * emit-rtl.c (adjust_address_1): Make sure memref is never
17602 overwritten.
17603
cbb8dee3
BE
176042009-01-20 Ben Elliston <bje@au.ibm.com>
17605
17606 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 17607 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
17608 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
17609 const qualifier from arg 2.
17610
72c66596
IS
176112009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
17612
435da628 17613 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 17614
f68211cd
VM
176152009-01-19 Vladimir Makarov <vmakarov@redhat.com>
17616
17617 PR c/38869
17618 * rtl.h (reinit_regs): New prototype.
17619 * regclass.c: Include ira.h.
17620 (reinit_regs): New.
17621 * Makefile.in (regclass.o): Add ira.h.
17622 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
17623
6e4f1168
L
176242009-01-18 H.J. Lu <hongjiu.lu@intel.com>
17625
17626 PR target/38736
17627 * c-common.c (handle_aligned_attribute): Use
17628 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
17629 default alignment value.
17630
17631 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
17632
17633 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
17634 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
17635
17636 * doc/extend.texi: Update __attribute__ ((aligned)). Document
17637 __BIGGEST_ALIGNMENT__.
17638
17639 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
17640
890065bf
RG
176412009-01-18 Richard Guenther <rguenther@suse.de>
17642
17643 PR tree-optimization/38819
17644 * tree-flow.h (operation_could_trap_helper_p): Declare.
17645 * tree-eh.c (operation_could_trap_helper_p): Export.
17646 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
17647 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
17648 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
17649 are about to insert a possibly trapping instruction and fail
17650 in this case.
17651
a729d731
AS
176522009-01-18 Andreas Schwab <schwab@suse.de>
17653
17654 * doc/install.texi (Configuration): Remove obsolete paragraph
17655 about use of --with-gnu-ld with --with-gnu-as.
17656
a640c13b
KH
176572009-01-18 Kazu Hirata <kazu@codesourcery.com>
17658
17659 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
17660 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
17661 Follow spelling conventions.
17662
dba2cc0c
BE
176632009-01-18 Ben Elliston <bje@au.ibm.com>
17664
17665 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
17666 C++ warning about implicit conversion from void * to struct
17667 bitmap_head_def *.
17668 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 17669 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 17670
2207a498
DK
176712009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
17672
17673 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
17674
8137e465
SP
176752009-01-17 Sebastian Pop <sebastian.pop@amd.com>
17676 Tobias Grosser <tobi.grosser@amd.com>
17677
17678 * graphite.c (graphite_trans_scop_block): Do not block single
17679 nested loops.
17680
5be1c58c
AO
176812009-01-16 Alexandre Oliva <aoliva@redhat.com>
17682
17683 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
17684 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
17685 test with assertion.
17686
786ce82d
RG
176872009-01-16 Richard Guenther <rguenther@suse.de>
17688
17689 PR tree-optimization/38835
17690 PR middle-end/36227
17691 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
17692 and INT + PTR -> (INT)(PTR p+ INT) folding.
17693 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
17694
c1cb09ad
AN
176952009-01-16 Adam Nemet <anemet@caviumnetworks.com>
17696
17697 PR target/38554
17698 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
17699 the subreg from a lowpart subreg if it is also casting the value.
17700
bcab4e19
SP
177012009-01-16 Sebastian Pop <sebastian.pop@amd.com>
17702 Tobias Grosser <tobi.grosser@amd.com>
17703
17704 * graphite.c (compare_prefix_loops): New.
17705 (build_scop_canonical_schedules): Rewritten.
17706 (graphite_transform_loops): Move build_scop_canonical_schedules
17707 after build_scop_iteration_domain.
17708
0b040072
SP
177092009-01-16 Sebastian Pop <sebastian.pop@amd.com>
17710 Tobias Grosser <tobi.grosser@amd.com>
17711
2ba9daa7 17712 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
17713 the dimension of the iteration domain. Do copy the domain
17714 only when it exists.
17715 (build_scop_conditions_1): Do not call add_conditions_to_domain.
17716 (add_conditions_to_constraints): New.
17717 (can_generate_code_stmt, can_generate_code): Removed.
17718 (gloog): Do not call can_generate_code.
17719 (graphite_transform_loops): Call add_conditions_to_constraints
17720 after building the iteration domain.
17721
56c6a499
JJ
177222009-01-16 Jakub Jelinek <jakub@redhat.com>
17723
17724 PR tree-optimization/38789
17725 * tree-ssa-threadedge.c
17726 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
17727 __builtin_constant_p.
17728
c95b2534 177292009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
17730
17731 * dce.c (delete_unmarked_insns): Reversed the order that insns are
17732 examined before deleting them.
2ba9daa7 17733
c433cb14
RE
177342009-01-16 Richard Earnshaw <rearnsha@arm.com>
17735
17736 * function.c (aggregate_value_p): Correctly extract the function
17737 type from CALL_EXPR_FN lookup.
17738
c95b2534 177392009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
17740
17741 * config/picochip/picochip.c (picochip_override_options): Revert
17742 CFI asm flag disable commited previously.
17743
c77bb78f
SP
177442009-01-15 Sebastian Pop <sebastian.pop@amd.com>
17745 Tobias Grosser <tobi.grosser@amd.com>
17746 Jan Sjodin <jan.sjodin@amd.com>
17747
17748 * graphite.c (scan_tree_for_params): On substractions negate
17749 all the coefficients of the term.
17750 (clast_to_gcc_expression_red): New. Handle reduction expressions
17751 of more than two operands.
17752 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
17753 (get_vdef_before_scop): Handle also the case of default definitions.
17754
574af2d6
RS
177552009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
17756
17757 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
17758 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
17759 Also use them when walking CALL_INSN_FUNCTION_USAGE.
17760
e939805b
L
177612009-01-15 H.J. Lu <hongjiu.lu@intel.com>
17762 Joey Ye <joey.ye@intel.com>
17763
17764 PR middle-end/37843
17765 * cfgexpand.c (expand_stack_alignment): Don't update stack
17766 boundary nor check incoming stack boundary here.
17767 (gimple_expand_cfg): Update stack boundary and check incoming
17768 stack boundary here.
17769
c95b2534 177702009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 17771
435da628 17772 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 17773
0196c95e
JJ
177742009-01-14 Jakub Jelinek <jakub@redhat.com>
17775
17776 PR rtl-optimization/38245
17777 * calls.c (expand_call): Add stack arguments to
17778 CALL_INSN_FUNCTION_USAGE even for pure calls (when
17779 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
17780 in regs and partially in memory or BLKmode arguments.
17781 (emit_library_call_value_1): Add stack arguments to
17782 CALL_INSN_FUNCTION_USAGE even for pure calls (when
17783 ACCUMULATE_OUTGOING_ARGS).
17784 * dce.c: Include tm_p.h.
17785 (find_call_stack_args): New function.
17786 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
17787 argument.
17788 (mark_insn): Call find_call_stack_args for CALL_Ps.
17789 (prescan_insns_for_dce): Walk insns backwards in bb rather than
17790 forwards. Allocate and free arg_stores bitmap if needed, pass it
17791 down to deletable_insn_p, don't mark stores set in arg_stores
17792 bitmap, clear the bitmap at the beginning of each bb.
17793 * Makefile.in (dce.o): Depend on $(TM_P_H).
17794
6df6bcfa
MM
177952009-01-14 Michael Meissner <gnu@the-meissners.org>
17796
17797 PR target/22599
435da628
UB
17798 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
17799 to make sure the insn is a conditional test (bug 22599). Reformat a
17800 few long lines.
6df6bcfa 17801
765ec70c
SP
178022009-01-14 Sebastian Pop <sebastian.pop@amd.com>
17803
17804 PR middle-end/38431
17805 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
17806 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
17807 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 17808 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
17809 scops have been code generated.
17810
7de2b688
BS
178112009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
17812 * doc/gty.texi (Invoking the garbage collector): Added new node
17813 and section documenting ggc_collect.
17814
10bd6c5c
RG
178152009-01-14 Richard Guenther <rguenther@suse.de>
17816
17817 PR tree-optimization/38826
17818 PR middle-end/38477
17819 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
17820 initialization notes only if we actually emitted a warning.
17821 (intra_create_variable_infos): Add constraints for a result decl
17822 that is passed by hidden reference.
17823 (build_pred_graph): Mark all related variables non-direct on
17824 address-taking.
17825
9c7c70ee
NC
178262009-01-14 Nick Clifton <nickc@redhat.com>
17827
17828 * ira-conflicts.c: Include addresses.h for the definition of
17829 base_reg_class.
435da628
UB
17830 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
17831 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 17832
cf0c2a60
VM
178332009-01-13 Vladimir Makarov <vmakarov@redhat.com>
17834
17835 PR target/38811
17836 * Makefile.in (ira-lives.o): Add except.h.
17837
17838 * ira-lives.c: Include except.h.
17839 (process_bb_node_lives): Process can_throw_internal.
17840
d3302fd3
JJ
178412009-01-13 Jakub Jelinek <jakub@redhat.com>
17842
17843 PR rtl-optimization/38774
17844 * combine.c (simplify_set): When undoing cc_use change, don't do
17845 PUT_CODE on the newly created comparison, but instead put back the
17846 old comparison.
17847
7ab23fd0
JM
178482009-01-13 Joseph Myers <joseph@codesourcery.com>
17849
17850 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
17851 values. Remove duplicate arm8 entry.
17852
f9344488
SP
178532009-01-13 Sebastian Pop <sebastian.pop@amd.com>
17854
17855 PR tree-optimization/38786
17856 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
17857 the SSA_NAME case of expand_scalar_variables_expr.
17858 Set the type of an expression to the type of its assign statement.
17859 (expand_scalar_variables_expr): Also gather the scalar computation
17860 used to index the memory access. Do not pass loop_p.
17861 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
17862 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
17863 the gimple_stmt_iterator where it inserts new code.
17864 Do not pass loop_p.
f9344488
SP
17865 (copy_bb_and_scalar_dependences): Do not pass loop_p.
17866 (translate_clast): Update call to copy_bb_and_scalar_dependences.
17867
2d8bb84d
SP
178682009-01-13 Sebastian Pop <sebastian.pop@amd.com>
17869
17870 * graphite.h (debug_value): Removed.
17871 * graphite.c (debug_value): Removed.
17872
ff128632
RE
178732009-01-13 Richard Earnshaw <rearnsha@arm.com>
17874
435da628
UB
17875 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
17876 ldrd/strd with two 32-bit instructions.
ff128632 17877
d5a0a47b
RE
178782009-01-13 Richard Earnshaw <rearnsha@arm.com>
17879
435da628
UB
17880 * config/arm/arm.c (struct processors): Pass for speed down into
17881 cost helper functions.
d5a0a47b
RE
17882 (const_ok_for_op): Handle COMPARE and inequality nodes.
17883 (arm_rtx_costs_1): Rewrite.
17884 (arm_size_rtx_costs): Update prototype.
17885 (arm_rtx_costs): Pass speed down to helper functions.
17886 (arm_slowmul_rtx_costs): Rework cost calculations.
17887 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
17888 (arm_9e_rtx_costs): Likewise.
17889
26d5bf5b
UB
178902009-01-13 Uros Bizjak <ubizjak@gmail.com>
17891
17892 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 17893 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
17894 (alpha_legitimize_address): Do not split local symbols wider than
17895 UNITS_PER_WORD into HIGH/LO_SUM parts.
17896
5d14e3d5
DS
178972009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
17898
17899 PR bootstrap/38580
17900 * gcc.c (process_command): Replace call to execvp with calls
17901 to pex_one and exit.
17902
33faafca
AS
179032009-01-03 Anatoly Sokolov <aesok@post.ru>
17904
17905 PR target/29141
17906 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
17907 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
17908 variant for devices with 3-byte PC.
ba20e309 17909 (__tablejump_elpm__): New.
33faafca 17910
634b5df5
JJ
179112009-01-12 Jakub Jelinek <jakub@redhat.com>
17912
17913 PR c/32041
17914 * c-parser.c (c_parser_postfix_expression): Allow `->' in
17915 offsetof member-designator, handle it as `[0].'.
17916
2842bb86
JDA
179172009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17918
17919 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
17920 function when not using named sections on targets with named sections
17921 if branch distance is less than 262132.
17922
76ee70f6
RE
179232009-01-12 Richard Earnshaw <rearnsha@arm.com>
17924
17925 * combine.c (combine_instructions): Recompute
17926 optimize_this_for_speed_p for each BB in the main combine loop.
17927
f56e675d
TB
179282009-01-12 Tomas Bily <tbily@suse.cz>
17929
17930 PR middlend/38385
26d5bf5b
UB
17931 * tree-loop-distribution.c (prop_phis): New function.
17932 (generate_builtin): Call prop_phis.
17933 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 17934
c2152239
JJ
179352009-01-12 Jakub Jelinek <jakub@redhat.com>
17936
17937 PR tree-optimization/38807
17938 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
17939 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
17940
0e510b3e
AN
179412009-01-11 Adam Nemet <anemet@caviumnetworks.com>
17942
17943 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
17944 subreg of op0 to the original op0.
17945
c95b2534 179462009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
17947
17948 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 17949
53a7ff9a
MS
179502009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
17951
17952 PR debug/7055
60839f5d 17953 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
17954 starting with digits.
17955
b3a796bc
JJ
179562009-01-10 Jakub Jelinek <jakub@redhat.com>
17957
17958 PR target/38695
17959 * config/arm/arm.c (arm_is_long_call_p): Don't call
17960 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
17961
b21b850e
SB
179622009-01-09 Steven Bosscher <steven@gcc.gnu.org>
17963
17964 * regrename.c (regrename_optimize): Fix dumping.
17965 (find_oldest_value_reg): Preserve REG_POINTER.
17966 (copy_hardreg_forward_1): Likewise.
17967
e0e10d3a
DN
179682009-01-09 Diego Novillo <dnovillo@google.com>
17969
bf9b2cc9 17970 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
17971 the restrictions on its use.
17972 (gimple_uid): Tidy.
17973 (gimple_set_uid): Tidy.
17974
c9da2ae8
JJ
179752009-01-09 Jakub Jelinek <jakub@redhat.com>
17976
17977 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
17978 zero guard even if align_bytes != 0 and count is smaller than
17979 size_needed.
17980
38432148 179812009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
17982
17983 PR rtl-optimization/38495
26d5bf5b 17984 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
17985 (add_range_and_copies_from_move_list): Print all added ranges.
17986 Add ranges to memory optimized destination.
17987
260fda3d
JJ
179882009-01-09 Jakub Jelinek <jakub@redhat.com>
17989
6f6278ad
JJ
17990 PR target/38686
17991 PR target/38708
17992 * config/i386/i386.c (override_options): Reject
17993 -mstringop-strategy=rep_8byte with -m32.
17994 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
17995 to 1. Do count comparison against epilogue_size_needed at compile
17996 time even when count_exp was constant forced into register. For
17997 size_needed don't jump to epilogue, instead just avoid aligning
17998 and invoke the body algorithm. If need_zero_guard, add zero guard
17999 even if count is non-zero, but smaller than size_needed + number of
18000 bytes that could be stored for alignment.
18001 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
18002 to 1. If need_zero_guard, add zero guard even if count is non-zero,
18003 but smaller than size_needed + number of bytes that could be stored
18004 for alignment. Compare size_needed with epilogue_size_needed instead
18005 of desired_align - align, don't adjust size_needed, pass
18006 epilogue_size_needed to the epilogue expanders.
18007
260fda3d 18008 PR c/35742
26d5bf5b 18009 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 18010
67b846fa
JDA
180112009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18012
18013 * pa.c (last_address): Change to unsigned.
18014 (update_total_code_bytes): Change argument to unsigned. Don't
18015 check if insn addresses are set.
18016 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
18017 addresses are not set.
18018 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
18019
91c82473
NC
180202009-01-09 Nick Clifton <nickc@redhat.com>
18021
18022 * config/sh/symbian.c: Replace uses of DECL_INLINE with
18023 DECL_DECLARED_INLINE_P.
18024
4017e262
JJ
180252009-01-09 Jakub Jelinek <jakub@redhat.com>
18026
0a49e5c2
JJ
18027 PR middle-end/38347
18028 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
18029 GET_MODE (op0) in operand_subword_force calls.
18030
4017e262
JJ
18031 PR middle-end/38771
18032 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
18033 fold_convert arg0 operands to TREE_TYPE (op0) first.
18034
7cd06356
VM
180352009-01-08 Vladimir Makarov <vmakarov@redhat.com>
18036
18037 * params.def (ira-max-conflict-table-size): Decrease default value
18038 to 1000.
18039
96867bbd
JJ
180402009-01-08 Jakub Jelinek <jakub@redhat.com>
18041
18042 PR tree-optimization/37031
18043 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
18044 on parameter_set.
18045 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
18046 allocate it using gc instead of heap, use VEC_quick_push instead of
18047 VEC_safe_push.
18048 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
18049 instead of heap, use VEC_quick_push instead of VEC_safe_push.
18050 * tree-data-ref.h (struct access_matrix): Change matrix to gc
18051 allocated vector from heap allocated.
18052 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
18053 * tree-loop-linear.c (linear_transform_loops): Allocate nest
18054 vector only after perfect_loop_nest_depth call.
18055
68f61c3d
SP
180562009-01-08 Sebastian Pop <sebastian.pop@amd.com>
18057 Jan Sjodin <jan.sjodin@amd.com>
18058
18059 PR tree-optimization/38559
18060 * graphite.c (debug_value, copy_constraint,
18061 swap_constraint_variables, scale_constraint_variable, ): New.
18062 (get_lower_bound, get_upper_bound): Removed.
18063 (graphite_trans_bb_strip_mine): Clean up this code that works
18064 only for constant number of iterations. Fully copy upper and
18065 lower bound constraints, not only the constant part of them.
18066 * graphite.h (debug_value): Declared.
18067
82567e33
IR
180682009-01-08 Ira Rosen <irar@il.ibm.com>
18069
18070 PR tree-optimization/37194
18071 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 18072 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
18073 outside cost in case of known number of iterations.
18074
7da13f1d
NF
180752009-01-07 Nathan Froyd <froydnj@codesourcery.com>
18076 Alan Modra <amodra@bigpond.net.au>
18077
18078 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
18079 non-word-aligned REG+CONST addressing.
18080
c0f64575
UB
180812009-01-07 Uros Bizjak <ubizjak@gmail.com>
18082
18083 PR target/38706
18084 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
18085 free_after_compilation when outputting a thunk.
18086 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
18087 Do not call free_after_compilation here.
18088
301b6a4e
UB
180892009-01-07 Uros Bizjak <ubizjak@gmail.com>
18090
18091 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
18092 (ix86_valid_target_attribute_inner_p): Ditto.
18093
6a114766
JS
180942009-01-07 Jan Sjodin <jan.sjodin@amd.com>
18095
18096 PR tree-optimization/38492
18097 PR tree-optimization/38498
18098 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
18099 * tree-chrec.h (scev_is_linear_expression): Declared.
18100 * graphite.c (graphite_cannot_represent_loop_niter): New.
18101 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
18102 (graphite_loop_normal_form): Use gcc_assert.
18103 (scan_tree_for_params): Use CASE_CONVERT.
18104 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
18105 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
18106 Use gcc_assert. Discard scops that contain unhandled cases.
18107 (build_scop_conditions): Return a boolean status for unhandled cases.
18108 (strip_mine_profitable_p): Print the loop number, not its depth.
18109 (is_interchange_valid): Pass the depth of the loop nest, don't
18110 recompute it wrongly.
18111 (graphite_trans_bb_block): Same.
18112 (graphite_trans_bb_block): Print tentative of loop blocking.
18113 (graphite_trans_scop_block): Do not print that the loop has been
18114 blocked.
18115 (graphite_transform_loops): Do not handle scops that contain condition
18116 scalar phi nodes.
18117
65b82caa
L
181182009-01-07 H.J. Lu <hongjiu.lu@intel.com>
18119
18120 AVX Programming Reference (December, 2008)
18121 * config/i386/avxintrin.h (_mm256_stream_si256): New.
18122 (_mm256_stream_pd): Likewise.
18123 (_mm256_stream_ps): Likewise.
18124
18125 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
18126 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
18127 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
18128 (bdesc_special_args): Add __builtin_ia32_movntdq256,
18129 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
18130 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
18131 (ix86_expand_special_args_builtin): Likewise.
18132
18133 * config/i386/sse.md (AVXMODEDI): New.
18134 (avx_movnt<mode>): Likewise.
18135 (avx_movnt<mode>): Likewise.
18136 (<sse>_movnt<mode>): Remove AVX support.
18137 (sse2_movntv2di): Likewise.
18138
cef158f9
RG
181392009-01-07 Richard Guenther <rguenther@suse.de>
18140
18141 PR middle-end/38751
18142 * fold-const.c (extract_muldiv): Remove obsolete comment.
18143 (fold_plusminus_mult_expr): Undo MINUS_EXPR
18144 to PLUS_EXPR canonicalization for the canonicalization.
18145
246cb5be
GP
181462009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
18147
18148 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
18149 hosted cross-compilers generating less efficient code.
18150
84b9b872
RS
181512009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
18152
18153 * function.h (rtl_data): Add a dbr_scheduled_p field.
18154 * reorg.c (dbr_schedule): Set it.
18155 (gate_handle_delay_slots): Check it.
18156 * config/mips/mips.c (mips_base_delayed_branch): Delete.
18157 (mips_reorg): Check flag_delayed_branch instead of
18158 mips_base_delayed_branch.
18159 (mips_override_options): Don't set mips_base_delayed_branch
18160 or flag_delayed_branch.
18161
ace984c8
RS
181622009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
18163
18164 PR rtl-optimization/38426.
18165 * ira.c (ira): Set current_function_is_leaf earlier.
18166
7ad7809b
JJ
181672009-01-06 Jakub Jelinek <jakub@redhat.com>
18168
18169 PR rtl-optimization/38722
18170 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
18171 too early, only set a flag and modify after last possible
18172 undo_all point.
18173
c52ec948
JJ
181742009-01-06 Janis Johnson <janis187@us.ibm.com>
18175
18176 PR c/34252
18177 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
18178 * real.c (decimal_single_format): Correct values of emin and emax.
18179 (decimal_double_format): Ditto.
18180 (decimal_quad_format): Ditto.
18181 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
18182 computation of DECnn_MIN and DECnn_MAX for corrected values of
18183 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
18184 __DECnn_MIN__, and adjust its computation for the corrected value
18185 of emin.
18186
300240e1
JH
181872009-01-06 Jan Hubicka <jh@suse.cz>
18188
18189 PR target/38744
435da628 18190 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 18191
271c069e
GP
181922009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
18193
18194 * doc/contrib.texi (Contributors): Slightly adjust the end note.
18195 Add Robert Clark to the list of testers.
18196
64e4c301 181972009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 18198 Kai Tietz <kai.tietz@onevision.com>
64e4c301 18199
435da628
UB
18200 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
18201 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 18202
7650b83e 182032009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 18204 Kai Tietz <kai.tietz@onevision.com>
7650b83e 18205
435da628
UB
18206 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
18207 for w64 ABI.
18208 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
18209 (ix86_nsaved_regs): Count only general purpose regs.
18210 (ix86_nsaved_sseregs): New.
18211 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
18212 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
18213 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
18214 general purpose regs.
7650b83e
JH
18215 (ix86_emit_save_sse_regs_using_mov): New.
18216 (ix86_expand_prologue): Save SSE regs if needed.
18217 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
18218 (ix86_emit_restore_sse_regs_using_mov): New.
18219 (ix86_expand_epilogue): Save SSE regs if needed.
18220
9aa5c1b2 182212009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 18222 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 18223
435da628
UB
18224 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
18225 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
18226 functions when accumulate outgoing args is off.
9aa5c1b2 18227
f7556aae
L
182282009-01-06 H.J. Lu <hongjiu.lu@intel.com>
18229
18230 PR bootstrap/38742
18231 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
18232 before using pseudos_have_intersected_live_ranges_p.
18233
18234 * ira-int.h (ira_assert): Always define.
18235
e47b7d04
L
182362009-01-06 H.J. Lu <hongjiu.lu@intel.com>
18237
18238 AVX Programming Reference (December, 2008)
18239 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
18240 (_mm256_permute2_pd): Likewise.
18241 (_mm_permute2_ps): Likewise.
18242 (_mm256_permute2_ps): Likewise.
18243 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
18244 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
18245
18246 * config/i386/i386.c (ix86_builtins): Remove
18247 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
18248 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
18249 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
18250 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
18251 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
18252 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
18253 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
18254 __builtin_ia32_vpermil2ps256.
18255 (ix86_init_mmx_sse_builtins): Updated.
18256 (ix86_expand_args_builtin): Likewise.
18257
44b86471
JDA
182582009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18259
e47b7d04
L
18260 * pa.c (output_call): Relocate non-jump insns in the delay slot of
18261 long absolute calls when generating PA 2.0 code.
44b86471 18262
311aab06
VM
182632009-01-05 Vladimir Makarov <vmakarov@redhat.com>
18264
18265 PR rtl-optimization/38583
18266 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
18267
18268 * params.def (ira-max-conflict-table-size): New.
18269
18270 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 18271
311aab06 18272 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 18273
311aab06
VM
18274 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
18275 table. Report this. Return result of building.
18276 (ira_build_conflicts): Use ira_conflicts_p. Check result of
18277 building conflict table.
18278
301b6a4e 18279 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 18280 (ira_color): Use ira_conflicts_p.
2ba9daa7 18281
311aab06
VM
18282 * global.c: Include ira.h.
18283 (pseudo_for_reload_consideration_p, build_insn_chain): Use
18284 ira_conflicts_p.
18285
18286 * Makefile.in (global.o): Add ira.h.
2ba9daa7 18287
311aab06
VM
18288 * ira-build.c (mark_all_loops_for_removal,
18289 propagate_some_info_from_allocno): New.
18290 (remove_unnecessary_allocnos): Call
18291 propagate_some_info_from_allocno.
18292 (remove_low_level_allocnos): New.
18293 (remove_unnecessary_regions): Add parameter. Call
18294 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
18295 parameter to remove_unnecessary_regions.
18296 (ira_build): Remove all regions but root if the conflict table was
18297 not built. Update conflict hard regs for allocnos crossing calls.
18298
18299 * ira.c (ira_conflicts_p): New global.
18300 (ira): Define and use ira_conflicts_p.
18301
18302 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
18303 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 18304 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 18305
5641785f
BE
183062009-01-06 Ben Elliston <bje@au.ibm.com>
18307
18308 * gengtype-lex.l (YY_NO_INPUT): Define.
18309
e4e5261f
AP
183102009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
18311
18312 PR c/34911
5641785f
BE
18313 * c-common.c (handle_vector_size_attribute): Also reject
18314 BOOLEAN_TYPE types.
e4e5261f 18315
7b10257f
SP
183162009-01-05 Sebastian Pop <sebastian.pop@amd.com>
18317
18318 PR tree-optimization/38492
18319 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
18320 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
18321 rename_map_elt_info, eq_rename_map_elts,
18322 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
18323 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
18324 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
18325 (sese_build_livein_liveouts): New.
18326 (new_sese, free_sese): New.
18327 (new_scop): Call new_sese.
18328 (free_scop): Call free_sese.
18329 (rename_variables_from_edge, rename_phis_end_scop): Removed.
18330 (register_old_new_names): Renamed register_old_and_new_names.
18331 (register_scop_liveout_renames, add_loop_exit_phis,
18332 insert_loop_close_phis, struct igp,
18333 default_liveout_before_guard, add_guard_exit_phis,
18334 insert_guard_phis, copy_renames): New.
18335 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
18336 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
18337 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
18338 (scop_adjust_phis_for_liveouts): New.
18339 (gloog): Call scop_adjust_phis_for_liveouts.
18340
18341 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 18342 num_ver and livein.
7b10257f
SP
18343 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
18344 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
18345 (struct scop): Added field liveout_renames.
18346 (SCOP_LIVEOUT_RENAMES): New.
18347
9761fcc7
HJ
183482009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
18349
18350 PR tree-optimization/38510
18351 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
18352 (translate_clast): Call recompute_all_dominators before
18353 graphite_verify.
18354 (gloog): Call recompute_all_dominators before graphite_verify.
18355
183562009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 18357 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
18358
18359 PR tree-optimization/38500
18360 * graphite.c (create_sese_edges): Call fix_loop_structure after
18361 splitting blocks.
18362
c95b2534 183632009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
18364
18365 * config.gcc: Add m32r*-*-rtems*.
18366 * config/m32r/rtems.h: New file.
18367
fc0cd180
BE
183682009-01-05 Ben Elliston <bje@au.ibm.com>
18369
18370 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
18371 (.po.pox): Likewise.
18372 (po/gcc.pot): Likewise.
18373
3106d8e5
DM
183742009-01-04 David S. Miller <davem@davemloft.net>
18375
18376 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
18377 (STARTING_FRAME_OFFSET): Always set to zero.
18378
0009b473
RS
183792009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
18380
18381 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
18382 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
18383 fixed-point types, and vectors of the same.
18384
4f24c6d6
RS
183852009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
18386
18387 * config/mips/sync.md (*mb_barrier): Rename to...
18388 (*memory_barrier): ...this.
18389
1df48f5c
JW
183902009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
18391
18392 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 18393 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
18394 and put in alphabetical order. Fix 'target' name and put in order.
18395 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
18396 typos.
18397
1a8c13b3
UB
183982009-01-04 Uros Bizjak <ubizjak@gmail.com>
18399
18400 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
18401 (memory_barrier): Expand as unspec instead of unspec_volatile.
18402 Remove mem:BLK from insn operands. Use Pmode scratch register.
18403 (*memory_barrier): Define as unspec instead of unspec_volatile.
18404 Use (match_dup 0) as input operand.
18405
18406 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
18407 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
18408 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
18409 scratch register. Remove operand 1.
18410 (*stbar): Define as unspec instead of unspec_volatile.
18411 Use (match_dup 0) as input operand, remove (const_int 8).
18412 (*membar): Define as unspec instead of unspec_volatile.
18413 Use (match_dup 0) as input operand, remove input operand 2.
18414
18415 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
18416 (memory_barrier): Expand as unspec instead of unspec_volatile.
18417 Remove mem:BLK from insn operands. Use Pmode scratch register.
18418 (*memory_barrier): Define as unspec instead of unspec_volatile.
18419 Use (match_dup 0) as input operand.
18420
18421 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
18422 Remove mem:BLK from insn operands. Use Pmode scratch register.
18423 Set volatile flag on operand 0.
18424 (*memory_barrier): New insn pattern.
18425
18426 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
18427 insn operands.
18428 (*memory_barrier): Use (match_dup 0) as input operand.
18429
18430 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
18431 Remove mem:BLK from insn operands. Use Pmode scratch register.
18432 Set volatile flag on operand 0.
301b6a4e 18433 (*mb_internal): New insn pattern.
1a8c13b3
UB
18434
18435 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
18436
fb0703f7
SB
184372009-01-04 Steven Bosscher <steven@gcc.gnu.org>
18438
18439 PR middle-end/38586
18440 * function.c (struct temp_slot): Move to the section of the file
18441 that deals with temp slots. Remove field 'address'.
18442 (temp_slot_address_table): New hash table of address -> temp slot.
18443 (struct temp_slot_address_entry): New struct, items for the table.
18444 (temp_slot_address_compute_hash, temp_slot_address_hash,
18445 temp_slot_address_eq, insert_temp_slot_address): Support functions
18446 for the new table.
18447 (find_temp_slot_from_address): Rewrite to use the new hash table.
18448 (remove_unused_temp_slot_addresses): Remove addresses of temp
18449 slots that have been made available.
18450 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
18451 worker function for remove_unused_temp_slot_addresses.
18452 (assign_stack_temp_for_type): Don't clear the temp slot address list.
18453 Add the temp slot address to the address -> temp slot map.
18454 (update_temp_slot_address): Update via insert_temp_slot_address.
18455 (free_temp_slots): Call remove_unused_temp_slot_addresses.
18456 (pop_temp_slots): Likewise.
18457 (init_temp_slots): Allocate the address -> temp slot map, or empty
18458 the map if it is already allocated.
18459 (prepare_function_start): Initialize temp slot processing.
18460
b5a430f3
SB
184612009-01-04 Steven Bosscher <steven@gcc.gnu.org>
18462
18463 PR middle-end/38584
18464 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
18465 Calculate the size of all stack vars assuming no packing of stack
18466 vars will happen, replacing a quadratic algorithm with a linear one.
18467
5d560619
JJ
184682009-01-03 Jakub Jelinek <jakub@redhat.com>
18469
18470 PR target/38707
18471 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
18472 can't be used.
18473
953a7caa
DN
184742009-01-03 Diego Novillo <dnovillo@google.com>
18475
18476 * doc/contrib.texi: Update contributions.
18477
5f26a230
JJ
184782009-01-03 Jakub Jelinek <jakub@redhat.com>
18479
493aa551
JJ
18480 PR c++/38705
18481 * builtins.c (fold_builtin_memory_op): Give up if either operand
18482 is volatile. Set srctype or desttype to non-qualified version
18483 of the other type.
18484
5f26a230
JJ
18485 PR c/38700
18486 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
18487 and FUNCTION_DECLs.
18488
c95b2534 184892009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
18490
18491 PR rtl-optimization/35805
18492 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
18493 problem if fast dce is able to remove any instructions.
18494 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 18495
0b355794
MM
184962009-01-02 Mark Mitchell <mark@codesourcery.com>
18497
18498 PR 33649
18499 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
18500
0cf0d02b
JJ
185012009-01-02 Jakub Jelinek <jakub@redhat.com>
18502
18503 PR middle-end/38690
18504 * tree-flow.h (op_code_prio, op_prio): New prototypes.
18505 * tree-pretty-print.c (op_code_prio): New function.
18506 (op_prio): No longer static. Use op_code_prio.
18507 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
18508 Use op_prio and op_code_prio to determine if () should be
18509 printed around operand(s) or not.
18510
18511 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
18512 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
18513 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
18514 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
18515 pp_character instead of pp_string for single letter printing.
18516
e3606f3b
RS
185172009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
18518
18519 * doc/extend.texi: Fix '#pragma GCC option' typo.
18520
c95b2534 185212009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 18522
a5f061dc
RG
18523 * doc/install.texi (--enable-checking): Mention different
18524 default for stage1.
18525 (--enable-stage1-checking): Document.
00f39bd5 18526
26de0bcb
AP
185272009-01-01 Andrew Pinski <pinskia@gmail.com>
18528
18529 PR middle-end/30142
18530 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
18531 case to be an error.
18532
7a7d8fab
BE
185332009-01-02 Ben Elliston <bje@au.ibm.com>
18534
18535 * config/fp-bit.h (pack_d): Constify argument.
18536 * config/fp-bit.c (makenan): Constify return type. Remove casts.
18537 (isnan): Constify argument.
18538 (isinf): Likewise.
18539 (iszero): Likewise.
18540 (pack_d): Likewise.
18541 (_fpadd_parts): Constify return type.
18542 (_fpmul_parts): Likewise.
18543 (_fpdiv_parts): Likewise.
18544
b295aee2
JJ
185452009-01-01 Jakub Jelinek <jakub@redhat.com>
18546
18547 PR c/36489
18548 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
18549 warn about overwriting initializer with side-effects or
18550 -Woverride-init if !IMPLICIT.
18551 (output_init_element): Likewise. Pass IMPLICIT down to
18552 add_pending_init.
18553 (process_init_element): Add IMPLICIT argument. Pass it down
18554 to output_init_element.
18555 (push_init_element, pop_init_level, set_designator): Adjust
18556 process_init_element callers.
18557 (set_nonincremental_init, set_nonincremental_init_from_string):
18558 Adjust add_pending_init callers.
18559 (output_pending_init_elements): Adjust output_init_element callers.
18560 * c-tree.h (process_init_element): Adjust prototype.
18561 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
18562 process_init_element callers.
ad41bd84
JM
18563
18564\f
18565Copyright (C) 2009 Free Software Foundation, Inc.
18566
18567Copying and distribution of this file, with or without modification,
18568are permitted in any medium without royalty provided the copyright
18569notice and this notice are preserved.