]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
move.h: Doxygen group fixes.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
bf406687
ILT
12009-06-09 Ian Lance Taylor <iant@google.com>
2
3 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
4 compiling with C++.
5 * optabs.c (optab_table): Only use designated initializers if
6 HAVE_DESIGNATED_INITIALIZERS is defined.
7 (convert_optab_table): Likewise.
8 (init_optabs): Always call init_insn_codes if
9 HAVE_DESIGNATED_INITIALIZERS is not defined.
10
744aa42f
ILT
112009-06-09 Ian Lance Taylor <iant@google.com>
12
13 * targhooks.c (default_builtin_vectorized_function): Change fn
14 parameter to unsigned int.
15 (default_builtin_vectorized_conversion): Change code parameter to
16 unsigned int.
17 (default_builtin_reciprocal): Change fn parameter to unsigned int.
18 * targhooks.h: Update declarations.
19 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
20 parameter to unsigned int.
21
22 * c-typeck.c (comptypes_check_enum_int): New static function.
23 (comptypes_internal): Add enum_and_int_p parameter. Change all
24 callers.
25 (comp_target_types): Add location parameter. Change all callers.
26 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
27 Change all callers.
28 (function_types_compatible_p, type_lists_compatible_p): Likewise.
29 (build_conditional_expr): Add colon_loc parameter. Change all
30 callers.
31 (convert_for_assignment): Add location parameter. Change all
32 callers.
33 * c-parser.c (c_parser_conditional_expression): Pass location of
34 colon to build_conditional_expr.
35 * c-tree.h (build_conditional_expr): Update declaration.
36
bcbe3b25
SP
372009-06-09 Sebastian Pop <sebastian.pop@amd.com>
38
39 * graphite.c: Revert previous patch.
40
dc2a6925
SP
412009-06-09 Sebastian Pop <sebastian.pop@amd.com>
42
43 PR bootstrap/40103
44 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
45
d81f5387
GS
462009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
47
48 * tree-ssa-loop-prefetch.c
49 (loop_prefetch_arrays): Fixed a portability problem in printf format
50 string.
51
8056eb4f
MJ
522009-06-09 Martin Jambor <mjambor@suse.cz>
53
54 PR tree-optimization/40351
55 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
56 to a potential artifical subaccess can be constructed.
57
bd9a3465
KK
582009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
59
60 * config/sh/sh-protos.h (sh_optimization_options): Declare.
61 (sh_override_options): Likewise.
62 * config/sh/sh.c: Include params.h.
63 (sh_optimization_options): New.
64 (sh_override_options): Likewise.
65 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
66 (OVERRIDE_OPTIONS): Use sh_override_options.
67
8845deab
JJ
682009-06-08 Jakub Jelinek <jakub@redhat.com>
69
70 * dwarf2out.c (emit_cfa_remember): New variable.
71 (add_fde_cfi): If emit_cfa_remember, recurse to add
72 DW_CFA_remember_state first.
73 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
74 instead just set emit_cfa_remember.
75
9ea81b0c
JH
762009-06-08 Jan Hubicka <jh@suse.cz>
77
78 PR debug/40126
79 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
80
21ecdec5
JH
812009-06-08 Jan Hubicka <jh@suse.cz>
82
83 PR middle-end/39834
84 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
85 for saved inline bodies.
86 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
87 for given function.
88
72e48218
AN
892009-06-08 Adam Nemet <anemet@caviumnetworks.com>
90
91 * jump.c (returnjump_p): Handle delayed branches. Add missing
92 function comment.
93
6ce2002b
JH
942009-06-08 Jan Hubicka <jh@suse.cz>
95
96 PR middle-end/40102
97 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
98 original node might've been modified.
99 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
100
eb9ed98a
JJ
1012009-06-08 Jakub Jelinek <jakub@redhat.com>
102
103 * tree-object-size.c (addr_object_size): Add OSI argument.
104 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
105 (compute_builtin_object_size, expr_object_size): Adjust callers.
106 (plus_stmt_object_size): Call addr_object_size instead of
107 compute_builtin_object_size.
108
db34470d
GS
1092009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
110 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
111
112 * tree-ssa-loop-prefetch.c
113 (gather_memory_references): Introduced a counter for the number of
114 memory references.
115 (anything_to_prefetch_p): Introduced a counter for the number of
116 prefetches.
117 (is_loop_prefetching_profitable): New function with a cost model
118 for prefetching.
119 (loop_prefetch_arrays): Use the new cost model to determine if
120 prefetching is profitable.
121 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
122 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
123 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
124 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
125 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
126 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
127
eb7adebc
MM
1282009-06-08 Michael Matz <matz@suse.de>
129
130 PR debug/40012
eb7adebc
MM
131 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
132 partitions use the same.
133 (expand_one_var): Deal with DECL_RTL sometimes begin set also
134 for basevars of SSA_NAMEs.
135 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
136 to not expand them twice.
137 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
138 multiple places.
139
2153915d
AO
1402009-06-08 Alexandre Oliva <aoliva@redhat.com>
141
142 * common.opt (fcompare-debug=, fcompare-debug-second): New.
143 (fdump-final-insns=, gtoggle): New.
144 * doc/invoke.texi: Document them.
145 * final.c (rest_of_clean_state): Dump final insn stream.
146 * gcc.c (invoke_as): Hook in -fcompare-debug.
147 (static_spec_functions): Add compare-debug-dump-opt,
148 compare-debug-self-opt and compare-debug-auxbase-opt.
149 (compare_debug, compare_debug_second, compare_debug_opt): New.
150 (switches_debug_check, n_switches_debug_check): New.
151 (debug_auxbase_opt, debug_check_temp_file): New.
152 (process_command): Handle -fno-compare-debug, -fcompare-debug and
153 -fcompare-debug=*.
154 (do_self_spec): Handle arguments after switches.
155 (do_spec_1): Add .gk extension to temp file basenames for compare.
156 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
157 (cc1_options): Use it instead of normal auxbase computation for
158 the second compare-debug compilation.
159 (compare_files): New.
160 (main): Set up and implement compare debug mode.
161 (compare_debug_dump_opt_spec_function): New.
162 (compare_debug_self_opt_spec_function): New.
163 (compare_debug_auxbase_opt_spec_function): New.
164 * toplev.c (process_options): Handle flag_gtoggle,
165 flag_dump_final_insns.
166 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
167 during -fcompare-debug-second compilation.
168
cdb88468
ILT
1692009-06-07 Ian Lance Taylor <iant@google.com>
170
171 * dwarf2.h (enum dwarf_location_atom): Add
172 INTERNAL_DW_OP_tls_addr.
173 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
174
175 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
176 with no default node. Change warning with %H to warning_at.
177 Don't clear warn_switch around case checking.
178 * doc/invoke.texi (Warning Options): Clarify distinction between
179 -Wswitch and -Wswitch-enum.
180
4fe8e1a2
BRF
1812009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
182
183 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
184
69952c1d
BRF
1852009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
186
187 * gbl-ctors.h: Add header guard.
188
b2ad0284
BRF
1892009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
190
191 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
192 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
193 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
194 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
195 prototypes for removed functions.
196 (expressions_equal_p): Move to ...
197 * tree-ssa-sccvn.h: ... here and ...
198 * matrix-reorg.c: ... adjust includes.
199
c3df55f9
BRF
2002009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
201
202 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
203
b5a7159f
BRF
2042009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
205
206 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
207 (finish_function): Remove erroneous whitespace.
208
95bca6b0
BRF
2092009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
210
2cd713a0
BRF
211 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
212 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
213
2142009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
215
216 * errors.c (internal_error): Commentary typo fix.
217 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
218 * tree-ssa-pre.c: Ditto.
95bca6b0 219
2cd713a0
BRF
2202009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
221
222 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
223 them is supposed to hold actual statements.
224
5bca4e80
ILT
2252009-06-06 Ian Lance Taylor <iant@google.com>
226
227 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
228 empty statements can now have attributes.
229
47ac44d6
SZ
2302009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
231
232 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
233 * config/mips/mips.md: Ditto.
234
19b905ce
NF
2352009-06-05 Nathan Froyd <froydnj@codesourcery.com>
236
237 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
238 _RELOCATABLE.
239 (__eabi_uconvert): Likewise.
240
16702e19
NF
2412009-06-05 Nathan Froyd <froydnj@codesourcery.com>
242
243 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
244 CFI_* definitions with IN_GCC.
245
a735afd1
DE
2462009-06-05 David Edelsohn <edelsohn@gnu.org>
247
248 * xcoffout.h (xcoffout_source_line): Update prototype.
249
26a347c5
KG
2502009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
251
252 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
253 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
254
9f706f23
JJ
2552009-06-05 Jakub Jelinek <jakub@redhat.com>
256
257 PR middle-end/40340
258 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
259 inlined_function_outer_scope_p blocks for artificial inlines
260 even at -g0/-g1.
261 * tree.c (tree_nonartificial_location): Rewrite using
262 block_nonartificial_location.
263
8f439681
RE
2642009-06-05 Revital Eres <eres@il.ibm.com>
265 Leehod Baruch <leehod@il.ibm.com>
266
267 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
268 (expand_expr_real_1): Remove comment.
269 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
270 Vectorize misaligned access when the target supports it.
271 (vect_supportable_dr_alignment): Check for unaligned access
272 support.
273 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
274 and remove asset.
275
b89f8e3c
JB
2762009-06-05 Julian Brown <julian@codesourcery.com>
277
278 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
279 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
280
47d1f191
RG
2812009-06-05 Richard Guenther <rguenther@suse.de>
282
283 PR bootstrap/40350
284 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
285 as possibly unused.
286
9f706f23 2872009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
288
289 * config/s390/s390.c (global_not_special_regno_p): New static inline.
290 (save_gprs): Don't tell unwinder when a global register is saved.
291 (s390_emit_epilogue): Emit needed epilogue unwind info.
292
90f06248
AO
2932009-06-05 Alexandre Oliva <aoliva@redhat.com>
294
295 * dwarf2out.c (deferred_asm_name): New.
296 (add_name_and_src_coords_attributes): Defer creation of
297 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
298 computed yet.
299 (move_linkage_attr): New.
300 (dwarf2out_finish): Revisit deferrals and emit attributes at the
301 right place.
302
c10348e5
AO
3032009-06-05 Alexandre Oliva <aoliva@redhat.com>
304
305 * tree-nested.c (finalize_nesting_tree_1): Declare the
306 frame_decl in the binding tree.
307
6c52e687
CC
3082009-06-04 Cary Coutant <ccoutant@google.com>
309
310 * basic-block.h (struct basic_block_def): Add discriminator field.
311 * dbxout.c (dbxout_source_line): Add new parameter. Change all
312 callers.
313 * debug.c (do_nothing_debug_hooks): Add additional entry.
314 (debug_nothing_int_charstar_int): New function.
315 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
316 hook.
317 (debug_nothing_int_charstar_int): New declaration.
318 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
319 discriminator value in .loc directive.
320 * final.c (last_discriminator): New variable.
321 (discriminator): New variable.
322 (final_start_function): Initialize above variables, pass current
323 discriminator to debug hook.
324 (notice_source_line): Check for discriminator change.
325 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
326 * sdbout.c (sdbout_source_line): New parameter.
327 * tree-cfg.c (struct locus_discrim_map): New structure type.
328 (discriminator_per_locus): New hash table.
329 (build_gimple_cfg): Allocate and free discriminator hash table.
330 (make_edges): Call assign_discriminator.
331 (locus_map_hash): New function.
332 (locus_map_eq): New function.
333 (next_discriminator_for_locus): New function.
334 (same_line_p): New function.
335 (assign_discriminator): New function.
336 (make_cond_expr_edges): Call assign_discriminator.
337 (make_gimple_switch_edges): Likewise.
338 (first_non_label_stmt): New function.
339 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
340 all callers.
341 * xcoffout.c (xcoffout_source_line): Add new parameter.
342
343 * configure.ac (gcc_cv_as_discriminator): New configury check for
344 gas support for discriminator.
345 * configure: Regenerate.
346 * config.in: Regenerate.
347
e07e020b
RR
3482009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
349
350 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
351 val after checking for integers.
352
72fa3605
UB
3532009-06-04 Uros Bizjak <ubizjak@gmail.com>
354
355 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
356 X64_REGPARM_MAX.
357 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
358 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
359 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
360 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
361 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
362 X64_SSE_REGPARM_MAX.
363 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
364 X64_SSE_REGPARM_MAX.
365
bdde878c
AO
3662009-06-04 Alexandre Oliva <aoliva@redhat.com>
367
368 * gcc.c (report_times_to_file): New.
369 (execute): Implement it.
370 (process_command): Support -time=.
371 * doc/invoke.texi: Document it.
372
2ce59df7
AO
3732009-06-04 Alexandre Oliva <aoliva@redhat.com>
374
375 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
376 that have value exprs.
377
78bd9046
AO
3782009-06-04 Alexandre Oliva <aoliva@redhat.com>
379
380 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
381 declarations for constants until...
382 (dw2_output_indirect_constant_1): ... this point.
383
e63d4106
RE
3842009-06-04 Richard Earnshaw <rearnsha@arm.com>
385
386 PR target/10242
387 * arm.md (arm_addsi3): Don't try to split an add with an
388 eliminable register until after reload has completed.
389
6bc7bc14
ILT
3902009-06-03 Ian Lance Taylor <iant@google.com>
391
392 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
393 * genattrtab.c (write_length_unit_log): Likewise.
394 * genchecksum.c (dosum): Likewise.
395 * gengtype.c (write_rtx_next): Likewise.
396 (finish_root_table, write_roots): Likewise.
397 * gimple.c (gimple_ops_offset_): Likewise.
398 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
399 * config/arc/arc.c (arc_attribute_table): Likewise.
400 * config/arm/arm.c (arm_attribute_table): Likewise.
401 * config/avr/avr.c (avr_attribute_table): Likewise.
402 * config/crx/crx.c (crx_attribute_table): Likewise.
403 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
404 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
405 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
406 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
407 * config/sh/sh.c (sh_attribute_table): Likewise.
408 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
409 * config/spu/spu.c (spu_attribute_table): Likewise.
410 * config/v850/v850.c (v850_attribute_table): Likewise.
411
412 * config/alpha/alpha.c (vms_attribute_table): Make static.
413 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
414 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
415 * config/mips/mips.c (mips_attribute_table): Likewise.
416
417 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
418 $(SYSTEM_H).
419 (cc1-checksum.o): Likewise.
420
19d892fd
SE
4212009-06-03 Steve Ellcey <sje@cup.hp.com>
422
423 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
424
679f3354
JJ
4252009-06-03 Jakub Jelinek <jakub@redhat.com>
426
ff35822b
JJ
427 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
428 insn if it is changing sp. Use gen_add3_insn instead of
429 conditionally gen_addsi3 and gen_adddi3.
430 (offset_below_red_zone_p): New static inline function.
431 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
432 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
433 * config/rs6000/ppc-asm.h: Include auto-host.h.
434 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
435 CFI_RESTORE): Define.
436 * config/rs6000/crtresxgpr.asm: Add unwind info.
437 * config/rs6000/crtresxfpr.asm: Likewise.
438 * config/rs6000/crtresgpr.asm: Likewise.
439 * config/rs6000/crtresfpr.asm: Likewise.
440 * config/rs6000/crtsavgpr.asm: Likewise.
441 * config/rs6000/crtsavfpr.asm: Likewise.
442
679f3354
JJ
443 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
444 0 to second argument of DWARF2_FRAME_REG_OUT macros.
445
2e94c12d
JB
4462009-06-03 Julian Brown <julian@codesourcery.com>
447
448 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
449 words or less (including TImode) in core registers.
450
3111cce0
RG
4512009-06-03 Richard Guenther <rguenther@suse.de>
452
453 PR middle-end/40328
454 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
455
5e1b50f6
AB
4562009-06-03 Andrey Belevantsev <abel@ispras.ru>
457
458 * statistics.c (statistics_counter_event): Do not record event
459 in pass dump if its number == -1.
460 (curr_statistics_hash): Add assert that we never get passes
461 with static number == -1.
462
6f11d690
RG
4632009-06-03 Richard Guenther <rguenther@suse.de>
464 Andrey Belevantsev <abel@ispras.ru>
465
466 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
467 non-BLKmode arrays addressable.
468
88961471
MK
4692009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
470
471 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
472 * config/m68k/m68k.h: ... here.
473 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
474 m68k and fido.
475
9961eb45
MJ
4762009-06-03 Martin Jambor <mjambor@suse.cz>
477
478 PR tree-optimization/40323
479 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
480 assignment.
481
2f2c62a0
RG
4822009-06-03 Richard Guenther <rguenther@suse.de>
483
484 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
485 consistently.
486
d6ced3b7
SZ
4872009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
488
489 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
490 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
491 JUMP_TABLE_DATA_P where applicable.
492 * config/sh/sh.c: Ditto.
493 * config/sh/sh.h: Ditto.
494 * config/sh/sh.md: Ditto.
495 * config/sh/symbian.c: Ditto.
496
f3afc8a7
UB
4972009-06-03 Uros Bizjak <ubizjak@gmail.com>
498
499 * config/i386/driver-i386.c (describe_cache): Optimize
500 concatenation of strings. Use snprintf instead of sprintf.
501 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
502 target when not compiling with GCC.
503
1964788a
KK
5042009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
505
506 * config/sh/sh.c: Revert last change.
507 (sh_expand_epilogue): Emit a blockage insn before the frame
508 pointer adjustment unconditionally.
509
8633c315
RS
5102009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
511
512 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
513 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
514 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
515 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
516 to COLLECT_GCC_OPTIONS.
517
781a1758
RS
5182009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
519
520 * collect2.c (target_system_root): New variable.
521 (main): Handle --sysroot=.
522 (ignore_library): Strip the sysroot from the library path.
523
dfb636dc
RS
5242009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
525
526 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
527 (collect2.o): Depend on collect2-aix.h.
528 (collect2-aix.o): New rule.
529 * collect2-aix.h: New file.
530 * collect2-aix.c: Likewise.
531 * collect2.c: Include collect2-aix.h. Don't undefine
532 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
533 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
534 Use TARGET_AIX_VERSION instead of _AIX51.
535 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
536 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
537 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
538 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
539 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
540
51136ae8
RS
5412009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
542
543 * collect2.c (ignore_library): Avoid premature post-increment
544 and null deference.
545
7f142d33
RS
5462009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
547
548 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
549 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
550 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
551 CROSS_DIRECTORY_STRUCTURE too.
552 (LINK_LIBG_SPEC): Likewise.
553 (LIB_SPEC): Add %R to sysroot paths.
554 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
555 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
556 * config/rs6000/aix51.h: As for aix43.h.
557 * config/rs6000/aix52.h: Likewise.
558 * config/rs6000/aix53.h: Likewise.
559 * config/rs6000/aix61.h: Likewise.
560 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
561 to the beginning of sysroot paths.
562
9e74b7d2
AO
5632009-06-02 Alexandre Oliva <aoliva@redhat.com>
564
565 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
566 INSN_LISTs that are out of the REG_NOTE range.
567
a9f6ecee
AO
5682009-06-02 Alexandre Oliva <aoliva@redhat.com>
569
570 * loop-unroll.c (struct iv_to_split): Add pointer to next.
571 (struct var_to_expand): Likewise.
572 (struct opt_info): Add head and tail for linked lists of the above.
573 (analyze_insn_to_expand_var): Initialize next.
574 (analyze_iv_to_split_insn): Likewise.
575 (analyze_insns_in_loop): Create linked lists.
576 (allocate_basic_variable): Simplify for use without hash table.
577 (insert_var_expansion_initialization): Likewise, make it type-safer.
578 (combine_var_copies_in_loop_exit): Likewise.
579 (apply_opt_in_copies): Walk lists rather than hash tables.
580 (release_var_copies): Simplified and inlined by hand into...
581 (free_opt_info): ... this function.
582
69596c69
RG
5832009-06-02 Richard Guenther <rguenther@suse.de>
584
585 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
586 for field decls.
587
fe8a7779
AO
5882009-06-02 Alexandre Oliva <aoliva@redhat.com>
589
590 * cfgexpand.c (gimple_expand_cfg): Discard the source location
591 only for builtins that are not overridden.
592
1bcca2c5
AO
5932009-06-02 Alexandre Oliva <aoliva@redhat.com>
594
595 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
596 label string.
597
8588f797
AO
5982009-06-02 Alexandre Oliva <aoliva@redhat.com>
599
600 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
601
45f39d78
AO
6022009-06-02 Alexandre Oliva <aoliva@redhat.com>
603
604 * combine.c (move_deaths): Compare LUIDs within the same BB only.
605
2aa7c49b
AO
6062009-06-02 Alexandre Oliva <aoliva@redhat.com>
607
608 * common.opt (fdump-unnumbered-links): New.
609 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
610 * print-rtl.c (flag_dump_unnumbered_links): New.
611 (print_rtx): Test it.
612
55b2829b
RE
6132009-06-02 Richard Earnshaw <rearnsha@arm.com>
614
615 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
616 push/pop multiple to 8-byte alignment.
e63d4106 617
6c0d7021
JJ
6182009-06-01 Jakub Jelinek <jakub@redhat.com>
619
0aa34d44
JJ
620 * config/i386/i386.c (queued_cfa_restores): New static variable.
621 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
622 functions.
623 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
624 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
625 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
626 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
627 note unconditionally.
628 (ix86_emit_restore_regs_using_mov): Likewise.
629 (ix86_emit_restore_sse_regs_using_mov): Likewise.
630 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
631 it through to ix86_emit_restore_reg_using_pop.
632 (ix86_emit_leave): Add RED_OFFSET argument. Call
633 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
634 instead of adding REG_CFA_OFFSET note unconditionally.
635 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
636 the above functions. Call ix86_add_queued_cfa_restore_notes when
637 needed.
638
639 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
640 force output of the label even for dwarf2out_do_cfi_asm.
641 (add_fde_cfi): If -g2 and above and cfi might change CFA,
642 force creation of CFI label and chain DW_CFA_set_loc jumping to it
643 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
644 caller.
645 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
646 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
647 dwarf2out_cfi_label callers.
648 * tree.h (dwarf2out_cfi_label): Adjust prototype.
649 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
650 Adjust dwarf2out_cfi_label callers.
651 * config/vax/vax.c (vax_output_function_prologue): Likewise.
652
604a6be9
JJ
653 * config/i386/i386.h (struct machine_cfa_state,
654 struct machine_function): Guard with ifndef USED_FOR_TARGET
655 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
656
df0026a7
JJ
657 PR other/40024
658 * emutls.c (__emutls_get_address): Change arr->size to mean number
659 of allocated arr->data entries instead of # of slots + 1.
660
6c0d7021
JJ
661 PR middle-end/40316
662 * recog.c (peep2_reinit_state): New function.
663 (peephole2_init_state): Use it at the end of a basic block and also
664 when seeing a RTX_FRAME_RELATED_P insn.
665
49df2fb8
SE
6662009-06-01 Steve Ellcey <sje@cup.hp.com>
667
668 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
669 fixuns_truncrfdi2): New.
670 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
671 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
672 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
673 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
674 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
675 *recip_approx): Remove.
676 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
677 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
678 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
679 move to div.md.
680 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
681 setf_exp_rf): New.
682
67165eb3
ILT
6832009-06-01 Ian Lance Taylor <iant@google.com>
684
685 * attribs.c (register_attribute): Use CONST_CAST.
686 * collect2.c (main): Use CONST_CAST2.
687 (scan_prog_file): Likewise.
688 * gcc.c (process_command, main): Likewise.
689 * toplev.c (toplev_main): Likewise.
690
691 * c-typeck.c (handle_warn_cast_qual): New static function,
692 partially broken out of build_c_cast.
693 (build_c_cast): Call handle_warn_cast_qual.
694 * doc/invoke.texi (Warning Options): Document new effect of
695 -Wcast-qual.
696
e74fe492
AH
6972009-06-01 Aldy Hernandez <aldyh@redhat.com>
698
699 * diagnostic.c (diagnostic_build_prefix): Always print columns.
700 (diagnostic_report_current_module): Print columns.
701 * common.opt (flag_show_column): Enable by default.
702
7eba2d1f
LM
7032009-06-01 Luis Machado <luisgpm@br.ibm.com>
704
705 * alias.c (find_base_term): Check for NULL term before returning.
706
ee88d9aa
MK
7072009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
708
709 Revert due to PR40320:
ee88d9aa
MK
710 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
711 * calls.c (emit_library_call_value_1): Don't force_operand for move
712 and push insns.
713
324c9b02 7142009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 715 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
716
717 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
718 to be processed as a bitfield for constructor output purposes.
719 * output.h (initializer_constant_valid_for_bitfield_p): Declare
720 new function.
721 * varasm.c (oc_local_state): New type, output_constructor
722 local state to support communication with helpers.
723 (oc_outer_state): New type, output_constructor outer state of
724 relevance in recursive calls.
725 (output_constructor_array_range): New output_constructor helper,
726 extracted code for an array range element.
727 (output_constructor_regular_field): New output_constructor helper,
728 extracted code for an element that is not a bitfield.
729 (output_constructor_bitfield): New output_constructor helper,
730 extracted code for a bitfield element. Accept an OUTER state
731 argument for recursive processing. Recurse on record or array
732 CONSTRUCTOR values, possibly past noop conversions.
62295314 733 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
734 VALUE is a valid constant-valued expression for use in a static
735 bit-field initializer.
62295314
OH
736 (output_constructor): Rework to use helpers. Accept and honor an
737 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
738 prepared for nested constructors initializing bitfields.
739 (output_constant): Feed OUTER in calls to output_constructor.
740
0980d7fe
MK
7412009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
742
743 * calls.c (emit_library_call_value_1): Don't force_operand for move
744 and push insns.
745
29661412
NC
7462009-06-01 Nick Clifton <nickc@redhat.com>
747
748 * doc/invoke.texi (IA-64 Options): Fix typo.
749
e9dbe7bb
IR
7502009-06-01 Ira Rosen <irar@il.ibm.com>
751
752 PR tree-optimization/39129
753 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
754 printed message.
755 (vect_do_peeling_for_loop_bound): Use
756 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
757 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
758 (vect_loop_versioning): Likewise.
759 (vect_create_cond_for_alias_checks): Fix indentation.
760 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
761 macros.
762 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
763 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
764 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
765 "control flow in loop".
766 (vect_estimate_min_profitable_iters): Use
767 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
768 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
769 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
770 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
771 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
772 statement belongs to a group of strided accesses with the exact code
773 check.
774 (vectorizable_load): Likewise.
775 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
776 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
777
5ac69a80
GP
7782009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
779
780 * config/freebsd-stdint.h: New file.
781 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
782 Add freebsd-stdint.h to tm_file.
783
54b2b460
RE
7842009-06-01 Richard Earnshaw <rearnsha@arm.com>
785
786 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
787 (thumb2_extendhidi2): Likewise.
788
a7ca77cf
ILT
7892009-05-31 Ian Lance Taylor <iant@google.com>
790
f3afc8a7 791 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
792
7932009-05-31 Ian Lance Taylor <iant@google.com>
794
f3afc8a7 795 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
796 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
797 (ipa-reference.o): Depend upon gt-ipa-reference.h.
798
1aec401e
JM
7992009-05-31 Jason Merrill <jason@redhat.com>
800
801 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 802 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
803 (dump_generic_node): Adjust.
804 * diagnostic.h: Declare print_call_name.
805 * gimple-pretty-print.c (dump_gimple_call): Use it.
806
ed7910bb
KK
8072009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
808
809 * config/sh/sh.md (ashldi3_std): New define_expand.
810 (ashldi3): Use it.
811
47ea8d4e
KK
8122009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
813
814 PR target/40313
815 * config/sh/sh.c: Include debug.h.
816 (sh_expand_epilogue): Emit a blockage insn before the frame
817 pointer adjustment also when dwarf2out_do_frame returns true.
818
405e8b49
RE
8192009-05-31 Richard Earnshaw <rearnsha@arm.com>
820
821 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
822 (thumb2_extendqidi2): New pattern.
823
71ece343
IR
8242009-05-31 Ira Rosen <irar@il.ibm.com>
825
826 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
827 mark phis for renaming.
828 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
829 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
830 Call mark_sym_for_renaming.
831 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
832 * tree-vect-loop.c (vect_transform_loop): Remove
833 vect_memsyms_to_rename initialization and a call to
834 mark_set_for_renaming.
71ece343 835
b3041944
JJ
8362009-05-31 Jakub Jelinek <jakub@redhat.com>
837
838 PR middle-end/40304
839 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
840 frame related even if !set_cfa && style < 0.
841
a1bda0d7
KT
8422009-05-30 Kai Tietz <kai.tietz@onevision.com>
843
844 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
845 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
846 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
847 defining _WIN32 but not __CYGWIN__.
a1bda0d7 848
acd26225
KG
8492009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
850
851 * configure.ac: Add MPC support.
852
853 * config.in, configure: Regenerate.
854
cd9c1ca8
RH
8552009-05-29 Richard Henderson <rth@redhat.com>
856
857 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
858 NOTE_INSN_BASIC_BLOCK.
859 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
860 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
861 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
862 to be deleted.
863 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
864 add in_use field.
865 (add_cfi): Disable check redefining cfa away from drap.
866 (lookup_cfa_1): Add remember argument; handle remember/restore.
867 (lookup_cfa): Pass remember argument.
868 (cfa_remember): New.
869 (compute_barrier_args_size_1): Remove sibcall check.
870 (dwarf2out_frame_debug_def_cfa): New.
871 (dwarf2out_frame_debug_adjust_cfa): New.
872 (dwarf2out_frame_debug_cfa_offset): New.
873 (dwarf2out_frame_debug_cfa_register): New.
874 (dwarf2out_frame_debug_cfa_restore): New.
875 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
876 (dwarf2out_begin_epilogue): New.
877 (dwarf2out_frame_debug_restore_state): New.
878 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
879 DW_CFA_restore_state.
880 (output_cfi_directive): Likewise.
881 (convert_cfa_to_fb_loc_list): Likewise.
882 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
883 * dwarf2out.h: Update.
884 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
885 (copy_insn_1): Early out for null.
886 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
887 and dwarf2out_frame_debug_restore_state.
888 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
889 (prologue_insn_hash, epilogue_insn_hash): New.
890 (free_after_compilation): Adjust freeing accordingly.
891 (record_insns): Create hash table if needed; push insns into
892 hash instead of array.
893 (maybe_copy_epilogue_insn): New.
894 (contains): Search hash table instead of array.
895 (sibcall_epilogue_contains): Remove.
896 (thread_prologue_and_epilogue_insns): Split eh_return insns
897 and mark them as epilogues.
898 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
899 scanning in terms of basic blocks.
900 * insn-notes.def (CFA_RESTORE_STATE): New.
901 * jump.c (returnjump_p_1): Accept EH_RETURN.
902 (eh_returnjump_p_1, eh_returnjump_p): New.
903 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
904 CFA_REGISTER, CFA_RESTORE): New.
905 * rtl.def (EH_RETURN): New.
906 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
907
908 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
909 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
910
911 * config/i386/i386.c (gen_push): Update cfa state.
912 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
913 add a CFA_ADJUST_CFA note.
914 (ix86_dwarf_handle_frame_unspec): Remove.
915 (ix86_expand_prologue): Update cfa state.
916 (ix86_emit_restore_reg_using_pop): New.
917 (ix86_emit_restore_regs_using_pop): New.
918 (ix86_emit_leave): New.
919 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
920 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
921 * config/i386/i386.h (struct machine_cfa_state): New.
922 (ix86_cfa_state): New.
923 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
924 (eh_return_internal): Merge from eh_return_<mode>,
925 use eh_return rtx, split w/ epilogue.
926
72b5577d
ILT
9272009-05-29 Ian Lance Taylor <iant@google.com>
928
929 * builtins.c (validate_gimple_arglist): Don't use va_arg with
930 enum type.
931 * calls.c (emit_library_call_value_1): Likewise.
932
933 * c-typeck.c (c_build_va_arg): New function.
934 * c-tree.h (c_build_va_arg): Declare.
935 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
936 instead of build_va_arg.
937
7a2faca1
EB
9382009-05-29 Eric Botcazou <ebotcazou@adacore.com>
939
940 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
941 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
942 (ptr_difference_cost): Use affine combinations to compute it.
943 (difference_cost): Likewise.
944 (get_computation_cost_at): Compute more accurate cost for addresses
945 if the ratio is a multiplier allowed in addresses.
946 For non-addresses, consider that an additional offset or symbol is
947 added only once.
948
725fd454
JJ
9492009-05-29 Jakub Jelinek <jakub@redhat.com>
950
a0987204
JJ
951 * config/i386/i386.c (ix86_decompose_address): Avoid useless
952 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
953
725fd454
JJ
954 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
955 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
956 (prefix_rex): For UNIT_MMX don't imply the prefix by default
957 if MODE_DI.
958 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
959 to 1 for TYPE_SSE{IADD1,CVT1}.
960 (prefix_vex_imm8): Removed.
961 (length_vex): Only pass 1 as second argument to
962 ix86_attr_length_vex_default if prefix_extra is 0.
963 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
964 (length): For prefix vex computation use length_immediate
965 attribute instead of prefix_vex_imm8.
966 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
967 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
968 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
969 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
970 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
971 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
972 a space in between the operands.
973 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
974 if one operand is 0xff and the other one si, di, bp or sp.
975 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
976 other one si, di, bp or sp.
977 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
978 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
979 type and mode attributes.
980 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
981 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
982 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
983 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
984 prefix_data16 attribute iff MODE_DF.
985 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
986 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
987 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
988 constm128_operand in length_immediate computation.
989 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
990 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
991 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
992 length_immediate attribute to 1.
993 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
994 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
995 for certain alternatives.
996 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
997 prefix_data16 attribute if MODE_V1DF.
998 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
999 length_immediate to 1.
1000 (set_got_rex64, set_rip_rex64): Remove length attribute, set
1001 length_address to 4, set mode attribute to MODE_DI.
1002 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
1003 (fxam<mode>2_i387): Set length attribute to 4.
1004 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
1005 *prefetch_3dnow_rex): Override length_address attribute.
1006 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
1007 attributes.
1008 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
1009 (constm128_operand): Removed.
1010 * config/i386/i386.c (memory_address_length): For
1011 disp && !index && !base in 64-bit mode account for SIB byte if
1012 print_operand_address can't optimize disp32 into disp32(%rip)
1013 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
1014 for fs: or gs: segment.
1015 (ix86_attr_length_immediate_default): When checking if shortform
1016 is possible, truncate immediate to the length of the non-shortened
1017 immediate.
1018 (ix86_attr_length_address_default): Ignore MEM_P operands
1019 with X constraint.
1020 (ix86_attr_length_vex_default): Only check for DImode on
1021 GENERAL_REG_P operands.
1022 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
1023 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
1024 (sse_cvttps2pi): Clear prefix_rep attribute.
1025 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
1026 attribute.
1027 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
1028 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
1029 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
1030 iff operand 2 is const_int_operand.
1031 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
1032 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
1033 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
1034 instead of vex.
1035 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
1036 prefix_data16.
1037 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
1038 prefix_data16 attribute for movlpd and movhpd instructions.
1039 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
1040 length_immediate for shufpd instruction.
1041 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
1042 (avx_cmpp<avxmodesuffixf2c><mode>3,
1043 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
1044 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
1045 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 1046 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
1047 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
1048 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
1049 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
1050 prefix_data16 attribute for the first alternative to 1.
1051 (*avx_loadlps): Override length_immediate for the first alternative.
1052 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
1053 attributes for second alternative.
1054 (*vec_concatv2sf_sse4_1): Override length_immediate and
1055 prefix_data16 attributes for second alternative.
1056 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
1057 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
1058 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
1059 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
1060 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
1061 prefix_data16 and length_immediate to 1.
1062 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
1063 to 1.
1064 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 1065 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
1066 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
1067 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
1068 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
1069 *sse4_1_pextrd): Set length_immediate to 1.
1070 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
1071 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
1072 to 1.
1073 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
1074 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
1075 length_immediate to 1 for second alternative.
1076 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
1077 prefix_extra and length_immediate attributes for the first
1078 alternative.
1079 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
1080 first alternative.
1081 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
1082 to 1 for the first and third alternative.
1083 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
1084 alternative.
1085 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
1086 attribute.
1087 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
1088 attribute to 0.
1089 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
1090 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
1091 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
1092 *avx_psign<mode>3): Set prefix_extra attribute to 1.
1093 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
1094 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
1095 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
1096 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 1097 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
1098 (ssse3_palignrti): Override length_immediate to 1.
1099 (ssse3_palignrdi): Override length_immediate to 1, override
1100 prefix_rex attribute.
f3afc8a7 1101 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
1102 (sse4a_extrqi): Override length_immediate to 2.
1103 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
1104 (sse4a_insertq): Override prefix_data16 to 0.
1105 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
1106 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
1107 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
1108 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
1109 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
1110 and length_immediate to 1.
1111 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
1112 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
1113 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
1114 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
1115 and length_immediate to 1.
1116 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
1117 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
1118 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
1119 avx_ptest256): Override prefix_extra to 1.
1120 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
1121 Override prefix_data16 and length_immediate to 1.
1122 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
1123 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
1124 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
1125 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
1126 prefix_data16 to 0 and prefix_extra to 2.
1127 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
1128 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
1129 attribute.
1130 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
1131 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
1132 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
1133 and prefix_extra to 2.
1134 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
1135 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
1136 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
1137 avx_vpermilvar<mode>3,
1138 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
1139 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
1140 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
1141 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
1142 Override prefix_extra to 1.
1143 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
1144 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
1145 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
1146 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
1147 prefix_extra and length_immediate to 1.
1148 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
1149 modrm to 0.
1150 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
1151 to 1 for the first alternative.
1152 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
1153 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
1154 cases.
1155 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
1156 *movv2sf_internal_avx, *movv2sf_internal): Override
1157 prefix_rep attribute for certain alternatives.
1158 (*mov<mode>_internal): Override prefix_rep or prefix_data16
1159 attributes for certain alternatives.
1160 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
1161 attributes for certain alternatives.
1162 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
1163 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
1164 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
1165 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
1166 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
1167 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
1168 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
1169 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
1170 length_immediate to 1 if operand 2 is const_int_operand.
1171 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 1172 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
1173 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
1174 using old 3DNOW insn rather than SSE/3DNOW_A.
1175 (mmx_emms, mmx_femms): Clear modrm attribute.
1176
0674b9d0
MJ
11772009-05-29 Martin Jambor <mjambor@suse.cz>
1178
1179 * tree-sra.c: New implementation of SRA.
1180
1181 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
1182 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
1183 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
1184 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
1185 (SRA_MAX_STRUCTURE_COUNT): Removed.
1186 (SRA_FIELD_STRUCTURE_RATIO): Removed.
1187 * doc/invoke.texi (sra-max-structure-size): Removed.
1188 (sra-field-structure-ratio): Removed.
1189
616f21df
JJ
11902009-05-29 Jakub Jelinek <jakub@redhat.com>
1191
1192 PR middle-end/40291
1193 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
1194 before expansion.
1195
da7ba240
AB
11962009-05-29 Andrey Belevantsev <abel@ispras.ru>
1197
1198 PR rtl-optimization/40101
1199 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
1200 seqno. Adjust comment.
1201 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
1202 inserting bookkeeping before a jump, the jump is not scheduled.
1203 When no positive seqno found, provide a value. Add comment.
1204
71dcd609
RG
12052009-05-29 Richard Guenther <rguenther@suse.de>
1206
1207 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
1208 short-cutting on the first component.
1209
a900ae6b
JJ
12102009-05-29 Jakub Jelinek <jakub@redhat.com>
1211
1212 PR middle-end/39958
1213 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
1214 for trees other than decls/types.
1215
821bb7f8
RG
12162009-05-29 Richard Guenther <rguenther@suse.de>
1217
1218 * tree-ssa-operands.c (get_expr_operands): Do not handle
1219 INDIRECT_REFs in the handled-component case. Remove
1220 unused get_ref_base_and_extent case.
1221 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
1222 tree_low_cst and host_integerp where possible.
1223 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
1224 codes for equivalence.
1225 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
1226
e997fb9c
DB
12272009-05-29 David Billinghurst <billingd@gcc.gnu.org>
1228
1229 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
1230 to tmake_file for i[34567]86-*-cygwin*.
1231
58195b74
JJ
12322009-05-29 Jakub Jelinek <jakub@redhat.com>
1233
1234 PR target/40017
1235 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
1236 (altivec_categorize_keyword, init_vector_keywords,
1237 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
1238 similar to bool.
1239
055df276
KT
12402009-05-29 Kai Tietz <kai.tietz@onevision.com>
1241
1242 * tree.c (handle_dll_attribute): Check if node is
1243 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
1244
f5939ef3
RE
12452009-05-29 Richard Earnshaw <rearnsha@arm.com>
1246
1247 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
1248 component.
1249 (thumb2_zero_extendqidi2): Likewise.
1250
c185de40
KK
12512009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
1252
1253 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
1254 instead of gen_movrt.
1255 * config/sh/sh.md (movrt): Remove.
1256
bf3c6caf
SE
12572009-05-28 Steve Ellcey <sje@cup.hp.com>
1258
f3afc8a7 1259 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
1260 Add -msdata, -mfused-madd, -mno-inline-float-divide,
1261 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
1262 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
1263 -msched-prefer-non-control-spec-insns,
1264 -msched-stop-bits-after-every-cycle,
1265 -msched-count-spec-in-critical-path,
1266 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 1267 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
1268 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
1269 and -msched-spec-verbose.
1270
8a66e987
JM
12712009-05-28 Joseph Myers <joseph@codesourcery.com>
1272
f3afc8a7 1273 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
1274 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
1275 error if used.
1276 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
1277
b45d2719
RG
12782009-05-28 Richard Guenther <rguenther@suse.de>
1279
1280 * tree-ssa-alias.c (ao_ref_init): New function.
1281 (ao_ref_base): Likewise.
1282 (ao_ref_base_alias_set): Likewise.
1283 (ao_ref_alias_set): Likewise.
1284 (refs_may_alias_p_1): Change signature.
1285 (refs_may_alias_p): Adjust.
1286 (refs_anti_dependent_p): Likewise.
1287 (refs_output_dependent_p): Likewise.
1288 (call_may_clobber_ref_p_1): Change signature.
1289 (call_may_clobber_ref_p): Adjust.
1290 (stmt_may_clobber_ref_p_1): New function split out from ...
1291 (stmt_may_clobber_ref_p): ... here.
1292 (maybe_skip_until): Adjust signature.
1293 (get_continuation_for_phi): Likewise.
1294 (walk_non_aliased_vuses): Likewise.
1295 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
1296 (ao_ref_init): Declare.
1297 (ao_ref_base): Likewise.
1298 (ao_ref_alias_set): Likewise.
1299 (stmt_may_clobber_ref_p_1): Likewise.
1300 (walk_non_aliased_vuses): Adjust.
1301 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
1302 (get_ref_from_reference_ops): remove.
1303 (vn_reference_lookup_2): Adjust signature.
1304 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 1305 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
1306 (vn_reference_lookup): Adjust.
1307 (vn_reference_insert): Likewise.
1308 (vn_reference_insert_pieces): Adjust signature.
1309 (visit_reference_op_call): Adjust.
1310 * tree-ssa-pre.c (get_expr_type): Simplify.
1311 (phi_translate_1): Adjust.
1312 (compute_avail): Likewise.
1313 (translate_vuse_through_block): Do not re-build trees.
1314 (value_dies_in_block_x): Likewise.
1315 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
1316 fields.
1317 (vn_reference_lookup_pieces): Adjust declaration.
1318 (vn_reference_insert_pieces): Likewise.
1319
554223b6
BK
13202009-05-28 Benjamin Kosnik <bkoz@redhat.com>
1321
1322 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
1323 with checking disabled.
1324
233215fe
DK
13252009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
1326
1327 PR target/37216
1328
1329 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
1330 macro definition for support of three-operand format aligned
1331 .comm directive in assembler on cygwin/pe/mingw target OS.
1332 * configure: Regenerate.
1333 * config.h: Regenerate.
1334
1335 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
1336 aligned form of .comm directive if -mpe-aligned-commons is in effect.
1337 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
1338
1339 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
1340 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
1341
24adb18f
IR
13422009-05-28 Ira Rosen <irar@il.ibm.com>
1343
1344 PR tree-optimization/40254
1345 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
1346 in analysis of basic blocks.
1347
2c5bfdf7
AN
13482009-05-28 Adam Nemet <anemet@caviumnetworks.com>
1349
1350 PR middle-end/33699
f3afc8a7 1351 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
1352 * target-def.h (TARGET_CONST_ANCHOR): New macro.
1353 (TARGET_INITIALIZER): Use it.
1354 * cse.c (CHEAPER): Move it up to the other macros.
1355 (insert): Rename this ...
1356 (insert_with_costs): ... to this. Add cost parameters. Update
1357 function comment.
1358 (insert): New function. Call insert_with_costs.
1359 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
1360 find_reg_offset_for_const, try_const_anchors): New functions.
1361 (cse_insn): Call try_const_anchors. Adjust cost of src_related
1362 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 1363 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
1364 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
1365
9e6aced0
AO
13662009-05-28 Alexandre Oliva <aoliva@redhat.com>
1367
1368 * tree-inline.c (remap_decls): Enable nonlocalized variables
1369 when not optimizing.
1370
89fbbe4e
AO
13712009-05-28 Alexandre Oliva <aoliva@redhat.com>
1372
1373 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
1374 Simplify other tests involving optimize.
1375
e455776a
TT
13762009-05-27 Tom Tromey <tromey@redhat.com>
1377
1378 * unwind-dw2.c (_Unwind_DebugHook): New function.
1379 (uw_install_context): Call _Unwind_DebugHook.
1380
cea32bca
TT
13812009-05-27 Tom Tromey <tromey@redhat.com>
1382
1383 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
1384
c607156f
ILT
13852009-05-27 Ian Lance Taylor <iant@google.com>
1386
1387 * Makefile.in (LINKER, LINKER_FLAGS): Define.
1388 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
1389 (ALL_LINKERFLAGS): Define.
1390 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
1391 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1392 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
1393 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1394 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
1395 $(LINKER_FOR_BUILD).
1396 (build/gcov-iov$(build_exeext)): Likewise.
1397
ec0a1343
JB
13982009-05-27 Julian Brown <julian@codesourcery.com>
1399
1400 * gcse.c (target.h): Include.
1401 (can_assign_to_reg_without_clobbers_p): Check that the target allows
1402 copy of argument to a pseudo register.
1403
ac80ba07
DN
14042009-05-27 Diego Novillo <dnovillo@google.com>
1405
1406 * tree-ssa-live.c (dump_scope_block): Document arguments.
1407 (dump_scope_blocks): Document.
1408 (debug_scope_blocks): New.
1409 * tree-flow.h (debug_scope_blocks): Declare.
1410
d1803a17
DC
14112009-05-21 Denis Chertykov <denisc@overta.ru>
1412
f3afc8a7 1413 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 1414
51fb7760 14152009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
1416
1417 * expr.c (target_align): New function. Alignment the TARGET of an
1418 assignment may be assume to have.
1419 (highest_pow2_factor_for_target): Use it instead of relying on
1420 immediate tree attributes of TARGET, not necessarily honored when
1421 intermediate bitfields are involved.
1422
634fa334
L
14232009-05-27 H.J. Lu <hongjiu.lu@intel.com>
1424
1425 PR target/40266
1426 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1427 AVX, SSE4, AES, PCLMUL and POPCNT.
1428
65332587
DN
14292009-05-27 Diego Novillo <dnovillo@google.com>
1430
1431 * tree-pretty-print.c (dump_location): New.
1432 (dump_generic_node): Call it.
1433 Factor code to handle BLOCK nodes ...
1434 (dump_block_node): ... here.
1435
3e17e31d
RAE
14362009-05-27 Rafael Avila de Espindola <espindola@google.com>
1437
f3afc8a7
UB
1438 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
1439 with it.
3e17e31d
RAE
1440 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
1441 included.
1442 * gcc-plugin.h: Include config.h and system.h.
1443 (IN_GCC): Define if not defined.
1444
5e370570
HPN
14452009-05-27 Hans-Peter Nilsson <hp@axis.com>
1446
1447 PR middle-end/40249
1448 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
1449 with -fno-inline.
1450
d000f0d9
SZ
14512009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
1452
1453 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
1454 applicable.
1455 * config/m32r/m32r.h: Ditto.
1456 * config/m32r/m32r.md: Ditto.
1457 * config/m32r/predicates.md: Ditto.
1458
82f331ff
AO
14592009-05-27 Alexandre Oliva <aoliva@redhat.com>
1460
1461 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
1462
ae2392a9
BS
14632009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
1464
1465 * doc/plugins.texi
1466 (Loading plugins): typo.
1467 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
1468 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1469 (Interacting with the GCC Garbage Collector): Added new section.
1470 (Giving information about a plugin): Added new section for
1471 PLUGIN_INFO.
ae2392a9
BS
1472 * ggc.h (ggc_register_root_tab): Added declaration.
1473 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
1474 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
1475 (register_callback): Improved comment in declaration.
f3afc8a7
UB
1476 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
1477 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
1478 (ggc_register_root_tab) Added new routine.
1479 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
1480 PLUGIN_GGC_MARKING event.
1481 * ggc-zone.c: Include plugin.h.
1482 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1483 * ggc-page.c: Include plugin.h.
1484 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1485 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
1486 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
1487 (register_callback): check lack of callbacks for
1488 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
1489 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
1490 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
1491 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1492 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
1493 dependency on plugin.h.
1494 (plugin.o): Added dependency on ggc.h...
1495
f0cfd3a8
RG
14962009-05-26 Richard Guenther <rguenther@suse.de>
1497
1498 PR middle-end/40248
1499 Revert
1500 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1501 with mismatched comparison modes.
1502
1503 * expr.c (expand_expr_real_1): Expand the operand of a
1504 VIEW_CONVERT_EXPR in its natural mode.
1505
7980bfb8
ILT
15062009-05-26 Ian Lance Taylor <iant@google.com>
1507
1508 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
1509 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
1510 (ALL_COMPILERFLAGS): Define.
1511 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
1512 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1513 (collect2$(exeext), collect2.o): Likewise.
1514 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
1515 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
1516 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
1517 (libbackend.o, intl.o, cppdefault.o): Likewise.
1518 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1519 (build/%.o): Use $(COMPILER_FOR_BUILD).
1520 (build/gen%$(build_exeext)): Likewise.
1521 (build/gcov-iov$(build_exeext)): LIkewise.
1522 * config/t-darwin (darwin.o): Use $(COMPILER).
1523 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
1524 * config/t-sol2 (sol2-c.o): Likewise.
1525 (sol2.o): Likewise.
1526 * config/t-vxworks (vxworks.o): Likewise.
1527 * config/x-darwin (host-darwin.o): Likewise.
1528 * config/x-hpux (host-hpux.o): Likewise.
1529 * config/x-linux (host-linux.o): Likewise.
1530 * config/x-solaris (host-solaris.o): Likewise.
1531 * config/alpha/x-alpha (driver-alpha.o): Likewise.
1532 * config/arm/t-arm (arm-c.o): Likewise.
1533 * config/arm/t-pe (pe.o): Likewise.
1534 * config/arm/t-wince-pe (pe.o): Likewise.
1535 * config/i386/t-cygming (winnt.o): Likewise.
1536 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
1537 * config/i386/t-cygwin (cygwin1.o): Likewise.
1538 (cygwin2.o): Likewise.
1539 * config/i386/t-i386 (i386-c.o): Likewise.
1540 * config/i386/t-interix (winnt.o): Likewise.
1541 * config/i386/t-netware (netware.o): Likewise.
1542 * config/i386/t-nwld (nwld.o): Likewise.
1543 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
1544 * config/i386/x-i386 (driver-i386.o): Likewise.
1545 * config/i386/x-cygwin (host-cygwin.o): Likewise.
1546 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
1547 * config/ia64/t-ia64 (ia64-c.o): Likewise.
1548 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
1549 * config/mips/x-native (driver-native.o): Likewise.
1550 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
1551 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
1552 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
1553 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
1554 * config/score/t-score-elf (score7.o): Likewise.
1555 (score3.o): Likewise.
1556 * config/sh/t-sh (sh-c.o): Likewise.
1557 * config/sh/t-symbian (sh-c.o): Likewise.
1558 (symbian.o): Likewise.
1559 * config/spu/t-spu-elf (spu-c.o): Likewise.
1560 * config/v850/t-v850 (v850-c.o): Likewise.
1561 * config/v850/t-v850e (v850-c.o): Likewise.
1562
23977d3c
RG
15632009-05-26 Richard Guenther <rguenther@suse.de>
1564
1565 PR tree-optimization/40122
1566 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
1567 VECTOR_CSTs if possible.
1568 (fold_gimple_assign): Likewise.
1569
3d62b895
RG
15702009-05-26 Richard Guenther <rguenther@suse.de>
1571
1572 PR middle-end/40252
1573 * fold-const.c (fold_binary): Use the correct types for building
1574 rotates.
1575
12346147
RG
15762009-05-26 Richard Guenther <rguenther@suse.de>
1577
1578 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
1579 redundant calls to merge_alias_info.
1580 (bump_vector_ptr): Likewise.
1581 * tree-ssa-copy.c (merge_alias_info): Remove.
1582 (replace_exp_1): Remove call to merge_alias_info.
1583 (propagate_tree_value): Likewise.
1584 (fini_copy_prop): Propagate points-to info.
1585 * tree-flow.h (merge_alias_info): Remove.
1586
807d5e6f
HS
15872009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1588
1589 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
1590
85057983
JH
15912009-05-25 Jan Hubicka <jh@suse.cz>
1592
1593 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1594 * cgraph.h (struct inline_summary): New filed self_wize,
1595 size_inlining_benefit, self_time and time_inlining_benefit.
1596 (struct cgraph_global_info): Replace insns by time ans size fields.
1597 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1598 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1599 (ipcp_update_callgraph): Do not touch function bodies.
1600 * ipa-inline.c: Include except.h
1601 (MAX_TIME): New constant.
1602 (overall_insns): Remove.
1603 (leaf_node_p): New.
1604 (overall_size, max_benefit): New static variables.
1605 (cgraph_estimate_time_after_inlining): New function.
1606 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1607 (cgraph_clone_inlined_nodes): Update size.
1608 (cgraph_mark_inline_edge): Update size.
1609 (cgraph_estimate_growth): Use size info.
1610 (cgraph_check_inline_limits): Check size.
1611 (cgraph_default_inline_p): Likewise.
1612 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1613 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
1614 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
1615 and times.
85057983
JH
1616 (cgraph_decide_inlining): Likewise.
1617 (cgraph_decide_inlining_incrementally): Likewise; honor
1618 PARAM_EARLY_INLINING_INSNS.
1619 (likely_eliminated_by_inlining_p): New predicate.
1620 (estimate_function_body_sizes): New function.
1621 (compute_inline_parameters): Use it.
1622 * except.c (must_not_throw_labels): New function.
1623 * except.h (must_not_throw_labels): Declare.
1624 * tree-inline.c (init_inline_once): Kill inlining_weigths
1625 * tree-ssa-structalias.c: Avoid uninitialized warning.
1626 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1627 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1628 (PARAM_INLINE_CALL_COST): Remove.
1629 (PARAM_EARLY_INLINING_INSNS): New.
1630
01df5c8a
RG
16312009-05-25 Richard Guenther <rguenther@suse.de>
1632
1633 PR tree-optimization/36327
1634 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 1635 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
1636 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1637 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
1638 for union COMPONENT_REFs.
1639 (vn_reference_lookup_3): New callback. Lookup from memset
1640 and CONSTRUCTOR assignment, translate through struct copies.
1641 (vn_reference_lookup_pieces): Make sure to not free the
1642 passed operands array. Adjust walk_non_aliased_vuses call.
1643 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
1644 make sure we do not leak memory.
1645
6b8ed145
RG
16462009-05-25 Richard Guenther <rguenther@suse.de>
1647
1648 * tree-ssa-alias.h (dump_points_to_solution): Declare.
1649 * tree-inline.c (expand_call_inline): Reset the escaped and
1650 callused solutions.
1651 * tree-ssa-structalias.c (pass_build_ealias): New.
1652 * tree-pass.h (pass_build_ealias): Declare.
1653 * passes.c (init_optimization_passes): Add PTA during
1654 early optimizations.
1655 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
1656 and CALLUSED solutions.
1657 (dump_points_to_solution): New function, split out from ...
1658 (dump_points_to_info_for): ... here.
1659 * tree-parloops.c (parallelize_loops): Reset the escaped and
1660 callused solutions.
1661
0adcf178
RO
16622009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1663
1664 PR bootstrap/40027
1665 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
1666 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
1667
12aaf609
IR
16682009-05-25 Ira Rosen <irar@il.ibm.com>
1669
1670 PR tree-optimization/40238
1671 * tree-vect-stmts.c (vect_init_vector): Insert initialization
1672 statements after basic block's labels.
1673 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
1674 to free the allocated memory.
1675
7f9a14e3
KK
16762009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
1677
1678 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
1679 return address with a USE.
1680
b842d478
RG
16812009-05-24 Richard Guenther <rguenther@suse.de>
1682
1683 PR middle-end/40233
1684 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
1685 array type from the main variant of the inner type.
1686
8db7b33f
JBG
16872009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1688
1689 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
1690 definition to bool (from int) to un-break build.
1691 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
1692
cff4e50d
PB
16932009-05-24 Paolo Bonzini <bonzini@gnu.org>
1694
1695 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
1696 discard_stmt_changes): Delete.
1697 * tree-ssa-operands.c (scb_stack): Delete.
1698 (init_ssa_operands): Do not initialize it.
1699 (fini_ssa_operands): Do not free it.
1700 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
1701
1702 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
1703 update_stmt, remove the others. Fix comments.
1704 * tree-dfa.c (optimize_stack_restore): Likewise.
1705 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
1706 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
1707 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1708 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
1709 Likewise.
1710 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1711 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
1712 (dom_opt_finalize_block): Likewise, adjusting access to
1713 stmts_to_rescan.
cff4e50d
PB
1714 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
1715 (stmts_to_rescan): Change item type to gimple.
1716 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
1717
a70d6342
IR
17182009-05-24 Ira Rosen <irar@il.ibm.com>
1719
1720 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
1721 * tree-pass.h (pass_slp_vectorize): New pass.
1722 * params.h (SLP_MAX_INSNS_IN_BB): Define.
1723 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
1724 * tree-vectorizer.c (timevar.h): Include.
1725 (user_vect_verbosity_level): Declare.
1726 (vect_location): Fix comment.
1727 (vect_set_verbosity_level): Update user_vect_verbosity_level
1728 instead of vect_verbosity_level.
1729 (vect_set_dump_settings): Add an argument. Ignore user defined
1730 verbosity if dump flags require higher level of verbosity. Print to
1731 stderr only for loop vectorization.
1732 (vectorize_loops): Update call to vect_set_dump_settings.
1733 (execute_vect_slp): New function.
1734 (gate_vect_slp): Likewise.
1735 (struct gimple_opt_pass pass_slp_vectorize): New.
1736 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
1737 access its members.
1738 (vec_info_for_bb): New function.
1739 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
1740 (VECTORIZATION_ENABLED): New macro.
1741 (SLP_ENABLED, SLP_DISABLED): Likewise.
1742 (vect_is_simple_use): Add bb_vec_info argument.
1743 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
1744 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
1745 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
1746 vect_schedule_slp, vect_analyze_slp): Likewise.
1747 (vect_analyze_stmt): Add slp_tree argument.
1748 (find_bb_location): Declare.
1749 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1750 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
1751 (vect_analyze_loop_operations, vect_analyze_loop,
1752 get_initial_def_for_induction, vect_create_epilog_for_reduction,
1753 vect_finalize_reduction, vectorizable_reduction,
1754 vectorizable_live_operation, vect_transform_loop): Likewise.
1755 * tree-data-ref.c (dr_analyze_innermost): Update comment,
1756 skip evolution analysis if analyzing a basic block.
1757 (dr_analyze_indices): Likewise.
1758 (initialize_data_dependence_relation): Skip the test whether the
1759 object is invariant for basic blocks.
1760 (compute_all_dependences): Skip dependence analysis for data
1761 references in basic blocks.
1762 (find_data_references_in_stmt): Don't fail in case of invariant
1763 access in basic block.
1764 (find_data_references_in_bb): New function.
1765 (find_data_references_in_loop): Move code to
782dc37a 1766 find_data_references_in_bb and add a call to it.
a70d6342
IR
1767 (compute_data_dependences_for_bb): New function.
1768 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
1769 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
1770 that STEP is 0.
1771 (vect_analyze_data_ref_dependence): Check for interleaving in case of
1772 unknown dependence in basic block and fail in case of dependence in
1773 basic block.
1774 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
1775 dependence instances from either loop or basic block vectorization
1776 info.
1777 (vect_compute_data_ref_alignment): Check if it is loop vectorization
1778 before calling nested_in_vect_loop_p.
1779 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
1780 dependence instances from either loop or basic block vectorization
1781 info.
1782 (vect_verify_datarefs_alignment): Likewise.
1783 (vect_enhance_data_refs_alignment): Adjust function calls.
1784 (vect_analyze_data_refs_alignment): Likewise.
1785 (vect_analyze_group_access): Fix printing. Skip different checks if
1786 DR_STEP is 0. Keep strided stores either in loop or basic block
1787 vectorization data structure. Fix indentation.
1788 (vect_analyze_data_ref_access): Fix comments, allow zero step in
1789 basic blocks.
1790 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
1791 dependence instances from either loop or basic block vectorization
1792 info.
1793 (vect_analyze_data_refs): Update comment. Call
1794 compute_data_dependences_for_bb to analyze basic blocks.
1795 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
1796 case of loop vectorization. In case of basic block vectorization use
782dc37a 1797 data-ref itself as a base.
a70d6342
IR
1798 (vect_create_data_ref_ptr): In case of basic block vectorization:
1799 don't advance the pointer, add new statements before the current
1800 statement. Adjust function calls.
1801 (vect_supportable_dr_alignment): Support only aligned accesses in
1802 basic block vectorization.
1803 * common.opt (ftree-slp-vectorize): New flag.
1804 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
1805 (vect_pattern_recog_1): Likewise.
1806 * tree-vect-stmts.c (process_use): Likewise.
1807 (vect_init_vector): Add new statements in the beginning of the basic
1808 block in case of basic block SLP.
1809 (vect_get_vec_def_for_operand): Adjust function calls.
1810 (vect_finish_stmt_generation): Likewise.
1811 (vectorizable_call): Add assert that it is loop vectorization, adjust
1812 function calls.
1813 (vectorizable_conversion, vectorizable_assignment): Likewise.
1814 (vectorizable_operation): In case of basic block SLP, take
1815 vectorization factor from statement's type and skip the relevance
1816 check. Adjust function calls.
1817 (vectorizable_type_demotion): Add assert that it is loop
1818 vectorization, adjust function calls.
1819 (vectorizable_type_promotion): Likewise.
1820 (vectorizable_store): Check for outer loop only in case of loop
1821 vectorization. Adjust function calls. For basic blocks, skip the
1822 relevance check and don't advance pointers.
1823 (vectorizable_load): Likewise.
1824 (vectorizable_condition): Add assert that it is loop vectorization,
1825 adjust function calls.
1826 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1827 that it is not reduction, get vector type, call only supported
782dc37a 1828 functions, skip loop specific parts.
a70d6342
IR
1829 (vect_transform_stmt): Check for outer loop only in case of loop
1830 vectorization.
1831 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1832 (vect_is_simple_use): Fix comment, add new argument, fix conditions
1833 for external definition.
1834 * passes.c (pass_slp_vectorize): New pass.
1835 * tree-vect-slp.c (find_bb_location): New function.
1836 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1837 check for patterns only in loops.
1838 (vect_build_slp_tree): Add argument, adjust function calls, fail in
1839 case of multiple types in basic block SLP.
1840 (vect_mark_slp_stmts_relevant): New function.
1841 (vect_supported_load_permutation_p): Fix comment.
1842 (vect_analyze_slp_instance): Add argument. In case of basic block
1843 SLP, take vectorization factor from statement's type, check that
1844 unrolling factor is 1. Adjust function call. Save SLP instance in
1845 either loop or basic block vectorization structure. Return FALSE,
1846 if SLP failed.
1847 (vect_analyze_slp): Add argument. Get strided stores groups from
1848 either loop or basic block vectorization structure. Return FALSE
1849 if basic block SLP failed.
1850 (new_bb_vec_info): New function.
1851 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1852 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1853 (vect_schedule_slp): Add argument. Get SLP instances from either
1854 loop or basic block vectorization structure. Set vectorization factor
1855 to be 1 for basic block SLP.
1856 (vect_slp_transform_bb): New function.
1857 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1858
0676c393
MM
18592009-05-23 Mark Mitchell <mark@codesourcery.com>
1860
1861 * final.c (shorten_branches): Do not align labels for jump tables.
1862 (final_scan_insn): Use JUMP_TABLE_DATA_P.
1863
94324dae
EB
18642009-05-23 Eric Botcazou <ebotcazou@adacore.com>
1865
1866 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1867 Remove outdated reference to flow.c and fix nits.
1868 * doc/gccint.texi: Tweak RTL description.
1869 * doc/rtl.texi: Likewise.
1870
92bffc14
DC
18712009-05-23 Denis Chertykov <chertykov@gmail.com>
1872
1873 * config/avr/avr.c: Change my email address.
1874 * config/avr/avr.h: Likewise.
1875 * config/avr/avr.md: Likewise.
1876 * config/avr/avr-protos.h: Likewise.
1877 * config/avr/libgcc.S: Likewise.
1878
eec9405e
TS
18792009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1880
1881 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1882 (spu_split_load, spu_split_store): Change return type to int.
1883 (spu_split_convert): Declare.
1884 * config/spu/predicates.md (spu_mem_operand): Remove.
1885 (spu_mov_operand): Update.
1886 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1887 * config/spu/spu.c (regno_aligned_for_load): Remove.
1888 (reg_aligned_for_addr, spu_expand_load): Define.
1889 (spu_expand_extv): Reimplement and handle MEM.
1890 (spu_expand_insv): Handle MEM.
1891 (spu_sched_reorder): Handle insn's with length 0.
1892 (spu_legitimate_address_p): Reimplement.
1893 (store_with_one_insn_p): Return TRUE for any mode with size
1894 larger than 16 bytes.
1895 (address_needs_split): Define.
1896 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1897 operands.
1898 (spu_convert_move): Define.
782dc37a 1899 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
1900 (spu_split_store): Change all MEM's to TImode.
1901 (spu_init_expanders): Preallocate registers that correspond to
1902 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1903 mark_reg_pointer.
1904 (spu_split_convert): Define.
1905 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1906 (_move<mode>, _movdi, _movti): Update predicate and condition.
1907 (load, store): Change to define_split.
1908 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1909 extend<mode>ti2.
1910 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1911 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1912 define_insn_and_split of lshr<mode>3.
1913 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1914 (<v>ashr<mode>3_imm): Define.
1915 (extv, extzv, insv): Allow MEM operands.
1916 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1917 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1918 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1919 (_spu_convert2): Change to define_insn_and_split and remove the
1920 corresponding define_peephole2.
1921 (stack_protect_set, stack_protect_test, stack_protect_test_si):
1922 Change predicates to memory_operand.
1923
7d31a807
MM
19242009-05-22 Mark Mitchell <mark@codesourcery.com>
1925
1926 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 1927
d021d274
MM
19282009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1929
1930 PR tree-optimization/40219
1931 * tree.c (iterative_hash_expr): Make sure the builtin function is
1932 a normal builtin function and not a front end or back end builtin
1933 before indexing into the built_in_decls array.
1934
4d7a65ea
RG
19352009-05-22 Richard Guenther <rguenther@suse.de>
1936
1937 PR middle-end/38964
1938 * alias.c (write_dependence_p): Do not use TBAA for answering
1939 anti-dependence or output-dependence.
782dc37a 1940 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
1941 (emit_pointer_definition): Remove.
1942 (emit_alias_warning): Likewise.
1943 (find_what_var_points_to): Remove TBAA pruning code.
1944 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
1945 violations.
1946 (compute_points_to_sets): Remove code computing the set of
1947 dereferenced pointers.
1948 * tree-data-ref.c (dr_may_alias_p): Properly use the split
1949 oracle for querying anti and output dependencies.
1950 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1951 if TBAA may be applied.
1952 (refs_anti_dependent_p): New function.
1953 (refs_output_dependent_p): Likewise.
1954 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1955 (refs_output_dependent_p): Likewise.
1956 * doc/tree-ssa.texi (Memory model): New section.
1957 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1958 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1959 * cfgexpand.c (expand_gimple_basic_block): Do not handle
1960 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1961 * expr.c (expand_expr_real_1): Likewise.
1962 * gimple-low.c (lower_stmt): Likewise.
1963 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1964 (dump_gimple_cdt): Remove.
1965 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1966 (gimple_size): Likewise.
1967 (walk_gimple_op): Likewise.
1968 (is_gimple_stmt): Likewise.
1969 (walk_stmt_load_store_addr_ops): Likewise.
1970 (gimple_build_cdt): Remove.
1971 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1972 * gimple.h (gimple_cdt_new_type): Remove.
1973 (gimple_cdt_new_type_ptr): Likewise.
1974 (gimple_cdt_set_new_type): Likewise.
1975 (gimple_cdt_location): Likewise.
1976 (gimple_cdt_location_ptr): Likewise.
1977 (gimple_cdt_set_location): Likewise.
1978 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1979 * tree-cfg.c (remove_useless_stmts_1): Do not handle
1980 GIMPLE_CHANGE_DYNAMIC_TYPE.
1981 (verify_types_in_gimple_stmt): Likewise.
1982 * tree-inline.c (estimate_num_insns): Likewise.
1983 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1984 (copy_decl_to_var): Likewise.
1985 (copy_result_decl_to_var): Likewise.
1986 * tree-pretty-print.c (dump_generic_node): Do not handle
1987 CHANGE_DYNAMIC_TYPE_EXPR.
1988 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1989 * tree-ssa-operands.c (get_expr_operands): Likewise.
1990 * tree-ssa-structalias.c (struct variable_info): Remove
1991 no_tbaa_pruning member.
1992 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1993 (unify_nodes): Do not copy it.
1994 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1995 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1996 (set_uids_in_ptset): Do not check it.
1997 (find_what_var_points_to): Likewise.
1998 (compute_tbaa_pruning): Remove.
1999 (compute_points_to_sets): Do not call it.
2000 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2001 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2002 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
2003 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
2004 (DECL_NO_TBAA_P): Likewise.
2005 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
2006 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
2007 (expand_omp_atomic_pipeline): Do not set it.
2008 * print-tree.c (print_node): Do not dump it.
2009 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2010 redundant check.
2011
83a6ac60
VM
20122009-05-22 Vladimir Makarov <vmakarov@redhat.com>
2013
2014 PR target/39856
2015 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
2016 for clobber.
2017
fe2978fb
MM
20182009-05-22 Mark Mitchell <mark@codesourcery.com>
2019
2020 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
2021 non-external.
2022
134ef638
BE
20232009-05-22 Ben Elliston <bje@au.ibm.com>
2024
2025 * Makefile.in (bversion.h, s-bversion): New targets.
2026 (TOPLEV_H): Add bversion.h.
2027 * toplev.h: Include "bversion.h".
2028 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
2029 the __format__ attribute only if compiling with the same version
2030 of GCC as the sources (the "build version").
2031
52fc669d
BE
20322009-05-22 Ben Elliston <bje@au.ibm.com>
2033
2034 * c-format.c (handle_format_attribute): Fix comment typo.
2035
583ca921
SE
20362009-05-21 Steve Ellcey <sje@cup.hp.com>
2037
2038 PR target/37846
2039 * config/ia64/ia64.opt (mfused-madd): New.
2040 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
2041 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
2042 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
2043 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
2044 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
2045 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
2046 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
2047 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
2048 instruction if !TARGET_FUSED_MADD.
2049 (fpma, fpms): Remove colon from name.
2050
150e3929
RG
20512009-05-22 Richard Guenther <rguenther@suse.de>
2052
2053 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
2054 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
2055 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2056 TARGET_MEM_REF.
2057 (create_expression_by_pieces): Only convert if necessary.
2058 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
2059 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
2060
9a2b090c
AN
20612009-05-21 Adam Nemet <anemet@caviumnetworks.com>
2062
2063 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
2064 regular pattern from a template and rename it ...
2065 (*extzv_truncsi_exts): ... to this.
2066
33b92c9d
RG
20672009-05-21 Richard Guenther <rguenther@suse.de>
2068
2069 * cgraph.h (struct cgraph_node): Remove inline_decl member.
2070 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
2071 (cgraph_default_inline_p): Likewise.
2072 (cgraph_decide_inlining_incrementally): Likewise.
2073
cabf85c3
L
20742009-05-21 H.J. Lu <hongjiu.lu@intel.com>
2075 Uros Bizjak <ubizjak@gmail.com>
2076
2077 * config/i386/cpuid.h (bit_MOVBE): New.
2078
2079 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2080
2081 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
2082 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
2083 (ix86_handle_option): Handle OPT_mmovbe.
2084 (ix86_target_string): Add -mmovbe.
2085 (pta_flags): Add PTA_MOVBE.
2086 (processor_alias_table): Add PTA_MOVBE to "atom".
2087 (override_options): Handle PTA_MOVBE.
2088
2089 * config/i386/i386.h (TARGET_MOVBE): New.
2090
2091 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
2092 (*bswapsi_movbe): New.
2093 (*bswapdi_movbe): Likewise.
2094 (bswapdi2): Renamed to ...
2095 (*bswapdi_1): This.
2096 (bswapdi2): New expander.
2097
2098 * config/i386/i386.opt (mmovbe): New.
2099
2100 * doc/invoke.texi: Document -mmovbe.
2101
9fefa0aa
TG
21022009-05-21 Taras Glek <tglek@mozilla.com>
2103
2104 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
2105 * gcc-plugin.h (plugin_init): Updated signature.
2106 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
2107 * doc/plugins.texi (plugin_init): Updated documention to reflect
2108 API change.
9fefa0aa
TG
2109 * doc/plugins.texi (plugin_name_args): Added to documention.
2110
1ea9fe56
MM
21112009-05-21 Mark Mitchell <mark@codesourcery.com>
2112
2113 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
2114 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
2115
52f84254
SZ
21162009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
2117
2118 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
2119 JUMP_TABLE_DATA_P predicates where applicable.
2120 * config/i386/predicates.md: Ditto.
2121 * config/i386/sse.md: Ditto.
2122
a952487c
JJ
21232009-05-21 Jakub Jelinek <jakub@redhat.com>
2124
93cac287
JJ
2125 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
2126 operand2 -128 override length_immediate attribute to 1.
2127 * config/i386/predicates.md (constm128_operand): New predicate.
2128
a952487c
JJ
2129 * config/i386/i386.c (memory_address_length): Handle %r12
2130 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
2131 also check REGNO.
2132 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
2133 mode look through optional ZERO_EXTEND and SUBREG.
2134 * config/i386/i386.md (R12_REG): New define_constant.
2135 (prefix_data16): For sse unit set also for MODE_TI insns.
2136 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
2137 insns set if operand 1 is ext_QIreg_operand.
2138 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
2139 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
2140 immediate.
2141 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
2142 mode from MODE_DI to MODE_SI.
2143 (movdi_1_rex64): Override modrm and length_immediate attributes
2144 only for movabs (TYPE_IMOV, alternative 2).
2145 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
2146 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2147 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2148 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2149 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
2150 prefix_rex attribute if DImode.
2151 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
2152 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
2153 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
2154 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
2155 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
2156 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
2157 Likewise. For TYPE_IMOV clear length_immediate attribute.
2158 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
2159 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
2160 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
2161 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
2162 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
2163 or one operand TYPE_ISHIFT.
2164 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
2165 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
2166 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
2167 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
2168 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
2169 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
2170 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
2171 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
2172 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
2173 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
2174 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
2175 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
2176 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
2177 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
2178 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
2179 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
2180 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
2181 set mode attribute, don't override length attribute.
2182 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
2183 to 1.
2184 (return_internal_long): Set length attribute to 2 instead of 1.
2185 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
2186 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
2187 prefix_rex attribute.
782dc37a
UB
2188 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
2189 New predicates.
2190 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 2191
64af62c2
RR
21922009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2193
2194 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
2195
c166b898
ILT
21962009-05-20 Ian Lance Taylor <iant@google.com>
2197
2198 * tree.c (build_tree_list_vec_stat): New function.
2199 (ctor_to_vec): New function.
2200 (build_nt_call_vec): New function.
2201 (build_call_array): Change args to be a const pointer.
2202 (build_call_vec): New function.
2203 * tree.h (build_nt_call_vec): Declare.
2204 (build_tree_list_vec_stat): Declare.
2205 (build_tree_list_vec): Define.
2206 (build_call_array): Update declaration.
2207 (build_call_vec): Declare.
2208 (ctor_to_vec): Declare.
2209 * c-common.c (tree_vector_cache): New static variable.
2210 (make_tree_vector): New function.
2211 (release_tree_vector): New function.
2212 (make_tree_vector_single): New function.
2213 (make_tree_vector_copy): New function.
2214 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
2215 (make_tree_vector_single, make_tree_vector_copy): Declare.
2216 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
2217 (c_parser_expr_list): Don't manage cache here, instead call
2218 make_tree_vector.
2219 (c_parser_release_expr_list): Remove static function.
2220 (c_parser_vec_to_tree_list): Remove static function.
2221 (c_parser_attributes): Call build_tree_list_vec instead of
2222 c_parser_vec_to_tree_list. Call release_tree_vector instead of
2223 c_parser_release_expr_list.
2224 (c_parser_postfix_expression_after_primary): Likewise.
2225 (c_parser_objc_keywordexpr): Likewise.
2226
40449a90
SL
22272009-05-20 Sandra Loosemore <sandra@codesourcery.com>
2228
2229 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
2230 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
2231 TARGET_CONVERT_TO_TYPE.
2232 * hooks.c (hook_tree_const_tree_null): Define.
2233 * hooks.h (hook_tree_const_tree_null): Declare.
2234 * target.h (struct gcc_target): Add invalid_parameter_type,
2235 invalid_return_type, promoted_type, and convert_to_type fields.
2236 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
2237 (TARGET_INVALID_RETURN_TYPE): Define.
2238 (TARGET_PROMOTED_TYPE): Define.
2239 (TARGET_CONVERT_TO_TYPE): Define.
2240 (TARGET_INITIALIZER): Update for new fields.
2241 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
2242 (grokparms): Check targetm.invalid_parameter_type.
2243 * c-typeck.c (default_conversion): Check targetm.promoted_type.
2244 * c-convert.c (convert): Check targetm.convert_to_type.
2245
642d97ff
AN
22462009-05-20 Adam Nemet <anemet@caviumnetworks.com>
2247
2248 * config/mips/mips.md (*extenddi_truncate<mode>,
2249 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
2250 defintions.
2251 (*extendhi_truncateqi): New define_insn_and_sptit.
2252
776248b8
JJ
22532009-05-20 Jakub Jelinek <jakub@redhat.com>
2254
2255 PR middle-end/40204
2256 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 2257 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 2258
d98e8686
EB
22592009-05-20 Eric Botcazou <ebotcazou@adacore.com>
2260
2261 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
2262 the operand of VIEW_CONVERT_EXPR.
2263
37c50435
L
22642009-05-20 H.J. Lu <hongjiu.lu@intel.com>
2265
2266 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 2267 extended family and model for Intel processors. Support Intel Atom.
37c50435 2268
dbb6088f
OH
22692009-05-20 Olivier Hainque <hainque@adacore.com>
2270
2271 * gstab.h (stab_code_type): Define, to be used instead of the
2272 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
2273 notice.
2274 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
2275 occurrences by stab_code_type.
2276 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
2277
7ec49257
MJ
22782009-05-20 Martin Jambor <mjambor@suse.cz>
2279
2280 * tree-flow.h (insert_edge_copies_seq): Undeclare.
2281 (sra_insert_before): Likewise.
2282 (sra_insert_after): Likewise.
2283 (sra_init_cache): Likewise.
2284 (sra_type_can_be_decomposed_p): Likewise.
2285 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
2286 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
2287 (sra_insert_before): Likewise.
2288 (sra_insert_after): Likewise.
2289 (sra_init_cache): Likewise.
2290 (insert_edge_copies_seq): Made static and moved upwards.
2291
2292 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
2293 case.
2294
2295 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
2296
2297 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
2298 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
2299 simple copies.
2300
0328ae4d
RG
23012009-05-20 Richard Guenther <rguenther@suse.de>
2302
2303 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2304 with mismatched comparison modes.
2305
a7994a57 23062009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 2307
a7994a57 2308 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
2309 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
2310 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
2311 with shifts for Thumb2.
2312 (orsi_notsi): New for orn.
2313 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
2314 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
2315 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
2316 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
2317 Don't invert remainder for IOR.
a7994a57 2318
e36dc339
ZD
23192009-05-19 Zdenek Dvorak <ook@ucw.cz>
2320
2321 PR tree-optimization/40087
2322 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
2323 number_of_iterations_ne): Rename never_infinite argument.
2324 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
2325 number_of_iterations_le): Handle pointer-type ivs when
2326 exit_must_be_taken is false.
2327 (number_of_iterations_cond): Do not always assume that
2328 exit_must_be_taken if the control variable is a pointer.
2329
5cfd5d9b
AP
23302009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2331
2332 * c-typeck.c (build_binary_op): Allow % on integal vectors.
2333 * doc/extend.texi (Vector Extension): Document that % is allowed too.
2334
2f1c7156
L
23352009-05-19 H.J. Lu <hongjiu.lu@intel.com>
2336
2337 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
2338 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
2339
7bb27074
MLI
23402009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2341
2342 PR c/40172
2343 * c.opt (Wlogical-op): Disabled by default.
2344 * c-opt (c_common_post_options): Do not enable Wlogical-op with
2345 Wextra.
2346 * doc/invoke.texi (Wlogical-op): Likewise.
2347
5aefc6a0
EB
23482009-05-19 Eric Botcazou <ebotcazou@adacore.com>
2349
2350 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
2351 into CASE_CONVERT.
2352 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
2353 Propagate the type of the first operand.
2354 <ASSERT_EXPR>: Simplify.
2355 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
2356 Rewrite using the RHS code as discriminant.
2357 <NOP_EXPR>: Turn into CASE_CONVERT.
2358 <PLUS_EXPR>: Propagate the type of the first operand.
2359
f3a83111
SE
23602009-05-19 Steve Ellcey <sje@cup.hp.com>
2361
2362 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
2363 (ia64_dconst_0_375): New.
2364 * config/ia64/ia64.c (ia64_override_options): Remove
2365 -minline-sqrt-min-latency warning.
2366 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
2367 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
2368 * config/ia64/ia64.md (*sqrt_approx): Remove.
2369 (sqrtsf2): Remove #if 0.
2370 (sqrtsf2_internal_thr): Rewrite and move to div.md.
2371 (sqrtdf): Remove assert.
2372 (sqrtdf2_internal_thr): Rewrite and move to div.md.
2373 (sqrtxf2): Remove #if 0.
2374 (sqrtxf2_internal_thr): Rewrite and move to div.md.
2375 * div.md (sqrt_approx_rf): New.
2376 (sqrtsf2_internal_thr): New implementation.
2377 (sqrtsf2_internal_lat): New.
2378 (sqrtdf2_internal_thr: New implementation.
2379 (sqrtxf2_internal): New implementation.
2380
1ffc7157
FXC
23812009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
2382 Hans-Peter Nilsson <hp@axis.com>
2383
2384 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
2385 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
2386 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
2387 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
2388 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
2389 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
2390 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
2391 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
2392 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
2393 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
2394 * c-common.c: ...from here.
2395
db91d9ef
MLI
23962009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2397
f3afc8a7 2398 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 2399
bbb9d91f
KG
24002009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2401
2402 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
2403
ce883f54
BE
24042009-05-19 Ben Elliston <bje@au.ibm.com>
2405
2406 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
2407 assignments with memcpy calls.
2408 (add_fdes): Likewise.
2409 (binary_search_unencoded_fdes): Likewise.
2410 (linear_search_fdes): Eliminate type puns.
2411
377f099a
RG
24122009-05-19 Richard Guenther <rguenther@suse.de>
2413
2414 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
2415 not falsely claim to have propagated into all uses.
2416
848bc769
BE
24172009-05-19 Ben Elliston <bje@au.ibm.com>
2418
2419 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
2420 version to v3.0.
2421
1bb99877
KK
24222009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
2423
2424 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
2425 * config/sh/sh.c (sh_legitimate_address_p): Make static.
2426 (TARGET_LEGITIMATE_ADDRESS_P): New.
2427 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2428 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2429
82725547
DS
24302009-05-18 Dodji Seketeli <dodji@redhat.com>
2431
2432 PR debug/40109
2433 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
2434 child of the containing namespace's DIE.
2435
f6a1e430
AN
24362009-05-18 Adam Nemet <anemet@caviumnetworks.com>
2437
2438 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
2439 *zero_extendhi_truncqi): Move after the zero_extend patterns.
2440 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
2441 extend patterns.
2442
6a90d232
L
24432009-05-18 H.J. Lu <hongjiu.lu@intel.com>
2444
2445 PR target/39942
2446 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
2447 gen_align with gen_pad.
2448 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
2449 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
2450
2451 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
2452 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
2453
2454 * config/i386/i386.md (align): Renamed to ...
2455 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
2456 ASM_OUTPUT_MAX_SKIP_PAD.
2457
c4406f74
AS
24582009-05-18 Andreas Schwab <schwab@linux-m68k.org>
2459
06555043
AS
2460 * config.gcc: Fix variable syntax.
2461
c4406f74
AS
2462 PR target/39531
2463 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
2464 before calling exact_log2.
2465 (output_iorsi3): Likewise.
2466 (output_xorsi3): Likewise.
2467
99052692
KK
24682009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
2469
2470 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
2471 for the none zero constant operand except for EQ and NE
2472 comprisons even when the first operand is R0.
2473
f4aa3848
AK
24742009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
2475
2476 * config/s390/2064.md: Remove trailing whitespaces.
2477 * config/s390/2084.md: Likewise.
2478 * config/s390/constraints.md: Likewise.
2479 * config/s390/fixdfdi.h: Likewise.
2480 * config/s390/libgcc-glibc.ver: Likewise.
2481 * config/s390/s390-modes.def: Likewise.
2482 * config/s390/s390-protos.h: Likewise.
2483 * config/s390/s390.c: Likewise.
2484 * config/s390/s390.h: Likewise.
2485 * config/s390/s390.md: Likewise.
2486 * config/s390/tpf-unwind.h: Likewise.
2487
ab7256e4
MK
24882009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2489
2490 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
2491
75df395f
MK
24922009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2493
2494 M68K TLS support.
2495 * configure.ac (m68k-*-*): Check if binutils support TLS.
2496 * configure: Regenerate.
2497 * config/m68k/predicates.md (symbolic_operand): Extend comment.
2498 * config/m68k/constraints.md (Cu): New constraint.
2499 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
2500 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
2501 (movsi): Handle TLS symbols.
2502 (addsi3_5200): Handle XTLS symbols, indent.
2503 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
2504 (m68k_tls_reference_p): Declare.
2505 (m68k_legitimize_address): Declare.
2506 (m68k_unwrap_symbol): Declare.
2507 * config/m68k/m68k.opt (mxtls): New option.
2508 * config/m68k/m68k.c (ggc.h): Include.
2509 (m68k_output_dwarf_dtprel): Implement hook.
2510 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2511 (m68k_expand_prologue): Load GOT pointer when function needs it.
2512 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
2513 (m68k_legitimate_constant_address_p): Same.
2514 (m68k_decompose_address): Handle TLS references.
2515 (m68k_get_gp): New static function.
2516 (enum m68k_reloc): New contants.
2517 (TLS_RELOC_P): New macro.
2518 (m68k_wrap_symbol): New static function.
2519 (m68k_unwrap_symbol): New function.
2520 (m68k_final_prescan_insn_1): New static function.
2521 (m68k_final_prescan_insn): New function.
2522 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
2523 functions.
2524 (legitimize_pic_address): Handle TLS references..
2525 (m68k_tls_get_addr, m68k_get_tls_get_addr)
2526 (m68k_libcall_value_in_a0_p)
2527 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
2528 (m68k_call_m68k_read_tp): Helper variables and functions for ...
2529 (m68k_legitimize_tls_address): Handle TLS references.
2530 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
2531 New functions.
2532 (m68k_legitimize_address): Handle TLS symbols.
2533 (m68k_get_reloc_decoration): New static function.
2534 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
2535 UNSPEC_RELOC32.
2536 (m68k_output_dwarf_dtprel): Implement hook.
2537 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
2538 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
2539 m68k_call_* routines.
2540 (sched_attr_op_type): Handle TLS symbols.
2541 (gt-m68k.h): Include.
2542 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
2543 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
2544
8b75fc9b
MJ
25452009-05-18 Martin Jambor <mjambor@suse.cz>
2546
2547 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
2548 (visit_store_addr_for_mod_analysis): New function.
2549 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
2550 (determine_cst_member_ptr): Use gimple_assign_single_p.
2551 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
2552 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
2553 operands. Don't check number of operands of a NOP_EXPR.
2554
f133d4a2
EF
25552009-05-18 Eric Fisher <joefoxreal@gmail.com>
2556
2557 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
2558
ae8af500
L
25592009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
2560
2561 PR c/40172
2562 * c-common.c (warn_logical_operator): Don't warn if one of
2563 expression isn't always true or false.
2564
25e8fde8
KT
25652009-05-17 Kai Tietz <kai.tietz@onevision.com>
2566
ae8af500
L
2567 * config/i386/biarch32.h: New file.
2568 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 2569
ef67af22
AN
25702009-05-17 Adam Nemet <anemet@caviumnetworks.com>
2571
2572 * config/mips/mips.md (*zero_extend<mode>_trunchi,
2573 *zero_extend<mode>_truncqi): Merge these into ...
2574 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
2575 Name the pattern following this as *zero_extendhi_truncqi.
2576
e2d87023
BL
25772009-05-16 Brad Lucier <lucier@math.purdue.edu>
2578
2579 PR middle-end/39301
2580 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
2581 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
2582 (output_info): Make field HOST_WIDEST_INT.
2583 (print_statistics): Use HOST_WIDEST_INT_PRINT.
2584 (dump_bitmat_statistics): Same.
2585
428ddbf0
FXC
25862009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
2587
2588 * config.gcc (use_gcc_stdint): Set to wrap.
2589 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2590 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2591 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2592 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2593 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2594 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2595 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2596 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2597
1ab8a8c2
JM
25982009-05-16 Joseph Myers <joseph@codesourcery.com>
2599
2600 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
2601 tune_64.
2602 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
2603 Move definitions earlier.
2604 (OPT_ARCH64, OPT_ARCH32): Define.
2605 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
2606 and tune_64.
2607
70544f44
RE
26082009-05-16 Richard Earnshaw <rearnsha@arm.com>
2609
2610 PR target/40153
2611 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
2612 implies.
2613
6241ded1
RE
26142009-05-16 Richard Earnshaw <rearnsha@arm.com>
2615
2616 * arm.md (movdi2): Copy non-reg values to DImode registers.
2617
a99c6711
JJ
26182009-05-16 Jakub Jelinek <jakub@redhat.com>
2619
40a8f07a
JJ
2620 PR target/39942
2621 * final.c (label_to_max_skip): New function.
2622 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
2623 CODE_LABEL_NUMBER <= max_labelno.
2624 * output.h (label_to_max_skip): New prototype.
2625 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
2626 (ix86_avoid_jump_mispredicts): ... this. Don't define if
2627 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
2628 Handle CODE_LABELs with >= 16 byte alignment or with
2629 max_skip == (1 << align) - 1.
2630 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
2631 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
2632
a99c6711
JJ
2633 PR target/39942
2634 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
2635 .p2align 3 if MAX_SKIP is smaller than 7.
2636 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2637
7e5487a2
ILT
26382009-05-15 Ian Lance Taylor <iant@google.com>
2639
2640 * alias.c (struct alias_set_entry_d): Rename from struct
2641 alias_set_entry. Change all uses.
2642 * except.c (struct call_site_record_d): Rename from struct
2643 call_site_record. Change all uses.
2644 * except.h (struct eh_region_d): Rename from struct eh_region.
2645 Change all uses.
2646 * gcse.c (struct hash_table_d): Rename from struct hash_table.
2647 Change all uses.
2648 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
2649 ivtype_map_elt. Change all uses.
2650 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
2651 Change all uses.
2652 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
2653 * graphite.h (struct name_tree_d): Rename from struct name_tree.
2654 Change all uses.
2655 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
2656 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
2657 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
2658 * optabs.h (struct optab_d): Rename from struct optab. Change all
2659 uses.
2660 (struct convert_optab_d): Rename from struct convert_optab.
2661 Change all uses.
2662 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
2663 ipa_opt_pass. Change all uses.
2664 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
2665 all uses.
2666
2667 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
2668 defined as a typedef.
2669 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
2670 defined as a tag.
2671
a243fb4a
MLI
26722009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2673
2674 PR 16302
2675 * fold-const.c (make_range,build_range_check,merge_ranges): Move
2676 declaration to...
2677 (merge_ranges): Returns bool.
2678 * tree.h (make_range): .. to here.
2679 (build_range_check): Likewise.
2680 (merge_ranges): Likewise. Renamed from merge_ranges.
2681 * c-typeck.c (parser_build_binary_op): Update calls to
2682 warn_logical_operator.
2683 * c-common.c (warn_logical_operator): Add new warning.
2684 * c-common.h (warn_logical_operator): Update declaration.
2685
1b53c5f3
MLI
26862009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2687
782dc37a 2688 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 2689
c128599a
KG
26902009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2691
f9bab007
KG
2692 * doc/install.texi: Document MPC requirements, flags etc.
2693
c128599a
KG
2694 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
2695 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
2696 Evaluate constant arguments.
2697 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
2698 (fold_builtin_1): Likewise, also evaluate constant arguments.
2699 Remove superfluous break.
2700 (do_mpc_ckconv): New.
2701 * real.h: Include mpc.h.
2702 * toplev.c (print_version): Output MPC version info if available.
2703
d33e4b70
SL
27042009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2705
782dc37a 2706 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 2707
a02ab464
L
27082009-05-15 H.J. Lu <hongjiu.lu@intel.com>
2709
2710 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
2711 only once.
2712
796bda22
JH
27132009-05-15 Jan Hubicka <jh@suse.cz>
2714
2715 * doc/invoke.texi (max-early-inliner-iterations): New flag.
2716 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
2717 (try_inline): Fix return value.
2718 (cgraph_decide_inlining_incrementally): Honor new value.
2719 (cgraph_early_inlining): Handle indirect inlining.
2720 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
2721
d88e5c37
JH
27222009-05-15 Jan Hubicka <jh@suse.cz>
2723
2724 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2725 * cgraphunit.c (cgraph_finalize_function): Set it.
2726 (cgraph_expand_function): Use it.
2727
ae63687c
SL
27282009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2729
2730 * real.c (encode_ieee_half): Define.
2731 (decode_ieee_half): Define.
2732 (ieee_half_format): Define.
2733 (arm_half_format): Define.
2734 * real.h (ieee_half_format): Declare.
2735 (arm_half_format): Declare.
2736
1bd74ad9
SL
27372009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2738
2739 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
2740 swapped, and reversed optabs exist before trying to use them.
2741
dc34db56
PB
27422009-05-15 Paul Brook <paul@codesourcery.com>
2743 Sandra Loosemore <sandra@codesourcery.com>
2744
dc34db56
PB
2745 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
2746 loads. Allow PRE_DEC.
2747 (output_move_neon): Handle PRE_DEC.
2748 (arm_print_operand): Add 'A' for neon structure loads.
2749 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
2750 * config/arm/neon.md (neon_mov): Update comment.
2751 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
2752 calls.
2753 (Um): New constraint.
2754
1d405d7b
JH
27552009-05-15 Jan Hubicka <jh@suse.cz>
2756
2757 Revert the following patch until testsuite fallout is fixed:
2758 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2759 * cgraph.h (struct inline_summary): New filed self_wize,
2760 size_inlining_benefit, self_time and time_inlining_benefit.
2761 (struct cgraph_global_info): Replace insns by time ans size fields.
2762 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2763 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2764 (ipcp_update_callgraph): Do not touch function bodies.
2765 * ipa-inline.c: Include except.h
782dc37a 2766 (MAX_TIME): New constant.
1d405d7b
JH
2767 (overall_insns): Remove
2768 (overall_size, max_benefit): New static variables.
2769 (cgraph_estimate_time_after_inlining): New function.
2770 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2771 (cgraph_clone_inlined_nodes): Update size.
2772 (cgraph_mark_inline_edge): Update size.
2773 (cgraph_estimate_growth): Use size info.
2774 (cgraph_check_inline_limits): Check size.
2775 (cgraph_default_inline_p): Likewise.
2776 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2777 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2778 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2779 and times.
1d405d7b 2780 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2781 (cgraph_decide_inlining_incrementally): Likewise; honor
2782 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
2783 (likely_eliminated_by_inlining_p): New predicate.
2784 (estimate_function_body_sizes): New function.
2785 (compute_inline_parameters): Use it.
2786 * except.c (must_not_throw_labels): New function.
2787 * except.h (must_not_throw_labels): Declare.
2788 * tree-inline.c (init_inline_once): Kill inlining_weigths
2789 * tree-ssa-structalias.c: Avoid uninitialized warning.
2790 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2791 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2792 (PARAM_INLINE_CALL_COST): Remove.
2793 (PARAM_EARLY_INLINING_INSNS): New.
2794
7ffa47ca
RG
27952009-05-15 Richard Guenther <rguenther@suse.de>
2796
2797 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
2798 not TODO_update_ssa.
2799
828552ed
RG
28002009-05-15 Richard Guenther <rguenther@suse.de>
2801
2802 PR tree-optimization/39999
2803 * gimple.h (gimple_expr_type): Use the expression type looking
2804 through useless conversions.
2805 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2806 (vn_nary_op_insert_stmt): Likewise.
2807 (simplify_binary_expression): Likewise.
2808
248fc9f3
RG
28092009-05-15 Richard Guenther <rguenther@suse.de>
2810
2811 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2812 New options, enabled by default.
2813 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2814 Document.
2815 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2816 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2817 * tree-ssa-structalias.c (gate_tree_pta): New function.
2818 (pass_build_alias): Use it.
2819
16b29cc4
JM
28202009-05-15 Joseph Myers <joseph@codesourcery.com>
2821
2822 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2823 recurse on an invariant address if a conversion from a pointer
2824 type to a wider integer type is involved.
2825
125cae84
JH
28262009-05-15 Jan Hubicka <jh@suse.cz>
2827
2828 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2829 * cgraph.h (struct inline_summary): New filed self_wize,
2830 size_inlining_benefit, self_time and time_inlining_benefit.
2831 (struct cgraph_global_info): Replace insns by time ans size fields.
2832 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2833 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2834 (ipcp_update_callgraph): Do not touch function bodies.
2835 * ipa-inline.c: Include except.h
782dc37a 2836 (MAX_TIME): New constant.
125cae84
JH
2837 (overall_insns): Remove
2838 (overall_size, max_benefit): New static variables.
2839 (cgraph_estimate_time_after_inlining): New function.
2840 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2841 (cgraph_clone_inlined_nodes): Update size.
2842 (cgraph_mark_inline_edge): Update size.
2843 (cgraph_estimate_growth): Use size info.
2844 (cgraph_check_inline_limits): Check size.
2845 (cgraph_default_inline_p): Likewise.
2846 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2847 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2848 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2849 and times.
125cae84 2850 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2851 (cgraph_decide_inlining_incrementally): Likewise; honor
2852 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
2853 (likely_eliminated_by_inlining_p): New predicate.
2854 (estimate_function_body_sizes): New function.
2855 (compute_inline_parameters): Use it.
2856 * except.c (must_not_throw_labels): New function.
2857 * except.h (must_not_throw_labels): Declare.
2858 * tree-inline.c (init_inline_once): Kill inlining_weigths
2859 * tree-ssa-structalias.c: Avoid uninitialized warning.
2860 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2861 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2862 (PARAM_INLINE_CALL_COST): Remove.
2863 (PARAM_EARLY_INLINING_INSNS): New.
2864 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2865 (inline-call-cost): Remove.
2866 (early-inlining-insns): New.
2867
84fb43a1
EB
28682009-05-15 Eric Botcazou <ebotcazou@adacore.com>
2869
2870 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
2871 for bounds.
2872 (print_int_cst_bounds_in_octal_p): Likewise.
2873 (dbxout_type): Adjust calls to above functions. Be prepared to deal
2874 with subtypes.
2875 * dwarf2out.c (base_type_die): Likewise.
2876 (is_subrange_type): Delete.
2877 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
2878 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
2879 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
2880 if the destination type is boolean.
84fb43a1
EB
2881 (build_range_check): Do not special-case subtypes.
2882 (fold_sign_changed_comparison): Likewise.
2883 (fold_unary): Likewise.
2884 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2885 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2886 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
2887 * tree.c (subrange_type_for_debug_p): New predicate based on the
2888 former is_subrange_type.
84fb43a1
EB
2889 * tree.h (subrange_type_for_debug_p): Declare.
2890 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2891 (convert_affine_scev): Remove call to above function.
2892 (chrec_convert_aggressive): Likewise.
2893 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2894 false for conversions involving subtypes.
2895 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2896 (vrp_val_min): Likewise.
2897 (needs_overflow_infinity): Likewise.
2898 (extract_range_from_unary_expr): Likewise.
2899
331d9186
PB
29002009-05-15 Paolo Bonzini <bonzini@gnu.org>
2901
e9351712
L
2902 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2903 * config/frv/frv.c: Likewise.
2904 * config/s390/s390.c: Likewise.
2905 * config/sparc/sparc.h: Likewise.
2906 * config/i386/i386.h: Likewise.
2907 * config/i386/i386.c: Likewise.
2908 * config/crx/crx.c: Likewise.
2909 * config/m68hc11/m68hc11.h: Likewise.
2910 * config/iq2000/iq2000.c: Likewise.
2911 * config/mn10300/mn10300.h: Likewise.
2912 * config/mn10300/mn10300.c: Likewise.
2913 * config/m68k/m68k.c: Likewise.
2914 * config/rs6000/rs6000.c: Likewise.
2915 * config/rs6000/xcoff.h: Likewise.
2916 * config/rs6000/linux64.h: Likewise.
2917 * config/rs6000/sysv4.h: Likewise.
2918 * config/score/score3.c: Likewise.
2919 * config/score/score7.c: Likewise.
2920 * config/score/score.c: Likewise.
2921 * config/arm/arm.md: Likewise.
2922 * config/mips/mips.c: Likewise.
2923 * config/mips/mips.md: Likewise.
2924 * config/bfin/bfin.h: Likewise.
2925 * config/pa/pa.c: Likewise.
2926 * config/pa/constraints.md: Likewise.
2927
2928 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2929 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2930 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 2931
09639a83
ILT
29322009-05-14 Ian Lance Taylor <iant@google.com>
2933
2934 * passes.c (finish_optimization_passes): Change i to int.
2935 * plugin.c (plugins_active_p): Change event to int.
2936 (dump_active_plugins): Likewise.
2937 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2938 Add cast.
2939 * tree.c (tree_range_check_failed): Change c to unsigned int.
2940 (omp_clause_range_check_failed): Likewise.
2941 (build_common_builtin_nodes): Change mode to int. Add cast.
2942 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2943 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2944
2945 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2946 ++ or -- with a variable of enum type.
2947
c04a56bf
SB
29482009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2949
2950 PR driver/40144
2951 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2952
237ee620
SB
29532009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2954
2955 * store-motion.c: Do not include params.h
2956 * Makefile.in: Fix dependencies for various files.
2957
1154c4fa
SB
29582009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2959
2960 * auto-inc-dec.c: Fix pass description, remove apparent
2961 accidental duplication.
2962
61c27353
L
29632009-05-14 H.J. Lu <hongjiu.lu@intel.com>
2964
2965 PR middle-end/40147
2966 * ipa-utils.h (memory_identifier_string): Moved to ...
2967 * tree.h (memory_identifier_string): Here. Add GTY(()).
2968
c6c3dba9
PB
29692009-05-14 Paolo Bonzini <bonzini@gnu.org>
2970
2971 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2972 in the former documentation of...
2973 (GO_IF_LEGITIMATE_ADDRESS): ... this.
2974 * ira-conflicts.c (get_dup_num): Use address_operand.
2975 * targhooks.c (default_legitimate_address_p): New.
2976 * targhooks.h (default_legitimate_address_p): New.
2977 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2978 Call hook.
2979 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2980 * target.h (struct target): Add legitimate_address_p.
2981 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2982 (TARGET_INITIALIZER): Include it.
2983
2984 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2985 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2986 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2987 (TARGET_LEGITIMATE_ADDRESS_P): New.
2988
2989 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2990 (REG_OK_STRICT_P): Delete.
2991 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2992 (frv_legitimate_address_p_1): ... this.
2993 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2994 (frv_legitimate_address_p_1): ... the renamed old
2995 frv_legitimate_address_p.
2996 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2997 (TARGET_LEGITIMATE_ADDRESS_P): New.
2998
2999 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3000 * config/s390/s390-protos.h (legitimate_address_p): Remove.
3001 * config/s390/s390.c (legitimate_address_p): Rename to...
3002 (s390_legitimate_address_p): ... this, make static.
3003 (legitimize_address): Adjust call.
3004 (TARGET_LEGITIMATE_ADDRESS_P): New.
3005 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
3006
3007 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3008 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
3009 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
3010 (TARGET_LEGITIMATE_ADDRESS_P): New.
3011
3012 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3013 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
3014 * config/spu/spu.c (spu_legitimate_address): Rename to...
3015 (spu_legitimate_address_p): ... this, make static.
3016 (TARGET_LEGITIMATE_ADDRESS_P): New.
3017
3018 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3019 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
3020 * config/sparc/sparc.c (legitimate_address_p): Rename to...
3021 (sparc_legitimate_address_p): ... this, make static and return bool.
3022 (legitimize_address): Adjust call.
3023 (TARGET_LEGITIMATE_ADDRESS_P): New.
3024
3025 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3026 * config/i386/i386-protos.h (legitimate_address_p): Remove.
3027 * config/i386/i386.c (legitimate_address_p): Rename to...
3028 (ix86_legitimate_address_p): ... this, make static.
3029 (constant_address_p): Move after it, adjust call.
3030 (TARGET_LEGITIMATE_ADDRESS_P): New.
3031
3032 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3033 * config/avr/avr-protos.h (legitimate_address_p): Remove.
3034 * config/avr/avr.c (legitimate_address_p): Rename to...
3035 (avr_legitimate_address_p): ... this, make static.
3036 (legitimize_address): Adjust call.
3037 (TARGET_LEGITIMATE_ADDRESS_P): New.
3038
3039 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3040 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
3041 * config/crx/crx.c (crx_legitimate_address_p): Make static.
3042 (TARGET_LEGITIMATE_ADDRESS_P): New.
3043
3044 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3045 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
3046 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
3047 (TARGET_LEGITIMATE_ADDRESS_P): New.
3048
3049 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3050 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
3051 Remove.
3052 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3053 Make static.
3054 (TARGET_LEGITIMATE_ADDRESS_P): New.
3055
3056 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3057 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
3058 Remove.
3059 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
3060 Rename to...
3061 (m68hc11_legitimate_address_p): ... this, make static.
3062 (go_if_legitimate_address_internal): Rename to...
3063 (m68hc11_legitimate_address_p_1): ... this.
3064 (legitimize_address): Adjust call.
3065 (TARGET_LEGITIMATE_ADDRESS_P): New.
3066
3067 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
3068 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
3069 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
3070 (TARGET_LEGITIMATE_ADDRESS_P): New.
3071
3072 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3073 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
3074 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
3075 (mn10300_legitimate_address_p): ... this, make static.
3076 (TARGET_LEGITIMATE_ADDRESS_P): New.
3077
3078 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3079 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
3080 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
3081 (TARGET_LEGITIMATE_ADDRESS_P): New.
3082
3083 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3084 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
3085 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
3086 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3087 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
3088 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
3089 (rs6000_legitimate_address_p): ... this, make static.
3090 (TARGET_LEGITIMATE_ADDRESS_P): New.
3091 (REG_MODE_OK_FOR_BASE_P): Delete.
3092 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
3093
3094 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3095 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
3096 Delete.
3097 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
3098 static, adjust types.
3099 (TARGET_LEGITIMATE_ADDRESS_P): New.
3100
3101 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3102 * config/score/score.c (score_address_p): Rename to...
3103 (score_legitimate_address_p): ... this.
3104 (TARGET_LEGITIMATE_ADDRESS_P): New.
3105 * config/score/score3.c (score3_address_p): Rename to...
3106 (score3_legitimate_address_p): ... this.
3107 * config/score/score7.c (score7_address_p): Rename to...
3108 (score7_legitimate_address_p): ... this.
3109
3110 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
3111 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
3112 GO_IF_LEGITIMATE_ADDRESS): Delete.
3113 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
3114 thumb2_legitimate_address_p): Delete.
3115 (arm_legitimate_address_p): Rename to...
3116 (arm_legitimate_address_outer_p): ... this.
3117 * config/arm/constraints.md ("Uq"): Adjust call.
3118 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
3119 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
3120 to...
c6c3dba9 3121 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
3122 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
3123 static.
c6c3dba9
PB
3124 (TARGET_LEGITIMATE_ADDRESS_P): New.
3125
3126 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3127 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
3128 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
3129 (TARGET_LEGITIMATE_ADDRESS_P): New.
3130
3131 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3132 * config/vax/vax-protos.h (legitimate_address_p): Remove.
3133 * config/vax/vax.c (legitimate_address_p): Rename to...
3134 (vax_legitimate_address_p): ... this, make static.
3135 (TARGET_LEGITIMATE_ADDRESS_P): New.
3136
3137 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3138 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
3139 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
3140 (TARGET_LEGITIMATE_ADDRESS_P): New.
3141
3142 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3143 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
3144 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
3145 (mmix_legitimate_address_p): ... this, make static.
3146 (TARGET_LEGITIMATE_ADDRESS_P): New.
3147
3148 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3149 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
3150 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
3151 (TARGET_LEGITIMATE_ADDRESS_P): New.
3152
3bd0d9c8
PB
31532009-05-14 Paolo Bonzini <bonzini@gnu.org>
3154
3155 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
3156 of MODE_COMPLEX_INT.
3157
fe049033
RO
31582009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3159
3160 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
3161 LCT_NORMAL in function call.
3162 * mips-tdump.c (print_file_desc): Add cast to enum type.
3163 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
3164 (mark_stabs): Add casts to enum types.
3165 (parse_stabs_common): Add casts to enum types.
16f7ad42 3166
b0907a6c
AN
31672009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3168
3169 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
3170 Check for invalid values of LETTER.
3171
d1c8e08a
TG
31722009-05-13 Taras Glek <tglek@mozilla.com>
3173
f3afc8a7
UB
3174 * attribs.c (register_attribute): moved out attribute registration
3175 into register_attribute.
3176 * doc/plugins.texi: Documented register_attribute and
3177 PLUGIN_ATTRIBUTES.
16f7ad42
TG
3178 * gcc-plugin.h: Added forward decl for register_attribute.
3179 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
3180 * plugin.c (register_callback, invoke_plugin_callbacks): Added
3181 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 3182
4ed7f970
DK
31832009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
3184
3185 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
3186 values even in sentinel and empty entries.
3187 (ms_printf_flag_specs): Likewise.
3188 (ms_scanf_flag_specs): Likewise.
3189 (ms_strftime_flag_specs): Likewise.
3190 (ms_print_char_table): Likewise.
3191 (ms_scan_char_table): Likewise.
3192 (ms_time_char_table): Likewise.
3193
3d8fa148
DK
31942009-05-13 Doug Kwan <dougkwan@google.com>
3195
3196 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
3197
f06257d3
AN
31982009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3199
3200 * config/mips/mips.md (store): Add attributes for QI and HI.
3201 Update comment.
3202 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
3203 (truncdi<mode>2): ... this new pattern.
3204
fb201767
BH
32052009-05-13 Brad Hards <bradh@kde.org>
3206
3207 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
3208
c7bda60e 32092009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
3210 Ben Elliston <bje@au.ibm.com>
3211
3212 PR middle-end/40035
3213 * dse.c (check_mem_read_rtx): Guard against width == -1.
3214
ce985b43
MM
32152009-05-13 Michael Matz <matz@suse.de>
3216
3217 PR middle-end/39976
3218 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
3219 (trivially_conflicts_p): New function.
3220 (insert_backedge_copies): Use it.
3221
7de1d221
JJ
32222009-05-13 Janis Johnson <janis187@us.ibm.com>
3223
3224 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
3225 (handle_stdc_pragma): Use new enum constant names.
3226 (handle_pragma_float_const_decimal64): Ditto.
3227
bfefafc6
ILT
32282009-05-13 Ian Lance Taylor <iant@google.com>
3229
3230 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
3231 tree.def.
3232
286c4fcb
NS
32332009-05-13 Nathan Sidwell <nathan@codesourcery.com>
3234
3235 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
3236 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
3237 multilibs.
3238 * config/m68k/m68k.h (FL_UCLINUX): Define.
3239
ebaa6ea7
JH
32402009-05-13 Jan Hubicka <jh@suse.cz>
3241
3242 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
3243
2b703e1a
KK
32442009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3245
3246 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
3247 unless -fschedule-insns is specified.
3248
c3537723
KK
32492009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3250
3251 PR target/39561
3252 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
3253 TARGET_EXPAND_CBRANCHDI4.
3254 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
3255 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
3256 (cmpeqdi): Fix comment.
3257
cdeed45a
KK
32582009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3259
3260 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
3261 (sh_legitimate_address_p): Likewise.
3262 * config/sh/sh.c (sh_legitimate_index_p): New.
3263 (sh_legitimate_address_p): Likewise.
3264 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
3265 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
3266 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
3267 (MAYBE_BASE_REGISTER_RTX_P): New macro.
3268 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3269 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
3270 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
3271 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
3272 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
3273
02f0b13a
JH
32742009-05-12 Jan Hubicka <jh@suse.cz>
3275
3276 * tree-inline.c (estimate_operator_cost): Add operands;
3277 when division happens by constant, it is cheap.
3278 (estimate_num_insns): Loads and stores are not having cost of 0;
3279 EH magic stuff is cheap; when computing runtime cost of switch,
3280 use log2 base of amount of its cases; builtin_expect has cost of 0;
3281 compute cost for moving return value of call.
3282 (init_inline_once): Initialize time_based flags.
3283 * tree-inline.h (eni_weights_d): Add time_based flag.
3284
ecb7f6de
PB
32852009-05-12 Paolo Bonzini <bonzini@gnu.org>
3286
3287 * df-core.c: Update head documentation.
3288
c24151ce
MM
32892009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3290
3291 PR bootstrap/40118
3292 * rs6000.c (rs6000_generate_compare): Use op1b instead of
3293 shadowing exisiting variable op1.
3294
fbdf817d
UB
32952009-05-12 Uros Bizjak <ubizjak@gmail.com>
3296
704bf7c8 3297 PR target/37179
fbdf817d
UB
3298 * config/i386/driver-i386.c (processor_signatures): New enum.
3299 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
3300 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
3301 processor signature to detect geode processor.
3302
5e8d1826
PB
33032009-05-12 Paolo Bonzini <bonzini@gnu.org>
3304
3305 Revert:
3306
3307 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3308
3309 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3310 causes spurious differences between trunk and cond-optab branch.
3311
f90b7a5a
PB
33122009-05-12 Paolo Bonzini <bonzini@gnu.org>
3313
fbdf817d
UB
3314 * dojump.c (compare_from_rtx): Delete.
3315 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
3316 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
3317 if the comparison does not satisfy the predicate; test predicates for
3318 operands 2 and 3 of a cstore pattern. Don't try cstore optab
3319 further if one existing pattern fails.
fbdf817d 3320 * expr.h (compare_from_rtx): Delete.
f90b7a5a 3321 (prepare_operand): Declare it.
fbdf817d 3322 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 3323 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
3324 HAVE_conditional_trap, emit_cmp_insn): Delete.
3325 (can_compare_p): Delete cmp_optab case.
f90b7a5a 3326 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
3327 Accept other parameters by value.
3328 (prepare_operand): Make non-static.
3329 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
3330 other parameters by value. Try to widen operands here based on
3331 an optab_methods argument and looking at cbranch_optab.
3332 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
3333 loop. Use cbranch_optab directly.
3334 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
3335 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
3336 assertion.
3337 (emit_conditional_move, emit_conditional_add): Inline what's needed
3338 of compare_from_rtx, using new prepare_cmp_insn for the rest.
3339 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
3340 with COMPARE. Move cmov_optab and cstore_optab above
3341 with cbranch_optab, move cmp_optab down with ucmp_optab,
3342 remove tst_otpab. Do not initialize trap_rtx.
3343 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
3344 for trap code. Do not check HAVE_conditional_trap. Use
3345 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
3346 * optabs.h (OTI_cmp): Mark as used only for libcalls.
3347 (OTI_ctrap, ctrap_optab): New.
3348 (tst_optab): Delete.
3349 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
3350 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
3351 with lookup of ctrap_optab.
f3afc8a7
UB
3352 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
3353 Delete.
fbdf817d
UB
3354 (ctrap_optab): New.
3355
3356 * combine.c (combine_simplify_rtx, simplify_set): Do not
3357 special case comparing against zero for cc0 machines.
f90b7a5a
PB
3358 * simplify-rtx.c (simplify_binary_operation_1): Never remove
3359 COMPARE on cc0 machines.
3360 (simplify_relational_operation): Return a new expression when
3361 a COMPARE could be removed.
fbdf817d
UB
3362 * final.c (final_scan_insn): Compare cc_status values
3363 against LHS of a (compare FOO (const_int 0)) cc0 source.
3364 Also check if cc_status.value is the full compare.
f90b7a5a 3365
fbdf817d
UB
3366 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
3367 (cstoreMM4): Document.
f90b7a5a 3368 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 3369 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
3370 (Dependent Patterns): Eliminate obsolete information referring to
3371 the old jump optimization phase.
fbdf817d 3372 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
3373 of compares with 0 on cc0 machines.
3374 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
3375 avoiding references to cc0. Remove text about storing operands
3376 in cmpMM.
3377 * doc/tm.texi (Condition Codes): Include blurb on different
3378 condition code representations, separate into subsections for
3379 CC0, MODE_CC and conditional execution.
3380
fbdf817d
UB
3381 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
3382 alpha_emit_setcc): Accept operands and a machine mode.
3383 * config/alpha/alpha.c (alpha_emit_conditional_branch):
3384 Get code/op0/op1 from operands, use machine mode argument
3385 instead of alpha_compare.fp_p. Emit the branch here.
3386 (alpha_emit_setcc): Likewise, and return boolean.
3387 (alpha_emit_conditional_move): Likewise. Assert that
3388 cmp_op_mode == cmp_mode, and simplify accordingly.
3389 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
3390 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
3391 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
3392 Delete.
3393 (stack probe test): Use cbranchdi4.
3394 * config/alpha/predicates.md (alpha_cbranch_operator): New.
3395
3396 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
3397 * config/arc/arc.h (movsicc, movsfcc): Use it.
3398 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
3399 (cbranchsi4, cstoresi4): New.
3400 (cmpsi, bCC and sCC expanders): Remove.
3401
3402 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
3403 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
3404 * config/arm/predicates.md (arm_comparison_operator): Only include
3405 floating-point operators if there is a hardware floating-point unit.
3406 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
3407 deferring to cbranch_cc and cstore_cc respectively.
3408 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
3409 cbranch_cc, cstore_cc): New.
3410 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 3411 arm_compare_op1.
fbdf817d
UB
3412 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
3413
3414 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
3415 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
3416 as an argument.
3417 (adjust_insn_length): Adjust calls.
3418 (avr_reorg): Handle (compare (foo) (const_int 0)).
3419 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
3420 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
3421 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
3422 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
3423 (bCC): Remove.
3424 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
3425 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
3426
fbdf817d
UB
3427 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
3428 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 3429 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
3430 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
3431 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
3432 (bfin_optimize_loop): Use cbranch expander.
3433 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
3434 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
3435 (bfin_bimode_comparison_operator): ... this.
3436 (bfin_direct_comparison_operator): New.
f90b7a5a 3437
fbdf817d
UB
3438 * config/cris/cris.c (cris_normal_notice_update_cc): Look
3439 inside (compare FOO (const_int 0)).
3440 (cris_rtx_costs): Handle ZERO_EXTRACT.
3441 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
3442 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
3443 (*tstdi_v32): Delete.
3444 (*cmpdi_non_v32): Add M alternative for operand 1.
3445 (cmpsi, cmp<mode>): Make private.
3446 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
3447 with COMPARE.
3448 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
3449
3450 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
3451 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
3452 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
3453 (cc_reg_operand): New.
3454 (any_cond): Delete.
fbdf817d
UB
3455 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
3456 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
3457 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
3458 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
3459 crx_expand_scond): Delete.
3460
3461 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
3462 (cbranchsi4): New.
3463 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
3464 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
3465
3466 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
3467 cstoresi4, cstoresf4, cstoredf4): New.
3468 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
3469 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3470 Receive the entire operands array.
3471 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
3472 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
3473 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3474 Get test/op0/op1 from the operands array.
3475 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
3476
3477 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
3478 (h8300_expand_store): New.
3479 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
3480 (const_int 0)).
3481 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
3482 (h8300_expand_store): New.
3483 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
3484 or do not try to produce (set (cc0) REG).
3485 (peepholes): Wrap arguments with COMPARE. Add a peephole to
3486 change a compare into a move to a scratch register. Disable some
3487 peepholes when comparing with zero.
3488 (tstsi, tsthi, tstsi, cmpqi): Make private.
3489 (cmphi): Delete.
3490 (bCC, sCC): Delete.
3491 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
3492 cstoresi4): New.
f90b7a5a
PB
3493
3494 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
3495 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
3496 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
3497 (ix86_emit_i387_log1p): Use cbranchxf2.
3498 (ix86_expand_setcc): Return void.
3499 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
3500 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
3501 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
3502 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
3503 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
3504 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
3505 (sCC and bCC expanders): Remove.
3506 (stack_protect_test): Use cbranchcc4.
3507
fbdf817d
UB
3508 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
3509 Delete.
3510 (ia64_expand_compare): Accept three rtx by reference and return void.
3511 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
3512 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
3513 from *expr. Update *expr with the BImode comparison to do.
3514 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
3515 cmptf, bCC, sCC, conditional_trap): Delete.
3516 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
3517 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
3518 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
3519 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
3520 * config/ia64/predicates.md (ia64_cbranch_operator): New.
3521
3522 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
3523 type of last argument.
3524 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
3525 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
3526 use machine mode argument instead of branch_type. Remove dead
3527 code for floating-point comparisons.
3528 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
3529 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
3530 Remove.
3531 (cbranchsi4, cstoresi4): New.
3532 * config/iq2000/predicates.md (reg_or_const_operand): New.
3533
3534 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
3535 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
3536 (b<code>_op): Rewrite to...
3537 (bcc_op): ... this, using match_operator.
3538 (s<code>_op): Rewrite to...
3539 (scc_op): ... this, using match_operator.
3540 (s<code>_24_op): Rewrite to...
3541 (scc_op_24): ... this, using match_operator.
3542 (s<code>_<mode>): Rewrite to...
3543 (cstore<mode>4): ... this, using match_operator.
3544 (s<code>_<mode>_24): Rewrite to...
3545 (cstore<mode>4_24): ... this, using match_operator.
3546 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
3547 m32c_unpend_compare, m32c_expand_scc): Delete.
3548 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
3549 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
3550 (m32c_expand_movcc): Change NE to EQ if necessary.
3551 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
3552
3553 * config/m32r/m32r-protos.h (gen_cond_store): New.
3554 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
3555 (gen_cond_store): New, from sCC patterns.
3556 (m32r_expand_block_move): Use cbranchsi4.
3557 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
3558 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
3559 (cbranchsi4, cstoresi4): New.
3560
3561 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
3562 Delete.
3563 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 3564 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
3565 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
3566 Delete.
3567 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
3568 cmphi, cmpqi, bCC): Delete.
3569 (cbranchsi4, cbranchhi4, cbranchqi4): New.
3570 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
3571 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
3572 sets with COMPARE.
3573
3574 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
3575 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
3576 * config/m68k/constraints.md (H): New.
3577 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
3578 the define_insn below.
3579 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
3580 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
3581 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
3582 patterns): Wrap RHS with COMPARE.
3583 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
3584 (*cmpdi_internal): Name this pattern.
3585 (cmpdi): Change to define_insn.
3586 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
3587 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
3588 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
3589 predicate.
3590 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
3591 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
3592 (conditional_trap): Change to...
3593 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
3594 (*conditional_trap): Use the ordered_comparison_operator and
3595 const1_operand predicates.
3596 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
3597 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
3598 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
3599 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
3600
3601 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
3602 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
3603 (mcore_gen_compare): New.
3604 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
3605 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
3606 (mcore_gen_compare): ... this.
3607 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
3608 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
3609 (stack probe pattern): Use cbranchsi4.
3610
3611 * config/mips/predicates.md (mips_cstore_operator): New.
3612 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
3613 * config/mips/mips.md (any_cond): Delete.
3614 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
3615 always succeed.
3616 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
3617 fixuns_truncsfdi2): Use cbranch patterns.
3618 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
3619 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
3620 Adjust call to mips_expand_conditional_branch.
3621 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
3622 cstore<GPR:mode>4.
3623 * config/mips/mips-protos.h (mips_expand_conditional_branch,
3624 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
3625 * config/mips/mips.c (cmp_operands): Delete.
3626 (mips_emit_compare): Get comparison operands from *op0/*op1.
3627 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
3628 that it succeeds. Use op0/op1 instead of cmp_operands.
3629 (mips_expand_conditional_branch, mips_expand_conditional_move,
3630 mips_expand_conditional_trap): Likewise.
3631 (mips_block_move_loop): Use cbranch patterns.
3632 * config/mips/mips.h (cmp_operands): Delete.
3633
3634 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
3635 (mmix_gen_compare_reg): Just return a register in the right CC mode.
3636 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
3637 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
3638 (*cmpcc_folded): Rename to...
3639 (*cmpdi_folded): this.
3640 (*cmpcc): Rename to...
3641 (*cmps): ... this.
3642 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
3643 (bCC): Remove.
3644 (cbranchdi4): New.
3645 (cbranchdf4): New. Handle invalid comparisons here.
3646 * config/mmix/predicates.md (float_comparison_operator): New.
3647
3648 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
3649 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
3650 * config/mn10300/mn10300.md (tst): Delete.
3651 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
3652 Name these patterns and wrap RHS in a compare.
3653 (*cmpsi): Make this pattern private. Include tst.
3654 (*cmpsf): Make this pattern private.
3655 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
3656 (compare with zero peepholes): Likewise.
3657 (bCC): Remove.
3658 (cbranchsi4, cbranchsf4): New.
3659 (casesi): Use cbranchsi4.
3660
3661 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
3662 hppa_branch_type): Delete.
3663 (return_addr_rtx): Use cbranchsi4.
3664 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
3665 Emit CCFPmode comparison here.
3666 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
3667 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
3668 hppa_branch_type): Delete.
3669 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
3670 (movsicc, movdicc): Remove references to hppa_compare_op0,
3671 hppa_compare_op1 and compare_from_rtx.
3672 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
3673 (casesi): Use cbranchsi4.
3674
3675 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
3676 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
3677 * config/pdp11/pdp11.md (register_or_const0_operand): New.
3678 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
3679 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
3680 (bCC): Delete.
3681 (cbranchdf4, cbranchhi4, cbranchqi4): New.
3682 (*branch, *branch_inverted): New.
3683
3684 * config/picochip/picochip.md (cbranchhi4): Use
3685 ordered_comparison_operator.
3686 (cmphi, bCC): Remove.
3687
3688 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
3689 (trap_comparison_operator): Delete.
3690 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
3691 rs6000_emit_cbranch): Accept mode and operands.
3692 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
3693 rs6000_compare_fp_p): Delete.
3694 (rs6000_generate_compare): Accept mode and comparison. Extract code
3695 and op0/op1 from there. Replace references to rs6000_compare_op0
3696 and rs6000_compare_op1.
3697 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
3698 extract result from passed operands.
3699 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
3700 extract loc from passed operands.
3701 (rs6000_emit_cmove): Likewise.
3702 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
3703 rs6000_compare_fp_p): Delete.
3704 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
3705 (cbranch<GPR>4, cbranch<FP>4): New.
3706 (cstore<mode>4): New. Consolidate here all choices about when to use
3707 portable or specialized sCC sequences.
3708 (stack_protect_test): Use cbranchsi4.
3709 (conditional_trap): Replace with ctrap<GPR>4.
3710 (conditional trap insn): Replace trap_comparison_operator with
3711 ordered_comparison_operator.
3712
3713 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
3714 (s390_emit_prologue): Use ctrap.
3715 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
3716 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
3717 New predicates replacing...
3718 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
3719 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
3720 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
3721 (add<mode>cc): Do not use s390_compare_op0/op1.
3722 (s<code>): Change to...
3723 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
3724 (seq): Change to...
3725 (cstorecc4): ... this. Handle EQ or NE equally.
3726 (*sne): Un-privatize for use in cstorecc4.
3727 (b<code>): Change to...
3728 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
3729 (conditional_trap): Replace with...
3730 (ctrap<GPR>4, ctrap<FP>4): ... these.
3731 (stack_protect): Use cbranchcc4.
3732
3733 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
3734 * config/score/score-protos.h (score_gen_cmp): Delete.
3735 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
3736 (score_block_move-loop): Use cbranchsi4.
3737 * config/score/score.md (cbranchsi4): New.
3738 (cmpsi, bCC): Delete.
3739 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
3740 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3741 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
3742 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3743 * config/score/score3.h (score3_gen_cmp): Delete.
3744 * config/score/score7.h (score7_gen_cmp): Delete.
3745
3746 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
3747 (sh_emit_scc_to_t): ... this. Return void.
3748 (from_compare): Rename to...
3749 (sh_emit_compare_and_branch): ... this.
3750 (sh_emit_compare_and_set): New.
3751 (sh_expand_t_scc): Accept operands.
3752 * config/sh/predicates.md (sh_float_comparison_operator): New.
3753 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
3754 (prepare_scc_operands): Rename to...
3755 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
3756 arguments.
3757 (sh_emit_cheap_store_flag): New.
f90b7a5a 3758 (sh_emit_set_t_insn): New.
fbdf817d
UB
3759 (from_compare): Rename to...
3760 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
3761 handling of TARGET_SH2E floating point to avoid recursive call.
3762 Generate branch here.
3763 (sh_emit_compare_and_set): New.
3764 (sh_expand_t_scc): Get op0/op1 from arguments.
3765 (sh_emit_cheap_store_flag): New.
3766 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
3767 cases.
f90b7a5a 3768 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
3769 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
3770 (movsicc, movdicc): Do nothing when it recreated operands from
3771 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
3772 prepare_scc_operands (now sh_emit_scc_to_t).
3773 (udivdi3): Use cstoresi4.
3774 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
3775 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
3776 (cbranchint4_media, cbranchfp4_media): New.
3777 (casesi): Use cbranchdi4.
3778 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
3779 Delete.
3780 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
3781 (movnegt): Remove second operand.
3782 (cbranchsf4, cbranchdf4): New.
3783 (stack_protect): Use cbranchdi4/cbranchsi4.
3784
3785 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
3786 (gen_compare_reg): Accept comparison, extract part of it to...
3787 (gen_compare_reg_1): ... this.
3788 (gen_compare_operator): Delete.
3789 (gen_v9_scc): Accept separate destination, comparison code and arms.
3790 Do not use sparc_compare_op0/sparc_compare_op1.
3791 (emit_scc_insn, emit_conditional_branch_insn): New.
3792 (emit_v9_brxx): Make static. Remove useless assertion.
3793 (sparc_emit_float_lib_cmp): Return RTL instead of calling
3794 emit_cmp_insn.
3795 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
3796 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
3797 sparc_emit_float_lib_cmp): Adjust prototype.
3798 (emit_scc_insn, emit_conditional_branch_insn): New.
3799 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
3800 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
3801 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
3802 iterators to the top.
3803 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
3804 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 3805 snedi_special_trunc): Delete.
fbdf817d 3806 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 3807 and snedi_special_trunc.
fbdf817d
UB
3808 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3809 cbranchdi4, cbranch<F:mode>4): New.
3810 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3811 here. Use gen_compare_reg instead of gen_compare_operator.
3812 (conditional_trap): Replace with...
3813 (ctrapsi4, ctrapdi4): ... this.
3814 (stack_protect_test): Use cbranchcc4.
3815
3816 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3817 argument to rtx.
3818 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
3819 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3820 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
3821 from operands[0] or operands[3] depending on is_set.
3822 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3823 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3824 cmpdf, bCC), sCC: Remove.
3825 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
3826 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3827 cstoredf4): New.
3828 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3829 spu_emit_branch_or_set.
3830
3831 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3832 Add two arguments.
3833 * config/stormy16/stormy16.h (xstormy16_compare_op0,
3834 xstormy16_compare_op1): Delete.
3835 * config/stormy16/stormy16.c (xstormy16_compare_op0,
3836 xstormy16_compare_op1): Delete.
3837 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3838 Adjust calls.
3839 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3840 (cmphi, cmpsi, bCC): Remove.
3841
3842 * config/v850/v850.md (tstsi, cmpsi): Fold into...
3843 (*cmpsi): ... this one.
3844 (cbranchsi4, cstoresi4): New.
3845 (bCC expanders): Delete.
3846 (sCC insns): Fold into...
3847 (*setcc): ... this one.
3848 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
3849 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3850 (movsicc): Simplify.
3851 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3852
fbdf817d
UB
3853 * config/vax/vax-protos.h (cond_name): New.
3854 (vax_output_conditional_branch): Remove.
3855 * config/vax/vax.c (cond_name): New.
3856 (vax_output_conditional_branch): Remove.
3857 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3858 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3859 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
3860 (bit<VAXint>): Wrap source with (compare).
3861 (b<code> and following unnamed pattern): Rename to *branch and
3862 *branch_reversed. Change macroization to match_operator.
3863 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3864
3865 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3866 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3867 Change last argument to machine_mode.
3868 (xtensa_expand_scc): Add machine_mode argument.
3869 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3870 (gen_conditional_move, xtensa_expand_conditional_branch,
3871 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3872 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3873 Adjust operand numbers.
3874 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3875 Delete.
3876 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3877 (cmpsi, cmpsf, b<code>, s<code>): Delete.
3878 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 3879
16670495
PB
38802009-05-12 Paolo Bonzini <bonzini@gnu.org>
3881
3882 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3883 causes spurious differences between trunk and cond-optab branch.
3884
4a4a4e99
AO
38852009-05-12 Alexandre Oliva <aoliva@redhat.com>
3886
3887 PR target/37137
3888 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3889
72b9acff
AO
38902009-05-12 Alexandre Oliva <aoliva@redhat.com>
3891
3892 * tree.c (iterative_hash_pointer): Delete.
3893 (iterative_hash_expr): Short-circuit handling of NULL pointer.
3894 Hash UIDs and versions of SSA names. Don't special-case built-in
3895 function declarations.
3896
b7dd69ac
ILT
38972009-05-11 Ian Lance Taylor <iant@google.com>
3898
3899 PR bootstrap/40103
3900 * graphite.c: Force -Wc++-compat to only be a warning before
3901 #including "cloog/cloog.h".
3902
ed102b70
MJ
39032009-05-11 Martin Jambor <mjambor@suse.cz>
3904
3905 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3906
08f1af2e
JH
39072009-05-11 Jan Hubicka <jh@suse.cz>
3908
3909 * tree-ssa-loop-ivcanon.c: Include target.h
3910 (struct loop_size): new structure.
3911 (constant_after_peeling): New predicate.
3912 (tree_estimate_loop_size): New function.
3913 (estimated_unrolled_size): Rewrite for new estimates.
3914 (try_unroll_loop_completely): Use new estimates.
3915 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3916
a7d39bd3
AP
39172009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
3918
3919 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3920 libcpp interface change.
3921 (spu_macro_to_expand): Likewise.
3922
f5a1f0d0
PB
39232009-05-11 Paolo Bonzini <bonzini@gnu.org>
3924
3925 PR tree-optimization/40026
3926 * gimplify.c (gimplify_init_constructor): Change initial conditional
3927 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
3928 optimize_compound_literals_in_ctor.
3929
c260f01f
NS
39302009-05-11 Nathan Sidwell <nathan@codesourcery.com>
3931
3932 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3933 New devices.
3934 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3935
df398a37
L
39362009-05-11 H.J. Lu <hongjiu.lu@intel.com>
3937
3938 * tree-vect-data-refs.c (vect_analyze_group_access): Use
3939 HOST_WIDE_INT for gap.
3940
4da39468
IR
39412009-05-11 Ira Rosen <irar@il.ibm.com>
3942
3943 PR tree-optimization/40074
3944 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3945 account in group size and step comparison.
3946
4effdf02
RG
39472009-05-11 Richard Guenther <rguenther@suse.de>
3948
3949 * passes.c (init_optimization_passes): Strip now incorrect comment.
3950 (execute_function_todo): Do not set PROP_alias.
3951 * tree-pass.h (PROP_alias): Remove.
3952 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3953 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3954 * tree-nrv.c (pass_return_slot): Likewise.
3955 * tree-object-size.c (pass_object_sizes): Likewise.
3956 * tree-ssa-dom.c (pass_dominator): Likewise.
3957 (pass_phi_only_cprop): Likewise.
3958 * tree-ssa-dse.c (pass_dse): Likewise.
3959 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3960 (pass_cselim): Likewise.
3961 * tree-ssa-pre.c (pass_pre): Likewise.
3962 (pass_fre): Likewise.
3963 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3964 * tree-ssa-sink.c (pass_sink_code): Likewise.
3965 * tree-stdarg.c (pass_stdarg): Likewise.
3966 * tree-tailcall.c (pass_tail_calls): Likewise.
3967 * tree-vrp.c (pass_vrp): Likewise.
3968
24b97832
ILT
39692009-05-10 Ian Lance Taylor <iant@google.com>
3970
3971 * basic-block.h (enum profile_status): Break out of struct
3972 control_flow_graph.
3973 * cgraph.h (struct inline_summary): Break out of struct
3974 cgraph_local_info.
3975 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3976 of struct cgraph_order_sort.
fbdf817d 3977 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
3978 * cse.c (struct branch_path): Break out of struct
3979 cse_basic_block_data.
3980 * except.h (enum eh_region_type): Break out of struct eh_region.
3981 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 3982 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
3983 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3984 ggc_pch_data.
fbdf817d
UB
3985 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3986 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
3987 * sched-int.h (enum post_call_group): New enum, broken out of
3988 struct deps.
3989 (struct deps_reg): Break out of struct deps.
3990 * target.h (struct asm_int_op): Break out of struct gcc_target.
3991 * tree-eh.c (struct goto_queue_node): Break out of struct
3992 leh_tf_state.
3993 * tree-inline.h (enum copy_body_cge_which): Break out of
3994 copy_body_data.
3995 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3996
3997 * c-decl.c (in_struct, struct_types): New static variables.
3998 (pushtag): Add loc parameter. Change all callers.
3999 (lookup_tag): Add ploc parameter. Change all callers.
4000 (check_compound_literal_type): New function.
4001 (parser_xref_tag): Add loc parameter. Change all callers. If
4002 -Wc++-compat, warn about struct/union/enum types defined within a
4003 struct or union.
4004 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
4005 and loc parameters. Change all callers. Change error calls to
4006 error_at, using loc. For a redefinition, if the location of the
4007 original definition is known, report it. Set in_struct and
fbdf817d 4008 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
4009 (finish_struct): Add new parameters enclosing_in_struct and
4010 enclosing_struct_types. Change all callers. Set
4011 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
4012 in the struct. If in a struct, add this struct to struct_types.
4013 (start_enum): Add loc parameter. Change all callers. Use
4014 error_at for errors, using loc. For a redefinition, if the
4015 location of the original definition is known, report it. If in a
4016 struct, add this enum type to struct_types. If -Wc++-compat warn
4017 if in sizeof, typeof, or alignof.
fbdf817d
UB
4018 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
4019 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
4020 (c_parser_enum_specifier): Get enum location for start_enum.
4021 (c_parser_struct_or_union_specifier): Get struct location for
4022 start_struct. Save in_struct and struct_types status between
4023 start_struct and finish_struct.
4024 (c_parser_cast_expression): Get location of cast.
4025 (c_parser_alignof_expression): Get location of type.
4026 (c_parser_postfix_expression): Likewise.
4027 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
4028 parameter. Change all callers. Call check_compound_literal_type.
4029 Use type_loc for error about variable size type.
4030 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
4031 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
4032 (c_cast_expr): Add loc parameter. Change all callers. If
4033 -Wc++-compat, warn about defining a type in a cast.
4034 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
4035 (start_enum, start_struct, finish_struct): Update declarations.
4036 (parser_xref_tag, c_cast_expr): Update declarations.
4037 (check_compound_literal_type): Declare.
4038
7a2738fa
BE
40392009-05-11 Ben Elliston <bje@au.ibm.com>
4040
4041 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
4042 for recent libcpp interface change.
4043 (rs6000_macro_to_expand): Likewise.
4044
af618949
MM
40452009-05-10 Michael Matz <matz@suse.de>
4046
4047 PR target/40031
4048 * config/arm/arm.c (require_pic_register): Emit on entry edge,
4049 not at entry of function.
4050
b7d7a473
RG
40512009-05-10 Richard Guenther <rguenther@suse.de>
4052
4053 PR tree-optimization/40081
4054 Revert
4055 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4056 using the main variant of the element type. Do not fiddle with
4057 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4058
4059 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
4060 structs with volatile fields.
4061
078c3644
JH
40622009-05-10 Jan Hubicka <jh@suse.cz>
4063
4064 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
4065 (estimate_move_cost): Assert that it does not get called for
4066 VOID_TYPE_P.
078c3644
JH
4067 (estimate_num_insns): Skip VOID types in argument handling.
4068 (optimize_inline_calls): Delete unreachable blocks and verify that
4069 callgraph is valid.
4070
39ff5a96
JH
40712009-05-10 Jan Hubicka <jh@suse.cz>
4072
4073 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
4074 * cgraph.c (cgraph_mark_address_taken_node): New function.
4075 (dump_cgraph_node): Dump new flag.
4076 * cgraph.h (struct cgraph_node): Add address_taken.
4077 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
4078 * ipa.c (cgraph_postorder): Prioritize functions with address taken
4079 since new direct calls can be born.
4080
9a0c6187
JM
40812009-05-10 Joseph Myers <joseph@codesourcery.com>
4082
4083 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
4084 tok->val.node.node.
4085
4b685e14
JH
40862009-05-10 Jan Hubicka <jh@suse.cz>
4087
4088 PR middle-end/40084
fb0be169
EB
4089 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
4090 argument; rewrite.
4b685e14
JH
4091 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
4092 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
4093 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
4094 (fold_marked_statements): Update call to
4095 cgraph_update_edges_for_call_stmt.
4b685e14 4096
29d08eba
JM
40972009-05-10 Joseph Myers <joseph@codesourcery.com>
4098
4099 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
4100 identifiers in diagnostics.
4101 * config/arm/arm.c (arm_handle_fndecl_attribute,
4102 arm_handle_isr_attribute): Likewise.
4103 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 4104 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
4105 * config/bfin/bfin.c (handle_int_attribute,
4106 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
4107 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
4108 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
4109 Likewise.
4110 * config/darwin.c (darwin_handle_kext_attribute,
4111 darwin_handle_weak_import_attribute): Likewise.
4112 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
4113 h8300_handle_eightbit_data_attribute,
4114 h8300_handle_tiny_data_attribute): Likewise.
4115 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 4116 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
4117 * config/i386/winnt.c (ix86_handle_shared_attribute,
4118 ix86_handle_selectany_attribute): Likewise.
4119 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4120 * config/m32c/m32c.c (function_vector_handler): Likewise.
4121 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
4122 m68hc11_handle_fntype_attribute): Likewise.
4123 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4124 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4125 * config/mips/mips.c (mips_insert_attributes,
4126 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
4127 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
4128 rs6000_handle_struct_attribute): Likewise.
4129 * config/sh/sh.c (sh_insert_attributes,
4130 sh_handle_resbank_handler_attribute,
4131 sh_handle_interrupt_handler_attribute,
4132 sh2a_handle_function_vector_handler_attribute,
4133 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4134 Likewise.
4135 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
4136 * config/spu/spu.c (spu_handle_fndecl_attribute,
4137 spu_handle_vector_attribute): Likewise.
4138 * config/stormy16/stormy16.c
4139 (xstormy16_handle_interrupt_attribute): Likewise.
4140 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
4141 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4142
f41c4af3
JM
41432009-05-10 Joseph Myers <joseph@codesourcery.com>
4144
782dc37a 4145 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
4146 (pp_translate_identifiers): New.
4147 (pp_identifier): Only conditionally translate identifier to locale
4148 character set.
4149 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
4150 (pp_base_tree_identifier): Only conditionally translate identifier
4151 to locale character set.
4152 * c-pretty-print.c (M_): Define.
4153 (pp_c_type_specifier, pp_c_primary_expression): Mark English
4154 fragments for conditional translation with M_.
4155 * tree-pretty-print.c (maybe_init_pretty_print): Disable
4156 identifier translation.
4157
896d7dbd
RG
41582009-05-10 Richard Guenther <rguenther@suse.de>
4159
4160 PR tree-optimization/40081
4161 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4162 using the main variant of the element type. Do not fiddle with
4163 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4164
9a23acef
JH
41652009-05-09 Jan Hubicka <jh@suse.cz>
4166
4167 PR middle-end/40080
4168 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
4169 indirect calls; verify cgraph afterwards.
4170
d563610d
JH
41712009-05-09 Jan Hubicka <jh@suse.cz>
4172
4173 PR bootstrap/40082
4174 * ipa.c (update_inlined_to_pointer): New function.
4175 (cgraph_remove_unreachable_nodes): Use it.
4176
f08a18d0
JH
41772009-05-09 Jan Hubicka <jh@suse.cz>
4178
4179 * tree-eh.c (struct leh_state): Remove prev_try.
4180 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
4181 not track prev_try.
4182 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
4183 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
4184 remove_eh_handler_and_replace, foreach_reachable_handler,
4185 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
4186 * except.h (struct eh_region): Remove eh_region_u_cleanup.
4187 (gen_eh_region_cleanup): Update prototype.
4188
0afd7219
JH
41892009-05-09 Jan Hubicka <jh@suse.cz>
4190
4191 PR middle-end/40043
4192 * except.c (copy_eh_region): Always set prev_try.
4193 (redirect_eh_edge_to_label): Find outer try.
4194 (foreach_reachable_handler): When looking for prev try
4195 handle case where previous try is not going to be taken.
4196
ad6c0864
MM
41972009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4198
4199 PR tree-optimization/40049
4200 * tree-vect-stmts.c (vectorizable_operation): If the machine has
4201 only vector/vector shifts, convert the type of the constant to the
4202 appropriate type to avoid building incorrect trees, which
4203 eventually have problems with garbage collection.
4204
c94f9067
JM
42052009-05-08 Joseph Myers <joseph@codesourcery.com>
4206
4207 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
4208 -1 for complex floating-point types if honoring signed zeros.
4209
9187e02d
JH
42102009-05-08 Jan Hubicka <jh@suse.cz>
4211
20acb8a2
EB
4212 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
4213 argument; handle correctly when profile is absent.
9187e02d
JH
4214 (build_cgraph_edges): Update.
4215 (rebuild_cgraph_edges): Update.
20acb8a2
EB
4216 * cgraph.c: Do not include varray.h.
4217 (cgraph_set_call_stmt_including_clones): New function.
4218 (cgraph_create_edge_including_clones): Likewise
4219 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
4220 (cgraph_update_edges_for_call_stmt): Handle clones.
4221 (cgraph_remove_node): Handle clone tree.
4222 (cgraph_remove_node_and_inline_clones): New function.
4223 (dump_cgraph_node): Dump clone tree.
4224 (cgraph_clone_node): Handle clone tree.
20acb8a2 4225 (clone_function_name): Bring here from tree-inline.c.
9187e02d 4226 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
4227 * cgraph.h (ipa_replace_map): Move here from ipa.h.
4228 (cgraph_clone_info): New function.
9187e02d 4229 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
4230 (cgraph_remove_node_and_inline_clones,
4231 cgraph_set_call_stmt_including_clones,
4232 cgraph_create_edge_including_clones,
4233 cgraph_create_virtual_clone): Declare.
9187e02d
JH
4234 (cgraph_function_versioning): Use VEC argument.
4235 (compute_call_stmt_bb_frequency): Update prototype.
4236 (cgraph_materialize_all_clones): New function.
4237 * ipa-cp.c (ipcp_update_cloned_node): Remove.
4238 (ipcp_create_replace_map): Update to VECtors.
4239 (ipcp_update_callgraph): Use virtual clones.
4240 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
4241 (ipcp_update_profiling): Do not update local profiling.
4242 (ipcp_insert_stage): Use VECtors and virtual clones.
4243 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
4244 (clone_of_p): New function.
4245 (cgraph_preserve_function_body_p): Use clone tree.
4246 (cgraph_optimize): Materialize clones.
4247 (cgraph_function_versioning): Update for VECtors.
4248 (save_inline_function_body): Use clone tree.
20acb8a2
EB
4249 (cgraph_materialize_clone): New function.
4250 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
4251 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
4252 * ipa.c: Include gimple.h.
4253 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
4254 * ipa-prop.c (ipa_note_param_call): Update call to
4255 compute_call_stmt_bb_frequencycall.
9187e02d 4256 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 4257 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
4258 (copy_bb): Handle updating of clone tree; add new edge when new call
4259 appears.
4260 (expand_call_inline): Be strict about every call having edge.
4261 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
4262 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
4263 (tree_function_versioning): Use VECtors; always remove unreachable
4264 blocks and fold conditionals.
4265 * tree-inline.h: Do not include varray.h.
9187e02d
JH
4266 (tree_function_versioning): Remove.
4267 * Makefile.in (GTFILES): Remove tree-inline.c
4268 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
4269 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
4270 tree.
9187e02d 4271
9b86d6bb
L
42722009-05-08 H.J. Lu <hongjiu.lu@intel.com>
4273 Andrew Morrow <acm@google.com>
4274
4275 PR c/36892
4276 * c-common.c (c_common_attribute_table): Permit deprecated
4277 attribute to take an optional argument.
4278 (handle_deprecated_attribute): If the optional argument to
4279 __attribute__((deprecated)) is not a string ignore the attribute
4280 and emit a warning.
4281
4282 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
4283 * c-typeck.c (build_component_ref): Likewise.
4284 (build_external_ref): Likewise.
4285
4286 * toplev.c (warn_deprecated_use): Add an attribute argument.
4287 Emit the message associated with __attribute__((deprecated)).
4288
4289 * toplev.h (warn_deprecated_use): Updated.
4290
4291 * doc/extend.texi: Document new optional parameter to
4292 __attribute__((deprecated))
4293
82ad047f
ME
42942009-05-08 Michael Eager <eager@eagercon.com>
4295
4296 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
4297 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
4298
788d3075
RG
42992009-05-08 Richard Guenther <rguenther@suse.de>
4300
4301 PR tree-optimization/40062
4302 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
4303 Avoid exponential behavior.
4304
00952e97
PB
43052009-05-08 Paolo Bonzini <bonzini@gnu.org>
4306
4307 PR rtl-optimization/33928
4308 PR 26854
4309 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
4310 process_uses, build_single_def_use_links): New.
4311 (update_df): Update use_def_ref.
4312 (forward_propagate_into): Use get_def_for_use instead of use-def
4313 chains.
4314 (fwprop_init): Call build_single_def_use_links and let it initialize
4315 dataflow.
4316 (fwprop_done): Free use_def_ref.
4317 (fwprop_addr): Eliminate duplicate call to df_set_flags.
4318 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
4319 df_rd_simulate_one_insn): New.
4320 (df_rd_bb_local_compute_process_def): Update head comment.
4321 (df_chain_create_bb): Use the new RD simulation functions.
4322 * df.h (df_rd_simulate_artificial_defs_at_top,
4323 df_rd_simulate_one_insn): New.
4324 * opts.c (decode_options): Enable fwprop at -O1.
4325 * doc/invoke.texi (-fforward-propagate): Document this.
4326
2ca862e9
JM
43272009-05-08 Joseph Myers <joseph@codesourcery.com>
4328
4329 PR c/24581
4330 * c-typeck.c (build_binary_op): Handle arithmetic between one real
4331 and one complex operand specially.
4332 * tree-complex.c (some_nonzerop): Do not identify a real value as
4333 zero if flag_signed_zeros.
4334
3e807ffc
PB
43352009-05-08 Paolo Bonzini <bonzini@gnu.org>
4336
4337 PR rtl-optimization/33928
7925c06c 4338 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 4339
1bfdbb29
PB
43402009-05-08 Paolo Bonzini <bonzini@gnu.org>
4341
4342 PR rtl-optimization/33928
e913423f
EB
4343 * loop-invariant.c (struct use): Add addr_use_p.
4344 (struct def): Add n_addr_uses.
4345 (struct invariant): Add cheap_address.
4346 (create_new_invariant): Set cheap_address.
4347 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
4348 (record_uses): Pass df_ref to record_use.
4349 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
4350 used only as such.
1bfdbb29 4351
702cb2a0
KK
43522009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
4353
4354 * config/sh/sh.c: Do not include c-pragma.h.
4355
5e8df753
AP
43562009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
4357
4358 * config/spu/spu.c: Remove include of c-common.h.
4359
6ec637a4
JJ
43602009-05-07 Janis Johnson <janis187@us.ibm.com>
4361
4362 PR c/39037
4363 * c-common.h (mark_valid_location_for_stdc_pragma,
4364 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
4365 clear_float_const_decimal64, float_const_decimal64_p): New.
4366 * c.opt (Wunsuffixed-float-constants): New.
4367 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
4368 unsuffixed float constant, handle new warning.
4369 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
4370 * c-decl.c (c_scope): New flag float_const_decimal64.
4371 (set_float_const_decimal64, clear_float_const_decimal64,
4372 float_const_decimal64_p): New.
4373 (push_scope): Set new flag.
4374 * c-parser.c (c_parser_translation_unit): Mark when it's valid
4375 to use STDC pragmas.
4376 (c_parser_external_declaration): Ditto.
4377 (c_parser_compound_statement_nostart): Ditto.
4378 * c-pragma.c (valid_location_for_stdc_pragma,
4379 mark_valid_location_for_stdc_pragma,
4380 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
4381 handle_pragma_float_const_decimal64): New.
4382 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
4383 * cp/semantics.c (valid_location_for_stdc_pragma_p,
4384 set_float_const_decimal64, clear_float_const_decimal64,
4385 float_const_decimal64_p): New dummy functions.
4386 * doc/extend.texi (Decimal Float): Remove statement that the
4387 pragma, and suffix for double constants, are not supported.
4388 * doc/invoke.texi (Warning Options): List new option.
4389 (-Wunsuffixed-float-constants): New.
4390
45b9b2e9
SB
43912009-05-08 Steven Bosscher <steven@gcc.gnu.org>
4392
4393 * config/i386/i386.c: Do not include c-common.h.
4394
e71da632
MH
43952009-05-07 Mark Heffernan <meheff@google.com>
4396
4397 * doc/invoke.texi (Debugging Options): Document change of debugging
4398 dump location.
e913423f 4399 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
4400 aux_base_name directory.
4401
fe4c7bc6
HS
44022009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
4403
4404 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
4405 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
4406
3b3e44eb
RAE
44072009-05-07 Rafael Avila de Espindola <espindola@google.com>
4408
4409 * Makefile.in (install-plugin): Simplify a bit.
4410
fac41238
PB
44112009-05-07 Paolo Bonzini <bonzini@gnu.org>
4412
4413 * Makefile.in (OBJS-common): Add regcprop.o.
4414 (regcprop.o): New.
4415 * timevar.def (TV_CPROP_REGISTERS): New.
4416 * regrename.c (regrename_optimize): Return 0.
4417 (rest_of_handle_regrename): Delete.
4418 (pass_rename_registers): Point to regrename_optimize.
4419 (struct value_data_entry, struct value_data,
4420 kill_value_one_regno, kill_value_regno, kill_value,
4421 set_value_regno, init_value_data, kill_clobbered_value,
4422 kill_set_value, kill_autoinc_value, copy_value,
4423 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
4424 replace_oldest_value_reg, replace_oldest_value_addr,
4425 replace_oldest_value_mem, copyprop_hardreg_forward_1,
4426 debug_value_data, validate_value_data): Move...
4427 * regcprop.c: ... here.
4428 (rest_of_handle_cprop): Delete.
4429 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
4430
472e0df9
JJ
44312009-05-07 Jakub Jelinek <jakub@redhat.com>
4432
4433 PR middle-end/40057
4434 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
4435 GEN_INT for 1 << bitnum.
4436 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
4437 build_int_cst_type.
4438
0d50d55a
UB
44392009-05-07 Uros Bizjak <ubizjak@gmail.com>
4440
4441 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 4442 Remove wrong description of "nand" operation.
0d50d55a 4443
22f597f1
RG
44442009-05-06 Richard Guenther <rguenther@suse.de>
4445 Adam Nemet <anemet@caviumnetworks.com>
4446
4447 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
4448 comment. Add that if LHS is not a gimple register, then RHS1 has
4449 to be a single object (GIMPLE_SINGLE_RHS).
4450
641cac0b
AN
44512009-05-06 Adam Nemet <anemet@caviumnetworks.com>
4452
4453 * expr.c (get_def_for_expr): Move it up in the file.
4454 (store_field): When expanding a bit-field store, look at the
4455 defining gimple stmt for the masking conversion.
4456
5a5c6435
JJ
44572009-05-06 Janis Johnson <janis187@us.ibm.com>
4458
4459 PR middle-end/39986
4460 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
4461 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
4462 32-bit memcpy into long.
4463
96474f36
JJ
44642009-05-06 Jakub Jelinek <jakub@redhat.com>
4465
4466 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
4467 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
4468 new_reg_loc_descr.
4469 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
4470 instead of appending DW_OP_deref*.
4471
529ff441
MM
44722009-05-06 Michael Matz <matz@suse.de>
4473
4474 PR middle-end/40021
4475 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
4476 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
4477
9419a9fd
RAE
44782009-05-06 Rafael Avila de Espindola <espindola@google.com>
4479
4480 * Makefile.in (install-plugin): Fix srcdir handling.
4481
fff1894c
AB
44822009-05-06 Andrey Belevantsev <abel@ispras.ru>
4483
4484 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
4485 when processing for not_regs_needed bitmap.
4486 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
4487 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
4488 handling it for rhs.
4489
700ae70c
L
44902009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4491
ab3426a7 4492 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 4493 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
4494 * config/i386/predicates.md (incdec_operand): Likewise.
4495 (aligned_operand): Likewise.
4496 * config/i386/sse.md (divv8sf3): Likewise.
4497 (sqrtv8sf2): Likewise.
4498
67341fb5
L
44992009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4500
4501 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
4502
4503 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
4504
87946f42
L
45052009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4506
4507 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
4508 ssemodesuffixf2c with avxmodesuffixf2c.
4509
1202aec1
JM
45102009-05-06 Joseph Myers <joseph@codesourcery.com>
4511
4512 PR c/40032
aa016ff7 4513 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 4514
6e57a01d
JJ
45152009-05-05 Jakub Jelinek <jakub@redhat.com>
4516
4517 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
4518 (struct tree_base): Adjust spacing for 8 bit boundaries.
4519 (struct tree_decl_common): Add decl_by_reference_flag bit.
4520 (DECL_BY_REFERENCE): Adjust.
4521 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
4522 print DECL_BY_REFERENCE bit.
4523 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
4524 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
4525 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
4526 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
4527 unconditionally.
4528
32f579f6
JJ
4529 PR middle-end/39666
4530 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
4531 range of the type, but default label is missing, add it with one
4532 of the existing labels instead of adding a new label for it.
4533
617ab743
JM
45342009-05-05 Joseph Myers <joseph@codesourcery.com>
4535
4536 * dwarf.h: Remove.
4537
bf016de8
RAE
45382009-05-05 Rafael Avila de Espindola <espindola@google.com>
4539
4540 * Makefile.in (enable_plugin, plugin_includedir): New.
4541 (install): Depend on install-plugin.
4542 (PLUGIN_HEADERS): New.
4543 (install-plugin): New.
4544 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
4545
7f8fdb9f
RG
45462009-05-05 Richard Guenther <rguenther@suse.de>
4547
4548 PR tree-optimization/40022
4549 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
4550 the only vuse.
4551 (phivn_valid_p): Fix tuplification error, simplify.
4552 (phiprop_insert_phi): Add dumps.
4553 (propagate_with_phi): Simplify.
4554
8d972839
RG
45552009-05-05 Richard Guenther <rguenther@suse.de>
4556
4557 PR middle-end/40023
aa016ff7 4558 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 4559
66ba9b0b
SZ
45602009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
4561
4562 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
4563 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
4564 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
4565 block_ultimate_origin): Rearrange the declarations line to match the
4566 comment that indicates the .c file which the functions are defined.
4567 (dwarf2out_*, set_decl_rtl): Add comment.
4568 (get_base_address): Adjust comment.
4569 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
4570 declarations line and add comment.
4571 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 4572
4f1e4960
JM
45732009-05-04 Joseph Myers <joseph@codesourcery.com>
4574
4575 * attribs.c (decl_attributes): Use %qE for identifiers in
4576 diagnostics.
4577 * cgraphunit.c (verify_cgraph_node): Translate function names to
4578 locale character set in diagnostics.
4579 * coverage.c (get_coverage_counts): Use %qE for identifiers in
4580 diagnostics.
4581 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
4582 Document that functions are named in UTF-8.
4583 * expr.c (expand_expr_real_1): Translate function names to locale
4584 character set in diagnostics.
4585 * gimplify.c (omp_notice_variable, omp_is_private,
4586 gimplify_scan_omp_clauses): Use %qE for identifiers in
4587 diagnostics.
4588 * langhooks.c (lhd_print_error_function): Translate function names
4589 to locale character set.
4590 * langhooks.h (decl_printable_name): Document that return value is
4591 in internal character set.
4592 * stmt.c: Include pretty-print.h
4593 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
4594 diagnostics.
4595 (resolve_operand_name_1): Translate named operand name to locale
4596 character set.
4597 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
4598 diagnostics.
4599 * toplev.c (announce_function): Translate function names to locale
4600 character set.
4601 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
4602 (default_tree_printer): Use pp_identifier or translate identifiers
4603 to locale character set. Mark "<anonymous>" for translation.
4604 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
4605 for identifiers in diagnostics.
4606 * tree.c (handle_dll_attribute): Use %qE for identifiers in
4607 diagnostics.
4608 * varasm.c (output_constructor): Use %qE for identifiers in
4609 diagnostics.
4610
40540e68
RAE
46112009-05-04 Rafael Avila de Espindola <espindola@google.com>
4612
4613 * configure.ac: use ` ` instead of $()
4614 * configure: Regenerate.
4615
33fc884c
BE
46162009-05-05 Ben Elliston <bje@au.ibm.com>
4617
4618 * config/pa/linux-atomic.c: Eliminate conditional include of
4619 errno.h on non-LP64 systems to simplify build requirements.
4620
88388a52
JM
46212009-05-04 Joseph Myers <joseph@codesourcery.com>
4622
4623 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
4624 diagnostics.
4625 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
4626 and pass value to identifier_to_locale.
4627 (warn_variable_length_array): Make name a tree.
4628 (grokdeclarator): Separate diagnostic texts for named and unnamed
4629 declarators. Use %qE for named declarators.
4630 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
4631 diagnostics.
4632 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
4633 identifiers in diagnostics.
4634 * c-typeck.c (push_member_name, start_init): Pass identifiers to
4635 identifier_to_locale. Mark "anonymous" strings for translation.
4636
960c5c79
ME
46372009-05-04 Michael Eager <eager@eagercon.com>
4638
4639 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 4640 address for DImode/DFmode only if double-precision FP regs.
960c5c79 4641
d083fbba
ME
46422009-05-04 Michael Eager <eager@eagercon.com>
4643
4644 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
4645 TARGET_SINGLE_FLOAT check.
4646
c3ba8d32
ME
46472009-05-04 Michael Eager <eager@eagercon.com>
4648
4649 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
4650
edce9f18
ME
46512009-05-04 Michael Eager <eager@eagercon.com>
4652
4653 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
4654 * config/rs6000/t-xilinx: New
4655
506d7b68
PB
46562009-05-04 Paolo Bonzini <bonzini@gnu.org>
4657
e913423f 4658 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
4659 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
4660 * gcc/explow.c (memory_address): Use target hook.
4661 * gcc/targhooks.c (default_legitimize_address): New.
4662 * gcc/targhooks.h (default_legitimize_address): New.
4663 * gcc/target.h (legitimize_address): New.
4664 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
4665 (TARGET_INITIALIZER): Include it.
4666 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
4667
4668 * config/bfin/bfin-protos.h (legitimize_address): Remove.
4669 * config/bfin/bfin.c (legitimize_address): Remove.
4670 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
4671 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
4672 Remove.
506d7b68
PB
4673 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
4674 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
4675
4676 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
4677 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
4678 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
4679 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
4680 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
4681 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
4682 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
4683 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
4684 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
4685 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
4686 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
4687 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
4688 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
4689 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
4690 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
4691 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
4692 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
4693 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
4694 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
4695 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
4696 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
4697 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
4698 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
4699
4700 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
4701 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
4702 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
4703 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
4704 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
4705 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
4706 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
4707 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
4708 (thumb_legitimize_address): Delete.
4709 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
4710 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
4711 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
4712 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
4713 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
4714 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
4715 Delete.
4716 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
4717 Delete.
506d7b68
PB
4718
4719 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
4720 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
4721 * config/m32r/m32r.c (m32r_legitimize_address): New.
4722 * config/m68k/m68k.c (m68k_legitimize_address): New.
4723 * config/score/score.c (score_legitimize_address): Standardize.
4724 * config/score/score3.c (score3_legitimize_address): Standardize.
4725 * config/score/score3.h (score3_legitimize_address): Adjust.
4726 * config/score/score7.c (score7_legitimize_address): Standardize.
4727 * config/score/score7.h (score7_legitimize_address): Adjust.
4728 * config/sh/sh.c (sh_legitimize_address): New.
4729 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
4730
4731 * gcc/config/s390/s390.c (legitimize_address): Rename to...
4732 (s390_legitimize_address): ... this.
4733 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
4734 (sparc_legitimize_address): ... this.
4735 * gcc/config/i386/i386.c (legitimize_address): Rename to...
4736 (ix86_legitimize_address): ... this.
4737 * gcc/config/avr/avr.c (legitimize_address): Rename to...
4738 (avr_legitimize_address): ... this.
4739 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
4740 (mn10300_legitimize_address): ... this.
4741 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
4742 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
4743 (alpha_expand_mov): Adjust call.
4744
4745 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
4746 * config/spu/spu.c (spu_legitimize_address): Likewise.
4747 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
4748 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
4749
a3af5087
JM
47502009-05-04 Joseph Myers <joseph@codesourcery.com>
4751
4752 * intl.c (locale_encoding, locale_utf8): New.
4753 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
4754 * intl.h (locale_encoding, locale_utf8): Declare.
4755 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
4756 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
4757 New.
4758 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
4759 argument.
4760 (pp_tree_identifier): Define to call pp_base_tree_identifier.
4761 (pp_base_tree_identifier): Declare as function.
4762 (identifier_to_locale): Declare.
4763 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 4764 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 4765
ea5cd5f1
RG
47662009-05-04 Richard Guenther <rguenther@suse.de>
4767
4768 PR middle-end/40015
4769 * builtins.c (fold_builtin_memory_op): Do not decay to element
4770 type if the size matches the whole array.
4771
ddc2690a
KH
47722009-05-04 Kazu Hirata <kazu@codesourcery.com>
4773
4774 * expmed.c (synth_mult): When trying out a shift, pass the result
4775 of a signed shift.
4776
ef268d34
KH
47772009-05-04 Kazu Hirata <kazu@codesourcery.com>
4778
4779 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
4780 (shiftsub1_cost): New.
4781 (init_expmed): Compute shiftsub1_cost.
4782 (synth_mult): Optimize multiplications by constants of the form
4783 -(2^^m-1) for some constant positive integer m.
4784
255d3827
RG
47852009-05-03 Richard Guenther <rguenther@suse.de>
4786
4787 PR c/39983
4788 * c-typeck.c (array_to_pointer_conversion): Do not built
4789 ADDR_EXPRs of arrays of pointer-to-element type.
4790 * c-gimplify.c (c_gimplify_expr): Revert change fixing
4791 up wrong ADDR_EXPRs after-the-fact.
4792 * c-common.c (strict_aliasing_warning): Strip pointer
4793 conversions for obtaining the original type.
4794 * builtins.c (fold_builtin_memset): Handle array types.
4795 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
4796 and array types
4797
16c33770
RG
47982009-05-03 Richard Guenther <rguenther@suse.de>
4799
4800 PR middle-end/23329
4801 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
4802 Do not lose casts from array types with unknown extent to array
4803 types with known extent.
4804 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
4805 alias set compatibility.
4806
62a67c94
MLI
48072009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
4808
4809 * flags.h (extra_warnings): Delete.
4810 * toplev.c (process_options): Handle Wuninitialized here.
4811 * opts.c (extra_warnings): Delete.
4812 (set_Wextra): Delete.
4813 (common_handle_option): -Wextra can be handled automatically.
4814 * c-opts.c (c_common_handle_option): Delete obsolete code.
4815 (c_common_post_options): Simplify comment.
4816 * common.opt (W): Add Var.
4817 (Wextra): Add Var.
4818 (Wuninitialized): Initialize to -1.
4819
8c7926c4
AN
48202009-05-03 Adam Nemet <anemet@caviumnetworks.com>
4821 Richard Guenther <rguenther@suse.de>
4822
4823 * expr.c (get_def_for_expr): New function.
4824 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4825 SSA rather than trees.
4826 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
4827 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4828
fa5da7de
JM
48292009-05-03 Joseph Myers <joseph@codesourcery.com>
4830
4831 * c-common.c (reswords): Add _Imaginary.
4832 * c-common.c (enum rid): Add RID_IMAGINARY.
4833
2ddd5020
PB
48342009-05-03 Paolo Bonzini <bonzini@gnu.org>
4835
4836 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4837 Patch by Richard Guenther.
4838
aea88c05
AS
48392009-05-03 Anatoly Sokolov <aesok@post.ru>
4840
4841 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4842 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4843 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4844 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4845 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4846 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4847 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4848 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4849 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4850 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4851 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4852 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4853 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4854 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4855 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4856 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4857 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4858 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4859
85e59f3a
RG
48602009-05-02 Richard Guenther <rguenther@suse.de>
4861
4862 PR tree-optimization/39940
4863 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4864 doing so.
4865
4636b850
RG
48662009-05-02 Richard Guenther <rguenther@suse.de>
4867
4868 PR middle-end/40001
4869 * tree-ssa.c (execute_update_addresses_taken): Properly check
4870 if we can mark a variable DECL_GIMPLE_REG_P.
4871 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4872 back to the end of the function.
4873 (is_gimple_reg_type): Remove complex type special casing.
4874 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4875 if not optimizing.
4876
5e10cb5a
BE
48772009-05-02 Ben Elliston <bje@au.ibm.com>
4878
4879 * doc/collect2.texi (Collect2): Document search path behaviour
4880 when configured with --with-ld.
4881
048bf48b
JH
48822009-05-02 Jan Hubicka <jh@suse.cz>
4883
4884 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4885 parameter; update callers.
aa016ff7
UB
4886 (coalesce_cost_edge): EH edges are costier because they needs
4887 splitting even if not critical and even more costier when there are
4888 multiple EH predecestors.
048bf48b 4889
d5c5f9ab
JH
48902009-05-02 Jan Hubicka <jh@suse.cz>
4891
4892 * except.c (remove_eh_handler_and_replace): Handle updating after
4893 removing TRY blocks.
4894
2ed1959a
EB
48952009-05-02 Eric Botcazou <ebotcazou@adacore.com>
4896
4897 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4898
d363a7e7
SB
48992009-05-02 Steven Bosscher <steven@gcc.gnu.org>
4900
4901 * varasm.c: Do not include c-pragma.h.
4902 * attribs.c: Do not incude c-common.h.
4903
9c3d55b4
MM
49042009-05-01 Michael Matz <matz@suse.de>
4905
4906 * calls.c (initialize_argument_information): Handle SSA names like
4907 decls with a non MEM_P DECL_RTL.
4908
ea264ca5
SB
49092009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4910
4911 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4912 * ipa-utils.c: Likewise.
4913 * ipa-type-escape.c: Likewise.
4914 * cgraphunit.c Do not include c-common.h.
4915 * ipa-pure-const.c: Likewise.
4916 * tree-if-conv.c: Likewise.
4917 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4918 * ipa-struct-reorg.c: Likewise.
4919 * tree-nomudflap.c: Likewise.
4920 * tree-ssa-structalias.c: Likewise.
4921
6c5d4d1a
SB
49222009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4923
4924 * store-motion.c: Many cleanups to make this pass a first-class
4925 citizen instead of an appendix to gcse load motion. Add TODO list
4926 to make this pass faster/cleaner/better.
4927
4928 (struct ls_expr): Post gcse.c-split cleanups.
4929 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
4930 "stores" field to "avail_stores".
4931 (pre_ldst_mems): Rename to store_motion_mems.
4932 (pre_ldst_table): Rename to store_motion_mems_table.
4933 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4934 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4935 (ldst_entry): Rename to st_expr_entry, update users.
4936 (free_ldst_entry): Rename to free_st_expr_entry, update users.
4937 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
4938 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4939 update caller.
6c5d4d1a
SB
4940 (first_ls_expr): Rename to first_st_expr, update users.
4941 (next_ls_expr): Rename to next_st_expr, update users.
4942 (print_ldst_list): Rename to print_store_motion_mems. Print names of
4943 fields properly for store motion instead of names inherited from load
4944 motion in gcse.c.
4945 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4946 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
4947 are done with it.
4948
4949 (ae_kill): Rename to st_kill, update users.
4950 (ae_gen): Rename to st_avloc, update users.
4951 (transp): Rename to st_transp, update users.
4952 (pre_insert_map): Rename to st_insert_map, update users.
4953 (pre_delete_map): Rename to st_delete_map, update users.
4954 (insert_store, build_store_vectors, free_store_memory,
4955 one_store_motion_pass): Update for abovementioned changes.
4956
4957 (gcse_subst_count, gcse_create_count): Remove.
4958 (one_store_motion_pass): New statistics counters "n_stores_deleted"
4959 and "n_stores_created", local variables.
4960
4961 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4962 use for_each_rtx.
4963
4964 (regvec, compute_store_table_current_insn): Remove.
4965 (reg_set_info, reg_clear_last_set): Remove.
4966 (compute_store_table): Use DF caches instead of local dataflow
4967 solvers.
4968
b02cec6e
JM
49692009-05-01 Joseph Myers <joseph@codesourcery.com>
4970
4971 * c-objc-common.c (c_tree_printer): Print identifiers with
4972 pp_identifier, not pp_string. Mark "({anonymous})" for
4973 translation.
4974 * c-pretty-print.c (pp_c_ws_string): New.
4975 (pp_c_cv_qualifier, pp_c_type_specifier,
4976 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4977 pp_c_storage_class_specifier, pp_c_function_specifier,
4978 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4979 pp_c_primary_expression, pp_c_postfix_expression,
4980 pp_c_unary_expression, pp_c_shift_expression,
4981 pp_c_relational_expression, pp_c_equality_expression,
4982 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4983 use pp_string and pp_c_ws_string in place of pp_identifier and
4984 pp_c_identifier for non-identifiers. Mark English strings for
4985 translation.
4986 * c-pretty-print.h (pp_c_ws_string): Declare.
4987
cd533689
PP
49882009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
4989 Roland McGrath <roland@redhat.com>
4990
aa016ff7 4991 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
4992 (ENABLE_LD_BUILDID): New configuration option.
4993 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4994 (LINK_BUILDID_SPEC): New macro.
4995 (init_spec): If defined, prepend it between LINK_EH_SPEC and
4996 link_spec.
4997 * doc/install.texi: Document --enable-linker-build-id option.
4998 * configure: Rebuild.
4999 * config.in: Rebuild.
5000
ba6adec4
AN
50012009-04-30 Adam Nemet <anemet@caviumnetworks.com>
5002
5003 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
5004 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
5005 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
5006 MIPS_GP_SAVE_AREA_SIZE.
5007 * config/mips/mips.c (struct mips_frame_info): Update comment
5008 before arg_pointer_offset and hard_frame_pointer_offset.
5009 (mips_compute_frame_info): Update diagram before function: to
5010 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
5011 indicate the position of frame_pointer_rtx with -fstack-protector and
5012 to show args_size. Don't allocate cprestore area for leaf functions
5013 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
5014 cprestore_size.
5015 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
5016
48f5b722
MM
50172009-04-30 Michael Matz <matz@suse.de>
5018
ba6adec4
AN
5019 PR tree-optimization/39955
5020 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 5021
b65d6744
DK
50222009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
5023
5024 * ira.c (setup_cover_and_important_classes): Use safe macro
5025 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
5026 directly.
5027 * genpreds.c (write_tm_preds_h): Output suitable definition of
5028 REG_CLASS_FOR_CONSTRAINT.
5029
f136c8ae
RAE
50302009-04-30 Rafael Avila de Espindola <espindola@google.com>
5031
5032 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
5033 instead of an int.
5034 * bitmap.c (bitmap_descriptor): Likewise.
5035 * ggc-common.c (loc_descriptor): Likewise.
5036 * varray.c (varray_descriptor): Likewise.
5037 * vec.c (vec_descriptor): Likewise.
5038
43fcece8 50392009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
5040
5041 * Makefile.in (dce.o): Add $(EXCEPT_H).
5042 * dce.c: Include except.h and delete redundant vector definitions.
5043 (deletable_insn_p): Return false for non-call insns that can throw
5044 if DF is running.
5045
df35c271
SB
50462009-04-30 Steven Bosscher <steven@gcc.gnu.org>
5047
5048 * gcse.c (ae_gen): Remove.
5049 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
5050 and make non-static function to make it available in store-motion.c.
5051 Update call sites with search-and-replace.
5052 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
5053 extract_mentioned_regs, extract_mentioned_regs_helper,
5054 find_moveable_store, compute_store_table, load_kills_store, find_loads,
5055 store_killed_in_insn, store_killed_after, store_killed_before,
5056 build_store_vectors, insert_insn_start_basic_block, insert-store,
5057 remove_reachable_equiv_notes, replace_store_insn, delete_store,
5058 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
5059 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
5060 * store-motion.c: ...new file. Also copy data structures from gcse.c
5061 and clean up to remove parts not used by store motion.
5062 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
5063 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
5064
f711a87a
RR
50652009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5066
5067 PR target/38571
5068 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
5069 when optimizing for size.
5070
fa5ed76e
HPN
50712009-04-30 Hans-Peter Nilsson <hp@axis.com>
5072
5073 * gcse.c (gcse_constant_p): Fix typo in last change.
5074
0acbbdb0
RAE
50752009-04-30 Rafael Avila de Espindola <espindola@google.com>
5076
5077 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
5078
82f5c05d
AK
50792009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
5080
5081 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
5082
6d8f135b
JW
50832009-04-29 James E. Wilson <wilson@codesourcery.com>
5084
5085 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
5086 CONST_HIGH_PART result.
5087
c21ca196
AS
50882009-04-29 Anatoly Sokolov <aesok@post.ru>
5089
5090 * config/avr/avr.c (initial_elimination_offset): Rename to
5091 avr_initial_elimination_offset.
5092 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
5093 change return type to bool.
5094 (avr_can_eliminate): New function.
5095 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
5096 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
5097 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 5098 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
5099 avr_initial_elimination_offset.
5100 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
5101 (avr_initial_elimination_offset): Define.
5102
2a34bece 51032009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 5104 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
5105
5106 PR rtl-optimization/39938
5107 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
5108 * cfgrtl.c: Include insn-attr.h.
5109 (rest_of_pass_free_cfg): New function.
5110 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
5111 * resource.c (init_resource_info): Remove call to df_analyze.
5112
5dc7911e
RG
51132009-04-29 Richard Guenther <rguenther@suse.de>
5114
5115 PR target/39943
5116 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
5117 allow conversion to signed integers.
5118
1fe479fd
RG
51192009-04-29 Richard Guenther <rguenther@suse.de>
5120
5121 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
5122 shifts of floating point vectors if the shift amount is
5123 a constant multiple of the element size.
5124
8e001680
AK
51252009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
5126 Michael Matz <matz@suse.de>
5127
5128 PR middle-end/39927
5129 PR bootstrap/39929
5130 * tree-outof-ssa.c (emit_partition_copy): New function.
5131 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5132 insert_part_to_rtx_on_edge): Perform the partition base var
5133 copy using emit_partition_copy.
5134 (insert_value_copy_on_edge): Convert constants to the right mode.
5135 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
5136 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
5137
e50e3081
BS
51382009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5139
5140 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
5141 scan backwards to try to find a constant to initialize it.
5142
4e5d521b
BS
5143 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
5144 insn before the loop_end instruction, don't look past labels.
5145
7c90021d
RG
51462009-04-29 Richard Guenther <rguenther@suse.de>
5147
5148 PR middle-end/39937
5149 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
5150 loose type conversions.
5151 (forward_propagate_addr_expr): Fix tuplification bug. Remove
5152 stmts only if there are no uses of its definition.
5153
97a988bc
BS
51542009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5155
5156 * config/bfin/bfin.h (splitting_loops): Declare.
5157 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
5158 Reorder bit definitions to be ascending.
5159 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
5160 * config/bfin/bfin.c (splitting_loops): New variable.
5161 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
5162 (struct loop_info): Remove members INIT and LOOP_INIT.
5163 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
5164 the LSETUP sequence. Allow LC to be loaded from any register, but
5165 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
5166 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
5167 set to 1.
5168 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
5169 of reload_completed.
aa016ff7 5170
97a988bc
BS
5171 From Jie Zhang:
5172 * config/bfin/bfin.md (movsi_insn): Refine constraints.
5173
0c463e16
RAE
51742009-04-29 Rafael Avila de Espindola <espindola@google.com>
5175
5176 * Makefile.in (PLUGIN_VERSION_H): New.
5177 (OBJS-common): Remove plugin-version.o.
5178 (plugin.o): Depend on (PLUGIN_VERSION_H).
5179 (plugin-version.o): Remove.
5180 * configure: Regenerate
5181 * configure.ac: Create plugin-version.h.
5182 * gcc-plugin.h (plugin_gcc_version): Remove.
5183 (plugin_default_version_check): Change signature.
5184 * plugin-version.c: Remove.
5185 * plugin.c: Include plugin-version.h.
5186 (str_plugin_gcc_version_name): Remove.
5187 (try_init_one_plugin): Pass gcc version to plugin_init.
5188 (plugin_default_version_check): Both gcc and plugin versions are now
5189 arguments.
5190
307e7eab
BS
51912009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5192
5193 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
5194 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
5195 Remove special case testing for last insn of inner loops. Don't fail
5196 if the loop ends with a jump, emit an extra nop instead.
307e7eab 5197
c5d96723
BS
5198 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
5199 DREGS rather than comparing directly. Remove code that tries to
5200 account for latencies.
5201
de0b4ad5
RG
52022009-04-29 Richard Guenther <rguenther@suse.de>
5203
5204 PR tree-optimization/39941
5205 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
5206 eliminating an indirect call.
5207
3a19701a
RG
52082009-04-29 Richard Guenther <rguenther@suse.de>
5209
5210 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
5211 parameter. Allow invariants as base if !require_lvalue.
5212 (verify_gimple_assign_single): Adjust.
5213
a0a31d1e
BS
52142009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5215
5216 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
5217 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
5218 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
5219 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
5220 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
5221 a VEC_SELECT.
aa016ff7
UB
5222 * config/bfin/bfin.c (bfin_expand_builtin,
5223 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 5224
795bd26a
RG
52252009-04-28 Richard Guenther <rguenther@suse.de>
5226
5227 * tree-vect-loop.c (get_initial_def_for_induction): Use
5228 correct types for pointer increment.
5229
04be270f
KG
52302009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5231
5232 * toplev.c (print_version): Update GMP version string calculation.
5233
e1a3b85c
EB
52342009-04-28 Eric Botcazou <ebotcazou@adacore.com>
5235
5236 PR rtl-optimization/39938
5237 * resource.c (init_resource_info): Add call to df_analyze.
5238
8224166e
UB
52392009-04-28 Uros Bizjak <ubizjak@gmail.com>
5240
5241 * config/alpha/alpha.md (usegp): Cast the result of
5242 alpha_find_lo_sum_using_gp to enum attr_usegp.
5243 * config/alpha/alpha.c (override_options): Remove end-of-structure
5244 marker element from cpu_table. Use array size of cpu_table to handle
5245 -mcpu and -mtune options.
5246 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
5247
c5f0fe67
JM
52482009-04-28 Joseph Myers <joseph@codesourcery.com>
5249
5250 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
5251 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
5252 tune_32 and tune_64.
5253 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
5254 support on PowerPC.
5255 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
5256 * config/rs6000/option-defaults.h: ... here. New file.
5257 (OPT_64, OPT_32): Define.
5258 (MASK_64BIT): Define to 0 if not already defined.
5259 (OPT_ARCH64, OPT_ARCH32): Define.
5260 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
5261 and tune_64.
5262
0c48a567
RR
52632009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5264
5265 * config/arm/arm.c (arm_override_options): Emit error on using
5266 fpa with AAPCS.
5267
f1028b9d
UB
52682009-04-28 Uros Bizjak <ubizjak@gmail.com>
5269
5270 PR rtl-optimization/39914
5271 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5272 registers for allocnos created from user-defined variables only
5273 when not optimizing.
5274
e0dd989a
RG
52752009-04-28 Richard Guenther <rguenther@suse.de>
5276
5277 PR middle-end/39937
5278 * fold-const.c (fold_binary): Use distribute_real_division only
5279 on float types.
5280
9a17c91d
SE
52812009-04-28 Steve Ellcey <sje@cup.hp.com>
5282
5283 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
5284 add hpux-stdint.h to tm_file.
5285 (hppa[12]*-*-hpux11*): Ditto.
5286 (ia64*-*-hpux*): Ditto.
5287 * config/hpux-stdint.h: New.
60839f5d 5288 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 5289 __STDC_EXT__ for all compiles.
60839f5d
EB
5290 * config/pa/pa-hpux.h: Ditto.
5291 * config/pa/pa-hpux10.h: Ditto.
5292 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 5293
af04e659
CM
52942009-04-28 Catherine Moore <clm@codesourcery.com>
5295
5296 * debug.h (set_name): Add comment.
5297
04ef80ce
AP
52982009-04-28 Andrew Pinski <pinskia@gmail.com>
5299
5300 PR target/39929
5301 * config/darwin.c (machopic_gen_offset): Check
5302 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
5303 * config/arm/arm.c (require_pic_register): Likewise.
5304
65ad77af
PB
53052009-04-28 Paolo Bonzini <bonzini@gnu.org>
5306
8224166e
UB
5307 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
5308 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
5309 m32c_promote_prototypes): Delete.
65ad77af 5310
1b15a008
MM
53112009-04-28 Michael Matz <matz@suse.de>
5312
5313 PR middle-end/39922
5314 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
5315 constants.
5316
7569a6cc
RG
53172009-04-28 Richard Guenther <rguenther@suse.de>
5318
f1028b9d 5319 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 5320
ead204d9
RR
53212009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5322
5323 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
5324 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
5325 * config/arm/arm-tune.md: Regenerate.
5326
f2c45f08 53272009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 5328
f2c45f08
AM
5329 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
5330 block if there are complex incoming edges.
5331 (sel_merge_blocks): Remove useless assert.
5332 (sel_redirect_edge_and_branch): Check that edge was redirected.
5333 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
5334 (sel_find_rgns): Delete declaration.
5335 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
5336 the region when it is not a preheader.
5337
7a00d767
UB
53382009-04-28 Uros Bizjak <ubizjak@gmail.com>
5339
5340 PR c/39323
5341 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
5342
448ee662
RG
53432009-04-28 Richard Guenther <rguenther@suse.de>
5344
5345 * tree.h (SSA_NAME_VALUE): Remove.
5346 (struct tree_ssa_name): Remove value_handle member.
5347 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
5348 array for jump threading.
5349 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
5350 SSA_NAME_VALUEs.
5351 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
5352 * tree-flow.h (threadedge_initialize_values): Declare.
5353 (threadedge_finalize_values): Likewise.
5354 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
5355 (SSA_NAME_VALUE): Define.
5356 (threadedge_initialize_values): New function.
5357 (threadedge_finalize_values): Likewise.
5358 * tree-ssa-dom.c (ssa_name_values): New global variable.
5359 (SSA_NAME_VALUE): Define.
f1028b9d 5360 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 5361
8644a673
IR
53622009-04-28 Ira Rosen <irar@il.ibm.com>
5363
5364 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
5365 Use REPORT_VECTORIZED_LOCATIONS instead
5366 REPORT_VECTORIZED_LOOPS.
5367 * tree-vectorizer.c (vect_verbosity_level): Make static.
5368 (vect_loop_location): Rename to vect_location.
5369 (vect_set_verbosity_level): Update comment.
5370 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
5371 and vect_location.
5372 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
5373 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
5374 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
5375 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
5376 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 5377 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 5378 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
5379 REPORT_UNVECTORIZED_LOCATIONS.
5380 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
5381 and vect_used_in_loop and to vect_unused_in_scope and
5382 vect_used_in_scope.
5383 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
5384 (vect_verbosity_level): Remove declaration.
5385 (vect_analyze_operations): Likewise.
5386 (vect_analyze_stmt): Declare.
5387 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
5388 REPORT_UNVECTORIZED_LOCATIONS.
5389 (vect_get_loop_niters): Fix indentation.
5390 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
5391 (vect_analyze_loop_operations): New function.
5392 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
5393 vect_analyze_operations.
5394 (vect_is_simple_reduction): Use new names.
5395 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
5396 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
5397 to specify whether the data references can be a part of interleaving
5398 chain.
8644a673
IR
5399 (vect_analyze_data_ref_dependence): Use new names.
5400 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
5401 (vect_create_addr_base_for_vector_ref): Remove redundant code.
5402 * tree-vect-patterns.c (widened_name_p): Use new names.
5403 (vect_recog_dot_prod_pattern): Likewise.
5404 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
5405 (process_use, vect_mark_stmts_to_be_vectorized,
5406 vect_model_simple_cost, vect_model_store_cost,
5407 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
5408 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
5409 vectorizable_operation, vectorizable_type_demotion,
5410 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
5411 vectorizable_condition): Likewise.
5412 (vect_analyze_operations): Split into vect_analyze_loop_operations
5413 and ...
5414 (vect_analyze_stmt): ... new function.
5415 (new_stmt_vec_info): Use new names.
5416 (vect_is_simple_use): Use new names and fix comment.
5417 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
5418 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
5419
b91322f2
UB
54202009-04-28 Uros Bizjak <ubizjak@gmail.com>
5421
5422 PR target/39911
5423 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
5424 and integer modes for x87 operands. Do not ICE for unsupported size,
5425 generate error instead. Generate error for unsupported operand types.
5426 ['z']: Do not handle HImode memory operands specially. Warning
5427 for floating-point operands. Fallthru to 'Z' for unsupported operand
5428 types. Do not ICE for unsupported size, generate error instead.
5429 (output_387_binary_op): Use %Z to output operands.
5430 (output_fp_compare): Ditto.
5431 (output_387_reg_move): Ditto.
5432
b2ed71b6
BE
54332009-04-28 Ben Elliston <bje@au.ibm.com>
5434
5435 PR c++/35652
5436 Revert:
5437
5438 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5439
5440 * builtins.c (c_strlen): Do not warn here.
5441 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
5442 * c-common.c (pointer_int_sum): Take an explicit location.
5443 Warn about offsets out of bounds.
5444 * c-common.h (pointer_int_sum): Adjust declaration.
5445
81f40b79
ILT
54462009-04-27 Ian Lance Taylor <iant@google.com>
5447
5448 * collect2.c (is_ctor_dtor): Change type of ret field in struct
5449 names to symkind.
5450 * dce.c (run_fast_df_dce): Change type of old_flags to int.
5451 * df-core.c (df_set_flags): Change return type to int. Change
5452 type of old_flags to int.
5453 (df_clear_flags): Likewise.
5454 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
5455 (df_get_conditional_uses): Likewise.
5456 * df.h (df_set_flags, df_clear_flags): Update declarations.
5457 * dwarf2out.c (struct indirect_string_node): Change type of form
5458 field to enum dwarf_form.
5459 (AT_string_form): Change return type to enum dwarf_form.
5460 * fixed-value.c (fixed_compare): Add cast to enum type.
5461 * fwprop.c (update_df): Change 0 to VOIDmode.
5462 * gensupport.c: Change 0 to UNKNOWN.
5463 * gimple.h (gimple_cond_code): Add cast to enum type.
5464 * haifa-sched.c (reemit_notes): Add cast to enum type.
5465 * hooks.c (hook_int_void_no_regs): Remove function.
5466 * hooks.h (hook_int_void_no_regs): Remove declaration.
5467 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 5468 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
5469 * real.c (real_arithmetic): Add cast to enum type.
5470 (real_compare): Likewise.
5471 * target.h (struct gcc_target): Change return type of
5472 branch_target_register_class to enum reg_class.
5473 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
5474 default_branch_target_register_class.
7a00d767 5475 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 5476 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 5477 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
5478 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
5479 cast to int.
5480 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
5481 ERROR_MARK.
5482 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
5483 vect_uninitialized_def. Change 0 to ERROR_MARK.
5484 * tree-vect-stmts.c (supportable_widening_operation): Don't
5485 initialize icode1 and icode2.
7a00d767 5486 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
5487 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
5488 and to STD_C89.
5489 (cmn_err_flag_specs): Change 0 to STD_C89.
5490 (cmn_err_char_table): Likewise.
5491 * config/arm/arm.c (get_arm_condition_code): Change type of code
5492 to enum arm_cond_code.
5493 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
5494 (IWMMXT_BUILTIN2): Likewise.
5495 (neon_builtin_type_bits): Don't define typedef.
5496 (neon_builtin_datum): Change type of bits field to int.
5497 (arm_expand_neon_args): Add cast to enum type.
5498 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
5499 TLS_MODEL_NONE.
5500 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
5501 casts to enum type.
5502 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
5503 MIPS_FP_COND_f.
5504 * config/mips/mips.md (jal_macro): Return enum constant.
5505 (single_insn): Likewise.
5506 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
5507 CODE_FOR_nothing.
5508 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5509 casts to enum type.
5510 * config/s390/s390.c (s390_tune_flags): Change type to int.
5511 (s390_arch_flags): Likewise.
7a00d767 5512 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
5513 * config/s390/s390.h (s390_tune_flags): Update declaration.
5514 (s390_arch_flags): Likewise.
5515 * config/sh/sh.c (prepare_move_operands): Compare
5516 tls_symbolic_operand result with enum constant.
5517 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
5518 (sh_expand_prologue): Add cast to enum type.
5519 (sh_expand_epilogue): Likewise.
5520 (tls_symbolic_operand): Change return type to enum tls_model.
5521 (fpscr_set_from_mem): Add cast to enum type.
5522 (legitimize_pic_address): Compare tls_symbolic_operand result with
5523 enum constant.
5524 (sh_target_reg_class): Change return type to enum reg_class.
5525 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
5526 PROCESSOR_xxx.
7a00d767
UB
5527 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
5528 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
5529 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
5530 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
5531 (delayed_branch, tls_call_delay): Likewise.
5532 (eligible_for_sibcall_delay): Likewise.
5533 (eligible_for_return_delay): Likewise.
5534 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
5535 (spu_expand_builtin_1): Likewise.
5536
5537 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
5538 for all types of conversions.
5539 (output_init_element): Issue -Wc++-compat warning if needed when
5540 initializing a bitfield with enum type.
5541 * c-parser.c (c_parser_expression): Set original_type to
5542 original_type of right hand operand of comman operator.
5543
e4ae5e77
RW
55442009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5545
5546 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
5547 grammar nits.
7a00d767 5548 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
5549 * doc/cpp.texi (Standard Predefined Macros)
5550 (Implementation-defined behavior): Likewise.
7a00d767 5551 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
5552 * doc/gimple.texi (GIMPLE Exception Handling)
5553 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 5554 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
5555 * doc/invoke.texi (Warning Options, Optimize Options)
5556 (AVR Options, Darwin Options): Likewise.
5557 (Optimize Options): Reformulate -fwhole-program description.
5558 * doc/loop.texi (Lambda): Likewise.
5559 * doc/md.texi (Output Template, Define Constraints)
5560 (Standard Names, Insn Splitting): Likewise.
5561 * doc/options.texi (Option properties): Likewise.
5562 * doc/passes.texi (Tree-SSA passes): Likewise.
5563 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
5564 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
5565 (File Names and DBX): Likewise.
5566 * doc/trouble.texi (Incompatibilities): Likewise.
5567
1883802f 55682009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
5569
5570 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
5571 instruction is correct.
5572
1883802f 55732009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
5574
5575 Allow non-constant arguments to conversion intrinsics.
5576 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
5577 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
5578 * spu.c (print_operand): Handle 'v' and 'w'.
5579 (exp2_immediate_p, spu_gen_exp2): Define.
5580 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
5581 spu_convtf_1): Update parameter descriptions.
7a00d767 5582 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
5583 * constraints.md ('v', 'w'): New.
5584 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
5585 Remove.
5586 (i2f, I2F): New define_mode_attr.
5587 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
5588 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
5589 fixuns_truncv4sfv4si2): Update to use mode attribute.
5590 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
5591 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
5592 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
5593 patterns for combine.
5594
5f39ad47
SB
55952009-04-27 Steven Bosscher <steven@gcc.gnu.org>
5596
5597 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
5598 (cprop, hoist, pre, store_motion): New debug counters.
5599 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
5600 is not an RTL pass anymore.
5601 (pass_profiling): Remove extern decl for pass removed in 2005.
5602 (pass_gcse, pass_jump_bypass): Remove.
5603 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
5604 to 0 for clean state.
5605 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
5606 * cse.c (gate_handle_cse_after_global_opts,
5607 rest_of_handle_cse_after_global_opts): New functions.
5608 (pass_cse_after_global_opts): New pass, does local CSE.
5609 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
5610 (TV_CPROP): New timevar.
5611 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
5612 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
5613 (gcse_main, recompute_all_luids): Remove.
5614 (compute_hash_table_work): Call max_reg_num instead of reading
5615 max_gcse_regno.
5616 (cprop_jump): Don't set run_jump_opt_after_gcse.
5617 (constprop_register): Always allow to alter jumps.
5618 (cprop_insn): Likewise.
5619 (do_local_cprop): Likewise.
5620 (local_cprop_pass): Likewise. Return non-zero if something changed.
5621 (cprop): Remove function, fold interesting bits into one_cprop_pass.
5622 (find_implicit_sets): Add note about missed optimization opportunity.
5623 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
5624 pass_rtl_cprop execute function.
5625 Don't bother tracking the pass number, each pass gets its own dumpfile
5626 now anyway.
5627 Always allow to alter jumpsand bypass jumps.
5628 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
5629 will just find no suitable set.
5630 (pre_edge_insert): Fix dumping, this function is for PRE only.
5631 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
5632 pass_rtl_pre execute function.
5633 (hoist_code): Return non-zero if something changed. Keep track of
5634 substitutions and insertions for statistics gathering similar to PRE.
5635 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
5636 called from the pass_rtl_hoist execute function. Show pass statistics.
5637 (compute_store_table): Use max_reg_num directly instead of using the
5638 formerly global max_gcse_regno.
5639 (build_store_vectors): Likewise.
5640 (replace_store_insn): Fix dumping.
5641 (store_motion): Rename to ...
5642 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
5643 pass, called from the pass_rtl_store_motion execute function. Keep
5644 track of substitutions and insertions for statistics gathering similar
5645 to PRE.
5646 (bypass_jumps): Remove, fold interesting bits into ...
5647 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
5648 from the pass_rtl_cprop execute function.
5649 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
5650 pass_jump_bypass): Remove.
5651 (gate_handle_gcse, rest_of_handle_gcse): Remove.
5652 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
5653 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
5654 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
5655 (gate_rtl_store_motion, execute_rtl_store_motion,
5656 pass_rtl_store_motion): New.
5657 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
5658 make it clear that -fcse-skip-blocks is a no-op for backward compat.
5659 * passes.c (init_optimization_passes): Remove pass_gcse and
5660 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
5661 and cse_after_global_opts in place of pass_gcse. Schedule cprop
5662 instead of pass_jump_bypass.
5663
c685de4a
RG
56642009-04-27 Richard Guenther <rguenther@suse.de>
5665
5666 PR middle-end/39928
5667 * gimplify.c (gimplify_expr): If we are required to create
5668 a temporary make sure it ends up as register.
5669
72d41f29
L
56702009-04-27 H.J. Lu <hongjiu.lu@intel.com>
5671
5672 PR target/39903
5673 * config/i386/i386.c (construct_container): Don't call
5674 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
5675 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
5676
e97809c6
MM
56772009-04-27 Michael Matz <matz@suse.de>
5678
5679 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
5680 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
5681 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
5682 (dump_replaceable_exprs): Take a bitmap.
5683 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
5684 array.
5685 (expand_gimple_basic_block): Likewise.
5686 * tree-ssa-ter.c (struct temp_expr_table_d): Make
5687 replaceable_expressions member a bitmap.
5688 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
5689 (mark_replaceable): Likewise.
5690 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
5691 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
5692
211ca15c
RG
56932009-04-27 Richard Guenther <rguenther@suse.de>
5694
5695 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
5696 (verify_stmts): Dispatch to gimple/type verification code.
5697 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
5698 issue with call argument types.
5699
fca5f3d1
MM
57002009-04-27 Michael Matz <matz@suse.de>
5701
5702 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
5703 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
5704 to above.
5705
a1fa3e79 57062009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 5707 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
5708
5709 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
5710 a label's basic block.
5711 (mark_target_live_regs): Tidy and rework obsolete comments.
5712 Change back DF problem to LIVE. If a label starts a basic block,
5713 assume that all registers that used to be live then still are.
5714 (init_resource_info): If a label starts a basic block, set its
5715 BLOCK_FOR_INSN accordingly.
5716 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
5717
33b223c0
RG
57182009-04-27 Richard Guenther <rguenther@suse.de>
5719
5720 * tree-flow-inline.h (function_ann): Remove.
5721 (get_function_ann): Likewise.
5722 * tree-dfa.c (create_function_ann): Remove.
5723 * tree-flow.h (struct static_var_ann_d): Remove.
5724 (struct function_ann_d): Likewise.
5725 (union tree_ann_d): Remove fdecl member.
5726 (function_ann_t): Remove.
5727 (function_ann, get_function_ann, create_function_ann): Remove
5728 declarations.
5729
e3136fa2
UB
57302009-04-27 Uros Bizjak <ubizjak@gmail.com>
5731
5732 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
5733
f87c9042
JH
57342009-04-27 Jan Hubicka <jh@suse.cz>
5735
5736 * ipa-pure-const.c (struct funct_state_d): New fields
5737 state_previously_known, looping_previously_known; remove
5738 state_set_in_source.
5739 (analyze_function): Use new fields.
5740 (propagate): Avoid assumption that state_set_in_source imply
5741 nonlooping.
5742
5743 * tree-ssa-loop-niter.c (finite_loop_p): New function.
5744 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
5745 * cfgloop.h (finite_loop_p): Declare.
5746
33abd718
MM
57472009-04-26 Michael Matz <matz@suse.de>
5748
e3136fa2 5749 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 5750
ddc34084
MM
57512009-04-26 Michael Matz <matz@suse.de>
5752
5753 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
5754 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
5755 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
5756 pass_mark_used_blocks): Remove.
5757 * tree-optimize.c (pass_free_datastructures,
5758 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
5759 * passes.c (init_optimization_passes): Don't call
5760 pass_mark_used_blocks, remove dead code.
5761
1fec7ed4
L
57622009-04-26 H.J. Lu <hongjiu.lu@intel.com>
5763
5764 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
5765 * tree-ssa-live.h (register_ssa_partition): Likewise.
5766
4e3825db
MM
57672009-04-26 Michael Matz <matz@suse.de>
5768
5769 Expand from SSA.
5770 * builtins.c (fold_builtin_next_arg): Handle SSA names.
5771 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
5772 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
5773 SSA names.
5774 (compare_pairs): Swap cost comparison.
5775 (coalesce_ssa_name): Don't use change_partition_var.
5776 * tree-nrv.c (struct nrv_data): Add modified member.
5777 (finalize_nrv_r): Set it.
5778 (tree_nrv): Use it to update statements.
5779 (pass_nrv): Require PROP_ssa.
5780 * tree-mudflap.c (mf_decl_cache_locals,
5781 mf_build_check_statement_for): Use make_rename_temp.
5782 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
5783 * alias.c (find_base_decl): Handle SSA names.
5784 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
5785 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
5786 * rtl.h (set_reg_attrs_for_parm): Declare.
5787 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
5788 to "optimized", remove unused locals at finish.
5789 (execute_free_datastructures): Make global, call
5790 delete_tree_cfg_annotations.
5791 (execute_free_cfg_annotations): Don't call
5792 delete_tree_cfg_annotations.
5793
5794 * ssaexpand.h: New file.
5795 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 5796 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
5797 (expand_expr_real_1): Expand SSA names.
5798 * cfgexpand.c (toplevel): Include ssaexpand.h.
5799 (SA): New global variable.
5800 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
5801 (SSAVAR): New macro.
5802 (set_rtl): New helper function.
5803 (add_stack_var): Deal with SSA names, use set_rtl.
5804 (expand_one_stack_var_at): Likewise.
5805 (expand_one_stack_var): Deal with SSA names.
5806 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
5807 before unique numbers.
5808 (expand_stack_vars): Use set_rtl.
5809 (expand_one_var): Accept SSA names, add asserts for them, feed them
5810 to above subroutines.
5811 (expand_used_vars): Expand all partitions (without default defs),
5812 then only the local decls (ignoring those expanded already).
5813 (expand_gimple_cond): Remove edges when jumpif() expands an
5814 unconditional jump.
5815 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5816 or remove abnormal edges. Ignore insns setting the LHS of a TERed
5817 SSA name.
5818 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5819 members of SA; deal with PARM_DECL partitions here; expand
5820 all PHI nodes, free tree datastructures and SA. Commit instructions
5821 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5822 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5823 info and statements at start, collect garbage at finish.
5824 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5825 (VAR_ANN_PARTITION) Remove.
5826 (change_partition_var): Don't declare.
5827 (partition_to_var): Always return SSA names.
5828 (var_to_partition): Only accept SSA names.
5829 (register_ssa_partition): Only check argument.
5830 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5831 member.
5832 (delete_var_map): Don't free it.
5833 (var_union): Only accept SSA names, simplify.
5834 (partition_view_init): Mark only useful SSA names as used.
5835 (partition_view_fini): Only deal with SSA names.
5836 (change_partition_var): Remove.
5837 (dump_var_map): Use ssa_name instead of partition_to_var member.
5838 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5839 basic blocks.
5840 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5841 (struct _elim_graph): New member const_dests; nodes member vector of
5842 ints.
5843 (set_location_for_edge): New static helper.
5844 (create_temp): Remove.
5845 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 5846 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
5847 (new_elim_graph): Allocate const_dests member.
5848 (clean_elim_graph): Truncate const_dests member.
5849 (delete_elim_graph): Free const_dests member.
5850 (elim_graph_size): Adapt to new type of nodes member.
5851 (elim_graph_add_node): Likewise.
5852 (eliminate_name): Likewise.
5853 (eliminate_build): Don't take basic block argument, deal only with
5854 partition numbers, not variables.
5855 (get_temp_reg): New static helper.
5856 (elim_create): Use it, deal with RTL temporaries instead of trees.
5857 (eliminate_phi): Adjust all calls to new signature.
5858 (assign_vars, replace_use_variable, replace_def_variable): Remove.
5859 (rewrite_trees): Only do checking.
5860 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5861 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5862 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5863 contains_tree_r, MAX_STMTS_IN_LATCH,
5864 process_single_block_loop_latch, analyze_edges_for_bb,
5865 perform_edge_inserts): Remove.
5866 (expand_phi_nodes): New global function.
5867 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
5868 functions, initialize new parameter, remember partitions having a
5869 default def.
5870 (finish_out_of_ssa): New global function.
5871 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
5872 don't reset in_ssa_p here, don't disable TER when mudflap.
5873 (pass_del_ssa): Remove.
5874 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5875 partition members.
5876 (execute_free_datastructures): Declare.
5877 * Makefile.in (SSAEXPAND_H): New variable.
5878 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5879 * basic-block.h (commit_one_edge_insertion): Declare.
5880 * passes.c (init_optimization_passes): Move pass_nrv and
5881 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5882 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5883 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5884 (redirect_branch_edge): Deal with super block when expanding, split
5885 out jump patching itself into ...
5886 (patch_jump_insn): ... here, new static helper.
5887
17c665a9
MM
58882009-04-26 Michael Matz <matz@suse.de>
5889
5890 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5891 beyond num_ssa_names.
5892 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5893 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5894
92061771
JJ
58952009-04-26 Jakub Jelinek <jakub@redhat.com>
5896
ce372372
JJ
5897 PR inline-asm/39543
5898 * fwprop.c (forward_propagate_asm): New function.
5899 (forward_propagate_and_simplify): Propagate also into __asm, if it
5900 doesn't increase the number of referenced registers.
5901
92061771
JJ
5902 PR c/39889
5903 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5904
59052009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
5906
5907 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5908 note_nonlocal_vla_type for nonlocal VLAs.
5909 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5910 contains_remapped_vars, remap_vla_decls): New functions.
5911 (convert_nonlocal_reference_stmt): If not optimizing, call
5912 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5913 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5914 if it wasn't found in var_map.
5915 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
5916 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5917 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5918 declare_vars.
5919 * gimplify.c (nonlocal_vlas): New variable.
5920 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5921 referenced VLAs.
5922 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 5923
4561e242
JJ
5924 * dwarf2out.c (loc_descr_plus_const): New function.
5925 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5926 mem_loc_descriptor, loc_descriptor_from_tree_1,
5927 descr_info_loc, gen_variable_die): Use it.
5928
a9548ddf
JJ
5929 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5930 !TREE_STATIC VAR_DECLs.
5931 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5932 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5933 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
5934 DECL_BY_REFERENCE is valid.
5935 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5936 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5937 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5938 Copy DECL_BY_REFERENCE.
5939 (struct nesting_copy_body_data): New type.
5940 (nesting_copy_decl): New function.
5941 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5942 if they have variable length.
5943
10555d08
MM
59442009-04-26 Michael Matz <matz@suse.de>
5945
5946 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5947 mark new temporaries for renaming.
5948
e11187cc
JM
59492009-04-26 Joseph Myers <joseph@codesourcery.com>
5950
5951 PR c/39581
5952 * c-decl.c (global_bindings_p): Return negative value.
5953 (c_variable_size): New. Based on variable_size from
5954 stor-layout.c.
5955 (grokdeclarator): Call c_variable_size not variable_size.
5956
f6a51d31
UB
59572009-04-26 Uros Bizjak <ubizjak@gmail.com>
5958
5959 * config/i386/i386.c (print_operand) ['z']: Fix typo.
5960
4b97723d
KT
59612009-04-26 Kai Tietz <kai.tietz@onevision.com>
5962
5963 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5964 Redefine it to just use mingw/include.
5965 (ASM_SPEC): Rules for -m32 and -m64.
5966 (LINK_SPEC): Use Likewise.
5967 (SPEC_32): New define.
5968 (SPEC_64): Likewise.
5969 (SUB_LINK_SPEC): Likewise.
5970 (MULTILIB_DEFAULTS): New define.
5971 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5972 Add multilib options.
5973 (MULTILIB_DIRNAMES): Likewise.
5974 (MULTILIB_OSDIRNAMES): Likewise.
5975 (LIBGCC): Likewise.
5976 (INSTALL_LIBGCC): Likewise.
5977
991d6621
JM
59782009-04-26 Joseph Myers <joseph@codesourcery.com>
5979
5980 PR c/39556
5981 * c-tree.h (enum c_inline_static_type): New.
5982 (record_inline_static): Declare.
5983 * c-decl.c (struct c_inline_static, c_inline_statics,
5984 record_inline_static, check_inline_statics): New.
5985 (pop_file_scope): Call check_inline_statics.
5986 (start_decl): Call record_inline_static instead of pedwarning
5987 directly for static in inline function.
5988 * c-typeck.c (build_external_ref): Call record_inline_static
5989 instead of pedwarning directly for static referenced in inline
5990 function.
5991
4a81774c
SB
59922009-04-26 Steven Bosscher <steven@gcc.gnu.org>
5993
5994 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5995 not new but only being rescanned.
5996 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5997 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5998 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5999 record_set_info, compute_set, grealloc): Remove.
6000 (recompute_all_luids): New function.
6001 (gcse_main): Don't compute sets, and don't do related memory
6002 allocations/free-ing. If something changed before the end of the
6003 pass, update LUIDs using recompute_all_luids.
6004 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
6005 (free_gcse_mem): Don't free it either.
6006 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
6007 Use the df insn LUIDs.
6008 (load_killed_in_block): Likewise.
6009 (compute_hash_table_work): Don't compute reg_set_in_block.
6010 (compute_transp): Use DF_REG_DEF_CHAINs.
6011 (local_cprop_pass): Don't use compute_sets and related functions.
6012 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
6013 Use get_max_uid() instead of max_cuid.
6014 (insert_insn_end_basic_block, pre_insert_copy_insn,
6015 update_ld_motion_stores): Don't try to
6016 keep reg_set tables up to date.
6017 (pre_insert_copies): Use df insn LUIDs.
6018 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
6019 (reg_set_info): Don't use extra bitmap argument.
6020 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
6021 information to compute regs_set_in_block.
6022 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
6023 (bypass_jumps): Don't use compute_sets and friends.
6024
e8f99a9d
RW
60252009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6026
6027 PR testsuite/39710
6028 * opts.c (undocumented_msg): Do not leave blank even with
6029 ENABLE_CHECKING.
6030
6895bac8
JM
60312009-04-25 Joseph Myers <joseph@codesourcery.com>
6032
6033 * c-decl.c (build_enumerator): Allow values folding to integer
6034 constants but not integer constant expressions with a pedwarn if
6035 pedantic.
6036
24070fcb
JM
60372009-04-25 Joseph Myers <joseph@codesourcery.com>
6038
6039 PR c/39582
6040 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
6041 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
6042 type is an integer constant.
6043
d6d89aa1
UB
60442009-04-25 Uros Bizjak <ubizjak@gmail.com>
6045
6046 PR target/39897
6047 * config/i386/i386.c (print_operand) ['z']: Revert handling of
6048 HImode operands.
6049
92f6fd0b
JM
60502009-04-25 Joseph Myers <joseph@codesourcery.com>
6051
6052 PR c/39564
6053 * c-decl.c (grokdeclarator): Diagnose declarations of functions
6054 with variably modified return type and no storage class
6055 specifiers, except for the case of nested functions. Distinguish
6056 extern declarations of functions with variably modified return
6057 types from those of objects with variably modified types.
6058
a3710436
JH
60592009-04-25 Jan Hubicka <jh@suse.cz>
6060
6061 * tree.c (list_equal_p): New function.
6062 * tree.h (list_equal_p): Declare.
6063 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6064 basic_block_def, basic_block, const_basic_block): New.
6065 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
6066 (redirect_eh_edge): New function.
6067 (make_eh_edge_update_phi): EH edges are not abnormal.
6068 * except.c: Include tree-flow.h.
6069 (list_match): New function.
6070 (eh_region_replaceable_by_p): New function.
6071 (replace_region): New function.
6072 (hash_type_list): New function.
6073 (hash_eh_region): New function.
6074 (eh_regions_equal_p): New function.
6075 (merge_peers): New function.
6076 (remove_unreachable_regions): Verify EH tree when checking;
6077 merge peers.
6078 (copy_eh_region_1): New function.
6079 (copy_eh_region): New function.
6080 (push_reachable_handler): New function.
6081 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
6082 regions without label but with live RESX.
6083 * except.h (redirect_eh_edge_to_label): New.
6084 * tree-flow.h (redirect_eh_edge): New.
6085 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6086 basic_block_def, basic_block, const_basic_block): Remove.
6087 * Makefile.in (except.o): Add dependency on tree-flow.h
6088 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
6089 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
6090 Remove.
6091
3764d512
EB
60922009-04-25 Eric Botcazou <ebotcazou@adacore.com>
6093
6094 PR bootstrap/39645
6095 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
6096 on the destination of memcpy.
6097
1c62e8f2
PB
60982009-04-25 Paolo Bonzini <bonzini@gnu.org>
6099
6100 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6101 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
6102 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
6103
496a4ef5
JH
61042009-04-25 Jan Hubicka <jh@suse.cz>
6105
6106 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
6107 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
6108 to be reached by different label than left.
6109 (update_eh_edges): Update comment; remove edge_to_remove if possible
6110 and return true if suceeded.
6111 (cleanup_empty_eh): Accept sharing map; handle shared regions.
6112 (cleanup_eh): Compute sharing map.
6113 * except.c (remove_eh_handler_and_replace): Add argument if we should
6114 update regions.
6115 (remove_unreachable_regions): Update for label sharing.
6116 (label_to_region_map): Likewise.
6117 (get_next_region_sharing_label): New function.
6118 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
6119 prev_try pointers.
6120 (remove_eh_handler): Update.
6121 (remove_eh_region_and_replace_by_outer_of): New function.
6122 * except.h (struct eh_region): Add next_region_sharing_label.
6123 (remove_eh_region_and_replace_by_outer_of,
6124 get_next_region_sharing_label): Declare.
6125 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
6126
61272009-04-25 Jan Hubicka <jh@suse.cz>
6128
6129 * tree-cfg.c (split_critical_edges): Split also edges where we can't
6130 insert code even if they are not critical.
6131
61322009-04-25 Jan Hubicka <jh@suse.cz>
6133
6134 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6135 (gimple_can_remove_branch_p): EH edges won't remove branch by
6136 redirection.
6137 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
6138 updating of non-abnormal EH edges.
6139 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6140 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
6141 (split_critical_edges): Split also edges where emitting code on them
6142 will lead to splitting later.
6143
a3a5e3d1
UB
61442009-04-25 Uros Bizjak <ubizjak@gmail.com>
6145 H.J. Lu <hongjiu.lu@intel.com>
6146
6147 PR target/39590
6148 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
6149 the configured assembler supports fildq and fistpq mnemonics.
6150 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
6151 * configure: Regenerated.
6152 * config.in: Ditto.
6153
6154 * config/i386/i386.c (print_operand): Handle 'Z'.
6155 ['z']: Remove handling of special fild/fist suffixes.
6156 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
6157 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
6158 suffix of fild insn.
6159 (*floatsi<mode>2_vector_mixed): Ditto.
6160 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
6161 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
6162 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6163 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
6164 * config/i386/gas.h (GAS_MNEMONICS): Remove.
6165
23750d7f
BE
61662009-04-25 Ben Elliston <bje@au.ibm.com>
6167
6168 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
6169 the source of a set operation.
6170
e6ff3083
AS
61712009-04-25 Anatoly Sokolov <aesok@post.ru>
6172
6173 * target.h (struct gcc_target): Add case_values_threshold field.
6174 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
6175 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
6176 * targhooks.c (default_case_values_threshold): New function.
6177 * targhooks.h (default_case_values_threshold): Declare function.
6178 * stmt.c (expand_case): Use case_values_threshold target hook.
6179 * expr.h (case_values_threshold): Remove declartation.
6180 * expr.c (case_values_threshold): Remove function.
6181 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
6182
6183 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
6184 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6185 (avr_case_values_threshold): Declare as static.
6186 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
6187
6188 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
6189 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6190 (mn10300_case_values_threshold): New function.
6191
569c72fc
L
61922009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6193
6194 * ira.c (setup_cover_and_important_classes): Add enum cast.
6195
ff3cb468
VM
61962009-04-24 Vladimir Makarov <vmakarov@redhat.com>
6197
6198 * genpreds.c (write_enum_constraint_num): Output definition of
6199 CONSTRAINT_NUM_DEFINED_P macro.
6200 * ira.c (setup_cover_and_important_classes): Use
6201 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
6202
4f7be849
DD
62032009-04-24 DJ Delorie <dj@redhat.com>
6204
6205 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
6206 __SH2A_SINGLE_ONLY__ also.
6207
735b94a7
SE
62082009-04-24 Steve Ellcey <sje@cup.hp.com>
6209
6210 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
6211 (movdf_internal): Ditto.
6212 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
6213 SFmode and DFmode constants.
6214 (ia64_print_operand): Add 'G' format for printing
6215 floating point constants.
6216
77a30264
RG
62172009-04-24 Richard Guenther <rguenther@suse.de>
6218
6219 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
6220 from unsigned additions.
6221
2b6da65c
JM
62222009-04-24 Joseph Myers <joseph@codesourcery.com>
6223
6224 * c-typeck.c (set_init_index): Allow array designators that are
6225 not integer constant expressions with a pedwarn if pedantic.
6226
f5a17c43
BS
62272009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6228
6229 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
6230 zero if no overlap in nonzero bits between the operands.
6231
32e8bb8e
ILT
62322009-04-24 Ian Lance Taylor <iant@google.com>
6233
6234 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
6235 (record_dead_and_set_regs): Likewise.
6236 * df.h (struct df_mw_hardreg): Change flags field to int.
6237 (struct df_base_ref): Likewise.
6238 (struct df): Change changeable_flags field to int.
6239 * df-scan.c (df_defs_record): Change clobber_flags to int.
6240 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
6241 constants rather than #define macros.
6242 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
6243 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
6244 (enum dwarf_calling_convention): Likewise.
6245 (enum dwarf_line_number_x_ops): Likewise.
6246 (enum dwarf_call_frame_info): Likewise.
6247 (enum dwarf_source_language): Likewise.
6248 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
6249 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
6250 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
6251 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
6252 * genrecog.c (maybe_both_true_2): Change c to int.
6253 (write_switch): Likewise. Add cast to enum type.
6254 * gimplify.c (gimplify_omp_for): Handle return values from
6255 gimplify_expr using MIN rather than bitwise or.
6256 (gimplify_expr): Add cast to enum type.
6257 * ipa-prop.c (update_jump_functions_after_inlining): Change
6258 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
6259 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
6260 Add casts to enum type.
32e8bb8e
ILT
6261 (setup_cover_and_important_classes): Change cl to int. Add casts
6262 to enum type.
6263 (setup_class_translate): Change cl and mode to int.
6264 (ira_init_once): Change mode to int.
6265 (free_register_move_costs): Likewise.
6266 (setup_prohibited_mode_move_regs): Add casts to enum type.
6267 * langhooks.c (add_builtin_function_common): Rework assertion that
6268 value fits bitfield.
6269 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
6270 * omega.c (omega_do_elimination): Avoid math on enum types.
6271 * optabs.c (expand_vec_shift_expr): Remove casts to int.
6272 * opts.c (set_debug_level): Change 2 to enum constant. Use new
6273 int local to handle integral_argment value.
6274 * regmove.c (try_auto_increment): Change PUT_MODE to
6275 PUT_REG_NOTE_KIND.
6276 * reload.c (push_secondary_reload): Add casts to enum type.
6277 (secondary_reload_class, find_valid_class): Likewise.
6278 * reload1.c (emit_input_reload_insns): Likewise.
6279 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
6280 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
6281 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
6282 constant.
6283 * tree.c (build_common_builtin_nodes): Add casts to enum type.
6284 * tree-complex.c (complex_lattice_t): Typedef to int rather than
6285 enum type.
6286 (expand_complex_libcall): Add casts to enum type.
6287 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
6288 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
6289 with ERROR_MARK, not NUM_TREE_CODES.
6290 (vect_create_epilog_for_reduction): Likewise.
6291 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 6292 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
6293 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
6294 enum machine_mode.
6295 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
6296 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 6297 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
6298 * var-tracking.c (get_init_value): Change return type to enum
6299 var_init_status.
6300 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
6301 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
6302 arm_fp_model.
6303 (arm_override_options): Add casts to enum type.
6304 (arm_emit_tls_decoration): Likewise.
6305 * config/i386/i386.c (ix86_function_specific_restore): Add casts
6306 to enum type.
6307 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
6308 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
6309 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
6310 enum type.
6311 * config/s390/s390.c (code_for_builtin_64): Change to array of
6312 enum insn_code.
6313 (code_for_builtin_31): Likewise.
6314 (s390_expand_builtin): Change code_for_builtin to enum insn_code
6315 const *.
6316 * config/sparc/sparc.c (sparc_override_options): Change value
6317 field in struct code_model to enum cmodel. In initializer change
6318 0 to NULL and add cast to enum type.
6319
6320 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
6321 Change all callers. Issue a -Wc++-compat warning using
6322 lhs_origtype if necessary.
6323 (convert_for_assignment): Issue -Wc++-compat warnings about
6324 invalid conversions to enum type on assignment.
6325 * c-common.h (build_modify_expr): Update declaration.
6326
ac4fc08a
NC
63272009-04-24 Nick Clifton <nickc@redhat.com>
6328
6329 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
6330 (function_arg_advance): Likewise.
6331 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
6332 5th alternative.
6333
f22e891a
AK
63342009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
6335
6336 * config/s390/constraints.md ('I', 'J'): Fix condition.
6337
ad58aabe
DN
63382009-04-24 Diego Novillo <dnovillo@google.com>
6339
6340 * gengtype-parse.c (parse_error): Add newline after message.
6341
879a4a01
L
63422009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6343
6344 * config/i386/sse.md (avxmodesuffixs): Removed.
6345 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
6346 (*avx_pinsr<ssevecsize>): This.
6347
f63426af
BS
63482009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6349
6350 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
6351 follow chains of regs with a single definition, and allow expressions
6352 that are function_invariant_p.
ce72fe6c 6353 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 6354
30349c74
PB
63552009-04-24 Paolo Bonzini <bonzini@gnu.org>
6356
6357 PR middle-end/39867
6358 * fold-const.c (fold_cond_expr_with_comparison): When folding
6359 > and >= to MAX, make sure the MAX uses the same type as the
6360 comparison's operands.
6361
8d8256c1
NC
63622009-04-24 Nick Clifton <nickc@redhat.com>
6363
6364 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
6365 addressing for DImode accesses.
6366 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 6367 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 6368
6216f94e
JJ
63692009-04-24 Jakub Jelinek <jakub@redhat.com>
6370
6371 PR rtl-optimization/39794
6372 * alias.c (canon_true_dependence): Add x_addr argument.
6373 * rtl.h (canon_true_dependence): Adjust prototype.
6374 * cse.c (check_dependence): Adjust canon_true_dependence callers.
6375 * cselib.c (cselib_invalidate_mem): Likewise.
6376 * gcse.c (compute_transp): Likewise.
6377 * dse.c (scan_reads_nospill): Likewise.
6378 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
6379 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
6380 canon_base_addr of the group, plus optional offset.
6381 (struct group_info): Rename canon_base_mem to
6382 canon_base_addr.
6383 (get_group_info): Set canon_base_addr to canon_rtx of base, not
6384 canon_rtx of base_mem.
6385
6de7a512
PB
63862009-04-23 Paolo Bonzini <bonzini@gnu.org>
6387
6388 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6389 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
6390
4a3a2376
UW
63912009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6392
6393 * config/spu/spu-builtins.h: Delete file.
6394
6395 * config/spu/spu.h (enum spu_builtin_type): Move here from
6396 spu-builtins.h.
6397 (struct spu_builtin_description): Likewise. Add GTY marker.
6398 Do not use enum spu_function_code or enum insn_code.
6399 (spu_builtins): Add extern declaration.
6400
6401 * config/spu/spu.c: Do not include "spu-builtins.h".
6402 (enum spu_function_code, enum spu_builtin_type_index,
6403 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
6404 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
6405 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
6406 unsigned_V2DI_type_node): Move here from spu-builtins.h.
6407 (spu_builtin_types): Make static. Add GTY marker.
6408 (spu_builtins): Add extern declaration with GTY marker.
6409 Include "gt-spu.h".
6410
6411 * config/spu/spu-c.c: Do not include "spu-builtins.h".
6412 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
6413 Check programmatically whether all parameters are scalar.
6414
6415 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
6416
bbaba73f
EB
64172009-04-23 Eric Botcazou <ebotcazou@adacore.com>
6418
6419 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
6420 assignment from the constructor either if the target is volatile.
6421
ee93c1c6
DJ
64222009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
6423
6424 * config/arm/arm.md (insv): Do not share operands[0].
6425
b2f21330
NS
64262009-04-23 Nathan Sidwell <nathan@codesourcery.com>
6427
6428 * config/vxlib-tls.c (active_tls_threads): Delete.
6429 (delete_hook_installed): New.
6430 (tls_delete_hook): Don't delete the delete hook.
6431 (tls_destructor): Delete it here.
6432 (__gthread_set_specific): Adjust installing the delete hook.
6433 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
6434 __gthread_leave_tsd_dtor_context.
6435
4782dfa7
RAE
64362009-04-23 Rafael Avila de Espindola <espindola@google.com>
6437
6438 * c-format.c (gcc_tdiag_char_table): Add support for %E.
6439
bf758008
UB
64402009-04-23 Uros Bizjak <ubizjak@gmail.com>
6441
6442 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
6443 enum type.
6444 (alpha_rtx_costs): Ditto.
6445 (emit_unlikely_jump): Use add_reg_note.
6446 (emit_frame_store_1): Ditto.
6447 (alpha_expand_prologue): Ditto.
6448 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6449 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
6450
7323a100
NC
64512009-04-23 Nick Clifton <nickc@redhat.com>
6452
6453 * config/v850/v850.md (epilogue): Remove suppressed code.
6454 (return): Rename to return_simple and remove test of frame size.
6455 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
6456 to gen_return_simple.
6457
360032ba
JY
64582009-04-22 Jing Yu <jingyu@google.com>
6459
6460 PR testsuite/39781
6461 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
6462
53650abe
AP
64632009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
6464
6465 PR C/31499
6466 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
6467 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
6468 value is a VECTOR_CST, the element type is the element type of the
6469 vector.
6470
89043e8a
DD
64712009-04-22 DJ Delorie <dj@redhat.com>
6472
6473 * config/m32c/m32c.h: Update GTY annotations to new syntax.
6474
023f059b
JJ
64752009-04-22 Jakub Jelinek <jakub@redhat.com>
6476
6477 * alias.c (find_base_term): Move around LO_SUM case, so that
6478 CONST falls through into PLUS/MINUS handling.
6479
2c0eba5a
JJ
6480 PR c/39855
6481 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
6482 into 0, use omit_one_operand.
6483
9a461028
BE
64842009-04-23 Ben Elliston <bje@au.ibm.com>
6485
6486 * config/rs6000/linux-unwind.h (get_regs): Remove type
6487 puns. Change the type of `pc' to an array of unsigned ints and
6488 update all users. Constify frame24.
6489
653e2568
DD
64902009-04-22 DJ Delorie <dj@redhat.com>
6491
6492 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
6493 declarations before code.
6494 (current_function_special_page_vector): Likewise.
6495 (m32c_expand_insv): Silence a warning.
6496
60839f5d 64972009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
6498
6499 * alias.c: Update GTY annotations to new syntax.
6500 * basic-block.h: Likewise.
6501 * bitmap.h: Likewise.
6502 * c-common.h: Likewise.
6503 * c-decl.c: Likewise.
6504 * c-parser.c: Likewise.
6505 * c-pragma.c: Likewise.
6506 * c-tree.h: Likewise.
6507 * cfgloop.h: Likewise.
6508 * cgraph.h: Likewise.
6509 * config/alpha/alpha.c: Likewise.
6510 * config/arm/arm.h: Likewise.
6511 * config/avr/avr.h: Likewise.
6512 * config/bfin/bfin.c: Likewise.
6513 * config/cris/cris.c: Likewise.
6514 * config/darwin.c: Likewise.
6515 * config/frv/frv.c: Likewise.
6516 * config/i386/i386.c: Likewise.
6517 * config/i386/i386.h: Likewise.
6518 * config/i386/winnt.c: Likewise.
6519 * config/ia64/ia64.h: Likewise.
6520 * config/iq2000/iq2000.c: Likewise.
6521 * config/mips/mips.c: Likewise.
6522 * config/mmix/mmix.h: Likewise.
6523 * config/pa/pa.c: Likewise.
6524 * config/pa/pa.h: Likewise.
6525 * config/rs6000/rs6000.c: Likewise.
6526 * config/s390/s390.c: Likewise.
6527 * config/sparc/sparc.c: Likewise.
6528 * config/xtensa/xtensa.c: Likewise.
6529 * cselib.h: Likewise.
6530 * dbxout.c: Likewise.
6531 * dwarf2out.c: Likewise.
6532 * except.c: Likewise.
6533 * except.h: Likewise.
6534 * fixed-value.h: Likewise.
6535 * function.c: Likewise.
6536 * function.h: Likewise.
6537 * gimple.h: Likewise.
6538 * integrate.c: Likewise.
6539 * optabs.c: Likewise.
6540 * output.h: Likewise.
6541 * real.h: Likewise.
6542 * rtl.h: Likewise.
6543 * stringpool.c: Likewise.
6544 * tree-data-ref.c: Likewise.
6545 * tree-flow.h: Likewise.
6546 * tree-scalar-evolution.c: Likewise.
6547 * tree-ssa-address.c: Likewise.
6548 * tree-ssa-alias.h: Likewise.
6549 * tree-ssa-operands.h: Likewise.
6550 * tree.c: Likewise.
6551 * tree.h: Likewise.
6552 * varasm.c: Likewise.
6553 * varray.h: Likewise.
6554 * vec.h: Likewise.
bf758008 6555 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
6556 * doc/gty.texi: Update GTY documentation to new syntax.
6557 * gengtype-lex.l: Enforce attribute-like syntax for GTY
6558 annotations on structs.
6559 * gengtype-parse.c: Likewise.
6560
a123d175
MH
65612009-04-22 Mark Heffernan <meheff@google.com>
6562
bf758008 6563 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 6564
4c7c486a
KH
65652009-04-22 Kazu Hirata <kazu@codesourcery.com>
6566
6567 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
6568 where appropriate.
6569
6e782a29
KH
65702009-04-22 Kazu Hirata <kazu@codesourcery.com>
6571
6572 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
6573 the same as a PLUS without a shift. Increase the cost of a
6574 CONST_INT in MULT.
6575
38d2336a
MLI
65762009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6577
6578 * Makefile.in: Update dependencies.
bf758008 6579 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
6580 * errors.h: Remove bogus comment about compatibility.
6581 (warning): Update declaration.
6582 * genautomata.c: Update all calls to warning.
6583 * gimple.c: Do not include errors.h. Include toplev.h.
6584 * tree-ssa-structalias.c: Do not include errors.h.
6585 * omega.c: Likewise.
6586 * tree-ssa-reassoc.c: Likewise.
6587 * config/spu/spu-c.c: Likewise.
6588 * config/spu/t-spu-elf: Update dependencies.
6589
aea4deba
RG
65902009-04-22 Richard Guenther <rguenther@suse.de>
6591
6592 PR tree-optimization/39824
6593 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
6594 make sure the types are compatible.
6595
cfc93532
MLI
65962009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6597
6598 PR c++/14875
6599 * c-common.c (c_parse_error): Take a token_flags parameter.
6600 Use token_type for the token type instead.
6601 Pass token_flags to cpp_type2name.
6602 * c-common.h (c_parse_error): Update declaration.
6603 * c-parser.c (c_parser_error): Pass 0 as token flags.
6604
8632d02a
AB
66052009-04-22 Andrey Belevantsev <abel@ispras.ru>
6606
6607 PR rtl-optimization/39580
6608 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
6609
4c33221c
UW
66102009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6611
6612 * function.c (expand_function_end): Do not emit a jump to the "naked"
6613 return label for fall-through returns.
6614 * except.c (sjlj_emit_function_exit): Always place the call to the
6615 unregister function at the location installed by expand_function_end.
6616
9925bce0
RG
66172009-04-22 Richard Guenther <rguenther@suse.de>
6618
6619 PR tree-optimization/39845
6620 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
6621 (gen_inbound_check): Likewise.
6622
24a40b35
NS
66232009-04-22 Nathan Sidwell <nathan@codesourcery.com>
6624
6625 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
6626 padding for PPC.
6627 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
6628 * config/vxlib.c (__gthread_once): Add race guard for PPC.
6629
6c34a092
PB
66302009-04-22 Paolo Bonzini <bonzini@gnu.org>
6631
6632 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
6633 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
6634 shift counts to avoid out-of-bounds array accesses.
6635
baa48dfa
PB
66362009-04-22 Paolo Bonzini <bonzini@gnu.org>
6637
6638 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
6639 (Pmode): Move above.
6640
7d83f4f5
UB
66412009-04-22 Uros Bizjak <ubizjak@gmail.com>
6642
6643 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
6644 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
6645 GET_CODE macro. Use IN_RANGE macro where appropriate.
6646 * config/alpha/alpha.h: Ditto.
6647 * config/alpha/alpha.md: Ditto.
6648 * config/alpha/constraints.md: Ditto.
6649 * config/alpha/predicates.md: Ditto.
6650
3ad606bc
PB
66512009-04-22 Paolo Bonzini <bonzini@gnu.org>
6652
6653 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
6654 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6655 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6656 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6657 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6658 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6659 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6660 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6661 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6662 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6663 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6664 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6665 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6666 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6667 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6668 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6669 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6670 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6671 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6672 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6673 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6674 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6675 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6676 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6677 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6678 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6679 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6680
3cabd6d1
LB
66812009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
6682
6683 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
6684 references from comments.
6685 * cfgbuild.c: (count_basic_blocks): Delete.
6686 (find_basic_blocks_1): Delete.
6687 (find_basic_blocks): Delete.
6688 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 6689 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
6690 * except.h (finish_eh_generation): Delete.
6691 * basic-block.h (find_basic_blocks): Delete.
6692 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
6693
270d1bcd
DK
66942009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
6695
6696 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
6697 (sdbout_parms): Likewise.
6698
b757d36f
KK
66992009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
6700
6701 * config/sh/sh.c (prepare_cbranch_operands): Use
6702 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
6703 (expand_cbranchdi4): Likewise.
6704 (from_compare): Add cast to enum type.
6705 (expand_cbranchsi4): Use add_reg_note.
6706 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
6707 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
6708 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
6709 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6710 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
6711 instead of CODE_FOR_nothing.
6712 (cbranchdi4): Likewise. Fix the order of arguments for
6713 gen_rtx_fmt_ee.
6714 (push_fpscr): Use add_reg_note.
6715 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
6716 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
6717
ad41bd84
JM
67182009-04-21 Joseph Myers <joseph@codesourcery.com>
6719
6720 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
6721 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6722 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6723 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
6724 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
6725 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
6726 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
6727 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
6728 config/alpha/x-vms, config/arc/t-arc,
6729 config/arm/README-interworking, config/arm/arm-c.c,
6730 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
6731 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
6732 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
6733 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
6734 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
6735 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
6736 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
6737 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
6738 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
6739 config/cris/t-elfmulti, config/crx/t-crx,
6740 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
6741 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
6742 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
6743 config/h8300/t-h8300, config/i386/athlon.md,
6744 config/i386/darwin-libgcc.10.4.ver,
6745 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
6746 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
6747 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
6748 config/i386/t-linux64, config/i386/t-nwld,
6749 config/i386/t-rtems-i386, config/i386/t-sol2-10,
6750 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
6751 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
6752 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
6753 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
6754 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
6755 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
6756 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
6757 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
6758 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
6759 config/m68k/t-uclinux, config/mcore/t-mcore,
6760 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
6761 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
6762 config/mips/crtn.asm, config/mips/irix-crti.asm,
6763 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
6764 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
6765 config/mips/mips-fixed.md, config/mips/sb1.md,
6766 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
6767 config/mips/t-iris6, config/mips/t-isa3264,
6768 config/mips/t-libgcc-mips16, config/mips/t-linux64,
6769 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
6770 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
6771 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
6772 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
6773 config/mn10300/t-linux, config/mn10300/t-mn10300,
6774 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
6775 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
6776 config/picochip/libgccExtras/clzsi2.asm,
6777 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
6778 config/rs6000/darwin-libgcc.10.4.ver,
6779 config/rs6000/darwin-libgcc.10.5.ver,
6780 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
6781 config/rs6000/t-aix43, config/rs6000/t-aix52,
6782 config/rs6000/t-darwin, config/rs6000/t-fprules,
6783 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
6784 config/rs6000/t-lynx, config/rs6000/t-netbsd,
6785 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
6786 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
6787 config/rs6000/t-rtems, config/rs6000/t-spe,
6788 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
6789 config/score/t-score-elf, config/sh/divcost-analysis,
6790 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
6791 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
6792 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
6793 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
6794 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
6795 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
6796 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
6797 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
6798 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
6799 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
6800 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
6801 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
6802 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
6803 limitx.h, version.c, xcoff.h: Add copyright and license notices.
6804 * config/h8300/genmova.sh: Include copyright and license notices
6805 in generated output.
6806 * config/h8300/mova.md: Regenerate.
6807 * doc/install.texi2html: Include word "Copyright" in copyright
6808 notice and use name "Free Software Foundation, Inc.".
6809 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6810 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6811 ChangeLog-2007, ChangeLog-2008: Correct dates.
6812
ca80e52b
EB
68132009-04-21 Eric Botcazou <ebotcazou@adacore.com>
6814
6815 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6816 NE_EXPR operations as well.
6817 * c-parser.c (c_parser_condition): Do not set location information on
6818 the condition.
6819 (c_parser_conditional_expression): Likewise.
6820 (c_parser_binary_expression): Set location information on operators.
6821 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6822 TRUTH_NOT_EXPR has been folded.
6823 * fold-const.c (fold_truth_not_expr): Copy location information from
6824 the incoming expression to the outgoing one.
6825 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
6826 recursive calls on the LHS of the operator but pass that of the
6827 operator to recursive calls on the RHS of the operator. Set it
6828 on the COND_EXPR.
6829 (shortcut_cond_expr): Set the locus of the operator on the second
6830 COND_EXPR and that of the expression on the first in degenerate cases.
6831 Pass the locus of the expression to calls to shortcut_cond_r.
6832 Set the locus of the 'then' block on the associated jump, if any.
6833 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
6834 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6835 expression to call to gimplify_boolean_expr.
6836
35091630
KT
68372009-04-21 Kai Tietz <kai.tietz@onevision.com>
6838
6839 * config.gcc: Add additional configuration for
6840 i686-w64-mingw* and x86_64-w64-mingw* triplet.
6841 * config/i386/mingw-w64.h: New mingw-w64 specific header.
6842 (CPP_SPEC): Redefine for allowing -municode option.
6843 (STARTFILE_SPEC): Likewise.
6844 * config/i386/t-mingw-w64: New.
6845 * config/i386/mingw-w64.opt: New.
6846 (municode): Add new target option.
6847 * doc/invoke.texi (municode): Add documentation for new option.
6848
0267afc4
ILT
68492009-04-21 Ian Lance Taylor <iant@google.com>
6850
6851 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6852 Correct test for number of arguments.
6853 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6854
2ba9daa7
AS
68552009-04-21 Andreas Schwab <schwab@linux-m68k.org>
6856
6857 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6858 argument of emit_library_call.
6859
ad8a1ac0
RG
68602009-04-21 Richard Guenther <rguenther@suse.de>
6861
6862 PR middle-end/39829
6863 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6864 inside VIEW_CONVERT_EXPRs.
6865
7156c8ab
MJ
68662009-04-21 Martin Jambor <mjambor@suse.cz>
6867
6868 * tree-switch-conversion.c (build_constructors): Split a long line.
6869 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
6870 (build_one_array): Create assigns of constants if possible, do not
6871 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
6872 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6873 make_rename_temp. Do not call mark_symbols_for_renaming, call
6874 update_stmt.
6875 (gen_def_assigns): Do not call mark_symbols_for_renaming or
6876 find_new_referenced_vars, call update_stmt.
6877 (gen_inbound_check): Use create_tmp_var and create ssa names manually
6878 instead of calling make_rename_temp. Do not call
6879 find_new_referenced_vars or mark_symbols_for_renaming, call
6880 update_stmt.
6881
2970ccb3
RG
68822009-04-21 Richard Guenther <rguenther@suse.de>
6883
6884 PR tree-optimization/39827
7d83f4f5 6885 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
6886 (tree_ssa_phiprop): Pass the correct array size.
6887
47f402d1
UB
68882009-04-21 Uros Bizjak <ubizjak@gmail.com>
6889
6890 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6891
1e4ae551
MLI
68922009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
6893
6894 PR 16202
6895 * c-typeck.c (lvalue_p): Move declaration ...
6896 * c-common.h (lvalue_p): ... to here.
6897 * c-common.c (candidate_equal_p): New.
6898 (add_tlist): Use it.
6899 (merge_tlist): Use it.
6900 (warn_for_collisions_1): Likewise.
6901 (warning_candidate_p): Accept more candidates.
6902 (verify_tree): A warning candidate can be an expression. Use
6903 candidate_equal_p.
6904
244609a6
BE
69052009-04-21 Ben Elliston <bje@au.ibm.com>
6906
6907 PR target/5267
6908 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6909 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6910 options. Remove -mcall-solaris documentation.
6911
9c650d90
MLI
69122009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6913
6914 PR c++/13358
6915 * doc/invoke.texi (-Wlong-long): Update description.
6916 * c-lex (interpret_integer): Only warn if there was no previous
6917 overflow and -Wlong-long is enabled.
6918 * c-decl.c (declspecs_add_type): Drop redundant flags.
6919 * c.opt (Wlong-long): Init to -1.
6920 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6921 and front-end warn_long_long. Wlong-long only depends on other
6922 flags if it is uninitialized.
6923 * c-parser.c (disable_extension_diagnostics): warn_long_long is
6924 the same for CPP and FE.
6925 (restore_extension_diagnostics): Likewise.
6926
bbbbb16a
ILT
69272009-04-20 Ian Lance Taylor <iant@google.com>
6928
6929 Fix enum conversions which are invalid in C++:
47f402d1
UB
6930 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6931 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6932 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6933 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 6934 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 6935 (dbxout_parms): Likewise.
47f402d1 6936 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
6937 (df_clear_flags): Likewise.
6938 * df-problems.c (df_rd_bb_local_compute_process_def): Change
6939 top_flag parameter to int.
6940 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
6941 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6942 Remove cast.
bbbbb16a
ILT
6943 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6944 (df_ref_create_structure, df_def_record_1): Likewise.
6945 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6946 (df_notes_rescan): Change 0 to VOIDmode in function call.
6947 (df_get_call_refs, df_insn_refs_collect): Likewise.
6948 (df_bb_regs_collect): Likewise.
6949 (df_entry_block_defs_collect): Likewise.
6950 (df_exit_block_uses_collect): Likewise.
6951 * df.h: Update declarations.
6952 * double-int.c (double_int_divmod): Add cast to enum type.
6953 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6954 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6955 (based_loc_descr): Likewise.
6956 (loc_descriptor_from_tree_1): Change first_op and second_op to
6957 enum dwarf_location_atom. Add cast to enum type.
6958 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 6959 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6960 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6961 (do_store_flag): Likewise.
6962 * fixed-value.h (struct fixed_value): Change mode to enum
6963 machine_mode.
47f402d1 6964 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6965 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6966 function call.
6967 (insert_insn_decl, insert_decl, insert_state): Likewise.
6968 (automata_list_finish): Likewise.
6969 * genrecog.c (process_define_predicate): Add cast to enum type.
6970 * gensupport.c (init_predicate_table): Add cast to enum type.
6971 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6972 function call.
6973 (gimple_build_call_1, gimple_build_label): Likewise.
6974 (gimple_build_goto, gimple_build_asm_1): Likewise.
6975 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 6976 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
6977 (enum fallback): Rename from enum fallback_t.
6978 (fallback_t): Typedef as int.
6979 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6980 GSI_SAME_STMT in function call.
6981 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6982 enum type.
6983 (setup_reg_class_relations): Likewise.
47f402d1 6984 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
6985 (setup_prohibited_class_mode_regs): Add cast to enum type.
6986 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 6987 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
6988 (record_address_regs): Change i to enum reg_class.
6989 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6990 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6991 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6992 (GET_MODE_2XWIDER_MODE): Likewise.
6993 (GET_CLASS_NARROWEST_MODE): Likewise.
6994 * omp-low.c (expand_omp_for): Add cast to enum type.
6995 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6996 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6997 * postreload.c (reload_cse_simplify_operands): Change rclass local
6998 to enum reg_class.
6999 * predict.c (combine_predictions_for_insn): Change best_predictor
7000 and predictor to enum br_predictor.
7001 (combine_predictions_for_bb): Likewise.
7002 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
7003 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 7004 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
7005 * reginfo.c (init_move_cost): Add casts to enum type.
7006 (init_reg_sets_1, init_fake_stack_mems): Likewise.
7007 * regmove.c (regclass_compatible_p): Change class0 and class1 to
7008 enum reg_class.
7009 * reload.c (find_valid_class): Add casts to enum type.
7010 (push_reload): Change 0 to NO_REGS in function call.
7011 (find_reloads): Change this_alternative to array of enum
7012 reg_class. Remove some now-unnecessary casts.
7013 (make_memloc): Change 0 to VOIDmode in function call.
7014 * reload1.c (reload): Change 0 to VOIDmode in function call.
7015 (eliminate_regs_1, elimination_effects): Likewise.
7016 (eliminate_regs_in_insn): Likewise.
7017 (emit_input_reload_insns): Add cast to enum type.
7018 (delete_output_reload): Change 0 to VOIDmode in function call.
7019 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
7020 to enum type in function call.
7021 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
7022 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 7023 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
7024 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
7025 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
7026 (dump_function): Likewise.
7027 * tree-dump.h: Update declarations.
7028 * tree-pass.h: Update declarations.
7029 * varasm.c (assemble_integer): Change mclass to enum mode_class.
7030 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
7031 enum type.
7032 (arm_rtx_costs_1): Correct parenthesization.
7033 (arm_rtx_costs): Add casts to enum type.
7034 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
7035 (vfp_emit_fstmd): Use add_rg_note.
7036 (emit_multi_reg_push, emit_sfm): Likewise.
7037 (thumb_set_frame_pointer): Likewise.
7038 (arm_expand_prologue): Likewise.
7039 (arm_regno_class): Change return type to enum reg_class.
7040 (thumb1_expand_prologue): Use add_reg_note.
7041 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
7042 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
7043 in function call.
7044 * config/arm/gentune.sh: Add cast to enum type.
7045 * config/arm/arm-tune.md: Rebuild.
7046 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
7047 (ix86_split_fp_branch, predict_jump): Likewise.
7048 (ix86_expand_multi_arg_builtin): Change sub_code from enum
7049 insn_code to enum rtx_code.
7050 (ix86_builtin_vectorized_function): Add cast to enum type.
7051 * config/i386/i386.md (truncdfsf2): Change slot to enum
7052 ix86_stack_slot.
7053 (truncxf<mode>2, isinf<mode>2): Likewise.
7054 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
7055 enum type.
7056 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
7057 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
7058 (insert_bundle_state): Change 1 to INSERT in function call.
7059 (ia64_add_bundle_selector_before): Likewise.
7060 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
7061 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
7062 (restore_stack_nonlocal): Likewise.
7063 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
7064 function call.
7065 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
7066 function call.
7067 (mips_rtx_costs): Likewise.
7068 (mips_override_options): Add casts to enum type.
7069 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
7070 in function call.
7071 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
7072 (store_reg, set_reg_plus_d): Likewise.
7073 (hppa_expand_prologue, hppa_profile_hook): Likewise.
7074 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7075 cast to enum type.
7076 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
7077 function call.
7078 (emit_unlikely_jump): Use add_reg_note.
7079 (rs6000_emit_allocate_stack): Likewise.
7080 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
7081 (output_toc): Change 1 to INSERT in function call.
7082 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
7083 (rs6000_initialize_trampoline): Likewise.
7084 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
7085 function call.
7086 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
7087 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
7088 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
7089 (save_gprs): Use add_reg_note.
7090 (s390_emit_prologue): Likewise.
47f402d1 7091 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7092 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
7093 (sparc_fold_builtin): Add cast to enum type.
7094 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
7095 enum insn_code.
7096 (spu_expand_prologue): Use add_reg_note.
47f402d1 7097 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7098
70992009-04-20 Ian Lance Taylor <iant@google.com>
7100
7101 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
7102 (c_parser_postfix_expression_after_primary): Get VEC for list of
7103 arguments. Get original types of arguments. Call
7104 build_function_call_vec.
7105 (cached_expr_list_1, cached_expr_list_2): New static variables.
7106 (c_parser_expr_list): Change return type to VEC *. Add
7107 p_orig_types parameter. Change all callers.
7108 (c_parser_release_expr): New static function.
7109 (c_parser_vec_to_tree_list): New static function.
7110 * c-typeck.c (build_function_call): Rewrite to build a VEC and
7111 call build_function_call_vec.
7112 (build_function_call_vec): New function, based on old
7113 build_function_call.
7114 (convert_arguments): Remove nargs and argarray parameters. Change
7115 values to a VEC. Add origtypes parameter.
47f402d1 7116 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
7117 (convert_for_assignment): Add origtype parameter. Change all
7118 callers. If warn_cxx_compat, check for conversion to an enum
7119 type when calling a function.
7120 (store_init_value): Add origtype parameter. Change all callers.
7121 (digest_init): Likewise.
7122 (struct init_node): Add origtype field.
7123 (add_pending_init): Add origtype parameter. Change all callers.
7124 (output_init_element): Likewise.
7125 (output_pending_init_elements): Pass origtype from init_node to
7126 output_init_element.
f28a61ab 7127 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
7128 output_init_element.
7129 (c_finish_return): Add origtype parameter. Change all callers.
7130 * c-common.c (sync_resolve_size): Change params to VEC *. Change
7131 caller.
7132 (sync_resolve_params): Likewise.
47f402d1 7133 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 7134 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 7135 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
7136 * c-decl.c (finish_decl): Add origtype parameter. Change all
7137 callers. Call build_function_call_vec rather than
7138 build_function_call for cleanup.
7139 * c-tree.h: Update declarations.
7140 * c-common.h: Update declarations.
7141 * stub-objc.c (objc_rewrite_function_call): Change parameter from
7142 params to first_param.
7143 * target.h (struct gcc_target): Change resolve_overloaded_builtin
7144 params parameter from tree to void *.
7145 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7146 Change arglist parameter to have type void *, and to be a pointer
7147 to a VEC.
7148 * config/rs6000/rs6000-protos.h
7149 (altivec_resolve_overloaded_builtin): Update declaration.
7150 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
7151 fnargs parameter to have type void *, and to be a pointer to a
7152 VEC. Call build_function_call_vec instead of
7153 build_function_call.
47f402d1 7154 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 7155
6ff078d4 71562009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 7157 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
7158 H.J. Lu <hongjiu.lu@intel.com>
7159
7160 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
7161
7162 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
7163 (IX86_LEA_PRIORITY): Likewise.
7164 (distance_non_agu_define): New function.
7165 (distance_agu_use): Likewise.
7166 (ix86_lea_for_add_ok): Likewise.
7167 (ix86_dep_by_shift_count): Likewise.
7168
7169 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
7170 should split for LEA.
7171
7172 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
7173 function.
7174 (ix86_dep_by_shift_count): Likewise.
7175
87a5b4cc
RG
71762009-04-20 Richard Guenther <rguenther@suse.de>
7177
7178 * expr.c (handled_component_p): Move ...
7179 * tree.h (handled_component_p): ... here.
7180 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
7181 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
7182 and REALPART_EXPR to be in one group.
7183
438c239d
RG
71842009-04-20 Richard Guenther <rguenther@suse.de>
7185
7186 * basic-block.h (get_all_dominated_blocks): Declare.
7187 * dominance.c (get_all_dominated_blocks): New function.
7188 * tree-cfg.c (get_all_dominated_blocks): Remove.
7189 (remove_edge_and_dominated_blocks): Adjust.
7190 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
7191 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
7192 instead of recursing.
7193
fed5ae11
DK
71942009-04-20 Doug Kwan <dougkwan@google.com>
7195
7196 * cgraph.h (cgraph_node_ptr): New type for vector functions.
7197 (struct cgraph_node_set_def): New type.
7198 (cgraph_node_set) New type. Also declare vector functions.
7199 (struct cgraph_node_set_element_def): New type.
7200 (cgraph_node_set_element): Ditto.
7201 (cgraph_node_set_iterator): New iterator type.
7202 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
7203 cgraph_node_set_remove, dump_cgraph_node_set,
7204 debug_cgraph_node_set): New prototypes.
7205 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
7206 cgraph_node_set_size): New inlines.
7207 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
7208 including cgraph.h.
7209 (struct ipa_opt_pass): Add struct cgraph_node_set_def
7210 argument to function 'write_summary'.
7211 * ipa.c: Include ggc.h.
7212 (hash_cgraph_node_set_element,
7213 eq_cgraph_node_set_element, cgraph_node_set_new,
7214 cgraph_node_set_add, cgraph_node_set_remove,
7215 cgraph_node_set_find, dump_cgraph_node_set,
7216 debug_cgraph_node_set): New functions.
7217 * Makefile.in (ipa.o): Add dependency on GGC_H.
7218
c4551b28
IR
72192009-04-20 Ira Rosen <irar@il.ibm.com>
7220
7221 PR tree-optimization/39675
2ba9daa7 7222 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
7223 check of the return code of vect_schedule_slp. Check that
7224 stmt_vec_info still exists for the statement, before checking its
7225 vectorization type.
c4551b28 7226
21a495fb
MM
72272009-04-20 Michael Matz <matz@suse.de>
7228
7229 * Makefile.in (generated_files): Take out $(simple_generated_c).
7230
8e208874
DK
72312009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
7232
7233 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
7234 (UINTPTR_TYPE): Likewise.
7235
a45e580b
JM
72362009-04-19 Joseph Myers <joseph@codesourcery.com>
7237
7238 PR c/37481
7239 * c-typeck.c (digest_init): Check for initializing an array with a
7240 string literal.
7241
20845d35
JM
72422009-04-19 Joseph Myers <joseph@codesourcery.com>
7243
7244 PR c/19771
7245 * c-semantics.c (pop_stmt_list): Propagate
7246 STATEMENT_LIST_HAS_LABEL to parent statement list.
7247
28143fdd
AN
72482009-04-19 Adam Nemet <anemet@caviumnetworks.com>
7249
7250 * config/mips/mips.h (mips_tune_attr): New macro.
7251 * config/mips/mips.md (cpu): Use it.
7252
da377db9
JM
72532009-04-19 Joseph Myers <joseph@codesourcery.com>
7254
7255 PR c/38243
7256 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
7257 declaring a tag.
7258
3baf459d
DN
72592009-04-19 Diego Novillo <dnovillo@google.com>
7260
7261 * toplev.c (compile_file): Move call to coverage_finish ...
7262 * cgraphunit.c (ipa_passes): ... here.
7263 Call cgraph_process_new_functions.
7264 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
7265 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
7266
b6fa5b01
JH
72672009-04-19 Jan Hubicka <jh@suse.cz>
7268
47f402d1
UB
7269 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
7270 cfun.
b6fa5b01
JH
7271 (dump_cgraph_node): Dump can throw external flag.
7272 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
7273
ca409efd
MLI
72742009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
7275
7276 PR c/32061
7277 PR c++/36954
7278 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
7279 * common.opt (Wlogical-op): Move from here...
7280 * c.opt (Wlogical-op): ... to here.
7281 * c-typeck.c (parser_build_binary_op): Update call to
7282 warn_logical_operator.
7283 * c-opts.c (c_common_post_options): Enable warn_logical_op with
7284 extra_warnings.
7285 * c-common.c (warn_logical_op): Update.
7286 * c-common.h (warn_logical_op): Update declaration.
7287
9db4cdd3
EB
72882009-04-19 Eric Botcazou <ebotcazou@adacore.com>
7289
7290 * tree.c (protected_set_expr_location): Fix formatting.
7291
f37acdf9
JM
72922009-04-18 Joseph Myers <joseph@codesourcery.com>
7293
7294 PR c/27676
7295 * c-typeck.c (readonly_warning): new.
7296 (build_unary_op, build_modify_expr): Use readonly_warning for
7297 storing into something readonly but not const-qualified.
7298
2b4b7036
JM
72992009-04-18 Joseph Myers <joseph@codesourcery.com>
7300
7301 PR c/22367
7302 * c-typeck.c (build_unary_op): Check for taking address of
7303 expression of type void.
7304
3ce62965
JM
73052009-04-18 Joseph Myers <joseph@codesourcery.com>
7306
7307 PR c/35210
7308 * c-typeck.c (build_function_call): Check for calling a function
7309 with qualified void return types. Call require_complete_type when
7310 generating a trap.
7311
2505c5ed
JH
73122009-04-18 Jan Hubicka <jh@suse.cz>
7313
7314 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
7315 Set nothrow flag.
7316 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
7317 can_throw_external flag.
7318 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
7319 * ipa-pure-const.c (ignore_edge): New function.
7320 (propagate): Compute order for NOTHROW computation; set NOTHROWs
7321 only over can_throw_external edges.
7322 (local_pure_const): Add nothrow flag.
7323 * ipa-utils.c (searchc): Add ignore_edge callback.
7324 (ipa_utils_reduced_inorder): Add ignore_edge callback.
7325 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
7326 (set_nothrow_function_flags): Update cgraph.
7327 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
7328
2586ba4b
RG
73292009-04-18 Richard Guenther <rguenther@suse.de>
7330
7331 PR middle-end/39804
7332 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
7333 (fold_stmt): ... this and ...
7334 (fold_stmt_inplace): ... this.
7335 (fold_stmt_1): Fold references in calls and asms.
7336 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
7337
1eefab17
KH
73382009-04-18 Kazu Hirata <kazu@codesourcery.com>
7339
7340 * tree-vrp.c (ssa_name_nonzero_p): Remove.
7341 * tree.h: Remove the prototype for ssa_name_nonzero_p.
7342
aa424b01
KH
73432009-04-18 Kazu Hirata <kazu@codesourcery.com>
7344
7345 * tree.c (function_args_count): Remove.
7346 * tree.h: Remove the prototype for function_args_count.
7347
613a896b
KH
73482009-04-18 Kazu Hirata <kazu@codesourcery.com>
7349
7350 * tree-iterator.c (expr_only): Remove.
7351 * tree.h: Remove the prototype for expr_only.
7352
579e694c
KH
73532009-04-18 Kazu Hirata <kazu@codesourcery.com>
7354
7355 * reginfo.c (cannot_change_mode_set_regs): Remove.
7356 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
7357
ee7e3ad3
AS
73582009-04-08 Anatoly Sokolov <aesok@post.ru>
7359
7360 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
7361 whether operands 0 and 1 overlaps.
7362
92ef7fb1
MLI
73632009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
7364
7365 PR middle-end/36902
7366 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
7367 pointer. Use warning_at instead of warning.
7368 (search_for_addr_array): Likewise.
7369 (check_array_bounds): Likewise.
7370 (check_all_array_refs): Check that the incoming edge is not in the
7371 list of edges to be removed.
7372 (check_all_array_refs): Avoid the temporal pointer.
7373 (vrp_visit_cond_stmt): Fix typo.
7374 (simplify_switch_using_ranges): Handle the case where the switch
7375 index is an integer constant.
7376
0e097268
AN
73772009-04-18 Adam Nemet <anemet@caviumnetworks.com>
7378
7379 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
7380
c782f1dd
KH
73812009-04-18 Kazu Hirata <kazu@codesourcery.com>
7382
7383 * doc/extend.texi, doc/invoke.texi: Fix typos.
7384
668fb0e8
CC
73852009-04-17 Cary Coutant <ccoutant@google.com>
7386
7387 * tree-flow-inline.h (get_lineno): Fix inverted test.
7388
4d4014c1
DN
73892009-04-17 Diego Novillo <dnovillo@google.com>
7390
7391 * tree-ssa-pre.c (create_expression_by_pieces): Remove
7392 assertion for AVAIL_OUT.
7393
2984e1b6
MF
73942009-04-17 Mike Frysinger <vapier@gentoo.org>
7395
7396 PR target/38627
7397 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
7398 * config/sh/linux-atomic.asm: Likewise.
7399
9994a182
DN
74002009-04-17 Diego Novillo <dnovillo@google.com>
7401
7402 * except.c (debug_eh_tree): New.
7403 (struct eh_region, struct eh_status): Move ...
7404 * except.h: ... here.
7405 (add_type_for_runtime): Declare extern.
7406 (lookup_type_for_runtime): Likewise.
7407 (debug_eh_tree): Declare.
7408 * Makefile.in (GTFILES): List except.h before except.c
7409
07485407
DN
74102009-04-17 Diego Novillo <dnovillo@google.com>
7411
47f402d1 7412 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
7413 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7414 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
7415 (find_vars_r): ... here.
7416 * tree-flow.h (find_referenced_vars_in): Declare.
7417 * tree-ssa-pre.c (create_expression_by_pieces): Assert
7418 that AVAIL_OUT exists for BLOCK.
7419 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
7420 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
7421 (tree-parloops.o): Likewise.
7422
4e53d196
SB
74232009-04-17 Simon Baldwin <simonb@google.com>
7424
7425 * toplev.c (default_tree_printer): Add handling for %E format.
7426
413d3aa8
DN
74272009-04-17 Diego Novillo <dnovillo@google.com>
7428
47f402d1
UB
7429 * tree-pretty-print.c (dump_generic_node): Add break after
7430 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
7431 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
7432 FUNCTION_TYPE together. Call print_struct_decl when printing
7433 structures and TDF_SLIM is not given.
413d3aa8
DN
7434 (print_struct_decl): Fix logic for detecting recursion.
7435
5a691e98
RAE
74362009-04-17 Rafael Avila de Espindola <espindola@google.com>
7437
7438 PR 31567
7439 * gcc.c (create_at_file): New.
7440 (compile_input_file_p): New.
7441 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
7442 * main.c (main): Update call to toplev_main.
7443 * toplev.c (toplev_main): Change signature. Call expandargv.
7444 * toplev.h (toplev_main): Change signature.
7445
9eacf7a6
EB
74462009-04-17 Eric Botcazou <ebotcazou@adacore.com>
7447
7448 * dwarf2out.c (field_byte_offset): Use the type size as the field size
7449 if the latter is not constant.
7450
58298177
DE
74512009-04-17 David Edelsohn <edelsohn@gnu.org>
7452
7453 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
7454
5b4c43d7
EB
74552009-04-17 Eric Botcazou <ebotcazou@adacore.com>
7456
7457 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
7458 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
7459
b51605c4
RG
74602009-04-17 Richard Guenther <rguenther@suse.de>
7461
7462 * tree-ssa-structalias.c (get_constraint_for_component_ref):
7463 Handle component references view-converting an invariant address.
7464
9e3be889
AN
74652009-04-17 Adam Nemet <anemet@caviumnetworks.com>
7466
7467 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
7468 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
7469 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
7470 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
7471 Use @deftypevr rather than @deftypevar.
7472
7c3e9dc3
RG
74732009-04-17 Richard Guenther <rguenther@suse.de>
7474
47f402d1 7475 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
7476 (get_prop_source_stmt): Likewise.
7477 (can_propagate_from): Likewise.
7478
aca600aa
AS
74792009-04-17 Andrew Stubbs <ams@codesourcery.com>
7480
7481 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
7482 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
7483 (--with-multilib-list): Add default value.
7484 * configure: Regenerate.
7485 * Makefile.in (TM_ENDIAN_CONFIG): Define.
7486 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
7487 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
7488 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
7489 Don't add default cpu to multilib list unnecessarily, but do enable
7490 the relevant compiler option..
7491 Add support for --with-multilib-list=<blank> and
7492 --with-multilib-list=!<somelib> to supress unwanted multilibs.
7493 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
7494 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
7495 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
7496 TM_MULTILIB_CONFIG.
7497 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
7498 (MULTILIB_OSDIRNAMES): New variable.
7499 * config/sh/t-1e: Delete file.
7500 * config/sh/t-mlib-sh1: Delete file.
7501 * config/sh/t-mlib-sh2: Delete file.
7502 * config/sh/t-mlib-sh2a: Delete file.
7503 * config/sh/t-mlib-sh2a-nofpu: Delete file.
7504 * config/sh/t-mlib-sh2a-single: Delete file.
7505 * config/sh/t-mlib-sh2a-single-only: Delete file.
7506 * config/sh/t-mlib-sh2e: Delete file.
7507 * config/sh/t-mlib-sh3e: Delete file.
7508 * config/sh/t-mlib-sh4: Delete file.
7509 * config/sh/t-mlib-sh4-nofpu: Delete file.
7510 * config/sh/t-mlib-sh4-single: Delete file.
7511 * config/sh/t-mlib-sh4-single-only: Delete file.
7512 * config/sh/t-mlib-sh4a: Delete file.
7513 * config/sh/t-mlib-sh4a-nofpu: Delete file.
7514 * config/sh/t-mlib-sh4a-single: Delete file.
7515 * config/sh/t-mlib-sh4a-single-only: Delete file.
7516 * config/sh/t-mlib-sh4al: Delete file.
7517 * config/sh/t-mlib-sh5-32media: Delete file.
7518 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
7519 * config/sh/t-mlib-sh5-64media: Delete file.
7520 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
7521 * config/sh/t-mlib-sh5-compact: Delete file.
7522 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
7523 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
7524 * doc/install.texi (Options specification): Add
7525 --with-multilib-list and --with-endian.
7526
cf8aba7f
RAE
75272009-04-17 Rafael Avila de Espindola <espindola@google.com>
7528
7529 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
7530 REVISION_c.
7531 (OBJS-common): Add plugin-version.o.
7532 (plugin-version.o): New.
7533 * gcc-plugin.h (plugin_gcc_version): New.
7534 (plugin_default_version_check): New.
7535 (plugin_init_func, plugin_init): Add version argument.
7536 * plugin-version.c: New.
7537 * plugin.c (str_plugin_gcc_version_name): New.
7538 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
7539 pass it to the init function.
7540 (plugin_default_version_check): New.
7541
61e20b90
RG
75422009-04-17 Richard Guenther <rguenther@suse.de>
7543
7544 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
7545 for decl-vs-decl disambiguation.
7546
90c6fd8a
AK
75472009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
7548
7549 * config/s390/s390.h (s390_tune_attr): New macro definition.
7550 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
7551
9fe9fe04
RG
75522009-04-17 Richard Guenther <rguenther@suse.de>
7553
7554 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
7555 (fold_stmt_r): Likewise.
7556 (maybe_fold_reference): New function.
7557 (fold_gimple_assign): Handle cases fold_stmt_r did.
7558 (fold_stmt): Do not use fold_stmt_r.
7559 (fold_stmt_inplace): Likewise.
7560
7e673273
RG
75612009-04-17 Richard Guenther <rguenther@suse.de>
7562
7563 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
7564 (record_equivalences_from_stmt): Remove useless checks and
7565 simplifications.
7566 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
7567 the type is already suitable.
7568
fabf2749
PB
75692009-04-17 Paolo Bonzini <bonzini@gnu.org>
7570
7571 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
7572
68f7b061
UB
75732009-04-17 Uros Bizjak <ubizjak@gmail.com>
7574
7575 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
7576 (CMPtype): Define as __gcc_CMPtype.
7577
532bfb0a
AJ
75782009-04-17 Aurelien Jarno <aurelien@aurel32.net>
7579
7580 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
7581 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
7582
e3ac77ff
RG
75832009-04-17 Richard Guenther <rguenther@suse.de>
7584
7585 PR tree-optimization/39746
7586 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
7587 special-casing for builtins and static variable use/def.
7588 (call_may_clobber_ref_p_1): Likewise.
7589
7072a650
ILT
75902009-04-16 Ian Lance Taylor <iant@google.com>
7591
7592 * df.h: Include "timevar.h".
7593 (struct df_problem): Change tv_id field to timevar_id_t.
7594 * tree-pass.h: Include "timevar.h".
7595 (struct opt_pass): Change tv_id field to timevar_id_t.
7596 * timevar.h (timevar_id_t): Define TV_NONE.
7597 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
7598 TV_NONE rather than tv_id != 0.
7599 (execute_one_pass): Likewise.
7600 * Makefile.in (DF_H): Add $(TIMEVAR_H).
7601 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
7602 dependencies to $(TREE_PASS_H).
7603 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
7604 to TV_NONE.
7605 (pass_branch_target_load_optimize2): Likewise.
7606 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
7607 (pass_outof_cfg_layout_mode): Likewise.
7608 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
7609 (pass_rebuild_cgraph_edges): Likewise.
7610 (pass_remove_cgraph_callee_edges): Likewise.
7611 * df-core.c (pass_df_initialize_opt): Likewise.
7612 (pass_df_initialize_no_opt): Likewise.
7613 (pass_df_finish): Likewise.
7614 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
7615 * except.c (pass_set_nothrow_function_flags): Likewise.
7616 (pass_convert_to_eh_region_ranges): Likewise.
7617 * final.c (pass_compute_alignments): Likewise.
7618 * function.c (pass_instantiate_virtual_regs): Likewise.
7619 (pass_init_function): Likewise.
7620 (pass_leaf_regs): Likewise.
7621 (pass_match_asm_constraints): Likewise.
7622 * gimple-low.c (pass_lower_cf): Likewise.
7623 (pass_mark_used_blocks): Likewise.
7624 * init-regs.c (pass_initialize_regs): Likewise.
7625 * integrate.c (pass_initial_value_sets): Likewise.
7626 * ira.c (pass_ira): Likewise.
7627 * jump.c (pass_cleanup_barriers): Likewise.
7628 * omp-low.c (pass_expand_omp): Likewise.
7629 (pass_lower_omp): Likewise.
7630 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
7631 * recog.c (pass_split_all_insns): Likewise.
7632 (pass_split_after_reload): Likewise.
7633 (pass_split_before_regstack): Likewise.
7634 (pass_split_before_sched2): Likewise.
7635 (pass_split_for_shorten_branches): Likewise.
7636 * reginfo.c (pass_reginfo_init): Likewise.
7637 (pass_subregs_of_mode_init): Likewise.
7638 (pass_subregs_of_mode_finish): Likewise.
7639 * passes.c (pass_postreload): Likewise.
7640 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
7641 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
7642 (pass_warn_function_return): Likewise.
7643 (pass_warn_function_noreturn): Likewise.
7644 * tree-complex.c (pass_lower_complex): Likewise.
7645 (pass_lower_complex_O0): Likewise.
7646 * tree-if-conv.c (pass_if_conversion): Likewise.
7647 * tree-into-ssa.c (pass_build_ssa): Likewise.
7648 * tree-mudflap.c (pass_mudflap_1): Likewise.
7649 (pass_mudflap_2): Likewise.
7650 * tree-nomudflap.c (pass_mudflap_1): Likewise.
7651 (pass_mudflap_2): Likewise.
7652 * tree-nrv.c (pass_return_slot): Likewise.
7653 * tree-object-size.c (pass_object_sizes): Likewise.
7654 * tree-optimize.c (pass_all_optimizations): Likewise.
7655 (pass_early_local_passes): Likewise.
7656 (pass_all_early_optimizations): Likewise.
7657 (pass_cleanup_cfg): Likewise.
7658 (pass_cleanup_cfg_post_optimizing): Likewise.
7659 (pass_free_datastructures): Likewise.
7660 (pass_free_cfg_annotations): Likewise.
7661 (pass_fixup_cfg): Likewise.
7662 (pass_init_datastructures): Likewise.
7663 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
7664 (pass_late_warn_uninitialized): Likewise.
7665 (pass_update_address_taken): Likewise.
7666 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
7667 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
7668 (pass_cse_sincos): Likewise.
7669 (pass_convert_to_rsqrt): Likewise.
7670 * tree-ssa-structalias.c (pass_build_alias): Likewise.
7671 * tree-stdarg.c (pass_stdarg): Likewise.
7672 * tree-tailcall.c (pass_tail_recursion): Likewise.
7673 (pass_tail_calls): Likewise.
7674 * tree-vect-generic.c (pass_lower_vector): Likewise.
7675 (pass_lower_vector_ssa): Likewise.
7676 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
7677
0051ef59
JM
76782009-04-16 Joseph Myers <joseph@codesourcery.com>
7679
7680 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
7681 XLR entry.
7682 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
7683 Handle -march=xlr.
7684 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
7685 logical and signext.
7686
b3f8558a
KK
76872009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
7688
7689 PR target/39767
7690 * config/sh/predicates.md (arith_operand): Check if the operand
7691 of TRUNCATE is a REG.
7692
f57597d9
KH
76932009-04-16 Kazu Hirata <kazu@codesourcery.com>
7694
7695 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
7696 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
7697
b172d063
KH
76982009-04-16 Kazu Hirata <kazu@codesourcery.com>
7699
7700 * tree-iterator.c (tsi_split_statement_list_after,
7701 tsi_split_statement_list_before): Remove.
7702 * tree-iterator.h: Remove the prototypes for
532bfb0a 7703 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 7704
78fe4f1f
KH
77052009-04-16 Kazu Hirata <kazu@codesourcery.com>
7706
7707 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
7708 * tree-ssa-propagate.h: Remove the prototype for
7709 stmt_makes_single_load.
7710
43dd3201
KH
77112009-04-16 Kazu Hirata <kazu@codesourcery.com>
7712
7713 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
7714 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
7715
4252a4aa
KH
77162009-04-16 Kazu Hirata <kazu@codesourcery.com>
7717
7718 * tree-iterator.c (EXPR_LAST_BODY): Remove.
7719
bfb69968
KH
77202009-04-16 Kazu Hirata <kazu@codesourcery.com>
7721
7722 * except.c (eh_region_outer_p): Remove.
7723 * except.h: Remove the prototype for eh_region_outer_p.
7724
c7db7fa5
KH
77252009-04-16 Kazu Hirata <kazu@codesourcery.com>
7726
7727 * function.c (current_function_assembler_name): Remove.
7728 * function.h: Remove the prototype for
7729 current_function_assembler_name.
7730
efc0b2bd
ILT
77312009-04-16 Ian Lance Taylor <iant@google.com>
7732
532bfb0a 7733 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
7734 (add_reg_note): Call alloc_reg_note.
7735 * rtl.h (alloc_reg_note): Declare.
7736 * combine.c (try_combine): Use alloc_reg_note.
7737 (recog_for_combine, move_deaths): Likewise.
7738 (distribute_notes): Use alloc_reg_note and add_reg_note.
7739 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
7740 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
7741 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
7742
6080348f
VM
77432009-04-16 Vladimir Makarov <vmakarov@redhat.com>
7744
7745 PR rtl-optimization/39762
7746 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
7747 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 7748 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 7749
6080348f
VM
7750 * ira-conflicts.c (process_regs_for_copy): Use function
7751 ira_get_register_move_cost instead of global
7752 ira_register_move_cost.
7753
7754 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
7755 color_pass, move_spill_restore, update_curr_costs): Ditto.
7756
7757 * ira-lives.c (process_single_reg_class_operands): Ditto.
7758
7759 * ira-emit.c (emit_move_list): Ditto.
7760
7761 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
7762 (record_reg_classes): Ditto. Use functions
7763 ira_get_register_move_cost and ira_get_may_move_cost instead of
7764 global vars ira_register_move_cost, ira_may_move_out_cost and
7765 ira_may_move_in_cost.
7766 (record_address_regs): Don't call ira_init_register_move_cost.
7767 Use function ira_get_may_move_cost instead of global
7768 ira_may_move_in_cost.
7769 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 7770 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 7771 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 7772
646bea10
RG
77732009-04-16 Richard Guenther <rguenther@suse.de>
7774
7775 * tree-cfg.c (verify_gimple_assign_binary):
7776 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
7777 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
7778 (create_general_new_stmt): Note that this function is broken.
7779
02e819ff
RAE
77802009-04-16 Rafael Avila de Espindola <espindola@google.com>
7781
7782 * common.opt (fhelp): Add Var(help_flag).
7783 * gcc-plugin.h (plugin_info): Add help.
7784 * plugin.c (plugin_name_args): Add help.
7785 (register_plugin_info): Set plugin->help.
7786 (print_help_one_plugin): New.
7787 (print_plugins_help): New.
7788 * plugin.h (print_plugins_help): New.
7789 * toplev.c (toplev_main): Call print_plugins_help if needed.
7790
ccacdf06
RG
77912009-04-16 Richard Guenther <rguenther@suse.de>
7792
7793 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
7794 (gimple_ior_addresses_taken_1): New function.
7795 (gimple_ior_addresses_taken): Likewise.
7796 * gimple.h (struct gimple_statement_with_ops_base): Remove
7797 addresses_taken member.
7798 (gimple_ior_addresses_taken): Declare.
7799 (gimple_addresses_taken, gimple_addresses_taken_ptr,
7800 gimple_set_addresses_taken): Remove.
7801 * ipa-reference.c (mark_address): New function.
7802 (scan_stmt_for_static_refs): Use it for marking addresses taken.
7803 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
7804 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
7805 (gimple_add_to_addresses_taken): Remove.
7806 (get_tmr_operands): Call mark_address_taken.
7807 (get_asm_expr_operands): Likewise.
7808 (get_expr_operands): Likewise.
7809 (build_ssa_operands): Do not clear the addresses_taken bitmap.
7810 (free_stmt_operands): Do not free it.
7811 * tree-ssa.c (delete_tree_ssa): Likewise.
7812 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7813
346ef3fa
RG
78142009-04-16 Richard Guenther <rguenther@suse.de>
7815
7816 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7817 (walk_stmt_load_store_ops): Likewise.
7818 * gimple.c (get_base_loadstore): New function.
7819 (walk_stmt_load_store_addr_ops): Likewise.
7820 (walk_stmt_load_store_ops): Likewise.
7821 * ipa-pure-const.c (check_op): Simplify.
7822 (check_load, check_store): New functions.
7823 (check_stmt): Use walk_stmt_load_store_ops.
7824 * ipa-reference.c (mark_load): Adjust signature.
7825 (mark_store): Likewise.
7826 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7827
44e9f006
RAE
78282009-04-16 Rafael Avila de Espindola <espindola@google.com>
7829
7830 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7831 (plugin_info): New.
7832 * opts.c (common_handle_option): Don't call print_version.
7833 * plugin.c (plugin_name_args): Add version.
7834 (register_plugin_info): New.
7835 (register_callback): Handle PLUGIN_INFO.
7836 (try_init_one_plugin): New.
7837 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7838 if failed to init.
7839 (finalize_one_plugin): New.
7840 (finalize_plugins): New.
7841 (print_one_plugin): New.
7842 (print_plugins_versions): New.
7843 * plugin.h (print_plugins_versions): New.
7844 (finalize_plugins): New.
7845 * toplev.c (compile_file): Don't call initialize_plugins.
7846 (print_version): Call print_plugins_versions.
7847 (toplev_main): Call initialize_plugins. Print version if needed.
7848 Call finalize_plugins.
7849
41fd0f9b
RAE
78502009-04-16 Rafael Avila de Espindola <espindola@google.com>
7851
7852 * common.opt (fversion): New.
7853 * gcc.c (print_version): New.
7854 (process_command): Don't print the version. Just set print_version.
7855 (main): Print version. Call subprocesses if print_version and
7856 verbose_flag are set.
7857 * opts.c (common_handle_option): Handle OPT_fversion.
7858
550918ca 78592009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 7860 Ira Rosen <irar@il.ibm.com>
550918ca
RG
7861
7862 PR tree-optimization/39698
7863 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7864 type of the reduction variable. Only generate the def if
7865 it is needed.
7866
7867 * omp-low.c (expand_omp_for_generic): When converting to a pointer
7868 make sure to first convert to an integer of the same precision.
7869 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7870 the type of the evolution correctly in computing the new
7871 induction variable base.
7872
54634841
RG
78732009-04-16 Richard Guenther <rguenther@suse.de>
7874
7875 PR middle-end/39625
7876 * tree-cfg.c (make_blocks): Split statements with to-be
7877 abnormal SSA names on the lhs.
7878
b6fc2cdb
PB
78792009-04-16 Paolo Bonzini <bonzini@gnu.org>
7880
7881 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7882 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7883 * c-typeck.c (really_start_incremental_init): Likewise.
7884 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7885 (TARGET_INITIALIZER): Remove it.
7886 * target.h (struct target): Remove vector_opaque_p.
7887 * tree.c (build_opaque_vector_type): New.
7888 * tree.h (TYPE_VECTOR_OPAQUE): New.
7889 (build_opaque_vector_type): Declare.
7890 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7891 * config/rs6000/rs6000.c (build_opaque_vector_type,
7892 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7893 (rs6000_init_builtins): Use build_opaque_vector_type for
7894 opaque_V4SI_type_node.
7895
a417cdd9
CM
78962009-04-15 Catherine Moore <clm@codesourcery.com>
7897
532bfb0a
AJ
7898 * debug.h (set_name): Declare.
7899 * dwarf2out.c (dwarf2out_set_name): Declare.
7900 (dwarf2_debug_hooks): Add set_name.
7901 (find_AT_string): New.
7902 (add_AT_string): Call find_AT_string.
7903 (dwarf2out_set_name): New.
7904 * cp/decl.c (grokdeclarator): Call set_name.
7905 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7906 * debug.c (do_nothing_debug_hooks): Likewise.
7907 * dbxout.c (dbx_debug_hooks): Likewise.
7908 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 7909
60839f5d 79102009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 7911
532bfb0a
AJ
7912 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7913 reg for single-precision FPU.
7914 * config/rs6000/rs6000.md (movsi_internal1): Only for
7915 !TARGET_SINGLE_FPU.
7916 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
7917 single-precision FP regs.
7918
ada39f0b
RG
79192009-04-15 Richard Guenther <rguenther@suse.de>
7920
7921 * omp-low.c (lower_rec_input_clauses): Build correct address
7922 expressions.
7923 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 7924 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
7925 (generate_memset_zero): Fix types.
7926 * tree-profile.c (prepare_instrumented_value): Correctly
7927 widen a pointer.
7928
6866c6e8
ILT
79292009-04-15 Ian Lance Taylor <iant@google.com>
7930
7931 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
7932 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7933 for -Wall and for -Wc++-compat.
7934 (c_common_post_options): For C++, set warn_enum_compare if not
7935 already set.
7936 * c-tree.h (struct c_expr): Add field original_type.
7937 (build_external_ref): Update declaration.
7938 * c-parser.c (c_parser_braced_init): Set original_type.
7939 (c_parser_initelt): Likewise.
7940 (c_parser_expr_no_commas): Likewise.
7941 (c_parser_conditional_expression): Likewise.
7942 (c_parser_cast_expression): Likewise.
7943 (c_parser_unary_expression): Likewise. Pull setting of
7944 original_code to top of function.
7945 (c_parser_sizeof_expression): Set original_type.
7946 (c_parser_alignof_expression): Likewise.
7947 (c_parser_postfix_expression): Likewise. Pull setting of
7948 original_code to top of function.
532bfb0a 7949 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
7950 (c_parser_postfix_expression_after_primary): Likewise.
7951 (c_parser_expression): Likewise.
7952 * c-typeck.c (build_external_ref): Add type parameter. Change all
7953 callers.
7954 (c_expr_sizeof_expr): Set original_type field.
7955 (parser_build_unary_op): Likewise.
7956 (parser_build_binary_op): Likewise. Optionally warn about
7957 comparisons of enums of different types.
7958 (digest_init): Set original_type field.
7959 (really_start_incremental_init): Likewise.
7960 (push_init_level, pop_init_level): Likewise.
7961 * doc/invoke.texi (Warning Options): -Wenum-compare now
7962 supported in C.
7963
f116fecf
RG
79642009-04-15 Richard Guenther <rguenther@suse.de>
7965
7966 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7967 out a necessary conversion.
7968 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7969 names we didn't value number.
7970 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7971
25e20805
RG
79722009-04-15 Richard Guenther <rguenther@suse.de>
7973
7974 PR tree-optimization/39764
7975 * tree-ssa-ccp.c (get_value): Canonicalize value with
7976 canonicalize_float_value.
7977
90cc3676
JH
79782009-04-15 Jan Hubicka <jh@suse.cz>
7979
7980 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7981 Wrong version of patch.
7982
6d14c006
JH
79832009-04-15 Jan Hubicka <jh@suse.cz>
7984
7985 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7986
5afaa917
NS
79872009-04-15 Nathan Sidwell <nathan@codesourcery.com>
7988
7989 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7990 our distinct integral and vector types.
7991
3b482fca
RAE
79922009-04-15 Rafael Avila de Espindola <espindola@google.com>
7993
7994 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7995 * init.c (build_vtbl_address): Remove call to assemble_external.
7996
6cd1d2e2
DJ
79972009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
7998
7999 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
8000 output for other floating point modes.
8001
dab71827
DN
80022009-04-14 Diego Novillo <dnovillo@google.com>
8003
8004 * diagnostic.c (diagnostic_report_diagnostic): Do not
8005 warn about loaded plugins for DK_ERROR and DK_WARNING.
8006 * c-decl.c (declspecs_add_type): Move call to
8007 invoke_plugin_callbacks ...
8008 * c-parser.c (c_parser_declspecs): ... here.
8009 * plugin.c (dump_active_plugins): Tidy output.
8010
68a607d8
DN
80112009-04-14 Diego Novillo <dnovillo@google.com>
8012 Le-Chun Wu <lcwu@google.com>
8013
8014 * configure.ac: Add --enable-plugin support.
8015 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
8016 * Makefile.in (PLUGIN_H): Define.
8017 Export ENABLE_PLUGIN and GMPINC to site.exp.
8018 Add PLUGINLIBS to link command.
8019 Add/modify dependencies for plugin.o and files including plugin.h.
8020 (plugin.o): New.
8021 * config.in: Regenerate.
2ba9daa7 8022
68a607d8
DN
8023 * opts.c (common_handle_option): Handle OPT_fplugin_ and
8024 OPT_fplugin_arg_.
8025
80262009-04-14 Le-Chun Wu <lcwu@google.com>
8027
8028 * tree-pass.h (register_one_dump_file): Add a prototype for
8029 register_one_dump_file.
8030 * toplev.c (compile_file): Call initialize_plugins.
8031 (do_compile): Call invoke_plugin_callbacks.
8032 (toplev_main): Call invoke_plugin_callbacks.
8033 * common.opt: Add -fplugin= and -fplugin-arg-.
8034 * gcc-plugin.h: New public header file for plugins to include.
8035 * plugin.c: New source file.
8036 * plugin.h: New internal header file.
8037 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 8038
68a607d8
DN
8039 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
8040
80412009-04-14 Diego Novillo <dnovillo@google.com>
8042
8043 * doc/plugins.texi: New.
8044 * doc/gccint.texi: Add reference to Plugins chapter.
8045 * doc/invoke.texi: Document -fplugin and -fplugin-arg
8046 * diagnostic.c (diagnostic_report_diagnostic): Warn about
8047 loaded plugins, if any.
8048 * timevar.def (TV_PLUGIN_INIT): Define.
8049 (TV_PLUGIN_RUN): Define.
8050 * plugin.c: Include timevar.h
8051 (plugins_active_p): New.
8052 (dump_active_plugins): New.
8053 (debug_active_plugins): New.
8054
50617257
JM
80552009-04-14 Joseph Myers <joseph@codesourcery.com>
8056
8057 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
8058 library paths.
8059 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
8060
b32f6fff
KH
80612009-04-14 Kazu Hirata <kazu@codesourcery.com>
8062
8063 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
8064 the same as a minus without a shift.
8065
85d04fa2
NC
80662009-04-14 Nick Clifton <nickc@redhat.com>
8067
8068 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
8069 comparisons with small integers will always produce a short
8070 branch.
8071
e495a0c8
RAE
80722009-04-14 Rafael Avila de Espindola <espindola@google.com>
8073
8074 Merge:
e495a0c8
RAE
8075 2008-12-19 Diego Novillo <dnovillo@google.com>
8076
532bfb0a 8077 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 8078
ad41bd84 80792009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
8080
8081 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
8082 verification.
8083 (verify_gimple_assign_binary): Likewise. Handle shifts and
8084 rotates correctly.
8085 (verify_gimple_phi): Print the mismatched argument position.
8086 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8087 Fix types.
8088 (vect_update_init_of_dr): Likewise.
8089 * matrix-reorg.c (transform_access_sites): Do what the
8090 comment suggests.
8091 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
8092
60839f5d 80932009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
8094
8095 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
8096 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
8097 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 8098 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
8099 remove duplicate config
8100
b0e2d008
DR
81012009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8102
8103 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
8104 file_name:line_number type locator of the call site.
2ba9daa7 8105
1244a8b7
VM
81062009-04-13 Vladimir Makarov <vmakarov@redhat.com>
8107
8108 * genautomata.c: Put blank after comma.
8109 (automaton_decls): New.
8110 (struct unit_usage): Add comments to member next.
8111 (store_alt_unit_usage): Keep the list ordered.
8112 (unit_present_on_list_p, equal_alternatives_p): New.
8113 (check_regexp_units_distribution): Check units distribution
8114 correctness correctly.
8115 (main): Don't write automata if error is found. Return correct
8116 exit code.
2ba9daa7 8117
1244a8b7
VM
8118 * config/m68k/cf.md (cfv4_ds): Remove.
8119 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
8120 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
8121
8122 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
8123 power4-load-ext, power4-store, power4-store-update,
8124 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
8125 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
8126 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
8127 power4-sqrt, power4-isync): Modify reservation to make correct
8128 unit distribution to automata.
8129
8130 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
8131 power5-store-update, power5-two, power5-three, power5-lmul,
8132 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 8133
f7dd1864
AN
81342009-04-13 Adam Nemet <anemet@caviumnetworks.com>
8135
8136 * except.c (pass_set_nothrow_function_flags): Set name and add
8137 TODO_dump_func.
8138 (set_nothrow_function_flags): Mention in the dump file when
8139 changing a function to nothrow.
8140
59a1171f
OS
81412009-04-13 Ozkan Sezer <sezeroz@gmail.com>
8142
8143 PR/39066
8144 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
8145 instead of unsigned long.
8146
934c2060
RR
81472009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8148
f7dd1864
AN
8149 * config/arm/arm.c (return_used_this_function): Remove.
8150 (arm_output_function_prologue): Remove use of
934c2060 8151 return_used_this_function.
f7dd1864 8152 (output_return_instruction): Replace use of
934c2060
RR
8153 return_used_this_function
8154 by cfun->machine->return_used_this_function.
f7dd1864
AN
8155 (arm_output_epilogue): Likewise.
8156 (arm_output_function_epilogue): Likewise.
8157 (thumb_unexpanded_epilogue): Likewise.
8158 * config/arm/arm.h (struct machine_function):
934c2060 8159 New member return_used_this_function.
f7dd1864 8160
ae5cc016
MM
81612009-04-12 Mark Mitchell <mark@codesourcery.com>
8162
8163 * doc/install.texi: Correct description of default directory for
8164 --with-gxx-include-dir.
8165
a0ce68df 81662009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
8167
8168 * fold-const.c (build_range_check): Properly deal with enumeral and
8169 boolean base types.
8170
3906a4a1
SB
81712009-04-12 Steven Bosscher <steven@gcc.gnu.org>
8172
8173 * doc/invoke.texi (max_gcse_passes): Remove documentation.
8174 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
8175 * params.h (MAX_GCSE_PASSES): Remove.
8176 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
8177 in sequence. Remove ability to run multiple passes.
8178 (bypass_jumps): Report run as third CPROP pass.
8179
efaadb93
AN
81802009-04-12 Adam Nemet <anemet@caviumnetworks.com>
8181
8182 PR middle-end/39651
8183 * except.c (can_throw_external): Look at each insn in a SEQUENCE
8184 when deciding whether the whole SEQUENCE can throw.
8185
4c48007b
UB
81862009-04-12 Uros Bizjak <ubizjak@gmail.com>
8187
8188 PR target/39740
8189 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
8190 offseted label references.
8191
b4104018
JH
81922009-04-11 Jan Hubicka <jh@suse.cz>
8193
8194 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
8195
32848948
RG
81962009-04-11 Richard Guenther <rguenther@suse.de>
8197
8198 PR middle-end/39732
8199 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
8200 return variables as TREE_ADDRESSABLE.
8201
8810712e
RG
82022009-04-11 Richard Guenther <rguenther@suse.de>
8203
8204 PR tree-optimization/39713
8205 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
8206 reference trees have SSA_NAME operands.
8207
fa78c0c1
RG
82082009-04-11 Richard Guenther <rguenther@suse.de>
8209
8210 PR c/39712
8211 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
8212 address expressions.
8213
4d722130
DK
82142009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
8215
8216 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
8217 match changes in Cygwin 1.7
8218 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
8219 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
8220
567a90f5
PB
82212009-04-10 Paolo Bonzini <bonzini@gnu.org>
8222
8223 PR tree-optimization/39701
8224 * doc/invoke.texi (Optimization Options): Document change in
8225 meaning and initialization of -fdelete-null-pointer-checks.
8226
1ad2f450
L
82272009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8228
8229 PR middle-end/39701
8230 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
8231
8232 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
8233 here.
8234
8235 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
8236
1afc5373
CF
82372009-04-10 Chao-ying Fu <fu@mips.com>
8238
8239 * doc/tm.texi (Instruction Output): Document
8240 TARGET_ASM_FINAL_POSTSCAN_INSN.
8241 * target.h (final_postscan_insn): New field in asm_out.
8242 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8243 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
8244 * final.c (final_scan_insn): Call
8245 targetm.asm_out.final_postscan_insn after outputting
8246 an asm macro and a normal instruction.
8247
8248 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
8249 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
8250 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
8251 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
8252 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8253
4d35e75c
PB
82542009-04-10 Paolo Bonzini <bonzini@gnu.org>
8255
8256 PR middle-end/39701
1ad2f450
L
8257 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
8258 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 8259
62c49b83
L
82602009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8261
8262 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
8263
80558628
L
82642009-04-09 H.J. Lu <hongjiu.lu@intel.com>
8265
8266 PR target/39678
8267 * config/i386/i386.c (classify_argument): Handle SCmode with
8268 (bit_offset % 64) != 0.
8269
8c70d28b
SL
82702009-04-09 Sandra Loosemore <sandra@codesourcery.com>
8271
8272 * doc/invoke.texi (Optimize Options): Add cross-reference to
8273 -Q --help=optimizers examples.
8274
e1ff19bf
BE
82752009-04-10 Ben Elliston <bje@au.ibm.com>
8276
8277 PR target/36800
8278 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
8279 regalign for the reg == fpr and TDmode case.
8280
52daca75
DA
82812009-04-09 David Ayers <ayers@fsfe.org>
8282
8283 PR objc/29200
8284 * objc/objc-act.c (warn_with_method): Remove helper function.
8285 (check_duplicates): Call warning and inform directly.
8286 (really_start_method): Likewise.
8287
b45f0e58
PB
82882009-04-09 Paolo Bonzini <bonzini@gnu.org>
8289
8290 * expmed.c (expand_divmod): Always use a comparison for a division
8291 by a large unsigned integer.
8292
1ad2f450
L
8293 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
8294 for things others than variables or functions as nonzero.
b45f0e58 8295
748086b7
JJ
82962009-04-09 Nick Clifton <nickc@redhat.com>
8297
8298 * unwind-compat.c: Change copyright header to refer to version
8299 3 of the GNU General Public License with version 3.1 of the
8300 GCC Runtime Library Exception and to point readers at the
7a715bba 8301 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
8302 * config/alpha/crtfastmath.c: Likewise.
8303 * config/alpha/linux-unwind.h: Likewise.
8304 * config/alpha/qrnnd.asm: Likewise.
8305 * config/alpha/vms-crt0-64.c: Likewise.
8306 * config/alpha/vms-crt0.c: Likewise.
8307 * config/alpha/vms-dwarf2.asm: Likewise.
8308 * config/alpha/vms-dwarf2eh.asm: Likewise.
8309 * config/alpha/vms-psxcrt0-64.c: Likewise.
8310 * config/alpha/vms-psxcrt0.c: Likewise.
8311 * config/alpha/vms_tramp.asm: Likewise.
8312 * config/arc/initfini.c: Likewise.
8313 * config/arc/lib1funcs.asm: Likewise.
8314 * config/arm/bpabi-v6m.S: Likewise.
8315 * config/arm/bpabi.S: Likewise.
8316 * config/arm/bpabi.c: Likewise.
8317 * config/arm/crti.asm: Likewise.
8318 * config/arm/crtn.asm: Likewise.
8319 * config/arm/ieee754-df.S: Likewise.
8320 * config/arm/ieee754-sf.S: Likewise.
8321 * config/arm/lib1funcs.asm: Likewise.
8322 * config/arm/libunwind.S: Likewise.
8323 * config/arm/linux-atomic.c: Likewise.
8324 * config/arm/mmintrin.h: Likewise.
8325 * config/arm/pr-support.c: Likewise.
8326 * config/arm/unaligned-funcs.c: Likewise.
8327 * config/arm/unwind-arm.c: Likewise.
8328 * config/arm/unwind-arm.h: Likewise.
8329 * config/avr/libgcc.S: Likewise.
8330 * config/bfin/crti.s: Likewise.
8331 * config/bfin/crtlibid.s: Likewise.
8332 * config/bfin/crtn.s: Likewise.
8333 * config/bfin/lib1funcs.asm: Likewise.
8334 * config/bfin/linux-unwind.h: Likewise.
8335 * config/cris/arit.c: Likewise.
8336 * config/cris/cris_abi_symbol.c: Likewise.
8337 * config/darwin-64.c: Likewise.
8338 * config/darwin-crt2.c: Likewise.
8339 * config/darwin-crt3.c: Likewise.
8340 * config/darwin.h: Likewise.
8341 * config/dbxelf.h: Likewise.
8342 * config/dfp-bit.c: Likewise.
8343 * config/dfp-bit.h: Likewise.
8344 * config/elfos.h: Likewise.
8345 * config/fixed-bit.c: Likewise.
8346 * config/fixed-bit.h: Likewise.
8347 * config/fp-bit.c: Likewise.
8348 * config/fp-bit.h: Likewise.
8349 * config/fr30/crti.asm: Likewise.
8350 * config/fr30/crtn.asm: Likewise.
8351 * config/fr30/lib1funcs.asm: Likewise.
8352 * config/freebsd-spec.h: Likewise.
8353 * config/frv/cmovd.c: Likewise.
8354 * config/frv/cmovh.c: Likewise.
8355 * config/frv/cmovw.c: Likewise.
8356 * config/frv/frvbegin.c: Likewise.
8357 * config/frv/frvend.c: Likewise.
8358 * config/frv/lib1funcs.asm: Likewise.
8359 * config/glibc-stdint.h: Likewise.
8360 * config/h8300/clzhi2.c: Likewise.
8361 * config/h8300/crti.asm: Likewise.
8362 * config/h8300/crtn.asm: Likewise.
8363 * config/h8300/ctzhi2.c: Likewise.
8364 * config/h8300/fixunssfsi.c: Likewise.
8365 * config/h8300/lib1funcs.asm: Likewise.
8366 * config/h8300/parityhi2.c: Likewise.
8367 * config/h8300/popcounthi2.c: Likewise.
8368 * config/i386/ammintrin.h: Likewise.
8369 * config/i386/att.h: Likewise.
8370 * config/i386/avxintrin.h: Likewise.
8371 * config/i386/biarch64.h: Likewise.
8372 * config/i386/bmmintrin.h: Likewise.
8373 * config/i386/cpuid.h: Likewise.
8374 * config/i386/cross-stdarg.h: Likewise.
8375 * config/i386/crtfastmath.c: Likewise.
8376 * config/i386/crtprec.c: Likewise.
8377 * config/i386/cygming-crtbegin.c: Likewise.
8378 * config/i386/cygming-crtend.c: Likewise.
8379 * config/i386/cygwin.asm: Likewise.
8380 * config/i386/emmintrin.h: Likewise.
8381 * config/i386/gmm_malloc.h: Likewise.
8382 * config/i386/gthr-win32.c: Likewise.
8383 * config/i386/i386.h: Likewise.
8384 * config/i386/immintrin.h: Likewise.
8385 * config/i386/linux-unwind.h: Likewise.
8386 * config/i386/linux64.h: Likewise.
8387 * config/i386/mm3dnow.h: Likewise.
8388 * config/i386/mmintrin-common.h: Likewise.
8389 * config/i386/mmintrin.h: Likewise.
8390 * config/i386/nmmintrin.h: Likewise.
8391 * config/i386/pmm_malloc.h: Likewise.
8392 * config/i386/pmmintrin.h: Likewise.
8393 * config/i386/smmintrin.h: Likewise.
8394 * config/i386/sol2-c1.asm: Likewise.
8395 * config/i386/sol2-ci.asm: Likewise.
8396 * config/i386/sol2-cn.asm: Likewise.
8397 * config/i386/sol2-gc1.asm: Likewise.
8398 * config/i386/tmmintrin.h: Likewise.
8399 * config/i386/unix.h: Likewise.
8400 * config/i386/w32-unwind.h: Likewise.
8401 * config/i386/wmmintrin.h: Likewise.
8402 * config/i386/x86-64.h: Likewise.
8403 * config/i386/x86intrin.h: Likewise.
8404 * config/i386/xmmintrin.h: Likewise.
8405 * config/ia64/crtbegin.asm: Likewise.
8406 * config/ia64/crtend.asm: Likewise.
8407 * config/ia64/crtfastmath.c: Likewise.
8408 * config/ia64/crti.asm: Likewise.
8409 * config/ia64/crtn.asm: Likewise.
8410 * config/ia64/fde-glibc.c: Likewise.
8411 * config/ia64/lib1funcs.asm: Likewise.
8412 * config/ia64/linux-unwind.h: Likewise.
8413 * config/ia64/quadlib.c: Likewise.
8414 * config/ia64/unwind-ia64.c: Likewise.
8415 * config/linux.h: Likewise.
8416 * config/m32c/m32c-lib1.S: Likewise.
8417 * config/m32c/m32c-lib2-trapv.c: Likewise.
8418 * config/m32c/m32c-lib2.c: Likewise.
8419 * config/m32r/initfini.c: Likewise.
8420 * config/m68hc11/larith.asm: Likewise.
8421 * config/m68hc11/m68hc11-crt0.S: Likewise.
8422 * config/m68k/cf.md: Likewise.
8423 * config/m68k/crti.s: Likewise.
8424 * config/m68k/crtn.s: Likewise.
8425 * config/m68k/lb1sf68.asm: Likewise.
8426 * config/m68k/linux-unwind.h: Likewise.
8427 * config/mcore/crti.asm: Likewise.
8428 * config/mcore/crtn.asm: Likewise.
8429 * config/mcore/lib1.asm: Likewise.
8430 * config/mips/linux-unwind.h: Likewise.
8431 * config/mips/loongson.h: Likewise.
8432 * config/mips/mips16.S: Likewise.
8433 * config/mmix/crti.asm: Likewise.
8434 * config/mmix/crtn.asm: Likewise.
8435 * config/pa/fptr.c: Likewise.
8436 * config/pa/hpux-unwind.h: Likewise.
8437 * config/pa/lib2funcs.asm: Likewise.
8438 * config/pa/linux-atomic.c: Likewise.
8439 * config/pa/linux-unwind.h: Likewise.
8440 * config/pa/milli64.S: Likewise.
8441 * config/pa/quadlib.c: Likewise.
8442 * config/pa/stublib.c: Likewise.
8443 * config/picochip/libgccExtras/adddi3.asm: Likewise.
8444 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
8445 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
8446 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
8447 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
8448 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
8449 * config/picochip/libgccExtras/divmod15.asm: Likewise.
8450 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
8451 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
8452 * config/picochip/libgccExtras/longjmp.asm: Likewise.
8453 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
8454 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
8455 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
8456 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
8457 * config/picochip/libgccExtras/setjmp.asm: Likewise.
8458 * config/picochip/libgccExtras/subdi3.asm: Likewise.
8459 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
8460 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
8461 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
8462 * config/rs6000/750cl.h: Likewise.
8463 * config/rs6000/altivec.h: Likewise.
8464 * config/rs6000/biarch64.h: Likewise.
8465 * config/rs6000/crtresfpr.asm: Likewise.
8466 * config/rs6000/crtresgpr.asm: Likewise.
8467 * config/rs6000/crtresxfpr.asm: Likewise.
8468 * config/rs6000/crtresxgpr.asm: Likewise.
8469 * config/rs6000/crtsavfpr.asm: Likewise.
8470 * config/rs6000/crtsavgpr.asm: Likewise.
8471 * config/rs6000/darwin-asm.h: Likewise.
8472 * config/rs6000/darwin-fallback.c: Likewise.
8473 * config/rs6000/darwin-fpsave.asm: Likewise.
8474 * config/rs6000/darwin-ldouble.c: Likewise.
8475 * config/rs6000/darwin-tramp.asm: Likewise.
8476 * config/rs6000/darwin-unwind.h: Likewise.
8477 * config/rs6000/darwin-vecsave.asm: Likewise.
8478 * config/rs6000/darwin-world.asm: Likewise.
8479 * config/rs6000/e500crtres32gpr.asm: Likewise.
8480 * config/rs6000/e500crtres64gpr.asm: Likewise.
8481 * config/rs6000/e500crtres64gprctr.asm: Likewise.
8482 * config/rs6000/e500crtrest32gpr.asm: Likewise.
8483 * config/rs6000/e500crtrest64gpr.asm: Likewise.
8484 * config/rs6000/e500crtresx32gpr.asm: Likewise.
8485 * config/rs6000/e500crtresx64gpr.asm: Likewise.
8486 * config/rs6000/e500crtsav32gpr.asm: Likewise.
8487 * config/rs6000/e500crtsav64gpr.asm: Likewise.
8488 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
8489 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
8490 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
8491 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
8492 * config/rs6000/eabi-ci.asm: Likewise.
8493 * config/rs6000/eabi-cn.asm: Likewise.
8494 * config/rs6000/eabi.asm: Likewise.
8495 * config/rs6000/linux-unwind.h: Likewise.
8496 * config/rs6000/linux64.h: Likewise.
8497 * config/rs6000/paired.h: Likewise.
8498 * config/rs6000/paired.md: Likewise.
8499 * config/rs6000/ppc64-fp.c: Likewise.
8500 * config/rs6000/ppu_intrinsics.h: Likewise.
8501 * config/rs6000/rs6000.h: Likewise.
8502 * config/rs6000/si2vmx.h: Likewise.
8503 * config/rs6000/sol-ci.asm: Likewise.
8504 * config/rs6000/sol-cn.asm: Likewise.
8505 * config/rs6000/spe.h: Likewise.
8506 * config/rs6000/spu2vmx.h: Likewise.
8507 * config/rs6000/sysv4.h: Likewise.
8508 * config/rs6000/tramp.asm: Likewise.
8509 * config/rs6000/vec_types.h: Likewise.
8510 * config/s390/linux-unwind.h: Likewise.
8511 * config/s390/tpf-unwind.h: Likewise.
8512 * config/score/crti.asm: Likewise.
8513 * config/score/crtn.asm: Likewise.
8514 * config/sh/crt1.asm: Likewise.
8515 * config/sh/crti.asm: Likewise.
8516 * config/sh/crtn.asm: Likewise.
8517 * config/sh/divtab-sh4-300.c: Likewise.
8518 * config/sh/divtab-sh4.c: Likewise.
8519 * config/sh/divtab.c: Likewise.
8520 * config/sh/lib1funcs-4-300.asm: Likewise.
8521 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
8522 * config/sh/lib1funcs.asm: Likewise.
8523 * config/sh/lib1funcs.h: Likewise.
8524 * config/sh/linux-atomic.asm: Likewise.
8525 * config/sh/linux-unwind.h: Likewise.
8526 * config/sh/shmedia.h: Likewise.
8527 * config/sh/sshmedia.h: Likewise.
8528 * config/sh/ushmedia.h: Likewise.
8529 * config/sparc/crtfastmath.c: Likewise.
8530 * config/sparc/linux-unwind.h: Likewise.
8531 * config/sparc/sol2-c1.asm: Likewise.
8532 * config/sparc/sol2-ci.asm: Likewise.
8533 * config/sparc/sol2-cn.asm: Likewise.
8534 * config/spu/divmodti4.c: Likewise.
8535 * config/spu/divv2df3.c: Likewise.
8536 * config/spu/float_disf.c: Likewise.
8537 * config/spu/float_unsdidf.c: Likewise.
8538 * config/spu/float_unsdisf.c: Likewise.
8539 * config/spu/float_unssidf.c: Likewise.
8540 * config/spu/mfc_multi_tag_release.c: Likewise.
8541 * config/spu/mfc_multi_tag_reserve.c: Likewise.
8542 * config/spu/mfc_tag_release.c: Likewise.
8543 * config/spu/mfc_tag_reserve.c: Likewise.
8544 * config/spu/mfc_tag_table.c: Likewise.
8545 * config/spu/multi3.c: Likewise.
8546 * config/spu/spu_internals.h: Likewise.
8547 * config/spu/spu_intrinsics.h: Likewise.
8548 * config/spu/spu_mfcio.h: Likewise.
8549 * config/spu/vec_types.h: Likewise.
8550 * config/spu/vmx2spu.h: Likewise.
8551 * config/stormy16/stormy16-lib2.c: Likewise.
8552 * config/svr4.h: Likewise.
8553 * config/sync.c: Likewise.
8554 * config/v850/lib1funcs.asm: Likewise.
8555 * config/vxlib-tls.c: Likewise.
8556 * config/vxlib.c: Likewise.
8557 * config/vxworks-dummy.h: Likewise.
8558 * config/xtensa/crti.asm: Likewise.
8559 * config/xtensa/crtn.asm: Likewise.
8560 * config/xtensa/ieee754-df.S: Likewise.
8561 * config/xtensa/ieee754-sf.S: Likewise.
8562 * config/xtensa/lib1funcs.asm: Likewise.
8563 * config/xtensa/lib2funcs.S: Likewise.
8564 * config/xtensa/linux-unwind.h: Likewise.
8565 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8566 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
8567 * coretypes.h: Likewise.
8568 * crtstuff.c: Likewise.
8569 * defaults.h: Likewise.
8570 * dwarf2.h: Likewise.
8571 * emutls.c: Likewise.
8572 * gbl-ctors.h: Likewise.
8573 * gcov-io.h: Likewise.
8574 * ginclude/float.h: Likewise.
8575 * ginclude/iso646.h: Likewise.
8576 * ginclude/stdarg.h: Likewise.
8577 * ginclude/stdbool.h: Likewise.
8578 * ginclude/stddef.h: Likewise.
8579 * ginclude/stdfix.h: Likewise.
8580 * ginclude/stdint-gcc.h: Likewise.
8581 * ginclude/tgmath.h: Likewise.
8582 * gthr-aix.h: Likewise.
8583 * gthr-dce.h: Likewise.
8584 * gthr-gnat.c: Likewise.
8585 * gthr-gnat.h: Likewise.
8586 * gthr-lynx.h: Likewise.
8587 * gthr-mipssde.h: Likewise.
8588 * gthr-nks.h: Likewise.
8589 * gthr-posix.c: Likewise.
8590 * gthr-posix.h: Likewise.
8591 * gthr-posix95.h: Likewise.
8592 * gthr-rtems.h: Likewise.
8593 * gthr-single.h: Likewise.
8594 * gthr-solaris.h: Likewise.
8595 * gthr-tpf.h: Likewise.
8596 * gthr-vxworks.h: Likewise.
8597 * gthr-win32.h: Likewise.
8598 * gthr.h: Likewise.
8599 * libgcc2.c: Likewise.
8600 * libgcc2.h: Likewise.
8601 * libgcov.c: Likewise.
8602 * tsystem.h: Likewise.
8603 * typeclass.h: Likewise.
8604 * unwind-c.c: Likewise.
8605 * unwind-compat.h: Likewise.
8606 * unwind-dw2-fde-compat.c: Likewise.
8607 * unwind-dw2-fde-darwin.c: Likewise.
8608 * unwind-dw2-fde-glibc.c: Likewise.
8609 * unwind-dw2-fde.c: Likewise.
8610 * unwind-dw2-fde.h: Likewise.
8611 * unwind-dw2.c: Likewise.
8612 * unwind-dw2.h: Likewise.
8613 * unwind-generic.h: Likewise.
8614 * unwind-pe.h: Likewise.
8615 * unwind-sjlj.c: Likewise.
8616 * unwind.inc: Likewise.
8617 * config/arm/neon-gen.ml: Change generated copyright header to
8618 refer to version 3 of the GNU General Public License with
8619 version 3.1 of the GCC Runtime Library Exception and to point
8620 readers at the COPYING3 and COPYING3.RUNTIME files and the
8621 FSF's license web page.
8622 * config/arm/arm_neon.h: Regenerate.
8623
86242009-04-09 Jakub Jelinek <jakub@redhat.com>
8625
8626 * config/cris/cris.md: Change copyright header to refer to version
8627 3 of the GNU General Public License.
8628 * doc/install.texi2html: Change copyright header to refer to version
8629 3 of the GNU General Public License and to point readers at the
8630 COPYING3 file and the FSF's license web page.
8631 * config/vax/linux.h: Likewise.
8632
4a77c72b
PB
86332009-04-09 Paolo Bonzini <bonzini@gnu.org>
8634
1ad2f450
L
8635 * config/i386/i386.md (cmpcc): New.
8636 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
8637 (sync_compare_and_swap_cc*): Delete.
8638
8639 * config/s390/s390.c (s390_compare_emitted): Remove.
8640 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
8641 s390_compare_emitted used to be handled. Assert that modes match.
8642 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
8643 refer to sync_compare_and_swap_ccsi.
8644 * config/s390/s390.h (s390_compare_emitted): Remove.
8645 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
8646 instead of s390_compare_emitted.
8647 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
8648 instead of s390_compare_emitted.
8649 * config/s390/s390.md (cmpcc): New.
8650 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
8651 CC_REGNUM, do not pretend it's set.
8652 (sync_compare_and_swap_cc*): Delete.
8653 * config/s390/predicates.md (cc_reg_operand): New.
8654
8655 * expr.c (sync_compare_and_swap_cc): Delete.
8656 * optabs.h (sync_compare_and_swap_cc): Delete.
8657 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
8658 is being used with can_compare_p.
8659 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
8660 (find_cc_set): New.
8661 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
8662 look for a MODE_CC set instead. Use emit_store_flag.
8663 (expand_compare_and_swap_loop): Likewise, with some additional
8664 complication to avoid a force_reg when useless. Use
8665 emit_cmp_and_jump_insns.
8666 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
8667 * doc/md.texi (sync_compare_and_swap_cc): Merge with
8668 sync_compare_and_swap documentation.
4a77c72b 8669
0c0efb33
JH
86702009-04-09 Jan Hubicka <jh@suse.cz>
8671
8672 * except.c (find_prev_try): Break out from ....
8673 (duplicate_eh_regions): ... here; properly update prev_try pointers
8674 when duplication part of tree.
8675 (dump_eh_tree): Improve dumping.
8676 (verify_eh_region): New.
8677 (verify_eh_tree): Use it.
8678
22a65a54
RG
86792009-04-06 Richard Guenther <rguenther@suse.de>
8680
8681 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
8682 &ARRAY addresses by adjusting their types and prepending
8683 a conversion.
8684 * tree-cfg.c (verify_gimple_assign_single): Verify that
8685 addresses are correct.
8686
f76968e6
RG
86872009-04-09 Richard Guenther <rguenther@suse.de>
8688
8689 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
8690 indices into an array reference if possible.
8691 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8692 Fold POINTER_PLUS_EXPR statements with invariant address.
8693
c90c5fb5
AM
86942009-04-09 Alan Modra <amodra@bigpond.net.au>
8695
8696 PR target/39634
8697 * config.gcc (powerpc64-*-linux*): Always build biarch.
8698
17cede2e
JM
86992009-04-09 Joseph Myers <joseph@codesourcery.com>
8700
8701 PR c/39613
8702 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
8703 it and pedwarn if this results in an INTEGER_CST.
8704
a3337ea2
KG
87052009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8706
8707 * doc/install.texi: Update minimum GMP version. Remove obsolete
8708 text in MPFR section.
8709
ce9ba79b
JJ
87102009-04-08 Jakub Jelinek <jakub@redhat.com>
8711
8712 * dwarf2out.c (class_scope_p): New static inline.
8713 (class_or_namespace_scope_p): Use it.
8714 (gen_variable_die): Use DW_TAG_member tag for static data member
8715 declarations instead of DW_TAG_variable.
8716
4f0ae266
JJ
8717 PR middle-end/39573
8718 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
8719 variables.
8720
d27f0ddc
RG
87212009-04-08 Richard Guenther <rguenther@suse.de>
8722
8723 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
8724 valueize random data.
8725
557cc596
DE
87262009-04-08 David Edelsohn <edelsohn@gnu.org>
8727
8728 * config.gcc (aix tm_file): Add aix-stdint.h.
8729 (aix tm clause use_gcc_stdint): Set to wrap.
8730 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 8731
75ccc1e7
RG
87322009-04-08 Richard Guenther <rguenther@suse.de>
8733
8734 PR middle-end/36291
8735 * tree-dfa.c (add_referenced_var): Do not recurse into
8736 global initializers.
8737 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
8738 exposed variables.
8739 (fold_const_aggregate_ref): Likewise.
8740
c6963675
PB
87412009-04-08 Paolo Bonzini <bonzini@gnu.org>
8742
6c44cf79
L
8743 * recog.c (ordered_comparison_operator): New.
8744 * gensupport.c (std_preds): Add it.
c6963675
PB
8745 * doc/md.texi (Machine-Independent Predicates): Document it.
8746
6d07ad98
JH
87472009-04-08 Jan Hubicka <jh@suse.cz>
8748
8749 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
8750 * function.h (rtl_eh): Remove exception_handler_label_map.
8751 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
8752 remove_exception_handler_label, for_each_eh_label_1): Remove.
8753 (rtl_remove_unreachable_regions): Remove.
8754 (convert_from_eh_region_ranges): Do not remove unreachable regions.
8755 (find_exception_handler_labels): Don't build the hashtable.
8756 (maybe_remove_eh_handler): Remove.
8757 (for_each_eh_label): Rewrite to walk the tree.
8758 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
8759 * except.h (maybe_remove_eh_handler): Remove.
8760 * passes.c (init_optimization_passes): Schedule second EH cleanup
8761 before out-of-ssa.
8762 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
8763 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
8764
7ddf71e3
PB
87652009-04-08 Paolo Bonzini <bonzini@gnu.org>
8766
8767 * genoutput.c (validate_optab_operands): New.
8768 (gen_insn, gen_expand): Call it.
8769
8770 * genflags.c (gen_insn): Detect misused iterators.
8771 (main): Pass line_no to gen_insn, exit with status 1 on error.
8772
8773 * genextract.c (line_no): Make global.
8774 (VEC_safe_set_locstr): Change assertion to error message.
8775 (main): Exit with status 1 on error.
8776
4d84fe7c
JM
87772009-04-08 Joseph Myers <joseph@codesourcery.com>
8778
8779 PR c/39614
8780 PR c/39673
8781 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8782 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8783 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
8784 * c-convert.c (convert): Do not call fold on results of conversion
8785 functions when the result is a C_MAYBE_CONST_EXPR.
8786 * c-parser.c (c_parser_postfix_expression): Do not fold condition
8787 of __builtin_choose_expr.
8788 * c-typeck.c (remove_c_maybe_const_expr): New.
8789 (build_unary_op, build_conditional_expr, build_compound_expr,
8790 build_binary_op, c_objc_common_truthvalue_conversion): Call
8791 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
8792 integer operands.
8793
60839f5d 87942009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 8795
2ba9daa7 8796 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 8797 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 8798
8e481a2c
DS
87992009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
8800
8801 PR bootstrap/39660
8802 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
8803 mix declarations and code.
8804
ee618c17
BE
88052009-04-08 Ben Elliston <bje@au.ibm.com>
8806
8807 * gcc.c: Replace `CC' with `GCC' throughout.
8808
f2a758a2
L
88092009-04-07 H.J. Lu <hongjiu.lu@intel.com>
8810
8811 * doc/invoke.texi: Document Atom support.
8812
6ea2bd47
JM
88132009-04-07 Jason Merrill <jason@redhat.com>
8814
8815 PR c++/25185
8816 * c-common.h, c-common.c: Add flag_pretty_templates.
8817 * c-opts.c (c_common_handle_option): Set it.
8818 * c.opt: Add -fno-pretty-templates.
8819 * doc/invoke.texi (C++ Dialect Options): Likewise.
8820
fcb82ab0
UB
88212009-04-07 Uros Bizjak <ubizjak@gmail.com>
8822
8823 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8824 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8825 (ia64_expand_builtin): Likewise.
8826
dc5e7298
MJ
88272009-04-07 Martin Jambor <mjambor@suse.cz>
8828
8829 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8830 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8831 ADDR_EXPRS are include too.
8832
0609b355
RG
88332009-04-07 Richard Guenther <rguenther@suse.de>
8834
8835 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8836 decls are only used if passes as parameters or if they are
8837 local statics and the call is not to a builtin.
8838 (call_may_clobber_ref_p_1): Likewise.
8839
d8e535fa
PB
88402009-04-07 Paolo Bonzini <bonzini@gnu.org>
8841
8842 * expr.c (do_store_flag): Remove last argument. Simplify code
8843 to avoid duplication of tests already done by can_compare_p.
8844 (expand_expr_real_1): Adjust caller.
8845
c3c64f50
PB
88462009-04-07 Paolo Bonzini <bonzini@gnu.org>
8847
fcb82ab0
UB
8848 * optabs.c (can_compare_p): Test the predicate of a
8849 cbranch and cstore pattern.
c3c64f50 8850
9a53bc17
PB
88512009-04-07 Paolo Bonzini <bonzini@gnu.org>
8852
fcb82ab0
UB
8853 * expr.c (convert_move): Use emit_store_flag instead of
8854 "emulating" it.
9a53bc17 8855
67b8f1c1
PB
88562009-04-07 Paolo Bonzini <bonzini@gnu.org>
8857
fcb82ab0
UB
8858 * config/i386/i386.c (ix86_compare_emitted): Remove.
8859 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8860 ix86_compare_op0 like ix86_compare_emitted used to be handled.
8861 * config/i386/i386.h (ix86_compare_emitted): Remove.
8862 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8863 instead of ix86_compare_emitted.
8864 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 8865
44509946
AS
88662009-04-07 Andrew Stubbs <ams@codesourcery.com>
8867
8868 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8869 Add t-sysroot-suffix to tmake_file.
8870 * config/print-sysroot-suffix.sh: New file.
8871 * config/t-sysroot-suffix: New file.
8872
ca22d882
BE
88732009-04-07 Ben Elliston <bje@au.ibm.com>
8874
8875 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8876 as the latter produces a warning when the target does not support
8877 infinity.
8878
95aac11b
BE
88792009-04-07 Ben Elliston <bje@au.ibm.com>
8880
8881 * dfp.c: Replace type punning assignments with memcpy throughout.
8882 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 8883
633dd061
AM
88842009-04-07 Alan Modra <amodra@bigpond.net.au>
8885
8886 PR target/39634
8887 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8888 Include soft-fp/t-softfp after rs6000/t-linux64.
8889
fe0a25ec
EB
88902009-04-06 Eric Botcazou <ebotcazou@adacore.com>
8891
8892 * stor-layout.c (set_sizetype): Use the full precision of their
8893 machine mode for bitsize types.
8894
0c011bc3
L
88952009-04-06 H.J. Lu <hongjiu.lu@intel.com>
8896
8897 * config/i386/i386.md: Revert 2 accidental checkins.
8898
b6837b94 88992009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 8900 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
8901 H.J. Lu <hongjiu.lu@intel.com>
8902
8903 Atom pipeline model, tuning and insn selection.
8904 * config.gcc (atom): Add atom config options and target.
8905
8906 * config/i386/atom.md: New.
8907
8908 * config/i386/i386.c (atom_cost): New cost.
8909 (m_ATOM): New macro flag.
8910 (initial_ix86_tune_features): Set m_ATOM.
8911 (x86_accumulate_outgoing_args): Likewise.
8912 (x86_arch_always_fancy_math_387): Likewise.
8913 (processor_target): Add Atom cost.
8914 (cpu_names): Add Atom cpu name.
8915 (override_options): Set Atom ISA.
8916 (ix86_issue_rate): New case PROCESSOR_ATOM.
8917 (ix86_adjust_cost): Likewise.
8918
8919 * config/i386/i386.h (TARGET_ATOM): New target macro.
8920 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8921 (TARGET_OPT_AGU): New target option.
8922 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8923 (processor_type): Add PROCESSOR_ATOM.
8924
8925 * config/i386/i386.md (cpu): Add new value "atom".
8926 (use_carry, movu): New attr.
8927 (atom.md): Include atom.md.
8928 (adddi3_carry_rex64): Set attr "use_carry".
8929 (addqi3_carry): Likewise.
8930 (addhi3_carry): Likewise.
8931 (addsi3_carry): Likewise.
8932 (*addsi3_carry_zext): Likewise.
8933 (subdi3_carry_rex64): Likewise.
8934 (subqi3_carry): Likewise.
8935 (subhi3_carry): Likewise.
8936 (subsi3_carry): Likewise.
8937 (x86_movdicc_0_m1_rex64): Likewise.
8938 (*x86_movdicc_0_m1_se): Likewise.
8939 (x86_movsicc_0_m1): Likewise.
8940 (*x86_movsicc_0_m1_se): Likewise.
8941 (*adddi_1_rex64): Emit add insn as much as possible.
8942 (*addsi_1): Likewise.
8943 (return_internal): Set atom_unit.
8944 (return_internal_long): Likewise.
8945 (return_pop_internal): Likewise.
8946 (*rcpsf2_sse): Set atom_sse_attr attr.
8947 (*qrt<mode>2_sse): Likewise.
8948 (*prefetch_sse): Likewise.
8949
8950 * config/i386/i386-c.c (ix86_target_macros_internal): New case
8951 PROCESSOR_ATOM.
8952 (ix86_target_macros_internal): Likewise.
8953
8954 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8955 (*prefetch_sse_rex): Likewise.
8956 (sse_rcpv4sf2): Likewise.
8957 (sse_vmrcpv4sf2): Likewise.
8958 (sse_sqrtv4sf2): Likewise.
8959 (<sse>_vmsqrt<mode>2): Likewise.
8960 (sse_ldmxcsr): Likewise.
8961 (sse_stmxcsr): Likewise.
8962 (*sse_sfence): Likewise.
8963 (sse2_clflush): Likewise.
8964 (*sse2_mfence): Likewise.
8965 (*sse2_lfence): Likewise.
8966 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8967 (<sse>_movup<ssemodesuffixf2c>): Likewise.
8968 (avx_movdqu<avxmodesuffix>): Likewise.
8969 (avx_lddqu<avxmodesuffix>): Likewise.
8970 (sse2_movntv2di): Change attr "type" to "ssemov".
8971 (sse2_movntsi): Likewise.
8972 (rsqrtv8sf2): Change attr "type" to "sseadd".
8973 (sse3_addsubv2df3): Set attr "atom_unit".
8974 (sse3_h<plusminus_insn>v4sf3): Likewise.
8975 (*sse2_pmaddwd): Likewise.
8976 (*vec_extractv2di_1_rex64): Likewise.
8977 (*vec_extractv2di_1_avx): Likewise.
8978 (sse2_psadbw): Likewise.
8979 (ssse3_phaddwv8hi3): Likewise.
8980 (ssse3_phaddwv4hi3): Likewise.
8981 (ssse3_phadddv4si3): Likewise.
8982 (ssse3_phadddv2si3): Likewise.
8983 (ssse3_phaddswv8hi3): Likewise.
8984 (ssse3_phaddswv4hi3): Likewise.
8985 (ssse3_phsubwv8hi3): Likewise.
8986 (ssse3_phsubwv4hi3): Likewise.
8987 (ssse3_phsubdv4si3): Likewise.
8988 (ssse3_phsubdv2si3): Likewise.
8989 (ssse3_phsubswv8hi3): Likewise.
8990 (ssse3_phsubswv4hi3): Likewise.
8991 (ssse3_pmaddubsw128): Likewise.
8992 (sse3_pmaddubsw: Likewise.
8993 (ssse3_palignrti): Likewise.
8994 (ssse3_palignrdi): Likewise.
8995
53e350d3
GP
89962009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
8997
8998 * doc/install.texi (Specific): Fix two cross-references to MinGW.
8999
439ef907
RG
90002009-04-06 Richard Guenther <rguenther@suse.de>
9001
9002 PR tree-optimization/28868
9003 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
9004 of which PHI results we inserted.
9005 (insert_into_preds_of_block): Record inserted PHIs.
9006 (eliminate): Eliminate redundant PHI nodes.
9007 (init_pre): Init inserted_phi_names.
9008
4bad83f5
RG
90092009-04-06 Richard Guenther <rguenther@suse.de>
9010
9011 PR tree-optimization/39643
9012 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
9013 IMAGPART_EXPRs of complex constants.
9014 (execute_fold_all_builtins): If we folded a call queue
9015 TODO_update_address_taken.
9016
570c4247
JH
90172009-04-06 Jan Hubicka <jh@suse.cz>
9018
9019 PR middle-end/39659
9020 * except.c (remove_unreachable_regions): Propagate may_contain_throw
9021 flag.
9022
a460d7a1
AS
90232009-04-06 Andrew Stubbs <ams@codesourcery.com>
9024
9025 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
9026 delay slot.
9027 (ic_invalidate_array): Likewise.
9028
60839f5d 90292009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
9030
9031 * calls.c (emit_library_call_value_1): Fix a problem with parameter
9032 alignment for library calls.
9033
7d253f6e
DS
90342009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
9035
9036 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
9037 (mingw32 tm clause use_gcc_stdint): Set to wrap.
9038 * config/i386/mingw-stdint.h: New file.
9039
941c3614
RB
90402009-04-05 Richard Guenther <rguenther@suse.de>
9041
9042 PR tree-optimization/39648
9043 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
9044 our &A vs. &A[0] IL deficiencies.
9045
12633413
JH
90462009-04-04 Jan Hubicka <jh@suse.cz>
9047
941c3614
RB
9048 * except.c (sjlj_find_directly_reachable_regions): Be ready for
9049 removed toplevel regions.
12633413
JH
9050 (sjlj_mark_call_sites): Likewise.
9051
bb2aaded
DK
90522009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
9053
9054 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
9055 (cygwin tm clause use_gcc_stdint): Set to wrap.
9056 * config/i386/cygwin-stdint.h: New file.
9057
86290011
RG
90582009-04-04 Richard Guenther <rguenther@suse.de>
9059
9060 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
9061 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
9062 single-argument PHIs if we are in loop-closed SSA form.
9063 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
9064 for the pre-condition.
9065 (slpeel_tree_peel_loop_to_edge): Likewise.
9066 (vect_build_loop_niters): Take an optional sequence to append stmts.
9067 (vect_generate_tmps_on_preheader): Likewise.
9068 (vect_do_peeling_for_loop_bound): Take extra guards for the
9069 pre-condition.
9070 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
9071 the cost model check.
9072 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 9073 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
9074 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
9075 (vect_do_peeling_for_loop_bound): Likewise.
9076 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
9077 loop bound only record extra pre-conditions, do not apply loop
9078 versioning.
9079
5eeeac64
RG
90802009-04-04 Richard Guenther <rguenther@suse.de>
9081
9082 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
9083 renaming code.
9084
1ff7d06b
JH
90852009-04-04 Jan Hubicka <jh@suse.cz>
9086
9087 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9088 last_basic_block for size of bb->index indexed array.
9089 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
9090 compute_out, link_btr_uses, build_btr_def_use_webs,
9091 build_btr_def_use_webs, migrate_btr_defs): Likewise.
9092
14925fcd
JH
90932009-04-04 Jan Hubicka <jh@suse.cz>
9094
9095 * except.c (remove_eh_handler_and_replace): Break out from ...
9096 (remove_eh_handler): ... here.
9097 (bring_to_root): New function.
9098 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
9099 handled ones, bring others to root of tree.
9100
4e6d1743
JH
91012009-04-04 Jan Hubicka <jh@suse.cz>
9102
4cb735f7
JH
9103 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
9104 (all_phis_safe_to_merge): New function.
9105 (update_info): New structure.
9106 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
9107 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 9108
c6803d43
RG
91092009-04-04 Richard Guenther <rguenther@suse.de>
9110
9111 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
9112 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
9113 (append_vuse): Likewise.
9114
54f5943c
JJ
91152009-04-04 Jakub Jelinek <jakub@redhat.com>
9116
9117 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
9118 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
9119 instead of REG_UNSAVED for DW_CFA_undefined.
9120 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
9121 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
9122 outermost frame.
9123
aad2bccb
RE
91242009-04-04 Richard Earnshaw <rearnsha@arm.com>
9125
9126 PR target/39501
9127 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
9128 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
9129 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
9130
aa7069aa
RG
91312009-04-04 Richard Guenther <rguenther@suse.de>
9132
9133 PR tree-optimization/8781
9134 PR tree-optimization/37892
9135 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
9136 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
9137 (valueize_refs): Call it for *& valueizations.
9138 (shared_reference_ops_from_ref): Rename to ...
9139 (valueize_shared_reference_ops_from_ref): ... this and valueize.
9140 (shared_reference_ops_from_call): Rename to ...
9141 (valueize_shared_reference_ops_from_call): ... this and valueize.
9142 (vn_reference_lookup): Update.
9143 (visit_reference_op_call): Likewise.
9144 * tree-ssa-pre.c (phi_translate_1): Fold *&.
9145 (eliminate): Value-replace the call address in call statements.
9146
cd15ad3e
RG
91472009-04-04 Richard Guenther <rguenther@suse.de>
9148
9149 PR tree-optimization/39636
9150 * tree-ssa-forwprop.c
9151 (forward_propagate_addr_into_variable_array_index): Check for
9152 GIMPLE_ASSIGN before accessing the rhs code.
9153
462f3262
JM
91542009-04-03 Jason Merrill <jason@redhat.com>
9155
9156 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
9157
6adb807e
SE
91582009-04-03 Steve Ellcey <sje@cup.hp.com>
9159
9160 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
9161 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
9162 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
9163 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
9164 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
9165 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
9166 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
9167 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
9168 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
9169 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
9170 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
9171 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
9172 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
9173 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
9174 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
9175 Use fr_reg_or_fp01_operand instead of fr_register_operand
9176
9177 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
9178 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
9179 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
9180
174b3107
VM
91812009-04-03 Vladimir Makarov <vmakarov@redhat.com>
9182
b844e5d8
L
9183 PR rtl-optimization/39607
9184 PR rtl-optimization/39631
7a715bba
UB
9185
9186 Revert:
2ba9daa7 9187
174b3107
VM
9188 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9189 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9190 instead of DF_LR_OUT.
9191 * ira-lives.c (process_bb_node_lives): Ditto.
9192 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9193 instead of DF_LR_{OUT,IN}.
9194 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9195 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9196
535b544a
SB
91972009-04-03 Steven Bosscher <steven@gcc.gnu.org>
9198
9199 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
9200 (execute_lower_omp): Always run but take the short way out if -fopenmp
9201 is not given.
9202 (gate_lower_omp): Remove, forcing the pass manager to always run the
9203 pass and always set PROP_gimple_lomp.
9204 (pass_lower_omp): Remove gate function.
9205 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
9206 PROP_trees. Instead, require it.
9207 * ipa-cp.c (pass_ipa_cp): Likewise.
9208 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
9209 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
9210 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
9211 and PROP_gimple_leh.
9212
5006671f
RG
92132009-04-03 Richard Guenther <rguenther@suse.de>
9214
9215 PR middle-end/13146
9216 PR tree-optimization/23940
9217 PR tree-optimization/33237
9218 PR middle-end/33974
9219 PR middle-end/34093
9220 PR tree-optimization/36201
9221 PR tree-optimization/36230
9222 PR tree-optimization/38049
9223 PR tree-optimization/38207
9224 PR tree-optimization/38230
9225 PR tree-optimization/38301
9226 PR tree-optimization/38585
9227 PR middle-end/38895
9228 PR tree-optimization/38985
9229 PR tree-optimization/39299
9230 * tree-ssa-structalias.h: Remove.
9231 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
9232 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
9233 (struct vuse_element_d): Remove.
9234 (struct vuse_vec_d): Likewise.
9235 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
9236 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
9237 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
9238 VUSE_ELEMENT_VAR): Likewise.
9239 (struct voptype_d): Likewise.
9240 (NUM_VOP_FREE_BUCKETS): Likewise.
9241 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
9242 (struct stmt_operands_d): Remove.
9243 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
9244 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
9245 VDEF_NUM, VDEF_VECT): Likewise.
9246 (copy_virtual_operands): Remove.
9247 (operand_build_cmp): Likewise.
9248 (create_ssa_artificial_load_stmt): Likewise.
9249 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
9250 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
9251 vuse_index and mayuse_index members. Pack and move done and iter_type
9252 members to the front.
9253 (SSA_OP_VMAYUSE): Remove.
9254 (SSA_OP_VIRTUAL_USES): Adjust.
9255 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
9256 (unlink_stmt_vdef): Declare.
9257 (add_to_addressable_set): Remove.
9258 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
9259 (vrp_visit_stmt): Likewise.
9260 * doc/tree-ssa.texi (Alias analysis): Update.
9261 * doc/invoke.texi (max-aliased-vops): Remove docs.
9262 (avg-aliased-vops): Likewise.
9263 * tree-into-ssa.c (syms_to_rename): Remove.
9264 (need_to_update_vops_p): Likewise.
9265 (need_to_initialize_update_ssa_p): Rename to ...
9266 (update_ssa_initialized_fn): ... this. Track function we are
9267 initialized for.
9268 (symbol_marked_for_renaming): Simplify.
9269 (add_new_name_mapping): Do not set need_to_update_vops_p.
9270 (dump_currdefs): Use SYMS_TO_RENAME.
9271 (rewrite_update_stmt): Always walk all uses/defs.
9272 (dump_update_ssa): Adjust.
9273 (init_update_ssa): Take function argument. Track what we are
9274 initialized for.
9275 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
9276 (create_new_def_for): Initialize for cfun, assert we are initialized
9277 for cfun.
9278 (mark_sym_for_renaming): Simplify.
9279 (mark_set_for_renaming): Do not initialize update-ssa.
9280 (need_ssa_update_p): Simplify. Take function argument.
9281 (name_mappings_registered_p): Assert we ask for the correct function.
9282 (name_registered_for_update_p): Likewise.
9283 (ssa_names_to_replace): Likewise.
9284 (release_ssa_name_after_update_ssa): Likewise.
9285 (update_ssa): Likewise. Use SYMS_TO_RENAME.
9286 (dump_decl_set): Do not print a newline.
9287 (debug_decl_set): Do it here.
9288 (dump_update_ssa): And here.
9289 * tree-ssa-loop-im.c (move_computations): Adjust.
9290 (movement_possibility): Likewise.
9291 (determine_max_movement): Likewise.
9292 (gather_mem_refs_stmt): Likewise.
9293 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
9294 or NAME_MEMORY_TAG.
9295 * tree-complex.c (update_all_vops): Remove.
9296 (expand_complex_move): Adjust.
9297 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
9298 Simplify test for memory referencing statement. Exclude
9299 non-invariant ADDR_EXPRs.
9300 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
9301 * tree-loop-distribution.c (generate_memset_zero): Adjust.
9302 (rdg_flag_uses): Likewise.
9303 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
9304 related code.
9305 (tree_optimize_tail_calls_1): Also split the
9306 edge from the entry block if we have degenerate PHI nodes in
9307 the first basic block.
9308 * tree.c (init_ttree): Remove memory-tag related code.
9309 (tree_code_size): Likewise.
9310 (tree_node_structure): Likewise.
9311 (build7_stat): Re-write to be build6_stat.
9312 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
9313 (SSA_VAR_P): Adjust.
9314 (struct tree_memory_tag): Remove.
9315 (struct tree_memory_partition_tag): Likewise.
9316 (union tree_node): Adjust.
9317 (build7): Re-write to be build6.
9318 * tree-pass.h (pass_reset_cc_flags): Remove.
9319 (TODO_update_address_taken): New flag.
9320 (pass_simple_dse): Remove.
9321 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
9322 * params.h (MAX_ALIASED_VOPS): Remove.
9323 (AVG_ALIASED_VOPS): Likewise.
9324 * omp-low.c (expand_omp_taskreg): Update SSA form.
9325 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
9326 aliases the lhs in a copy stmt.
9327 * tree-ssa-dse.c (struct address_walk_data): Remove.
9328 (memory_ssa_name_same): Likewise.
9329 (memory_address_same): Likewise.
9330 (get_kill_of_stmt_lhs): Likewise.
9331 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
9332 unused stores. Look through PHI nodes into post-dominated regions.
9333 (dse_optimize_stmt): Simplify. Properly remove stores.
9334 (tree_ssa_dse): Compute dominators.
9335 (execute_simple_dse): Remove.
9336 (pass_simple_dse): Likewise.
9337 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
9338 gimple_loaded_syms and gimple_stored_syms computation.
9339 * toplev.c (dump_memory_report): Dump alias and pta stats.
9340 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
9341 (vn_reference_eq): Likewise.
9342 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
9343 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
9344 valueize_vuses): Remove.
9345 (get_def_ref_stmt_vuses): Simplify. Rename to ...
9346 (get_def_ref_stmt_vuse): ... this.
9347 (vn_reference_lookup_2): New function.
9348 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
9349 walking equivalent vuses. Simplify.
9350 (vn_reference_lookup): Likewise.
9351 (vn_reference_insert): Likewise.
9352 (vn_reference_insert_pieces): Likewise.
9353 (visit_reference_op_call): Simplify.
9354 (visit_reference_op_load): Likewise.
9355 (visit_reference_op_store): Likewise.
9356 (init_scc_vn): Remove shared_lookup_vuses initialization.
9357 (free_scc_vn): Remove shared_lookup_vuses freeing.
9358 (sort_vuses, sort_vuses_heap): Remove.
9359 (get_ref_from_reference_ops): Export.
9360 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
9361 vector with single vuse pointer.
9362 (vn_reference_lookup_pieces, vn_reference_lookup,
9363 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
9364 (shared_vuses_from_stmt): Remove.
9365 (get_ref_from_reference_ops): Declare.
9366 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
9367 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
9368 memory-tag related code.
9369 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
9370 (likely_value): Add comment, skip static-chain of call statements.
9371 (surely_varying_stmt_p): Adjust.
9372 (gimplify_and_update_call_from_tree): Likewise.
9373 (execute_fold_all_builtins): Do not rebuild alias info.
9374 (gimplify_and_update_call_from_tree): Properly update VOPs.
9375 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
9376 (copy_ref_info): Remove memory-tag related code.
9377 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
9378 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
9379 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
9380 computation.
9381 * tree-ssa-dom.c (gimple_p): Remove typedef.
9382 (eliminate_redundant_computations): Adjust.
9383 (record_equivalences_from_stmt): Likewise.
9384 (avail_expr_hash): Likewise.
9385 (avail_expr_eq): Likewise.
7a715bba 9386 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
9387 (stmt_makes_single_load): Likewise.
9388 (stmt_makes_single_store): Likewise.
9389 * tree-ssa-alias.c: Rewrite completely.
9390 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
9391 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
9392 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
9393 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
9394 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
9395 Remove public functions.
9396 (pass_reset_cc_flags): Remove.
9397 (pass_build_alias): Move ...
9398 * tree-ssa-structalias.c (pass_build_alias): ... here.
9399 * tree-ssa-alias.c (may_be_aliased): Move ...
9400 * tree-flow-inline.h (may_be_aliased): ... here.
9401 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
9402 count_uses_and_derefs): Move ...
9403 * gimple.c: ... here.
9404 * gimple.h (count_uses_and_derefs): Declare.
9405 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
9406 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
9407 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
9408 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
9409 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
9410 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
9411 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
9412 New functions.
9413 * tree-dfa.c (refs_may_alias_p): Move ...
9414 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
9415 * tree-ssa-alias.h: New file.
9416 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
9417 (statement_sink_location): Likewise.
9418 * opts.c (decode_options): Do not adjust max-aliased-vops or
9419 avg-aliased-vops values.
9420 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
9421 (TV_CALL_CLOBBER): Likewise.
9422 (TV_FLOW_SENSITIVE): Likewise.
9423 (TV_FLOW_INSENSITIVE): Likewise.
9424 (TV_MEMORY_PARTITIONING): Likewise.
9425 (TV_ALIAS_STMT_WALK): New timevar.
9426 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
9427 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
9428 (get_address_description): Remove memory-tag related code.
9429 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
9430 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
9431 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
9432 and immediate uses in statements. Document.
9433 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
9434 (dump_symbols): Remove.
9435 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
9436 * alias.c (get_deref_alias_set): New function split out from ...
9437 (get_alias_set): ... here.
9438 * alias.h (get_deref_alias_set): Declare.
9439 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
9440 type parameter. Remove restrict pointer handling. Create a
9441 ref-all pointer in case type-based alias sets do not conflict.
9442 (vect_analyze_data_refs): Remove SMT related code.
9443 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
9444 (vectorizable_load): Likewise.
9445 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
9446 (DR_SYMBOL_TAG, DR_VOPS): Remove.
9447 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
9448 Ignore vops and SMTs.
9449 (dr_analyze_alias): Likewise..
9450 (free_data_ref): Likewise.
9451 (create_data_ref): Likewise.
9452 (analyze_all_data_dependences): Likewise.
9453 (get_references_in_stmt): Adjust.
9454 * tree-flow-inline.h (gimple_aliases_computed_p,
9455 gimple_addressable_vars, gimple_call_clobbered_vars,
9456 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
9457 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
9458 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
9459 gimple_mem_ref_stats): Remove.
9460 (gimple_vop): New function.
9461 (op_iter_next_use): Remove vuses and mayuses cases.
9462 (op_iter_next_def): Remove vdefs case.
9463 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
9464 (clear_and_done_ssa_iter): Do not set removed fields.
9465 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
9466 Assert we are not iterating over vuses or vdefs if not also
9467 iterating over uses or defs.
9468 (op_iter_init_use): Likewise.
9469 (op_iter_init_def): Likewise.
9470 (op_iter_next_vdef): Remove.
9471 (op_iter_next_mustdef): Likewise.
9472 (op_iter_init_vdef): Likewise.
9473 (compare_ssa_operands_equal): Likewise.
9474 (link_use_stmts_after): Handle vuse operand.
9475 (is_call_used): Use is_call_clobbered.
9476 (is_call_clobbered): Global variables are always call clobbered,
9477 query the call-clobbers bitmap.
9478 (mark_call_clobbered): Ignore global variables.
9479 (clear_call_clobbered): Likewise.
9480 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
9481 virtual operands sanity check.
9482 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
9483 Remove.
9484 (TARGET_MEM_REF): Remove TMR_TAG operand.
9485 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
9486 Remove call-clobber related code.
9487 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
9488 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
9489 partitions or escape reason.
9490 (get_single_def_stmt, get_single_def_stmt_from_phi,
9491 get_single_def_stmt_with_phi): Remove.
9492 (dump_referenced_vars): Tidy.
9493 (get_ref_base_and_extent): Allow bare decls.
9494 (collect_dfa_stats): Adjust.
9495 * graphite.c (rename_variables_in_stmt): Adjust.
9496 (graphite_copy_stmts_from_block): Likewise.
9497 (translate_clast): Likewise.
9498 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
9499 (EXPR_DIES): New.
9500 (translate_vuse_through_block): Use the oracle.
9501 (phi_translate_1): Adjust.
9502 (value_dies_in_block_x): Use the oracle. Cache the outcome
9503 in EXPR_DIES.
9504 (valid_in_sets): Check if the VUSE for
9505 a REFERENCE is available.
9506 (eliminate): Do not remove stmts during elimination,
9507 instead queue and remove them afterwards.
9508 (do_pre): Do not rebuild alias info.
9509 (pass_pre): Run TODO_rebuild_alias before PRE.
9510 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
9511 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
9512 (mark_all_v_defs_stmt): Remove.
9513 (mark_all_v_defs_seq): Adjust.
9514 (sra_replace): Likewise.
9515 (scalarize_use): Likewise.
9516 (scalarize_copy): Likewise.
9517 (scalarize_init): Likewise.
9518 (scalarize_ldst): Likewise.
9519 (todoflags): Remove.
9520 (tree_sra): Do not rebuild alias info.
9521 (tree_sra_early): Adjust.
9522 (pass_sra): Run TODO_update_address_taken before SRA.
9523 * tree-predcom.c (set_alias_info): Remove.
9524 (prepare_initializers_chain): Do not call it.
9525 (mark_virtual_ops_for_renaming): Adjust.
9526 (mark_virtual_ops_for_renaming_list): Remove.
9527 (initialize_root_vars): Adjust.
9528 (initialize_root_vars_lm): Likewise.
9529 (prepare_initializers_chain): Likewise.
9530 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
9531 (may_propagate_copy_into_stmt): Likewise.
9532 (merge_alias_info): Do nothing for now.
9533 (propagate_tree_value_into_stmt): Adjust.
9534 (stmt_may_generate_copy): Likewise.
9535 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
9536 not mark symbols for renaming.
9537 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
9538 with the same statement, make sure to update the new pointed-to one.
9539 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
9540 call statements, do not mark symbols for renaming.
9541 (mark_operand_necessary): Dump something.
9542 (ref_may_be_aliased): New function.
9543 (mark_aliased_reaching_defs_necessary_1): New helper function.
9544 (mark_aliased_reaching_defs_necessary): Likewise.
9545 (mark_all_reaching_defs_necessary_1): Likewise.
9546 (mark_all_reaching_defs_necessary): Likewise.
9547 (propagate_necessity): Do not process virtual PHIs. For
9548 non-aliased loads mark all reaching definitions as necessary.
9549 For aliased loads and stores mark the immediate dominating
9550 aliased clobbers as necessary.
9551 (visited): New global static.
9552 (perform_tree_ssa_dce): Free visited bitmap after propagating
9553 necessity.
9554 (remove_dead_phis): Perform simple dead virtual PHI removal.
9555 (remove_dead_stmt): Properly unlink virtual operands when
9556 removing stores.
9557 (eliminate_unnecessary_stmts): Schedule PHI removal after
9558 stmt removal.
9559 * tree-ssa-ter.c (is_replaceable_p): Adjust.
9560 (process_replaceable): Likewise.
9561 (find_replaceable_in_bb): Likewise.
9562 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
9563 based on the single gimple vop.
9564 (verify_flow_insensitive_alias_info): Remove.
9565 (verify_flow_sensitive_alias_info): Likewise.
9566 (verify_call_clobbering): Likewise.
9567 (verify_memory_partitions): Likewise.
9568 (verify_alias_info): Likewise.
9569 (verify_ssa): Adjust..
9570 (execute_update_addresses_taken): Export. Update SSA
9571 manually. Optimize only when optimizing. Use a local bitmap.
9572 (pass_update_address_taken): Remove TODO_update_ssa, add
9573 TODO_dump_func.
9574 (pass_update_address_taken): Just use TODO_update_address_taken.
9575 (init_tree_ssa): Do not initialize addressable_vars.
9576 (verify_ssa): Verify new VUSE / VDEF properties.
9577 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
9578 Do not call verify_alias_info.
9579 (delete_tree_ssa): Clear the VUSE, VDEF operands.
9580 Do not free the loaded and stored syms bitmaps. Reset the escaped
9581 and callused solutions. Do not free addressable_vars.
9582 Remove memory-tag related code.
9583 (warn_uninitialized_var): Aliases are always available.
9584 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
9585 * lambda-code.c (can_put_in_inner_loop): Adjust.
9586 (can_put_after_inner_loop): Likewise.
9587 (perfect_nestify): Likewise.
9588 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
9589 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
9590 (vectorizable_conversion): Do not mark symbols for renaming.
9591 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
9592 (expand_call_inline): Unlink the calls virtual operands before
9593 replacing it.
9594 (tree_function_versioning): Do not call update_ssa if we are not
9595 updating clones. Simplify.
9596 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
9597 (propagate_with_phi): Likewise..
9598 * tree-outof-ssa.c (create_temp): Remove memory tag and call
9599 clobber code. Assert we are not aliased or global.
9600 * tree-flow.h: Include tree-ssa-alias.h
9601 (enum escape_type): Remove.
9602 (struct mem_sym_stats_d): Likewise.
9603 (struct mem_ref_stats_d): Likewise.
9604 (struct gimple_df): Add vop member. Remove global_var,
9605 call_clobbered_vars, call_used_vars, addressable_vars,
9606 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
9607 escaped and callused members.
9608 (struct ptr_info_def): Remove all members, add points-to solution
9609 member pt.
9610 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
9611 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
9612 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
9613 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
9614 (tree-ssa-alias.o): Likewise.
9615 (toplev.o): Add tree-ssa-alias.h
9616 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
9617 * gimple.c (gimple_set_bb): Fix off-by-one error.
9618 (is_gimple_reg): Do not handle memory tags.
9619 (gimple_copy): Also copy virtual operands.
9620 Delay updating the statement. Do not reset loaded and stored syms.
9621 (gimple_set_stored_syms): Remove.
9622 (gimple_set_loaded_syms): Likewise.
9623 (gimple_call_copy_skip_args): Copy the virtual operands
9624 and mark the new statement modified.
9625 * tree-ssa-structalias.c (may_alias_p): Remove.
9626 (set_uids_in_ptset): Take the alias set to prune with as
9627 parameter. Fold in the alias test of may_alias_p.
9628 (compute_points_to_sets): Compute whether a ptr is dereferenced
9629 in a local sbitmap.
9630 (process_constraint): Deal with &ANYTHING on the lhs, reject all
9631 other ADDRESSOF constraints on the lhs.
9632 (get_constraint_for_component_ref): Assert that we don't get
9633 ADDRESSOF constraints from the base of the reference.
9634 Properly generate UNKNOWN_OFFSET for DEREF if needed.
9635 (struct variable_info): Remove collapsed_to member.
9636 (get_varinfo_fc): Remove.
9637 (new_var_info): Do not set collapsed_to.
9638 (dump_constraint): Do not follow cycles.
9639 (dump_constraint_graph): Likewise.
9640 (build_pred_graph): Likewise.
9641 (build_succ_graph): Likewise.
9642 (rewrite_constraints): Likewise.
9643 (do_simple_structure_copy): Remove.
9644 (do_rhs_deref_structure_copy): Remove.
9645 (do_lhs_deref_structure_copy): Remove.
9646 (collapse_rest_of_var): Remove.
9647 (do_structure_copy): Re-implement.
9648 (pta_stats): New global variable.
9649 (dump_pta_stats): New function.
9650 (struct constraint_expr): Make offset signed.
9651 (UNKNOWN_OFFSET): Define special value.
9652 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
9653 (solution_set_expand): New helper function split out from ...
9654 (do_sd_constraint): ... here.
9655 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
9656 (do_ds_constraint): Likewise.
9657 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
9658 and CALLUSED = *CALLUSED.
9659 (set_union_with_increment): Make inc argument signed.
9660 (type_safe): Remove.
9661 (get_constraint_for_ptr_offset): Handle unknown and negative
9662 constant offsets.
9663 (first_vi_for_offset): Handle offsets before start. Bail
9664 out early for offsets beyond the variable extent.
9665 (first_or_preceding_vi_for_offset): New function.
9666 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
9667 Together with ESCAPED = *ESCAPED this properly computes reachability.
9668 (find_what_var_points_to): New function.
9669 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
9670 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
9671 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
9672 pt_solutions_intersect): New functions.
9673 (compute_call_used_vars): Remove.
9674 (compute_may_aliases): New main entry into PTA computation.
9675 * gimple.h (gimple_p): New typedef.
9676 (struct gimple_statement_base): Remove references_memory_p.
9677 (struct gimple_statement_with_memory_ops_base): Remove
9678 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
9679 members.
9680 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
9681 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
9682 gimple_set_references_memory): Remove.
9683 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
9684 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
9685 New functions.
9686 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
9687 (verify_expr): Allow RESULT_DECL.
9688 (gimple_duplicate_bb): Do not copy virtual operands.
9689 (gimple_duplicate_sese_region): Adjust.
9690 (gimple_duplicate_sese_tail): Likewise.
9691 (mark_virtual_ops_in_region): Remove.
9692 (move_sese_region_to_fn): Do not call it.
9693 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
9694 and pass_simple_dse.
9695 (execute_function_todo): Handle TODO_update_address_taken,
9696 call execute_update_addresses_taken for TODO_rebuild_alias.
9697 (execute_todo): Adjust.
9698 (execute_one_pass): Init dump files early.
9699 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
9700 call-clobbered.
9701 (create_general_new_stmt): Clear vops.
9702 * tree-ssa-reassoc.c (get_rank): Adjust.
9703 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
9704 symbols for renaming.
9705 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
9706 (PARAM_AVG_ALIASED_VOPS): Likewise.
9707 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
9708 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 9709 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
9710 (operand_build_cmp, copy_virtual_operands,
9711 create_ssa_artificial_load_stmt, add_to_addressable_set,
9712 gimple_add_to_addresses_taken): Remove public functions.
9713 (unlink_stmt_vdef): New function.
9714
457d1d00
AM
97152009-04-03 Alan Modra <amodra@bigpond.net.au>
9716
9717 * config.gcc (powerpc-*-linux*): Merge variants.
9718
e19da24c 97192009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 9720 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
9721
9722 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
9723 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
9724 cop0_sp_offset.
9725 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
9726 keep_interrupts_masked_p, use_debug_exception_return_p.
9727 (mips_attribute_table): Add interrupt, use_shadow_register_set,
9728 keep_interrupts_masked, use_debug_exception_return.
9729 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
9730 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
9731 New functions.
9732 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
9733 (mips_print_operand): Process COP0 registers to print $0 .. $31
9734 correctly for GAS to process.
9735 (mips_interrupt_extra_call_saved_reg_p): New function.
9736 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
9737 extra registers.
9738 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9739 (mips_compute_frame_info): Add supports for interrupt context that
9740 includes doubleword accumulators and COP0 registers.
9741 (mips_for_each_saved_acc): New function.
9742 (mips_for_each_saved_gpr_and_fpr): Change the function name from
9743 mips_for_each_saved_reg.
9744 (mips_save_reg): Save accumulators.
9745 (mips_kernel_reg_p): A new for_each_rtx callback.
9746 (mips_expand_prologue): Support interrupt handlers.
9747 (mips_restore_reg): Restore accumulators.
9748 (mips_expand_epilogue): Support interrupt handlers.
9749 (mips_can_use_return_insn): Return false for interrupt handlers.
9750 (mips_epilogue_uses): New function.
9751 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
9752 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
9753 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
9754 cop0_move): New instructions.
9755 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
9756 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
9757 defines.
9758 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
9759 New defines.
9760 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
9761 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
9762 interrupt handlers, we use K0 as the temporary register.
9763 (EPILOGUE_USES): Change to a function call.
9764 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
9765 handlers, we use K0 as the temporary register.
2ba9daa7 9766
e19da24c
CF
9767 * doc/extend.texi (Function Attributes): Document interrupt,
9768 use_shadow_register_set, keep_interrupts_masked,
9769 use_debug_exception_return for MIPS attributes.
9770
aa1ca044
AM
97712009-04-03 Alan Modra <amodra@bigpond.net.au>
9772
9773 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
9774 Remove a number of t-files from tmake_file.
9775 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
9776 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
9777 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9778 target_prototype, not TARGET_PROTOTYPE.
9779 (LINK_OS_GNU_SPEC): Define.
9780 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
9781 and darwin-ldoubdle.c.
9782
14fdc613
MM
97832009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9784
9785 PR driver/39293
9786 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
9787 (cpp_options): Ditto.
9788 (default_compilers): Ditto.
9789 (display_help): Ditto.
9790 (process_command): Ditto.
9791 (do_spec_1): Ditto.
9792 (set_input): Use lbasename instead of duplicate code.
9793 (save_temps_prefix): New static for -save-temps=obj.
9794 (save_temps_length): Ditto.
2ba9daa7 9795
14fdc613
MM
9796 * doc/invoke.texi (-save-temps=obj): Document new variant to
9797 -save-temps switch.
9798
d3aa398e
JL
97992009-04-02 Jeff Law <law@redhat.com>
9800
9801 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
9802 variable.
9803
83f0ccb8
L
98042009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9805
9806 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
9807 * configure: Regenerated.
9808
dcb6e951
RAE
98092009-04-02 Rafael Avila de Espindola <espindola@google.com>
9810
9811 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9812 share the argument list.
9813
d85478c2
RAE
98142009-04-02 Rafael Avila de Espindola <espindola@google.com>
9815
9816 Merge
9817
9818 2009-02-12 Diego Novillo <dnovillo@google.com>
9819
83f0ccb8
L
9820 * varpool.c (debug_varpool): New.
9821 * cgraph.h (debug_varpool): Declare.
d85478c2 9822
34f42a49
JH
98232009-04-02 Jan Hubicka <jh@suse.cz>
9824
9825 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9826 pass.
9827
a4747b4a
L
98282009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9829
9830 * config/i386/i386.c (ix86_abi): Move initialization to ...
9831 (override_options): Here.
9832
63a9de54
CB
98332009-04-02 Christian Bruel <christian.bruel@st.com>
9834
9835 * config/sh/sh.c (sh_dwarf_register_span): New function.
9836 (TARGET_DWARF_REGISTER_SPAN): Define.
9837 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 9838
2f0fa28e
IR
98392009-04-02 Ira Rosen <irar@il.ibm.com>
9840
9841 PR tree-optimization/39595
2ba9daa7 9842 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
9843 interleaved loads group is not greater than the SLP group size.
9844
bbf7ce11
RAE
98452009-04-02 Rafael Avila de Espindola <espindola@google.com>
9846
9847 * builtins.c (is_builtin_name): New.
9848 (called_as_built_in): Use is_builtin_name.
9849 * tree.h (is_builtin_name): New.
9850 * varasm.c (incorporeal_function_p): Use is_builtin_name
9851
47e4dfcf
AS
98522009-04-02 Andrew Stubbs <ams@codesourcery.com>
9853
9854 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9855
d0940d56
DS
98562009-04-02 Dodji Seketeli <dodji@redhat.com>
9857
9858 PR c++/26693
532bfb0a 9859 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
9860 * c-common.c (set_underlying_type): ... here.
9861 Also, make sure the function properly sets TYPE_STUB_DECL() on
9862 the newly created typedef variant type.
9863 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
9864 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9865 points.
d0940d56 9866
bf1cbdc6
RG
98672009-04-02 Richard Guenther <rguenther@suse.de>
9868
9869 PR tree-optimization/37221
9870 * tree-flow.h (degenerate_phi_result): Declare.
9871 * tree-ssa-dom.c (degenerate_phi_result): Export.
9872 * tree-scalar-evolution.c (analyze_initial_condition): If
9873 the initial condition is defined by a degenerate PHI node
9874 use the degenerate value.
9875
87cfb32c
EB
98762009-04-01 Eric Botcazou <ebotcazou@adacore.com>
9877
9878 PR rtl-optimization/39588
9879 * combine.c (merge_outer_ops): Do not set the constant when this
9880 is not necessary.
9881 (simplify_shift_const_1): Do not modify it either in this case.
9882
bbb6eae8
SB
98832009-04-01 Steven Bosscher <steven@gcc.gnu.org>
9884
9885 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9886 tuning is deprecated if -mtune value is set to an Itanium1 variant.
9887
839a3b8a
JJ
98882009-04-01 Janis Johnson <janis187@us.ibm.com>
9889
9890 PR c/29027
9891 * c-lex.c (interpret_float): Default (no suffix) is double.
9892
667e8acb
XDL
98932009-04-1 Xinliang David Li <davidxl@google.com>
9894
9895 * config/i386/i386.c (legitimate_constant_p): Recognize
9896 all one vector constant.
9897
60839f5d 98982009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9899
60839f5d 9900 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
9901 Change #include order to silence two warnings.
9902
60839f5d 99032009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9904
60839f5d 9905 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
9906 (ASM_SPEC): Pass -k to the assembler for PIC code.
9907
60839f5d 99082009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9909
60839f5d
EB
9910 * config.gcc: Add vax-*-linux* to the switch.
9911 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
9912 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9913
60839f5d 99142009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9915
60839f5d 9916 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 9917 Use predicate macros instead of GET_CODE() == foo.
60839f5d 9918 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
9919 ashlsi3, rotrsi3, <unnamed>): Likewise.
9920
60839f5d 99212009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9922
60839f5d 9923 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 9924 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
9925 * config/vax/constraints.md: Likewise.
9926 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9927 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9928 * config/vax/predicates.md: Likewise.
9929 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 9930 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
9931 * config/vax/vax.h: Likewise.
9932 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 9933
60839f5d 99342009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9935
60839f5d 9936 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
9937 (indirectable_address_p, adjacent_operands_p): Add spaces around
9938 braces.
60839f5d 9939 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 9940
60839f5d 99412009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9942
60839f5d 9943 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
9944 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9945 index_term_p, reg_plus_index_p, legitimate_address_p,
9946 vax_mode_dependent_address_p): Update comments to match functions
9947 modified by the recent int->bool conversion.
9948
60839f5d 99492009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9950
60839f5d
EB
9951 * config/vax/builtins.md: Update copyright message.
9952 * config/vax/constraints.md: Likewise.
9953 * config/vax/netbsd-elf.h: Likewise.
9954 * config/vax/predicates.md: Likewise.
9955 * config/vax/vax-protos.h: Likewise.
9956 * config/vax/vax.c: Likewise.
9957 * config/vax/vax.h: Likewise.
9958 * config/vax/vax.md: Likewise.
9959 * config/vax/vax.opt: Likewise.
c4e75102 9960
60839f5d 99612009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9962
60839f5d 9963 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 9964 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
9965 * config/vax/constraints.md (B, R): Likewise.
9966 * config/vax/predicates.md (external_memory_operand,
c4e75102 9967 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
9968 * config/vax/vax.c (vax_output_int_add): Likewise.
9969 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
9970 untyped_call): Likewise.
9971
60839f5d 99722009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 9973
7a715bba
UB
9974 * config/vax/predicates.md: New file.
9975 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
9976 external_const_operand, nonsymbolic_operand, external_memory_operand,
9977 indirect_memory_operand, indexed_memory_operand,
9978 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9979 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9980 predicate.
7a715bba
UB
9981 * config/vax/constraints.md: New file.
9982 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9983 New constraint.
9984 * config/vax/builtins.md: New file.
9985 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9986 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9987 jbbccisi): Define.
c4e75102
MT
9988 * config/vax/vax.opt (mqmath): Add option.
9989 * config/vax/vax.md (isfx): Extend with DI.
9990 (VAXintQH, VAXintQHSD): Define.
9991 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9992 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9993 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9994 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9995 (movdi): Update constraints and use vax_output_int_move().
9996 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9997 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9998 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9999 nonlocal_goto): New.
10000 (mov<mode>): Extend accepted operand types.
10001 (subdi3_old): Rename from subdi3, change update constraints and use
10002 a new implementation.
60839f5d 10003 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
10004 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
10005 MOVE_RATIO, CLEAR_RATIO): Define.
10006 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
10007 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10008 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 10009 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
10010 (split_quadword_operands): Make static and really allow variable
10011 splitting.
10012 (print_operand_address): Update for PIC generation.
10013 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
10014 indexable_address_p, fixup_mathdi_operand,
10015 vax_expand_addsub_di_operands, adjacent_operands_p): New.
10016 (vax_float_literal, legitimate_constant_p,
10017 indirectable_constant_address_p, index_term_p,
10018 reg_plus_index_p): Return bool instead of int.
10019 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
10020 where needed.
10021 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
10022 generation.
10023 (vax_output_conditional_branch): Indent.
10024 (legitimate_constant_address_p, indirectable_constant_address_p,
10025 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
10026 vax_mode_dependent_address_p): Return bool instead of int, update for
10027 PIC generation.
10028 * config/vax/vax-protos.h (legitimate_constant_address_p,
10029 legitimate_constant_p, legitimate_address_p,
10030 vax_mode_dependent_address_p): Change declaration to bool.
10031 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
10032 vax_expand_addsub_di_operands, vax_output_int_subtract,
10033 vax_output_movmemsi): Declare.
10034 (split_quadword_operands, vax_float_literal): Delete declaration.
10035 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
10036 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
10037 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
10038 ASM_OUTPUT_DWARF_PCREL): Define.
10039 (ASM_SPEC): Change definition to allow PIC generation.
10040
9332c6eb
L
100412009-04-01 Steve Ellcey <sje@cup.hp.com>
10042
10043 * doc/sourcebuild.texi: Update front-end requirements.
10044
d93e052c
JJ
100452009-04-01 Jakub Jelinek <jakub@redhat.com>
10046
10047 PR target/39226
10048 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
10049 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
10050 (booldi3_internal3): Use boolean_or_operator instead of
10051 boolean_operator.
10052
6ccb2a4a
JM
100532009-04-01 Joseph Myers <joseph@codesourcery.com>
10054
10055 PR c/39605
10056 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
10057 declarator whose size is not an integer constant expression but
10058 folds to an integer constant, then treat it as a constant
10059 subsequently.
10060
299b87f8
RG
100612009-04-01 Richard Guenther <rguenther@suse.de>
10062
10063 * fold-const.c (fold_plusminus_mult_expr): Do not fold
10064 i * 4 + 2 to (i * 2 + 1) * 2.
10065
b85eb797
JJ
100662009-04-01 Jakub Jelinek <jakub@redhat.com>
10067
10068 PR c/37772
10069 * c-parser.c (c_parser_asm_statement): Skip until close paren and
10070 return if c_parser_asm_string_literal returned NULL.
10071
235e1fe8
NC
100722009-04-01 Nick Clifton <nickc@redhat.com>
10073
10074 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
10075 already defined.
10076 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
10077 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
10078 other typedefs to avoid conflicts with libgcc2.c. Define labels
10079 to gain 16-bit bit-manipulation functions from libgcc2.c and then
10080 include it.
10081 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
10082 to gain 16-bit trapping arithmetic functions from libgcc2.c and
10083 then include it.
10084
d6868399
RAE
100852009-04-01 Rafael Avila de Espindola <espindola@google.com>
10086
7a715bba
UB
10087 * varasm.c (default_function_rodata_section): Declare DOT as
10088 const char*.
d6868399 10089
73d21f56 100902009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 10091 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
10092
10093 PR/39492
10094 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10095 Make object_name unique for each process.
10096
03742a9b
JJ
100972009-04-01 Jakub Jelinek <jakub@redhat.com>
10098
10099 PR other/39591
10100 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
10101 addressable variables in the parallel that could go out of scope while
10102 running queued tasks.
10103
4223ff5f
AS
101042009-04-01 Anatoly Sokolov <aesok@post.ru>
10105
10106 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
10107 (CASE_VALUES_THRESHOLD): Redefine.
10108 * config/avr/avr.c (avr_override_options): Remove initialization of
10109 avr_case_values_threshold variable.
10110 (avr_case_values_threshold): Remove variable. Add new function.
10111 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
10112 * config/avr/avr.opt (mno-tablejump): Remove option.
10113 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
10114
e893f6f3
DD
101152009-04-01 DJ Delorie <dj@redhat.com>
10116
10117 * varasm.c (default_function_rodata_section): Don't assume
10118 anything about where the first '.' in the section name is.
10119
b246d100
AM
101202009-04-01 Alan Modra <amodra@bigpond.net.au>
10121
10122 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
10123 rs6000_emit_stack_tie.
10124
d3e37a9e
ILT
101252009-03-31 Ian Lance Taylor <iant@google.com>
10126
10127 * tree-eh.c (tree_remove_unreachable_handlers): Compare
10128 gimple_code with GIMPLE_RESX, not RESX.
10129
c1b61fca
JM
101302009-03-31 Joseph Myers <joseph@codesourcery.com>
10131
10132 * c-common.c (c_get_ident): New.
7a715bba 10133 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 10134
c2d2ad48
BE
101352009-04-01 Ben Elliston <bje@au.ibm.com>
10136
10137 * config/rs6000/sysv4.opt (msdata): Improve option description.
10138
13d1a6e7
SE
101392009-03-31 Steve Ellcey <sje@cup.hp.com>
10140
10141 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
10142 (divdf3_internal_lat): Remove.
10143 (divxf3_internal_lat): Remove.
10144 (divxf3_internal_thr): Remove.
10145 (divxf): Use divxf3_internal.
10146 * config/ia64/div.md (divsf3_internal_lat): New.
10147 (divdf3_internal_lat): New.
10148 (divxf3_internal): New.
10149
207bf79d
JM
101502009-03-31 Joseph Myers <joseph@codesourcery.com>
10151
10152 PR c/448
10153 * Makefile.in (USE_GCC_STDINT): Define.
10154 (stmp-int-hdrs): Install stdint.h if applicable.
10155 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
10156 if known.
10157 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
10158 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
10159 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10160 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10161 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10162 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10163 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10164 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10165 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10166 (c_common_nodes_and_builtins): Initialize
10167 underlying_wchar_type_node. Do not initialize
10168 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
10169 nodes for new types.
10170 (c_stddef_cpp_builtins): Define macros for new types.
10171 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
10172 Remove.
10173 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
10174 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
10175 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
10176 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
10177 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
10178 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
10179 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
10180 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
10181 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
10182 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
10183 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
10184 int16_type_node, int32_type_node, int64_type_node,
10185 uint8_type_node, uint16_type_node, c_uint32_type_node,
10186 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
10187 int_least32_type_node, int_least64_type_node,
10188 uint_least8_type_node, uint_least16_type_node,
10189 uint_least32_type_node, uint_least64_type_node,
10190 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
10191 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
10192 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
10193 uintptr_type_node): Define.
10194 * c-cppbuiltin.c (builtin_define_constants,
10195 builtin_define_type_minmax): New.
10196 (builtin_define_stdint_macros): Define more macros.
10197 (c_cpp_builtins): Define more limit macros.
10198 (type_suffix): New.
10199 (builtin_define_type_max): Define in terms of
10200 builtin_define_type_minmax. Remove is_long parameter. All
10201 callers changed.
10202 * config.gcc (use_gcc_stdint): Define.
10203 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
10204 Add newlib-stdint.h for generic targets.
10205 * config/glibc-stdint.h, config/newlib-stdint.h,
10206 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
10207 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
10208 * config/score/score.h (UINTPTR_TYPE): Define.
10209 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
10210 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
10211 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10212 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10213 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10214 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10215 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10216 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10217 * config/spu/spu.h (STDINT_LONG32): Define.
10218 * configure.ac (use_gcc_stdint): Substitute.
10219 * configure: Regenerate.
10220 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
10221 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
10222 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
10223 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
10224 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
10225 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
10226 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
10227 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
10228 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
10229 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
10230 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
10231 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
10232 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
10233 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
10234 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
10235 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
10236 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
10237 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
10238 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
10239 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
10240 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
10241 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
10242 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10243 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10244 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10245 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10246 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10247 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10248 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
10249
ed853664
BS
102502009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
10251
10252 * loop-iv.c (suitable_set_for_replacement): Renamed from
10253 simplify_using_assignment; changed to return bool and to accept new
10254 args DEST and SRC. Return true iff we find a source/destination pair
10255 that can be used to make a replacement, and fill SRC and DEST if so.
10256 Remove arg ALTERED. Don't deal with altered regs here. All callers
10257 changed.
10258 (simplify_using_initial_values): Deal with altered regs here and track
10259 more precisely the effect they have on the validity of our expression.
10260
1569e190
BS
10261 * loop-iv.c (simplify_using_condition): A condition of the form
10262 (EQ REG CONST) can be used to simply make a substitution.
10263 (simplify_using_initial_values): Keep track of conditions we have seen
10264 and keep using them to simplify new expressions, while applying the
10265 same substitutions to them as to the expression.
10266
1d1eb80c
BS
10267 * simplify-rtx.c (simplify_relational_operation_1): Simplify
10268 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
10269 GEU/LTU reversed.
10270
28af33b0
BS
10271 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
10272 changed. Use this when trying to improve the upper bound.
10273 Generate the comparison by using simplify_gen_relational.
10274
b30321cd
BS
10275 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
10276
60081874
BS
10277 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
10278 functions.
2ba9daa7 10279 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
10280 replace_in_expr to make replacements. Call replace_single_def_regs
10281 once on the initial version of the expression.
10282
bebc6e07
RR
102832009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10284
fcb82ab0 10285 PR target/27237
bebc6e07 10286 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 10287
6b12efe9
RG
102882009-03-31 Richard Guenther <rguenther@suse.de>
10289
10290 PR middle-end/31029
10291 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
10292 equality comparisons. Fold C - X CMP X if C % 2 == 1.
10293
108f6c2f
RG
102942009-03-31 Richard Guenther <rguenther@suse.de>
10295
10296 * tree.h (div_if_zero_remainder): Declare.
10297 * fold-const.c (div_if_zero_remainder): Export.
10298 * tree-ssa-forwprop.c
10299 (forward_propagate_addr_into_variable_array_index): Handle
10300 constant array index addition outside of the variable index.
10301
8f612190
JM
103022009-03-31 Joseph Myers <joseph@codesourcery.com>
10303
10304 PR target/39592
10305 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
10306 define_splits, floatunssi<mode>2): Require x87 conversions from
10307 DImode to be permitted.
10308
47580d22
JM
103092009-03-31 Joseph Myers <joseph@codesourcery.com>
10310
10311 PR preprocessor/15638
10312 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
10313
ba4d8f9d
RG
103142009-03-31 Richard Guenther <rguenther@suse.de>
10315
10316 PR middle-end/23401
10317 PR middle-end/27810
10318 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
10319 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
10320 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
10321 a separate statement.
10322 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
10323 (lookup_tmp_var): Likewise.
10324 (is_gimple_formal_tmp_or_call_rhs): Remove.
10325 (is_gimple_reg_or_call_rhs): Rename to ...
10326 (is_gimple_reg_rhs_or_call): ... this.
10327 (is_gimple_mem_or_call_rhs): Rename to ...
10328 (is_gimple_mem_rhs_or_call): ... this.
10329 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
10330 DECL_GIMPLE_REG_P only if is_formal is true.
10331 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
10332 for non-proper post-modify expression gimplification.
10333 (gimplify_self_mod_expr): For post-modify expressions gimplify
10334 the lvalue to a minimal lvalue.
10335 (rhs_predicate_for): Remove formal temp case.
10336 (gimplify_modify_expr_rhs): Likewise.
10337 (gimplify_addr_expr): Use is_gimple_reg.
10338 (gimplify_expr): Remove formal temp cases.
10339 (gimple_regimplify_operands): Likewise.
10340 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
10341 and FILTER_EXPR like constants.
10342 * gimple.c (walk_gimple_op): Fix val_only initialization, use
10343 is_gimple_reg.
10344 (is_gimple_formal_tmp_rhs): Remove.
10345 (is_gimple_reg_rhs): Remove special casing.
10346 (is_gimple_mem_rhs): Fix.
10347 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
10348 (is_gimple_formal_tmp_var): Remove.
10349 (is_gimple_formal_tmp_reg): Likewise.
10350 (is_gimple_min_lval): Allow invariant component ref parts.
10351 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
10352 is_gimple_formal_tmp_reg): Remove declarations.
10353 * tree-cfg.c (verify_expr): Verify that variables with address
10354 taken do not have DECL_GIMPLE_REG_P set.
10355 * tree-mudflap.c (mf_build_check_statement_for): Use
10356 force_gimple_operand instead of gimplify_expr.
10357
8de9b877
AZ
103582009-03-31 Ayal Zaks <zaks@il.ibm.com>
10359
10360 * modulo-sched.c (sms_schedule_by_order): Pass the actual
10361 schedulable rows to compute_split_row.
10362
b5e3caf2
BE
103632009-03-31 Ben Elliston <bje@au.ibm.com>
10364
10365 PR target/31635
10366 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
10367 OPT_mvrsave.
10368
9752c4ad
AM
103692009-03-31 Alan Modra <amodra@bigpond.net.au>
10370
10371 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
10372 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
10373 * configure: Regenerate.
10374 * config.in: Regenerate.
10375 * config/rs6000/rs6000.opt (mtls-markers): Add.
10376 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
10377 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
10378 (tls_ld_aix, tls_ld_sysv): Likewise.
10379 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
10380 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
10381
b597d1b6
AM
103822009-03-31 Alan Modra <amodra@bigpond.net.au>
10383
10384 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
10385
a203a221
JH
103862009-03-30 Jan Hubicka <jh@suse.cz>
10387
b597d1b6
AM
10388 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
10389 out of RESX.
10390 (tree_remove_unreachable_handlers): Cleanup EH predecestor
10391 detection and label handling.
a203a221 10392
5b0c0b2c
VM
103932009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10394
10395 * ira-int.h (ira_allocno): Rename left_conflicts_num to
10396 left_conflicts_size.
10397 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
10398 ALLOCNO_LEFT_CONFLICTS_SIZE.
10399
10400 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
10401 remove_allocno_from_bucket_and_push,
10402 allocno_spill_priority_compare, push_allocnos_to_stack,
10403 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10404 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
10405 (setup_allocno_left_conflicts_num): Ditto. Rename to
10406 setup_allocno_left_conflicts_size.
10407 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10408 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
10409 setup_allocno_left_conflicts_size instead of
10410 setup_allocno_left_conflicts_num.
10411
10412 * ira-build.c (ira_create_allocno): Use
10413 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
10414 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 10415
9a48a93f
VM
104162009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10417
10418 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10419 instead of DF_LR_OUT.
10420
10421 * ira-lives.c (process_bb_node_lives): Ditto.
10422
10423 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10424 instead of DF_LR_{OUT,IN}.
10425
10426 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10427
10428 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10429
4c936d4f
JH
104302009-03-30 Jan Hubicka <jh@suse.cz>
10431
10432 * except.c (label_to_region_map): Fix thinko.
10433
f4d9f129
SE
104342009-03-30 Steve Ellcey <sje@cup.hp.com>
10435
10436 PR middle-end/38237
10437 * tree.h (tree_find_value): New declaration.
10438 * tree.c (tree_find_value): New function.
10439 * varasm.c (assemble_external): Avoid duplicate entries on lists.
10440
b3f27c15
JJ
104412009-03-30 Jakub Jelinek <jakub@redhat.com>
10442
10443 PR debug/39563
10444 * c-decl.c (struct c_binding): Add locus field.
10445 (bind): Add locus argument, set locus field from it.
10446 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
10447 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
10448 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
10449 implicitly_declare, undeclared_variable, lookup_label,
10450 declare_label, c_make_fname_decl, c_builtin_function,
10451 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
10452 bind callers.
10453
ad41bd84 104542009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
10455
10456 PR target/38781
10457 * config/i386/i386.c (classify_argument): Check total size of
10458 structure.
10459
133f9369
MJ
104602009-03-30 Martin Jambor <mjambor@suse.cz>
10461
10462 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
10463 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
10464 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
10465 respectively.
10466
10467 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
10468 seen_variable_array_ref while also traversing a union.
10469
10470 * tree-inline.c (optimize_inline_calls): Do not call
10471 cgraph_node_remove_callees.
10472 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
10473 (pass_remove_cgraph_callee_edges): New variable.
10474 * passes.c (init_optimization_passes): Add
10475 pass_remove_cgraph_callee_edges after early inlining and before all
10476 late intraprocedural passes.
10477
10478 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
10479
1190f2eb
PB
104802009-03-30 Paolo Bonzini <bonzini@gnu.org>
10481
10482 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
10483 Fix typos in names.
10484
fedc1775
PB
104852009-03-30 Paolo Bonzini <bonzini@gnu.org>
10486
fcb82ab0
UB
10487 * combine.c (simplify_comparison): Use have_insn_for.
10488 * dojump.c (do_jump): Likewise.
fedc1775 10489
65c5ae8b
PB
104902009-03-30 Paolo Bonzini <bonzini@gnu.org>
10491
10492 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
10493 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
10494 sparc_compare_op0 like sparc_compare_emitted used to be handled.
10495 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
10496 instead of sparc_compare_emitted.
10497 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
10498 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
10499 instead of sparc_compare_emitted.
10500
d25aa7ab
PB
105012009-03-30 Paolo Bonzini <bonzini@gnu.org>
10502
10503 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
10504 enter/exit cfglayout mode.
10505 (pass_partition_block): Require it.
10506 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
10507 (combine_instructions): Track basic blocks instead of labels.
10508 (update_cfg_for_uncondjump): New.
10509 (try_combine): Use it. Update jumps after rescanning.
10510 (pass_combine): Require PROP_cfglayout.
10511 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
10512
9c9e26f5
PB
105132009-03-30 Paolo Bonzini <bonzini@gnu.org>
10514
fcb82ab0
UB
10515 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
10516 Provide/destroy PROP_cfglayout respectively.
10517 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
10518 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 10519
28ddeea1
PB
105202009-03-30 Paolo Bonzini <bonzini@gnu.org>
10521
10522 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
10523 fold_convert_const_fixed_from_fixed,
10524 fold_convert_const_fixed_from_int,
10525 fold_convert_const_fixed_from_real, fold_negate_const): Do not
10526 set TREE_CONSTANT_OVERFLOW.
10527 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
10528 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
10529
ebfd146a
IR
105302009-03-30 Ira Rosen <irar@il.ibm.com>
10531
10532 * tree-vect-loop-manip.c: New file.
10533 * tree-vectorizer.c: Update documentation and included files.
10534 (vect_loop_location): Make extern.
10535 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
10536 (rename_variables_in_bb, rename_variables_in_loop,
10537 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
10538 slpeel_update_phi_nodes_for_guard1,
10539 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
10540 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
10541 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 10542 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
10543 find_loop_location): Likewise.
10544 (new_stmt_vec_info): Move to tree-vect-stmts.c.
10545 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
10546 get_vectype_for_scalar_type, vect_is_simple_use,
10547 supportable_widening_operation, supportable_narrowing_operation):
10548 Likewise.
10549 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
10550 (new_loop_vec_info, destroy_loop_vec_info,
10551 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
10552 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
10553 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
10554 (vect_supportable_dr_alignment): Likewise.
10555 * tree-vectorizer.h (tree-data-ref.h): Include.
10556 (vect_loop_location): Declare.
10557 Reorganize function declarations according to the new file structure.
10558 * tree-vect-loop.c: New file.
2ba9daa7 10559 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
10560 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
10561 * tree-vect-data-refs.c: New file.
10562 * tree-vect-patterns.c (timevar.h): Don't include.
10563 * tree-vect-stmts.c: New file.
2ba9daa7 10564 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 10565 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
10566 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
10567 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
10568 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
10569 (tree-vect-analyze.o): Remove.
10570 (tree-vect-transform.o): Likewise.
10571 (tree-vect-data-refs.o): Add rule.
2ba9daa7 10572 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
10573 tree-vect-slp.o): Likewise.
10574 (tree-vect-patterns.o): Remove redundant dependencies.
10575 (tree-vectorizer.o): Likewise.
10576 * tree-vect-slp.c: New file.
10577
40a1cfba
RW
105782009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10579
10580 * optc-gen.awk: Warn if an option flag has multiple different
10581 help strings.
10582
a9a7a9a2
SP
105832009-03-30 Sebastian Pop <sebastian.pop@amd.com>
10584
10585 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
10586 -floop-block): Document dependences on PPL, CLooG and Graphite.
10587
8ce94e44
JM
105882009-03-30 Joseph Myers <joseph@codesourcery.com>
10589
10590 PR rtl-optimization/323
10591 * c-common.c (c_fully_fold, convert_and_check,
10592 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
10593 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
10594 * c-common.def (EXCESS_PRECISION_EXPR): New.
10595 * c-cppbuiltin.c (builtin_define_float_constants): Define
10596 constants with enough digits for long double.
10597 * c-lex.c (interpret_float): Interpret constant with excess
10598 precision where appropriate.
10599 * c-opts.c (c_common_post_options): Set
10600 flag_excess_precision_cmdline. Give an error for
10601 -fexcess-precision=standard for C++ for processors where the
10602 option is significant.
10603 * c-parser.c (c_parser_conditional_expression): Handle excess
10604 precision in condition.
10605 * c-typeck.c (convert_arguments): Handle arguments with excess
10606 precision.
10607 (build_unary_op): Move excess precision outside operation.
10608 (build_conditional_expr): Likewise.
10609 (build_compound_expr): Likewise.
10610 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
10611 (build_modify_expr): Handle excess precision in RHS.
10612 (convert_for_assignment): Handle excess precision in converted
10613 value.
10614 (digest_init, output_init_element, process_init_element): Handle
10615 excess precision in initializer.
10616 (c_finish_return): Handle excess precision in return value.
10617 (build_binary_op): Handle excess precision in operands and add
10618 excess precision as needed for operation.
10619 * common.opt (-fexcess-precision=): New option.
10620 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
10621 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10622 For standard excess precision, output explicit conversion to and
10623 truncation from XFmode.
10624 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
10625 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
10626 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
10627 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
10628 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
10629 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
10630 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
10631 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
10632 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
10633 define_splits, sqrt<mode>2): Disable where appropriate for
10634 standard excess precision.
10635 * convert.c (convert_to_real): Do not shorten arithmetic to type
10636 for which excess precision would be used.
10637 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
10638 * doc/invoke.texi (-fexcess-precision=): Document option.
10639 (-mfpmath=): Correct index entry.
10640 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
10641 flag_excess_precision): New.
10642 * langhooks.c (lhd_post_options): Set
10643 flag_excess_precision_cmdline.
10644 * opts.c (common_handle_option): Handle -fexcess-precision=.
10645 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
10646 init_excess_precision): New.
10647 (lang_dependent_init_target): Call init_excess_precision.
10648 * tree.c (excess_precision_type): New.
10649 * tree.h (excess_precision_type): Declare.
10650
1e57bf47
JM
106512009-03-30 Joseph Myers <joseph@codesourcery.com>
10652
10653 PR c/35235
10654 * c-typeck.c (build_component_ref): Do not copy qualifiers from
10655 non-lvalue to component.
10656
148e4216
JM
106572009-03-29 Joseph Myers <joseph@codesourcery.com>
10658
10659 PR preprocessor/34695
10660 * Makefile.in (c-opts.o): Depend on c-tree.h.
10661 * c-common.c: Move down include of diagnostic.h.
10662 (done_lexing, c_cpp_error): New.
10663 * c-common.h (done_lexing): Declare.
10664 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
10665 (parse_in).
10666 * c-opts.c: Include c-tree.h.
10667 (c_common_init_options): Set preprocessor error callback.
10668 (c_common_handle_option): Do not set preprocessor
10669 inhibit_warnings, warnings_are_errors, warn_system_headers,
10670 pedantic_errors or inhibit_warnings flags.
10671 (c_common_post_options): Do not check cpp_errors (parse_in).
10672 (c_common_finish): Do not output dependencies if there were
10673 errors. Do not check return value of cpp_finish.
10674 * c-ppoutput.c (pp_file_change): Set input_location.
10675 * c-tree.h (c_cpp_error): Declare.
10676 * diagnostic.c (diagnostic_set_info_translated): Also initialize
10677 override_column.
10678 (diagnostic_build_prefix): Check override_column.
10679 * diagnostic.h (diagnostic_info): Add override_column field.
10680 (diagnostic_override_column): Define.
10681
2ec5deb5
PB
106822009-03-28 Paolo Bonzini <bonzini@gnu.org>
10683
ba20e309
UB
10684 * c-common.c (c_expand_expr, c_staticp): Remove.
10685 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
10686 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
10687 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
10688 * c-gimplify.c (gimplify_compound_literal_expr,
10689 optimize_compound_literals_in_ctor): Remove.
10690 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
10691 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
10692 * c-semantics.c (emit_local_var): Remove.
10693
10694 * langhooks-def.h (lhd_expand_expr): Remove.
10695 * langhooks.c (lhd_expand_expr): Remove.
10696 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
10697
10698 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
10699 handling from c-semantics.c; don't call into langhook.
10700 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
10701 * gimplify.c (gimplify_compound_literal_expr,
10702 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
10703 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
10704 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
10705 as was done in c-gimplify.c.
10706 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
10707 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
10708 Move from c-common.h.
10709 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
10710
10711 * tree.c (staticp): Do not call langhook.
10712 * langhooks.c (lhd_staticp): Delete.
10713 * langhooks-def.h (lhd_staticp): Delete prototype.
10714 (LANG_HOOKS_STATICP): Delete.
10715 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
10716
ba20e309
UB
10717 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
10718 instead of DECL_STMTs.
2ec5deb5 10719
928c19bb
JM
107202009-03-29 Joseph Myers <joseph@codesourcery.com>
10721
10722 PR c/456
10723 PR c/5675
10724 PR c/19976
10725 PR c/29116
10726 PR c/31871
10727 PR c/35198
10728 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
10729 void_type_node.
10730 (fold_call_expr): Return a NOP_EXPR from folding rather than the
10731 contained expression.
ba20e309 10732 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
10733 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
10734 conditional expressions for C.
10735 (decl_constant_value_for_optimization): Move from
ba20e309 10736 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
10737 whether optimizing and that the expression is a VAR_DECL not of
10738 array type instead of doing such checks in the caller. Do not
10739 check pedantic. Call gcc_unreachable for C++.
10740 * c-common.def (C_MAYBE_CONST_EXPR): New.
10741 * c-common.h (c_fully_fold, c_save_expr,
10742 decl_constant_value_for_optimization): New prototypes.
10743 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10744 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10745 EXPR_INT_CONST_OPERANDS): Define.
10746 * c-convert.c (convert): Strip nops from expression.
10747 * c-decl.c (groktypename): Take extra parameters expr and
10748 expr_const_operands. Update call to grokdeclarator.
10749 (start_decl): Update call to grokdeclarator. Add statement for
10750 expressions used in type of decl.
10751 (grokparm): Update call to grokdeclarator.
10752 (push_parm_decl): Update call to grokdeclarator.
10753 (build_compound_literal): Add parameter non_const and build a
10754 C_MAYBE_COSNT_EXPR if applicable.
10755 (grokdeclarator): Take extra parameters expr and
10756 expr_const_operands. Track expressions used in declaration
10757 specifiers and declarators. Fold array sizes and track whether
10758 they are constant expressions and whether they are integer
10759 constant expressions.
10760 (parser_xref_tag): Set expr and expr_const_operands fields in
10761 return value.
10762 (grokfield): Update call to grokdeclarator.
10763 (start_function): Update call to grokdeclarator.
10764 (build_null_declspecs): Set expr and expr_const_operands fields in
10765 return value.
10766 (declspecs_add_type): Handle expressions in typeof specifiers.
10767 * c-parser.c (c_parser_declspecs): Set expr and
10768 expr_const_operands fields for declaration specifiers.
10769 (c_parser_enum_specifier): Likewise.
10770 (c_parser_struct_or_union_specifier): Likewise.
10771 (c_parser_typeof_specifier): Likewise. Update call to
10772 groktypename. Fold expression as needed. Return expressions with
10773 type instead of adding statements.
10774 (c_parser_attributes): Update calls to c_parser_expr_list.
10775 (c_parser_statement_after_labels): Fold expression before passing
10776 to objc_build_throw_stmt.
10777 (c_parser_condition): Fold expression.
10778 (c_parser_asm_operands): Fold expression.
10779 (c_parser_conditional_expression): Use c_save_expr. Update call
10780 to build_conditional_expr.
10781 (c_parser_alignof_expression): Update call to groktypename.
10782 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
10783 original_code. Fold expression argument of va_arg. Create
10784 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
10785 argument to va_arg. Update calls to groktypename. Fold array
10786 index for offsetof. Verify that first argument to
10787 __builtin_choose_expr has integer type.
10788 (c_parser_postfix_expression_after_paren_type): Update calls to
10789 groktypename and build_compound_literal. Handle expressions with
10790 side effects in type name.
10791 (c_parser_postfix_expression_after_primary): Update call to
10792 c_parser_expr_list. Set original_code for calls to
10793 __builtin_constant_p.
10794 (c_parser_expr_list): Take extra parameter fold_p. Fold
10795 expressions if requested.
10796 (c_parser_objc_type_name): Update call to groktypename.
10797 (c_parser_objc_synchronized_statement): Fold expression.
10798 (c_parser_objc_receiver): Fold expression.
10799 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
10800 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
10801 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
10802 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
10803 (struct c_typespec): Add elements expr and expr_const_operands.
10804 (struct c_declspecs): Add elements expr and expr_const_operands.
10805 (groktypename, build_conditional_expr, build_compound_literal):
10806 Update prototypes.
10807 (in_late_binary_op): Declare.
10808 * c-typeck.c (note_integer_operands): New function.
10809 (in_late_binary_op): New variable.
10810 (decl_constant_value_for_broken_optimization): Move to c-common.c
10811 and rename to decl_constant_value_for_optimization.
10812 (default_function_array_conversion): Do not strip nops.
10813 (default_conversion): Do not call
10814 decl_constant_value_for_broken_optimization.
10815 (build_array_ref): Do not fold result.
10816 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
10817 result when operand is a VLA.
10818 (c_expr_sizeof_type): Update call to groktypename. Handle
10819 expressions included in type name. Use C_MAYBE_CONST_EXPR for
10820 result when operand names a VLA type.
10821 (build_function_call): Update call to build_compound_literal.
10822 Only fold result for calls to __builtin_* functions. Strip
10823 NOP_EXPR from INTEGER_CST returned from such functions. Fold
10824 the function designator.
10825 (convert_arguments): Fold arguments. Update call to
10826 convert_for_assignment.
10827 (build_unary_op): Handle increment and decrement of
10828 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
10829 decrement earlier. Fold operand of increment and decrement.
10830 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
10831 built for integer operand. Wrap returns that are INTEGER_CSTs
10832 without being integer constant expressions or that have integer
10833 constant operands without being INTEGER_CSTs.
10834 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10835 (build_conditional_expr): Add operand ifexp_bcp. Track whether
10836 result is an integer constant expression or can be used in
10837 unevaluated parts of one and avoid folding and wrap as
10838 appropriate. Fold operands before possibly doing -Wsign-compare
10839 warnings.
10840 (build_compound_expr): Wrap result for C99 if operands can be used
10841 in integer constant expressions.
10842 (build_c_cast): Update call to digest_init. Do not ignore
10843 overflow from casting floating-point constants to integers. Wrap
10844 results that could be confused with integer constant expressions,
10845 null pointer constants or floating-point constants.
10846 (c_cast_expr): Update call to groktypename. Handle expressions
10847 included in type name.
10848 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
10849 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
10850 Update calls to convert_for_assignment.
10851 (convert_for_assignment): Take new parameter
10852 null_pointer_constant. Do not strip nops or call
10853 decl_constant_value_for_broken_optimization. Set
10854 in_late_binary_op for conversions to boolean.
10855 (store_init_value): Update call to digest_init.
10856 (digest_init): Take new parameter null_pointer_constant. Do not
10857 call decl_constant_value_for_broken_optimization. pedwarn for
10858 initializers not constant expressions. Update calls to
10859 convert_for_assignment.
10860 (constructor_nonconst): New.
10861 (struct constructor_stack): Add nonconst element.
10862 (really_start_incremental_init, push_init_level, pop_init_level):
10863 Handle constructor_nonconst and nonconst element.
10864 (set_init_index): Call constant_expression_warning for array
10865 designators.
10866 (output_init_element): Fold value. Set constructor_nonconst as
10867 applicable. pedwarn for initializers not constant expressions.
10868 Update call to digest_init. Call constant_expression_warning
10869 where constant initializers are required.
10870 (process_init_element): Use c_save_expr.
10871 (c_finish_goto_ptr): Fold expression.
10872 (c_finish_return): Fold return value. Update call to
10873 convert_for_assignment.
10874 (c_start_case): Fold switch expression.
10875 (c_process_expr_stmt): Fold expression.
10876 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 10877 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
10878 (build_binary_op): Track whether results are integer constant
10879 expressions or may occur in such, disable folding and wrap results
10880 as applicable. Fold operands for -Wsign-compare warnings unless
10881 in_late_binary_op.
10882 (c_objc_common_truthvalue_conversion): Handle results folded to
10883 integer constants that are not integer constant expressions.
10884 * doc/extend.texi: Document when typeof operands are evaluated,
10885 that condition of __builtin_choose_expr is an integer constant
10886 expression, and more about use of __builtin_constant_p in
10887 initializers.
10888
5babbcc0
RG
108892009-03-29 Richard Guenther <rguenther@suse.de>
10890
10891 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10892 propagate addresses of array references.
10893
0340f2ba
SB
108942009-03-29 Steven Bosscher <steven@gcc.gnu.org>
10895
10896 * regmove.c (perhaps_ends_bb_p): Remove.
10897 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
10898 from INSN and check that the main loop stays within that basic block.
10899 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10900 (regmove_forward_pass): Split out from regmove_optimize. Use
10901 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10902 (regmove_backward_pass): Split out from regmove_optimize. Use
10903 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10904 (regmove_optimize): Simplify.
10905
eeae74a1
L
109062009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10907
10908 PR target/39545
10909 * config/i386/i386.c (classify_argument): Ignore flexible array
10910 member in struct and warn ABI change.
10911
a24078b2
L
109122009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10913
10914 * config/i386/i386-protos.h (ix86_agi_dependent): New.
10915
10916 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10917 (ix86_adjust_cost): Updated.
10918
a8da523f
JH
109192009-03-29 Jan Hubicka <jh@suse.cz>
10920
10921 PR middle-end/28850
10922 * tree-pass.h (pass_cleanup_eh): New function.
10923 (remove_unreachable_regions): Break code handling RTL
10924 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10925 that can not be reached by runtime.
10926 (can_be_reached_by_runtime): New function.
10927 (label_to_region_map): New function.
10928 (num_eh_regions): New function.
10929 (rtl_remove_unreachable_regions): New function.
10930 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10931 (remove_eh_region): New function.
10932 * except.h: Include sbitmap and vecprim.
10933 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10934 num_eh_regions): Declare.
10935 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 10936 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
10937 * tree-eh.c (tree_remove_unreachable_handlers): New function.
10938 (tree_empty_eh_handler_p): New function.
10939 (cleanup_empty_eh): New function.
10940 (cleanup_eh): New function.
10941 (pass_cleanup_eh): New function.
10942
98f358e5
JH
109432009-03-29 Jan Hubicka <jh@suse.cz>
10944
10945 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10946 for removed regions.
10947
13a9fa44
JH
109482009-03-29 Jan Hubicka <jh@suse.cz>
10949
10950 * except.c (dump_eh_tree): Dump all datastructures.
10951
e38cf733
JH
109522009-03-29 Jan Hubicka <jh@suse.cz>
10953
10954 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10955 (duplicate_eh_regions_1): Likewise.
10956 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10957 vector; call EH verification.
10958 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10959 Be ready for region being removed.
10960
12802c2b
JH
109612009-03-29 Jan Hubicka <jh@suse.cz>
10962
10963 * bitmap.c (bitmap_last_set_bit): New function.
10964 * bitmap.h (bitmap_last_set_bit): Declare.
10965
4ea80a41
DA
109662009-03-29 David Ayers <ayers@fsfe.org>
10967
10968 PR objc/27377
10969 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10970 by calling objc_compare_types and surpress warnings about
10971 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 10972
4ea80a41 109732009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
10974
10975 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10976 call initialize_inline_failed.
10977 (initialize_inline_failed): Move it from here ...
10978 * cgraph.c (initialize_inline_failed): ... to here.
10979 (cgraph_create_edge): Call initialize_inline_failed rather than
10980 setting inline_failed directly.
10981
7fb0ee07
BE
109822009-03-29 Ben Elliston <bje@au.ibm.com>
10983
10984 PR target/32542
10985 * sysv4.opt (msdata): Improve comment.
10986 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10987 * sysv4.h (SVR4_ASM_SPEC): Likewise.
10988
0be77bf2
BE
109892009-03-29 Ben Elliston <bje@au.ibm.com>
10990
10991 PR target/30451
10992 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10993 load and store attributes.
10994
593812b6
BE
109952009-03-29 Ben Elliston <bje@au.ibm.com>
10996
10997 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10998 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10999 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
11000 * doc/extend.texi (X86 Built-in Functions): Add index entries for
11001 __builtin_infq and __builtin_huge_valq.
11002
8272d11d
AS
110032009-03-28 Anatoly Sokolov <aesok@post.ru>
11004
11005 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
11006 atmega8m1 devices.
11007 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11008 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
11009
74fe548b
XDL
110102009-03-28 Xinliang David Li <davidxl@google.com>
11011
2ba9daa7 11012 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
11013 (do_dbg_cnt): New function.
11014
33977f81
JH
110152009-03-28 Jan Hubicka <jh@suse.cz>
11016
11017 Merge from pretty-ipa:
11018
11019 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 11020
33977f81
JH
11021 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11022 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
11023 * passes.c (function_called_by_processed_nodes_p): New.
11024 * ipa-pure-const.c (check_call): Fix handling of operands.
11025 (analyze_function): Dump debug output for skipped bodies.
11026 (local_pure_const): Use function_called_by_processed_nodes_p.
11027 * dwarf2out.c (reference_to_unused): Use output.
11028 * passes.c (do_per_function_toporder): Likewise.
11029
11030 2008-11-12 Jan Hubicka <jh@suse.cz>
11031
11032 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
11033 * ipa-pure-const.c (funct_state_d): Add can throw field; make
11034 state_set_in_source enum
11035 (check_decl): Ignore memory tags; do not set fake looping flags;
11036 dump diagnostics.
11037 (check_operand, check_tree, check_rhs_var, check_lhs_var,
11038 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
11039 (check_call, analyze_function): Rewrite.
11040 (check_stmt): New.
11041 (add_new_function): Update call of analyze_function.
11042 (generate_summary): Add call of analyze_function.
11043 (propagate): Propagate can_throw; handle state_set_in_source correctly.
11044 (local_pure_const): New function.
11045 (pass_local_pure_const): New pass.
11046 * ipa-inline.c (inline_transform): Set after_inlining.
11047 * tree-eh.c (stmt_can_throw_external): New.
11048 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
11049 work with aliasing built.
11050 * tree-flow.h (stmt_can_throw_external): New.
11051 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
11052 and local pure/const pass in early and late optimization queue.
ba20e309 11053
617f3897
MJ
110542009-03-28 Martin Jambor <mjambor@suse.cz>
11055
11056 * fold-const.c (get_pointer_modulus_and_residue): New parameter
11057 allow_func_align.
11058 (fold_binary): Allow function decl aligment consideration is the
11059 second argument is integer constant one.
11060 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
11061 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
11062 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
11063
fe89fbc5
JH
110642009-03-28 Jan Hubicka <jh@suse.cz>
11065
11066 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
11067 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
11068 * function.h (rtl_data): Add nothrow flag.
11069 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
11070 set DECL_NOTHROW for AVAILABLE functions.
11071
574872ff
JJ
110722009-03-28 Jakub Jelinek <jakub@redhat.com>
11073
b3bf8855
JJ
11074 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
11075 following vector keyword has expansion starting with pixel or bool
11076 keyword, expand vector to __vector and pixel or bool to __pixel or
11077 __bool.
11078
574872ff
JJ
11079 PR c++/39554
11080 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
11081 warn_if_disallowed_function_p): Removed.
11082 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
11083 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
11084 warning_if_disallowed_function_p.
11085 * flags.h (warn_if_disallowed_function_p,
11086 warn_disallowed_functions): Removed.
11087 * common.opt (Wdisallowed-function-list=): Removed.
11088 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
11089
b005da11
RG
110902009-03-28 Richard Guenther <rguenther@suse.de>
11091
11092 PR tree-optimization/38723
11093 * tree-ssa-pre.c (compute_avail): Add all default definitions to
11094 the entry block.
11095
1de812a6
JH
110962009-03-28 Jan Hubicka <jh@suse.cz>
11097
11098 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
11099 test introduced by my previous patch.
11100
fbb789d4
RG
111012009-03-28 Richard Guenther <rguenther@suse.de>
11102
11103 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
11104 the PHIs value undefined.
11105
6f1873a1
JH
111062009-03-28 Jan Hubicka <jh@suse.cz>
11107
11108 * tree-pass.h (pass_fixup_cfg): New pass.
11109 * ipa-inline.c (inline_transform): Set
11110 always_inline_functions_inlined/after_inlining.
11111 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
11112 (pass_fixup_cfg): New pass.
11113 * passes.c (init_optimization_passes): Add fixup_cfg.
11114
17021bc8
RG
111152009-03-28 Richard Guenther <rguenther@suse.de>
11116
11117 PR tree-optimization/38458
11118 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
11119 argument use the arguments copy-of value.
11120
e8114fba
RG
111212009-03-28 Richard Guenther <rguenther@suse.de>
11122
11123 PR tree-optimization/38180
11124 * tree-ssa-ccp.c (get_default_value): Simplify.
11125 (likely_value): Likewise.
11126 (surely_varying_stmt_p): Properly handle VOP case.
11127 (ccp_initialize): Likewise.
11128 (ccp_fold): Handle propagating through *&.
11129 (fold_const_aggregate_ref): Also handle decls.
11130
257eb6e3
JH
111312009-03-28 Jan Hubicka <jh@suse.cz>
11132
11133 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11134 * cgraph.h (cgraph_node): Likewise.
11135 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
11136 (cgraph_reset_node): Use process flag.
11137 (cgraph_mark_functions_to_output): Likewise.
11138 (cgraph_expand_function): Likewise.
11139 (cgraph_expand_all_functions): Likewise.
11140 (cgraph_output_in_order): Likewise.
11141 * dwarf2out.c (reference_to_unused): Likewise.
11142 * passes.c do_per_function_toporder): Likewise.
11143
61a05df1
JH
111442009-03-28 Jan Hubicka <jh@suse.cz>
11145
11146 Bring from lto-branch:
ba20e309 11147
61a05df1
JH
11148 2008-09-03 Doug Kwan <dougkwan@google.com>
11149
11150 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
11151 enums instead of reason strings.
11152 * cgraph.c (cgraph_create_edge): Same.
11153 (cgraph_inline_failed_string): New function.
11154 * cgraph.h (cgraph_inline_failed_t): New enum type.
11155 (cgraph_inline_failed_string): New prototype.
11156 (struct cgraph_edge): Change type of INLINED_FAILED from constant
11157 char pointer to cgraph_inline_failed_t.
11158 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
11159 (cgraph_default_inline_p): Ditto.
60839f5d 11160 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
11161 to cgraph_inline_failed_t pointer.
11162 * cif-code.def: New file.
11163 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
11164 reason string.
11165 (cgraph_check_inline_limits): Change type of REASON to pointer to
11166 cgraph_inline_failed_t. Replace reason strings with enums.
11167 (cgraph_default_inline_p): Ditto.
11168 (cgraph_recursive_inlining_p): Ditto.
11169 (update_caller_keys): Change type of FAILED_REASON to
11170 cgraph_inline_failed_t.
11171 (cgraph_set_inline_failed): Change type of REASON to pointer to
11172 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
11173 convert enums to strings for text output.
11174 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
11175 to be of type cgraph_inline_failed_t. Replace reason strings with
11176 enums. Call cgraph_inline_failed_string to covert enums
11177 to strings for text output.
11178 (cgraph_decide_inlining): Replace reason strings with enums.
11179 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
11180 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
11181 for text output.
11182 * tree-inline.c (expand_call_inline): Change type of REASON
11183 to cgraph_inline_failed_t. Replace reason strings with enums.
11184 Call cgraph_inline_failed_string for text output.
11185 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
11186 (cgraph.o): Ditto.
11187
144e8aac
JH
111882009-03-28 Jan Hubicka <jh@suse.cz>
11189
11190 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
11191 cgraph_clone_node): Remove master clone handling.
11192 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11193 * cgraph.h (master_clone): Remove.
11194 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11195 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
11196 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
11197
4a371c8d
JH
111982009-03-28 Jan Hubicka <jh@suse.cz>
11199
11200 * cgraph.c (cgraph_function_body_availability): Functions declared
11201 inline are always safe to assume that it is not going to be replaced.
11202
6cdb0ee3
RG
112032009-03-28 Richard Guenther <rguenther@suse.de>
11204
11205 PR tree-optimization/38513
11206 * tree-ssa-pre.c (eliminate): Remove redundant stores.
11207 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11208 EXC_PTR_EXPR and FILTER_EXPR.
11209 (get_ref_from_reference_ops): Likewise.
11210
8ca1fd76
RG
112112009-03-28 Richard Guenther <rguenther@suse.de>
11212
11213 PR tree-optimization/38968
11214 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
11215 Use FLOOR_MOD_EXPR to compute misalignment.
11216
a254e44d
RG
112172009-03-28 Richard Guenther <rguenther@suse.de>
11218
11219 PR tree-optimization/37795
11220 * tree.h (combine_comparisons): Declare.
11221 * fold-const.c (combine_comparisons): Export.
11222 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
11223 comparisons.
11224 (ifcombine_iforif): Use combine_comparisons.
11225
a8ee227c
JH
112262009-03-28 Jan Hubicka <jh@suse.cz>
11227
11228 * tree-eh.c (inlinable_call_p): New function.
11229 (make_eh_edges): Use it.
11230 (verify_eh_edges): Use it.
11231 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
11232 * except.c (reachable_next_level): Add inlinable_function argument
11233 (sjlj_find_directly_reachable_regions): Update.
11234 (add_reachable_handler): Do not set saw_any_handlers.
11235 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
11236 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11237 Add new inlinable call parameter.
11238 (can_throw_internal, can_throw_external): Update.
11239 * except.h (can_throw_internal_1, can_throw_external_1,
11240 foreach_reachable_handler): Update declaration.
11241
52c0e446
JM
112422009-03-28 Joseph Myers <joseph@codesourcery.com>
11243
11244 * config/arm/t-arm-coff, config/h8300/coff.h,
11245 config/i386/i386-aout.h, config/i386/i386-coff.h,
11246 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
11247 config/pdp11/2bsd.h, config/rs6000/aix41.h,
11248 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
11249 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
11250 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
11251 sys-types.h: Remove.
11252 * Makefile.in: Remove protoize and fixproto support and references
11253 in comments.
11254 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
11255 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
11256 Remove.
11257 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
11258 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
11259 unprotoize$(exeext).
11260 (rest.encap): Don't depend on $(STMP_FIXPROTO)
11261 (.PHONY): Don't depend on proto.
11262 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
11263 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
11264 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
11265 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
11266 build/gen-protos.o, build/scan.o, xsys-protos.h,
11267 build/fix-header$(build_exeext), build/fix-header.o,
11268 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
11269 stmp-install-fixproto): Remove.
11270 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
11271 SYSCALLS.c or fixproto files.
11272 (install-common): Don't install protoize.
11273 (install-headers-tar, install-headers-cpio, install-headers-cp):
11274 Don't depend on $(STMP_FIXPROTO).
11275 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
11276 install fixproto files or write out fixproto settings.
11277 (uninstall): Don't uninstall protoize.
11278 * config.gcc (use_fixproto): Remove.
11279 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
11280 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
11281 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
11282 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
11283 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
11284 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
11285 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
11286 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
11287 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
11288 * config/t-vxworks (STMP_FIXPROTO): Remove.
11289 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
11290 STMP_FIXPROTO): Remove.
11291 * config.in, configure: Regenerate.
11292 * crtstuff.c (gid_t, uid_t): Don't undefine.
11293 * doc/install.texi: Change m68k-coff to m68k-elf in example.
11294 (arm-*-coff, arm-*-aout: Remove target entries.
11295 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
11296 Remove mention of AIX 4.1.
11297 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
11298 * doc/invoke.texi (Running Protoize): Remove.
11299 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
11300 (Protoize Caveats): Remove.
11301 * tsystem.h: Update comments on headers assumed to exist.
11302
20a07f44
VM
113032009-03-27 Vladimir Makarov <vmakarov@redhat.com>
11304
11305 * genautomata.c: Add a new year to the copyright. Add a new
11306 reference.
11307 (struct insn_reserv_decl): Add comments for member bypass_list.
11308 (find_bypass): Remove.
11309 (insert_bypass): New.
11310 (process_decls): Use insert_bypass.
11311 (output_internal_insn_latency_func): Output all bypasses with the
11312 same input insn in one switch case.
11313
11314 * rtl.def (define_bypass): Describe bypass choice.
11315 * doc/md.texi (define_bypass): Ditto.
11316
3a0d06c1
RB
113172009-03-27 Richard Guenther <rguenther@suse.de>
11318
11319 * gimplify.c (mark_addressable): Export.
11320 * tree-flow.h (mark_addressable): Declare.
11321 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
11322 * tree-ssa.c (verify_phi_args): Verify that address taken
11323 variables have TREE_ADDRESSABLE set.
11324
113252009-03-27 Richard Guenther <rguenther@suse.de>
11326
11327 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
11328 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
11329 Do not mark decls TREE_ADDRESSABLE.
11330 (build_fold_addr_expr): Adjust.
11331 (fold_addr_expr): Remove.
11332 (fold_unary): Use build_fold_addr_expr.
11333 (fold_comparison): Likewise.
11334 (split_address_to_core_and_offset): Likewise.
11335 * coverage.c (tree_coverage_counter_addr): Mark the array decl
11336 TREE_ADDRESSABLE.
11337 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
11338 (gimplify_modify_expr_to_memcpy): Mark source and destination
11339 addressable.
11340 * omp-low.c (create_omp_child_function): Mark the object decl
11341 TREE_ADDRESSABLE.
11342 (lower_rec_input_clauses): Mark the var we take the address of
11343 TREE_ADDRESSABLE.
11344 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
11345
2ac26e15
L
113462009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11347
11348 PR middle-end/39315
11349 * cfgexpand.c (expand_one_stack_var_at): Change alignment
11350 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
11351
472c7fbd
RG
113522009-03-27 Richard Guenther <rguenther@suse.de>
11353
11354 PR tree-optimization/39120
11355 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
11356 constraints.
11357 (handle_lhs_call): Process return constraints. Add escape
11358 constraints if necessary.
11359 (handle_const_call): Fill out return constraints. Make nested
11360 case more precise. Avoid consttmp if possible.
11361 (handle_pure_call): Fill out return constraints. Avoid
11362 callused if possible.
11363 (find_func_aliases): Simplify call handling.
11364
113652009-03-27 Richard Guenther <rguenther@suse.de>
11366
11367 PR tree-optimization/39120
11368 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
11369 as a representative.
11370 (solve_graph): Do propagate CALLUSED.
11371 (handle_pure_call): Use a scalar constraint from CALLUSED for
11372 the return value.
11373 (find_what_p_points_to): CALLUSED shall not appear in poins-to
11374 solutions.
11375
d9223014
L
113762009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11377
11378 PR c/39323
11379 * c-common.c (handle_aligned_attribute): Properly check alignment
11380 overflow. Use (1U << i) instead of (1 << i).
11381
ba20e309 11382 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
11383
11384 * expr.h (get_mem_align_offset): Updated.
11385
11386 * tree.h (tree_decl_common): Change align to "unsigned int" and
11387 move it before pointer_alias_set.
11388
689b689c
L
113892009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11390 Jakub Jelinek <jakub@redhat.com>
11391
11392 PR target/38034
11393 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
11394 gr_register_operand with gr_reg_or_0_operand.
11395 (cmpxchg_rel_di): Likewise.
11396 (sync_lock_test_and_set<mode>): Likewise.
11397
c619e982
L
113982009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11399
11400 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
11401 (true_regnum): Likewise.
11402
11403 * rtlanal.c (subreg_info): Moved to ...
11404 * rtl.h (subreg_info): Here. New.
11405 (subreg_get_info): New.
11406
11407 * rtlanal.c (subreg_get_info): Make it extern.
11408
51212b32
L
114092009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11410
11411 PR target/39472
11412 * config/i386/i386.c (ix86_abi): New.
11413 (override_options): Handle -mabi=.
ba20e309 11414 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
11415 (ix86_call_abi_override): Likewise.
11416 (init_cumulative_args): Likewise.
11417 (function_arg_advance): Likewise.
11418 (function_arg_64): Likewise.
11419 (function_arg): Likewise.
11420 (ix86_pass_by_reference): Likewise.
11421 (ix86_function_value_regno_p): Likewise.
11422 (ix86_build_builtin_va_list_abi): Likewise.
11423 (setup_incoming_varargs_64): Likewise.
11424 (is_va_list_char_pointer): Likewise.
11425 (ix86_init_machine_status): Likewise.
ba20e309 11426 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
11427 (ix86_function_type_abi): Return enum calling_abi. Rewrite
11428 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 11429 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
11430 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
11431 with ix86_abi.
11432 (ix86_fn_abi_va_list): Updated.
11433
11434 * config/i386/i386.h (ix86_abi): New.
11435 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
11436 (CONDITIONAL_REGISTER_USAGE): Likewise.
11437 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
11438 (machine_function): Likewise.
11439
11440 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
11441 with ix86_abi.
11442 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
11443 (STACK_BOUNDARY): Likewise.
11444 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
11445
11446 * config/i386/i386.opt (mabi=): New.
11447
11448 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
11449 return enum calling_abi.
11450 (ix86_function_type_abi): Likewise.
11451 (ix86_function_abi): Removed.
11452
11453 * doc/invoke.texi: Document -mabi= option for x86.
11454
7338ea63
KG
114552009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11456
11457 * builtins.c (real_dconstp): Delete.
11458 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
11459
68599f33
DS
114602009-03-27 Dodji Seketeli <dodji@redhat.com>
11461 Jakub Jelinek <jakub@redhat.com>
11462
11463 PR debug/37959
11464 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
11465 (gen_subprogram_die): When a function is explicit, generate the
11466 DW_AT_explicit attribute.
11467 * langhooks.h (struct lang_hooks_for_decls): Add
11468 function_decl_explicit_p langhook.
11469 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
11470 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
11471
9f5e9983
JJ
114722009-03-27 Jakub Jelinek <jakub@redhat.com>
11473
64d7685c
JJ
11474 * builtins.c (fold_builtin_memory_op): Optimize memmove
11475 into memcpy if we can prove source and destination don't overlap.
11476
9f5e9983
JJ
11477 * tree-inline.c: Include gt-tree-inline.h.
11478 (clone_fn_id_num): New variable.
11479 (clone_function_name): New function.
11480 (tree_function_versioning): Use it.
11481 * Makefile.in (GTFILES): Add tree-inline.c.
11482
e54d52a8
MM
114832009-03-27 Mark Mitchell <mark@codesourcery.com>
11484
11485 * BASE-VER: Change to 4.5.0.
11486
e9d51dc6
XDL
114872009-03-27 Xinliang David Li <davidxl@google.com>
11488
11489 PR tree-optimization/39557
11490 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
11491
4577cea1
XDL
114922009-03-27 Xinliang David Li <davidxl@google.com>
11493
11494 PR tree-optimization/39548
2ba9daa7 11495 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
11496 candidate check.
11497
0f7464f4
L
114982009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11499
11500 * c-common.c (pointer_int_sum): Use %wd on return from
11501 tree_low_cst.
11502
a8847a7f
L
115032009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11504
11505 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
11506 on return from tree_low_cst.
11507
b0957daf
AP
115082009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
11509
11510 PR c++/36799
ba20e309
UB
11511 * ginclude/stdarg.h (va_copy): Define also for
11512 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 11513
a5f805df
MLI
115142009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11515
11516 PR c++/35652
11517 * builtins.h (c_strlen): Do not warn here.
11518 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
11519 * c-common.c (pointer_int_sum): Take an explicit location.
11520 Warn about offsets out of bounds.
11521 * c-common.h (pointer_int_sum): Adjust declaration.
11522
6f401211
RW
115232009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11524
a5f805df
MLI
11525 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
11526 markup glitch.
6f401211 11527
5a59b39e
JJ
115282009-03-26 Jakub Jelinek <jakub@redhat.com>
11529
11530 PR c++/39554
11531 * opts.c (warn_if_disallowed_function_p): Don't assume
11532 get_callee_fndecl must return non-NULL.
11533
d5f89b53
VM
115342009-03-26 Vladimir Makarov <vmakarov@redhat.com>
11535
11536 PR rtl-optimization/39522
11537 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
11538 when reg_reloaded_valid is set.
11539
61238a79
UW
115402009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11541
11542 * config/spu/divv2df3.c: New file.
11543 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
11544 (DPBIT_FUNCS): Filter out _div_df.
11545
03f8829b
BS
115462009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
11547
11548 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
11549 a jump insn, count that jump in the distance to the loop start.
11550
9fdcdc74
KK
115512009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
11552
11553 PR target/39523
11554 * config/sh/sh.c (calc_live_regs): Fix condition for global
11555 registers except PIC_OFFSET_TABLE_REGNUM.
11556
46994828
KT
115572009-03-25 Kai Tietz <kai.tietz@onevision.com>
11558
11559 PR/39518
11560 * doc/invoke.texi (-mconsole): New.
11561 (-mcygwin): New.
11562 (-mno-cygwin): New.
11563 (-mdll): New.
11564 (-mnop-fun-dllimport): New.
11565 (-mthread): New.
11566 (-mwin32): New.
11567 (-mwindows): New.
11568 (sub section "i386 and x86-64 Windows Options"): New.
11569
60839f5d 115702009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
11571
11572 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
11573 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
11574
ae560440
RG
115752009-03-25 Richard Guenther <rguenther@suse.de>
11576
11577 PR middle-end/39497
11578 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
11579 of -Wno-error.
11580
cd510f15
AM
115812009-03-25 Andrey Belevantsev <abel@ispras.ru>
11582
11583 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
11584 neither of haifa/selective schedulers are working.
11585
44ab0f0e
RW
115862009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11587
11588 * doc/invoke.texi (Debugging Options): Fix description of
11589 -fno-merge-debug-strings.
11590
ad9646c7
HPN
115912009-03-24 Hans-Peter Nilsson <hp@axis.com>
11592
e6142656
HPN
11593 * config/cris/libgcc.ver: New version-script.
11594 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
11595
ad9646c7
HPN
11596 * configure.ac <GAS features, nop mnemonic>: Add pattern
11597 crisv32-*-* for "nop".
ba20e309 11598 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
11599 * configure: Regenerate.
11600
09ac4473
IR
116012009-03-24 Ira Rosen <irar@il.ibm.com>
11602
11603 PR tree-optimization/39529
11604 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
11605 mark_sym_for_renaming for the tag copied to the new vector
11606 pointer.
11607
d94a427e
AL
116082009-03-24 Arthur Loiret <aloiret@debian.org>
11609
ba20e309 11610 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
11611 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
11612 EXTRA_SPEC_FUNCTIONS.
11613 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
11614 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
11615 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
11616 -march and -mtune options.
11617
60839f5d 116182009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
11619
11620 * config/m68k/t-rtems: Add m5329 multilib.
11621
603f5959
DS
116222009-03-24 Dodji Seketeli <dodji@redhat.com>
11623 Jakub Jelinek <jakub@redhat.com>
11624
11625 PR debug/39524
11626 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
11627 nodes.
11628
c5cdb03f
JJ
116292009-03-23 Jakub Jelinek <jakub@redhat.com>
11630
11631 PR c/39495
11632 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
11633 instead of c_parser_expression_conv, if original_code isn't one of the
11634 4 allowed comparison codes, fail.
11635
3691626c
RG
116362009-03-23 Richard Guenther <rguenther@suse.de>
11637
11638 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
11639 * tree.h (struct tree_type): Likewise.
11640 * reload.h (struct insn_chain): Likewise.
11641 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
11642 * function.h (struct function): Likewise.
11643 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
11644
88ccb72a
JJ
116452009-03-23 Jakub Jelinek <jakub@redhat.com>
11646
11647 PR tree-optimization/39516
11648 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
11649
60839f5d 116502009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 11651
2ba9daa7 11652 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
11653 should be set true if BITS_PER_WORD of target is bigger than 32
11654
f82162f8
HPN
116552009-03-22 Hans-Peter Nilsson <hp@axis.com>
11656
11657 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
11658 Translate -B-options to -rpath-link. Correct existing
11659 rpath-link and conditionalize on !nostdlib.
11660
048fd785
RW
116612009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11662
11663 * doc/extend.texi (Function Attributes, Variable Attributes):
11664 Fix typos.
11665 * doc/invoke.texi (Debugging Options, Optimize Options)
11666 (i386 and x86-64 Options, MCore Options): Likewise.
11667
6e75c1a9
JJ
116682009-03-20 Jakub Jelinek <jakub@redhat.com>
11669
11670 PR debug/37890
11671 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
11672 it for block local namespace aliases.
11673 (gen_decl_die): Pass context_die to gen_namespace_die.
11674
ea1199ee
JJ
116752009-03-19 Jakub Jelinek <jakub@redhat.com>
11676
11677 PR c/39495
11678 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
11679 minimum or maximum value.
11680
58929c10
AO
116812009-03-19 Alexandre Oliva <aoliva@redhat.com>
11682
11683 * reginfo.c (globalize_reg): Recompute derived reg sets.
11684
60839f5d 116852009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
11686
11687 PR target/39063
11688 * libgcc2.c (mprotect): Do not use signed arguments for
11689 VirtualProtect, use DWORD arguments. Also fix the 'may
11690 be used uninitialized' warning for the np variable.
11691
f57c2f04
JJ
116922009-03-19 Jakub Jelinek <jakub@redhat.com>
11693
11694 PR target/39496
11695 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
11696 functions using regparm calling conventions when not optimizing.
11697 (ix86_function_sseregparm): Similarly for sseregparm calling
11698 conventions.
11699
9e517d61
LF
117002009-03-19 Li Feng <nemokingdom@gmail.com>
11701
11702 PR middle-end/39500
11703 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
11704 dependence if the first conflict is after niter iterations.
11705
8ef20026
HPN
117062009-03-19 Hans-Peter Nilsson <hp@axis.com>
11707
11708 PR middle-end/38609
11709 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
11710 functions with dynamic stack-pointer adjustments.
11711
64e4a1a6
BE
117122009-03-19 Ben Elliston <bje@au.ibm.com>
11713
11714 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
11715 option; change to -msdata=data.
11716
9a0f3e86
RW
117172009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11718
11719 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
11720 and -fopenmp.
11721
09bc5979
EB
117222009-03-18 Eric Botcazou <ebotcazou@adacore.com>
11723
11724 PR target/35180
11725 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
11726
332459cd
SL
117272009-03-18 Sandra Loosemore <sandra@codesourcery.com>
11728
11729 * doc/invoke.texi (Code Gen Options): Expand discussion of
11730 -fno-common.
11731
8f5929e1
JJ
117322009-03-18 Jakub Jelinek <jakub@redhat.com>
11733
11734 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
11735 * matrix-reorg.c (struct matrix_info): Likewise.
11736 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
11737 * rtl.h (struct mem_attrs): Likewise.
11738 * df.h (struct df): Likewise.
11739 * tree-data-ref.h (struct data_dependence_relation): Likewise.
11740 * ira-int.h (struct ira_allocno): Likewise.
11741 * df-scan.c (struct df_collection_rec): Likewise.
11742 * ira.c (struct equivalence): Likewise.
11743 * function.c (struct temp_slot): Likewise.
11744 * cfgloop.h (struct loop): Likewise.
11745
d130d647
JJ
11746 PR debug/39485
11747 * function.c (use_register_for_decl): When not optimizing, disregard
11748 register keyword for variables with types containing methods.
11749
9968d233
SP
117502009-03-18 Sebastian Pop <sebastian.pop@amd.com>
11751
11752 PR middle-end/39447
11753 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
11754 (is_simple_operand): Call contains_component_ref_p before calling data
11755 reference analysis that would fail on COMPONENT_REFs.
11756
11757 * tree-vrp.c (search_for_addr_array): Fix formatting.
11758
69484bfd
RG
117592009-03-18 Richard Guenther <rguenther@suse.de>
11760
11761 * tree-vect-transform.c (vect_loop_versioning): Fold the
11762 generated comparisons.
11763 * tree-vectorizer.c (set_prologue_iterations): Likewise.
11764 (slpeel_tree_peel_loop_to_edge): Likewise.
11765
66811228
RW
117662009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11767
0631b69f
RW
11768 PR middle-end/37805
11769 * opts.c (print_specific_help): In addition to `undocumented',
11770 accept `separate' and `joined' flags if passed alone. Describe
11771 output by the first matched one of those.
11772 (common_handle_option): Skip over empty strings.
11773 * gcc.c (display_help): Fix help string for `--help='.
11774 * doc/invoke.texi (Option Summary, Overall Options): With
11775 `--help=', classes and qualifiers can both be repeated, but
11776 only the latter can be negated. One should not pass only
11777 negated qualifiers. Fix markup and examples.
11778
66811228
RW
11779 Revert
11780 2008-10-14 Jakub Jelinek <jakub@redhat.com>
11781 PR middle-end/37805
11782 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
11783 and -fhelp=separate.
11784
3c072c6b
JY
117852009-03-17 Jing Yu <jingyu@google.com>
11786
11787 PR middle-end/39378
80c65208
JY
11788 * function.h (struct rtl_data): Move is_thunk from here...
11789 (struct function): ...to here.
11790 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
11791 * varasm.c (assemble_start_function): Change is_thunk from crtl to
11792 cfun.
80c65208
JY
11793 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
11794 cfun.
11795 (alpha_does_function_need_gp, alpha_start_function): Likewise.
11796 (alpha_output_function_end_prologue): Likewise.
11797 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
11798 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
11799 (rs6000_output_function_epilogue): Likewise.
11800 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 11801
9ade279b
UB
118022009-03-17 Uros Bizjak <ubizjak@gmail.com>
11803
11804 PR target/39482
11805 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
11806 from different units in a single alternative.
11807 (*truncdfsf_i387): Ditto.
11808 (*truncxfsf2_mixed): Ditto.
11809 (*truncxfdf2_mixed): Ditto.
11810
16e60c17
JJ
118112009-03-17 Jakub Jelinek <jakub@redhat.com>
11812
98381eb4
JJ
11813 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11814 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11815
df5deb18
JJ
11816 PR debug/39474
11817 * tree-ssa-live.c (remove_unused_locals): Don't remove local
11818 unused non-artificial variables when not optimizing.
11819
a3f596ba
JJ
11820 PR debug/39471
11821 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11822 DW_TAG_imported_module even if decl is IMPORTED_DECL with
11823 NAMESPACE_DECL in its DECL_INITIAL.
11824
6b2b8871
JJ
11825 PR middle-end/39443
11826 * optabs.c (set_user_assembler_libfunc): New function.
11827 * expr.h (set_user_assembler_libfunc): New prototype.
11828 * c-common.c: Include libfuncs.h.
11829 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11830 for memcmp, memset, memcpy, memmove and abort.
11831 * Makefile.in (c-common.o): Depend on libfuncs.h.
11832
16e60c17
JJ
11833 PR debug/39412
11834 * dwarf2out.c (gen_inlined_enumeration_type_die,
11835 gen_inlined_structure_type_die, gen_inlined_union_type_die,
11836 gen_tagged_type_instantiation_die): Removed.
11837 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11838 do nothing.
11839
4d936aca
JJ
118402009-03-17 Janis Johnson <janis187@us.ibm.com>
11841
11842 PR testsuite/38526
11843 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11844 its use.
11845 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11846 (check-parallel-%): Ditto.
11847 (check-consistency): Ditto.
11848
4e9b2e50
KT
118492009-03-17 Kai Tietz <kai.tietz@onevision.com>
11850
11851 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11852 local variable rhs by NULL_TREE.
11853
21440b2d
L
118542009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11855
11856 PR target/39477
9ade279b 11857 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 11858
d8905c6a
L
118592009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11860
11861 PR target/39476
9ade279b 11862 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
11863
118642009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
11865
11866 PR target/39473
11867 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11868 for ms->sysv ABI calls only in 64bit mode.
11869
11870 * config/i386/i386.md (untyped_call): Support 32bit.
11871
cdcabece
L
118722009-03-16 H.J. Lu <hongjiu.lu@intel.com>
11873
11874 * doc/extend.texi: Replace x86_65 with x86_64.
11875
97b4ba9f
JJ
118762009-03-16 Jakub Jelinek <jakub@redhat.com>
11877
11878 PR tree-optimization/39455
11879 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11880 mismatches for POINTER_TYPE_P (type).
11881 (number_of_iterations_le): Likewise.
11882
60839f5d 118832009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
11884
11885 * config/picochip/picochip.c: Removed profiling support.
11886 * config/picochip/picochip.md: Removed profiling instruction.
11887 * config/picochip/picochip.h: Removed profiling builtin.
11888
f38095f3
JM
118892009-03-16 Joseph Myers <joseph@codesourcery.com>
11890
11891 * doc/install.texi (--with-host-libstdcxx): Document.
11892
2cb4817b
AS
118932009-03-14 Anatoly Sokolov <aesok@post.ru>
11894
11895 PR target/34299
11896 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11897 generate a warning if the function name does not begin with
11898 "__vector" and the function has either the 'signal' or 'interrupt'
11899 attribute, from here to ...
11900 (avr_declare_function_name): ...here. New function.
11901 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11902 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11903
39b2ac74
JJ
119042009-03-14 Jakub Jelinek <jakub@redhat.com>
11905
11906 PR bootstrap/39454
11907 * cse.c (fold_rtx): Don't modify original const_arg1 when
11908 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11909 separate variable instead.
11910 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11911 from out of range shift counts.
11912 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11913
ad41bd84 119142009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 11915
60839f5d 11916 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
11917 diagnostic.h with $(DIAGNOSTIC_H).
11918
ad41bd84 119192009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
11920
11921 PR target/39431
11922 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11923 predicate.
11924 * config/i386/sync.md (sync_compare_and_swap<mode>,
11925 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11926 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11927 into a register.
11928 (sync_double_compare_and_swapdi_pic,
11929 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11930 cmpxchg8b_pic_memory_operand instead of just memory_operand.
11931
122c59c7
L
119322009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11933
11934 PR target/39445
9ade279b 11935 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 11936
cec8874f
L
119372009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11938
11939 PR target/39327
11940 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11941 (avx_addsubv4df3): Likewise.
11942 (*avx_addsubv4sf3): Likewise.
11943 (sse3_addsubv4sf3): Likewise.
11944
bbb52802
L
119452009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11946
11947 PR target/38824
9ade279b 11948 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 11949
a812fb07
VM
119502009-03-12 Vladimir Makarov <vmakarov@redhat.com>
11951
11952 PR debug/39432
11953 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11954 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11955 registers for allocnos created from user-defined variables.
11956
4caab5ba
UW
119572009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11958
11959 PR target/39181
11960 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11961 of non-integer mode as well.
11962
498e51ca
AN
119632009-03-11 Adam Nemet <anemet@caviumnetworks.com>
11964
11965 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11966 for functions for which the parameter types are unknown.
11967
9bfaf89d
JJ
119682009-03-11 Jakub Jelinek <jakub@redhat.com>
11969
11970 PR target/39137
9ade279b 11971 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
11972 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11973 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11974 * config/i386/i386.c (ix86_local_alignment): For
11975 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11976 long long variables on the stack to avoid dynamic realignment.
11977 Allow the first argument to be a decl rather than type.
11978 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11979
18a3bdcb
NC
119802009-03-11 Nick Clifton <nickc@redhat.com>
11981
11982 PR target/5362
40190a76
NC
11983 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11984 options.
11985 Add description to mno-lsim option.
11986 * config/mcore/mcore.h: Remove comment about deprecated m4align
11987 option.
11988 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11989 * doc/invoke.texi: Add description of mno-lsim and
11990 mstack-increment options.
11991
18a3bdcb
NC
11992 * config/fr30/fr30.opt: Document the -mno-lsim option.
11993 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11994 and -mno-lsim options.
11995
dc215785
UW
119962009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11997
11998 * fold-const.c (fold_comparison): Only call fold_inf_compare
11999 if the mode supports infinities.
12000
7716876b
JM
120012009-03-11 Jason Merrill <jason@redhat.com>
12002
12003 PR debug/39086
12004 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
12005 end already did. Notice GIMPLE_CALL modifications of the result.
12006 Don't copy debug information from an ignored decl or a decl from
12007 another function.
12008
ddef83d2
RG
120092009-03-10 Richard Guenther <rguenther@suse.de>
12010 Nathan Froyd <froydnj@codesourcery.com>
12011
12012 PR middle-end/37850
9ade279b 12013 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
12014 (__divMODE3): Likewise.
12015
9a9ba8d9
JJ
120162009-03-09 Jakub Jelinek <jakub@redhat.com>
12017
12018 PR tree-optimization/39394
12019 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
12020 DECL_SIZE_UNIT of variable length FIELD_DECLs.
12021
929b7fc3
AK
120222009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12023
12024 * recog.c (verfiy_changes): Disallow renaming of hard regs in
12025 inline asms for register asm ("") declarations.
12026
1803581d
EB
120272009-03-09 Eric Botcazou <ebotcazou@adacore.com>
12028
12029 * fold-const.c (fold_unary): Fix comment.
12030
8454d27e
JH
120312009-03-07 Jan Hubicka <jh@suse.cz>
12032
12033 PR target/39361
969a5433
JJ
12034 * tree-inline.c (setup_one_parameter): Do replacement of const
12035 argument by constant in SSA form.
8454d27e 12036
3a695389
UW
120372009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12038
12039 PR middle-end/38028
12040 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
12041 determine alignment passed to assign_stack_local.
12042 (assign_parms_unsplit_complex): Likewise.
12043 * except.c (sjlj_build_landing_pads): Likewise.
12044
9f0e7885
JJ
120452009-03-06 Jakub Jelinek <jakub@redhat.com>
12046
65401a0b
JJ
12047 PR middle-end/39360
12048 * tree-flow.h (add_referenced_var): Return bool instead of void.
12049 * tree-dfa.c (add_referenced_var): Return result of
12050 referenced_var_check_and_insert call.
12051 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
12052 of referenced_var_check_and_insert.
12053
9f0e7885 12054 PR debug/39372
9ade279b 12055 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
12056 (gen_variable_die): Emit DW_AT_location on abstract static variable's
12057 DIE, don't emit it if abstract origin already has it.
12058 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
12059 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
12060
3b664bd1
JBG
120612009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12062
ba20e309 12063 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
12064 detection.
12065 (write_tm_constrs_h): Indent generated code.
12066
d8f8ca80
RR
120672009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12068
12069 * doc/extend.texi (Function Attributes): Add documentation
12070 for isr attributes.
12071
6c3d550c
JJ
120722009-03-06 Jakub Jelinek <jakub@redhat.com>
12073
12074 PR debug/39387
12075 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
12076 take locus from its DECL_SOURCE_LOCATION instead of input_location.
12077
f9e96751
BS
120782009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
12079
12080 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
12081 the loop as bad.
12082
ee0ee7e2
JJ
120832009-03-05 Jakub Jelinek <jakub@redhat.com>
12084
12085 PR debug/39379
12086 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
12087 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
12088
6c6094f1
UB
120892009-03-05 Uros Bizjak <ubizjak@gmail.com>
12090
12091 * config/i386/i386.md (R8_REG, R9_REG): New constants.
12092 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
12093 constants instead of magic numbers.
12094 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
12095 (QI_REG_P): Ditto.
12096 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
12097 (x86_64_ms_abi_int_parameter_registers): Ditto.
12098 (x86_64_int_return_registers): Ditto.
09f8a8d3 12099 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
12100 (ix86_expand_call): Ditto for clobbered_registers array.
12101 (ix86_hard_regno_mode_ok): Ditto.
12102 (x86_extended_QIreg_mentioned_p): Ditto.
12103
b267bd41
R
121042009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
12105
6c6094f1 12106 PR tree-optimization/39349
1f3ad3f0
R
12107 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
12108
b267bd41
R
12109 * combine.c (gen_lowpart_for_combine): Use omode when generating
12110 clobber.
12111
1242bc9d
R
121122009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
12113
6c6094f1 12114 PR rtl-optimization/39235
1242bc9d
R
12115 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
12116
48f03606
ZD
121172009-03-04 Zdenek Dvorak <ook@ucw.cz>
12118
12119 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
12120
b505e785
RG
121212009-03-04 Richard Guenther <rguenther@suse.de>
12122
12123 PR tree-optimization/39362
12124 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
12125 that occur in abnormal PHIs should be varying.
12126
f017bf5e
ZD
121272009-03-04 Zdenek Dvorak <ook@ucw.cz>
12128
12129 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
12130 Extend comments.
12131 (simple_iv): Take loop as an argument instead of statement.
12132 * tree-scalar-evolution.h (simple_iv): Declaration changed.
12133 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
12134 to simple_iv.
12135 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
12136 Ditto.
12137 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
12138 * matrix-reorg.c (analyze_transpose): Ditto.
12139 * tree-data-ref.c (dr_analyze_innermost): Ditto.
12140 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
12141 * tree-predcom.c (ref_at_iteration): Ditto.
12142 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
12143
6a66f28e
RG
121442009-03-04 Richard Guenther <rguenther@suse.de>
12145
12146 PR tree-optimization/39358
12147 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
12148 escaped_id and callused_id.
12149 (solve_graph): Likewise.
12150
57e454ee
RG
121512009-03-04 Richard Guenther <rguenther@suse.de>
12152
12153 PR tree-optimization/39339
12154 * tree-sra.c (try_instantiate_multiple_fields): Make it
12155 no longer ICE on the above.
12156
a6fe9ed4
JM
121572009-03-03 Joseph Myers <joseph@codesourcery.com>
12158
12159 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
12160 that fits within Pmode.
12161
dc672951
SE
121622009-03-03 Steve Ellcey <sje@cup.hp.com>
12163
12164 PR middle-end/10109
12165 * tm.texi (LIBCALL_VALUE): Update description.
12166
8b9d598f
SE
121672009-03-03 Steve Ellcey <sje@cup.hp.com>
12168
12169 PR middle-end/34443
12170 * doc/extend.texi (section): Update description.
12171
13e4e36e
L
121722009-03-03 H.J. Lu <hongjiu.lu@intel.com>
12173
12174 PR middle-end/39345
12175 * tree-inline.c (remapped_type): New.
12176 (can_be_nonlocal): Call remapped_type instead of remap_type.
12177
067dd3c9
JJ
121782009-03-03 Jakub Jelinek <jakub@redhat.com>
12179
12180 PR fortran/39354
12181 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
12182 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
12183
9bd9f738
RG
121842009-03-03 Richard Guenther <rguenther@suse.de>
12185
12186 PR middle-end/39272
12187 * tree.c (tree_nonartificial_location): New function.
12188 * tree.h (tree_nonartificial_location): Declare.
12189 * builtins.c (expand_builtin_memory_chk): Provide location
12190 of the call location for artificial function pieces.
12191 (maybe_emit_chk_warning): Likewise.
12192 (maybe_emit_sprintf_chk_warning): Likewise.
12193 (maybe_emit_free_warning): Likewise.
12194 * expr.c (expand_expr_real_1): Likewise.
12195
f07049c8
JJ
121962009-03-03 Jakub Jelinek <jakub@redhat.com>
12197
12198 PR tree-optimization/39343
12199 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
12200 COMPONENT_REF t has ARRAY_TYPE.
12201
7d4fba4a
SP
122022009-03-02 Sebastian Pop <sebastian.pop@amd.com>
12203
12204 PR middle-end/39335
12205 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
12206 when the type precision of the induction variable should be
12207 larger than the type precision of nit.
12208 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
12209 * graphite.c (graphite_loop_normal_form): Same.
12210 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
12211
78168632
UB
122122009-03-02 Uros Bizjak <ubizjak@gmail.com>
12213
12214 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
12215 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 12216 numbers to describe clobbered registers.
78168632 12217 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
12218 * config/i386/mmx.md (mmx_emms): Ditto.
12219 (mmx_femms): Ditto.
78168632 12220
63553059
RS
122212009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
12222
12223 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
12224 of ABI_64.
12225
500a1f85
UW
122262009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12227
12228 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
12229 (spu_section_type_flags): New function.
12230
962aae34
UB
122312009-03-02 Uros Bizjak <ubizjak@gmail.com>
12232
12233 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
12234 reg_class_contents of FLOAT_REGS into a temporary.
12235
6dfb529c 122362009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 12237 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
12238
12239 PR tree-optimization/39318
12240 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
12241 information to the vectorized statement.
12242
6b5629db
UB
122432009-03-01 Uros Bizjak <ubizjak@gmail.com>
12244
434426d2
UB
12245 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
12246 variable. Use defined names instead of magic constants for REX SSE
12247 registers.
6b5629db 12248
14e5b285
RG
122492009-03-01 Richard Guenther <rguenther@suse.de>
12250
12251 PR tree-optimization/39331
12252 * omp-low.c (lower_send_shared_vars): Do not receive new
12253 values for the reference of DECL_BY_REFERENCE parms or results.
12254
526d73ab
JH
122552009-03-01 Jan Hubicka <jh@suse.cz>
12256
12257 PR debug/39267
12258 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
12259 BLOCK_NONLOCALIZED_VAR): New macros.
12260 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
12261 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
12262 gen_decl_die): Add origin argument. Allow generation of die with
12263 origin at hand only.
526d73ab 12264 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
12265 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
12266 of gen_*.
526d73ab
JH
12267 (gen_block_die): Fix checking for unused blocks.
12268 (process_scope_var): Break out from .... ; work with origins only.
12269 (decls_for_scope) ... here; process nonlocalized list.
12270 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
12271 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
12272 vars.
526d73ab
JH
12273 (dump_scope_block): Dump them.
12274 * tree-inline.c (remap_decls): Handle nonlocalized vars.
12275 (remap_block): Likewise.
12276 (can_be_nonlocal): New predicate.
12277 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
12278
7a9d3fe8
RW
122792009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12280
12281 * configure: Regenerate.
12282
b3cdf3cb
RW
122832009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12284
a16d1645 12285 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 12286 Reuse help texts for duplicate options which do not have any.
a16d1645 12287
1156c176
RW
12288 * gcc.c (display_help): Document --version.
12289
033505fc
RW
12290 * gcc.c (main): If print_help_list and verbose_flag, ensure
12291 driver output comes before subprocess output.
12292
4d077054
RW
12293 * optc-gen.awk: Assign all remaining fields to help string,
12294 space-separated, for multi-line help in *.opt.
12295
a072f1cf
RW
12296 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
12297 -Wno-pedantic-ms-format is for MinGW targets only.
12298
b3cdf3cb
RW
12299 * doc/options.texi (Option file format): Fix bad indentation,
12300 restoring dropped sentence.
12301
a3aadcc5
JH
123022009-02-28 Jan Hubicka <jh@suse.cz>
12303
12304 * tree-inline.c (tree_function_versioning): Output debug info.
12305
1cf5abb3
JH
123062009-02-28 Jan Hubicka <jh@suse.cz>
12307
12308 PR debug/39267
12309 * tree-inline.c (setup_one_parameter): Do not copy propagate
12310 arguments when not optimizing.
12311
c4d3f42f
L
123122009-02-28 H.J. Lu <hongjiu.lu@intel.com>
12313
12314 PR target/39327
12315 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12316 (avx_addsubv4df3): Likewise.
12317 (*avx_addsubv4sf3): Likewise.
12318 (sse3_addsubv4sf3): Likewise.
12319 (*avx_addsubv2df3): Likewise.
12320 (sse3_addsubv2df3): Likewise.
12321 (avx_unpckhps256): Correct item selectors.
12322 (avx_unpcklps256): Likewise.
12323 (avx_unpckhpd256): Likewise.
12324 (avx_unpcklpd256): Likewise.
12325
eb50f5f4
JH
123262009-02-28 Jan Hubicka <jh@suse.cz>
12327
12328 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
12329 static vars.
12330 (copy_arguments_for_versioning): If var is declared don't declare it.
12331 (tree_function_versioning): First setup substitutions and then copy
12332 args.
12333
26140130
JH
123342009-02-27 Jan Hubicka <jh@suse.cz>
12335
12336 PR debug/39267
12337 * cgraph.h (varpool_output_debug_info): Remove.
12338 * cgraphunit.c (varpool_output_debug_info): Remove.
12339 * dwarf2out.c (deferred_locations_struct): New struct
12340 (deferred_locations): New type.
12341 (deferred_locations_list): New static var.
12342 (deffer_location): New function.
12343 (gen_variable_die): Use it.
12344 (decls_for_scope): Output info on local static vars.
12345 (dwarf2out_finish): Process deferred locations.
12346 * varpool.c (varpool_output_debug_info): Remove.
12347
cff7525f
JH
123482009-02-27 Jan Hubicka <jh@suse.cz>
12349
12350 PR debug/39267
12351 * tree.h (TREE_PROTECTED): Fix comment.
12352 (BLOCK_HANDLER_BLOCK): Remove.
12353 (struct tree_block): Remove handler_block add body_block.
12354 (inlined_function_outer_scope_p): New.
12355 (is_body_block): Remove.
12356 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
12357 * dwarf2out.c (is_inlined_entry_point): Remove.
12358 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
12359 (gen_block_die): Use is_inlined_entry_point check. Remove body block
12360 code.
cff7525f
JH
12361 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
12362 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
12363 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
12364 block with multiple subblocks.
cff7525f
JH
12365 (dump_scope_block): Prettier output; dump more flags and info.
12366 (dump_scope_blocks): New.
12367 (remove_unused_locals): Use dump_scope_blocks.
12368 * tree-flow.h (dump_scope_blocks): Declare.
12369 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
12370 * stmt.c (is_body_block): Remove.
12371 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
12372 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
12373
c20993b9
SP
123742009-02-27 Sebastian Pop <sebastian.pop@amd.com>
12375
12376 PR middle-end/39308
2ba9daa7 12377 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
12378 number_of_iterations_exit from a gcc_assert.
12379
e3cba5e5
AK
123802009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12381
60839f5d 12382 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
12383 jumps if COND is NULL.
12384 (find_cond_jump): New function.
12385 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 12386 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 12387
9dadeeb8
UB
123882009-02-26 Uros Bizjak <ubizjak@gmail.com>
12389
12390 * config/alpha/alpha.h (alpha_expand_mov): Return false if
12391 force_const_mem returns NULL_RTX.
12392
625d3251
EB
123932009-02-26 Jan Hubicka <jh@suse.cz>
12394
12395 PR debug/39267
12396 * cgraph.h (varpool_output_debug_info): Remove.
12397 * cgraphunit.c (varpool_output_debug_info): Remove.
12398 * dwarf2out.c (deferred_locations_struct): New struct
12399 (deferred_locations): New type.
12400 (deferred_locations_list): New static var.
12401 (deffer_location): New function.
12402 (gen_variable_die): Use it.
12403 (decls_for_scope): Output info on local static vars.
12404 (dwarf2out_finish): Process deferred locations.
12405 * varpool.c (varpool_output_debug_info): Remove.
12406
38432148 124072009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
12408
12409 PR rtl-optimization/39241
12410 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
12411 to subreg_offset_representable_p.
12412
62d049cf
PB
124132009-02-25 Paolo Bonzini <bonzini@gnu.org>
12414
12415 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
12416 execute function prototype. Get f and nregs from max_reg_num
12417 and get_insns. Remove the first backward pass as it's dead,
12418 guard the forward pass by flag_expensive_optimizations.
12419 (rest_of_handle_regmove): Delete.
12420 (pass_regmove): Replace it with regmove_optimize.
12421
f618d33e
MJ
124222009-02-25 Martin Jambor <mjambor@suse.cz>
12423
12424 PR tree-optimization/39259
12425 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 12426 calls_alloca function flags.
f618d33e
MJ
12427 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
12428 calls are detected.
12429
c8a05f7c
PB
124302009-02-25 Paolo Bonzini <bonzini@gnu.org>
12431
12432 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
12433 flags_set_1_rtx, flags_set_1_set): Delete.
12434 (regmove_optimize): Do not call mark_flags_life_zones.
12435
6d2538f5
JB
124362009-02-24 Julian Brown <julian@codesourcery.com>
12437
12438 PR target/35965
12439 * config/arm/arm.c (require_pic_register): Only set
12440 cfun->machine->pic_reg once per function.
12441
a2fa6772
SL
124422009-02-24 Sandra Loosemore <sandra@codesourcery.com>
12443
12444 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 12445 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 12446
5472de36
SE
124472009-02-24 Steve Ellcey <sje@cup.hp.com>
12448
12449 PR target/33785
12450 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
12451
844216f3
RG
124522009-02-24 Richard Guenther <rguenther@suse.de>
12453
12454 PR debug/39285
12455 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
12456
71adbef3 124572009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 12458 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
12459
12460 PR tree-optimization/39233
12461 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
12462 from converting them to a generic type.
12463
f1a558e0
SP
124642009-02-23 Sebastian Pop <sebastian.pop@amd.com>
12465
12466 PR tree-optimization/39260
12467 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
12468 contains a condition with a real type.
12469 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
12470
d8028f2c
JM
124712009-02-23 Jason Merrill <jason@redhat.com>
12472
12473 PR c++/38880
12474 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
12475 narrowing_initializer_constant_valid_p.
2ba9daa7 12476 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
12477 null_pointer_node for adding a pointer to itself.
12478
9283b513
JH
124792009-02-23 Jan Hubicka <jh@suse.cz>
12480
12481 PR c/12245
9dadeeb8
UB
12482 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
12483 resizing.
9283b513 12484
61e04322
JH
124852009-02-23 Jan Hubicka <jh@suse.cz>
12486
9dadeeb8
UB
12487 PR tree-optimization/37709
12488 * tree.c (block_ultimate_origin): Move here from dwarf2out.
12489 * tree.h (block_ultimate_origin): Declare.
12490 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
12491 * tree-ssa-live.c (remove_unused_scope_block_p):
12492 Eliminate blocks containig no instructions nor live variables nor
12493 nested blocks.
12494 (dump_scope_block): New function.
12495 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 12496 enable dumping at TDF_DETAILS.
61e04322 12497
38432148 124982009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
12499
12500 * config/i386/i386.c (classify_argument): Don't allow COImode
12501 and OImode.
12502 (function_arg_advance_32): Don't allow OImode.
12503 (function_arg_32): Likewise.
12504 (function_value_32): Likewise.
12505 (return_in_memory_32): Likewise.
12506 (function_arg_64): Remove OImode comment.
12507
38432148 125082009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
12509
12510 PR target/39261
12511 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
12512 ix86_expand_vector_set for V4DImode in 64bit mode only.
12513 (ix86_expand_vector_init_one_var): Likewise.
12514
dcd739a6
SP
125152009-02-21 Sebastian Pop <sebastian.pop@amd.com>
12516
12517 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
12518
6c3b938d
RS
125192009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12520
8e361f23 12521 PR bootstrap/39257
6c3b938d
RS
12522 * loop-iv.c: Revert last change.
12523 * emit-rtl.c: Likewise.
12524
38432148 125252009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
12526
12527 PR target/39256
12528 * config/i386/i386.c (type_natural_mode): Remove an extra
12529 space in the warning message.
12530 (function_value_32): Handle 32-byte vector modes.
12531 (return_in_memory_32): Likewise.
12532
2ec62529
RS
125332009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12534
12535 * loop-iv.c (truncate_value): New function.
12536 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
12537 of lowpart_subreg.
12538 (lowpart_subreg): Move to...
12539 * emit-rtl.c: ...here.
12540
ecb8c3cc 125412009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 12542
ecb8c3cc
DS
12543 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
12544 accidental and undocumented change at revision 140860.
12545
ae46a823
JM
125462009-02-21 Joseph Myers <joseph@codesourcery.com>
12547
12548 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
12549 take gimple_seq * arguments.
12550 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
12551 types_compatible_p langhook.
12552
07d8efe3 125532009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 12554 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
12555
12556 * config/arm/arm.c (arm_builtin_va_list): New function.
12557 (arm_expand_builtin_va_start): Likewise.
12558 (arm_gimplify_va_arg_expr): Likewise.
12559 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
12560 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
12561 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
12562 (va_list_type): New variable.
12563 (arm_mangle_type): Mangle va_list_type appropriately.
12564
b1fb9f56
JJ
125652009-02-20 Jakub Jelinek <jakub@redhat.com>
12566
12567 PR middle-end/39157
12568 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
12569 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
12570 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
12571 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
12572 parameter to 1000 for -O1 by default.
12573 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
12574 parameter.
12575 * loop-invariant.c: Include params.h.
12576 (move_loop_invariants): Don't call move_single_loop_invariants on
12577 very large loops.
12578
5bc0807c
JM
125792009-02-20 Jaka Mocnik <jaka@xlab.si>
12580
12581 * calls.c (emit_library_call_value_1): Use slot_offset instead of
12582 offset when calculating bounds for indexing stack_usage_map. Fixes
12583 a buffer overflow with certain target setups.
12584
c69cd1f5
JJ
125852009-02-20 Jakub Jelinek <jakub@redhat.com>
12586
12587 PR target/39240
12588 * calls.c (expand_call): Clear try_tail_call if caller and callee
12589 disagree in promotion of function return value.
12590
09812622
JJ
125912009-02-19 Jakub Jelinek <jakub@redhat.com>
12592
12593 PR target/39175
12594 * c-common.c (c_determine_visibility): If visibility changed and
12595 DECL_RTL has been already set, call make_decl_rtl to update symbol
12596 flags.
12597
68017cb4
L
125982009-02-19 H.J. Lu <hongjiu.lu@intel.com>
12599
12600 PR c++/39188
12601 * varasm.c (assemble_variable): Don't check DECL_NAME when
12602 globalizing a variable.
12603
ab4194da
JM
126042009-02-19 Joseph Myers <joseph@codesourcery.com>
12605
12606 PR c/38483
12607 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
12608 expression before any __builtin_trap call.
12609 * c-typeck.c (build_function_call): Convert and check function
12610 arguments before generating a call to a trap. Evaluate the
12611 function arguments before the trap.
12612
6b67572e
UB
126132009-02-19 Uros Bizjak <ubizjak@gmail.com>
12614
12615 PR target/39228
12616 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
12617 (UNSPEC_FXAM_MEM): New unspec.
12618 (fxam<mode>2_i387_with_temp): New insn and split pattern.
12619 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
12620 memory using fxam<mode>2_i387_with_temp to remove excess precision.
12621
9e39dba6
RG
126222009-02-19 Richard Guenther <rguenther@suse.de>
12623
12624 PR tree-optimization/39207
12625 PR tree-optimization/39074
12626 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
12627 storedanything_tree): New.
12628 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 12629 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
12630 (build_succ_graph): Add edges from STOREDANYTHING to all
12631 non-direct nodes.
12632 (init_base_vars): Initialize STOREDANYTHING.
12633 (compute_points_to_sets): Free substitution info after
12634 building the succ graph.
12635 (ipa_pta_execute): Likewise.
12636
12637 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
12638 field.
12639 (do_ds_constraint): Do not add to special var or non-pointer
12640 field solutions.
12641 (type_could_have_pointers): Split out from ...
12642 (could_have_pointers): ... here. For arrays use the element type.
12643 (create_variable_info_for): Initialize may_have_pointers.
12644 (new_var_info): Likewise.
12645 (handle_lhs_call): Make the HEAP variable unknown-sized.
12646 (intra_create_variable_infos): Use a type with pointers for
12647 PARM_NOALIAS, make it unknown-sized.
12648
fd7b2603
L
126492009-02-18 H.J. Lu <hongjiu.lu@intel.com>
12650
12651 PR target/39224
6b67572e 12652 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 12653
98b80692
JM
126542009-02-18 Jason Merrill <jason@redhat.com>
12655
12656 PR target/39179
12657 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
12658 value if DECL_EXTERNAL.
12659 * tree-sra.c (sra_walk_gimple_assign): Likewise.
12660 * target.h (gcc_target::binds_local_p): Clarify "module".
12661 * tree.h (TREE_PUBLIC): Clarify "module".
12662
0705d3f4
L
126632009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
12664
12665 PR target/38891
12666 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
12667 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
12668
bce08d50
L
126692009-02-17 H.J. Lu <hongjiu.lu@intel.com>
12670
12671 PR target/39082
12672 * c.opt (Wabi): Support C and ObjC.
12673 (Wpsabi): New.
12674
12675 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
12676
12677 * config/i386/i386.c (classify_argument): Warn once about the ABI
12678 change when passing union with long double.
12679
12680 * doc/invoke.texi: Update -Wabi for warning psABI changes.
12681
5600f233
JM
126822009-02-18 Joseph Myers <joseph@codesourcery.com>
12683
12684 PR c/35447
12685 * c-parser.c (c_parser_compound_statement): Always enter and leave
12686 a scope.
12687
8cd01fe6
JDA
126882009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12689
12690 PR target/34587
12691 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
12692
418df9d7
JJ
126932009-02-18 Jakub Jelinek <jakub@redhat.com>
12694
12695 PR tree-optimization/36922
12696 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
12697 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
12698 Likewise.
12699
082d2ebb
RS
127002009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12701
12702 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
12703 to 0 for EABI64.
12704
17de576c
RS
127052009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12706
12707 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
12708
6d8d5435
RS
127092009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12710
12711 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
12712 tree sharing.
12713
e69ff910
RB
127142009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
12715 Richard Sandiford <rdsandiford@googlemail.com>
12716
12717 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
12718 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
12719 (loongson_biadd): ...this.
12720
6b24ee26
RG
127212009-02-17 Richard Guenther <rguenther@suse.de>
12722
12723 PR tree-optimization/39202
12724 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
12725 a var make sure to follow existing collapses.
12726
91ab2c86
RG
127272009-02-17 Richard Guenther <rguenther@suse.de>
12728
12729 PR middle-end/39214
12730 * langhooks.c (lhd_print_error_function): Check for NULL block.
12731
73a63870
RG
127322009-02-17 Richard Guenther <rguenther@suse.de>
12733
12734 PR tree-optimization/39204
12735 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
12736 of the PHI arg.
12737
0e08f686
UB
127382009-02-17 Uros Bizjak <ubizjak@gmail.com>
12739
12740 * config/soft-fp/double.h: Update from glibc CVS.
12741
a60b7ddb
RG
127422009-02-17 Richard Guenther <rguenther@suse.de>
12743
12744 PR tree-optimization/39207
12745 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
12746 strict-aliasing warnings for pointers pointing to NULL.
12747
a47e20fd
JM
127482009-02-16 Joseph Myers <joseph@codesourcery.com>
12749
12750 PR c/35446
12751 * c-parser.c (c_parser_braced_init): Call pop_init_level when
12752 skipping until next close brace.
12753
50aab7dc
L
127542009-02-16 H.J. Lu <hongjiu.lu@intel.com>
12755
12756 PR target/37049
12757 * config/i386/i386.c (ix86_expand_push): Set memory alignment
12758 to function argument boundary.
12759
68e53db0
HS
127602009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
12761
12762 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
12763 in the lea_add. Reload eventually constraints it properly.
0d50d55a 12764 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
12765 "b", since it is not needed anymore.
12766
09e361bb
JJ
127672009-02-16 Jakub Jelinek <jakub@redhat.com>
12768
12769 * gthr-dce.h: Uglify function parameter and local variable names.
12770 * gthr-gnat.h: Likewise.
12771 * gthr-mipssde.h: Likewise.
12772 * gthr-nks.h: Likewise.
12773 * gthr-posix95.h: Likewise.
12774 * gthr-posix.h: Likewise.
12775 * gthr-rtems.h: Likewise.
12776 * gthr-single.h: Likewise.
12777 * gthr-solaris.h: Likewise.
12778 * gthr-tpf.h: Likewise.
12779 * gthr-vxworks.h: Likewise.
12780 * gthr-win32.h: Likewise.
12781
47f5a48f
L
127822009-02-15 H.J. Lu <hongjiu.lu@intel.com>
12783
12784 PR target/39196
12785 * config/i386/i386.md: Restrict the new peephole2 to move
12786 between MMX/SSE registers.
12787
68c9ab45
RG
127882009-02-15 Richard Guenther <rguenther@suse.de>
12789
12790 Revert
12791 2009-02-13 Richard Guenther <rguenther@suse.de>
12792
12793 * configure.ac: Enable LFS.
12794 * configure: Re-generate.
12795 * config.in: Likewise.
12796
d7815554
UW
127972009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12798
12799 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
12800 spu_srqwbyte, spu_srqwbytebc): Define.
12801 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
12802 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
12803 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
12804 "shrqby_<mode>"): New insn-and-split patterns.
12805 * config/spu/spu.c (expand_builtin_args): Determine and return
12806 number of operands using spu_builtin_description data.
12807 (spu_expand_builtin_1): Use it.
12808
c208436c
SE
128092009-02-13 Steve Ellcey <sje@cup.hp.com>
12810
12811 PR target/38056
12812 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12813 TARGET_CONST_GP.
12814
c2e7ba7e
L
128152009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12816
12817 PR target/39149
12818 * config/i386/i386.c (override_options): Correct warning
6c6094f1 12819 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 12820
72f4e3a7
L
128212009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12822
12823 PR target/39152
12824 * config/i386/i386.md: Restrict the new peephole2 to move
12825 between the general purpose registers.
12826
53f648e2
L
128272009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12828
12829 PR target/39162
12830 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 12831 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
12832 (function_arg_advance): Updated.
12833 (function_arg): Likewise.
12834 (ix86_function_value): Likewise.
12835 (ix86_return_in_memory): Likewise.
12836 (ix86_sol10_return_in_memory): Likewise.
12837 (ix86_gimplify_va_arg): Likewise.
12838 (function_arg_32): Don't warn ABX ABI change here.
12839 (function_arg_64): Likewise.
12840
38432148 128412009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
12842
12843 * loop-iv.c (implies_p): In the final case, test that operands 0
12844 of the two comparisons match.
12845
dd2139e7
BS
12846 * config/bfin/bfin.c (find_prev_insn_start): New function.
12847 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12848 (find_next_insn_start): Move.
12849
601b3e1a
RG
128502009-02-13 Richard Guenther <rguenther@suse.de>
12851
12852 * configure.ac: Enable LFS.
12853 * configure: Re-generate.
12854 * config.in: Likewise.
12855
f007042e
JM
128562009-02-13 Joseph Myers <joseph@codesourcery.com>
12857
12858 PR c/35444
12859 * c-parser.c (c_parser_parms_list_declarator): Discard pending
12860 sizes on syntax error after some arguments have been parsed.
12861
3f238e8b
JJ
128622009-02-12 Jakub Jelinek <jakub@redhat.com>
12863
12864 * doc/invoke.texi (-fira): Remove.
12865
328e13b7
L
128662009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12867
12868 * caller-save.c: Replace regclass.c with reginfo.c in comments.
12869 * recog.c: Likewise.
12870 * rtl.h: Likewise.
12871
c252db20
L
128722009-02-12 Uros Bizjak <ubizjak@gmail.com>
12873
12874 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12875 (umul_ppmm): Likewise.
12876 (count_leading_zeros): Likewise.
12877 (count_trailing_zeros): Likewise.
12878 (UMUL_TIME): Likewise.
12879
128802009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12881
ba181049
UB
12882 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12883 soft-fp/t-softfp to tmake_file.
c252db20
L
12884
12885 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
12886 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12887 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12888 IA64_BUILTIN_INFQ]: New.
c252db20
L
12889 (ia64_init_builtins): Initialize __builtin_infq,
12890 __builtin_fabsq and __builtin_copysignq if not HPUX.
12891 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12892 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12893
12894 * config/ia64/lib1funcs.asm (__divtf3): Define only if
12895 SHARED is defined.
12896 (__fixtfti): Likewise.
12897 (__fixunstfti): Likewise.
12898 (__floattitf): Likewise.
12899
12900 * config/ia64/libgcc-glibc.ver: New.
12901 * config/ia64/t-fprules-softfp: Likewise.
12902 * config/ia64/sfp-machine.h: Likewise.
12903
12904 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12905 (LIBGCC2_TF_CEXT): Likewise.
12906 (TF_SIZE): Likewise.
12907 (TARGET_INIT_LIBFUNCS): Likewise.
12908
ba181049 12909 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 12910 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 12911
f13eae6a
L
129122009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12913
12914 * config/i386/i386.c (construct_container): Rewrite processing
12915 BLKmode with X86_64_SSE_CLASS.
12916
12019aec
L
129172009-02-12 Paolo Bonzini <bonzini@gnu.org>
12918
12919 PR target/39152
12920 * config/i386/i386.md: Replace simplify_replace_rtx with
12921 replace_rtx in the new peephole2.
12922
28c11eb3
NS
129232009-02-12 Nathan Sidwell <nathan@codesourcery.com>
12924
12925 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12926 loop unrolling do not happen at -O2.
12927
c7b94907
MM
129282009-02-12 Michael Matz <matz@suse.de>
12929
12930 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12931
61e98967
JJ
129322009-02-12 Jakub Jelinek <jakub@redhat.com>
12933
12934 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12935 for -g3.
12936
a2a237b5
BE
129372009-02-12 Ben Elliston <bje@au.ibm.com>
12938
12939 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12940 patterns when updating the back chain. Missed in the 2009-02-10
12941 change.
12942
853eda8d
JJ
129432009-02-11 Janis Johnson <janis187@us.ibm.com>
12944
12945 * doc/extend.texi (Decimal Floating Types): Update identifier of
12946 draft TR and list of missing support.
12947
3ad6b266
JJ
129482009-02-11 Jakub Jelinek <jakub@redhat.com>
12949
12950 PR middle-end/39154
12951 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12952 bit to variable length decl's flags, add it also to its
12953 pointer replacement variable.
12954
b058b753
UB
129552009-02-11 Uros Bizjak <ubizjak@gmail.com>
12956 Jakub Jelinek <jakub@redhat.com>
12957
12958 PR target/39118
12959 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12960 (memory_blockage): New expander.
12961 (*memory_blockage): New insn pattern.
12962 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12963 instead of general blockage at the end of function prologue when
12964 frame pointer is used to access red zone area. Do not emit blockage
12965 when profiling, it is emitted in generic code.
12966 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12967 function epilogue when frame pointer is used to access red zone area.
12968
bab64f23
PB
129692009-02-11 Paolo Bonzini <bonzini@gnu.org>
12970
0ce6dcfa 12971 PR target/38824
bab64f23
PB
12972 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12973 by arithmetic with memory operands.
12974 * config/i386/predicates.md (commutative_operator): New.
12975
8fd94bda
JJ
129762009-02-10 Janis Johnson <janis187@us.ibm.com>
12977
12978 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12979 bulleted lists.
12980
794511d2
EB
129812009-02-10 Eric Botcazou <ebotcazou@adacore.com>
12982
12983 * alias.h (record_alias_subset): Declare.
12984 * alias.c (record_alias_subset): Make global.
12985
6da7fc87
NC
129862009-02-10 Nick Clifton <nickc@redhat.com>
12987
12988 * tree-parloops.c: Change license to GPLv3.
12989 * ipa-struct-reorg.c: Change license to GPLv3.
12990 * ipa-struct-reorg.h: Change license to GPLv3.
12991
a03813c8
SE
129922009-02-10 Steve Ellcey <sje@cup.hp.com>
12993
12994 PR c/39084
12995 * c-decl.c (start_struct): Return NULL on error.
12996
fc3103e7
JJ
129972009-02-10 Jakub Jelinek <jakub@redhat.com>
12998
9b43d37b
JJ
12999 PR middle-end/39124
13000 * cfgloopmanip.c (remove_path): Call remove_bbs after
13001 cancel_loop_tree, not before it.
13002
fc3103e7 13003 PR target/39139
b058b753 13004 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
13005 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
13006 VAR_DECLs were seen.
13007 * tree-ssa-live.c (remove_unused_locals): Recompute
13008 cfun->has_local_explicit_reg_vars.
13009 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
13010 copies or clearings if cfun->has_local_explicit_reg_vars.
13011
dbf9ee15
UB
130122009-02-10 Uros Bizjak <ubizjak@gmail.com>
13013
13014 PR target/39118
13015 * config/i386/i386.c (expand_prologue): Emit blockage at the end
13016 of function prologue when frame pointer is used to access
13017 red zone area.
13018
bdec4dc7
RG
130192009-02-10 Richard Guenther <rguenther@suse.de>
13020
13021 PR middle-end/39127
13022 * gimplify.c (gimple_regimplify_operands): Always look if
13023 we need to create a temporary.
13024
7cae94fc
RG
130252009-02-10 Richard Guenther <rguenther@suse.de>
13026
13027 PR tree-optimization/39132
13028 * tree-loop-distribution.c (todo): New global var.
13029 (generate_memset_zero): Trigger TODO_rebuild_alias.
13030 (tree_loop_distribution): Return todo.
13031
a8800687
L
130322009-02-10 H.J. Lu <hongjiu.lu@intel.com>
13033
13034 PR target/39119
13035 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
13036 (x86_64_reg_class_name): Removed.
13037 (classify_argument): Return 0 if bytes > 32. Return 0 if the
13038 first one isn't X86_64_SSE_CLASS or any other ones aren't
13039 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
13040 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
13041 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
13042 and 3 X86_64_SSEUP_CLASS.
13043 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
13044 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
13045
d4bacef0
BE
130462009-02-10 Ben Elliston <bje@au.ibm.com>
13047
13048 * config/rs6000/rs6000.md (allocate_stack): Always use an update
13049 form instruction to update the stack back chain word, even if the
13050 user has disabled the generation of update instructions.
13051 (movdi_<mode>_update_stack): New.
13052 (movsi_update_stack): Likewise.
13053 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
13054 always use an update form instruction to update the stack back
13055 chain word.
13056
01d7d2f3
SP
130572009-02-09 Sebastian Pop <sebastian.pop@amd.com>
13058
13059 PR middle-end/38953
b058b753
UB
13060 * graphite.c (if_region_set_false_region): After moving a region in
13061 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
13062 (gloog): Remove wrong fix for PR38953.
13063
e41e2ab4
UW
130642009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13065
13066 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
13067 generation due to implicit sign extension.
13068
4bb07c5d
EB
130692009-02-09 Eric Botcazou <ebotcazou@adacore.com>
13070
13071 PR middle-end/38981
13072 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
13073 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
13074
f060a261
RG
130752009-02-09 Richard Guenther <rguenther@suse.de>
13076
13077 PR middle-end/35202
13078 * convert.c (convert_to_real): Disable (float)fn((double)x)
13079 to fnf(x) conversion if errno differences may occur and
13080 -fmath-errno is set.
13081
5a7e237c
AS
130822009-02-07 Anatoly Sokolov <aesok@post.ru>
13083
13084 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
13085 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13086 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13087
feab5a67
JM
130882009-02-06 Joseph Myers <joseph@codesourcery.com>
13089
13090 PR c/35434
13091 * c-common.c (handle_alias_attribute): Disallow attribute for
13092 anything not a FUNCTION_DECL or VAR_DECL.
13093
90ef2296
JJ
130942009-02-06 Janis Johnson <janis187@us.ibm.com>
13095
13096 PR c/39035
13097 * real.c (do_compare): Special-case compare of zero against
13098 decimal float value.
13099
1de2c900
JM
131002009-02-06 Joseph Myers <joseph@codesourcery.com>
13101
13102 PR c/36432
13103 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
13104 as indicating flexible array members unless the field itself is
13105 being declarared as the incomplete array.
13106
e901811a
JH
131072009-02-06 Jan Hubicka <jh@suse.cz>
13108
13109 PR tree-optimization/38844
13110 * ipa-inline.c (try_inline): Stop inlining recursion when edge
13111 is already inlined.
13112
3cfa762b
RG
131132009-02-06 Richard Guenther <rguenther@suse.de>
13114
13115 PR middle-end/38977
13116 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
13117 fork because we may expand it as __gcov_fork.
13118
8506528c
NC
131192009-02-06 Nick Clifton <nickc@redhat.com>
13120
dbf9ee15 13121 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 13122
85169114
PB
131232009-02-06 Paolo Bonzini <bonzini@gnu.org>
13124
13125 PR tree-optimization/35659
13126 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
13127 vn_phi_eq): Shortcut if hashcode does not match.
13128 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
13129 NULL operands.
13130 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
13131 and avoid iterative_hash_expr.
13132 (FOR_EACH_VALUE_ID_IN_SET): New.
13133 (value_id_compare): Remove.
13134 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
13135 sort expressions by value id.
13136
6d39673d
KK
131372009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
13138
13139 PR target/38991
13140 * config/sh/predicates.md (general_movsrc_operand): Don't check
13141 the subreg of system registers here.
13142
e6e1c050
JJ
131432009-02-05 Jakub Jelinek <jakub@redhat.com>
13144
13145 PR c++/39106
13146 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
13147 on the copied decl.
13148
65a74b5d
PB
131492009-02-05 Paolo Bonzini <bonzini@gnu.org>
13150
13151 PR rtl-optimization/39110
13152 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
13153 addresses, not aligned ones.
13154
08e14b2a
DB
131552009-02-05 Daniel Berlin <dberlin@dberlin.org>
13156 Richard Guenther <rguenther@suse.de>
13157
13158 PR tree-optimization/39100
13159 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
13160 comment says and add edges.
13161
5006381c
JM
131622009-02-05 Joseph Myers <joseph@codesourcery.com>
13163
13164 PR c/35435
13165 * c-common.c (handle_tls_model_attribute): Ignore attribute for
13166 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
13167
2ba9daa7 131682009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
13169
13170 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
13171 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
13172 register_bb_in_sese, new_sese, free_sese): Moved.
13173 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
13174 outermost_loop_in_scop, build_scop_iteration_domain,
13175 expand_scalar_variables_ssa_name, get_vdef_before_scop,
13176 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
13177 Use loop_in_sese_p instead of loop_in_scop_p.
13178 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
13179 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
13180 (scopdet_basic_block_info): Fix bug in scop detection.
13181 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
13182 eq_loop_to_cloog_loop): Remove.
13183 (nb_loops_around_loop_in_scop, nb_loop
13184 ref_nb_loops): Moved here...
13185 * graphite.h (ref_nb_loops): ... from here.
13186 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
13187 (loop_domain_dim, loop_iteration_vector_dim): Remove.
13188 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
13189 * testsuite/gcc.dg/graphite/scop-19.c: New
13190
48e8382e
PB
131912009-02-04 Paolo Bonzini <bonzini@gnu.org>
13192 Hans-Peter Nilsson <hp@axis.com>
13193
13194 PR rtl-optimization/37889
13195 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
13196 Move offset handling from PLUS to before the switch. Use new
13197 arguments when considering SYMBOL_REFs too.
13198 (rtx_addr_can_trap_p): Pass dummy offset and size.
13199 (enum may_trap_p_flags): Remove.
13200 (may_trap_p_1): Pass size from MEM_SIZE.
13201
13202 PR rtl-optimization/38921
13203 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
13204 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
13205 * rtlanal.c (may_trap_after_code_motion_p): Delete.
13206 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
13207
69349ea5
L
132082009-02-04 H.J. Lu <hongjiu.lu@intel.com>
13209
13210 AVX Programming Reference (January, 2009)
13211 * config/i386/sse.md (*vpclmulqdq): New.
13212
b545e411
JJ
132132009-02-04 Jakub Jelinek <jakub@redhat.com>
13214
13215 PR tree-optimization/38977
13216 PR gcov-profile/38292
bf9b2cc9 13217 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 13218
5b43bf05
HS
132192009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
13220
13221 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
13222 non-indexable addresses even before reload.
13223
062c4bb3
JM
132242009-02-03 Joseph Myers <joseph@codesourcery.com>
13225
13226 PR c/29129
13227 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
13228 as having variable size. Do not give an error for unnamed
13229 parameters with [*] declarators. Give a warning for type names
13230 with [*] declarators and mark them as variable size.
13231 * c-parser.c (c_parser_sizeof_expression): Do not give an error
13232 for sizeof applied to [*] type names.
13233
6175f578
AP
132342009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
13235
13236 PR C++/36607
13237 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
13238
d4f4bc84
JJ
132392009-02-03 Jakub Jelinek <jakub@redhat.com>
13240
13241 * gcc.c (process_command): Update copyright notice dates.
13242 * gcov.c (print_version): Likewise.
13243 * gcov-dump.c (print_version): Likewise.
13244 * mips-tfile.c (main): Likewise.
13245 * mips-tdump.c (main): Likewise.
13246
f6294de7
JM
132472009-02-03 Joseph Myers <joseph@codesourcery.com>
13248
13249 PR c/35433
13250 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
13251 for composite type involving a zero-length array type.
13252
754ccf7c
JJ
132532009-02-03 Jakub Jelinek <jakub@redhat.com>
13254
70f16287
JJ
13255 PR target/35318
13256 * function.c (match_asm_constraints_1): Skip over
13257 initial optional % in the constraint.
13258
754ccf7c
JJ
13259 PR inline-asm/39059
13260 * c-parser.c (c_parser_postfix_expression): If fixed point is not
13261 supported, don't accept FIXED_CSTs.
13262 * c-decl.c (finish_declspecs): Error if fixed point is not supported
13263 and _Sat is used without _Fract/_Accum. Set specs->type to
13264 integer_type_node for cts_fract/cts_accum if fixed point is not
13265 supported.
13266
965fdadf
CM
132672009-02-02 Catherine Moore <clm@codesourcery.com>
13268
dbf9ee15 13269 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 13270
2e8a796f
RS
132712009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13272
13273 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
13274 (ABI_HAS_64BIT_SYMBOLS): Use it.
13275 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
13276
e0079468
PB
132772009-02-02 Paul Brook <paul@codesourcery.com>
13278
13279 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
13280
eca72963
JJ
132812009-02-02 Jakub Jelinek <jakub@redhat.com>
13282
13283 PR inline-asm/39058
13284 * recog.h (asm_operand_ok): Add constraints argument.
13285 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
13286 recurse on matching constraint.
13287 (check_asm_operands): Pass constraints as 3rd argument to
13288 asm_operand_ok. Don't look up matching constraint here.
13289 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
13290 to asm_operand_ok.
13291
b5bde9ff
BE
132922009-02-02 Ben Elliston <bje@au.ibm.com>
13293
13294 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
13295 TARGET_NARROW_VOLATILE_BITFIELD macro names.
13296
30f3e427
JDA
132972009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13298
be7659ba
JDA
13299 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
13300 information. Remove some obsolete information. Reorganize.
13301
30f3e427
JDA
13302 * config/pa/fptr.c: Revert license to GPL 2.
13303 * config/pa/milli64.S: Likewise.
13304
3cbfaf98
DK
133052009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13306
13307 PR target/38904
13308 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
13309 LIBRARY name in, instead of hard-coding it.
13310 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
13311 extra target make frag to tmake_files according to EH model.
13312 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13313 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
13314 frags that define makefile variable EH_MODEL appropriately.
13315 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
13316 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
13317 to "-sjlj" according to type of EH configured.
13318 (LIBGCC_SONAME): Concatenate it to shared library base name.
13319 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
13320 to "_sjlj" according to type of EH configured.
13321 (LIBGCC_SONAME): Concatenate it to shared library base name.
13322 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
13323 (SHLIB_LINK): Add missing semicolon to if-else construct.
13324 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13325 string value of "pe_dll" command-line option.
13326 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
13327 (SHLIB_SONAME): Use it when overriding t-cygming default.
13328 (SHLIB_IMPLIB): Override t-cygming default.
13329 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13330 string value of "pe_dll" command-line option.
13331
8d0b6068
DK
133322009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13333
13334 PR target/38952
13335 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 13336 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 13337
14c28276
RG
133382009-01-31 Richard Guenther <rguenther@suse.de>
13339
13340 PR tree-optimization/38937
13341 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
13342 computing the transitive closure.
13343
5f4d82c2
RG
133442009-01-30 Richard Guenther <rguenther@suse.de>
13345
13346 PR tree-optimization/39041
13347 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
13348 Propagate variable indices only if the types match for this stmt.
13349
d0728ae0
JJ
133502009-01-30 Jakub Jelinek <jakub@redhat.com>
13351
13352 PR target/39013
13353 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
13354 inline but never defined.
13355
6b67572e 133562009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
13357
13358 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
13359 (*insv_h_di_reg_extimm): New insn.
13360 (*insv_l<mode>_reg_extimm): New insn.
13361
133622009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
13363
13364 * config/picochip/picochip.c (flag_conserve_stack): set
13365 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
13366 fconserve-stack. Reduce call-overhead used by inliner.
13367
9fec758d 133682009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
13369
13370 PR/38157
13371 * common.opt (flag_conserve_stack): Initialised to zero.
13372
7f1c539c
KT
133732009-01-30 Kai Tietz <kai.tietz@onevision.com>
13374
13375 PR/39002
13376 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
13377 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
13378 method.
13379
3631be48
L
133802009-01-29 H.J. Lu <hongjiu.lu@intel.com>
13381
13382 * ira-color.c (allocno_reload_assign): Update comments.
13383 * regmove.c (regmove_optimize): Likewise.
13384
13385 * ra.h: Removed.
13386
416ac4d4
RM
133872009-01-29 Robert Millan <rmh@aybabtu.com>
13388
60839f5d
EB
13389 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
13390 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 13391 `MD_UNWIND_SUPPORT'.
60839f5d 13392 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 13393
d5e54bc1
KH
133942009-01-29 Kazu Hirata <kazu@codesourcery.com>
13395
13396 PR tree-optimization/39007
13397 * tree-loop-distribution.c (generate_builtin): Use
13398 recompute_dominator to compute the immediate dominator of the
13399 basic block just after the loop.
13400
38432148 134012009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
13402
13403 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
13404 (ASM_OUTPUT_DWARF_PCREL): Define.
13405
38432148 134062009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
13407
13408 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
13409 * doc/passes.texi: Remove entries about regclass, local-alloc, and
13410 global. Modify entries about regmove and IRA.
13411
13412 * ra-conflict.c: Remove the file.
13413
13414 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
13415
13416 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
13417 (pass_regclass_init): Rename to pass_reginfo_init.
13418
13419 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
13420
13421 * toplev.h (flag_ira): Remove.
13422
13423 * caller-save.c (setup_save_areas): Remove flag_ira.
13424
bf9b2cc9 13425 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
13426
13427 * global.c: Remove the file.
13428
ba20e309 13429 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
13430
13431 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
13432
13433 * regmove.c: Modify file description.
13434 (find_use_as_address, try_auto_increment): Define them only if
13435 AUTO_INC_DEC is defined.
13436 (replacement_quality, replace_in_call_usage, fixup_match_1,
13437 stable_and_no_regs_but_for_p): Remove.
13438 (reg_set_in_bb): Make it static.
13439 (regmove_optimize): Remove flag_ira and code which worked for
13440 !flag_ira.
13441
13442 * local-alloc.c: Remove the file.
13443
13444 * common.opt (fira): Remove.
13445
13446 * ira.c: Include except.h.
13447 (eliminable_regset): Move from global.c.
13448 (mark_elimination): Ditto. Remove flag_ira.
13449 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
13450 equiv_mem_modified, validate_equiv_mem_from_store,
13451 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
13452 contains_replace_regs, memref_referenced_p, memref_used_between_p,
13453 no_equiv, recorded_label_ref): Move from local-alloc.c.
13454 (update_equiv_regs): Ditto. Make it static.
13455 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 13456 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
13457 (build_insn_chain): Ditto. Make it static.
13458 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
13459 Rename to init_live_subregs.
13460 (gate_ira): Remove flag_ira.
13461
13462 * regclass.c: Rename reginfo.c. Change file description.
13463 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 13464 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
13465 (init_reg_sets_1): Remove code for evaluation of
13466 reg_class_superclasses and losing_caller_save_reg_set.
13467 (init_regs): Remove init_reg_autoinc.
13468 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
13469 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 13470 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
13471 (pass_regclass_init): Rename to pass_reginfo_init. Modify
13472 corresponding entries.
13473 (dump_regclass, record_operand_costs, scan_one_insn,
13474 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
13475 record_address_regs, auto_inc_dec_reg_p): Remove.
13476 (gt-regclass.h): Rename to gt-reginfo.h.
13477
13478 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 13479 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
13480
13481 * Makefile.in (RA_H): Remove.
13482 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
13483 Rename regclass.o to reginfo.o.
13484 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
13485 gt-reginfo.h.
13486 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
13487 (GTFILES): Rename regclass.c to reginfo.c.
13488
13489 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 13490 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
13491
13492 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13493 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
13494 Remove flag_ira.
6b67572e 13495 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 13496
c95b2534 134972009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
13498
13499 PR middle-end/35854
13500 * doc/invoke.texi (rtl debug options): Complete rewrite.
13501 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
13502 to auto_inc_dec".
13503 * mode-switching.c (pass_mode_switching): Rename pass from
13504 "mode-sw" to "mode_sw".
13505 * except.c (pass_convert_to_eh_ranges): Rename pass from
13506 "eh-ranges" to "eh_ranges".
13507 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
13508 to "subreg1".
2ba9daa7
AS
13509
13510
72a54528
AM
135112009-01-29 Andrey Belevantsev <abel@ispras.ru>
13512 Alexander Monakov <amonakov@ispras.ru>
13513
13514 PR middle-end/38857
13515 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
13516 register.
13517 (move_exprs_to_boundary): Change return type and pass through
13518 should_move from move_op. Relax assert. Update usage ...
13519 (schedule_expr_on_boundary): ... here. Use should_move instead of
13520 cant_move.
13521 (move_op_orig_expr_found): Indicate that insn was disconnected from
13522 stream.
13523 (code_motion_process_successors): Do not call after_merge_succs
13524 callback if original expression was not found when traversing any of
13525 the branches.
13526 (code_motion_path_driver): Change return type. Update prototype.
13527 (move_op): Update comment. Add a new parameter (should_move). Update
13528 prototype. Set *should_move based on indication provided by
13529 move_op_orig_expr_found.
13530
001b9eb6
PH
135312009-01-28 Pat Haugen <pthaugen@us.ibm.com>
13532
13533 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
13534 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
13535 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
13536 * config/rs6000/rs6000.c (rs6000_override_options): Default
13537 avoid-indexed-addresses on for Power6, off for everything else.
13538 (avoiding_indexed_address_p): New function.
13539 (rs6000_legitimize_address): Use it.
13540 (rs6000_legitimate_address): Likewise.
13541 * config/rs6000/rs6000.md (movXX_updateX): Likewise
13542
59dc4898
KH
135432009-01-28 Kazu Hirata <kazu@codesourcery.com>
13544
13545 PR tree-optimization/38997
13546 * tree-loop-distribution.c (generate_memset_zero): Use
13547 POINTER_PLUS_EXPR for a pointer addition.
13548
07da44ab
AK
135492009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
13550
13551 * config/s390/s390.md (bswap<mode>2): New pattern added.
13552
cdc15d23
WG
135532009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13554
13555 * config/s390/s390.md (*tls_load_31): Added type attribute.
13556
d46f24b6
WG
135572009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13558
13559 * config/s390/s390.md: Fix a few comments.
13560
729e750f
WG
135612009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13562
13563 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
13564 (*tm<mode>_full): Fixed z10prop attribute.
13565 (*tst<mode>_extimm): Fixed z10prop attribute.
13566 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
13567 (*tstqiCCT_cconly): Fixed z10prop attribute.
13568 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
13569 (*movsi_larl): Fixed z10prop attribute.
13570 (*movsi_zarch): Fixed z10prop attribute.
13571 (*movsi_eas): Fixed z10prop attribute.
13572 (*movhi): Fixed z10prop attribute.
13573 (*movqi): Fixed z10prop attribute.
13574 (*movstrictqi): Fixed z10prop attribute.
13575 (*mov<mode>): Fixed z10prop attribute.
13576 (*movcc): Fixed z10prop attribute.
13577 (*sethighpartdi_64): Fixed z10prop attribute.
13578 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
13579 (*negdi2_sign_cc): Fixed z10prop attribute.
13580 (*negdi2_sign): Fixed z10prop attribute.
13581 (*absdi2_sign_cc): Fixed z10prop attribute.
13582 (*absdi2_sign): Fixed z10prop attribute.
13583 (*negabsdi2_sign_cc): Fixed z10prop attribute.
13584 (*negabsdi2_sign): Fixed z10prop attribute.
13585 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
13586 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
13587 (doloop_si64): Fixed z10prop attribute.
13588 (doloop_si31): Fixed z10prop attribute.
13589 (doloop_long): Fixed z10prop attribute.
13590 (indirect_jump): Fixed z10prop attribute.
13591 (nop): Fixed z10prop attribute.
13592 (main_base_64): Fixed z10prop attribute.
13593 (reload_base_64): Fixed z10prop attribute.
13594
c7789bfb
JJ
135952009-01-28 Jakub Jelinek <jakub@redhat.com>
13596
13597 PR rtl-optimization/38740
6b67572e
UB
13598 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
13599 if !optimize.
c7789bfb
JJ
13600 * config/mips/mips.c (mips_reorg): Likewise.
13601
de081cfd
RG
136022009-01-28 Richard Guenther <rguenther@suse.de>
13603
13604 PR tree-optimization/38926
13605 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
13606 with the correct value id to a value.
13607 (do_regular_insertion): Use the value number of edoubleprime
13608 for the value number of the expr.
13609
13610 Revert
13611 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 13612
d748c406
UB
13613 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
13614 a PHI ask VN if it is already available.
13615 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
13616 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 13617
a9d386a1
JJ
136182009-01-28 Jakub Jelinek <jakub@redhat.com>
13619
13620 PR middle-end/38934
13621 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
13622 set to varying whenever max has TREE_OVERFLOW set, similarly
13623 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
13624
97a170cd
RG
136252009-01-28 Richard Guenther <rguenther@suse.de>
13626
13627 PR middle-end/38908
13628 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
13629 uninitialized aggregate uses in call arguments.
13630
89ebafc6
PB
136312009-01-28 Paolo Bonzini <bonzini@gnu.org>
13632
13633 PR tree-optimization/38984
13634 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
13635 the nothing_id variable if -fno-delete-null-pointer-checks.
13636
bef3c57b
UB
136372009-01-28 Uros Bizjak <ubizjak@gmail.com>
13638
13639 PR target/38988
13640 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
13641 (set_got_offset_rex64): Ditto.
13642
0c6390fa
L
136432009-01-27 H.J. Lu <hongjiu.lu@intel.com>
13644
13645 PR target/38941
13646 * doc/extend.texi: Improve local variable with asm reg.
13647
bee6fa6d
AN
136482009-01-27 Adam Nemet <anemet@caviumnetworks.com>
13649
13650 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
13651 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
13652 was not supplied then set warn_packed_bitfield_compat to the
13653 default value of 1.
13654 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
13655 against 1.
13656
b5c3dfbb
RG
136572009-01-27 Richard Guenther <rguenther@suse.de>
13658
13659 PR tree-optimization/38503
13660 * cfgexpand.c (expand_gimple_basic_block): Ignore
13661 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
13662 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
13663 variables that cannot have TBAA applied.
13664 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
13665 statements.
13666
d748c406 136672009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
13668
13669 PR middle-end/38969
13670 * calls.c (initialize_argument_information): Do not wrap complex
13671 arguments in SAVE_EXPR.
13672
9112bb38
AT
136732009-01-26 Andreas Tobler <a.tobler@schweiz.org>
13674
13675 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 13676 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 13677
4757704f
RG
136782009-01-26 Richard Guenther <rguenther@suse.de>
13679
13680 PR tree-optimization/38745
13681 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
13682 from special handling.
13683
e3e6cff4
RG
136842009-01-26 Richard Guenther <rguenther@suse.de>
13685
13686 PR tree-optimization/38745
13687 * tree-ssa.c (execute_update_addresses_taken): Do not include
13688 variables that cannot possibly be a register in not_reg_needs.
13689 Do not clear TREE_ADDRESSABLE on vars that may not become
13690 registers.
13691 * tree-ssa.c (update_alias_info_1): Include those in the set
13692 of addressable vars.
13693
dc874b53
RG
136942009-01-26 Richard Guenther <rguenther@suse.de>
13695
13696 PR middle-end/38851
13697 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
13698 * tree-ssa-dse.c: Include langhooks.h
13699 (execute_simple_dse): Remove stores with zero size.
13700
849421a3
JJ
137012009-01-24 Jakub Jelinek <jakub@redhat.com>
13702
13703 PR c/38957
13704 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
13705 as PLUS_EXPR.
13706
82f70421
JB
137072009-01-24 Julian Brown <julian@codesourcery.com>
13708
13709 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
13710 config/arm/linux-atomic.c.
13711 * config/arm/linux-atomic.c: New.
13712
863412d6
EB
137132009-01-24 Eric Botcazou <ebotcazou@adacore.com>
13714
13715 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
13716 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
13717 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
13718
8c684300
L
137192009-01-24 H.J. Lu <hongjiu.lu@intel.com>
13720
13721 PR c/38938
93f1527a 13722 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
13723 properly.
13724
b840fb02
SP
137252009-01-24 Sebastian Pop <sebastian.pop@amd.com>
13726
13727 PR tree-optimization/38953
13728 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
13729 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
13730 (gloog): Split the exit of the scop when the scop exit is a loop exit.
13731 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
13732 changed the CFG.
13733
ecee559f
PB
137342009-01-24 Paul Brook <paul@codesourcery.com>
13735
13736 * config/arm/neon.md (neon_type): Move to arm.md.
13737 (neon_mov<VSTRUCT>): Add neon_type attribute.
13738 * config/arm/arm.md (neon_type): Move to here.
13739 (conds): Add "unconditioal" and use as default for NEON insns.
13740
61ad0914
BE
137412009-01-24 Ben Elliston <bje@au.ibm.com>
13742
13743 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
13744 void *' warning from -Wc++-compat.
13745 * Makefile.in (dominance.o-warn): Remove.
13746
38432148 137472009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
13748
13749 PR tree-optimization/38932
13750 * fold-const.c (fold_unary_ignore_overflow): New.
13751 * tree.h (fold_unary_ignore_overflow): Declare.
13752 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
13753 * tree-ssa-sccvn.c (visit_reference_op_load,
13754 simplify_unary_expression): Likewise.
13755
2cd36c22
AN
137562009-01-22 Adam Nemet <anemet@caviumnetworks.com>
13757
13758 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
13759 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
13760 regardless of their type.
13761 * c-common.c (handle_packed_attribute): Don't ignore packed on
13762 bitfields.
13763 * c.opt (Wpacked-bitfield-compat): New warning option.
13764 * stor-layout.c (place_field): Warn if offset of a field changed.
13765 * doc/extend.texi (packed): Mention the ABI change.
13766 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
13767 (Warning Options): Add it to the list.
13768
e4e624ab
L
137692009-01-22 H.J. Lu <hongjiu.lu@intel.com>
13770
13771 * c-opts.c (c_common_post_options): Fix a typo in comments.
13772
d0ea0759
SE
137732009-01-22 Steve Ellcey <sje@cup.hp.com>
13774
13775 PR middle-end/38615
13776 * gimplify.c (gimplify_init_constructor): Fix promotion of const
13777 variables to static.
13778 * doc/invoke.texi (-fmerge-all-constants): Update description.
13779
87673f84
UB
137802009-01-22 Uros Bizjak <ubizjak@gmail.com>
13781
13782 PR target/38931
13783 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
13784 (*movdi_1_rex64): Use type "mmx" for alternative 5.
13785
96339268
RE
137862009-01-22 Richard Earnshaw <rearnsha@arm.com>
13787
13788 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
13789 a word boundary.
13790 (LOCAL_ALIGNMENT): Similarly.
13791
442dc742 137922009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 13793 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
13794
13795 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
13796 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
13797 * config/arm/arm-tune.md: Regenerate.
13798 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
13799 -march=iwmmxt2.
13800
9b34732e
MS
138012009-01-22 Mark Shinwell <shinwell@codesourcery.com>
13802
13803 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
13804 version number to five.
13805
03c2a308
DS
138062009-01-22 Dodji Seketeli <dodji@redhat.com>
13807
13808 PR c++/38930
ba20e309 13809 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
13810 * c-common.c (set_underlying_type): Likewise.
13811 (is_typedef_decl ): Likewise
13812 * tree.h: Likewise
13813 (set_underlying_type): Likewise.
13814 (is_typedef_type): Likewise.
13815
1240d76e
VM
138162009-01-21 Vladimir Makarov <vmakarov@redhat.com>
13817
13818 PR middle-end/38587
13819 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13820 crossing setjmps.
13821
b8a1087d
DK
138222009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
13823
13824 PR bootstrap/37660
13825 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
13826 (LIBGCC_SPEC): Don't define.
13827 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
13828
435da628
UB
138292009-01-21 Uros Bizjak <ubizjak@gmail.com>
13830
13831 PR rtl-optimization/38879
13832 * alias.c (base_alias_check): Unaligned access via AND address can
13833 alias all surrounding object types except those with sizes equal
13834 or wider than the size of unaligned access.
13835
d597b3ce
DS
138362009-01-21 Dodji Seketeli <dodji@redhat.com>
13837
13838 PR c++/26693
ba20e309 13839 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 13840 * c-common.c (set_underlying_type): ... here.
435da628 13841 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
13842 the newly created typedef variant type.
13843 (is_typedef_decl ): New entry point.
13844 * tree.h: Added a new member member_types_needing_access_check to
13845 struct tree_decl_non_common.
13846 (set_underlying_type): New entry point.
13847 (is_typedef_type): Likewise.
13848
71a6fe66
BM
138492009-01-21 Bingfeng Mei <bmei@broadcom.com>
13850
13851 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13852 Check whether two instructions have memory references that
13853 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
13854 are helper functions for traversing.
13855 * alias.h (insn_alias_sets_confilict_p): New prototypes.
13856 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13857 not to draw dependency edge for instructions with non-conflicting
13858 alias sets.
13859
5a248274
JM
138602009-01-20 Joseph Myers <joseph@codesourcery.com>
13861
13862 PR other/38758
6b67572e
UB
13863 * longlong.h: Update copyright years. Use soft-fp license notice.
13864 Sync __clz_tab declaration with glibc.
5a248274 13865
4b84f3de
SE
138662009-01-20 Steve Ellcey <sje@cup.hp.com>
13867
13868 PR target/30687
13869 * doc/extend.texi (syscall_linkage): New.
13870 (version_id): Modify.
13871
37348bf1 138722009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 13873 Richard Guenther <rguenther@suse.de>
37348bf1
AP
13874
13875 PR tree-optimization/38747
13876 PR tree-optimization/38748
13877 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13878 conversion if the base address is an indirect reference and the
13879 aliasing sets could cause issues.
13880
d0a58904
SP
138812009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13882
2ba9daa7 13883 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
13884 explaining why these options are not documented.
13885
71e7afb2
SP
138862009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13887
13888 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13889 gimple_call_lhs is NULL.
13890
38432148 138912009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
13892
13893 PR target/38868
13894 * emit-rtl.c (adjust_address_1): Make sure memref is never
13895 overwritten.
13896
cbb8dee3
BE
138972009-01-20 Ben Elliston <bje@au.ibm.com>
13898
13899 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 13900 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
13901 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13902 const qualifier from arg 2.
13903
72c66596
IS
139042009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
13905
435da628 13906 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 13907
f68211cd
VM
139082009-01-19 Vladimir Makarov <vmakarov@redhat.com>
13909
13910 PR c/38869
13911 * rtl.h (reinit_regs): New prototype.
13912 * regclass.c: Include ira.h.
13913 (reinit_regs): New.
13914 * Makefile.in (regclass.o): Add ira.h.
13915 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13916
6e4f1168
L
139172009-01-18 H.J. Lu <hongjiu.lu@intel.com>
13918
13919 PR target/38736
13920 * c-common.c (handle_aligned_attribute): Use
13921 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13922 default alignment value.
13923
13924 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13925
13926 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13927 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13928
13929 * doc/extend.texi: Update __attribute__ ((aligned)). Document
13930 __BIGGEST_ALIGNMENT__.
13931
13932 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13933
890065bf
RG
139342009-01-18 Richard Guenther <rguenther@suse.de>
13935
13936 PR tree-optimization/38819
13937 * tree-flow.h (operation_could_trap_helper_p): Declare.
13938 * tree-eh.c (operation_could_trap_helper_p): Export.
13939 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13940 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13941 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13942 are about to insert a possibly trapping instruction and fail
13943 in this case.
13944
a729d731
AS
139452009-01-18 Andreas Schwab <schwab@suse.de>
13946
13947 * doc/install.texi (Configuration): Remove obsolete paragraph
13948 about use of --with-gnu-ld with --with-gnu-as.
13949
a640c13b
KH
139502009-01-18 Kazu Hirata <kazu@codesourcery.com>
13951
13952 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13953 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13954 Follow spelling conventions.
13955
dba2cc0c
BE
139562009-01-18 Ben Elliston <bje@au.ibm.com>
13957
13958 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13959 C++ warning about implicit conversion from void * to struct
13960 bitmap_head_def *.
13961 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 13962 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 13963
2207a498
DK
139642009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
13965
13966 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
13967
8137e465
SP
139682009-01-17 Sebastian Pop <sebastian.pop@amd.com>
13969 Tobias Grosser <tobi.grosser@amd.com>
13970
13971 * graphite.c (graphite_trans_scop_block): Do not block single
13972 nested loops.
13973
5be1c58c
AO
139742009-01-16 Alexandre Oliva <aoliva@redhat.com>
13975
13976 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13977 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13978 test with assertion.
13979
786ce82d
RG
139802009-01-16 Richard Guenther <rguenther@suse.de>
13981
13982 PR tree-optimization/38835
13983 PR middle-end/36227
13984 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13985 and INT + PTR -> (INT)(PTR p+ INT) folding.
13986 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13987
c1cb09ad
AN
139882009-01-16 Adam Nemet <anemet@caviumnetworks.com>
13989
13990 PR target/38554
13991 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13992 the subreg from a lowpart subreg if it is also casting the value.
13993
bcab4e19
SP
139942009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13995 Tobias Grosser <tobi.grosser@amd.com>
13996
13997 * graphite.c (compare_prefix_loops): New.
13998 (build_scop_canonical_schedules): Rewritten.
13999 (graphite_transform_loops): Move build_scop_canonical_schedules
14000 after build_scop_iteration_domain.
14001
0b040072
SP
140022009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14003 Tobias Grosser <tobi.grosser@amd.com>
14004
2ba9daa7 14005 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
14006 the dimension of the iteration domain. Do copy the domain
14007 only when it exists.
14008 (build_scop_conditions_1): Do not call add_conditions_to_domain.
14009 (add_conditions_to_constraints): New.
14010 (can_generate_code_stmt, can_generate_code): Removed.
14011 (gloog): Do not call can_generate_code.
14012 (graphite_transform_loops): Call add_conditions_to_constraints
14013 after building the iteration domain.
14014
56c6a499
JJ
140152009-01-16 Jakub Jelinek <jakub@redhat.com>
14016
14017 PR tree-optimization/38789
14018 * tree-ssa-threadedge.c
14019 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14020 __builtin_constant_p.
14021
c95b2534 140222009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
14023
14024 * dce.c (delete_unmarked_insns): Reversed the order that insns are
14025 examined before deleting them.
2ba9daa7 14026
c433cb14
RE
140272009-01-16 Richard Earnshaw <rearnsha@arm.com>
14028
14029 * function.c (aggregate_value_p): Correctly extract the function
14030 type from CALL_EXPR_FN lookup.
14031
c95b2534 140322009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
14033
14034 * config/picochip/picochip.c (picochip_override_options): Revert
14035 CFI asm flag disable commited previously.
14036
c77bb78f
SP
140372009-01-15 Sebastian Pop <sebastian.pop@amd.com>
14038 Tobias Grosser <tobi.grosser@amd.com>
14039 Jan Sjodin <jan.sjodin@amd.com>
14040
14041 * graphite.c (scan_tree_for_params): On substractions negate
14042 all the coefficients of the term.
14043 (clast_to_gcc_expression_red): New. Handle reduction expressions
14044 of more than two operands.
14045 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
14046 (get_vdef_before_scop): Handle also the case of default definitions.
14047
574af2d6
RS
140482009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
14049
14050 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
14051 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
14052 Also use them when walking CALL_INSN_FUNCTION_USAGE.
14053
e939805b
L
140542009-01-15 H.J. Lu <hongjiu.lu@intel.com>
14055 Joey Ye <joey.ye@intel.com>
14056
14057 PR middle-end/37843
14058 * cfgexpand.c (expand_stack_alignment): Don't update stack
14059 boundary nor check incoming stack boundary here.
14060 (gimple_expand_cfg): Update stack boundary and check incoming
14061 stack boundary here.
14062
c95b2534 140632009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 14064
435da628 14065 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 14066
0196c95e
JJ
140672009-01-14 Jakub Jelinek <jakub@redhat.com>
14068
14069 PR rtl-optimization/38245
14070 * calls.c (expand_call): Add stack arguments to
14071 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14072 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
14073 in regs and partially in memory or BLKmode arguments.
14074 (emit_library_call_value_1): Add stack arguments to
14075 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14076 ACCUMULATE_OUTGOING_ARGS).
14077 * dce.c: Include tm_p.h.
14078 (find_call_stack_args): New function.
14079 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
14080 argument.
14081 (mark_insn): Call find_call_stack_args for CALL_Ps.
14082 (prescan_insns_for_dce): Walk insns backwards in bb rather than
14083 forwards. Allocate and free arg_stores bitmap if needed, pass it
14084 down to deletable_insn_p, don't mark stores set in arg_stores
14085 bitmap, clear the bitmap at the beginning of each bb.
14086 * Makefile.in (dce.o): Depend on $(TM_P_H).
14087
6df6bcfa
MM
140882009-01-14 Michael Meissner <gnu@the-meissners.org>
14089
14090 PR target/22599
435da628
UB
14091 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
14092 to make sure the insn is a conditional test (bug 22599). Reformat a
14093 few long lines.
6df6bcfa 14094
765ec70c
SP
140952009-01-14 Sebastian Pop <sebastian.pop@amd.com>
14096
14097 PR middle-end/38431
14098 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
14099 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
14100 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 14101 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
14102 scops have been code generated.
14103
7de2b688
BS
141042009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
14105 * doc/gty.texi (Invoking the garbage collector): Added new node
14106 and section documenting ggc_collect.
14107
10bd6c5c
RG
141082009-01-14 Richard Guenther <rguenther@suse.de>
14109
14110 PR tree-optimization/38826
14111 PR middle-end/38477
14112 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
14113 initialization notes only if we actually emitted a warning.
14114 (intra_create_variable_infos): Add constraints for a result decl
14115 that is passed by hidden reference.
14116 (build_pred_graph): Mark all related variables non-direct on
14117 address-taking.
14118
9c7c70ee
NC
141192009-01-14 Nick Clifton <nickc@redhat.com>
14120
14121 * ira-conflicts.c: Include addresses.h for the definition of
14122 base_reg_class.
435da628
UB
14123 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
14124 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 14125
cf0c2a60
VM
141262009-01-13 Vladimir Makarov <vmakarov@redhat.com>
14127
14128 PR target/38811
14129 * Makefile.in (ira-lives.o): Add except.h.
14130
14131 * ira-lives.c: Include except.h.
14132 (process_bb_node_lives): Process can_throw_internal.
14133
d3302fd3
JJ
141342009-01-13 Jakub Jelinek <jakub@redhat.com>
14135
14136 PR rtl-optimization/38774
14137 * combine.c (simplify_set): When undoing cc_use change, don't do
14138 PUT_CODE on the newly created comparison, but instead put back the
14139 old comparison.
14140
7ab23fd0
JM
141412009-01-13 Joseph Myers <joseph@codesourcery.com>
14142
14143 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
14144 values. Remove duplicate arm8 entry.
14145
f9344488
SP
141462009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14147
14148 PR tree-optimization/38786
14149 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
14150 the SSA_NAME case of expand_scalar_variables_expr.
14151 Set the type of an expression to the type of its assign statement.
14152 (expand_scalar_variables_expr): Also gather the scalar computation
14153 used to index the memory access. Do not pass loop_p.
14154 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
14155 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
14156 the gimple_stmt_iterator where it inserts new code.
14157 Do not pass loop_p.
f9344488
SP
14158 (copy_bb_and_scalar_dependences): Do not pass loop_p.
14159 (translate_clast): Update call to copy_bb_and_scalar_dependences.
14160
2d8bb84d
SP
141612009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14162
14163 * graphite.h (debug_value): Removed.
14164 * graphite.c (debug_value): Removed.
14165
ff128632
RE
141662009-01-13 Richard Earnshaw <rearnsha@arm.com>
14167
435da628
UB
14168 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
14169 ldrd/strd with two 32-bit instructions.
ff128632 14170
d5a0a47b
RE
141712009-01-13 Richard Earnshaw <rearnsha@arm.com>
14172
435da628
UB
14173 * config/arm/arm.c (struct processors): Pass for speed down into
14174 cost helper functions.
d5a0a47b
RE
14175 (const_ok_for_op): Handle COMPARE and inequality nodes.
14176 (arm_rtx_costs_1): Rewrite.
14177 (arm_size_rtx_costs): Update prototype.
14178 (arm_rtx_costs): Pass speed down to helper functions.
14179 (arm_slowmul_rtx_costs): Rework cost calculations.
14180 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
14181 (arm_9e_rtx_costs): Likewise.
14182
26d5bf5b
UB
141832009-01-13 Uros Bizjak <ubizjak@gmail.com>
14184
14185 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 14186 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
14187 (alpha_legitimize_address): Do not split local symbols wider than
14188 UNITS_PER_WORD into HIGH/LO_SUM parts.
14189
5d14e3d5
DS
141902009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
14191
14192 PR bootstrap/38580
14193 * gcc.c (process_command): Replace call to execvp with calls
14194 to pex_one and exit.
14195
33faafca
AS
141962009-01-03 Anatoly Sokolov <aesok@post.ru>
14197
14198 PR target/29141
14199 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
14200 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
14201 variant for devices with 3-byte PC.
ba20e309 14202 (__tablejump_elpm__): New.
33faafca 14203
634b5df5
JJ
142042009-01-12 Jakub Jelinek <jakub@redhat.com>
14205
14206 PR c/32041
14207 * c-parser.c (c_parser_postfix_expression): Allow `->' in
14208 offsetof member-designator, handle it as `[0].'.
14209
2842bb86
JDA
142102009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14211
14212 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
14213 function when not using named sections on targets with named sections
14214 if branch distance is less than 262132.
14215
76ee70f6
RE
142162009-01-12 Richard Earnshaw <rearnsha@arm.com>
14217
14218 * combine.c (combine_instructions): Recompute
14219 optimize_this_for_speed_p for each BB in the main combine loop.
14220
f56e675d
TB
142212009-01-12 Tomas Bily <tbily@suse.cz>
14222
14223 PR middlend/38385
26d5bf5b
UB
14224 * tree-loop-distribution.c (prop_phis): New function.
14225 (generate_builtin): Call prop_phis.
14226 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 14227
c2152239
JJ
142282009-01-12 Jakub Jelinek <jakub@redhat.com>
14229
14230 PR tree-optimization/38807
14231 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
14232 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
14233
0e510b3e
AN
142342009-01-11 Adam Nemet <anemet@caviumnetworks.com>
14235
14236 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
14237 subreg of op0 to the original op0.
14238
c95b2534 142392009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
14240
14241 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 14242
53a7ff9a
MS
142432009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
14244
14245 PR debug/7055
60839f5d 14246 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
14247 starting with digits.
14248
b3a796bc
JJ
142492009-01-10 Jakub Jelinek <jakub@redhat.com>
14250
14251 PR target/38695
14252 * config/arm/arm.c (arm_is_long_call_p): Don't call
14253 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
14254
b21b850e
SB
142552009-01-09 Steven Bosscher <steven@gcc.gnu.org>
14256
14257 * regrename.c (regrename_optimize): Fix dumping.
14258 (find_oldest_value_reg): Preserve REG_POINTER.
14259 (copy_hardreg_forward_1): Likewise.
14260
e0e10d3a
DN
142612009-01-09 Diego Novillo <dnovillo@google.com>
14262
bf9b2cc9 14263 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
14264 the restrictions on its use.
14265 (gimple_uid): Tidy.
14266 (gimple_set_uid): Tidy.
14267
c9da2ae8
JJ
142682009-01-09 Jakub Jelinek <jakub@redhat.com>
14269
14270 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
14271 zero guard even if align_bytes != 0 and count is smaller than
14272 size_needed.
14273
38432148 142742009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
14275
14276 PR rtl-optimization/38495
26d5bf5b 14277 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
14278 (add_range_and_copies_from_move_list): Print all added ranges.
14279 Add ranges to memory optimized destination.
14280
260fda3d
JJ
142812009-01-09 Jakub Jelinek <jakub@redhat.com>
14282
6f6278ad
JJ
14283 PR target/38686
14284 PR target/38708
14285 * config/i386/i386.c (override_options): Reject
14286 -mstringop-strategy=rep_8byte with -m32.
14287 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
14288 to 1. Do count comparison against epilogue_size_needed at compile
14289 time even when count_exp was constant forced into register. For
14290 size_needed don't jump to epilogue, instead just avoid aligning
14291 and invoke the body algorithm. If need_zero_guard, add zero guard
14292 even if count is non-zero, but smaller than size_needed + number of
14293 bytes that could be stored for alignment.
14294 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
14295 to 1. If need_zero_guard, add zero guard even if count is non-zero,
14296 but smaller than size_needed + number of bytes that could be stored
14297 for alignment. Compare size_needed with epilogue_size_needed instead
14298 of desired_align - align, don't adjust size_needed, pass
14299 epilogue_size_needed to the epilogue expanders.
14300
260fda3d 14301 PR c/35742
26d5bf5b 14302 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 14303
67b846fa
JDA
143042009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14305
14306 * pa.c (last_address): Change to unsigned.
14307 (update_total_code_bytes): Change argument to unsigned. Don't
14308 check if insn addresses are set.
14309 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
14310 addresses are not set.
14311 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
14312
91c82473
NC
143132009-01-09 Nick Clifton <nickc@redhat.com>
14314
14315 * config/sh/symbian.c: Replace uses of DECL_INLINE with
14316 DECL_DECLARED_INLINE_P.
14317
4017e262
JJ
143182009-01-09 Jakub Jelinek <jakub@redhat.com>
14319
0a49e5c2
JJ
14320 PR middle-end/38347
14321 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
14322 GET_MODE (op0) in operand_subword_force calls.
14323
4017e262
JJ
14324 PR middle-end/38771
14325 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
14326 fold_convert arg0 operands to TREE_TYPE (op0) first.
14327
7cd06356
VM
143282009-01-08 Vladimir Makarov <vmakarov@redhat.com>
14329
14330 * params.def (ira-max-conflict-table-size): Decrease default value
14331 to 1000.
14332
96867bbd
JJ
143332009-01-08 Jakub Jelinek <jakub@redhat.com>
14334
14335 PR tree-optimization/37031
14336 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
14337 on parameter_set.
14338 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
14339 allocate it using gc instead of heap, use VEC_quick_push instead of
14340 VEC_safe_push.
14341 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
14342 instead of heap, use VEC_quick_push instead of VEC_safe_push.
14343 * tree-data-ref.h (struct access_matrix): Change matrix to gc
14344 allocated vector from heap allocated.
14345 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
14346 * tree-loop-linear.c (linear_transform_loops): Allocate nest
14347 vector only after perfect_loop_nest_depth call.
14348
68f61c3d
SP
143492009-01-08 Sebastian Pop <sebastian.pop@amd.com>
14350 Jan Sjodin <jan.sjodin@amd.com>
14351
14352 PR tree-optimization/38559
14353 * graphite.c (debug_value, copy_constraint,
14354 swap_constraint_variables, scale_constraint_variable, ): New.
14355 (get_lower_bound, get_upper_bound): Removed.
14356 (graphite_trans_bb_strip_mine): Clean up this code that works
14357 only for constant number of iterations. Fully copy upper and
14358 lower bound constraints, not only the constant part of them.
14359 * graphite.h (debug_value): Declared.
14360
82567e33
IR
143612009-01-08 Ira Rosen <irar@il.ibm.com>
14362
14363 PR tree-optimization/37194
14364 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 14365 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
14366 outside cost in case of known number of iterations.
14367
7da13f1d
NF
143682009-01-07 Nathan Froyd <froydnj@codesourcery.com>
14369 Alan Modra <amodra@bigpond.net.au>
14370
14371 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
14372 non-word-aligned REG+CONST addressing.
14373
c0f64575
UB
143742009-01-07 Uros Bizjak <ubizjak@gmail.com>
14375
14376 PR target/38706
14377 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
14378 free_after_compilation when outputting a thunk.
14379 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
14380 Do not call free_after_compilation here.
14381
301b6a4e
UB
143822009-01-07 Uros Bizjak <ubizjak@gmail.com>
14383
14384 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
14385 (ix86_valid_target_attribute_inner_p): Ditto.
14386
6a114766
JS
143872009-01-07 Jan Sjodin <jan.sjodin@amd.com>
14388
14389 PR tree-optimization/38492
14390 PR tree-optimization/38498
14391 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
14392 * tree-chrec.h (scev_is_linear_expression): Declared.
14393 * graphite.c (graphite_cannot_represent_loop_niter): New.
14394 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
14395 (graphite_loop_normal_form): Use gcc_assert.
14396 (scan_tree_for_params): Use CASE_CONVERT.
14397 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
14398 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
14399 Use gcc_assert. Discard scops that contain unhandled cases.
14400 (build_scop_conditions): Return a boolean status for unhandled cases.
14401 (strip_mine_profitable_p): Print the loop number, not its depth.
14402 (is_interchange_valid): Pass the depth of the loop nest, don't
14403 recompute it wrongly.
14404 (graphite_trans_bb_block): Same.
14405 (graphite_trans_bb_block): Print tentative of loop blocking.
14406 (graphite_trans_scop_block): Do not print that the loop has been
14407 blocked.
14408 (graphite_transform_loops): Do not handle scops that contain condition
14409 scalar phi nodes.
14410
65b82caa
L
144112009-01-07 H.J. Lu <hongjiu.lu@intel.com>
14412
14413 AVX Programming Reference (December, 2008)
14414 * config/i386/avxintrin.h (_mm256_stream_si256): New.
14415 (_mm256_stream_pd): Likewise.
14416 (_mm256_stream_ps): Likewise.
14417
14418 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
14419 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
14420 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
14421 (bdesc_special_args): Add __builtin_ia32_movntdq256,
14422 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
14423 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
14424 (ix86_expand_special_args_builtin): Likewise.
14425
14426 * config/i386/sse.md (AVXMODEDI): New.
14427 (avx_movnt<mode>): Likewise.
14428 (avx_movnt<mode>): Likewise.
14429 (<sse>_movnt<mode>): Remove AVX support.
14430 (sse2_movntv2di): Likewise.
14431
cef158f9
RG
144322009-01-07 Richard Guenther <rguenther@suse.de>
14433
14434 PR middle-end/38751
14435 * fold-const.c (extract_muldiv): Remove obsolete comment.
14436 (fold_plusminus_mult_expr): Undo MINUS_EXPR
14437 to PLUS_EXPR canonicalization for the canonicalization.
14438
246cb5be
GP
144392009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
14440
14441 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
14442 hosted cross-compilers generating less efficient code.
14443
84b9b872
RS
144442009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
14445
14446 * function.h (rtl_data): Add a dbr_scheduled_p field.
14447 * reorg.c (dbr_schedule): Set it.
14448 (gate_handle_delay_slots): Check it.
14449 * config/mips/mips.c (mips_base_delayed_branch): Delete.
14450 (mips_reorg): Check flag_delayed_branch instead of
14451 mips_base_delayed_branch.
14452 (mips_override_options): Don't set mips_base_delayed_branch
14453 or flag_delayed_branch.
14454
ace984c8
RS
144552009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
14456
14457 PR rtl-optimization/38426.
14458 * ira.c (ira): Set current_function_is_leaf earlier.
14459
7ad7809b
JJ
144602009-01-06 Jakub Jelinek <jakub@redhat.com>
14461
14462 PR rtl-optimization/38722
14463 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
14464 too early, only set a flag and modify after last possible
14465 undo_all point.
14466
c52ec948
JJ
144672009-01-06 Janis Johnson <janis187@us.ibm.com>
14468
14469 PR c/34252
14470 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
14471 * real.c (decimal_single_format): Correct values of emin and emax.
14472 (decimal_double_format): Ditto.
14473 (decimal_quad_format): Ditto.
14474 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
14475 computation of DECnn_MIN and DECnn_MAX for corrected values of
14476 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
14477 __DECnn_MIN__, and adjust its computation for the corrected value
14478 of emin.
14479
300240e1
JH
144802009-01-06 Jan Hubicka <jh@suse.cz>
14481
14482 PR target/38744
435da628 14483 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 14484
271c069e
GP
144852009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
14486
14487 * doc/contrib.texi (Contributors): Slightly adjust the end note.
14488 Add Robert Clark to the list of testers.
14489
64e4c301 144902009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14491 Kai Tietz <kai.tietz@onevision.com>
64e4c301 14492
435da628
UB
14493 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
14494 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 14495
7650b83e 144962009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14497 Kai Tietz <kai.tietz@onevision.com>
7650b83e 14498
435da628
UB
14499 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
14500 for w64 ABI.
14501 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
14502 (ix86_nsaved_regs): Count only general purpose regs.
14503 (ix86_nsaved_sseregs): New.
14504 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
14505 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
14506 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
14507 general purpose regs.
7650b83e
JH
14508 (ix86_emit_save_sse_regs_using_mov): New.
14509 (ix86_expand_prologue): Save SSE regs if needed.
14510 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
14511 (ix86_emit_restore_sse_regs_using_mov): New.
14512 (ix86_expand_epilogue): Save SSE regs if needed.
14513
9aa5c1b2 145142009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14515 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 14516
435da628
UB
14517 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
14518 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
14519 functions when accumulate outgoing args is off.
9aa5c1b2 14520
f7556aae
L
145212009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14522
14523 PR bootstrap/38742
14524 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
14525 before using pseudos_have_intersected_live_ranges_p.
14526
14527 * ira-int.h (ira_assert): Always define.
14528
e47b7d04
L
145292009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14530
14531 AVX Programming Reference (December, 2008)
14532 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
14533 (_mm256_permute2_pd): Likewise.
14534 (_mm_permute2_ps): Likewise.
14535 (_mm256_permute2_ps): Likewise.
14536 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
14537 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
14538
14539 * config/i386/i386.c (ix86_builtins): Remove
14540 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
14541 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
14542 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
14543 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
14544 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
14545 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
14546 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
14547 __builtin_ia32_vpermil2ps256.
14548 (ix86_init_mmx_sse_builtins): Updated.
14549 (ix86_expand_args_builtin): Likewise.
14550
44b86471
JDA
145512009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14552
e47b7d04
L
14553 * pa.c (output_call): Relocate non-jump insns in the delay slot of
14554 long absolute calls when generating PA 2.0 code.
44b86471 14555
311aab06
VM
145562009-01-05 Vladimir Makarov <vmakarov@redhat.com>
14557
14558 PR rtl-optimization/38583
14559 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
14560
14561 * params.def (ira-max-conflict-table-size): New.
14562
14563 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 14564
311aab06 14565 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 14566
311aab06
VM
14567 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
14568 table. Report this. Return result of building.
14569 (ira_build_conflicts): Use ira_conflicts_p. Check result of
14570 building conflict table.
14571
301b6a4e 14572 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 14573 (ira_color): Use ira_conflicts_p.
2ba9daa7 14574
311aab06
VM
14575 * global.c: Include ira.h.
14576 (pseudo_for_reload_consideration_p, build_insn_chain): Use
14577 ira_conflicts_p.
14578
14579 * Makefile.in (global.o): Add ira.h.
2ba9daa7 14580
311aab06
VM
14581 * ira-build.c (mark_all_loops_for_removal,
14582 propagate_some_info_from_allocno): New.
14583 (remove_unnecessary_allocnos): Call
14584 propagate_some_info_from_allocno.
14585 (remove_low_level_allocnos): New.
14586 (remove_unnecessary_regions): Add parameter. Call
14587 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
14588 parameter to remove_unnecessary_regions.
14589 (ira_build): Remove all regions but root if the conflict table was
14590 not built. Update conflict hard regs for allocnos crossing calls.
14591
14592 * ira.c (ira_conflicts_p): New global.
14593 (ira): Define and use ira_conflicts_p.
14594
14595 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14596 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 14597 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 14598
5641785f
BE
145992009-01-06 Ben Elliston <bje@au.ibm.com>
14600
14601 * gengtype-lex.l (YY_NO_INPUT): Define.
14602
e4e5261f
AP
146032009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
14604
14605 PR c/34911
5641785f
BE
14606 * c-common.c (handle_vector_size_attribute): Also reject
14607 BOOLEAN_TYPE types.
e4e5261f 14608
7b10257f
SP
146092009-01-05 Sebastian Pop <sebastian.pop@amd.com>
14610
14611 PR tree-optimization/38492
14612 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
14613 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
14614 rename_map_elt_info, eq_rename_map_elts,
14615 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
14616 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
14617 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
14618 (sese_build_livein_liveouts): New.
14619 (new_sese, free_sese): New.
14620 (new_scop): Call new_sese.
14621 (free_scop): Call free_sese.
14622 (rename_variables_from_edge, rename_phis_end_scop): Removed.
14623 (register_old_new_names): Renamed register_old_and_new_names.
14624 (register_scop_liveout_renames, add_loop_exit_phis,
14625 insert_loop_close_phis, struct igp,
14626 default_liveout_before_guard, add_guard_exit_phis,
14627 insert_guard_phis, copy_renames): New.
14628 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
14629 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
14630 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
14631 (scop_adjust_phis_for_liveouts): New.
14632 (gloog): Call scop_adjust_phis_for_liveouts.
14633
14634 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 14635 num_ver and livein.
7b10257f
SP
14636 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
14637 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
14638 (struct scop): Added field liveout_renames.
14639 (SCOP_LIVEOUT_RENAMES): New.
14640
9761fcc7
HJ
146412009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
14642
14643 PR tree-optimization/38510
14644 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
14645 (translate_clast): Call recompute_all_dominators before
14646 graphite_verify.
14647 (gloog): Call recompute_all_dominators before graphite_verify.
14648
146492009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 14650 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
14651
14652 PR tree-optimization/38500
14653 * graphite.c (create_sese_edges): Call fix_loop_structure after
14654 splitting blocks.
14655
c95b2534 146562009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
14657
14658 * config.gcc: Add m32r*-*-rtems*.
14659 * config/m32r/rtems.h: New file.
14660
fc0cd180
BE
146612009-01-05 Ben Elliston <bje@au.ibm.com>
14662
14663 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
14664 (.po.pox): Likewise.
14665 (po/gcc.pot): Likewise.
14666
3106d8e5
DM
146672009-01-04 David S. Miller <davem@davemloft.net>
14668
14669 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
14670 (STARTING_FRAME_OFFSET): Always set to zero.
14671
0009b473
RS
146722009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14673
14674 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
14675 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
14676 fixed-point types, and vectors of the same.
14677
4f24c6d6
RS
146782009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14679
14680 * config/mips/sync.md (*mb_barrier): Rename to...
14681 (*memory_barrier): ...this.
14682
1df48f5c
JW
146832009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
14684
14685 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 14686 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
14687 and put in alphabetical order. Fix 'target' name and put in order.
14688 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
14689 typos.
14690
1a8c13b3
UB
146912009-01-04 Uros Bizjak <ubizjak@gmail.com>
14692
14693 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
14694 (memory_barrier): Expand as unspec instead of unspec_volatile.
14695 Remove mem:BLK from insn operands. Use Pmode scratch register.
14696 (*memory_barrier): Define as unspec instead of unspec_volatile.
14697 Use (match_dup 0) as input operand.
14698
14699 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
14700 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
14701 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
14702 scratch register. Remove operand 1.
14703 (*stbar): Define as unspec instead of unspec_volatile.
14704 Use (match_dup 0) as input operand, remove (const_int 8).
14705 (*membar): Define as unspec instead of unspec_volatile.
14706 Use (match_dup 0) as input operand, remove input operand 2.
14707
14708 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
14709 (memory_barrier): Expand as unspec instead of unspec_volatile.
14710 Remove mem:BLK from insn operands. Use Pmode scratch register.
14711 (*memory_barrier): Define as unspec instead of unspec_volatile.
14712 Use (match_dup 0) as input operand.
14713
14714 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
14715 Remove mem:BLK from insn operands. Use Pmode scratch register.
14716 Set volatile flag on operand 0.
14717 (*memory_barrier): New insn pattern.
14718
14719 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
14720 insn operands.
14721 (*memory_barrier): Use (match_dup 0) as input operand.
14722
14723 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
14724 Remove mem:BLK from insn operands. Use Pmode scratch register.
14725 Set volatile flag on operand 0.
301b6a4e 14726 (*mb_internal): New insn pattern.
1a8c13b3
UB
14727
14728 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
14729
fb0703f7
SB
147302009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14731
14732 PR middle-end/38586
14733 * function.c (struct temp_slot): Move to the section of the file
14734 that deals with temp slots. Remove field 'address'.
14735 (temp_slot_address_table): New hash table of address -> temp slot.
14736 (struct temp_slot_address_entry): New struct, items for the table.
14737 (temp_slot_address_compute_hash, temp_slot_address_hash,
14738 temp_slot_address_eq, insert_temp_slot_address): Support functions
14739 for the new table.
14740 (find_temp_slot_from_address): Rewrite to use the new hash table.
14741 (remove_unused_temp_slot_addresses): Remove addresses of temp
14742 slots that have been made available.
14743 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
14744 worker function for remove_unused_temp_slot_addresses.
14745 (assign_stack_temp_for_type): Don't clear the temp slot address list.
14746 Add the temp slot address to the address -> temp slot map.
14747 (update_temp_slot_address): Update via insert_temp_slot_address.
14748 (free_temp_slots): Call remove_unused_temp_slot_addresses.
14749 (pop_temp_slots): Likewise.
14750 (init_temp_slots): Allocate the address -> temp slot map, or empty
14751 the map if it is already allocated.
14752 (prepare_function_start): Initialize temp slot processing.
14753
b5a430f3
SB
147542009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14755
14756 PR middle-end/38584
14757 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
14758 Calculate the size of all stack vars assuming no packing of stack
14759 vars will happen, replacing a quadratic algorithm with a linear one.
14760
5d560619
JJ
147612009-01-03 Jakub Jelinek <jakub@redhat.com>
14762
14763 PR target/38707
14764 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
14765 can't be used.
14766
953a7caa
DN
147672009-01-03 Diego Novillo <dnovillo@google.com>
14768
14769 * doc/contrib.texi: Update contributions.
14770
5f26a230
JJ
147712009-01-03 Jakub Jelinek <jakub@redhat.com>
14772
493aa551
JJ
14773 PR c++/38705
14774 * builtins.c (fold_builtin_memory_op): Give up if either operand
14775 is volatile. Set srctype or desttype to non-qualified version
14776 of the other type.
14777
5f26a230
JJ
14778 PR c/38700
14779 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
14780 and FUNCTION_DECLs.
14781
c95b2534 147822009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
14783
14784 PR rtl-optimization/35805
14785 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
14786 problem if fast dce is able to remove any instructions.
14787 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 14788
0b355794
MM
147892009-01-02 Mark Mitchell <mark@codesourcery.com>
14790
14791 PR 33649
14792 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
14793
0cf0d02b
JJ
147942009-01-02 Jakub Jelinek <jakub@redhat.com>
14795
14796 PR middle-end/38690
14797 * tree-flow.h (op_code_prio, op_prio): New prototypes.
14798 * tree-pretty-print.c (op_code_prio): New function.
14799 (op_prio): No longer static. Use op_code_prio.
14800 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
14801 Use op_prio and op_code_prio to determine if () should be
14802 printed around operand(s) or not.
14803
14804 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
14805 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
14806 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
14807 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
14808 pp_character instead of pp_string for single letter printing.
14809
e3606f3b
RS
148102009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
14811
14812 * doc/extend.texi: Fix '#pragma GCC option' typo.
14813
c95b2534 148142009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 14815
a5f061dc
RG
14816 * doc/install.texi (--enable-checking): Mention different
14817 default for stage1.
14818 (--enable-stage1-checking): Document.
00f39bd5 14819
26de0bcb
AP
148202009-01-01 Andrew Pinski <pinskia@gmail.com>
14821
14822 PR middle-end/30142
14823 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
14824 case to be an error.
14825
7a7d8fab
BE
148262009-01-02 Ben Elliston <bje@au.ibm.com>
14827
14828 * config/fp-bit.h (pack_d): Constify argument.
14829 * config/fp-bit.c (makenan): Constify return type. Remove casts.
14830 (isnan): Constify argument.
14831 (isinf): Likewise.
14832 (iszero): Likewise.
14833 (pack_d): Likewise.
14834 (_fpadd_parts): Constify return type.
14835 (_fpmul_parts): Likewise.
14836 (_fpdiv_parts): Likewise.
14837
b295aee2
JJ
148382009-01-01 Jakub Jelinek <jakub@redhat.com>
14839
14840 PR c/36489
14841 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
14842 warn about overwriting initializer with side-effects or
14843 -Woverride-init if !IMPLICIT.
14844 (output_init_element): Likewise. Pass IMPLICIT down to
14845 add_pending_init.
14846 (process_init_element): Add IMPLICIT argument. Pass it down
14847 to output_init_element.
14848 (push_init_element, pop_init_level, set_designator): Adjust
14849 process_init_element callers.
14850 (set_nonincremental_init, set_nonincremental_init_from_string):
14851 Adjust add_pending_init callers.
14852 (output_pending_init_elements): Adjust output_init_element callers.
14853 * c-tree.h (process_init_element): Adjust prototype.
14854 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14855 process_init_element callers.
ad41bd84
JM
14856
14857\f
14858Copyright (C) 2009 Free Software Foundation, Inc.
14859
14860Copying and distribution of this file, with or without modification,
14861are permitted in any medium without royalty provided the copyright
14862notice and this notice are preserved.