]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
PR libfortran/40334 backspace regression
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
bcbe3b25
SP
12009-06-09 Sebastian Pop <sebastian.pop@amd.com>
2
3 * graphite.c: Revert previous patch.
4
dc2a6925
SP
52009-06-09 Sebastian Pop <sebastian.pop@amd.com>
6
7 PR bootstrap/40103
8 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
9
d81f5387
GS
102009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
11
12 * tree-ssa-loop-prefetch.c
13 (loop_prefetch_arrays): Fixed a portability problem in printf format
14 string.
15
8056eb4f
MJ
162009-06-09 Martin Jambor <mjambor@suse.cz>
17
18 PR tree-optimization/40351
19 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
20 to a potential artifical subaccess can be constructed.
21
bd9a3465
KK
222009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
23
24 * config/sh/sh-protos.h (sh_optimization_options): Declare.
25 (sh_override_options): Likewise.
26 * config/sh/sh.c: Include params.h.
27 (sh_optimization_options): New.
28 (sh_override_options): Likewise.
29 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
30 (OVERRIDE_OPTIONS): Use sh_override_options.
31
8845deab
JJ
322009-06-08 Jakub Jelinek <jakub@redhat.com>
33
34 * dwarf2out.c (emit_cfa_remember): New variable.
35 (add_fde_cfi): If emit_cfa_remember, recurse to add
36 DW_CFA_remember_state first.
37 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
38 instead just set emit_cfa_remember.
39
9ea81b0c
JH
402009-06-08 Jan Hubicka <jh@suse.cz>
41
42 PR debug/40126
43 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
44
21ecdec5
JH
452009-06-08 Jan Hubicka <jh@suse.cz>
46
47 PR middle-end/39834
48 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
49 for saved inline bodies.
50 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
51 for given function.
52
72e48218
AN
532009-06-08 Adam Nemet <anemet@caviumnetworks.com>
54
55 * jump.c (returnjump_p): Handle delayed branches. Add missing
56 function comment.
57
6ce2002b
JH
582009-06-08 Jan Hubicka <jh@suse.cz>
59
60 PR middle-end/40102
61 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
62 original node might've been modified.
63 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
64
eb9ed98a
JJ
652009-06-08 Jakub Jelinek <jakub@redhat.com>
66
67 * tree-object-size.c (addr_object_size): Add OSI argument.
68 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
69 (compute_builtin_object_size, expr_object_size): Adjust callers.
70 (plus_stmt_object_size): Call addr_object_size instead of
71 compute_builtin_object_size.
72
db34470d
GS
732009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
74 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
75
76 * tree-ssa-loop-prefetch.c
77 (gather_memory_references): Introduced a counter for the number of
78 memory references.
79 (anything_to_prefetch_p): Introduced a counter for the number of
80 prefetches.
81 (is_loop_prefetching_profitable): New function with a cost model
82 for prefetching.
83 (loop_prefetch_arrays): Use the new cost model to determine if
84 prefetching is profitable.
85 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
86 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
87 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
88 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
89 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
90 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
91
eb7adebc
MM
922009-06-08 Michael Matz <matz@suse.de>
93
94 PR debug/40012
eb7adebc
MM
95 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
96 partitions use the same.
97 (expand_one_var): Deal with DECL_RTL sometimes begin set also
98 for basevars of SSA_NAMEs.
99 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
100 to not expand them twice.
101 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
102 multiple places.
103
2153915d
AO
1042009-06-08 Alexandre Oliva <aoliva@redhat.com>
105
106 * common.opt (fcompare-debug=, fcompare-debug-second): New.
107 (fdump-final-insns=, gtoggle): New.
108 * doc/invoke.texi: Document them.
109 * final.c (rest_of_clean_state): Dump final insn stream.
110 * gcc.c (invoke_as): Hook in -fcompare-debug.
111 (static_spec_functions): Add compare-debug-dump-opt,
112 compare-debug-self-opt and compare-debug-auxbase-opt.
113 (compare_debug, compare_debug_second, compare_debug_opt): New.
114 (switches_debug_check, n_switches_debug_check): New.
115 (debug_auxbase_opt, debug_check_temp_file): New.
116 (process_command): Handle -fno-compare-debug, -fcompare-debug and
117 -fcompare-debug=*.
118 (do_self_spec): Handle arguments after switches.
119 (do_spec_1): Add .gk extension to temp file basenames for compare.
120 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
121 (cc1_options): Use it instead of normal auxbase computation for
122 the second compare-debug compilation.
123 (compare_files): New.
124 (main): Set up and implement compare debug mode.
125 (compare_debug_dump_opt_spec_function): New.
126 (compare_debug_self_opt_spec_function): New.
127 (compare_debug_auxbase_opt_spec_function): New.
128 * toplev.c (process_options): Handle flag_gtoggle,
129 flag_dump_final_insns.
130 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
131 during -fcompare-debug-second compilation.
132
cdb88468
ILT
1332009-06-07 Ian Lance Taylor <iant@google.com>
134
135 * dwarf2.h (enum dwarf_location_atom): Add
136 INTERNAL_DW_OP_tls_addr.
137 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
138
139 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
140 with no default node. Change warning with %H to warning_at.
141 Don't clear warn_switch around case checking.
142 * doc/invoke.texi (Warning Options): Clarify distinction between
143 -Wswitch and -Wswitch-enum.
144
4fe8e1a2
BRF
1452009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
146
147 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
148
69952c1d
BRF
1492009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
150
151 * gbl-ctors.h: Add header guard.
152
b2ad0284
BRF
1532009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
154
155 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
156 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
157 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
158 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
159 prototypes for removed functions.
160 (expressions_equal_p): Move to ...
161 * tree-ssa-sccvn.h: ... here and ...
162 * matrix-reorg.c: ... adjust includes.
163
c3df55f9
BRF
1642009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
165
166 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
167
b5a7159f
BRF
1682009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
169
170 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
171 (finish_function): Remove erroneous whitespace.
172
95bca6b0
BRF
1732009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
174
2cd713a0
BRF
175 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
176 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
177
1782009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
179
180 * errors.c (internal_error): Commentary typo fix.
181 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
182 * tree-ssa-pre.c: Ditto.
95bca6b0 183
2cd713a0
BRF
1842009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
185
186 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
187 them is supposed to hold actual statements.
188
5bca4e80
ILT
1892009-06-06 Ian Lance Taylor <iant@google.com>
190
191 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
192 empty statements can now have attributes.
193
47ac44d6
SZ
1942009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
195
196 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
197 * config/mips/mips.md: Ditto.
198
19b905ce
NF
1992009-06-05 Nathan Froyd <froydnj@codesourcery.com>
200
201 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
202 _RELOCATABLE.
203 (__eabi_uconvert): Likewise.
204
16702e19
NF
2052009-06-05 Nathan Froyd <froydnj@codesourcery.com>
206
207 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
208 CFI_* definitions with IN_GCC.
209
a735afd1
DE
2102009-06-05 David Edelsohn <edelsohn@gnu.org>
211
212 * xcoffout.h (xcoffout_source_line): Update prototype.
213
26a347c5
KG
2142009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
215
216 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
217 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
218
9f706f23
JJ
2192009-06-05 Jakub Jelinek <jakub@redhat.com>
220
221 PR middle-end/40340
222 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
223 inlined_function_outer_scope_p blocks for artificial inlines
224 even at -g0/-g1.
225 * tree.c (tree_nonartificial_location): Rewrite using
226 block_nonartificial_location.
227
8f439681
RE
2282009-06-05 Revital Eres <eres@il.ibm.com>
229 Leehod Baruch <leehod@il.ibm.com>
230
231 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
232 (expand_expr_real_1): Remove comment.
233 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
234 Vectorize misaligned access when the target supports it.
235 (vect_supportable_dr_alignment): Check for unaligned access
236 support.
237 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
238 and remove asset.
239
b89f8e3c
JB
2402009-06-05 Julian Brown <julian@codesourcery.com>
241
242 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
243 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
244
47d1f191
RG
2452009-06-05 Richard Guenther <rguenther@suse.de>
246
247 PR bootstrap/40350
248 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
249 as possibly unused.
250
9f706f23 2512009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
252
253 * config/s390/s390.c (global_not_special_regno_p): New static inline.
254 (save_gprs): Don't tell unwinder when a global register is saved.
255 (s390_emit_epilogue): Emit needed epilogue unwind info.
256
90f06248
AO
2572009-06-05 Alexandre Oliva <aoliva@redhat.com>
258
259 * dwarf2out.c (deferred_asm_name): New.
260 (add_name_and_src_coords_attributes): Defer creation of
261 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
262 computed yet.
263 (move_linkage_attr): New.
264 (dwarf2out_finish): Revisit deferrals and emit attributes at the
265 right place.
266
c10348e5
AO
2672009-06-05 Alexandre Oliva <aoliva@redhat.com>
268
269 * tree-nested.c (finalize_nesting_tree_1): Declare the
270 frame_decl in the binding tree.
271
6c52e687
CC
2722009-06-04 Cary Coutant <ccoutant@google.com>
273
274 * basic-block.h (struct basic_block_def): Add discriminator field.
275 * dbxout.c (dbxout_source_line): Add new parameter. Change all
276 callers.
277 * debug.c (do_nothing_debug_hooks): Add additional entry.
278 (debug_nothing_int_charstar_int): New function.
279 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
280 hook.
281 (debug_nothing_int_charstar_int): New declaration.
282 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
283 discriminator value in .loc directive.
284 * final.c (last_discriminator): New variable.
285 (discriminator): New variable.
286 (final_start_function): Initialize above variables, pass current
287 discriminator to debug hook.
288 (notice_source_line): Check for discriminator change.
289 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
290 * sdbout.c (sdbout_source_line): New parameter.
291 * tree-cfg.c (struct locus_discrim_map): New structure type.
292 (discriminator_per_locus): New hash table.
293 (build_gimple_cfg): Allocate and free discriminator hash table.
294 (make_edges): Call assign_discriminator.
295 (locus_map_hash): New function.
296 (locus_map_eq): New function.
297 (next_discriminator_for_locus): New function.
298 (same_line_p): New function.
299 (assign_discriminator): New function.
300 (make_cond_expr_edges): Call assign_discriminator.
301 (make_gimple_switch_edges): Likewise.
302 (first_non_label_stmt): New function.
303 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
304 all callers.
305 * xcoffout.c (xcoffout_source_line): Add new parameter.
306
307 * configure.ac (gcc_cv_as_discriminator): New configury check for
308 gas support for discriminator.
309 * configure: Regenerate.
310 * config.in: Regenerate.
311
e07e020b
RR
3122009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
313
314 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
315 val after checking for integers.
316
72fa3605
UB
3172009-06-04 Uros Bizjak <ubizjak@gmail.com>
318
319 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
320 X64_REGPARM_MAX.
321 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
322 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
323 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
324 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
325 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
326 X64_SSE_REGPARM_MAX.
327 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
328 X64_SSE_REGPARM_MAX.
329
bdde878c
AO
3302009-06-04 Alexandre Oliva <aoliva@redhat.com>
331
332 * gcc.c (report_times_to_file): New.
333 (execute): Implement it.
334 (process_command): Support -time=.
335 * doc/invoke.texi: Document it.
336
2ce59df7
AO
3372009-06-04 Alexandre Oliva <aoliva@redhat.com>
338
339 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
340 that have value exprs.
341
78bd9046
AO
3422009-06-04 Alexandre Oliva <aoliva@redhat.com>
343
344 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
345 declarations for constants until...
346 (dw2_output_indirect_constant_1): ... this point.
347
e63d4106
RE
3482009-06-04 Richard Earnshaw <rearnsha@arm.com>
349
350 PR target/10242
351 * arm.md (arm_addsi3): Don't try to split an add with an
352 eliminable register until after reload has completed.
353
6bc7bc14
ILT
3542009-06-03 Ian Lance Taylor <iant@google.com>
355
356 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
357 * genattrtab.c (write_length_unit_log): Likewise.
358 * genchecksum.c (dosum): Likewise.
359 * gengtype.c (write_rtx_next): Likewise.
360 (finish_root_table, write_roots): Likewise.
361 * gimple.c (gimple_ops_offset_): Likewise.
362 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
363 * config/arc/arc.c (arc_attribute_table): Likewise.
364 * config/arm/arm.c (arm_attribute_table): Likewise.
365 * config/avr/avr.c (avr_attribute_table): Likewise.
366 * config/crx/crx.c (crx_attribute_table): Likewise.
367 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
368 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
369 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
370 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
371 * config/sh/sh.c (sh_attribute_table): Likewise.
372 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
373 * config/spu/spu.c (spu_attribute_table): Likewise.
374 * config/v850/v850.c (v850_attribute_table): Likewise.
375
376 * config/alpha/alpha.c (vms_attribute_table): Make static.
377 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
378 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
379 * config/mips/mips.c (mips_attribute_table): Likewise.
380
381 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
382 $(SYSTEM_H).
383 (cc1-checksum.o): Likewise.
384
19d892fd
SE
3852009-06-03 Steve Ellcey <sje@cup.hp.com>
386
387 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
388
679f3354
JJ
3892009-06-03 Jakub Jelinek <jakub@redhat.com>
390
ff35822b
JJ
391 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
392 insn if it is changing sp. Use gen_add3_insn instead of
393 conditionally gen_addsi3 and gen_adddi3.
394 (offset_below_red_zone_p): New static inline function.
395 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
396 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
397 * config/rs6000/ppc-asm.h: Include auto-host.h.
398 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
399 CFI_RESTORE): Define.
400 * config/rs6000/crtresxgpr.asm: Add unwind info.
401 * config/rs6000/crtresxfpr.asm: Likewise.
402 * config/rs6000/crtresgpr.asm: Likewise.
403 * config/rs6000/crtresfpr.asm: Likewise.
404 * config/rs6000/crtsavgpr.asm: Likewise.
405 * config/rs6000/crtsavfpr.asm: Likewise.
406
679f3354
JJ
407 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
408 0 to second argument of DWARF2_FRAME_REG_OUT macros.
409
2e94c12d
JB
4102009-06-03 Julian Brown <julian@codesourcery.com>
411
412 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
413 words or less (including TImode) in core registers.
414
3111cce0
RG
4152009-06-03 Richard Guenther <rguenther@suse.de>
416
417 PR middle-end/40328
418 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
419
5e1b50f6
AB
4202009-06-03 Andrey Belevantsev <abel@ispras.ru>
421
422 * statistics.c (statistics_counter_event): Do not record event
423 in pass dump if its number == -1.
424 (curr_statistics_hash): Add assert that we never get passes
425 with static number == -1.
426
6f11d690
RG
4272009-06-03 Richard Guenther <rguenther@suse.de>
428 Andrey Belevantsev <abel@ispras.ru>
429
430 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
431 non-BLKmode arrays addressable.
432
88961471
MK
4332009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
434
435 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
436 * config/m68k/m68k.h: ... here.
437 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
438 m68k and fido.
439
9961eb45
MJ
4402009-06-03 Martin Jambor <mjambor@suse.cz>
441
442 PR tree-optimization/40323
443 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
444 assignment.
445
2f2c62a0
RG
4462009-06-03 Richard Guenther <rguenther@suse.de>
447
448 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
449 consistently.
450
d6ced3b7
SZ
4512009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
452
453 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
454 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
455 JUMP_TABLE_DATA_P where applicable.
456 * config/sh/sh.c: Ditto.
457 * config/sh/sh.h: Ditto.
458 * config/sh/sh.md: Ditto.
459 * config/sh/symbian.c: Ditto.
460
f3afc8a7
UB
4612009-06-03 Uros Bizjak <ubizjak@gmail.com>
462
463 * config/i386/driver-i386.c (describe_cache): Optimize
464 concatenation of strings. Use snprintf instead of sprintf.
465 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
466 target when not compiling with GCC.
467
1964788a
KK
4682009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
469
470 * config/sh/sh.c: Revert last change.
471 (sh_expand_epilogue): Emit a blockage insn before the frame
472 pointer adjustment unconditionally.
473
8633c315
RS
4742009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
475
476 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
477 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
478 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
479 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
480 to COLLECT_GCC_OPTIONS.
481
781a1758
RS
4822009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
483
484 * collect2.c (target_system_root): New variable.
485 (main): Handle --sysroot=.
486 (ignore_library): Strip the sysroot from the library path.
487
dfb636dc
RS
4882009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
489
490 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
491 (collect2.o): Depend on collect2-aix.h.
492 (collect2-aix.o): New rule.
493 * collect2-aix.h: New file.
494 * collect2-aix.c: Likewise.
495 * collect2.c: Include collect2-aix.h. Don't undefine
496 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
497 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
498 Use TARGET_AIX_VERSION instead of _AIX51.
499 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
500 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
501 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
502 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
503 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
504
51136ae8
RS
5052009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
506
507 * collect2.c (ignore_library): Avoid premature post-increment
508 and null deference.
509
7f142d33
RS
5102009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
511
512 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
513 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
514 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
515 CROSS_DIRECTORY_STRUCTURE too.
516 (LINK_LIBG_SPEC): Likewise.
517 (LIB_SPEC): Add %R to sysroot paths.
518 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
519 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
520 * config/rs6000/aix51.h: As for aix43.h.
521 * config/rs6000/aix52.h: Likewise.
522 * config/rs6000/aix53.h: Likewise.
523 * config/rs6000/aix61.h: Likewise.
524 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
525 to the beginning of sysroot paths.
526
9e74b7d2
AO
5272009-06-02 Alexandre Oliva <aoliva@redhat.com>
528
529 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
530 INSN_LISTs that are out of the REG_NOTE range.
531
a9f6ecee
AO
5322009-06-02 Alexandre Oliva <aoliva@redhat.com>
533
534 * loop-unroll.c (struct iv_to_split): Add pointer to next.
535 (struct var_to_expand): Likewise.
536 (struct opt_info): Add head and tail for linked lists of the above.
537 (analyze_insn_to_expand_var): Initialize next.
538 (analyze_iv_to_split_insn): Likewise.
539 (analyze_insns_in_loop): Create linked lists.
540 (allocate_basic_variable): Simplify for use without hash table.
541 (insert_var_expansion_initialization): Likewise, make it type-safer.
542 (combine_var_copies_in_loop_exit): Likewise.
543 (apply_opt_in_copies): Walk lists rather than hash tables.
544 (release_var_copies): Simplified and inlined by hand into...
545 (free_opt_info): ... this function.
546
69596c69
RG
5472009-06-02 Richard Guenther <rguenther@suse.de>
548
549 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
550 for field decls.
551
fe8a7779
AO
5522009-06-02 Alexandre Oliva <aoliva@redhat.com>
553
554 * cfgexpand.c (gimple_expand_cfg): Discard the source location
555 only for builtins that are not overridden.
556
1bcca2c5
AO
5572009-06-02 Alexandre Oliva <aoliva@redhat.com>
558
559 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
560 label string.
561
8588f797
AO
5622009-06-02 Alexandre Oliva <aoliva@redhat.com>
563
564 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
565
45f39d78
AO
5662009-06-02 Alexandre Oliva <aoliva@redhat.com>
567
568 * combine.c (move_deaths): Compare LUIDs within the same BB only.
569
2aa7c49b
AO
5702009-06-02 Alexandre Oliva <aoliva@redhat.com>
571
572 * common.opt (fdump-unnumbered-links): New.
573 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
574 * print-rtl.c (flag_dump_unnumbered_links): New.
575 (print_rtx): Test it.
576
55b2829b
RE
5772009-06-02 Richard Earnshaw <rearnsha@arm.com>
578
579 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
580 push/pop multiple to 8-byte alignment.
e63d4106 581
6c0d7021
JJ
5822009-06-01 Jakub Jelinek <jakub@redhat.com>
583
0aa34d44
JJ
584 * config/i386/i386.c (queued_cfa_restores): New static variable.
585 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
586 functions.
587 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
588 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
589 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
590 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
591 note unconditionally.
592 (ix86_emit_restore_regs_using_mov): Likewise.
593 (ix86_emit_restore_sse_regs_using_mov): Likewise.
594 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
595 it through to ix86_emit_restore_reg_using_pop.
596 (ix86_emit_leave): Add RED_OFFSET argument. Call
597 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
598 instead of adding REG_CFA_OFFSET note unconditionally.
599 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
600 the above functions. Call ix86_add_queued_cfa_restore_notes when
601 needed.
602
603 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
604 force output of the label even for dwarf2out_do_cfi_asm.
605 (add_fde_cfi): If -g2 and above and cfi might change CFA,
606 force creation of CFI label and chain DW_CFA_set_loc jumping to it
607 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
608 caller.
609 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
610 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
611 dwarf2out_cfi_label callers.
612 * tree.h (dwarf2out_cfi_label): Adjust prototype.
613 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
614 Adjust dwarf2out_cfi_label callers.
615 * config/vax/vax.c (vax_output_function_prologue): Likewise.
616
604a6be9
JJ
617 * config/i386/i386.h (struct machine_cfa_state,
618 struct machine_function): Guard with ifndef USED_FOR_TARGET
619 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
620
df0026a7
JJ
621 PR other/40024
622 * emutls.c (__emutls_get_address): Change arr->size to mean number
623 of allocated arr->data entries instead of # of slots + 1.
624
6c0d7021
JJ
625 PR middle-end/40316
626 * recog.c (peep2_reinit_state): New function.
627 (peephole2_init_state): Use it at the end of a basic block and also
628 when seeing a RTX_FRAME_RELATED_P insn.
629
49df2fb8
SE
6302009-06-01 Steve Ellcey <sje@cup.hp.com>
631
632 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
633 fixuns_truncrfdi2): New.
634 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
635 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
636 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
637 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
638 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
639 *recip_approx): Remove.
640 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
641 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
642 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
643 move to div.md.
644 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
645 setf_exp_rf): New.
646
67165eb3
ILT
6472009-06-01 Ian Lance Taylor <iant@google.com>
648
649 * attribs.c (register_attribute): Use CONST_CAST.
650 * collect2.c (main): Use CONST_CAST2.
651 (scan_prog_file): Likewise.
652 * gcc.c (process_command, main): Likewise.
653 * toplev.c (toplev_main): Likewise.
654
655 * c-typeck.c (handle_warn_cast_qual): New static function,
656 partially broken out of build_c_cast.
657 (build_c_cast): Call handle_warn_cast_qual.
658 * doc/invoke.texi (Warning Options): Document new effect of
659 -Wcast-qual.
660
e74fe492
AH
6612009-06-01 Aldy Hernandez <aldyh@redhat.com>
662
663 * diagnostic.c (diagnostic_build_prefix): Always print columns.
664 (diagnostic_report_current_module): Print columns.
665 * common.opt (flag_show_column): Enable by default.
666
7eba2d1f
LM
6672009-06-01 Luis Machado <luisgpm@br.ibm.com>
668
669 * alias.c (find_base_term): Check for NULL term before returning.
670
ee88d9aa
MK
6712009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
672
673 Revert due to PR40320:
ee88d9aa
MK
674 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
675 * calls.c (emit_library_call_value_1): Don't force_operand for move
676 and push insns.
677
324c9b02 6782009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 679 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
680
681 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
682 to be processed as a bitfield for constructor output purposes.
683 * output.h (initializer_constant_valid_for_bitfield_p): Declare
684 new function.
685 * varasm.c (oc_local_state): New type, output_constructor
686 local state to support communication with helpers.
687 (oc_outer_state): New type, output_constructor outer state of
688 relevance in recursive calls.
689 (output_constructor_array_range): New output_constructor helper,
690 extracted code for an array range element.
691 (output_constructor_regular_field): New output_constructor helper,
692 extracted code for an element that is not a bitfield.
693 (output_constructor_bitfield): New output_constructor helper,
694 extracted code for a bitfield element. Accept an OUTER state
695 argument for recursive processing. Recurse on record or array
696 CONSTRUCTOR values, possibly past noop conversions.
62295314 697 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
698 VALUE is a valid constant-valued expression for use in a static
699 bit-field initializer.
62295314
OH
700 (output_constructor): Rework to use helpers. Accept and honor an
701 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
702 prepared for nested constructors initializing bitfields.
703 (output_constant): Feed OUTER in calls to output_constructor.
704
0980d7fe
MK
7052009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
706
707 * calls.c (emit_library_call_value_1): Don't force_operand for move
708 and push insns.
709
29661412
NC
7102009-06-01 Nick Clifton <nickc@redhat.com>
711
712 * doc/invoke.texi (IA-64 Options): Fix typo.
713
e9dbe7bb
IR
7142009-06-01 Ira Rosen <irar@il.ibm.com>
715
716 PR tree-optimization/39129
717 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
718 printed message.
719 (vect_do_peeling_for_loop_bound): Use
720 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
721 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
722 (vect_loop_versioning): Likewise.
723 (vect_create_cond_for_alias_checks): Fix indentation.
724 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
725 macros.
726 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
727 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
728 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
729 "control flow in loop".
730 (vect_estimate_min_profitable_iters): Use
731 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
732 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
733 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
734 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
735 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
736 statement belongs to a group of strided accesses with the exact code
737 check.
738 (vectorizable_load): Likewise.
739 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
740 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
741
5ac69a80
GP
7422009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
743
744 * config/freebsd-stdint.h: New file.
745 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
746 Add freebsd-stdint.h to tm_file.
747
54b2b460
RE
7482009-06-01 Richard Earnshaw <rearnsha@arm.com>
749
750 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
751 (thumb2_extendhidi2): Likewise.
752
a7ca77cf
ILT
7532009-05-31 Ian Lance Taylor <iant@google.com>
754
f3afc8a7 755 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
756
7572009-05-31 Ian Lance Taylor <iant@google.com>
758
f3afc8a7 759 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
760 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
761 (ipa-reference.o): Depend upon gt-ipa-reference.h.
762
1aec401e
JM
7632009-05-31 Jason Merrill <jason@redhat.com>
764
765 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 766 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
767 (dump_generic_node): Adjust.
768 * diagnostic.h: Declare print_call_name.
769 * gimple-pretty-print.c (dump_gimple_call): Use it.
770
ed7910bb
KK
7712009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
772
773 * config/sh/sh.md (ashldi3_std): New define_expand.
774 (ashldi3): Use it.
775
47ea8d4e
KK
7762009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
777
778 PR target/40313
779 * config/sh/sh.c: Include debug.h.
780 (sh_expand_epilogue): Emit a blockage insn before the frame
781 pointer adjustment also when dwarf2out_do_frame returns true.
782
405e8b49
RE
7832009-05-31 Richard Earnshaw <rearnsha@arm.com>
784
785 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
786 (thumb2_extendqidi2): New pattern.
787
71ece343
IR
7882009-05-31 Ira Rosen <irar@il.ibm.com>
789
790 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
791 mark phis for renaming.
792 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
793 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
794 Call mark_sym_for_renaming.
795 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
796 * tree-vect-loop.c (vect_transform_loop): Remove
797 vect_memsyms_to_rename initialization and a call to
798 mark_set_for_renaming.
71ece343 799
b3041944
JJ
8002009-05-31 Jakub Jelinek <jakub@redhat.com>
801
802 PR middle-end/40304
803 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
804 frame related even if !set_cfa && style < 0.
805
a1bda0d7
KT
8062009-05-30 Kai Tietz <kai.tietz@onevision.com>
807
808 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
809 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
810 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
811 defining _WIN32 but not __CYGWIN__.
a1bda0d7 812
acd26225
KG
8132009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
814
815 * configure.ac: Add MPC support.
816
817 * config.in, configure: Regenerate.
818
cd9c1ca8
RH
8192009-05-29 Richard Henderson <rth@redhat.com>
820
821 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
822 NOTE_INSN_BASIC_BLOCK.
823 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
824 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
825 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
826 to be deleted.
827 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
828 add in_use field.
829 (add_cfi): Disable check redefining cfa away from drap.
830 (lookup_cfa_1): Add remember argument; handle remember/restore.
831 (lookup_cfa): Pass remember argument.
832 (cfa_remember): New.
833 (compute_barrier_args_size_1): Remove sibcall check.
834 (dwarf2out_frame_debug_def_cfa): New.
835 (dwarf2out_frame_debug_adjust_cfa): New.
836 (dwarf2out_frame_debug_cfa_offset): New.
837 (dwarf2out_frame_debug_cfa_register): New.
838 (dwarf2out_frame_debug_cfa_restore): New.
839 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
840 (dwarf2out_begin_epilogue): New.
841 (dwarf2out_frame_debug_restore_state): New.
842 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
843 DW_CFA_restore_state.
844 (output_cfi_directive): Likewise.
845 (convert_cfa_to_fb_loc_list): Likewise.
846 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
847 * dwarf2out.h: Update.
848 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
849 (copy_insn_1): Early out for null.
850 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
851 and dwarf2out_frame_debug_restore_state.
852 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
853 (prologue_insn_hash, epilogue_insn_hash): New.
854 (free_after_compilation): Adjust freeing accordingly.
855 (record_insns): Create hash table if needed; push insns into
856 hash instead of array.
857 (maybe_copy_epilogue_insn): New.
858 (contains): Search hash table instead of array.
859 (sibcall_epilogue_contains): Remove.
860 (thread_prologue_and_epilogue_insns): Split eh_return insns
861 and mark them as epilogues.
862 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
863 scanning in terms of basic blocks.
864 * insn-notes.def (CFA_RESTORE_STATE): New.
865 * jump.c (returnjump_p_1): Accept EH_RETURN.
866 (eh_returnjump_p_1, eh_returnjump_p): New.
867 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
868 CFA_REGISTER, CFA_RESTORE): New.
869 * rtl.def (EH_RETURN): New.
870 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
871
872 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
873 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
874
875 * config/i386/i386.c (gen_push): Update cfa state.
876 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
877 add a CFA_ADJUST_CFA note.
878 (ix86_dwarf_handle_frame_unspec): Remove.
879 (ix86_expand_prologue): Update cfa state.
880 (ix86_emit_restore_reg_using_pop): New.
881 (ix86_emit_restore_regs_using_pop): New.
882 (ix86_emit_leave): New.
883 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
884 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
885 * config/i386/i386.h (struct machine_cfa_state): New.
886 (ix86_cfa_state): New.
887 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
888 (eh_return_internal): Merge from eh_return_<mode>,
889 use eh_return rtx, split w/ epilogue.
890
72b5577d
ILT
8912009-05-29 Ian Lance Taylor <iant@google.com>
892
893 * builtins.c (validate_gimple_arglist): Don't use va_arg with
894 enum type.
895 * calls.c (emit_library_call_value_1): Likewise.
896
897 * c-typeck.c (c_build_va_arg): New function.
898 * c-tree.h (c_build_va_arg): Declare.
899 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
900 instead of build_va_arg.
901
7a2faca1
EB
9022009-05-29 Eric Botcazou <ebotcazou@adacore.com>
903
904 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
905 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
906 (ptr_difference_cost): Use affine combinations to compute it.
907 (difference_cost): Likewise.
908 (get_computation_cost_at): Compute more accurate cost for addresses
909 if the ratio is a multiplier allowed in addresses.
910 For non-addresses, consider that an additional offset or symbol is
911 added only once.
912
725fd454
JJ
9132009-05-29 Jakub Jelinek <jakub@redhat.com>
914
a0987204
JJ
915 * config/i386/i386.c (ix86_decompose_address): Avoid useless
916 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
917
725fd454
JJ
918 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
919 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
920 (prefix_rex): For UNIT_MMX don't imply the prefix by default
921 if MODE_DI.
922 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
923 to 1 for TYPE_SSE{IADD1,CVT1}.
924 (prefix_vex_imm8): Removed.
925 (length_vex): Only pass 1 as second argument to
926 ix86_attr_length_vex_default if prefix_extra is 0.
927 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
928 (length): For prefix vex computation use length_immediate
929 attribute instead of prefix_vex_imm8.
930 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
931 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
932 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
933 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
934 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
935 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
936 a space in between the operands.
937 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
938 if one operand is 0xff and the other one si, di, bp or sp.
939 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
940 other one si, di, bp or sp.
941 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
942 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
943 type and mode attributes.
944 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
945 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
946 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
947 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
948 prefix_data16 attribute iff MODE_DF.
949 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
950 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
951 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
952 constm128_operand in length_immediate computation.
953 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
954 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
955 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
956 length_immediate attribute to 1.
957 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
958 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
959 for certain alternatives.
960 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
961 prefix_data16 attribute if MODE_V1DF.
962 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
963 length_immediate to 1.
964 (set_got_rex64, set_rip_rex64): Remove length attribute, set
965 length_address to 4, set mode attribute to MODE_DI.
966 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
967 (fxam<mode>2_i387): Set length attribute to 4.
968 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
969 *prefetch_3dnow_rex): Override length_address attribute.
970 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
971 attributes.
972 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
973 (constm128_operand): Removed.
974 * config/i386/i386.c (memory_address_length): For
975 disp && !index && !base in 64-bit mode account for SIB byte if
976 print_operand_address can't optimize disp32 into disp32(%rip)
977 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
978 for fs: or gs: segment.
979 (ix86_attr_length_immediate_default): When checking if shortform
980 is possible, truncate immediate to the length of the non-shortened
981 immediate.
982 (ix86_attr_length_address_default): Ignore MEM_P operands
983 with X constraint.
984 (ix86_attr_length_vex_default): Only check for DImode on
985 GENERAL_REG_P operands.
986 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
987 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
988 (sse_cvttps2pi): Clear prefix_rep attribute.
989 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
990 attribute.
991 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
992 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
993 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
994 iff operand 2 is const_int_operand.
995 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
996 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
997 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
998 instead of vex.
999 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
1000 prefix_data16.
1001 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
1002 prefix_data16 attribute for movlpd and movhpd instructions.
1003 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
1004 length_immediate for shufpd instruction.
1005 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
1006 (avx_cmpp<avxmodesuffixf2c><mode>3,
1007 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
1008 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
1009 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 1010 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
1011 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
1012 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
1013 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
1014 prefix_data16 attribute for the first alternative to 1.
1015 (*avx_loadlps): Override length_immediate for the first alternative.
1016 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
1017 attributes for second alternative.
1018 (*vec_concatv2sf_sse4_1): Override length_immediate and
1019 prefix_data16 attributes for second alternative.
1020 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
1021 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
1022 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
1023 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
1024 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
1025 prefix_data16 and length_immediate to 1.
1026 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
1027 to 1.
1028 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 1029 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
1030 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
1031 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
1032 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
1033 *sse4_1_pextrd): Set length_immediate to 1.
1034 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
1035 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
1036 to 1.
1037 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
1038 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
1039 length_immediate to 1 for second alternative.
1040 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
1041 prefix_extra and length_immediate attributes for the first
1042 alternative.
1043 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
1044 first alternative.
1045 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
1046 to 1 for the first and third alternative.
1047 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
1048 alternative.
1049 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
1050 attribute.
1051 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
1052 attribute to 0.
1053 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
1054 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
1055 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
1056 *avx_psign<mode>3): Set prefix_extra attribute to 1.
1057 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
1058 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
1059 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
1060 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 1061 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
1062 (ssse3_palignrti): Override length_immediate to 1.
1063 (ssse3_palignrdi): Override length_immediate to 1, override
1064 prefix_rex attribute.
f3afc8a7 1065 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
1066 (sse4a_extrqi): Override length_immediate to 2.
1067 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
1068 (sse4a_insertq): Override prefix_data16 to 0.
1069 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
1070 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
1071 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
1072 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
1073 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
1074 and length_immediate to 1.
1075 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
1076 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
1077 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
1078 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
1079 and length_immediate to 1.
1080 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
1081 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
1082 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
1083 avx_ptest256): Override prefix_extra to 1.
1084 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
1085 Override prefix_data16 and length_immediate to 1.
1086 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
1087 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
1088 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
1089 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
1090 prefix_data16 to 0 and prefix_extra to 2.
1091 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
1092 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
1093 attribute.
1094 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
1095 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
1096 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
1097 and prefix_extra to 2.
1098 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
1099 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
1100 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
1101 avx_vpermilvar<mode>3,
1102 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
1103 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
1104 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
1105 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
1106 Override prefix_extra to 1.
1107 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
1108 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
1109 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
1110 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
1111 prefix_extra and length_immediate to 1.
1112 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
1113 modrm to 0.
1114 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
1115 to 1 for the first alternative.
1116 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
1117 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
1118 cases.
1119 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
1120 *movv2sf_internal_avx, *movv2sf_internal): Override
1121 prefix_rep attribute for certain alternatives.
1122 (*mov<mode>_internal): Override prefix_rep or prefix_data16
1123 attributes for certain alternatives.
1124 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
1125 attributes for certain alternatives.
1126 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
1127 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
1128 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
1129 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
1130 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
1131 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
1132 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
1133 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
1134 length_immediate to 1 if operand 2 is const_int_operand.
1135 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 1136 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
1137 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
1138 using old 3DNOW insn rather than SSE/3DNOW_A.
1139 (mmx_emms, mmx_femms): Clear modrm attribute.
1140
0674b9d0
MJ
11412009-05-29 Martin Jambor <mjambor@suse.cz>
1142
1143 * tree-sra.c: New implementation of SRA.
1144
1145 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
1146 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
1147 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
1148 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
1149 (SRA_MAX_STRUCTURE_COUNT): Removed.
1150 (SRA_FIELD_STRUCTURE_RATIO): Removed.
1151 * doc/invoke.texi (sra-max-structure-size): Removed.
1152 (sra-field-structure-ratio): Removed.
1153
616f21df
JJ
11542009-05-29 Jakub Jelinek <jakub@redhat.com>
1155
1156 PR middle-end/40291
1157 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
1158 before expansion.
1159
da7ba240
AB
11602009-05-29 Andrey Belevantsev <abel@ispras.ru>
1161
1162 PR rtl-optimization/40101
1163 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
1164 seqno. Adjust comment.
1165 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
1166 inserting bookkeeping before a jump, the jump is not scheduled.
1167 When no positive seqno found, provide a value. Add comment.
1168
71dcd609
RG
11692009-05-29 Richard Guenther <rguenther@suse.de>
1170
1171 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
1172 short-cutting on the first component.
1173
a900ae6b
JJ
11742009-05-29 Jakub Jelinek <jakub@redhat.com>
1175
1176 PR middle-end/39958
1177 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
1178 for trees other than decls/types.
1179
821bb7f8
RG
11802009-05-29 Richard Guenther <rguenther@suse.de>
1181
1182 * tree-ssa-operands.c (get_expr_operands): Do not handle
1183 INDIRECT_REFs in the handled-component case. Remove
1184 unused get_ref_base_and_extent case.
1185 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
1186 tree_low_cst and host_integerp where possible.
1187 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
1188 codes for equivalence.
1189 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
1190
e997fb9c
DB
11912009-05-29 David Billinghurst <billingd@gcc.gnu.org>
1192
1193 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
1194 to tmake_file for i[34567]86-*-cygwin*.
1195
58195b74
JJ
11962009-05-29 Jakub Jelinek <jakub@redhat.com>
1197
1198 PR target/40017
1199 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
1200 (altivec_categorize_keyword, init_vector_keywords,
1201 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
1202 similar to bool.
1203
055df276
KT
12042009-05-29 Kai Tietz <kai.tietz@onevision.com>
1205
1206 * tree.c (handle_dll_attribute): Check if node is
1207 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
1208
f5939ef3
RE
12092009-05-29 Richard Earnshaw <rearnsha@arm.com>
1210
1211 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
1212 component.
1213 (thumb2_zero_extendqidi2): Likewise.
1214
c185de40
KK
12152009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
1216
1217 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
1218 instead of gen_movrt.
1219 * config/sh/sh.md (movrt): Remove.
1220
bf3c6caf
SE
12212009-05-28 Steve Ellcey <sje@cup.hp.com>
1222
f3afc8a7 1223 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
1224 Add -msdata, -mfused-madd, -mno-inline-float-divide,
1225 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
1226 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
1227 -msched-prefer-non-control-spec-insns,
1228 -msched-stop-bits-after-every-cycle,
1229 -msched-count-spec-in-critical-path,
1230 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 1231 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
1232 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
1233 and -msched-spec-verbose.
1234
8a66e987
JM
12352009-05-28 Joseph Myers <joseph@codesourcery.com>
1236
f3afc8a7 1237 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
1238 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
1239 error if used.
1240 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
1241
b45d2719
RG
12422009-05-28 Richard Guenther <rguenther@suse.de>
1243
1244 * tree-ssa-alias.c (ao_ref_init): New function.
1245 (ao_ref_base): Likewise.
1246 (ao_ref_base_alias_set): Likewise.
1247 (ao_ref_alias_set): Likewise.
1248 (refs_may_alias_p_1): Change signature.
1249 (refs_may_alias_p): Adjust.
1250 (refs_anti_dependent_p): Likewise.
1251 (refs_output_dependent_p): Likewise.
1252 (call_may_clobber_ref_p_1): Change signature.
1253 (call_may_clobber_ref_p): Adjust.
1254 (stmt_may_clobber_ref_p_1): New function split out from ...
1255 (stmt_may_clobber_ref_p): ... here.
1256 (maybe_skip_until): Adjust signature.
1257 (get_continuation_for_phi): Likewise.
1258 (walk_non_aliased_vuses): Likewise.
1259 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
1260 (ao_ref_init): Declare.
1261 (ao_ref_base): Likewise.
1262 (ao_ref_alias_set): Likewise.
1263 (stmt_may_clobber_ref_p_1): Likewise.
1264 (walk_non_aliased_vuses): Adjust.
1265 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
1266 (get_ref_from_reference_ops): remove.
1267 (vn_reference_lookup_2): Adjust signature.
1268 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 1269 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
1270 (vn_reference_lookup): Adjust.
1271 (vn_reference_insert): Likewise.
1272 (vn_reference_insert_pieces): Adjust signature.
1273 (visit_reference_op_call): Adjust.
1274 * tree-ssa-pre.c (get_expr_type): Simplify.
1275 (phi_translate_1): Adjust.
1276 (compute_avail): Likewise.
1277 (translate_vuse_through_block): Do not re-build trees.
1278 (value_dies_in_block_x): Likewise.
1279 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
1280 fields.
1281 (vn_reference_lookup_pieces): Adjust declaration.
1282 (vn_reference_insert_pieces): Likewise.
1283
554223b6
BK
12842009-05-28 Benjamin Kosnik <bkoz@redhat.com>
1285
1286 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
1287 with checking disabled.
1288
233215fe
DK
12892009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
1290
1291 PR target/37216
1292
1293 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
1294 macro definition for support of three-operand format aligned
1295 .comm directive in assembler on cygwin/pe/mingw target OS.
1296 * configure: Regenerate.
1297 * config.h: Regenerate.
1298
1299 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
1300 aligned form of .comm directive if -mpe-aligned-commons is in effect.
1301 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
1302
1303 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
1304 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
1305
24adb18f
IR
13062009-05-28 Ira Rosen <irar@il.ibm.com>
1307
1308 PR tree-optimization/40254
1309 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
1310 in analysis of basic blocks.
1311
2c5bfdf7
AN
13122009-05-28 Adam Nemet <anemet@caviumnetworks.com>
1313
1314 PR middle-end/33699
f3afc8a7 1315 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
1316 * target-def.h (TARGET_CONST_ANCHOR): New macro.
1317 (TARGET_INITIALIZER): Use it.
1318 * cse.c (CHEAPER): Move it up to the other macros.
1319 (insert): Rename this ...
1320 (insert_with_costs): ... to this. Add cost parameters. Update
1321 function comment.
1322 (insert): New function. Call insert_with_costs.
1323 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
1324 find_reg_offset_for_const, try_const_anchors): New functions.
1325 (cse_insn): Call try_const_anchors. Adjust cost of src_related
1326 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 1327 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
1328 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
1329
9e6aced0
AO
13302009-05-28 Alexandre Oliva <aoliva@redhat.com>
1331
1332 * tree-inline.c (remap_decls): Enable nonlocalized variables
1333 when not optimizing.
1334
89fbbe4e
AO
13352009-05-28 Alexandre Oliva <aoliva@redhat.com>
1336
1337 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
1338 Simplify other tests involving optimize.
1339
e455776a
TT
13402009-05-27 Tom Tromey <tromey@redhat.com>
1341
1342 * unwind-dw2.c (_Unwind_DebugHook): New function.
1343 (uw_install_context): Call _Unwind_DebugHook.
1344
cea32bca
TT
13452009-05-27 Tom Tromey <tromey@redhat.com>
1346
1347 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
1348
c607156f
ILT
13492009-05-27 Ian Lance Taylor <iant@google.com>
1350
1351 * Makefile.in (LINKER, LINKER_FLAGS): Define.
1352 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
1353 (ALL_LINKERFLAGS): Define.
1354 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
1355 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1356 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
1357 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1358 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
1359 $(LINKER_FOR_BUILD).
1360 (build/gcov-iov$(build_exeext)): Likewise.
1361
ec0a1343
JB
13622009-05-27 Julian Brown <julian@codesourcery.com>
1363
1364 * gcse.c (target.h): Include.
1365 (can_assign_to_reg_without_clobbers_p): Check that the target allows
1366 copy of argument to a pseudo register.
1367
ac80ba07
DN
13682009-05-27 Diego Novillo <dnovillo@google.com>
1369
1370 * tree-ssa-live.c (dump_scope_block): Document arguments.
1371 (dump_scope_blocks): Document.
1372 (debug_scope_blocks): New.
1373 * tree-flow.h (debug_scope_blocks): Declare.
1374
d1803a17
DC
13752009-05-21 Denis Chertykov <denisc@overta.ru>
1376
f3afc8a7 1377 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 1378
51fb7760 13792009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
1380
1381 * expr.c (target_align): New function. Alignment the TARGET of an
1382 assignment may be assume to have.
1383 (highest_pow2_factor_for_target): Use it instead of relying on
1384 immediate tree attributes of TARGET, not necessarily honored when
1385 intermediate bitfields are involved.
1386
634fa334
L
13872009-05-27 H.J. Lu <hongjiu.lu@intel.com>
1388
1389 PR target/40266
1390 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1391 AVX, SSE4, AES, PCLMUL and POPCNT.
1392
65332587
DN
13932009-05-27 Diego Novillo <dnovillo@google.com>
1394
1395 * tree-pretty-print.c (dump_location): New.
1396 (dump_generic_node): Call it.
1397 Factor code to handle BLOCK nodes ...
1398 (dump_block_node): ... here.
1399
3e17e31d
RAE
14002009-05-27 Rafael Avila de Espindola <espindola@google.com>
1401
f3afc8a7
UB
1402 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
1403 with it.
3e17e31d
RAE
1404 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
1405 included.
1406 * gcc-plugin.h: Include config.h and system.h.
1407 (IN_GCC): Define if not defined.
1408
5e370570
HPN
14092009-05-27 Hans-Peter Nilsson <hp@axis.com>
1410
1411 PR middle-end/40249
1412 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
1413 with -fno-inline.
1414
d000f0d9
SZ
14152009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
1416
1417 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
1418 applicable.
1419 * config/m32r/m32r.h: Ditto.
1420 * config/m32r/m32r.md: Ditto.
1421 * config/m32r/predicates.md: Ditto.
1422
82f331ff
AO
14232009-05-27 Alexandre Oliva <aoliva@redhat.com>
1424
1425 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
1426
ae2392a9
BS
14272009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
1428
1429 * doc/plugins.texi
1430 (Loading plugins): typo.
1431 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
1432 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1433 (Interacting with the GCC Garbage Collector): Added new section.
1434 (Giving information about a plugin): Added new section for
1435 PLUGIN_INFO.
ae2392a9
BS
1436 * ggc.h (ggc_register_root_tab): Added declaration.
1437 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
1438 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
1439 (register_callback): Improved comment in declaration.
f3afc8a7
UB
1440 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
1441 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
1442 (ggc_register_root_tab) Added new routine.
1443 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
1444 PLUGIN_GGC_MARKING event.
1445 * ggc-zone.c: Include plugin.h.
1446 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1447 * ggc-page.c: Include plugin.h.
1448 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1449 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
1450 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
1451 (register_callback): check lack of callbacks for
1452 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
1453 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
1454 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
1455 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1456 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
1457 dependency on plugin.h.
1458 (plugin.o): Added dependency on ggc.h...
1459
f0cfd3a8
RG
14602009-05-26 Richard Guenther <rguenther@suse.de>
1461
1462 PR middle-end/40248
1463 Revert
1464 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1465 with mismatched comparison modes.
1466
1467 * expr.c (expand_expr_real_1): Expand the operand of a
1468 VIEW_CONVERT_EXPR in its natural mode.
1469
7980bfb8
ILT
14702009-05-26 Ian Lance Taylor <iant@google.com>
1471
1472 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
1473 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
1474 (ALL_COMPILERFLAGS): Define.
1475 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
1476 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1477 (collect2$(exeext), collect2.o): Likewise.
1478 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
1479 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
1480 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
1481 (libbackend.o, intl.o, cppdefault.o): Likewise.
1482 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1483 (build/%.o): Use $(COMPILER_FOR_BUILD).
1484 (build/gen%$(build_exeext)): Likewise.
1485 (build/gcov-iov$(build_exeext)): LIkewise.
1486 * config/t-darwin (darwin.o): Use $(COMPILER).
1487 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
1488 * config/t-sol2 (sol2-c.o): Likewise.
1489 (sol2.o): Likewise.
1490 * config/t-vxworks (vxworks.o): Likewise.
1491 * config/x-darwin (host-darwin.o): Likewise.
1492 * config/x-hpux (host-hpux.o): Likewise.
1493 * config/x-linux (host-linux.o): Likewise.
1494 * config/x-solaris (host-solaris.o): Likewise.
1495 * config/alpha/x-alpha (driver-alpha.o): Likewise.
1496 * config/arm/t-arm (arm-c.o): Likewise.
1497 * config/arm/t-pe (pe.o): Likewise.
1498 * config/arm/t-wince-pe (pe.o): Likewise.
1499 * config/i386/t-cygming (winnt.o): Likewise.
1500 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
1501 * config/i386/t-cygwin (cygwin1.o): Likewise.
1502 (cygwin2.o): Likewise.
1503 * config/i386/t-i386 (i386-c.o): Likewise.
1504 * config/i386/t-interix (winnt.o): Likewise.
1505 * config/i386/t-netware (netware.o): Likewise.
1506 * config/i386/t-nwld (nwld.o): Likewise.
1507 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
1508 * config/i386/x-i386 (driver-i386.o): Likewise.
1509 * config/i386/x-cygwin (host-cygwin.o): Likewise.
1510 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
1511 * config/ia64/t-ia64 (ia64-c.o): Likewise.
1512 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
1513 * config/mips/x-native (driver-native.o): Likewise.
1514 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
1515 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
1516 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
1517 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
1518 * config/score/t-score-elf (score7.o): Likewise.
1519 (score3.o): Likewise.
1520 * config/sh/t-sh (sh-c.o): Likewise.
1521 * config/sh/t-symbian (sh-c.o): Likewise.
1522 (symbian.o): Likewise.
1523 * config/spu/t-spu-elf (spu-c.o): Likewise.
1524 * config/v850/t-v850 (v850-c.o): Likewise.
1525 * config/v850/t-v850e (v850-c.o): Likewise.
1526
23977d3c
RG
15272009-05-26 Richard Guenther <rguenther@suse.de>
1528
1529 PR tree-optimization/40122
1530 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
1531 VECTOR_CSTs if possible.
1532 (fold_gimple_assign): Likewise.
1533
3d62b895
RG
15342009-05-26 Richard Guenther <rguenther@suse.de>
1535
1536 PR middle-end/40252
1537 * fold-const.c (fold_binary): Use the correct types for building
1538 rotates.
1539
12346147
RG
15402009-05-26 Richard Guenther <rguenther@suse.de>
1541
1542 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
1543 redundant calls to merge_alias_info.
1544 (bump_vector_ptr): Likewise.
1545 * tree-ssa-copy.c (merge_alias_info): Remove.
1546 (replace_exp_1): Remove call to merge_alias_info.
1547 (propagate_tree_value): Likewise.
1548 (fini_copy_prop): Propagate points-to info.
1549 * tree-flow.h (merge_alias_info): Remove.
1550
807d5e6f
HS
15512009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1552
1553 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
1554
85057983
JH
15552009-05-25 Jan Hubicka <jh@suse.cz>
1556
1557 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1558 * cgraph.h (struct inline_summary): New filed self_wize,
1559 size_inlining_benefit, self_time and time_inlining_benefit.
1560 (struct cgraph_global_info): Replace insns by time ans size fields.
1561 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1562 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1563 (ipcp_update_callgraph): Do not touch function bodies.
1564 * ipa-inline.c: Include except.h
1565 (MAX_TIME): New constant.
1566 (overall_insns): Remove.
1567 (leaf_node_p): New.
1568 (overall_size, max_benefit): New static variables.
1569 (cgraph_estimate_time_after_inlining): New function.
1570 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1571 (cgraph_clone_inlined_nodes): Update size.
1572 (cgraph_mark_inline_edge): Update size.
1573 (cgraph_estimate_growth): Use size info.
1574 (cgraph_check_inline_limits): Check size.
1575 (cgraph_default_inline_p): Likewise.
1576 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1577 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
1578 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
1579 and times.
85057983
JH
1580 (cgraph_decide_inlining): Likewise.
1581 (cgraph_decide_inlining_incrementally): Likewise; honor
1582 PARAM_EARLY_INLINING_INSNS.
1583 (likely_eliminated_by_inlining_p): New predicate.
1584 (estimate_function_body_sizes): New function.
1585 (compute_inline_parameters): Use it.
1586 * except.c (must_not_throw_labels): New function.
1587 * except.h (must_not_throw_labels): Declare.
1588 * tree-inline.c (init_inline_once): Kill inlining_weigths
1589 * tree-ssa-structalias.c: Avoid uninitialized warning.
1590 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1591 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1592 (PARAM_INLINE_CALL_COST): Remove.
1593 (PARAM_EARLY_INLINING_INSNS): New.
1594
01df5c8a
RG
15952009-05-25 Richard Guenther <rguenther@suse.de>
1596
1597 PR tree-optimization/36327
1598 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 1599 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
1600 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1601 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
1602 for union COMPONENT_REFs.
1603 (vn_reference_lookup_3): New callback. Lookup from memset
1604 and CONSTRUCTOR assignment, translate through struct copies.
1605 (vn_reference_lookup_pieces): Make sure to not free the
1606 passed operands array. Adjust walk_non_aliased_vuses call.
1607 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
1608 make sure we do not leak memory.
1609
6b8ed145
RG
16102009-05-25 Richard Guenther <rguenther@suse.de>
1611
1612 * tree-ssa-alias.h (dump_points_to_solution): Declare.
1613 * tree-inline.c (expand_call_inline): Reset the escaped and
1614 callused solutions.
1615 * tree-ssa-structalias.c (pass_build_ealias): New.
1616 * tree-pass.h (pass_build_ealias): Declare.
1617 * passes.c (init_optimization_passes): Add PTA during
1618 early optimizations.
1619 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
1620 and CALLUSED solutions.
1621 (dump_points_to_solution): New function, split out from ...
1622 (dump_points_to_info_for): ... here.
1623 * tree-parloops.c (parallelize_loops): Reset the escaped and
1624 callused solutions.
1625
0adcf178
RO
16262009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1627
1628 PR bootstrap/40027
1629 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
1630 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
1631
12aaf609
IR
16322009-05-25 Ira Rosen <irar@il.ibm.com>
1633
1634 PR tree-optimization/40238
1635 * tree-vect-stmts.c (vect_init_vector): Insert initialization
1636 statements after basic block's labels.
1637 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
1638 to free the allocated memory.
1639
7f9a14e3
KK
16402009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
1641
1642 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
1643 return address with a USE.
1644
b842d478
RG
16452009-05-24 Richard Guenther <rguenther@suse.de>
1646
1647 PR middle-end/40233
1648 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
1649 array type from the main variant of the inner type.
1650
8db7b33f
JBG
16512009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1652
1653 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
1654 definition to bool (from int) to un-break build.
1655 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
1656
cff4e50d
PB
16572009-05-24 Paolo Bonzini <bonzini@gnu.org>
1658
1659 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
1660 discard_stmt_changes): Delete.
1661 * tree-ssa-operands.c (scb_stack): Delete.
1662 (init_ssa_operands): Do not initialize it.
1663 (fini_ssa_operands): Do not free it.
1664 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
1665
1666 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
1667 update_stmt, remove the others. Fix comments.
1668 * tree-dfa.c (optimize_stack_restore): Likewise.
1669 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
1670 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
1671 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1672 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
1673 Likewise.
1674 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1675 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
1676 (dom_opt_finalize_block): Likewise, adjusting access to
1677 stmts_to_rescan.
cff4e50d
PB
1678 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
1679 (stmts_to_rescan): Change item type to gimple.
1680 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
1681
a70d6342
IR
16822009-05-24 Ira Rosen <irar@il.ibm.com>
1683
1684 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
1685 * tree-pass.h (pass_slp_vectorize): New pass.
1686 * params.h (SLP_MAX_INSNS_IN_BB): Define.
1687 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
1688 * tree-vectorizer.c (timevar.h): Include.
1689 (user_vect_verbosity_level): Declare.
1690 (vect_location): Fix comment.
1691 (vect_set_verbosity_level): Update user_vect_verbosity_level
1692 instead of vect_verbosity_level.
1693 (vect_set_dump_settings): Add an argument. Ignore user defined
1694 verbosity if dump flags require higher level of verbosity. Print to
1695 stderr only for loop vectorization.
1696 (vectorize_loops): Update call to vect_set_dump_settings.
1697 (execute_vect_slp): New function.
1698 (gate_vect_slp): Likewise.
1699 (struct gimple_opt_pass pass_slp_vectorize): New.
1700 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
1701 access its members.
1702 (vec_info_for_bb): New function.
1703 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
1704 (VECTORIZATION_ENABLED): New macro.
1705 (SLP_ENABLED, SLP_DISABLED): Likewise.
1706 (vect_is_simple_use): Add bb_vec_info argument.
1707 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
1708 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
1709 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
1710 vect_schedule_slp, vect_analyze_slp): Likewise.
1711 (vect_analyze_stmt): Add slp_tree argument.
1712 (find_bb_location): Declare.
1713 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1714 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
1715 (vect_analyze_loop_operations, vect_analyze_loop,
1716 get_initial_def_for_induction, vect_create_epilog_for_reduction,
1717 vect_finalize_reduction, vectorizable_reduction,
1718 vectorizable_live_operation, vect_transform_loop): Likewise.
1719 * tree-data-ref.c (dr_analyze_innermost): Update comment,
1720 skip evolution analysis if analyzing a basic block.
1721 (dr_analyze_indices): Likewise.
1722 (initialize_data_dependence_relation): Skip the test whether the
1723 object is invariant for basic blocks.
1724 (compute_all_dependences): Skip dependence analysis for data
1725 references in basic blocks.
1726 (find_data_references_in_stmt): Don't fail in case of invariant
1727 access in basic block.
1728 (find_data_references_in_bb): New function.
1729 (find_data_references_in_loop): Move code to
782dc37a 1730 find_data_references_in_bb and add a call to it.
a70d6342
IR
1731 (compute_data_dependences_for_bb): New function.
1732 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
1733 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
1734 that STEP is 0.
1735 (vect_analyze_data_ref_dependence): Check for interleaving in case of
1736 unknown dependence in basic block and fail in case of dependence in
1737 basic block.
1738 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
1739 dependence instances from either loop or basic block vectorization
1740 info.
1741 (vect_compute_data_ref_alignment): Check if it is loop vectorization
1742 before calling nested_in_vect_loop_p.
1743 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
1744 dependence instances from either loop or basic block vectorization
1745 info.
1746 (vect_verify_datarefs_alignment): Likewise.
1747 (vect_enhance_data_refs_alignment): Adjust function calls.
1748 (vect_analyze_data_refs_alignment): Likewise.
1749 (vect_analyze_group_access): Fix printing. Skip different checks if
1750 DR_STEP is 0. Keep strided stores either in loop or basic block
1751 vectorization data structure. Fix indentation.
1752 (vect_analyze_data_ref_access): Fix comments, allow zero step in
1753 basic blocks.
1754 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
1755 dependence instances from either loop or basic block vectorization
1756 info.
1757 (vect_analyze_data_refs): Update comment. Call
1758 compute_data_dependences_for_bb to analyze basic blocks.
1759 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
1760 case of loop vectorization. In case of basic block vectorization use
782dc37a 1761 data-ref itself as a base.
a70d6342
IR
1762 (vect_create_data_ref_ptr): In case of basic block vectorization:
1763 don't advance the pointer, add new statements before the current
1764 statement. Adjust function calls.
1765 (vect_supportable_dr_alignment): Support only aligned accesses in
1766 basic block vectorization.
1767 * common.opt (ftree-slp-vectorize): New flag.
1768 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
1769 (vect_pattern_recog_1): Likewise.
1770 * tree-vect-stmts.c (process_use): Likewise.
1771 (vect_init_vector): Add new statements in the beginning of the basic
1772 block in case of basic block SLP.
1773 (vect_get_vec_def_for_operand): Adjust function calls.
1774 (vect_finish_stmt_generation): Likewise.
1775 (vectorizable_call): Add assert that it is loop vectorization, adjust
1776 function calls.
1777 (vectorizable_conversion, vectorizable_assignment): Likewise.
1778 (vectorizable_operation): In case of basic block SLP, take
1779 vectorization factor from statement's type and skip the relevance
1780 check. Adjust function calls.
1781 (vectorizable_type_demotion): Add assert that it is loop
1782 vectorization, adjust function calls.
1783 (vectorizable_type_promotion): Likewise.
1784 (vectorizable_store): Check for outer loop only in case of loop
1785 vectorization. Adjust function calls. For basic blocks, skip the
1786 relevance check and don't advance pointers.
1787 (vectorizable_load): Likewise.
1788 (vectorizable_condition): Add assert that it is loop vectorization,
1789 adjust function calls.
1790 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1791 that it is not reduction, get vector type, call only supported
782dc37a 1792 functions, skip loop specific parts.
a70d6342
IR
1793 (vect_transform_stmt): Check for outer loop only in case of loop
1794 vectorization.
1795 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1796 (vect_is_simple_use): Fix comment, add new argument, fix conditions
1797 for external definition.
1798 * passes.c (pass_slp_vectorize): New pass.
1799 * tree-vect-slp.c (find_bb_location): New function.
1800 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1801 check for patterns only in loops.
1802 (vect_build_slp_tree): Add argument, adjust function calls, fail in
1803 case of multiple types in basic block SLP.
1804 (vect_mark_slp_stmts_relevant): New function.
1805 (vect_supported_load_permutation_p): Fix comment.
1806 (vect_analyze_slp_instance): Add argument. In case of basic block
1807 SLP, take vectorization factor from statement's type, check that
1808 unrolling factor is 1. Adjust function call. Save SLP instance in
1809 either loop or basic block vectorization structure. Return FALSE,
1810 if SLP failed.
1811 (vect_analyze_slp): Add argument. Get strided stores groups from
1812 either loop or basic block vectorization structure. Return FALSE
1813 if basic block SLP failed.
1814 (new_bb_vec_info): New function.
1815 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1816 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1817 (vect_schedule_slp): Add argument. Get SLP instances from either
1818 loop or basic block vectorization structure. Set vectorization factor
1819 to be 1 for basic block SLP.
1820 (vect_slp_transform_bb): New function.
1821 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1822
0676c393
MM
18232009-05-23 Mark Mitchell <mark@codesourcery.com>
1824
1825 * final.c (shorten_branches): Do not align labels for jump tables.
1826 (final_scan_insn): Use JUMP_TABLE_DATA_P.
1827
94324dae
EB
18282009-05-23 Eric Botcazou <ebotcazou@adacore.com>
1829
1830 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1831 Remove outdated reference to flow.c and fix nits.
1832 * doc/gccint.texi: Tweak RTL description.
1833 * doc/rtl.texi: Likewise.
1834
92bffc14
DC
18352009-05-23 Denis Chertykov <chertykov@gmail.com>
1836
1837 * config/avr/avr.c: Change my email address.
1838 * config/avr/avr.h: Likewise.
1839 * config/avr/avr.md: Likewise.
1840 * config/avr/avr-protos.h: Likewise.
1841 * config/avr/libgcc.S: Likewise.
1842
eec9405e
TS
18432009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1844
1845 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1846 (spu_split_load, spu_split_store): Change return type to int.
1847 (spu_split_convert): Declare.
1848 * config/spu/predicates.md (spu_mem_operand): Remove.
1849 (spu_mov_operand): Update.
1850 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1851 * config/spu/spu.c (regno_aligned_for_load): Remove.
1852 (reg_aligned_for_addr, spu_expand_load): Define.
1853 (spu_expand_extv): Reimplement and handle MEM.
1854 (spu_expand_insv): Handle MEM.
1855 (spu_sched_reorder): Handle insn's with length 0.
1856 (spu_legitimate_address_p): Reimplement.
1857 (store_with_one_insn_p): Return TRUE for any mode with size
1858 larger than 16 bytes.
1859 (address_needs_split): Define.
1860 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1861 operands.
1862 (spu_convert_move): Define.
782dc37a 1863 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
1864 (spu_split_store): Change all MEM's to TImode.
1865 (spu_init_expanders): Preallocate registers that correspond to
1866 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1867 mark_reg_pointer.
1868 (spu_split_convert): Define.
1869 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1870 (_move<mode>, _movdi, _movti): Update predicate and condition.
1871 (load, store): Change to define_split.
1872 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1873 extend<mode>ti2.
1874 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1875 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1876 define_insn_and_split of lshr<mode>3.
1877 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1878 (<v>ashr<mode>3_imm): Define.
1879 (extv, extzv, insv): Allow MEM operands.
1880 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1881 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1882 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1883 (_spu_convert2): Change to define_insn_and_split and remove the
1884 corresponding define_peephole2.
1885 (stack_protect_set, stack_protect_test, stack_protect_test_si):
1886 Change predicates to memory_operand.
1887
7d31a807
MM
18882009-05-22 Mark Mitchell <mark@codesourcery.com>
1889
1890 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 1891
d021d274
MM
18922009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1893
1894 PR tree-optimization/40219
1895 * tree.c (iterative_hash_expr): Make sure the builtin function is
1896 a normal builtin function and not a front end or back end builtin
1897 before indexing into the built_in_decls array.
1898
4d7a65ea
RG
18992009-05-22 Richard Guenther <rguenther@suse.de>
1900
1901 PR middle-end/38964
1902 * alias.c (write_dependence_p): Do not use TBAA for answering
1903 anti-dependence or output-dependence.
782dc37a 1904 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
1905 (emit_pointer_definition): Remove.
1906 (emit_alias_warning): Likewise.
1907 (find_what_var_points_to): Remove TBAA pruning code.
1908 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
1909 violations.
1910 (compute_points_to_sets): Remove code computing the set of
1911 dereferenced pointers.
1912 * tree-data-ref.c (dr_may_alias_p): Properly use the split
1913 oracle for querying anti and output dependencies.
1914 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1915 if TBAA may be applied.
1916 (refs_anti_dependent_p): New function.
1917 (refs_output_dependent_p): Likewise.
1918 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1919 (refs_output_dependent_p): Likewise.
1920 * doc/tree-ssa.texi (Memory model): New section.
1921 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1922 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1923 * cfgexpand.c (expand_gimple_basic_block): Do not handle
1924 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1925 * expr.c (expand_expr_real_1): Likewise.
1926 * gimple-low.c (lower_stmt): Likewise.
1927 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1928 (dump_gimple_cdt): Remove.
1929 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1930 (gimple_size): Likewise.
1931 (walk_gimple_op): Likewise.
1932 (is_gimple_stmt): Likewise.
1933 (walk_stmt_load_store_addr_ops): Likewise.
1934 (gimple_build_cdt): Remove.
1935 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1936 * gimple.h (gimple_cdt_new_type): Remove.
1937 (gimple_cdt_new_type_ptr): Likewise.
1938 (gimple_cdt_set_new_type): Likewise.
1939 (gimple_cdt_location): Likewise.
1940 (gimple_cdt_location_ptr): Likewise.
1941 (gimple_cdt_set_location): Likewise.
1942 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1943 * tree-cfg.c (remove_useless_stmts_1): Do not handle
1944 GIMPLE_CHANGE_DYNAMIC_TYPE.
1945 (verify_types_in_gimple_stmt): Likewise.
1946 * tree-inline.c (estimate_num_insns): Likewise.
1947 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1948 (copy_decl_to_var): Likewise.
1949 (copy_result_decl_to_var): Likewise.
1950 * tree-pretty-print.c (dump_generic_node): Do not handle
1951 CHANGE_DYNAMIC_TYPE_EXPR.
1952 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1953 * tree-ssa-operands.c (get_expr_operands): Likewise.
1954 * tree-ssa-structalias.c (struct variable_info): Remove
1955 no_tbaa_pruning member.
1956 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1957 (unify_nodes): Do not copy it.
1958 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1959 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1960 (set_uids_in_ptset): Do not check it.
1961 (find_what_var_points_to): Likewise.
1962 (compute_tbaa_pruning): Remove.
1963 (compute_points_to_sets): Do not call it.
1964 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1965 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1966 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
1967 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
1968 (DECL_NO_TBAA_P): Likewise.
1969 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
1970 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
1971 (expand_omp_atomic_pipeline): Do not set it.
1972 * print-tree.c (print_node): Do not dump it.
1973 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1974 redundant check.
1975
83a6ac60
VM
19762009-05-22 Vladimir Makarov <vmakarov@redhat.com>
1977
1978 PR target/39856
1979 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
1980 for clobber.
1981
fe2978fb
MM
19822009-05-22 Mark Mitchell <mark@codesourcery.com>
1983
1984 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
1985 non-external.
1986
134ef638
BE
19872009-05-22 Ben Elliston <bje@au.ibm.com>
1988
1989 * Makefile.in (bversion.h, s-bversion): New targets.
1990 (TOPLEV_H): Add bversion.h.
1991 * toplev.h: Include "bversion.h".
1992 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
1993 the __format__ attribute only if compiling with the same version
1994 of GCC as the sources (the "build version").
1995
52fc669d
BE
19962009-05-22 Ben Elliston <bje@au.ibm.com>
1997
1998 * c-format.c (handle_format_attribute): Fix comment typo.
1999
583ca921
SE
20002009-05-21 Steve Ellcey <sje@cup.hp.com>
2001
2002 PR target/37846
2003 * config/ia64/ia64.opt (mfused-madd): New.
2004 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
2005 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
2006 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
2007 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
2008 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
2009 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
2010 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
2011 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
2012 instruction if !TARGET_FUSED_MADD.
2013 (fpma, fpms): Remove colon from name.
2014
150e3929
RG
20152009-05-22 Richard Guenther <rguenther@suse.de>
2016
2017 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
2018 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
2019 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2020 TARGET_MEM_REF.
2021 (create_expression_by_pieces): Only convert if necessary.
2022 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
2023 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
2024
9a2b090c
AN
20252009-05-21 Adam Nemet <anemet@caviumnetworks.com>
2026
2027 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
2028 regular pattern from a template and rename it ...
2029 (*extzv_truncsi_exts): ... to this.
2030
33b92c9d
RG
20312009-05-21 Richard Guenther <rguenther@suse.de>
2032
2033 * cgraph.h (struct cgraph_node): Remove inline_decl member.
2034 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
2035 (cgraph_default_inline_p): Likewise.
2036 (cgraph_decide_inlining_incrementally): Likewise.
2037
cabf85c3
L
20382009-05-21 H.J. Lu <hongjiu.lu@intel.com>
2039 Uros Bizjak <ubizjak@gmail.com>
2040
2041 * config/i386/cpuid.h (bit_MOVBE): New.
2042
2043 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2044
2045 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
2046 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
2047 (ix86_handle_option): Handle OPT_mmovbe.
2048 (ix86_target_string): Add -mmovbe.
2049 (pta_flags): Add PTA_MOVBE.
2050 (processor_alias_table): Add PTA_MOVBE to "atom".
2051 (override_options): Handle PTA_MOVBE.
2052
2053 * config/i386/i386.h (TARGET_MOVBE): New.
2054
2055 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
2056 (*bswapsi_movbe): New.
2057 (*bswapdi_movbe): Likewise.
2058 (bswapdi2): Renamed to ...
2059 (*bswapdi_1): This.
2060 (bswapdi2): New expander.
2061
2062 * config/i386/i386.opt (mmovbe): New.
2063
2064 * doc/invoke.texi: Document -mmovbe.
2065
9fefa0aa
TG
20662009-05-21 Taras Glek <tglek@mozilla.com>
2067
2068 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
2069 * gcc-plugin.h (plugin_init): Updated signature.
2070 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
2071 * doc/plugins.texi (plugin_init): Updated documention to reflect
2072 API change.
9fefa0aa
TG
2073 * doc/plugins.texi (plugin_name_args): Added to documention.
2074
1ea9fe56
MM
20752009-05-21 Mark Mitchell <mark@codesourcery.com>
2076
2077 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
2078 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
2079
52f84254
SZ
20802009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
2081
2082 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
2083 JUMP_TABLE_DATA_P predicates where applicable.
2084 * config/i386/predicates.md: Ditto.
2085 * config/i386/sse.md: Ditto.
2086
a952487c
JJ
20872009-05-21 Jakub Jelinek <jakub@redhat.com>
2088
93cac287
JJ
2089 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
2090 operand2 -128 override length_immediate attribute to 1.
2091 * config/i386/predicates.md (constm128_operand): New predicate.
2092
a952487c
JJ
2093 * config/i386/i386.c (memory_address_length): Handle %r12
2094 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
2095 also check REGNO.
2096 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
2097 mode look through optional ZERO_EXTEND and SUBREG.
2098 * config/i386/i386.md (R12_REG): New define_constant.
2099 (prefix_data16): For sse unit set also for MODE_TI insns.
2100 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
2101 insns set if operand 1 is ext_QIreg_operand.
2102 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
2103 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
2104 immediate.
2105 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
2106 mode from MODE_DI to MODE_SI.
2107 (movdi_1_rex64): Override modrm and length_immediate attributes
2108 only for movabs (TYPE_IMOV, alternative 2).
2109 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
2110 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2111 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2112 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2113 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
2114 prefix_rex attribute if DImode.
2115 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
2116 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
2117 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
2118 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
2119 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
2120 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
2121 Likewise. For TYPE_IMOV clear length_immediate attribute.
2122 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
2123 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
2124 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
2125 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
2126 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
2127 or one operand TYPE_ISHIFT.
2128 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
2129 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
2130 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
2131 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
2132 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
2133 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
2134 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
2135 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
2136 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
2137 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
2138 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
2139 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
2140 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
2141 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
2142 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
2143 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
2144 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
2145 set mode attribute, don't override length attribute.
2146 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
2147 to 1.
2148 (return_internal_long): Set length attribute to 2 instead of 1.
2149 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
2150 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
2151 prefix_rex attribute.
782dc37a
UB
2152 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
2153 New predicates.
2154 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 2155
64af62c2
RR
21562009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2157
2158 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
2159
c166b898
ILT
21602009-05-20 Ian Lance Taylor <iant@google.com>
2161
2162 * tree.c (build_tree_list_vec_stat): New function.
2163 (ctor_to_vec): New function.
2164 (build_nt_call_vec): New function.
2165 (build_call_array): Change args to be a const pointer.
2166 (build_call_vec): New function.
2167 * tree.h (build_nt_call_vec): Declare.
2168 (build_tree_list_vec_stat): Declare.
2169 (build_tree_list_vec): Define.
2170 (build_call_array): Update declaration.
2171 (build_call_vec): Declare.
2172 (ctor_to_vec): Declare.
2173 * c-common.c (tree_vector_cache): New static variable.
2174 (make_tree_vector): New function.
2175 (release_tree_vector): New function.
2176 (make_tree_vector_single): New function.
2177 (make_tree_vector_copy): New function.
2178 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
2179 (make_tree_vector_single, make_tree_vector_copy): Declare.
2180 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
2181 (c_parser_expr_list): Don't manage cache here, instead call
2182 make_tree_vector.
2183 (c_parser_release_expr_list): Remove static function.
2184 (c_parser_vec_to_tree_list): Remove static function.
2185 (c_parser_attributes): Call build_tree_list_vec instead of
2186 c_parser_vec_to_tree_list. Call release_tree_vector instead of
2187 c_parser_release_expr_list.
2188 (c_parser_postfix_expression_after_primary): Likewise.
2189 (c_parser_objc_keywordexpr): Likewise.
2190
40449a90
SL
21912009-05-20 Sandra Loosemore <sandra@codesourcery.com>
2192
2193 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
2194 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
2195 TARGET_CONVERT_TO_TYPE.
2196 * hooks.c (hook_tree_const_tree_null): Define.
2197 * hooks.h (hook_tree_const_tree_null): Declare.
2198 * target.h (struct gcc_target): Add invalid_parameter_type,
2199 invalid_return_type, promoted_type, and convert_to_type fields.
2200 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
2201 (TARGET_INVALID_RETURN_TYPE): Define.
2202 (TARGET_PROMOTED_TYPE): Define.
2203 (TARGET_CONVERT_TO_TYPE): Define.
2204 (TARGET_INITIALIZER): Update for new fields.
2205 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
2206 (grokparms): Check targetm.invalid_parameter_type.
2207 * c-typeck.c (default_conversion): Check targetm.promoted_type.
2208 * c-convert.c (convert): Check targetm.convert_to_type.
2209
642d97ff
AN
22102009-05-20 Adam Nemet <anemet@caviumnetworks.com>
2211
2212 * config/mips/mips.md (*extenddi_truncate<mode>,
2213 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
2214 defintions.
2215 (*extendhi_truncateqi): New define_insn_and_sptit.
2216
776248b8
JJ
22172009-05-20 Jakub Jelinek <jakub@redhat.com>
2218
2219 PR middle-end/40204
2220 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 2221 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 2222
d98e8686
EB
22232009-05-20 Eric Botcazou <ebotcazou@adacore.com>
2224
2225 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
2226 the operand of VIEW_CONVERT_EXPR.
2227
37c50435
L
22282009-05-20 H.J. Lu <hongjiu.lu@intel.com>
2229
2230 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 2231 extended family and model for Intel processors. Support Intel Atom.
37c50435 2232
dbb6088f
OH
22332009-05-20 Olivier Hainque <hainque@adacore.com>
2234
2235 * gstab.h (stab_code_type): Define, to be used instead of the
2236 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
2237 notice.
2238 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
2239 occurrences by stab_code_type.
2240 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
2241
7ec49257
MJ
22422009-05-20 Martin Jambor <mjambor@suse.cz>
2243
2244 * tree-flow.h (insert_edge_copies_seq): Undeclare.
2245 (sra_insert_before): Likewise.
2246 (sra_insert_after): Likewise.
2247 (sra_init_cache): Likewise.
2248 (sra_type_can_be_decomposed_p): Likewise.
2249 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
2250 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
2251 (sra_insert_before): Likewise.
2252 (sra_insert_after): Likewise.
2253 (sra_init_cache): Likewise.
2254 (insert_edge_copies_seq): Made static and moved upwards.
2255
2256 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
2257 case.
2258
2259 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
2260
2261 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
2262 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
2263 simple copies.
2264
0328ae4d
RG
22652009-05-20 Richard Guenther <rguenther@suse.de>
2266
2267 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2268 with mismatched comparison modes.
2269
a7994a57 22702009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 2271
a7994a57 2272 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
2273 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
2274 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
2275 with shifts for Thumb2.
2276 (orsi_notsi): New for orn.
2277 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
2278 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
2279 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
2280 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
2281 Don't invert remainder for IOR.
a7994a57 2282
e36dc339
ZD
22832009-05-19 Zdenek Dvorak <ook@ucw.cz>
2284
2285 PR tree-optimization/40087
2286 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
2287 number_of_iterations_ne): Rename never_infinite argument.
2288 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
2289 number_of_iterations_le): Handle pointer-type ivs when
2290 exit_must_be_taken is false.
2291 (number_of_iterations_cond): Do not always assume that
2292 exit_must_be_taken if the control variable is a pointer.
2293
5cfd5d9b
AP
22942009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2295
2296 * c-typeck.c (build_binary_op): Allow % on integal vectors.
2297 * doc/extend.texi (Vector Extension): Document that % is allowed too.
2298
2f1c7156
L
22992009-05-19 H.J. Lu <hongjiu.lu@intel.com>
2300
2301 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
2302 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
2303
7bb27074
MLI
23042009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2305
2306 PR c/40172
2307 * c.opt (Wlogical-op): Disabled by default.
2308 * c-opt (c_common_post_options): Do not enable Wlogical-op with
2309 Wextra.
2310 * doc/invoke.texi (Wlogical-op): Likewise.
2311
5aefc6a0
EB
23122009-05-19 Eric Botcazou <ebotcazou@adacore.com>
2313
2314 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
2315 into CASE_CONVERT.
2316 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
2317 Propagate the type of the first operand.
2318 <ASSERT_EXPR>: Simplify.
2319 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
2320 Rewrite using the RHS code as discriminant.
2321 <NOP_EXPR>: Turn into CASE_CONVERT.
2322 <PLUS_EXPR>: Propagate the type of the first operand.
2323
f3a83111
SE
23242009-05-19 Steve Ellcey <sje@cup.hp.com>
2325
2326 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
2327 (ia64_dconst_0_375): New.
2328 * config/ia64/ia64.c (ia64_override_options): Remove
2329 -minline-sqrt-min-latency warning.
2330 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
2331 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
2332 * config/ia64/ia64.md (*sqrt_approx): Remove.
2333 (sqrtsf2): Remove #if 0.
2334 (sqrtsf2_internal_thr): Rewrite and move to div.md.
2335 (sqrtdf): Remove assert.
2336 (sqrtdf2_internal_thr): Rewrite and move to div.md.
2337 (sqrtxf2): Remove #if 0.
2338 (sqrtxf2_internal_thr): Rewrite and move to div.md.
2339 * div.md (sqrt_approx_rf): New.
2340 (sqrtsf2_internal_thr): New implementation.
2341 (sqrtsf2_internal_lat): New.
2342 (sqrtdf2_internal_thr: New implementation.
2343 (sqrtxf2_internal): New implementation.
2344
1ffc7157
FXC
23452009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
2346 Hans-Peter Nilsson <hp@axis.com>
2347
2348 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
2349 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
2350 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
2351 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
2352 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
2353 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
2354 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
2355 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
2356 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
2357 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
2358 * c-common.c: ...from here.
2359
db91d9ef
MLI
23602009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2361
f3afc8a7 2362 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 2363
bbb9d91f
KG
23642009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2365
2366 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
2367
ce883f54
BE
23682009-05-19 Ben Elliston <bje@au.ibm.com>
2369
2370 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
2371 assignments with memcpy calls.
2372 (add_fdes): Likewise.
2373 (binary_search_unencoded_fdes): Likewise.
2374 (linear_search_fdes): Eliminate type puns.
2375
377f099a
RG
23762009-05-19 Richard Guenther <rguenther@suse.de>
2377
2378 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
2379 not falsely claim to have propagated into all uses.
2380
848bc769
BE
23812009-05-19 Ben Elliston <bje@au.ibm.com>
2382
2383 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
2384 version to v3.0.
2385
1bb99877
KK
23862009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
2387
2388 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
2389 * config/sh/sh.c (sh_legitimate_address_p): Make static.
2390 (TARGET_LEGITIMATE_ADDRESS_P): New.
2391 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2392 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2393
82725547
DS
23942009-05-18 Dodji Seketeli <dodji@redhat.com>
2395
2396 PR debug/40109
2397 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
2398 child of the containing namespace's DIE.
2399
f6a1e430
AN
24002009-05-18 Adam Nemet <anemet@caviumnetworks.com>
2401
2402 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
2403 *zero_extendhi_truncqi): Move after the zero_extend patterns.
2404 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
2405 extend patterns.
2406
6a90d232
L
24072009-05-18 H.J. Lu <hongjiu.lu@intel.com>
2408
2409 PR target/39942
2410 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
2411 gen_align with gen_pad.
2412 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
2413 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
2414
2415 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
2416 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
2417
2418 * config/i386/i386.md (align): Renamed to ...
2419 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
2420 ASM_OUTPUT_MAX_SKIP_PAD.
2421
c4406f74
AS
24222009-05-18 Andreas Schwab <schwab@linux-m68k.org>
2423
06555043
AS
2424 * config.gcc: Fix variable syntax.
2425
c4406f74
AS
2426 PR target/39531
2427 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
2428 before calling exact_log2.
2429 (output_iorsi3): Likewise.
2430 (output_xorsi3): Likewise.
2431
99052692
KK
24322009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
2433
2434 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
2435 for the none zero constant operand except for EQ and NE
2436 comprisons even when the first operand is R0.
2437
f4aa3848
AK
24382009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
2439
2440 * config/s390/2064.md: Remove trailing whitespaces.
2441 * config/s390/2084.md: Likewise.
2442 * config/s390/constraints.md: Likewise.
2443 * config/s390/fixdfdi.h: Likewise.
2444 * config/s390/libgcc-glibc.ver: Likewise.
2445 * config/s390/s390-modes.def: Likewise.
2446 * config/s390/s390-protos.h: Likewise.
2447 * config/s390/s390.c: Likewise.
2448 * config/s390/s390.h: Likewise.
2449 * config/s390/s390.md: Likewise.
2450 * config/s390/tpf-unwind.h: Likewise.
2451
ab7256e4
MK
24522009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2453
2454 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
2455
75df395f
MK
24562009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2457
2458 M68K TLS support.
2459 * configure.ac (m68k-*-*): Check if binutils support TLS.
2460 * configure: Regenerate.
2461 * config/m68k/predicates.md (symbolic_operand): Extend comment.
2462 * config/m68k/constraints.md (Cu): New constraint.
2463 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
2464 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
2465 (movsi): Handle TLS symbols.
2466 (addsi3_5200): Handle XTLS symbols, indent.
2467 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
2468 (m68k_tls_reference_p): Declare.
2469 (m68k_legitimize_address): Declare.
2470 (m68k_unwrap_symbol): Declare.
2471 * config/m68k/m68k.opt (mxtls): New option.
2472 * config/m68k/m68k.c (ggc.h): Include.
2473 (m68k_output_dwarf_dtprel): Implement hook.
2474 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2475 (m68k_expand_prologue): Load GOT pointer when function needs it.
2476 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
2477 (m68k_legitimate_constant_address_p): Same.
2478 (m68k_decompose_address): Handle TLS references.
2479 (m68k_get_gp): New static function.
2480 (enum m68k_reloc): New contants.
2481 (TLS_RELOC_P): New macro.
2482 (m68k_wrap_symbol): New static function.
2483 (m68k_unwrap_symbol): New function.
2484 (m68k_final_prescan_insn_1): New static function.
2485 (m68k_final_prescan_insn): New function.
2486 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
2487 functions.
2488 (legitimize_pic_address): Handle TLS references..
2489 (m68k_tls_get_addr, m68k_get_tls_get_addr)
2490 (m68k_libcall_value_in_a0_p)
2491 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
2492 (m68k_call_m68k_read_tp): Helper variables and functions for ...
2493 (m68k_legitimize_tls_address): Handle TLS references.
2494 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
2495 New functions.
2496 (m68k_legitimize_address): Handle TLS symbols.
2497 (m68k_get_reloc_decoration): New static function.
2498 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
2499 UNSPEC_RELOC32.
2500 (m68k_output_dwarf_dtprel): Implement hook.
2501 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
2502 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
2503 m68k_call_* routines.
2504 (sched_attr_op_type): Handle TLS symbols.
2505 (gt-m68k.h): Include.
2506 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
2507 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
2508
8b75fc9b
MJ
25092009-05-18 Martin Jambor <mjambor@suse.cz>
2510
2511 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
2512 (visit_store_addr_for_mod_analysis): New function.
2513 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
2514 (determine_cst_member_ptr): Use gimple_assign_single_p.
2515 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
2516 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
2517 operands. Don't check number of operands of a NOP_EXPR.
2518
f133d4a2
EF
25192009-05-18 Eric Fisher <joefoxreal@gmail.com>
2520
2521 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
2522
ae8af500
L
25232009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
2524
2525 PR c/40172
2526 * c-common.c (warn_logical_operator): Don't warn if one of
2527 expression isn't always true or false.
2528
25e8fde8
KT
25292009-05-17 Kai Tietz <kai.tietz@onevision.com>
2530
ae8af500
L
2531 * config/i386/biarch32.h: New file.
2532 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 2533
ef67af22
AN
25342009-05-17 Adam Nemet <anemet@caviumnetworks.com>
2535
2536 * config/mips/mips.md (*zero_extend<mode>_trunchi,
2537 *zero_extend<mode>_truncqi): Merge these into ...
2538 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
2539 Name the pattern following this as *zero_extendhi_truncqi.
2540
e2d87023
BL
25412009-05-16 Brad Lucier <lucier@math.purdue.edu>
2542
2543 PR middle-end/39301
2544 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
2545 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
2546 (output_info): Make field HOST_WIDEST_INT.
2547 (print_statistics): Use HOST_WIDEST_INT_PRINT.
2548 (dump_bitmat_statistics): Same.
2549
428ddbf0
FXC
25502009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
2551
2552 * config.gcc (use_gcc_stdint): Set to wrap.
2553 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2554 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2555 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2556 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2557 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2558 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2559 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2560 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2561
1ab8a8c2
JM
25622009-05-16 Joseph Myers <joseph@codesourcery.com>
2563
2564 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
2565 tune_64.
2566 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
2567 Move definitions earlier.
2568 (OPT_ARCH64, OPT_ARCH32): Define.
2569 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
2570 and tune_64.
2571
70544f44
RE
25722009-05-16 Richard Earnshaw <rearnsha@arm.com>
2573
2574 PR target/40153
2575 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
2576 implies.
2577
6241ded1
RE
25782009-05-16 Richard Earnshaw <rearnsha@arm.com>
2579
2580 * arm.md (movdi2): Copy non-reg values to DImode registers.
2581
a99c6711
JJ
25822009-05-16 Jakub Jelinek <jakub@redhat.com>
2583
40a8f07a
JJ
2584 PR target/39942
2585 * final.c (label_to_max_skip): New function.
2586 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
2587 CODE_LABEL_NUMBER <= max_labelno.
2588 * output.h (label_to_max_skip): New prototype.
2589 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
2590 (ix86_avoid_jump_mispredicts): ... this. Don't define if
2591 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
2592 Handle CODE_LABELs with >= 16 byte alignment or with
2593 max_skip == (1 << align) - 1.
2594 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
2595 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
2596
a99c6711
JJ
2597 PR target/39942
2598 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
2599 .p2align 3 if MAX_SKIP is smaller than 7.
2600 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2601
7e5487a2
ILT
26022009-05-15 Ian Lance Taylor <iant@google.com>
2603
2604 * alias.c (struct alias_set_entry_d): Rename from struct
2605 alias_set_entry. Change all uses.
2606 * except.c (struct call_site_record_d): Rename from struct
2607 call_site_record. Change all uses.
2608 * except.h (struct eh_region_d): Rename from struct eh_region.
2609 Change all uses.
2610 * gcse.c (struct hash_table_d): Rename from struct hash_table.
2611 Change all uses.
2612 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
2613 ivtype_map_elt. Change all uses.
2614 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
2615 Change all uses.
2616 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
2617 * graphite.h (struct name_tree_d): Rename from struct name_tree.
2618 Change all uses.
2619 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
2620 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
2621 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
2622 * optabs.h (struct optab_d): Rename from struct optab. Change all
2623 uses.
2624 (struct convert_optab_d): Rename from struct convert_optab.
2625 Change all uses.
2626 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
2627 ipa_opt_pass. Change all uses.
2628 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
2629 all uses.
2630
2631 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
2632 defined as a typedef.
2633 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
2634 defined as a tag.
2635
a243fb4a
MLI
26362009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2637
2638 PR 16302
2639 * fold-const.c (make_range,build_range_check,merge_ranges): Move
2640 declaration to...
2641 (merge_ranges): Returns bool.
2642 * tree.h (make_range): .. to here.
2643 (build_range_check): Likewise.
2644 (merge_ranges): Likewise. Renamed from merge_ranges.
2645 * c-typeck.c (parser_build_binary_op): Update calls to
2646 warn_logical_operator.
2647 * c-common.c (warn_logical_operator): Add new warning.
2648 * c-common.h (warn_logical_operator): Update declaration.
2649
1b53c5f3
MLI
26502009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2651
782dc37a 2652 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 2653
c128599a
KG
26542009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2655
f9bab007
KG
2656 * doc/install.texi: Document MPC requirements, flags etc.
2657
c128599a
KG
2658 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
2659 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
2660 Evaluate constant arguments.
2661 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
2662 (fold_builtin_1): Likewise, also evaluate constant arguments.
2663 Remove superfluous break.
2664 (do_mpc_ckconv): New.
2665 * real.h: Include mpc.h.
2666 * toplev.c (print_version): Output MPC version info if available.
2667
d33e4b70
SL
26682009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2669
782dc37a 2670 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 2671
a02ab464
L
26722009-05-15 H.J. Lu <hongjiu.lu@intel.com>
2673
2674 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
2675 only once.
2676
796bda22
JH
26772009-05-15 Jan Hubicka <jh@suse.cz>
2678
2679 * doc/invoke.texi (max-early-inliner-iterations): New flag.
2680 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
2681 (try_inline): Fix return value.
2682 (cgraph_decide_inlining_incrementally): Honor new value.
2683 (cgraph_early_inlining): Handle indirect inlining.
2684 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
2685
d88e5c37
JH
26862009-05-15 Jan Hubicka <jh@suse.cz>
2687
2688 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2689 * cgraphunit.c (cgraph_finalize_function): Set it.
2690 (cgraph_expand_function): Use it.
2691
ae63687c
SL
26922009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2693
2694 * real.c (encode_ieee_half): Define.
2695 (decode_ieee_half): Define.
2696 (ieee_half_format): Define.
2697 (arm_half_format): Define.
2698 * real.h (ieee_half_format): Declare.
2699 (arm_half_format): Declare.
2700
1bd74ad9
SL
27012009-05-15 Sandra Loosemore <sandra@codesourcery.com>
2702
2703 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
2704 swapped, and reversed optabs exist before trying to use them.
2705
dc34db56
PB
27062009-05-15 Paul Brook <paul@codesourcery.com>
2707 Sandra Loosemore <sandra@codesourcery.com>
2708
dc34db56
PB
2709 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
2710 loads. Allow PRE_DEC.
2711 (output_move_neon): Handle PRE_DEC.
2712 (arm_print_operand): Add 'A' for neon structure loads.
2713 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
2714 * config/arm/neon.md (neon_mov): Update comment.
2715 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
2716 calls.
2717 (Um): New constraint.
2718
1d405d7b
JH
27192009-05-15 Jan Hubicka <jh@suse.cz>
2720
2721 Revert the following patch until testsuite fallout is fixed:
2722 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2723 * cgraph.h (struct inline_summary): New filed self_wize,
2724 size_inlining_benefit, self_time and time_inlining_benefit.
2725 (struct cgraph_global_info): Replace insns by time ans size fields.
2726 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2727 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2728 (ipcp_update_callgraph): Do not touch function bodies.
2729 * ipa-inline.c: Include except.h
782dc37a 2730 (MAX_TIME): New constant.
1d405d7b
JH
2731 (overall_insns): Remove
2732 (overall_size, max_benefit): New static variables.
2733 (cgraph_estimate_time_after_inlining): New function.
2734 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2735 (cgraph_clone_inlined_nodes): Update size.
2736 (cgraph_mark_inline_edge): Update size.
2737 (cgraph_estimate_growth): Use size info.
2738 (cgraph_check_inline_limits): Check size.
2739 (cgraph_default_inline_p): Likewise.
2740 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2741 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2742 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2743 and times.
1d405d7b 2744 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2745 (cgraph_decide_inlining_incrementally): Likewise; honor
2746 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
2747 (likely_eliminated_by_inlining_p): New predicate.
2748 (estimate_function_body_sizes): New function.
2749 (compute_inline_parameters): Use it.
2750 * except.c (must_not_throw_labels): New function.
2751 * except.h (must_not_throw_labels): Declare.
2752 * tree-inline.c (init_inline_once): Kill inlining_weigths
2753 * tree-ssa-structalias.c: Avoid uninitialized warning.
2754 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2755 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2756 (PARAM_INLINE_CALL_COST): Remove.
2757 (PARAM_EARLY_INLINING_INSNS): New.
2758
7ffa47ca
RG
27592009-05-15 Richard Guenther <rguenther@suse.de>
2760
2761 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
2762 not TODO_update_ssa.
2763
828552ed
RG
27642009-05-15 Richard Guenther <rguenther@suse.de>
2765
2766 PR tree-optimization/39999
2767 * gimple.h (gimple_expr_type): Use the expression type looking
2768 through useless conversions.
2769 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2770 (vn_nary_op_insert_stmt): Likewise.
2771 (simplify_binary_expression): Likewise.
2772
248fc9f3
RG
27732009-05-15 Richard Guenther <rguenther@suse.de>
2774
2775 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2776 New options, enabled by default.
2777 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2778 Document.
2779 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2780 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2781 * tree-ssa-structalias.c (gate_tree_pta): New function.
2782 (pass_build_alias): Use it.
2783
16b29cc4
JM
27842009-05-15 Joseph Myers <joseph@codesourcery.com>
2785
2786 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2787 recurse on an invariant address if a conversion from a pointer
2788 type to a wider integer type is involved.
2789
125cae84
JH
27902009-05-15 Jan Hubicka <jh@suse.cz>
2791
2792 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2793 * cgraph.h (struct inline_summary): New filed self_wize,
2794 size_inlining_benefit, self_time and time_inlining_benefit.
2795 (struct cgraph_global_info): Replace insns by time ans size fields.
2796 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2797 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2798 (ipcp_update_callgraph): Do not touch function bodies.
2799 * ipa-inline.c: Include except.h
782dc37a 2800 (MAX_TIME): New constant.
125cae84
JH
2801 (overall_insns): Remove
2802 (overall_size, max_benefit): New static variables.
2803 (cgraph_estimate_time_after_inlining): New function.
2804 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2805 (cgraph_clone_inlined_nodes): Update size.
2806 (cgraph_mark_inline_edge): Update size.
2807 (cgraph_estimate_growth): Use size info.
2808 (cgraph_check_inline_limits): Check size.
2809 (cgraph_default_inline_p): Likewise.
2810 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2811 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2812 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2813 and times.
125cae84 2814 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2815 (cgraph_decide_inlining_incrementally): Likewise; honor
2816 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
2817 (likely_eliminated_by_inlining_p): New predicate.
2818 (estimate_function_body_sizes): New function.
2819 (compute_inline_parameters): Use it.
2820 * except.c (must_not_throw_labels): New function.
2821 * except.h (must_not_throw_labels): Declare.
2822 * tree-inline.c (init_inline_once): Kill inlining_weigths
2823 * tree-ssa-structalias.c: Avoid uninitialized warning.
2824 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2825 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2826 (PARAM_INLINE_CALL_COST): Remove.
2827 (PARAM_EARLY_INLINING_INSNS): New.
2828 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2829 (inline-call-cost): Remove.
2830 (early-inlining-insns): New.
2831
84fb43a1
EB
28322009-05-15 Eric Botcazou <ebotcazou@adacore.com>
2833
2834 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
2835 for bounds.
2836 (print_int_cst_bounds_in_octal_p): Likewise.
2837 (dbxout_type): Adjust calls to above functions. Be prepared to deal
2838 with subtypes.
2839 * dwarf2out.c (base_type_die): Likewise.
2840 (is_subrange_type): Delete.
2841 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
2842 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
2843 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
2844 if the destination type is boolean.
84fb43a1
EB
2845 (build_range_check): Do not special-case subtypes.
2846 (fold_sign_changed_comparison): Likewise.
2847 (fold_unary): Likewise.
2848 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2849 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2850 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
2851 * tree.c (subrange_type_for_debug_p): New predicate based on the
2852 former is_subrange_type.
84fb43a1
EB
2853 * tree.h (subrange_type_for_debug_p): Declare.
2854 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2855 (convert_affine_scev): Remove call to above function.
2856 (chrec_convert_aggressive): Likewise.
2857 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2858 false for conversions involving subtypes.
2859 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2860 (vrp_val_min): Likewise.
2861 (needs_overflow_infinity): Likewise.
2862 (extract_range_from_unary_expr): Likewise.
2863
331d9186
PB
28642009-05-15 Paolo Bonzini <bonzini@gnu.org>
2865
e9351712
L
2866 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2867 * config/frv/frv.c: Likewise.
2868 * config/s390/s390.c: Likewise.
2869 * config/sparc/sparc.h: Likewise.
2870 * config/i386/i386.h: Likewise.
2871 * config/i386/i386.c: Likewise.
2872 * config/crx/crx.c: Likewise.
2873 * config/m68hc11/m68hc11.h: Likewise.
2874 * config/iq2000/iq2000.c: Likewise.
2875 * config/mn10300/mn10300.h: Likewise.
2876 * config/mn10300/mn10300.c: Likewise.
2877 * config/m68k/m68k.c: Likewise.
2878 * config/rs6000/rs6000.c: Likewise.
2879 * config/rs6000/xcoff.h: Likewise.
2880 * config/rs6000/linux64.h: Likewise.
2881 * config/rs6000/sysv4.h: Likewise.
2882 * config/score/score3.c: Likewise.
2883 * config/score/score7.c: Likewise.
2884 * config/score/score.c: Likewise.
2885 * config/arm/arm.md: Likewise.
2886 * config/mips/mips.c: Likewise.
2887 * config/mips/mips.md: Likewise.
2888 * config/bfin/bfin.h: Likewise.
2889 * config/pa/pa.c: Likewise.
2890 * config/pa/constraints.md: Likewise.
2891
2892 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2893 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2894 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 2895
09639a83
ILT
28962009-05-14 Ian Lance Taylor <iant@google.com>
2897
2898 * passes.c (finish_optimization_passes): Change i to int.
2899 * plugin.c (plugins_active_p): Change event to int.
2900 (dump_active_plugins): Likewise.
2901 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2902 Add cast.
2903 * tree.c (tree_range_check_failed): Change c to unsigned int.
2904 (omp_clause_range_check_failed): Likewise.
2905 (build_common_builtin_nodes): Change mode to int. Add cast.
2906 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2907 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2908
2909 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2910 ++ or -- with a variable of enum type.
2911
c04a56bf
SB
29122009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2913
2914 PR driver/40144
2915 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2916
237ee620
SB
29172009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2918
2919 * store-motion.c: Do not include params.h
2920 * Makefile.in: Fix dependencies for various files.
2921
1154c4fa
SB
29222009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2923
2924 * auto-inc-dec.c: Fix pass description, remove apparent
2925 accidental duplication.
2926
61c27353
L
29272009-05-14 H.J. Lu <hongjiu.lu@intel.com>
2928
2929 PR middle-end/40147
2930 * ipa-utils.h (memory_identifier_string): Moved to ...
2931 * tree.h (memory_identifier_string): Here. Add GTY(()).
2932
c6c3dba9
PB
29332009-05-14 Paolo Bonzini <bonzini@gnu.org>
2934
2935 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2936 in the former documentation of...
2937 (GO_IF_LEGITIMATE_ADDRESS): ... this.
2938 * ira-conflicts.c (get_dup_num): Use address_operand.
2939 * targhooks.c (default_legitimate_address_p): New.
2940 * targhooks.h (default_legitimate_address_p): New.
2941 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2942 Call hook.
2943 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2944 * target.h (struct target): Add legitimate_address_p.
2945 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2946 (TARGET_INITIALIZER): Include it.
2947
2948 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2949 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2950 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2951 (TARGET_LEGITIMATE_ADDRESS_P): New.
2952
2953 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2954 (REG_OK_STRICT_P): Delete.
2955 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2956 (frv_legitimate_address_p_1): ... this.
2957 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2958 (frv_legitimate_address_p_1): ... the renamed old
2959 frv_legitimate_address_p.
2960 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2961 (TARGET_LEGITIMATE_ADDRESS_P): New.
2962
2963 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2964 * config/s390/s390-protos.h (legitimate_address_p): Remove.
2965 * config/s390/s390.c (legitimate_address_p): Rename to...
2966 (s390_legitimate_address_p): ... this, make static.
2967 (legitimize_address): Adjust call.
2968 (TARGET_LEGITIMATE_ADDRESS_P): New.
2969 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
2970
2971 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2972 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
2973 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
2974 (TARGET_LEGITIMATE_ADDRESS_P): New.
2975
2976 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2977 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
2978 * config/spu/spu.c (spu_legitimate_address): Rename to...
2979 (spu_legitimate_address_p): ... this, make static.
2980 (TARGET_LEGITIMATE_ADDRESS_P): New.
2981
2982 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2983 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
2984 * config/sparc/sparc.c (legitimate_address_p): Rename to...
2985 (sparc_legitimate_address_p): ... this, make static and return bool.
2986 (legitimize_address): Adjust call.
2987 (TARGET_LEGITIMATE_ADDRESS_P): New.
2988
2989 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2990 * config/i386/i386-protos.h (legitimate_address_p): Remove.
2991 * config/i386/i386.c (legitimate_address_p): Rename to...
2992 (ix86_legitimate_address_p): ... this, make static.
2993 (constant_address_p): Move after it, adjust call.
2994 (TARGET_LEGITIMATE_ADDRESS_P): New.
2995
2996 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2997 * config/avr/avr-protos.h (legitimate_address_p): Remove.
2998 * config/avr/avr.c (legitimate_address_p): Rename to...
2999 (avr_legitimate_address_p): ... this, make static.
3000 (legitimize_address): Adjust call.
3001 (TARGET_LEGITIMATE_ADDRESS_P): New.
3002
3003 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3004 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
3005 * config/crx/crx.c (crx_legitimate_address_p): Make static.
3006 (TARGET_LEGITIMATE_ADDRESS_P): New.
3007
3008 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3009 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
3010 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
3011 (TARGET_LEGITIMATE_ADDRESS_P): New.
3012
3013 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3014 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
3015 Remove.
3016 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3017 Make static.
3018 (TARGET_LEGITIMATE_ADDRESS_P): New.
3019
3020 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3021 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
3022 Remove.
3023 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
3024 Rename to...
3025 (m68hc11_legitimate_address_p): ... this, make static.
3026 (go_if_legitimate_address_internal): Rename to...
3027 (m68hc11_legitimate_address_p_1): ... this.
3028 (legitimize_address): Adjust call.
3029 (TARGET_LEGITIMATE_ADDRESS_P): New.
3030
3031 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
3032 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
3033 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
3034 (TARGET_LEGITIMATE_ADDRESS_P): New.
3035
3036 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3037 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
3038 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
3039 (mn10300_legitimate_address_p): ... this, make static.
3040 (TARGET_LEGITIMATE_ADDRESS_P): New.
3041
3042 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3043 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
3044 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
3045 (TARGET_LEGITIMATE_ADDRESS_P): New.
3046
3047 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3048 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
3049 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
3050 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3051 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
3052 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
3053 (rs6000_legitimate_address_p): ... this, make static.
3054 (TARGET_LEGITIMATE_ADDRESS_P): New.
3055 (REG_MODE_OK_FOR_BASE_P): Delete.
3056 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
3057
3058 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3059 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
3060 Delete.
3061 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
3062 static, adjust types.
3063 (TARGET_LEGITIMATE_ADDRESS_P): New.
3064
3065 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3066 * config/score/score.c (score_address_p): Rename to...
3067 (score_legitimate_address_p): ... this.
3068 (TARGET_LEGITIMATE_ADDRESS_P): New.
3069 * config/score/score3.c (score3_address_p): Rename to...
3070 (score3_legitimate_address_p): ... this.
3071 * config/score/score7.c (score7_address_p): Rename to...
3072 (score7_legitimate_address_p): ... this.
3073
3074 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
3075 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
3076 GO_IF_LEGITIMATE_ADDRESS): Delete.
3077 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
3078 thumb2_legitimate_address_p): Delete.
3079 (arm_legitimate_address_p): Rename to...
3080 (arm_legitimate_address_outer_p): ... this.
3081 * config/arm/constraints.md ("Uq"): Adjust call.
3082 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
3083 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
3084 to...
c6c3dba9 3085 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
3086 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
3087 static.
c6c3dba9
PB
3088 (TARGET_LEGITIMATE_ADDRESS_P): New.
3089
3090 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3091 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
3092 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
3093 (TARGET_LEGITIMATE_ADDRESS_P): New.
3094
3095 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3096 * config/vax/vax-protos.h (legitimate_address_p): Remove.
3097 * config/vax/vax.c (legitimate_address_p): Rename to...
3098 (vax_legitimate_address_p): ... this, make static.
3099 (TARGET_LEGITIMATE_ADDRESS_P): New.
3100
3101 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3102 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
3103 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
3104 (TARGET_LEGITIMATE_ADDRESS_P): New.
3105
3106 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3107 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
3108 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
3109 (mmix_legitimate_address_p): ... this, make static.
3110 (TARGET_LEGITIMATE_ADDRESS_P): New.
3111
3112 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3113 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
3114 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
3115 (TARGET_LEGITIMATE_ADDRESS_P): New.
3116
3bd0d9c8
PB
31172009-05-14 Paolo Bonzini <bonzini@gnu.org>
3118
3119 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
3120 of MODE_COMPLEX_INT.
3121
fe049033
RO
31222009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3123
3124 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
3125 LCT_NORMAL in function call.
3126 * mips-tdump.c (print_file_desc): Add cast to enum type.
3127 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
3128 (mark_stabs): Add casts to enum types.
3129 (parse_stabs_common): Add casts to enum types.
16f7ad42 3130
b0907a6c
AN
31312009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3132
3133 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
3134 Check for invalid values of LETTER.
3135
d1c8e08a
TG
31362009-05-13 Taras Glek <tglek@mozilla.com>
3137
f3afc8a7
UB
3138 * attribs.c (register_attribute): moved out attribute registration
3139 into register_attribute.
3140 * doc/plugins.texi: Documented register_attribute and
3141 PLUGIN_ATTRIBUTES.
16f7ad42
TG
3142 * gcc-plugin.h: Added forward decl for register_attribute.
3143 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
3144 * plugin.c (register_callback, invoke_plugin_callbacks): Added
3145 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 3146
4ed7f970
DK
31472009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
3148
3149 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
3150 values even in sentinel and empty entries.
3151 (ms_printf_flag_specs): Likewise.
3152 (ms_scanf_flag_specs): Likewise.
3153 (ms_strftime_flag_specs): Likewise.
3154 (ms_print_char_table): Likewise.
3155 (ms_scan_char_table): Likewise.
3156 (ms_time_char_table): Likewise.
3157
3d8fa148
DK
31582009-05-13 Doug Kwan <dougkwan@google.com>
3159
3160 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
3161
f06257d3
AN
31622009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3163
3164 * config/mips/mips.md (store): Add attributes for QI and HI.
3165 Update comment.
3166 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
3167 (truncdi<mode>2): ... this new pattern.
3168
fb201767
BH
31692009-05-13 Brad Hards <bradh@kde.org>
3170
3171 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
3172
c7bda60e 31732009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
3174 Ben Elliston <bje@au.ibm.com>
3175
3176 PR middle-end/40035
3177 * dse.c (check_mem_read_rtx): Guard against width == -1.
3178
ce985b43
MM
31792009-05-13 Michael Matz <matz@suse.de>
3180
3181 PR middle-end/39976
3182 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
3183 (trivially_conflicts_p): New function.
3184 (insert_backedge_copies): Use it.
3185
7de1d221
JJ
31862009-05-13 Janis Johnson <janis187@us.ibm.com>
3187
3188 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
3189 (handle_stdc_pragma): Use new enum constant names.
3190 (handle_pragma_float_const_decimal64): Ditto.
3191
bfefafc6
ILT
31922009-05-13 Ian Lance Taylor <iant@google.com>
3193
3194 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
3195 tree.def.
3196
286c4fcb
NS
31972009-05-13 Nathan Sidwell <nathan@codesourcery.com>
3198
3199 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
3200 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
3201 multilibs.
3202 * config/m68k/m68k.h (FL_UCLINUX): Define.
3203
ebaa6ea7
JH
32042009-05-13 Jan Hubicka <jh@suse.cz>
3205
3206 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
3207
2b703e1a
KK
32082009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3209
3210 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
3211 unless -fschedule-insns is specified.
3212
c3537723
KK
32132009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3214
3215 PR target/39561
3216 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
3217 TARGET_EXPAND_CBRANCHDI4.
3218 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
3219 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
3220 (cmpeqdi): Fix comment.
3221
cdeed45a
KK
32222009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3223
3224 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
3225 (sh_legitimate_address_p): Likewise.
3226 * config/sh/sh.c (sh_legitimate_index_p): New.
3227 (sh_legitimate_address_p): Likewise.
3228 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
3229 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
3230 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
3231 (MAYBE_BASE_REGISTER_RTX_P): New macro.
3232 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3233 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
3234 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
3235 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
3236 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
3237
02f0b13a
JH
32382009-05-12 Jan Hubicka <jh@suse.cz>
3239
3240 * tree-inline.c (estimate_operator_cost): Add operands;
3241 when division happens by constant, it is cheap.
3242 (estimate_num_insns): Loads and stores are not having cost of 0;
3243 EH magic stuff is cheap; when computing runtime cost of switch,
3244 use log2 base of amount of its cases; builtin_expect has cost of 0;
3245 compute cost for moving return value of call.
3246 (init_inline_once): Initialize time_based flags.
3247 * tree-inline.h (eni_weights_d): Add time_based flag.
3248
ecb7f6de
PB
32492009-05-12 Paolo Bonzini <bonzini@gnu.org>
3250
3251 * df-core.c: Update head documentation.
3252
c24151ce
MM
32532009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3254
3255 PR bootstrap/40118
3256 * rs6000.c (rs6000_generate_compare): Use op1b instead of
3257 shadowing exisiting variable op1.
3258
fbdf817d
UB
32592009-05-12 Uros Bizjak <ubizjak@gmail.com>
3260
704bf7c8 3261 PR target/37179
fbdf817d
UB
3262 * config/i386/driver-i386.c (processor_signatures): New enum.
3263 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
3264 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
3265 processor signature to detect geode processor.
3266
5e8d1826
PB
32672009-05-12 Paolo Bonzini <bonzini@gnu.org>
3268
3269 Revert:
3270
3271 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3272
3273 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3274 causes spurious differences between trunk and cond-optab branch.
3275
f90b7a5a
PB
32762009-05-12 Paolo Bonzini <bonzini@gnu.org>
3277
fbdf817d
UB
3278 * dojump.c (compare_from_rtx): Delete.
3279 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
3280 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
3281 if the comparison does not satisfy the predicate; test predicates for
3282 operands 2 and 3 of a cstore pattern. Don't try cstore optab
3283 further if one existing pattern fails.
fbdf817d 3284 * expr.h (compare_from_rtx): Delete.
f90b7a5a 3285 (prepare_operand): Declare it.
fbdf817d 3286 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 3287 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
3288 HAVE_conditional_trap, emit_cmp_insn): Delete.
3289 (can_compare_p): Delete cmp_optab case.
f90b7a5a 3290 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
3291 Accept other parameters by value.
3292 (prepare_operand): Make non-static.
3293 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
3294 other parameters by value. Try to widen operands here based on
3295 an optab_methods argument and looking at cbranch_optab.
3296 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
3297 loop. Use cbranch_optab directly.
3298 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
3299 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
3300 assertion.
3301 (emit_conditional_move, emit_conditional_add): Inline what's needed
3302 of compare_from_rtx, using new prepare_cmp_insn for the rest.
3303 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
3304 with COMPARE. Move cmov_optab and cstore_optab above
3305 with cbranch_optab, move cmp_optab down with ucmp_optab,
3306 remove tst_otpab. Do not initialize trap_rtx.
3307 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
3308 for trap code. Do not check HAVE_conditional_trap. Use
3309 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
3310 * optabs.h (OTI_cmp): Mark as used only for libcalls.
3311 (OTI_ctrap, ctrap_optab): New.
3312 (tst_optab): Delete.
3313 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
3314 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
3315 with lookup of ctrap_optab.
f3afc8a7
UB
3316 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
3317 Delete.
fbdf817d
UB
3318 (ctrap_optab): New.
3319
3320 * combine.c (combine_simplify_rtx, simplify_set): Do not
3321 special case comparing against zero for cc0 machines.
f90b7a5a
PB
3322 * simplify-rtx.c (simplify_binary_operation_1): Never remove
3323 COMPARE on cc0 machines.
3324 (simplify_relational_operation): Return a new expression when
3325 a COMPARE could be removed.
fbdf817d
UB
3326 * final.c (final_scan_insn): Compare cc_status values
3327 against LHS of a (compare FOO (const_int 0)) cc0 source.
3328 Also check if cc_status.value is the full compare.
f90b7a5a 3329
fbdf817d
UB
3330 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
3331 (cstoreMM4): Document.
f90b7a5a 3332 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 3333 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
3334 (Dependent Patterns): Eliminate obsolete information referring to
3335 the old jump optimization phase.
fbdf817d 3336 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
3337 of compares with 0 on cc0 machines.
3338 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
3339 avoiding references to cc0. Remove text about storing operands
3340 in cmpMM.
3341 * doc/tm.texi (Condition Codes): Include blurb on different
3342 condition code representations, separate into subsections for
3343 CC0, MODE_CC and conditional execution.
3344
fbdf817d
UB
3345 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
3346 alpha_emit_setcc): Accept operands and a machine mode.
3347 * config/alpha/alpha.c (alpha_emit_conditional_branch):
3348 Get code/op0/op1 from operands, use machine mode argument
3349 instead of alpha_compare.fp_p. Emit the branch here.
3350 (alpha_emit_setcc): Likewise, and return boolean.
3351 (alpha_emit_conditional_move): Likewise. Assert that
3352 cmp_op_mode == cmp_mode, and simplify accordingly.
3353 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
3354 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
3355 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
3356 Delete.
3357 (stack probe test): Use cbranchdi4.
3358 * config/alpha/predicates.md (alpha_cbranch_operator): New.
3359
3360 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
3361 * config/arc/arc.h (movsicc, movsfcc): Use it.
3362 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
3363 (cbranchsi4, cstoresi4): New.
3364 (cmpsi, bCC and sCC expanders): Remove.
3365
3366 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
3367 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
3368 * config/arm/predicates.md (arm_comparison_operator): Only include
3369 floating-point operators if there is a hardware floating-point unit.
3370 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
3371 deferring to cbranch_cc and cstore_cc respectively.
3372 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
3373 cbranch_cc, cstore_cc): New.
3374 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 3375 arm_compare_op1.
fbdf817d
UB
3376 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
3377
3378 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
3379 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
3380 as an argument.
3381 (adjust_insn_length): Adjust calls.
3382 (avr_reorg): Handle (compare (foo) (const_int 0)).
3383 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
3384 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
3385 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
3386 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
3387 (bCC): Remove.
3388 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
3389 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
3390
fbdf817d
UB
3391 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
3392 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 3393 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
3394 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
3395 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
3396 (bfin_optimize_loop): Use cbranch expander.
3397 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
3398 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
3399 (bfin_bimode_comparison_operator): ... this.
3400 (bfin_direct_comparison_operator): New.
f90b7a5a 3401
fbdf817d
UB
3402 * config/cris/cris.c (cris_normal_notice_update_cc): Look
3403 inside (compare FOO (const_int 0)).
3404 (cris_rtx_costs): Handle ZERO_EXTRACT.
3405 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
3406 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
3407 (*tstdi_v32): Delete.
3408 (*cmpdi_non_v32): Add M alternative for operand 1.
3409 (cmpsi, cmp<mode>): Make private.
3410 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
3411 with COMPARE.
3412 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
3413
3414 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
3415 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
3416 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
3417 (cc_reg_operand): New.
3418 (any_cond): Delete.
fbdf817d
UB
3419 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
3420 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
3421 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
3422 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
3423 crx_expand_scond): Delete.
3424
3425 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
3426 (cbranchsi4): New.
3427 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
3428 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
3429
3430 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
3431 cstoresi4, cstoresf4, cstoredf4): New.
3432 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
3433 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3434 Receive the entire operands array.
3435 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
3436 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
3437 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3438 Get test/op0/op1 from the operands array.
3439 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
3440
3441 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
3442 (h8300_expand_store): New.
3443 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
3444 (const_int 0)).
3445 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
3446 (h8300_expand_store): New.
3447 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
3448 or do not try to produce (set (cc0) REG).
3449 (peepholes): Wrap arguments with COMPARE. Add a peephole to
3450 change a compare into a move to a scratch register. Disable some
3451 peepholes when comparing with zero.
3452 (tstsi, tsthi, tstsi, cmpqi): Make private.
3453 (cmphi): Delete.
3454 (bCC, sCC): Delete.
3455 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
3456 cstoresi4): New.
f90b7a5a
PB
3457
3458 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
3459 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
3460 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
3461 (ix86_emit_i387_log1p): Use cbranchxf2.
3462 (ix86_expand_setcc): Return void.
3463 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
3464 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
3465 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
3466 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
3467 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
3468 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
3469 (sCC and bCC expanders): Remove.
3470 (stack_protect_test): Use cbranchcc4.
3471
fbdf817d
UB
3472 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
3473 Delete.
3474 (ia64_expand_compare): Accept three rtx by reference and return void.
3475 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
3476 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
3477 from *expr. Update *expr with the BImode comparison to do.
3478 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
3479 cmptf, bCC, sCC, conditional_trap): Delete.
3480 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
3481 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
3482 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
3483 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
3484 * config/ia64/predicates.md (ia64_cbranch_operator): New.
3485
3486 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
3487 type of last argument.
3488 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
3489 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
3490 use machine mode argument instead of branch_type. Remove dead
3491 code for floating-point comparisons.
3492 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
3493 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
3494 Remove.
3495 (cbranchsi4, cstoresi4): New.
3496 * config/iq2000/predicates.md (reg_or_const_operand): New.
3497
3498 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
3499 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
3500 (b<code>_op): Rewrite to...
3501 (bcc_op): ... this, using match_operator.
3502 (s<code>_op): Rewrite to...
3503 (scc_op): ... this, using match_operator.
3504 (s<code>_24_op): Rewrite to...
3505 (scc_op_24): ... this, using match_operator.
3506 (s<code>_<mode>): Rewrite to...
3507 (cstore<mode>4): ... this, using match_operator.
3508 (s<code>_<mode>_24): Rewrite to...
3509 (cstore<mode>4_24): ... this, using match_operator.
3510 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
3511 m32c_unpend_compare, m32c_expand_scc): Delete.
3512 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
3513 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
3514 (m32c_expand_movcc): Change NE to EQ if necessary.
3515 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
3516
3517 * config/m32r/m32r-protos.h (gen_cond_store): New.
3518 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
3519 (gen_cond_store): New, from sCC patterns.
3520 (m32r_expand_block_move): Use cbranchsi4.
3521 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
3522 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
3523 (cbranchsi4, cstoresi4): New.
3524
3525 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
3526 Delete.
3527 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 3528 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
3529 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
3530 Delete.
3531 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
3532 cmphi, cmpqi, bCC): Delete.
3533 (cbranchsi4, cbranchhi4, cbranchqi4): New.
3534 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
3535 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
3536 sets with COMPARE.
3537
3538 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
3539 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
3540 * config/m68k/constraints.md (H): New.
3541 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
3542 the define_insn below.
3543 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
3544 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
3545 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
3546 patterns): Wrap RHS with COMPARE.
3547 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
3548 (*cmpdi_internal): Name this pattern.
3549 (cmpdi): Change to define_insn.
3550 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
3551 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
3552 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
3553 predicate.
3554 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
3555 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
3556 (conditional_trap): Change to...
3557 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
3558 (*conditional_trap): Use the ordered_comparison_operator and
3559 const1_operand predicates.
3560 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
3561 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
3562 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
3563 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
3564
3565 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
3566 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
3567 (mcore_gen_compare): New.
3568 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
3569 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
3570 (mcore_gen_compare): ... this.
3571 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
3572 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
3573 (stack probe pattern): Use cbranchsi4.
3574
3575 * config/mips/predicates.md (mips_cstore_operator): New.
3576 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
3577 * config/mips/mips.md (any_cond): Delete.
3578 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
3579 always succeed.
3580 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
3581 fixuns_truncsfdi2): Use cbranch patterns.
3582 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
3583 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
3584 Adjust call to mips_expand_conditional_branch.
3585 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
3586 cstore<GPR:mode>4.
3587 * config/mips/mips-protos.h (mips_expand_conditional_branch,
3588 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
3589 * config/mips/mips.c (cmp_operands): Delete.
3590 (mips_emit_compare): Get comparison operands from *op0/*op1.
3591 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
3592 that it succeeds. Use op0/op1 instead of cmp_operands.
3593 (mips_expand_conditional_branch, mips_expand_conditional_move,
3594 mips_expand_conditional_trap): Likewise.
3595 (mips_block_move_loop): Use cbranch patterns.
3596 * config/mips/mips.h (cmp_operands): Delete.
3597
3598 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
3599 (mmix_gen_compare_reg): Just return a register in the right CC mode.
3600 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
3601 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
3602 (*cmpcc_folded): Rename to...
3603 (*cmpdi_folded): this.
3604 (*cmpcc): Rename to...
3605 (*cmps): ... this.
3606 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
3607 (bCC): Remove.
3608 (cbranchdi4): New.
3609 (cbranchdf4): New. Handle invalid comparisons here.
3610 * config/mmix/predicates.md (float_comparison_operator): New.
3611
3612 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
3613 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
3614 * config/mn10300/mn10300.md (tst): Delete.
3615 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
3616 Name these patterns and wrap RHS in a compare.
3617 (*cmpsi): Make this pattern private. Include tst.
3618 (*cmpsf): Make this pattern private.
3619 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
3620 (compare with zero peepholes): Likewise.
3621 (bCC): Remove.
3622 (cbranchsi4, cbranchsf4): New.
3623 (casesi): Use cbranchsi4.
3624
3625 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
3626 hppa_branch_type): Delete.
3627 (return_addr_rtx): Use cbranchsi4.
3628 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
3629 Emit CCFPmode comparison here.
3630 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
3631 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
3632 hppa_branch_type): Delete.
3633 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
3634 (movsicc, movdicc): Remove references to hppa_compare_op0,
3635 hppa_compare_op1 and compare_from_rtx.
3636 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
3637 (casesi): Use cbranchsi4.
3638
3639 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
3640 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
3641 * config/pdp11/pdp11.md (register_or_const0_operand): New.
3642 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
3643 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
3644 (bCC): Delete.
3645 (cbranchdf4, cbranchhi4, cbranchqi4): New.
3646 (*branch, *branch_inverted): New.
3647
3648 * config/picochip/picochip.md (cbranchhi4): Use
3649 ordered_comparison_operator.
3650 (cmphi, bCC): Remove.
3651
3652 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
3653 (trap_comparison_operator): Delete.
3654 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
3655 rs6000_emit_cbranch): Accept mode and operands.
3656 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
3657 rs6000_compare_fp_p): Delete.
3658 (rs6000_generate_compare): Accept mode and comparison. Extract code
3659 and op0/op1 from there. Replace references to rs6000_compare_op0
3660 and rs6000_compare_op1.
3661 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
3662 extract result from passed operands.
3663 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
3664 extract loc from passed operands.
3665 (rs6000_emit_cmove): Likewise.
3666 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
3667 rs6000_compare_fp_p): Delete.
3668 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
3669 (cbranch<GPR>4, cbranch<FP>4): New.
3670 (cstore<mode>4): New. Consolidate here all choices about when to use
3671 portable or specialized sCC sequences.
3672 (stack_protect_test): Use cbranchsi4.
3673 (conditional_trap): Replace with ctrap<GPR>4.
3674 (conditional trap insn): Replace trap_comparison_operator with
3675 ordered_comparison_operator.
3676
3677 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
3678 (s390_emit_prologue): Use ctrap.
3679 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
3680 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
3681 New predicates replacing...
3682 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
3683 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
3684 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
3685 (add<mode>cc): Do not use s390_compare_op0/op1.
3686 (s<code>): Change to...
3687 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
3688 (seq): Change to...
3689 (cstorecc4): ... this. Handle EQ or NE equally.
3690 (*sne): Un-privatize for use in cstorecc4.
3691 (b<code>): Change to...
3692 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
3693 (conditional_trap): Replace with...
3694 (ctrap<GPR>4, ctrap<FP>4): ... these.
3695 (stack_protect): Use cbranchcc4.
3696
3697 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
3698 * config/score/score-protos.h (score_gen_cmp): Delete.
3699 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
3700 (score_block_move-loop): Use cbranchsi4.
3701 * config/score/score.md (cbranchsi4): New.
3702 (cmpsi, bCC): Delete.
3703 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
3704 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3705 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
3706 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3707 * config/score/score3.h (score3_gen_cmp): Delete.
3708 * config/score/score7.h (score7_gen_cmp): Delete.
3709
3710 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
3711 (sh_emit_scc_to_t): ... this. Return void.
3712 (from_compare): Rename to...
3713 (sh_emit_compare_and_branch): ... this.
3714 (sh_emit_compare_and_set): New.
3715 (sh_expand_t_scc): Accept operands.
3716 * config/sh/predicates.md (sh_float_comparison_operator): New.
3717 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
3718 (prepare_scc_operands): Rename to...
3719 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
3720 arguments.
3721 (sh_emit_cheap_store_flag): New.
f90b7a5a 3722 (sh_emit_set_t_insn): New.
fbdf817d
UB
3723 (from_compare): Rename to...
3724 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
3725 handling of TARGET_SH2E floating point to avoid recursive call.
3726 Generate branch here.
3727 (sh_emit_compare_and_set): New.
3728 (sh_expand_t_scc): Get op0/op1 from arguments.
3729 (sh_emit_cheap_store_flag): New.
3730 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
3731 cases.
f90b7a5a 3732 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
3733 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
3734 (movsicc, movdicc): Do nothing when it recreated operands from
3735 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
3736 prepare_scc_operands (now sh_emit_scc_to_t).
3737 (udivdi3): Use cstoresi4.
3738 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
3739 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
3740 (cbranchint4_media, cbranchfp4_media): New.
3741 (casesi): Use cbranchdi4.
3742 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
3743 Delete.
3744 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
3745 (movnegt): Remove second operand.
3746 (cbranchsf4, cbranchdf4): New.
3747 (stack_protect): Use cbranchdi4/cbranchsi4.
3748
3749 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
3750 (gen_compare_reg): Accept comparison, extract part of it to...
3751 (gen_compare_reg_1): ... this.
3752 (gen_compare_operator): Delete.
3753 (gen_v9_scc): Accept separate destination, comparison code and arms.
3754 Do not use sparc_compare_op0/sparc_compare_op1.
3755 (emit_scc_insn, emit_conditional_branch_insn): New.
3756 (emit_v9_brxx): Make static. Remove useless assertion.
3757 (sparc_emit_float_lib_cmp): Return RTL instead of calling
3758 emit_cmp_insn.
3759 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
3760 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
3761 sparc_emit_float_lib_cmp): Adjust prototype.
3762 (emit_scc_insn, emit_conditional_branch_insn): New.
3763 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
3764 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
3765 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
3766 iterators to the top.
3767 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
3768 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 3769 snedi_special_trunc): Delete.
fbdf817d 3770 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 3771 and snedi_special_trunc.
fbdf817d
UB
3772 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3773 cbranchdi4, cbranch<F:mode>4): New.
3774 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3775 here. Use gen_compare_reg instead of gen_compare_operator.
3776 (conditional_trap): Replace with...
3777 (ctrapsi4, ctrapdi4): ... this.
3778 (stack_protect_test): Use cbranchcc4.
3779
3780 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3781 argument to rtx.
3782 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
3783 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3784 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
3785 from operands[0] or operands[3] depending on is_set.
3786 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3787 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3788 cmpdf, bCC), sCC: Remove.
3789 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
3790 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3791 cstoredf4): New.
3792 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3793 spu_emit_branch_or_set.
3794
3795 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3796 Add two arguments.
3797 * config/stormy16/stormy16.h (xstormy16_compare_op0,
3798 xstormy16_compare_op1): Delete.
3799 * config/stormy16/stormy16.c (xstormy16_compare_op0,
3800 xstormy16_compare_op1): Delete.
3801 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3802 Adjust calls.
3803 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3804 (cmphi, cmpsi, bCC): Remove.
3805
3806 * config/v850/v850.md (tstsi, cmpsi): Fold into...
3807 (*cmpsi): ... this one.
3808 (cbranchsi4, cstoresi4): New.
3809 (bCC expanders): Delete.
3810 (sCC insns): Fold into...
3811 (*setcc): ... this one.
3812 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
3813 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3814 (movsicc): Simplify.
3815 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3816
fbdf817d
UB
3817 * config/vax/vax-protos.h (cond_name): New.
3818 (vax_output_conditional_branch): Remove.
3819 * config/vax/vax.c (cond_name): New.
3820 (vax_output_conditional_branch): Remove.
3821 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3822 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3823 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
3824 (bit<VAXint>): Wrap source with (compare).
3825 (b<code> and following unnamed pattern): Rename to *branch and
3826 *branch_reversed. Change macroization to match_operator.
3827 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3828
3829 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3830 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3831 Change last argument to machine_mode.
3832 (xtensa_expand_scc): Add machine_mode argument.
3833 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3834 (gen_conditional_move, xtensa_expand_conditional_branch,
3835 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3836 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3837 Adjust operand numbers.
3838 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3839 Delete.
3840 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3841 (cmpsi, cmpsf, b<code>, s<code>): Delete.
3842 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 3843
16670495
PB
38442009-05-12 Paolo Bonzini <bonzini@gnu.org>
3845
3846 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3847 causes spurious differences between trunk and cond-optab branch.
3848
4a4a4e99
AO
38492009-05-12 Alexandre Oliva <aoliva@redhat.com>
3850
3851 PR target/37137
3852 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3853
72b9acff
AO
38542009-05-12 Alexandre Oliva <aoliva@redhat.com>
3855
3856 * tree.c (iterative_hash_pointer): Delete.
3857 (iterative_hash_expr): Short-circuit handling of NULL pointer.
3858 Hash UIDs and versions of SSA names. Don't special-case built-in
3859 function declarations.
3860
b7dd69ac
ILT
38612009-05-11 Ian Lance Taylor <iant@google.com>
3862
3863 PR bootstrap/40103
3864 * graphite.c: Force -Wc++-compat to only be a warning before
3865 #including "cloog/cloog.h".
3866
ed102b70
MJ
38672009-05-11 Martin Jambor <mjambor@suse.cz>
3868
3869 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3870
08f1af2e
JH
38712009-05-11 Jan Hubicka <jh@suse.cz>
3872
3873 * tree-ssa-loop-ivcanon.c: Include target.h
3874 (struct loop_size): new structure.
3875 (constant_after_peeling): New predicate.
3876 (tree_estimate_loop_size): New function.
3877 (estimated_unrolled_size): Rewrite for new estimates.
3878 (try_unroll_loop_completely): Use new estimates.
3879 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3880
a7d39bd3
AP
38812009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
3882
3883 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3884 libcpp interface change.
3885 (spu_macro_to_expand): Likewise.
3886
f5a1f0d0
PB
38872009-05-11 Paolo Bonzini <bonzini@gnu.org>
3888
3889 PR tree-optimization/40026
3890 * gimplify.c (gimplify_init_constructor): Change initial conditional
3891 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
3892 optimize_compound_literals_in_ctor.
3893
c260f01f
NS
38942009-05-11 Nathan Sidwell <nathan@codesourcery.com>
3895
3896 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3897 New devices.
3898 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3899
df398a37
L
39002009-05-11 H.J. Lu <hongjiu.lu@intel.com>
3901
3902 * tree-vect-data-refs.c (vect_analyze_group_access): Use
3903 HOST_WIDE_INT for gap.
3904
4da39468
IR
39052009-05-11 Ira Rosen <irar@il.ibm.com>
3906
3907 PR tree-optimization/40074
3908 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3909 account in group size and step comparison.
3910
4effdf02
RG
39112009-05-11 Richard Guenther <rguenther@suse.de>
3912
3913 * passes.c (init_optimization_passes): Strip now incorrect comment.
3914 (execute_function_todo): Do not set PROP_alias.
3915 * tree-pass.h (PROP_alias): Remove.
3916 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3917 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3918 * tree-nrv.c (pass_return_slot): Likewise.
3919 * tree-object-size.c (pass_object_sizes): Likewise.
3920 * tree-ssa-dom.c (pass_dominator): Likewise.
3921 (pass_phi_only_cprop): Likewise.
3922 * tree-ssa-dse.c (pass_dse): Likewise.
3923 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3924 (pass_cselim): Likewise.
3925 * tree-ssa-pre.c (pass_pre): Likewise.
3926 (pass_fre): Likewise.
3927 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3928 * tree-ssa-sink.c (pass_sink_code): Likewise.
3929 * tree-stdarg.c (pass_stdarg): Likewise.
3930 * tree-tailcall.c (pass_tail_calls): Likewise.
3931 * tree-vrp.c (pass_vrp): Likewise.
3932
24b97832
ILT
39332009-05-10 Ian Lance Taylor <iant@google.com>
3934
3935 * basic-block.h (enum profile_status): Break out of struct
3936 control_flow_graph.
3937 * cgraph.h (struct inline_summary): Break out of struct
3938 cgraph_local_info.
3939 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3940 of struct cgraph_order_sort.
fbdf817d 3941 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
3942 * cse.c (struct branch_path): Break out of struct
3943 cse_basic_block_data.
3944 * except.h (enum eh_region_type): Break out of struct eh_region.
3945 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 3946 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
3947 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3948 ggc_pch_data.
fbdf817d
UB
3949 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3950 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
3951 * sched-int.h (enum post_call_group): New enum, broken out of
3952 struct deps.
3953 (struct deps_reg): Break out of struct deps.
3954 * target.h (struct asm_int_op): Break out of struct gcc_target.
3955 * tree-eh.c (struct goto_queue_node): Break out of struct
3956 leh_tf_state.
3957 * tree-inline.h (enum copy_body_cge_which): Break out of
3958 copy_body_data.
3959 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3960
3961 * c-decl.c (in_struct, struct_types): New static variables.
3962 (pushtag): Add loc parameter. Change all callers.
3963 (lookup_tag): Add ploc parameter. Change all callers.
3964 (check_compound_literal_type): New function.
3965 (parser_xref_tag): Add loc parameter. Change all callers. If
3966 -Wc++-compat, warn about struct/union/enum types defined within a
3967 struct or union.
3968 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
3969 and loc parameters. Change all callers. Change error calls to
3970 error_at, using loc. For a redefinition, if the location of the
3971 original definition is known, report it. Set in_struct and
fbdf817d 3972 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
3973 (finish_struct): Add new parameters enclosing_in_struct and
3974 enclosing_struct_types. Change all callers. Set
3975 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
3976 in the struct. If in a struct, add this struct to struct_types.
3977 (start_enum): Add loc parameter. Change all callers. Use
3978 error_at for errors, using loc. For a redefinition, if the
3979 location of the original definition is known, report it. If in a
3980 struct, add this enum type to struct_types. If -Wc++-compat warn
3981 if in sizeof, typeof, or alignof.
fbdf817d
UB
3982 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
3983 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
3984 (c_parser_enum_specifier): Get enum location for start_enum.
3985 (c_parser_struct_or_union_specifier): Get struct location for
3986 start_struct. Save in_struct and struct_types status between
3987 start_struct and finish_struct.
3988 (c_parser_cast_expression): Get location of cast.
3989 (c_parser_alignof_expression): Get location of type.
3990 (c_parser_postfix_expression): Likewise.
3991 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
3992 parameter. Change all callers. Call check_compound_literal_type.
3993 Use type_loc for error about variable size type.
3994 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
3995 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
3996 (c_cast_expr): Add loc parameter. Change all callers. If
3997 -Wc++-compat, warn about defining a type in a cast.
3998 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
3999 (start_enum, start_struct, finish_struct): Update declarations.
4000 (parser_xref_tag, c_cast_expr): Update declarations.
4001 (check_compound_literal_type): Declare.
4002
7a2738fa
BE
40032009-05-11 Ben Elliston <bje@au.ibm.com>
4004
4005 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
4006 for recent libcpp interface change.
4007 (rs6000_macro_to_expand): Likewise.
4008
af618949
MM
40092009-05-10 Michael Matz <matz@suse.de>
4010
4011 PR target/40031
4012 * config/arm/arm.c (require_pic_register): Emit on entry edge,
4013 not at entry of function.
4014
b7d7a473
RG
40152009-05-10 Richard Guenther <rguenther@suse.de>
4016
4017 PR tree-optimization/40081
4018 Revert
4019 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4020 using the main variant of the element type. Do not fiddle with
4021 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4022
4023 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
4024 structs with volatile fields.
4025
078c3644
JH
40262009-05-10 Jan Hubicka <jh@suse.cz>
4027
4028 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
4029 (estimate_move_cost): Assert that it does not get called for
4030 VOID_TYPE_P.
078c3644
JH
4031 (estimate_num_insns): Skip VOID types in argument handling.
4032 (optimize_inline_calls): Delete unreachable blocks and verify that
4033 callgraph is valid.
4034
39ff5a96
JH
40352009-05-10 Jan Hubicka <jh@suse.cz>
4036
4037 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
4038 * cgraph.c (cgraph_mark_address_taken_node): New function.
4039 (dump_cgraph_node): Dump new flag.
4040 * cgraph.h (struct cgraph_node): Add address_taken.
4041 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
4042 * ipa.c (cgraph_postorder): Prioritize functions with address taken
4043 since new direct calls can be born.
4044
9a0c6187
JM
40452009-05-10 Joseph Myers <joseph@codesourcery.com>
4046
4047 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
4048 tok->val.node.node.
4049
4b685e14
JH
40502009-05-10 Jan Hubicka <jh@suse.cz>
4051
4052 PR middle-end/40084
fb0be169
EB
4053 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
4054 argument; rewrite.
4b685e14
JH
4055 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
4056 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
4057 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
4058 (fold_marked_statements): Update call to
4059 cgraph_update_edges_for_call_stmt.
4b685e14 4060
29d08eba
JM
40612009-05-10 Joseph Myers <joseph@codesourcery.com>
4062
4063 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
4064 identifiers in diagnostics.
4065 * config/arm/arm.c (arm_handle_fndecl_attribute,
4066 arm_handle_isr_attribute): Likewise.
4067 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 4068 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
4069 * config/bfin/bfin.c (handle_int_attribute,
4070 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
4071 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
4072 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
4073 Likewise.
4074 * config/darwin.c (darwin_handle_kext_attribute,
4075 darwin_handle_weak_import_attribute): Likewise.
4076 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
4077 h8300_handle_eightbit_data_attribute,
4078 h8300_handle_tiny_data_attribute): Likewise.
4079 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 4080 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
4081 * config/i386/winnt.c (ix86_handle_shared_attribute,
4082 ix86_handle_selectany_attribute): Likewise.
4083 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4084 * config/m32c/m32c.c (function_vector_handler): Likewise.
4085 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
4086 m68hc11_handle_fntype_attribute): Likewise.
4087 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4088 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4089 * config/mips/mips.c (mips_insert_attributes,
4090 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
4091 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
4092 rs6000_handle_struct_attribute): Likewise.
4093 * config/sh/sh.c (sh_insert_attributes,
4094 sh_handle_resbank_handler_attribute,
4095 sh_handle_interrupt_handler_attribute,
4096 sh2a_handle_function_vector_handler_attribute,
4097 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4098 Likewise.
4099 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
4100 * config/spu/spu.c (spu_handle_fndecl_attribute,
4101 spu_handle_vector_attribute): Likewise.
4102 * config/stormy16/stormy16.c
4103 (xstormy16_handle_interrupt_attribute): Likewise.
4104 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
4105 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4106
f41c4af3
JM
41072009-05-10 Joseph Myers <joseph@codesourcery.com>
4108
782dc37a 4109 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
4110 (pp_translate_identifiers): New.
4111 (pp_identifier): Only conditionally translate identifier to locale
4112 character set.
4113 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
4114 (pp_base_tree_identifier): Only conditionally translate identifier
4115 to locale character set.
4116 * c-pretty-print.c (M_): Define.
4117 (pp_c_type_specifier, pp_c_primary_expression): Mark English
4118 fragments for conditional translation with M_.
4119 * tree-pretty-print.c (maybe_init_pretty_print): Disable
4120 identifier translation.
4121
896d7dbd
RG
41222009-05-10 Richard Guenther <rguenther@suse.de>
4123
4124 PR tree-optimization/40081
4125 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4126 using the main variant of the element type. Do not fiddle with
4127 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4128
9a23acef
JH
41292009-05-09 Jan Hubicka <jh@suse.cz>
4130
4131 PR middle-end/40080
4132 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
4133 indirect calls; verify cgraph afterwards.
4134
d563610d
JH
41352009-05-09 Jan Hubicka <jh@suse.cz>
4136
4137 PR bootstrap/40082
4138 * ipa.c (update_inlined_to_pointer): New function.
4139 (cgraph_remove_unreachable_nodes): Use it.
4140
f08a18d0
JH
41412009-05-09 Jan Hubicka <jh@suse.cz>
4142
4143 * tree-eh.c (struct leh_state): Remove prev_try.
4144 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
4145 not track prev_try.
4146 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
4147 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
4148 remove_eh_handler_and_replace, foreach_reachable_handler,
4149 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
4150 * except.h (struct eh_region): Remove eh_region_u_cleanup.
4151 (gen_eh_region_cleanup): Update prototype.
4152
0afd7219
JH
41532009-05-09 Jan Hubicka <jh@suse.cz>
4154
4155 PR middle-end/40043
4156 * except.c (copy_eh_region): Always set prev_try.
4157 (redirect_eh_edge_to_label): Find outer try.
4158 (foreach_reachable_handler): When looking for prev try
4159 handle case where previous try is not going to be taken.
4160
ad6c0864
MM
41612009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4162
4163 PR tree-optimization/40049
4164 * tree-vect-stmts.c (vectorizable_operation): If the machine has
4165 only vector/vector shifts, convert the type of the constant to the
4166 appropriate type to avoid building incorrect trees, which
4167 eventually have problems with garbage collection.
4168
c94f9067
JM
41692009-05-08 Joseph Myers <joseph@codesourcery.com>
4170
4171 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
4172 -1 for complex floating-point types if honoring signed zeros.
4173
9187e02d
JH
41742009-05-08 Jan Hubicka <jh@suse.cz>
4175
20acb8a2
EB
4176 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
4177 argument; handle correctly when profile is absent.
9187e02d
JH
4178 (build_cgraph_edges): Update.
4179 (rebuild_cgraph_edges): Update.
20acb8a2
EB
4180 * cgraph.c: Do not include varray.h.
4181 (cgraph_set_call_stmt_including_clones): New function.
4182 (cgraph_create_edge_including_clones): Likewise
4183 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
4184 (cgraph_update_edges_for_call_stmt): Handle clones.
4185 (cgraph_remove_node): Handle clone tree.
4186 (cgraph_remove_node_and_inline_clones): New function.
4187 (dump_cgraph_node): Dump clone tree.
4188 (cgraph_clone_node): Handle clone tree.
20acb8a2 4189 (clone_function_name): Bring here from tree-inline.c.
9187e02d 4190 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
4191 * cgraph.h (ipa_replace_map): Move here from ipa.h.
4192 (cgraph_clone_info): New function.
9187e02d 4193 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
4194 (cgraph_remove_node_and_inline_clones,
4195 cgraph_set_call_stmt_including_clones,
4196 cgraph_create_edge_including_clones,
4197 cgraph_create_virtual_clone): Declare.
9187e02d
JH
4198 (cgraph_function_versioning): Use VEC argument.
4199 (compute_call_stmt_bb_frequency): Update prototype.
4200 (cgraph_materialize_all_clones): New function.
4201 * ipa-cp.c (ipcp_update_cloned_node): Remove.
4202 (ipcp_create_replace_map): Update to VECtors.
4203 (ipcp_update_callgraph): Use virtual clones.
4204 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
4205 (ipcp_update_profiling): Do not update local profiling.
4206 (ipcp_insert_stage): Use VECtors and virtual clones.
4207 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
4208 (clone_of_p): New function.
4209 (cgraph_preserve_function_body_p): Use clone tree.
4210 (cgraph_optimize): Materialize clones.
4211 (cgraph_function_versioning): Update for VECtors.
4212 (save_inline_function_body): Use clone tree.
20acb8a2
EB
4213 (cgraph_materialize_clone): New function.
4214 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
4215 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
4216 * ipa.c: Include gimple.h.
4217 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
4218 * ipa-prop.c (ipa_note_param_call): Update call to
4219 compute_call_stmt_bb_frequencycall.
9187e02d 4220 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 4221 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
4222 (copy_bb): Handle updating of clone tree; add new edge when new call
4223 appears.
4224 (expand_call_inline): Be strict about every call having edge.
4225 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
4226 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
4227 (tree_function_versioning): Use VECtors; always remove unreachable
4228 blocks and fold conditionals.
4229 * tree-inline.h: Do not include varray.h.
9187e02d
JH
4230 (tree_function_versioning): Remove.
4231 * Makefile.in (GTFILES): Remove tree-inline.c
4232 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
4233 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
4234 tree.
9187e02d 4235
9b86d6bb
L
42362009-05-08 H.J. Lu <hongjiu.lu@intel.com>
4237 Andrew Morrow <acm@google.com>
4238
4239 PR c/36892
4240 * c-common.c (c_common_attribute_table): Permit deprecated
4241 attribute to take an optional argument.
4242 (handle_deprecated_attribute): If the optional argument to
4243 __attribute__((deprecated)) is not a string ignore the attribute
4244 and emit a warning.
4245
4246 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
4247 * c-typeck.c (build_component_ref): Likewise.
4248 (build_external_ref): Likewise.
4249
4250 * toplev.c (warn_deprecated_use): Add an attribute argument.
4251 Emit the message associated with __attribute__((deprecated)).
4252
4253 * toplev.h (warn_deprecated_use): Updated.
4254
4255 * doc/extend.texi: Document new optional parameter to
4256 __attribute__((deprecated))
4257
82ad047f
ME
42582009-05-08 Michael Eager <eager@eagercon.com>
4259
4260 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
4261 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
4262
788d3075
RG
42632009-05-08 Richard Guenther <rguenther@suse.de>
4264
4265 PR tree-optimization/40062
4266 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
4267 Avoid exponential behavior.
4268
00952e97
PB
42692009-05-08 Paolo Bonzini <bonzini@gnu.org>
4270
4271 PR rtl-optimization/33928
4272 PR 26854
4273 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
4274 process_uses, build_single_def_use_links): New.
4275 (update_df): Update use_def_ref.
4276 (forward_propagate_into): Use get_def_for_use instead of use-def
4277 chains.
4278 (fwprop_init): Call build_single_def_use_links and let it initialize
4279 dataflow.
4280 (fwprop_done): Free use_def_ref.
4281 (fwprop_addr): Eliminate duplicate call to df_set_flags.
4282 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
4283 df_rd_simulate_one_insn): New.
4284 (df_rd_bb_local_compute_process_def): Update head comment.
4285 (df_chain_create_bb): Use the new RD simulation functions.
4286 * df.h (df_rd_simulate_artificial_defs_at_top,
4287 df_rd_simulate_one_insn): New.
4288 * opts.c (decode_options): Enable fwprop at -O1.
4289 * doc/invoke.texi (-fforward-propagate): Document this.
4290
2ca862e9
JM
42912009-05-08 Joseph Myers <joseph@codesourcery.com>
4292
4293 PR c/24581
4294 * c-typeck.c (build_binary_op): Handle arithmetic between one real
4295 and one complex operand specially.
4296 * tree-complex.c (some_nonzerop): Do not identify a real value as
4297 zero if flag_signed_zeros.
4298
3e807ffc
PB
42992009-05-08 Paolo Bonzini <bonzini@gnu.org>
4300
4301 PR rtl-optimization/33928
7925c06c 4302 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 4303
1bfdbb29
PB
43042009-05-08 Paolo Bonzini <bonzini@gnu.org>
4305
4306 PR rtl-optimization/33928
e913423f
EB
4307 * loop-invariant.c (struct use): Add addr_use_p.
4308 (struct def): Add n_addr_uses.
4309 (struct invariant): Add cheap_address.
4310 (create_new_invariant): Set cheap_address.
4311 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
4312 (record_uses): Pass df_ref to record_use.
4313 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
4314 used only as such.
1bfdbb29 4315
702cb2a0
KK
43162009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
4317
4318 * config/sh/sh.c: Do not include c-pragma.h.
4319
5e8df753
AP
43202009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
4321
4322 * config/spu/spu.c: Remove include of c-common.h.
4323
6ec637a4
JJ
43242009-05-07 Janis Johnson <janis187@us.ibm.com>
4325
4326 PR c/39037
4327 * c-common.h (mark_valid_location_for_stdc_pragma,
4328 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
4329 clear_float_const_decimal64, float_const_decimal64_p): New.
4330 * c.opt (Wunsuffixed-float-constants): New.
4331 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
4332 unsuffixed float constant, handle new warning.
4333 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
4334 * c-decl.c (c_scope): New flag float_const_decimal64.
4335 (set_float_const_decimal64, clear_float_const_decimal64,
4336 float_const_decimal64_p): New.
4337 (push_scope): Set new flag.
4338 * c-parser.c (c_parser_translation_unit): Mark when it's valid
4339 to use STDC pragmas.
4340 (c_parser_external_declaration): Ditto.
4341 (c_parser_compound_statement_nostart): Ditto.
4342 * c-pragma.c (valid_location_for_stdc_pragma,
4343 mark_valid_location_for_stdc_pragma,
4344 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
4345 handle_pragma_float_const_decimal64): New.
4346 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
4347 * cp/semantics.c (valid_location_for_stdc_pragma_p,
4348 set_float_const_decimal64, clear_float_const_decimal64,
4349 float_const_decimal64_p): New dummy functions.
4350 * doc/extend.texi (Decimal Float): Remove statement that the
4351 pragma, and suffix for double constants, are not supported.
4352 * doc/invoke.texi (Warning Options): List new option.
4353 (-Wunsuffixed-float-constants): New.
4354
45b9b2e9
SB
43552009-05-08 Steven Bosscher <steven@gcc.gnu.org>
4356
4357 * config/i386/i386.c: Do not include c-common.h.
4358
e71da632
MH
43592009-05-07 Mark Heffernan <meheff@google.com>
4360
4361 * doc/invoke.texi (Debugging Options): Document change of debugging
4362 dump location.
e913423f 4363 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
4364 aux_base_name directory.
4365
fe4c7bc6
HS
43662009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
4367
4368 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
4369 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
4370
3b3e44eb
RAE
43712009-05-07 Rafael Avila de Espindola <espindola@google.com>
4372
4373 * Makefile.in (install-plugin): Simplify a bit.
4374
fac41238
PB
43752009-05-07 Paolo Bonzini <bonzini@gnu.org>
4376
4377 * Makefile.in (OBJS-common): Add regcprop.o.
4378 (regcprop.o): New.
4379 * timevar.def (TV_CPROP_REGISTERS): New.
4380 * regrename.c (regrename_optimize): Return 0.
4381 (rest_of_handle_regrename): Delete.
4382 (pass_rename_registers): Point to regrename_optimize.
4383 (struct value_data_entry, struct value_data,
4384 kill_value_one_regno, kill_value_regno, kill_value,
4385 set_value_regno, init_value_data, kill_clobbered_value,
4386 kill_set_value, kill_autoinc_value, copy_value,
4387 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
4388 replace_oldest_value_reg, replace_oldest_value_addr,
4389 replace_oldest_value_mem, copyprop_hardreg_forward_1,
4390 debug_value_data, validate_value_data): Move...
4391 * regcprop.c: ... here.
4392 (rest_of_handle_cprop): Delete.
4393 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
4394
472e0df9
JJ
43952009-05-07 Jakub Jelinek <jakub@redhat.com>
4396
4397 PR middle-end/40057
4398 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
4399 GEN_INT for 1 << bitnum.
4400 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
4401 build_int_cst_type.
4402
0d50d55a
UB
44032009-05-07 Uros Bizjak <ubizjak@gmail.com>
4404
4405 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 4406 Remove wrong description of "nand" operation.
0d50d55a 4407
22f597f1
RG
44082009-05-06 Richard Guenther <rguenther@suse.de>
4409 Adam Nemet <anemet@caviumnetworks.com>
4410
4411 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
4412 comment. Add that if LHS is not a gimple register, then RHS1 has
4413 to be a single object (GIMPLE_SINGLE_RHS).
4414
641cac0b
AN
44152009-05-06 Adam Nemet <anemet@caviumnetworks.com>
4416
4417 * expr.c (get_def_for_expr): Move it up in the file.
4418 (store_field): When expanding a bit-field store, look at the
4419 defining gimple stmt for the masking conversion.
4420
5a5c6435
JJ
44212009-05-06 Janis Johnson <janis187@us.ibm.com>
4422
4423 PR middle-end/39986
4424 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
4425 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
4426 32-bit memcpy into long.
4427
96474f36
JJ
44282009-05-06 Jakub Jelinek <jakub@redhat.com>
4429
4430 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
4431 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
4432 new_reg_loc_descr.
4433 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
4434 instead of appending DW_OP_deref*.
4435
529ff441
MM
44362009-05-06 Michael Matz <matz@suse.de>
4437
4438 PR middle-end/40021
4439 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
4440 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
4441
9419a9fd
RAE
44422009-05-06 Rafael Avila de Espindola <espindola@google.com>
4443
4444 * Makefile.in (install-plugin): Fix srcdir handling.
4445
fff1894c
AB
44462009-05-06 Andrey Belevantsev <abel@ispras.ru>
4447
4448 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
4449 when processing for not_regs_needed bitmap.
4450 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
4451 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
4452 handling it for rhs.
4453
700ae70c
L
44542009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4455
ab3426a7 4456 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 4457 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
4458 * config/i386/predicates.md (incdec_operand): Likewise.
4459 (aligned_operand): Likewise.
4460 * config/i386/sse.md (divv8sf3): Likewise.
4461 (sqrtv8sf2): Likewise.
4462
67341fb5
L
44632009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4464
4465 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
4466
4467 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
4468
87946f42
L
44692009-05-06 H.J. Lu <hongjiu.lu@intel.com>
4470
4471 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
4472 ssemodesuffixf2c with avxmodesuffixf2c.
4473
1202aec1
JM
44742009-05-06 Joseph Myers <joseph@codesourcery.com>
4475
4476 PR c/40032
aa016ff7 4477 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 4478
6e57a01d
JJ
44792009-05-05 Jakub Jelinek <jakub@redhat.com>
4480
4481 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
4482 (struct tree_base): Adjust spacing for 8 bit boundaries.
4483 (struct tree_decl_common): Add decl_by_reference_flag bit.
4484 (DECL_BY_REFERENCE): Adjust.
4485 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
4486 print DECL_BY_REFERENCE bit.
4487 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
4488 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
4489 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
4490 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
4491 unconditionally.
4492
32f579f6
JJ
4493 PR middle-end/39666
4494 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
4495 range of the type, but default label is missing, add it with one
4496 of the existing labels instead of adding a new label for it.
4497
617ab743
JM
44982009-05-05 Joseph Myers <joseph@codesourcery.com>
4499
4500 * dwarf.h: Remove.
4501
bf016de8
RAE
45022009-05-05 Rafael Avila de Espindola <espindola@google.com>
4503
4504 * Makefile.in (enable_plugin, plugin_includedir): New.
4505 (install): Depend on install-plugin.
4506 (PLUGIN_HEADERS): New.
4507 (install-plugin): New.
4508 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
4509
7f8fdb9f
RG
45102009-05-05 Richard Guenther <rguenther@suse.de>
4511
4512 PR tree-optimization/40022
4513 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
4514 the only vuse.
4515 (phivn_valid_p): Fix tuplification error, simplify.
4516 (phiprop_insert_phi): Add dumps.
4517 (propagate_with_phi): Simplify.
4518
8d972839
RG
45192009-05-05 Richard Guenther <rguenther@suse.de>
4520
4521 PR middle-end/40023
aa016ff7 4522 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 4523
66ba9b0b
SZ
45242009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
4525
4526 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
4527 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
4528 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
4529 block_ultimate_origin): Rearrange the declarations line to match the
4530 comment that indicates the .c file which the functions are defined.
4531 (dwarf2out_*, set_decl_rtl): Add comment.
4532 (get_base_address): Adjust comment.
4533 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
4534 declarations line and add comment.
4535 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 4536
4f1e4960
JM
45372009-05-04 Joseph Myers <joseph@codesourcery.com>
4538
4539 * attribs.c (decl_attributes): Use %qE for identifiers in
4540 diagnostics.
4541 * cgraphunit.c (verify_cgraph_node): Translate function names to
4542 locale character set in diagnostics.
4543 * coverage.c (get_coverage_counts): Use %qE for identifiers in
4544 diagnostics.
4545 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
4546 Document that functions are named in UTF-8.
4547 * expr.c (expand_expr_real_1): Translate function names to locale
4548 character set in diagnostics.
4549 * gimplify.c (omp_notice_variable, omp_is_private,
4550 gimplify_scan_omp_clauses): Use %qE for identifiers in
4551 diagnostics.
4552 * langhooks.c (lhd_print_error_function): Translate function names
4553 to locale character set.
4554 * langhooks.h (decl_printable_name): Document that return value is
4555 in internal character set.
4556 * stmt.c: Include pretty-print.h
4557 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
4558 diagnostics.
4559 (resolve_operand_name_1): Translate named operand name to locale
4560 character set.
4561 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
4562 diagnostics.
4563 * toplev.c (announce_function): Translate function names to locale
4564 character set.
4565 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
4566 (default_tree_printer): Use pp_identifier or translate identifiers
4567 to locale character set. Mark "<anonymous>" for translation.
4568 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
4569 for identifiers in diagnostics.
4570 * tree.c (handle_dll_attribute): Use %qE for identifiers in
4571 diagnostics.
4572 * varasm.c (output_constructor): Use %qE for identifiers in
4573 diagnostics.
4574
40540e68
RAE
45752009-05-04 Rafael Avila de Espindola <espindola@google.com>
4576
4577 * configure.ac: use ` ` instead of $()
4578 * configure: Regenerate.
4579
33fc884c
BE
45802009-05-05 Ben Elliston <bje@au.ibm.com>
4581
4582 * config/pa/linux-atomic.c: Eliminate conditional include of
4583 errno.h on non-LP64 systems to simplify build requirements.
4584
88388a52
JM
45852009-05-04 Joseph Myers <joseph@codesourcery.com>
4586
4587 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
4588 diagnostics.
4589 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
4590 and pass value to identifier_to_locale.
4591 (warn_variable_length_array): Make name a tree.
4592 (grokdeclarator): Separate diagnostic texts for named and unnamed
4593 declarators. Use %qE for named declarators.
4594 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
4595 diagnostics.
4596 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
4597 identifiers in diagnostics.
4598 * c-typeck.c (push_member_name, start_init): Pass identifiers to
4599 identifier_to_locale. Mark "anonymous" strings for translation.
4600
960c5c79
ME
46012009-05-04 Michael Eager <eager@eagercon.com>
4602
4603 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 4604 address for DImode/DFmode only if double-precision FP regs.
960c5c79 4605
d083fbba
ME
46062009-05-04 Michael Eager <eager@eagercon.com>
4607
4608 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
4609 TARGET_SINGLE_FLOAT check.
4610
c3ba8d32
ME
46112009-05-04 Michael Eager <eager@eagercon.com>
4612
4613 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
4614
edce9f18
ME
46152009-05-04 Michael Eager <eager@eagercon.com>
4616
4617 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
4618 * config/rs6000/t-xilinx: New
4619
506d7b68
PB
46202009-05-04 Paolo Bonzini <bonzini@gnu.org>
4621
e913423f 4622 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
4623 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
4624 * gcc/explow.c (memory_address): Use target hook.
4625 * gcc/targhooks.c (default_legitimize_address): New.
4626 * gcc/targhooks.h (default_legitimize_address): New.
4627 * gcc/target.h (legitimize_address): New.
4628 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
4629 (TARGET_INITIALIZER): Include it.
4630 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
4631
4632 * config/bfin/bfin-protos.h (legitimize_address): Remove.
4633 * config/bfin/bfin.c (legitimize_address): Remove.
4634 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
4635 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
4636 Remove.
506d7b68
PB
4637 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
4638 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
4639
4640 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
4641 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
4642 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
4643 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
4644 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
4645 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
4646 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
4647 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
4648 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
4649 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
4650 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
4651 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
4652 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
4653 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
4654 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
4655 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
4656 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
4657 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
4658 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
4659 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
4660 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
4661 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
4662 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
4663
4664 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
4665 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
4666 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
4667 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
4668 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
4669 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
4670 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
4671 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
4672 (thumb_legitimize_address): Delete.
4673 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
4674 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
4675 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
4676 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
4677 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
4678 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
4679 Delete.
4680 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
4681 Delete.
506d7b68
PB
4682
4683 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
4684 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
4685 * config/m32r/m32r.c (m32r_legitimize_address): New.
4686 * config/m68k/m68k.c (m68k_legitimize_address): New.
4687 * config/score/score.c (score_legitimize_address): Standardize.
4688 * config/score/score3.c (score3_legitimize_address): Standardize.
4689 * config/score/score3.h (score3_legitimize_address): Adjust.
4690 * config/score/score7.c (score7_legitimize_address): Standardize.
4691 * config/score/score7.h (score7_legitimize_address): Adjust.
4692 * config/sh/sh.c (sh_legitimize_address): New.
4693 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
4694
4695 * gcc/config/s390/s390.c (legitimize_address): Rename to...
4696 (s390_legitimize_address): ... this.
4697 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
4698 (sparc_legitimize_address): ... this.
4699 * gcc/config/i386/i386.c (legitimize_address): Rename to...
4700 (ix86_legitimize_address): ... this.
4701 * gcc/config/avr/avr.c (legitimize_address): Rename to...
4702 (avr_legitimize_address): ... this.
4703 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
4704 (mn10300_legitimize_address): ... this.
4705 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
4706 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
4707 (alpha_expand_mov): Adjust call.
4708
4709 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
4710 * config/spu/spu.c (spu_legitimize_address): Likewise.
4711 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
4712 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
4713
a3af5087
JM
47142009-05-04 Joseph Myers <joseph@codesourcery.com>
4715
4716 * intl.c (locale_encoding, locale_utf8): New.
4717 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
4718 * intl.h (locale_encoding, locale_utf8): Declare.
4719 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
4720 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
4721 New.
4722 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
4723 argument.
4724 (pp_tree_identifier): Define to call pp_base_tree_identifier.
4725 (pp_base_tree_identifier): Declare as function.
4726 (identifier_to_locale): Declare.
4727 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 4728 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 4729
ea5cd5f1
RG
47302009-05-04 Richard Guenther <rguenther@suse.de>
4731
4732 PR middle-end/40015
4733 * builtins.c (fold_builtin_memory_op): Do not decay to element
4734 type if the size matches the whole array.
4735
ddc2690a
KH
47362009-05-04 Kazu Hirata <kazu@codesourcery.com>
4737
4738 * expmed.c (synth_mult): When trying out a shift, pass the result
4739 of a signed shift.
4740
ef268d34
KH
47412009-05-04 Kazu Hirata <kazu@codesourcery.com>
4742
4743 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
4744 (shiftsub1_cost): New.
4745 (init_expmed): Compute shiftsub1_cost.
4746 (synth_mult): Optimize multiplications by constants of the form
4747 -(2^^m-1) for some constant positive integer m.
4748
255d3827
RG
47492009-05-03 Richard Guenther <rguenther@suse.de>
4750
4751 PR c/39983
4752 * c-typeck.c (array_to_pointer_conversion): Do not built
4753 ADDR_EXPRs of arrays of pointer-to-element type.
4754 * c-gimplify.c (c_gimplify_expr): Revert change fixing
4755 up wrong ADDR_EXPRs after-the-fact.
4756 * c-common.c (strict_aliasing_warning): Strip pointer
4757 conversions for obtaining the original type.
4758 * builtins.c (fold_builtin_memset): Handle array types.
4759 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
4760 and array types
4761
16c33770
RG
47622009-05-03 Richard Guenther <rguenther@suse.de>
4763
4764 PR middle-end/23329
4765 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
4766 Do not lose casts from array types with unknown extent to array
4767 types with known extent.
4768 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
4769 alias set compatibility.
4770
62a67c94
MLI
47712009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
4772
4773 * flags.h (extra_warnings): Delete.
4774 * toplev.c (process_options): Handle Wuninitialized here.
4775 * opts.c (extra_warnings): Delete.
4776 (set_Wextra): Delete.
4777 (common_handle_option): -Wextra can be handled automatically.
4778 * c-opts.c (c_common_handle_option): Delete obsolete code.
4779 (c_common_post_options): Simplify comment.
4780 * common.opt (W): Add Var.
4781 (Wextra): Add Var.
4782 (Wuninitialized): Initialize to -1.
4783
8c7926c4
AN
47842009-05-03 Adam Nemet <anemet@caviumnetworks.com>
4785 Richard Guenther <rguenther@suse.de>
4786
4787 * expr.c (get_def_for_expr): New function.
4788 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4789 SSA rather than trees.
4790 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
4791 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4792
fa5da7de
JM
47932009-05-03 Joseph Myers <joseph@codesourcery.com>
4794
4795 * c-common.c (reswords): Add _Imaginary.
4796 * c-common.c (enum rid): Add RID_IMAGINARY.
4797
2ddd5020
PB
47982009-05-03 Paolo Bonzini <bonzini@gnu.org>
4799
4800 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4801 Patch by Richard Guenther.
4802
aea88c05
AS
48032009-05-03 Anatoly Sokolov <aesok@post.ru>
4804
4805 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4806 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4807 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4808 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4809 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4810 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4811 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4812 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4813 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4814 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4815 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4816 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4817 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4818 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4819 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4820 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4821 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4822 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4823
85e59f3a
RG
48242009-05-02 Richard Guenther <rguenther@suse.de>
4825
4826 PR tree-optimization/39940
4827 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4828 doing so.
4829
4636b850
RG
48302009-05-02 Richard Guenther <rguenther@suse.de>
4831
4832 PR middle-end/40001
4833 * tree-ssa.c (execute_update_addresses_taken): Properly check
4834 if we can mark a variable DECL_GIMPLE_REG_P.
4835 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4836 back to the end of the function.
4837 (is_gimple_reg_type): Remove complex type special casing.
4838 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4839 if not optimizing.
4840
5e10cb5a
BE
48412009-05-02 Ben Elliston <bje@au.ibm.com>
4842
4843 * doc/collect2.texi (Collect2): Document search path behaviour
4844 when configured with --with-ld.
4845
048bf48b
JH
48462009-05-02 Jan Hubicka <jh@suse.cz>
4847
4848 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4849 parameter; update callers.
aa016ff7
UB
4850 (coalesce_cost_edge): EH edges are costier because they needs
4851 splitting even if not critical and even more costier when there are
4852 multiple EH predecestors.
048bf48b 4853
d5c5f9ab
JH
48542009-05-02 Jan Hubicka <jh@suse.cz>
4855
4856 * except.c (remove_eh_handler_and_replace): Handle updating after
4857 removing TRY blocks.
4858
2ed1959a
EB
48592009-05-02 Eric Botcazou <ebotcazou@adacore.com>
4860
4861 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4862
d363a7e7
SB
48632009-05-02 Steven Bosscher <steven@gcc.gnu.org>
4864
4865 * varasm.c: Do not include c-pragma.h.
4866 * attribs.c: Do not incude c-common.h.
4867
9c3d55b4
MM
48682009-05-01 Michael Matz <matz@suse.de>
4869
4870 * calls.c (initialize_argument_information): Handle SSA names like
4871 decls with a non MEM_P DECL_RTL.
4872
ea264ca5
SB
48732009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4874
4875 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4876 * ipa-utils.c: Likewise.
4877 * ipa-type-escape.c: Likewise.
4878 * cgraphunit.c Do not include c-common.h.
4879 * ipa-pure-const.c: Likewise.
4880 * tree-if-conv.c: Likewise.
4881 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4882 * ipa-struct-reorg.c: Likewise.
4883 * tree-nomudflap.c: Likewise.
4884 * tree-ssa-structalias.c: Likewise.
4885
6c5d4d1a
SB
48862009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4887
4888 * store-motion.c: Many cleanups to make this pass a first-class
4889 citizen instead of an appendix to gcse load motion. Add TODO list
4890 to make this pass faster/cleaner/better.
4891
4892 (struct ls_expr): Post gcse.c-split cleanups.
4893 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
4894 "stores" field to "avail_stores".
4895 (pre_ldst_mems): Rename to store_motion_mems.
4896 (pre_ldst_table): Rename to store_motion_mems_table.
4897 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4898 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4899 (ldst_entry): Rename to st_expr_entry, update users.
4900 (free_ldst_entry): Rename to free_st_expr_entry, update users.
4901 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
4902 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4903 update caller.
6c5d4d1a
SB
4904 (first_ls_expr): Rename to first_st_expr, update users.
4905 (next_ls_expr): Rename to next_st_expr, update users.
4906 (print_ldst_list): Rename to print_store_motion_mems. Print names of
4907 fields properly for store motion instead of names inherited from load
4908 motion in gcse.c.
4909 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4910 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
4911 are done with it.
4912
4913 (ae_kill): Rename to st_kill, update users.
4914 (ae_gen): Rename to st_avloc, update users.
4915 (transp): Rename to st_transp, update users.
4916 (pre_insert_map): Rename to st_insert_map, update users.
4917 (pre_delete_map): Rename to st_delete_map, update users.
4918 (insert_store, build_store_vectors, free_store_memory,
4919 one_store_motion_pass): Update for abovementioned changes.
4920
4921 (gcse_subst_count, gcse_create_count): Remove.
4922 (one_store_motion_pass): New statistics counters "n_stores_deleted"
4923 and "n_stores_created", local variables.
4924
4925 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4926 use for_each_rtx.
4927
4928 (regvec, compute_store_table_current_insn): Remove.
4929 (reg_set_info, reg_clear_last_set): Remove.
4930 (compute_store_table): Use DF caches instead of local dataflow
4931 solvers.
4932
b02cec6e
JM
49332009-05-01 Joseph Myers <joseph@codesourcery.com>
4934
4935 * c-objc-common.c (c_tree_printer): Print identifiers with
4936 pp_identifier, not pp_string. Mark "({anonymous})" for
4937 translation.
4938 * c-pretty-print.c (pp_c_ws_string): New.
4939 (pp_c_cv_qualifier, pp_c_type_specifier,
4940 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4941 pp_c_storage_class_specifier, pp_c_function_specifier,
4942 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4943 pp_c_primary_expression, pp_c_postfix_expression,
4944 pp_c_unary_expression, pp_c_shift_expression,
4945 pp_c_relational_expression, pp_c_equality_expression,
4946 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4947 use pp_string and pp_c_ws_string in place of pp_identifier and
4948 pp_c_identifier for non-identifiers. Mark English strings for
4949 translation.
4950 * c-pretty-print.h (pp_c_ws_string): Declare.
4951
cd533689
PP
49522009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
4953 Roland McGrath <roland@redhat.com>
4954
aa016ff7 4955 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
4956 (ENABLE_LD_BUILDID): New configuration option.
4957 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4958 (LINK_BUILDID_SPEC): New macro.
4959 (init_spec): If defined, prepend it between LINK_EH_SPEC and
4960 link_spec.
4961 * doc/install.texi: Document --enable-linker-build-id option.
4962 * configure: Rebuild.
4963 * config.in: Rebuild.
4964
ba6adec4
AN
49652009-04-30 Adam Nemet <anemet@caviumnetworks.com>
4966
4967 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
4968 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
4969 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
4970 MIPS_GP_SAVE_AREA_SIZE.
4971 * config/mips/mips.c (struct mips_frame_info): Update comment
4972 before arg_pointer_offset and hard_frame_pointer_offset.
4973 (mips_compute_frame_info): Update diagram before function: to
4974 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
4975 indicate the position of frame_pointer_rtx with -fstack-protector and
4976 to show args_size. Don't allocate cprestore area for leaf functions
4977 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
4978 cprestore_size.
4979 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
4980
48f5b722
MM
49812009-04-30 Michael Matz <matz@suse.de>
4982
ba6adec4
AN
4983 PR tree-optimization/39955
4984 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 4985
b65d6744
DK
49862009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
4987
4988 * ira.c (setup_cover_and_important_classes): Use safe macro
4989 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
4990 directly.
4991 * genpreds.c (write_tm_preds_h): Output suitable definition of
4992 REG_CLASS_FOR_CONSTRAINT.
4993
f136c8ae
RAE
49942009-04-30 Rafael Avila de Espindola <espindola@google.com>
4995
4996 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4997 instead of an int.
4998 * bitmap.c (bitmap_descriptor): Likewise.
4999 * ggc-common.c (loc_descriptor): Likewise.
5000 * varray.c (varray_descriptor): Likewise.
5001 * vec.c (vec_descriptor): Likewise.
5002
43fcece8 50032009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
5004
5005 * Makefile.in (dce.o): Add $(EXCEPT_H).
5006 * dce.c: Include except.h and delete redundant vector definitions.
5007 (deletable_insn_p): Return false for non-call insns that can throw
5008 if DF is running.
5009
df35c271
SB
50102009-04-30 Steven Bosscher <steven@gcc.gnu.org>
5011
5012 * gcse.c (ae_gen): Remove.
5013 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
5014 and make non-static function to make it available in store-motion.c.
5015 Update call sites with search-and-replace.
5016 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
5017 extract_mentioned_regs, extract_mentioned_regs_helper,
5018 find_moveable_store, compute_store_table, load_kills_store, find_loads,
5019 store_killed_in_insn, store_killed_after, store_killed_before,
5020 build_store_vectors, insert_insn_start_basic_block, insert-store,
5021 remove_reachable_equiv_notes, replace_store_insn, delete_store,
5022 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
5023 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
5024 * store-motion.c: ...new file. Also copy data structures from gcse.c
5025 and clean up to remove parts not used by store motion.
5026 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
5027 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
5028
f711a87a
RR
50292009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5030
5031 PR target/38571
5032 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
5033 when optimizing for size.
5034
fa5ed76e
HPN
50352009-04-30 Hans-Peter Nilsson <hp@axis.com>
5036
5037 * gcse.c (gcse_constant_p): Fix typo in last change.
5038
0acbbdb0
RAE
50392009-04-30 Rafael Avila de Espindola <espindola@google.com>
5040
5041 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
5042
82f5c05d
AK
50432009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
5044
5045 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
5046
6d8f135b
JW
50472009-04-29 James E. Wilson <wilson@codesourcery.com>
5048
5049 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
5050 CONST_HIGH_PART result.
5051
c21ca196
AS
50522009-04-29 Anatoly Sokolov <aesok@post.ru>
5053
5054 * config/avr/avr.c (initial_elimination_offset): Rename to
5055 avr_initial_elimination_offset.
5056 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
5057 change return type to bool.
5058 (avr_can_eliminate): New function.
5059 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
5060 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
5061 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 5062 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
5063 avr_initial_elimination_offset.
5064 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
5065 (avr_initial_elimination_offset): Define.
5066
2a34bece 50672009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 5068 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
5069
5070 PR rtl-optimization/39938
5071 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
5072 * cfgrtl.c: Include insn-attr.h.
5073 (rest_of_pass_free_cfg): New function.
5074 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
5075 * resource.c (init_resource_info): Remove call to df_analyze.
5076
5dc7911e
RG
50772009-04-29 Richard Guenther <rguenther@suse.de>
5078
5079 PR target/39943
5080 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
5081 allow conversion to signed integers.
5082
1fe479fd
RG
50832009-04-29 Richard Guenther <rguenther@suse.de>
5084
5085 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
5086 shifts of floating point vectors if the shift amount is
5087 a constant multiple of the element size.
5088
8e001680
AK
50892009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
5090 Michael Matz <matz@suse.de>
5091
5092 PR middle-end/39927
5093 PR bootstrap/39929
5094 * tree-outof-ssa.c (emit_partition_copy): New function.
5095 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5096 insert_part_to_rtx_on_edge): Perform the partition base var
5097 copy using emit_partition_copy.
5098 (insert_value_copy_on_edge): Convert constants to the right mode.
5099 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
5100 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
5101
e50e3081
BS
51022009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5103
5104 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
5105 scan backwards to try to find a constant to initialize it.
5106
4e5d521b
BS
5107 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
5108 insn before the loop_end instruction, don't look past labels.
5109
7c90021d
RG
51102009-04-29 Richard Guenther <rguenther@suse.de>
5111
5112 PR middle-end/39937
5113 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
5114 loose type conversions.
5115 (forward_propagate_addr_expr): Fix tuplification bug. Remove
5116 stmts only if there are no uses of its definition.
5117
97a988bc
BS
51182009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5119
5120 * config/bfin/bfin.h (splitting_loops): Declare.
5121 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
5122 Reorder bit definitions to be ascending.
5123 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
5124 * config/bfin/bfin.c (splitting_loops): New variable.
5125 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
5126 (struct loop_info): Remove members INIT and LOOP_INIT.
5127 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
5128 the LSETUP sequence. Allow LC to be loaded from any register, but
5129 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
5130 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
5131 set to 1.
5132 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
5133 of reload_completed.
aa016ff7 5134
97a988bc
BS
5135 From Jie Zhang:
5136 * config/bfin/bfin.md (movsi_insn): Refine constraints.
5137
0c463e16
RAE
51382009-04-29 Rafael Avila de Espindola <espindola@google.com>
5139
5140 * Makefile.in (PLUGIN_VERSION_H): New.
5141 (OBJS-common): Remove plugin-version.o.
5142 (plugin.o): Depend on (PLUGIN_VERSION_H).
5143 (plugin-version.o): Remove.
5144 * configure: Regenerate
5145 * configure.ac: Create plugin-version.h.
5146 * gcc-plugin.h (plugin_gcc_version): Remove.
5147 (plugin_default_version_check): Change signature.
5148 * plugin-version.c: Remove.
5149 * plugin.c: Include plugin-version.h.
5150 (str_plugin_gcc_version_name): Remove.
5151 (try_init_one_plugin): Pass gcc version to plugin_init.
5152 (plugin_default_version_check): Both gcc and plugin versions are now
5153 arguments.
5154
307e7eab
BS
51552009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5156
5157 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
5158 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
5159 Remove special case testing for last insn of inner loops. Don't fail
5160 if the loop ends with a jump, emit an extra nop instead.
307e7eab 5161
c5d96723
BS
5162 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
5163 DREGS rather than comparing directly. Remove code that tries to
5164 account for latencies.
5165
de0b4ad5
RG
51662009-04-29 Richard Guenther <rguenther@suse.de>
5167
5168 PR tree-optimization/39941
5169 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
5170 eliminating an indirect call.
5171
3a19701a
RG
51722009-04-29 Richard Guenther <rguenther@suse.de>
5173
5174 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
5175 parameter. Allow invariants as base if !require_lvalue.
5176 (verify_gimple_assign_single): Adjust.
5177
a0a31d1e
BS
51782009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5179
5180 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
5181 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
5182 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
5183 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
5184 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
5185 a VEC_SELECT.
aa016ff7
UB
5186 * config/bfin/bfin.c (bfin_expand_builtin,
5187 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 5188
795bd26a
RG
51892009-04-28 Richard Guenther <rguenther@suse.de>
5190
5191 * tree-vect-loop.c (get_initial_def_for_induction): Use
5192 correct types for pointer increment.
5193
04be270f
KG
51942009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5195
5196 * toplev.c (print_version): Update GMP version string calculation.
5197
e1a3b85c
EB
51982009-04-28 Eric Botcazou <ebotcazou@adacore.com>
5199
5200 PR rtl-optimization/39938
5201 * resource.c (init_resource_info): Add call to df_analyze.
5202
8224166e
UB
52032009-04-28 Uros Bizjak <ubizjak@gmail.com>
5204
5205 * config/alpha/alpha.md (usegp): Cast the result of
5206 alpha_find_lo_sum_using_gp to enum attr_usegp.
5207 * config/alpha/alpha.c (override_options): Remove end-of-structure
5208 marker element from cpu_table. Use array size of cpu_table to handle
5209 -mcpu and -mtune options.
5210 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
5211
c5f0fe67
JM
52122009-04-28 Joseph Myers <joseph@codesourcery.com>
5213
5214 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
5215 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
5216 tune_32 and tune_64.
5217 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
5218 support on PowerPC.
5219 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
5220 * config/rs6000/option-defaults.h: ... here. New file.
5221 (OPT_64, OPT_32): Define.
5222 (MASK_64BIT): Define to 0 if not already defined.
5223 (OPT_ARCH64, OPT_ARCH32): Define.
5224 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
5225 and tune_64.
5226
0c48a567
RR
52272009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5228
5229 * config/arm/arm.c (arm_override_options): Emit error on using
5230 fpa with AAPCS.
5231
f1028b9d
UB
52322009-04-28 Uros Bizjak <ubizjak@gmail.com>
5233
5234 PR rtl-optimization/39914
5235 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5236 registers for allocnos created from user-defined variables only
5237 when not optimizing.
5238
e0dd989a
RG
52392009-04-28 Richard Guenther <rguenther@suse.de>
5240
5241 PR middle-end/39937
5242 * fold-const.c (fold_binary): Use distribute_real_division only
5243 on float types.
5244
9a17c91d
SE
52452009-04-28 Steve Ellcey <sje@cup.hp.com>
5246
5247 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
5248 add hpux-stdint.h to tm_file.
5249 (hppa[12]*-*-hpux11*): Ditto.
5250 (ia64*-*-hpux*): Ditto.
5251 * config/hpux-stdint.h: New.
60839f5d 5252 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 5253 __STDC_EXT__ for all compiles.
60839f5d
EB
5254 * config/pa/pa-hpux.h: Ditto.
5255 * config/pa/pa-hpux10.h: Ditto.
5256 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 5257
af04e659
CM
52582009-04-28 Catherine Moore <clm@codesourcery.com>
5259
5260 * debug.h (set_name): Add comment.
5261
04ef80ce
AP
52622009-04-28 Andrew Pinski <pinskia@gmail.com>
5263
5264 PR target/39929
5265 * config/darwin.c (machopic_gen_offset): Check
5266 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
5267 * config/arm/arm.c (require_pic_register): Likewise.
5268
65ad77af
PB
52692009-04-28 Paolo Bonzini <bonzini@gnu.org>
5270
8224166e
UB
5271 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
5272 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
5273 m32c_promote_prototypes): Delete.
65ad77af 5274
1b15a008
MM
52752009-04-28 Michael Matz <matz@suse.de>
5276
5277 PR middle-end/39922
5278 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
5279 constants.
5280
7569a6cc
RG
52812009-04-28 Richard Guenther <rguenther@suse.de>
5282
f1028b9d 5283 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 5284
ead204d9
RR
52852009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5286
5287 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
5288 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
5289 * config/arm/arm-tune.md: Regenerate.
5290
f2c45f08 52912009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 5292
f2c45f08
AM
5293 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
5294 block if there are complex incoming edges.
5295 (sel_merge_blocks): Remove useless assert.
5296 (sel_redirect_edge_and_branch): Check that edge was redirected.
5297 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
5298 (sel_find_rgns): Delete declaration.
5299 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
5300 the region when it is not a preheader.
5301
7a00d767
UB
53022009-04-28 Uros Bizjak <ubizjak@gmail.com>
5303
5304 PR c/39323
5305 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
5306
448ee662
RG
53072009-04-28 Richard Guenther <rguenther@suse.de>
5308
5309 * tree.h (SSA_NAME_VALUE): Remove.
5310 (struct tree_ssa_name): Remove value_handle member.
5311 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
5312 array for jump threading.
5313 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
5314 SSA_NAME_VALUEs.
5315 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
5316 * tree-flow.h (threadedge_initialize_values): Declare.
5317 (threadedge_finalize_values): Likewise.
5318 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
5319 (SSA_NAME_VALUE): Define.
5320 (threadedge_initialize_values): New function.
5321 (threadedge_finalize_values): Likewise.
5322 * tree-ssa-dom.c (ssa_name_values): New global variable.
5323 (SSA_NAME_VALUE): Define.
f1028b9d 5324 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 5325
8644a673
IR
53262009-04-28 Ira Rosen <irar@il.ibm.com>
5327
5328 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
5329 Use REPORT_VECTORIZED_LOCATIONS instead
5330 REPORT_VECTORIZED_LOOPS.
5331 * tree-vectorizer.c (vect_verbosity_level): Make static.
5332 (vect_loop_location): Rename to vect_location.
5333 (vect_set_verbosity_level): Update comment.
5334 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
5335 and vect_location.
5336 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
5337 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
5338 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
5339 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
5340 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 5341 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 5342 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
5343 REPORT_UNVECTORIZED_LOCATIONS.
5344 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
5345 and vect_used_in_loop and to vect_unused_in_scope and
5346 vect_used_in_scope.
5347 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
5348 (vect_verbosity_level): Remove declaration.
5349 (vect_analyze_operations): Likewise.
5350 (vect_analyze_stmt): Declare.
5351 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
5352 REPORT_UNVECTORIZED_LOCATIONS.
5353 (vect_get_loop_niters): Fix indentation.
5354 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
5355 (vect_analyze_loop_operations): New function.
5356 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
5357 vect_analyze_operations.
5358 (vect_is_simple_reduction): Use new names.
5359 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
5360 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
5361 to specify whether the data references can be a part of interleaving
5362 chain.
8644a673
IR
5363 (vect_analyze_data_ref_dependence): Use new names.
5364 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
5365 (vect_create_addr_base_for_vector_ref): Remove redundant code.
5366 * tree-vect-patterns.c (widened_name_p): Use new names.
5367 (vect_recog_dot_prod_pattern): Likewise.
5368 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
5369 (process_use, vect_mark_stmts_to_be_vectorized,
5370 vect_model_simple_cost, vect_model_store_cost,
5371 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
5372 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
5373 vectorizable_operation, vectorizable_type_demotion,
5374 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
5375 vectorizable_condition): Likewise.
5376 (vect_analyze_operations): Split into vect_analyze_loop_operations
5377 and ...
5378 (vect_analyze_stmt): ... new function.
5379 (new_stmt_vec_info): Use new names.
5380 (vect_is_simple_use): Use new names and fix comment.
5381 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
5382 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
5383
b91322f2
UB
53842009-04-28 Uros Bizjak <ubizjak@gmail.com>
5385
5386 PR target/39911
5387 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
5388 and integer modes for x87 operands. Do not ICE for unsupported size,
5389 generate error instead. Generate error for unsupported operand types.
5390 ['z']: Do not handle HImode memory operands specially. Warning
5391 for floating-point operands. Fallthru to 'Z' for unsupported operand
5392 types. Do not ICE for unsupported size, generate error instead.
5393 (output_387_binary_op): Use %Z to output operands.
5394 (output_fp_compare): Ditto.
5395 (output_387_reg_move): Ditto.
5396
b2ed71b6
BE
53972009-04-28 Ben Elliston <bje@au.ibm.com>
5398
5399 PR c++/35652
5400 Revert:
5401
5402 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5403
5404 * builtins.c (c_strlen): Do not warn here.
5405 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
5406 * c-common.c (pointer_int_sum): Take an explicit location.
5407 Warn about offsets out of bounds.
5408 * c-common.h (pointer_int_sum): Adjust declaration.
5409
81f40b79
ILT
54102009-04-27 Ian Lance Taylor <iant@google.com>
5411
5412 * collect2.c (is_ctor_dtor): Change type of ret field in struct
5413 names to symkind.
5414 * dce.c (run_fast_df_dce): Change type of old_flags to int.
5415 * df-core.c (df_set_flags): Change return type to int. Change
5416 type of old_flags to int.
5417 (df_clear_flags): Likewise.
5418 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
5419 (df_get_conditional_uses): Likewise.
5420 * df.h (df_set_flags, df_clear_flags): Update declarations.
5421 * dwarf2out.c (struct indirect_string_node): Change type of form
5422 field to enum dwarf_form.
5423 (AT_string_form): Change return type to enum dwarf_form.
5424 * fixed-value.c (fixed_compare): Add cast to enum type.
5425 * fwprop.c (update_df): Change 0 to VOIDmode.
5426 * gensupport.c: Change 0 to UNKNOWN.
5427 * gimple.h (gimple_cond_code): Add cast to enum type.
5428 * haifa-sched.c (reemit_notes): Add cast to enum type.
5429 * hooks.c (hook_int_void_no_regs): Remove function.
5430 * hooks.h (hook_int_void_no_regs): Remove declaration.
5431 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 5432 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
5433 * real.c (real_arithmetic): Add cast to enum type.
5434 (real_compare): Likewise.
5435 * target.h (struct gcc_target): Change return type of
5436 branch_target_register_class to enum reg_class.
5437 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
5438 default_branch_target_register_class.
7a00d767 5439 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 5440 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 5441 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
5442 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
5443 cast to int.
5444 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
5445 ERROR_MARK.
5446 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
5447 vect_uninitialized_def. Change 0 to ERROR_MARK.
5448 * tree-vect-stmts.c (supportable_widening_operation): Don't
5449 initialize icode1 and icode2.
7a00d767 5450 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
5451 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
5452 and to STD_C89.
5453 (cmn_err_flag_specs): Change 0 to STD_C89.
5454 (cmn_err_char_table): Likewise.
5455 * config/arm/arm.c (get_arm_condition_code): Change type of code
5456 to enum arm_cond_code.
5457 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
5458 (IWMMXT_BUILTIN2): Likewise.
5459 (neon_builtin_type_bits): Don't define typedef.
5460 (neon_builtin_datum): Change type of bits field to int.
5461 (arm_expand_neon_args): Add cast to enum type.
5462 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
5463 TLS_MODEL_NONE.
5464 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
5465 casts to enum type.
5466 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
5467 MIPS_FP_COND_f.
5468 * config/mips/mips.md (jal_macro): Return enum constant.
5469 (single_insn): Likewise.
5470 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
5471 CODE_FOR_nothing.
5472 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5473 casts to enum type.
5474 * config/s390/s390.c (s390_tune_flags): Change type to int.
5475 (s390_arch_flags): Likewise.
7a00d767 5476 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
5477 * config/s390/s390.h (s390_tune_flags): Update declaration.
5478 (s390_arch_flags): Likewise.
5479 * config/sh/sh.c (prepare_move_operands): Compare
5480 tls_symbolic_operand result with enum constant.
5481 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
5482 (sh_expand_prologue): Add cast to enum type.
5483 (sh_expand_epilogue): Likewise.
5484 (tls_symbolic_operand): Change return type to enum tls_model.
5485 (fpscr_set_from_mem): Add cast to enum type.
5486 (legitimize_pic_address): Compare tls_symbolic_operand result with
5487 enum constant.
5488 (sh_target_reg_class): Change return type to enum reg_class.
5489 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
5490 PROCESSOR_xxx.
7a00d767
UB
5491 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
5492 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
5493 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
5494 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
5495 (delayed_branch, tls_call_delay): Likewise.
5496 (eligible_for_sibcall_delay): Likewise.
5497 (eligible_for_return_delay): Likewise.
5498 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
5499 (spu_expand_builtin_1): Likewise.
5500
5501 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
5502 for all types of conversions.
5503 (output_init_element): Issue -Wc++-compat warning if needed when
5504 initializing a bitfield with enum type.
5505 * c-parser.c (c_parser_expression): Set original_type to
5506 original_type of right hand operand of comman operator.
5507
e4ae5e77
RW
55082009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5509
5510 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
5511 grammar nits.
7a00d767 5512 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
5513 * doc/cpp.texi (Standard Predefined Macros)
5514 (Implementation-defined behavior): Likewise.
7a00d767 5515 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
5516 * doc/gimple.texi (GIMPLE Exception Handling)
5517 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 5518 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
5519 * doc/invoke.texi (Warning Options, Optimize Options)
5520 (AVR Options, Darwin Options): Likewise.
5521 (Optimize Options): Reformulate -fwhole-program description.
5522 * doc/loop.texi (Lambda): Likewise.
5523 * doc/md.texi (Output Template, Define Constraints)
5524 (Standard Names, Insn Splitting): Likewise.
5525 * doc/options.texi (Option properties): Likewise.
5526 * doc/passes.texi (Tree-SSA passes): Likewise.
5527 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
5528 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
5529 (File Names and DBX): Likewise.
5530 * doc/trouble.texi (Incompatibilities): Likewise.
5531
1883802f 55322009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
5533
5534 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
5535 instruction is correct.
5536
1883802f 55372009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
5538
5539 Allow non-constant arguments to conversion intrinsics.
5540 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
5541 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
5542 * spu.c (print_operand): Handle 'v' and 'w'.
5543 (exp2_immediate_p, spu_gen_exp2): Define.
5544 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
5545 spu_convtf_1): Update parameter descriptions.
7a00d767 5546 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
5547 * constraints.md ('v', 'w'): New.
5548 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
5549 Remove.
5550 (i2f, I2F): New define_mode_attr.
5551 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
5552 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
5553 fixuns_truncv4sfv4si2): Update to use mode attribute.
5554 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
5555 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
5556 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
5557 patterns for combine.
5558
5f39ad47
SB
55592009-04-27 Steven Bosscher <steven@gcc.gnu.org>
5560
5561 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
5562 (cprop, hoist, pre, store_motion): New debug counters.
5563 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
5564 is not an RTL pass anymore.
5565 (pass_profiling): Remove extern decl for pass removed in 2005.
5566 (pass_gcse, pass_jump_bypass): Remove.
5567 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
5568 to 0 for clean state.
5569 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
5570 * cse.c (gate_handle_cse_after_global_opts,
5571 rest_of_handle_cse_after_global_opts): New functions.
5572 (pass_cse_after_global_opts): New pass, does local CSE.
5573 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
5574 (TV_CPROP): New timevar.
5575 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
5576 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
5577 (gcse_main, recompute_all_luids): Remove.
5578 (compute_hash_table_work): Call max_reg_num instead of reading
5579 max_gcse_regno.
5580 (cprop_jump): Don't set run_jump_opt_after_gcse.
5581 (constprop_register): Always allow to alter jumps.
5582 (cprop_insn): Likewise.
5583 (do_local_cprop): Likewise.
5584 (local_cprop_pass): Likewise. Return non-zero if something changed.
5585 (cprop): Remove function, fold interesting bits into one_cprop_pass.
5586 (find_implicit_sets): Add note about missed optimization opportunity.
5587 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
5588 pass_rtl_cprop execute function.
5589 Don't bother tracking the pass number, each pass gets its own dumpfile
5590 now anyway.
5591 Always allow to alter jumpsand bypass jumps.
5592 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
5593 will just find no suitable set.
5594 (pre_edge_insert): Fix dumping, this function is for PRE only.
5595 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
5596 pass_rtl_pre execute function.
5597 (hoist_code): Return non-zero if something changed. Keep track of
5598 substitutions and insertions for statistics gathering similar to PRE.
5599 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
5600 called from the pass_rtl_hoist execute function. Show pass statistics.
5601 (compute_store_table): Use max_reg_num directly instead of using the
5602 formerly global max_gcse_regno.
5603 (build_store_vectors): Likewise.
5604 (replace_store_insn): Fix dumping.
5605 (store_motion): Rename to ...
5606 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
5607 pass, called from the pass_rtl_store_motion execute function. Keep
5608 track of substitutions and insertions for statistics gathering similar
5609 to PRE.
5610 (bypass_jumps): Remove, fold interesting bits into ...
5611 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
5612 from the pass_rtl_cprop execute function.
5613 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
5614 pass_jump_bypass): Remove.
5615 (gate_handle_gcse, rest_of_handle_gcse): Remove.
5616 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
5617 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
5618 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
5619 (gate_rtl_store_motion, execute_rtl_store_motion,
5620 pass_rtl_store_motion): New.
5621 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
5622 make it clear that -fcse-skip-blocks is a no-op for backward compat.
5623 * passes.c (init_optimization_passes): Remove pass_gcse and
5624 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
5625 and cse_after_global_opts in place of pass_gcse. Schedule cprop
5626 instead of pass_jump_bypass.
5627
c685de4a
RG
56282009-04-27 Richard Guenther <rguenther@suse.de>
5629
5630 PR middle-end/39928
5631 * gimplify.c (gimplify_expr): If we are required to create
5632 a temporary make sure it ends up as register.
5633
72d41f29
L
56342009-04-27 H.J. Lu <hongjiu.lu@intel.com>
5635
5636 PR target/39903
5637 * config/i386/i386.c (construct_container): Don't call
5638 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
5639 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
5640
e97809c6
MM
56412009-04-27 Michael Matz <matz@suse.de>
5642
5643 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
5644 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
5645 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
5646 (dump_replaceable_exprs): Take a bitmap.
5647 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
5648 array.
5649 (expand_gimple_basic_block): Likewise.
5650 * tree-ssa-ter.c (struct temp_expr_table_d): Make
5651 replaceable_expressions member a bitmap.
5652 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
5653 (mark_replaceable): Likewise.
5654 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
5655 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
5656
211ca15c
RG
56572009-04-27 Richard Guenther <rguenther@suse.de>
5658
5659 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
5660 (verify_stmts): Dispatch to gimple/type verification code.
5661 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
5662 issue with call argument types.
5663
fca5f3d1
MM
56642009-04-27 Michael Matz <matz@suse.de>
5665
5666 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
5667 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
5668 to above.
5669
a1fa3e79 56702009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 5671 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
5672
5673 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
5674 a label's basic block.
5675 (mark_target_live_regs): Tidy and rework obsolete comments.
5676 Change back DF problem to LIVE. If a label starts a basic block,
5677 assume that all registers that used to be live then still are.
5678 (init_resource_info): If a label starts a basic block, set its
5679 BLOCK_FOR_INSN accordingly.
5680 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
5681
33b223c0
RG
56822009-04-27 Richard Guenther <rguenther@suse.de>
5683
5684 * tree-flow-inline.h (function_ann): Remove.
5685 (get_function_ann): Likewise.
5686 * tree-dfa.c (create_function_ann): Remove.
5687 * tree-flow.h (struct static_var_ann_d): Remove.
5688 (struct function_ann_d): Likewise.
5689 (union tree_ann_d): Remove fdecl member.
5690 (function_ann_t): Remove.
5691 (function_ann, get_function_ann, create_function_ann): Remove
5692 declarations.
5693
e3136fa2
UB
56942009-04-27 Uros Bizjak <ubizjak@gmail.com>
5695
5696 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
5697
f87c9042
JH
56982009-04-27 Jan Hubicka <jh@suse.cz>
5699
5700 * ipa-pure-const.c (struct funct_state_d): New fields
5701 state_previously_known, looping_previously_known; remove
5702 state_set_in_source.
5703 (analyze_function): Use new fields.
5704 (propagate): Avoid assumption that state_set_in_source imply
5705 nonlooping.
5706
5707 * tree-ssa-loop-niter.c (finite_loop_p): New function.
5708 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
5709 * cfgloop.h (finite_loop_p): Declare.
5710
33abd718
MM
57112009-04-26 Michael Matz <matz@suse.de>
5712
e3136fa2 5713 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 5714
ddc34084
MM
57152009-04-26 Michael Matz <matz@suse.de>
5716
5717 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
5718 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
5719 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
5720 pass_mark_used_blocks): Remove.
5721 * tree-optimize.c (pass_free_datastructures,
5722 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
5723 * passes.c (init_optimization_passes): Don't call
5724 pass_mark_used_blocks, remove dead code.
5725
1fec7ed4
L
57262009-04-26 H.J. Lu <hongjiu.lu@intel.com>
5727
5728 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
5729 * tree-ssa-live.h (register_ssa_partition): Likewise.
5730
4e3825db
MM
57312009-04-26 Michael Matz <matz@suse.de>
5732
5733 Expand from SSA.
5734 * builtins.c (fold_builtin_next_arg): Handle SSA names.
5735 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
5736 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
5737 SSA names.
5738 (compare_pairs): Swap cost comparison.
5739 (coalesce_ssa_name): Don't use change_partition_var.
5740 * tree-nrv.c (struct nrv_data): Add modified member.
5741 (finalize_nrv_r): Set it.
5742 (tree_nrv): Use it to update statements.
5743 (pass_nrv): Require PROP_ssa.
5744 * tree-mudflap.c (mf_decl_cache_locals,
5745 mf_build_check_statement_for): Use make_rename_temp.
5746 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
5747 * alias.c (find_base_decl): Handle SSA names.
5748 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
5749 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
5750 * rtl.h (set_reg_attrs_for_parm): Declare.
5751 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
5752 to "optimized", remove unused locals at finish.
5753 (execute_free_datastructures): Make global, call
5754 delete_tree_cfg_annotations.
5755 (execute_free_cfg_annotations): Don't call
5756 delete_tree_cfg_annotations.
5757
5758 * ssaexpand.h: New file.
5759 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 5760 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
5761 (expand_expr_real_1): Expand SSA names.
5762 * cfgexpand.c (toplevel): Include ssaexpand.h.
5763 (SA): New global variable.
5764 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
5765 (SSAVAR): New macro.
5766 (set_rtl): New helper function.
5767 (add_stack_var): Deal with SSA names, use set_rtl.
5768 (expand_one_stack_var_at): Likewise.
5769 (expand_one_stack_var): Deal with SSA names.
5770 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
5771 before unique numbers.
5772 (expand_stack_vars): Use set_rtl.
5773 (expand_one_var): Accept SSA names, add asserts for them, feed them
5774 to above subroutines.
5775 (expand_used_vars): Expand all partitions (without default defs),
5776 then only the local decls (ignoring those expanded already).
5777 (expand_gimple_cond): Remove edges when jumpif() expands an
5778 unconditional jump.
5779 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5780 or remove abnormal edges. Ignore insns setting the LHS of a TERed
5781 SSA name.
5782 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5783 members of SA; deal with PARM_DECL partitions here; expand
5784 all PHI nodes, free tree datastructures and SA. Commit instructions
5785 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5786 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5787 info and statements at start, collect garbage at finish.
5788 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5789 (VAR_ANN_PARTITION) Remove.
5790 (change_partition_var): Don't declare.
5791 (partition_to_var): Always return SSA names.
5792 (var_to_partition): Only accept SSA names.
5793 (register_ssa_partition): Only check argument.
5794 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5795 member.
5796 (delete_var_map): Don't free it.
5797 (var_union): Only accept SSA names, simplify.
5798 (partition_view_init): Mark only useful SSA names as used.
5799 (partition_view_fini): Only deal with SSA names.
5800 (change_partition_var): Remove.
5801 (dump_var_map): Use ssa_name instead of partition_to_var member.
5802 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5803 basic blocks.
5804 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5805 (struct _elim_graph): New member const_dests; nodes member vector of
5806 ints.
5807 (set_location_for_edge): New static helper.
5808 (create_temp): Remove.
5809 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 5810 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
5811 (new_elim_graph): Allocate const_dests member.
5812 (clean_elim_graph): Truncate const_dests member.
5813 (delete_elim_graph): Free const_dests member.
5814 (elim_graph_size): Adapt to new type of nodes member.
5815 (elim_graph_add_node): Likewise.
5816 (eliminate_name): Likewise.
5817 (eliminate_build): Don't take basic block argument, deal only with
5818 partition numbers, not variables.
5819 (get_temp_reg): New static helper.
5820 (elim_create): Use it, deal with RTL temporaries instead of trees.
5821 (eliminate_phi): Adjust all calls to new signature.
5822 (assign_vars, replace_use_variable, replace_def_variable): Remove.
5823 (rewrite_trees): Only do checking.
5824 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5825 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5826 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5827 contains_tree_r, MAX_STMTS_IN_LATCH,
5828 process_single_block_loop_latch, analyze_edges_for_bb,
5829 perform_edge_inserts): Remove.
5830 (expand_phi_nodes): New global function.
5831 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
5832 functions, initialize new parameter, remember partitions having a
5833 default def.
5834 (finish_out_of_ssa): New global function.
5835 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
5836 don't reset in_ssa_p here, don't disable TER when mudflap.
5837 (pass_del_ssa): Remove.
5838 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5839 partition members.
5840 (execute_free_datastructures): Declare.
5841 * Makefile.in (SSAEXPAND_H): New variable.
5842 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5843 * basic-block.h (commit_one_edge_insertion): Declare.
5844 * passes.c (init_optimization_passes): Move pass_nrv and
5845 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5846 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5847 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5848 (redirect_branch_edge): Deal with super block when expanding, split
5849 out jump patching itself into ...
5850 (patch_jump_insn): ... here, new static helper.
5851
17c665a9
MM
58522009-04-26 Michael Matz <matz@suse.de>
5853
5854 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5855 beyond num_ssa_names.
5856 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5857 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5858
92061771
JJ
58592009-04-26 Jakub Jelinek <jakub@redhat.com>
5860
ce372372
JJ
5861 PR inline-asm/39543
5862 * fwprop.c (forward_propagate_asm): New function.
5863 (forward_propagate_and_simplify): Propagate also into __asm, if it
5864 doesn't increase the number of referenced registers.
5865
92061771
JJ
5866 PR c/39889
5867 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5868
58692009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
5870
5871 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5872 note_nonlocal_vla_type for nonlocal VLAs.
5873 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5874 contains_remapped_vars, remap_vla_decls): New functions.
5875 (convert_nonlocal_reference_stmt): If not optimizing, call
5876 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5877 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5878 if it wasn't found in var_map.
5879 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
5880 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5881 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5882 declare_vars.
5883 * gimplify.c (nonlocal_vlas): New variable.
5884 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5885 referenced VLAs.
5886 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 5887
4561e242
JJ
5888 * dwarf2out.c (loc_descr_plus_const): New function.
5889 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5890 mem_loc_descriptor, loc_descriptor_from_tree_1,
5891 descr_info_loc, gen_variable_die): Use it.
5892
a9548ddf
JJ
5893 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5894 !TREE_STATIC VAR_DECLs.
5895 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5896 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5897 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
5898 DECL_BY_REFERENCE is valid.
5899 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5900 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5901 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5902 Copy DECL_BY_REFERENCE.
5903 (struct nesting_copy_body_data): New type.
5904 (nesting_copy_decl): New function.
5905 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5906 if they have variable length.
5907
10555d08
MM
59082009-04-26 Michael Matz <matz@suse.de>
5909
5910 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5911 mark new temporaries for renaming.
5912
e11187cc
JM
59132009-04-26 Joseph Myers <joseph@codesourcery.com>
5914
5915 PR c/39581
5916 * c-decl.c (global_bindings_p): Return negative value.
5917 (c_variable_size): New. Based on variable_size from
5918 stor-layout.c.
5919 (grokdeclarator): Call c_variable_size not variable_size.
5920
f6a51d31
UB
59212009-04-26 Uros Bizjak <ubizjak@gmail.com>
5922
5923 * config/i386/i386.c (print_operand) ['z']: Fix typo.
5924
4b97723d
KT
59252009-04-26 Kai Tietz <kai.tietz@onevision.com>
5926
5927 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5928 Redefine it to just use mingw/include.
5929 (ASM_SPEC): Rules for -m32 and -m64.
5930 (LINK_SPEC): Use Likewise.
5931 (SPEC_32): New define.
5932 (SPEC_64): Likewise.
5933 (SUB_LINK_SPEC): Likewise.
5934 (MULTILIB_DEFAULTS): New define.
5935 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5936 Add multilib options.
5937 (MULTILIB_DIRNAMES): Likewise.
5938 (MULTILIB_OSDIRNAMES): Likewise.
5939 (LIBGCC): Likewise.
5940 (INSTALL_LIBGCC): Likewise.
5941
991d6621
JM
59422009-04-26 Joseph Myers <joseph@codesourcery.com>
5943
5944 PR c/39556
5945 * c-tree.h (enum c_inline_static_type): New.
5946 (record_inline_static): Declare.
5947 * c-decl.c (struct c_inline_static, c_inline_statics,
5948 record_inline_static, check_inline_statics): New.
5949 (pop_file_scope): Call check_inline_statics.
5950 (start_decl): Call record_inline_static instead of pedwarning
5951 directly for static in inline function.
5952 * c-typeck.c (build_external_ref): Call record_inline_static
5953 instead of pedwarning directly for static referenced in inline
5954 function.
5955
4a81774c
SB
59562009-04-26 Steven Bosscher <steven@gcc.gnu.org>
5957
5958 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5959 not new but only being rescanned.
5960 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5961 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5962 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5963 record_set_info, compute_set, grealloc): Remove.
5964 (recompute_all_luids): New function.
5965 (gcse_main): Don't compute sets, and don't do related memory
5966 allocations/free-ing. If something changed before the end of the
5967 pass, update LUIDs using recompute_all_luids.
5968 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
5969 (free_gcse_mem): Don't free it either.
5970 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
5971 Use the df insn LUIDs.
5972 (load_killed_in_block): Likewise.
5973 (compute_hash_table_work): Don't compute reg_set_in_block.
5974 (compute_transp): Use DF_REG_DEF_CHAINs.
5975 (local_cprop_pass): Don't use compute_sets and related functions.
5976 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
5977 Use get_max_uid() instead of max_cuid.
5978 (insert_insn_end_basic_block, pre_insert_copy_insn,
5979 update_ld_motion_stores): Don't try to
5980 keep reg_set tables up to date.
5981 (pre_insert_copies): Use df insn LUIDs.
5982 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
5983 (reg_set_info): Don't use extra bitmap argument.
5984 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
5985 information to compute regs_set_in_block.
5986 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
5987 (bypass_jumps): Don't use compute_sets and friends.
5988
e8f99a9d
RW
59892009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5990
5991 PR testsuite/39710
5992 * opts.c (undocumented_msg): Do not leave blank even with
5993 ENABLE_CHECKING.
5994
6895bac8
JM
59952009-04-25 Joseph Myers <joseph@codesourcery.com>
5996
5997 * c-decl.c (build_enumerator): Allow values folding to integer
5998 constants but not integer constant expressions with a pedwarn if
5999 pedantic.
6000
24070fcb
JM
60012009-04-25 Joseph Myers <joseph@codesourcery.com>
6002
6003 PR c/39582
6004 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
6005 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
6006 type is an integer constant.
6007
d6d89aa1
UB
60082009-04-25 Uros Bizjak <ubizjak@gmail.com>
6009
6010 PR target/39897
6011 * config/i386/i386.c (print_operand) ['z']: Revert handling of
6012 HImode operands.
6013
92f6fd0b
JM
60142009-04-25 Joseph Myers <joseph@codesourcery.com>
6015
6016 PR c/39564
6017 * c-decl.c (grokdeclarator): Diagnose declarations of functions
6018 with variably modified return type and no storage class
6019 specifiers, except for the case of nested functions. Distinguish
6020 extern declarations of functions with variably modified return
6021 types from those of objects with variably modified types.
6022
a3710436
JH
60232009-04-25 Jan Hubicka <jh@suse.cz>
6024
6025 * tree.c (list_equal_p): New function.
6026 * tree.h (list_equal_p): Declare.
6027 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6028 basic_block_def, basic_block, const_basic_block): New.
6029 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
6030 (redirect_eh_edge): New function.
6031 (make_eh_edge_update_phi): EH edges are not abnormal.
6032 * except.c: Include tree-flow.h.
6033 (list_match): New function.
6034 (eh_region_replaceable_by_p): New function.
6035 (replace_region): New function.
6036 (hash_type_list): New function.
6037 (hash_eh_region): New function.
6038 (eh_regions_equal_p): New function.
6039 (merge_peers): New function.
6040 (remove_unreachable_regions): Verify EH tree when checking;
6041 merge peers.
6042 (copy_eh_region_1): New function.
6043 (copy_eh_region): New function.
6044 (push_reachable_handler): New function.
6045 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
6046 regions without label but with live RESX.
6047 * except.h (redirect_eh_edge_to_label): New.
6048 * tree-flow.h (redirect_eh_edge): New.
6049 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6050 basic_block_def, basic_block, const_basic_block): Remove.
6051 * Makefile.in (except.o): Add dependency on tree-flow.h
6052 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
6053 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
6054 Remove.
6055
3764d512
EB
60562009-04-25 Eric Botcazou <ebotcazou@adacore.com>
6057
6058 PR bootstrap/39645
6059 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
6060 on the destination of memcpy.
6061
1c62e8f2
PB
60622009-04-25 Paolo Bonzini <bonzini@gnu.org>
6063
6064 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6065 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
6066 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
6067
496a4ef5
JH
60682009-04-25 Jan Hubicka <jh@suse.cz>
6069
6070 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
6071 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
6072 to be reached by different label than left.
6073 (update_eh_edges): Update comment; remove edge_to_remove if possible
6074 and return true if suceeded.
6075 (cleanup_empty_eh): Accept sharing map; handle shared regions.
6076 (cleanup_eh): Compute sharing map.
6077 * except.c (remove_eh_handler_and_replace): Add argument if we should
6078 update regions.
6079 (remove_unreachable_regions): Update for label sharing.
6080 (label_to_region_map): Likewise.
6081 (get_next_region_sharing_label): New function.
6082 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
6083 prev_try pointers.
6084 (remove_eh_handler): Update.
6085 (remove_eh_region_and_replace_by_outer_of): New function.
6086 * except.h (struct eh_region): Add next_region_sharing_label.
6087 (remove_eh_region_and_replace_by_outer_of,
6088 get_next_region_sharing_label): Declare.
6089 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
6090
60912009-04-25 Jan Hubicka <jh@suse.cz>
6092
6093 * tree-cfg.c (split_critical_edges): Split also edges where we can't
6094 insert code even if they are not critical.
6095
60962009-04-25 Jan Hubicka <jh@suse.cz>
6097
6098 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6099 (gimple_can_remove_branch_p): EH edges won't remove branch by
6100 redirection.
6101 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
6102 updating of non-abnormal EH edges.
6103 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6104 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
6105 (split_critical_edges): Split also edges where emitting code on them
6106 will lead to splitting later.
6107
a3a5e3d1
UB
61082009-04-25 Uros Bizjak <ubizjak@gmail.com>
6109 H.J. Lu <hongjiu.lu@intel.com>
6110
6111 PR target/39590
6112 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
6113 the configured assembler supports fildq and fistpq mnemonics.
6114 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
6115 * configure: Regenerated.
6116 * config.in: Ditto.
6117
6118 * config/i386/i386.c (print_operand): Handle 'Z'.
6119 ['z']: Remove handling of special fild/fist suffixes.
6120 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
6121 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
6122 suffix of fild insn.
6123 (*floatsi<mode>2_vector_mixed): Ditto.
6124 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
6125 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
6126 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6127 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
6128 * config/i386/gas.h (GAS_MNEMONICS): Remove.
6129
23750d7f
BE
61302009-04-25 Ben Elliston <bje@au.ibm.com>
6131
6132 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
6133 the source of a set operation.
6134
e6ff3083
AS
61352009-04-25 Anatoly Sokolov <aesok@post.ru>
6136
6137 * target.h (struct gcc_target): Add case_values_threshold field.
6138 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
6139 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
6140 * targhooks.c (default_case_values_threshold): New function.
6141 * targhooks.h (default_case_values_threshold): Declare function.
6142 * stmt.c (expand_case): Use case_values_threshold target hook.
6143 * expr.h (case_values_threshold): Remove declartation.
6144 * expr.c (case_values_threshold): Remove function.
6145 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
6146
6147 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
6148 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6149 (avr_case_values_threshold): Declare as static.
6150 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
6151
6152 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
6153 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6154 (mn10300_case_values_threshold): New function.
6155
569c72fc
L
61562009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6157
6158 * ira.c (setup_cover_and_important_classes): Add enum cast.
6159
ff3cb468
VM
61602009-04-24 Vladimir Makarov <vmakarov@redhat.com>
6161
6162 * genpreds.c (write_enum_constraint_num): Output definition of
6163 CONSTRAINT_NUM_DEFINED_P macro.
6164 * ira.c (setup_cover_and_important_classes): Use
6165 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
6166
4f7be849
DD
61672009-04-24 DJ Delorie <dj@redhat.com>
6168
6169 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
6170 __SH2A_SINGLE_ONLY__ also.
6171
735b94a7
SE
61722009-04-24 Steve Ellcey <sje@cup.hp.com>
6173
6174 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
6175 (movdf_internal): Ditto.
6176 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
6177 SFmode and DFmode constants.
6178 (ia64_print_operand): Add 'G' format for printing
6179 floating point constants.
6180
77a30264
RG
61812009-04-24 Richard Guenther <rguenther@suse.de>
6182
6183 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
6184 from unsigned additions.
6185
2b6da65c
JM
61862009-04-24 Joseph Myers <joseph@codesourcery.com>
6187
6188 * c-typeck.c (set_init_index): Allow array designators that are
6189 not integer constant expressions with a pedwarn if pedantic.
6190
f5a17c43
BS
61912009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6192
6193 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
6194 zero if no overlap in nonzero bits between the operands.
6195
32e8bb8e
ILT
61962009-04-24 Ian Lance Taylor <iant@google.com>
6197
6198 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
6199 (record_dead_and_set_regs): Likewise.
6200 * df.h (struct df_mw_hardreg): Change flags field to int.
6201 (struct df_base_ref): Likewise.
6202 (struct df): Change changeable_flags field to int.
6203 * df-scan.c (df_defs_record): Change clobber_flags to int.
6204 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
6205 constants rather than #define macros.
6206 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
6207 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
6208 (enum dwarf_calling_convention): Likewise.
6209 (enum dwarf_line_number_x_ops): Likewise.
6210 (enum dwarf_call_frame_info): Likewise.
6211 (enum dwarf_source_language): Likewise.
6212 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
6213 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
6214 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
6215 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
6216 * genrecog.c (maybe_both_true_2): Change c to int.
6217 (write_switch): Likewise. Add cast to enum type.
6218 * gimplify.c (gimplify_omp_for): Handle return values from
6219 gimplify_expr using MIN rather than bitwise or.
6220 (gimplify_expr): Add cast to enum type.
6221 * ipa-prop.c (update_jump_functions_after_inlining): Change
6222 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
6223 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
6224 Add casts to enum type.
32e8bb8e
ILT
6225 (setup_cover_and_important_classes): Change cl to int. Add casts
6226 to enum type.
6227 (setup_class_translate): Change cl and mode to int.
6228 (ira_init_once): Change mode to int.
6229 (free_register_move_costs): Likewise.
6230 (setup_prohibited_mode_move_regs): Add casts to enum type.
6231 * langhooks.c (add_builtin_function_common): Rework assertion that
6232 value fits bitfield.
6233 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
6234 * omega.c (omega_do_elimination): Avoid math on enum types.
6235 * optabs.c (expand_vec_shift_expr): Remove casts to int.
6236 * opts.c (set_debug_level): Change 2 to enum constant. Use new
6237 int local to handle integral_argment value.
6238 * regmove.c (try_auto_increment): Change PUT_MODE to
6239 PUT_REG_NOTE_KIND.
6240 * reload.c (push_secondary_reload): Add casts to enum type.
6241 (secondary_reload_class, find_valid_class): Likewise.
6242 * reload1.c (emit_input_reload_insns): Likewise.
6243 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
6244 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
6245 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
6246 constant.
6247 * tree.c (build_common_builtin_nodes): Add casts to enum type.
6248 * tree-complex.c (complex_lattice_t): Typedef to int rather than
6249 enum type.
6250 (expand_complex_libcall): Add casts to enum type.
6251 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
6252 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
6253 with ERROR_MARK, not NUM_TREE_CODES.
6254 (vect_create_epilog_for_reduction): Likewise.
6255 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 6256 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
6257 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
6258 enum machine_mode.
6259 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
6260 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 6261 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
6262 * var-tracking.c (get_init_value): Change return type to enum
6263 var_init_status.
6264 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
6265 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
6266 arm_fp_model.
6267 (arm_override_options): Add casts to enum type.
6268 (arm_emit_tls_decoration): Likewise.
6269 * config/i386/i386.c (ix86_function_specific_restore): Add casts
6270 to enum type.
6271 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
6272 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
6273 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
6274 enum type.
6275 * config/s390/s390.c (code_for_builtin_64): Change to array of
6276 enum insn_code.
6277 (code_for_builtin_31): Likewise.
6278 (s390_expand_builtin): Change code_for_builtin to enum insn_code
6279 const *.
6280 * config/sparc/sparc.c (sparc_override_options): Change value
6281 field in struct code_model to enum cmodel. In initializer change
6282 0 to NULL and add cast to enum type.
6283
6284 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
6285 Change all callers. Issue a -Wc++-compat warning using
6286 lhs_origtype if necessary.
6287 (convert_for_assignment): Issue -Wc++-compat warnings about
6288 invalid conversions to enum type on assignment.
6289 * c-common.h (build_modify_expr): Update declaration.
6290
ac4fc08a
NC
62912009-04-24 Nick Clifton <nickc@redhat.com>
6292
6293 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
6294 (function_arg_advance): Likewise.
6295 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
6296 5th alternative.
6297
f22e891a
AK
62982009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
6299
6300 * config/s390/constraints.md ('I', 'J'): Fix condition.
6301
ad58aabe
DN
63022009-04-24 Diego Novillo <dnovillo@google.com>
6303
6304 * gengtype-parse.c (parse_error): Add newline after message.
6305
879a4a01
L
63062009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6307
6308 * config/i386/sse.md (avxmodesuffixs): Removed.
6309 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
6310 (*avx_pinsr<ssevecsize>): This.
6311
f63426af
BS
63122009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6313
6314 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
6315 follow chains of regs with a single definition, and allow expressions
6316 that are function_invariant_p.
ce72fe6c 6317 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 6318
30349c74
PB
63192009-04-24 Paolo Bonzini <bonzini@gnu.org>
6320
6321 PR middle-end/39867
6322 * fold-const.c (fold_cond_expr_with_comparison): When folding
6323 > and >= to MAX, make sure the MAX uses the same type as the
6324 comparison's operands.
6325
8d8256c1
NC
63262009-04-24 Nick Clifton <nickc@redhat.com>
6327
6328 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
6329 addressing for DImode accesses.
6330 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 6331 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 6332
6216f94e
JJ
63332009-04-24 Jakub Jelinek <jakub@redhat.com>
6334
6335 PR rtl-optimization/39794
6336 * alias.c (canon_true_dependence): Add x_addr argument.
6337 * rtl.h (canon_true_dependence): Adjust prototype.
6338 * cse.c (check_dependence): Adjust canon_true_dependence callers.
6339 * cselib.c (cselib_invalidate_mem): Likewise.
6340 * gcse.c (compute_transp): Likewise.
6341 * dse.c (scan_reads_nospill): Likewise.
6342 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
6343 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
6344 canon_base_addr of the group, plus optional offset.
6345 (struct group_info): Rename canon_base_mem to
6346 canon_base_addr.
6347 (get_group_info): Set canon_base_addr to canon_rtx of base, not
6348 canon_rtx of base_mem.
6349
6de7a512
PB
63502009-04-23 Paolo Bonzini <bonzini@gnu.org>
6351
6352 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6353 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
6354
4a3a2376
UW
63552009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6356
6357 * config/spu/spu-builtins.h: Delete file.
6358
6359 * config/spu/spu.h (enum spu_builtin_type): Move here from
6360 spu-builtins.h.
6361 (struct spu_builtin_description): Likewise. Add GTY marker.
6362 Do not use enum spu_function_code or enum insn_code.
6363 (spu_builtins): Add extern declaration.
6364
6365 * config/spu/spu.c: Do not include "spu-builtins.h".
6366 (enum spu_function_code, enum spu_builtin_type_index,
6367 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
6368 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
6369 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
6370 unsigned_V2DI_type_node): Move here from spu-builtins.h.
6371 (spu_builtin_types): Make static. Add GTY marker.
6372 (spu_builtins): Add extern declaration with GTY marker.
6373 Include "gt-spu.h".
6374
6375 * config/spu/spu-c.c: Do not include "spu-builtins.h".
6376 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
6377 Check programmatically whether all parameters are scalar.
6378
6379 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
6380
bbaba73f
EB
63812009-04-23 Eric Botcazou <ebotcazou@adacore.com>
6382
6383 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
6384 assignment from the constructor either if the target is volatile.
6385
ee93c1c6
DJ
63862009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
6387
6388 * config/arm/arm.md (insv): Do not share operands[0].
6389
b2f21330
NS
63902009-04-23 Nathan Sidwell <nathan@codesourcery.com>
6391
6392 * config/vxlib-tls.c (active_tls_threads): Delete.
6393 (delete_hook_installed): New.
6394 (tls_delete_hook): Don't delete the delete hook.
6395 (tls_destructor): Delete it here.
6396 (__gthread_set_specific): Adjust installing the delete hook.
6397 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
6398 __gthread_leave_tsd_dtor_context.
6399
4782dfa7
RAE
64002009-04-23 Rafael Avila de Espindola <espindola@google.com>
6401
6402 * c-format.c (gcc_tdiag_char_table): Add support for %E.
6403
bf758008
UB
64042009-04-23 Uros Bizjak <ubizjak@gmail.com>
6405
6406 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
6407 enum type.
6408 (alpha_rtx_costs): Ditto.
6409 (emit_unlikely_jump): Use add_reg_note.
6410 (emit_frame_store_1): Ditto.
6411 (alpha_expand_prologue): Ditto.
6412 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6413 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
6414
7323a100
NC
64152009-04-23 Nick Clifton <nickc@redhat.com>
6416
6417 * config/v850/v850.md (epilogue): Remove suppressed code.
6418 (return): Rename to return_simple and remove test of frame size.
6419 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
6420 to gen_return_simple.
6421
360032ba
JY
64222009-04-22 Jing Yu <jingyu@google.com>
6423
6424 PR testsuite/39781
6425 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
6426
53650abe
AP
64272009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
6428
6429 PR C/31499
6430 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
6431 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
6432 value is a VECTOR_CST, the element type is the element type of the
6433 vector.
6434
89043e8a
DD
64352009-04-22 DJ Delorie <dj@redhat.com>
6436
6437 * config/m32c/m32c.h: Update GTY annotations to new syntax.
6438
023f059b
JJ
64392009-04-22 Jakub Jelinek <jakub@redhat.com>
6440
6441 * alias.c (find_base_term): Move around LO_SUM case, so that
6442 CONST falls through into PLUS/MINUS handling.
6443
2c0eba5a
JJ
6444 PR c/39855
6445 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
6446 into 0, use omit_one_operand.
6447
9a461028
BE
64482009-04-23 Ben Elliston <bje@au.ibm.com>
6449
6450 * config/rs6000/linux-unwind.h (get_regs): Remove type
6451 puns. Change the type of `pc' to an array of unsigned ints and
6452 update all users. Constify frame24.
6453
653e2568
DD
64542009-04-22 DJ Delorie <dj@redhat.com>
6455
6456 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
6457 declarations before code.
6458 (current_function_special_page_vector): Likewise.
6459 (m32c_expand_insv): Silence a warning.
6460
60839f5d 64612009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
6462
6463 * alias.c: Update GTY annotations to new syntax.
6464 * basic-block.h: Likewise.
6465 * bitmap.h: Likewise.
6466 * c-common.h: Likewise.
6467 * c-decl.c: Likewise.
6468 * c-parser.c: Likewise.
6469 * c-pragma.c: Likewise.
6470 * c-tree.h: Likewise.
6471 * cfgloop.h: Likewise.
6472 * cgraph.h: Likewise.
6473 * config/alpha/alpha.c: Likewise.
6474 * config/arm/arm.h: Likewise.
6475 * config/avr/avr.h: Likewise.
6476 * config/bfin/bfin.c: Likewise.
6477 * config/cris/cris.c: Likewise.
6478 * config/darwin.c: Likewise.
6479 * config/frv/frv.c: Likewise.
6480 * config/i386/i386.c: Likewise.
6481 * config/i386/i386.h: Likewise.
6482 * config/i386/winnt.c: Likewise.
6483 * config/ia64/ia64.h: Likewise.
6484 * config/iq2000/iq2000.c: Likewise.
6485 * config/mips/mips.c: Likewise.
6486 * config/mmix/mmix.h: Likewise.
6487 * config/pa/pa.c: Likewise.
6488 * config/pa/pa.h: Likewise.
6489 * config/rs6000/rs6000.c: Likewise.
6490 * config/s390/s390.c: Likewise.
6491 * config/sparc/sparc.c: Likewise.
6492 * config/xtensa/xtensa.c: Likewise.
6493 * cselib.h: Likewise.
6494 * dbxout.c: Likewise.
6495 * dwarf2out.c: Likewise.
6496 * except.c: Likewise.
6497 * except.h: Likewise.
6498 * fixed-value.h: Likewise.
6499 * function.c: Likewise.
6500 * function.h: Likewise.
6501 * gimple.h: Likewise.
6502 * integrate.c: Likewise.
6503 * optabs.c: Likewise.
6504 * output.h: Likewise.
6505 * real.h: Likewise.
6506 * rtl.h: Likewise.
6507 * stringpool.c: Likewise.
6508 * tree-data-ref.c: Likewise.
6509 * tree-flow.h: Likewise.
6510 * tree-scalar-evolution.c: Likewise.
6511 * tree-ssa-address.c: Likewise.
6512 * tree-ssa-alias.h: Likewise.
6513 * tree-ssa-operands.h: Likewise.
6514 * tree.c: Likewise.
6515 * tree.h: Likewise.
6516 * varasm.c: Likewise.
6517 * varray.h: Likewise.
6518 * vec.h: Likewise.
bf758008 6519 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
6520 * doc/gty.texi: Update GTY documentation to new syntax.
6521 * gengtype-lex.l: Enforce attribute-like syntax for GTY
6522 annotations on structs.
6523 * gengtype-parse.c: Likewise.
6524
a123d175
MH
65252009-04-22 Mark Heffernan <meheff@google.com>
6526
bf758008 6527 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 6528
4c7c486a
KH
65292009-04-22 Kazu Hirata <kazu@codesourcery.com>
6530
6531 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
6532 where appropriate.
6533
6e782a29
KH
65342009-04-22 Kazu Hirata <kazu@codesourcery.com>
6535
6536 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
6537 the same as a PLUS without a shift. Increase the cost of a
6538 CONST_INT in MULT.
6539
38d2336a
MLI
65402009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6541
6542 * Makefile.in: Update dependencies.
bf758008 6543 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
6544 * errors.h: Remove bogus comment about compatibility.
6545 (warning): Update declaration.
6546 * genautomata.c: Update all calls to warning.
6547 * gimple.c: Do not include errors.h. Include toplev.h.
6548 * tree-ssa-structalias.c: Do not include errors.h.
6549 * omega.c: Likewise.
6550 * tree-ssa-reassoc.c: Likewise.
6551 * config/spu/spu-c.c: Likewise.
6552 * config/spu/t-spu-elf: Update dependencies.
6553
aea4deba
RG
65542009-04-22 Richard Guenther <rguenther@suse.de>
6555
6556 PR tree-optimization/39824
6557 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
6558 make sure the types are compatible.
6559
cfc93532
MLI
65602009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6561
6562 PR c++/14875
6563 * c-common.c (c_parse_error): Take a token_flags parameter.
6564 Use token_type for the token type instead.
6565 Pass token_flags to cpp_type2name.
6566 * c-common.h (c_parse_error): Update declaration.
6567 * c-parser.c (c_parser_error): Pass 0 as token flags.
6568
8632d02a
AB
65692009-04-22 Andrey Belevantsev <abel@ispras.ru>
6570
6571 PR rtl-optimization/39580
6572 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
6573
4c33221c
UW
65742009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6575
6576 * function.c (expand_function_end): Do not emit a jump to the "naked"
6577 return label for fall-through returns.
6578 * except.c (sjlj_emit_function_exit): Always place the call to the
6579 unregister function at the location installed by expand_function_end.
6580
9925bce0
RG
65812009-04-22 Richard Guenther <rguenther@suse.de>
6582
6583 PR tree-optimization/39845
6584 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
6585 (gen_inbound_check): Likewise.
6586
24a40b35
NS
65872009-04-22 Nathan Sidwell <nathan@codesourcery.com>
6588
6589 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
6590 padding for PPC.
6591 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
6592 * config/vxlib.c (__gthread_once): Add race guard for PPC.
6593
6c34a092
PB
65942009-04-22 Paolo Bonzini <bonzini@gnu.org>
6595
6596 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
6597 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
6598 shift counts to avoid out-of-bounds array accesses.
6599
baa48dfa
PB
66002009-04-22 Paolo Bonzini <bonzini@gnu.org>
6601
6602 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
6603 (Pmode): Move above.
6604
7d83f4f5
UB
66052009-04-22 Uros Bizjak <ubizjak@gmail.com>
6606
6607 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
6608 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
6609 GET_CODE macro. Use IN_RANGE macro where appropriate.
6610 * config/alpha/alpha.h: Ditto.
6611 * config/alpha/alpha.md: Ditto.
6612 * config/alpha/constraints.md: Ditto.
6613 * config/alpha/predicates.md: Ditto.
6614
3ad606bc
PB
66152009-04-22 Paolo Bonzini <bonzini@gnu.org>
6616
6617 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
6618 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6619 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6620 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6621 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6622 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6623 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6624 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6625 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6626 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6627 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6628 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6629 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6630 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6631 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6632 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6633 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6634 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6635 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6636 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6637 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6638 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6639 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6640 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6641 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6642 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6643 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6644
3cabd6d1
LB
66452009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
6646
6647 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
6648 references from comments.
6649 * cfgbuild.c: (count_basic_blocks): Delete.
6650 (find_basic_blocks_1): Delete.
6651 (find_basic_blocks): Delete.
6652 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 6653 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
6654 * except.h (finish_eh_generation): Delete.
6655 * basic-block.h (find_basic_blocks): Delete.
6656 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
6657
270d1bcd
DK
66582009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
6659
6660 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
6661 (sdbout_parms): Likewise.
6662
b757d36f
KK
66632009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
6664
6665 * config/sh/sh.c (prepare_cbranch_operands): Use
6666 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
6667 (expand_cbranchdi4): Likewise.
6668 (from_compare): Add cast to enum type.
6669 (expand_cbranchsi4): Use add_reg_note.
6670 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
6671 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
6672 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
6673 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6674 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
6675 instead of CODE_FOR_nothing.
6676 (cbranchdi4): Likewise. Fix the order of arguments for
6677 gen_rtx_fmt_ee.
6678 (push_fpscr): Use add_reg_note.
6679 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
6680 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
6681
ad41bd84
JM
66822009-04-21 Joseph Myers <joseph@codesourcery.com>
6683
6684 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
6685 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6686 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6687 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
6688 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
6689 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
6690 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
6691 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
6692 config/alpha/x-vms, config/arc/t-arc,
6693 config/arm/README-interworking, config/arm/arm-c.c,
6694 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
6695 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
6696 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
6697 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
6698 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
6699 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
6700 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
6701 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
6702 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
6703 config/cris/t-elfmulti, config/crx/t-crx,
6704 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
6705 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
6706 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
6707 config/h8300/t-h8300, config/i386/athlon.md,
6708 config/i386/darwin-libgcc.10.4.ver,
6709 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
6710 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
6711 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
6712 config/i386/t-linux64, config/i386/t-nwld,
6713 config/i386/t-rtems-i386, config/i386/t-sol2-10,
6714 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
6715 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
6716 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
6717 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
6718 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
6719 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
6720 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
6721 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
6722 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
6723 config/m68k/t-uclinux, config/mcore/t-mcore,
6724 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
6725 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
6726 config/mips/crtn.asm, config/mips/irix-crti.asm,
6727 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
6728 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
6729 config/mips/mips-fixed.md, config/mips/sb1.md,
6730 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
6731 config/mips/t-iris6, config/mips/t-isa3264,
6732 config/mips/t-libgcc-mips16, config/mips/t-linux64,
6733 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
6734 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
6735 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
6736 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
6737 config/mn10300/t-linux, config/mn10300/t-mn10300,
6738 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
6739 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
6740 config/picochip/libgccExtras/clzsi2.asm,
6741 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
6742 config/rs6000/darwin-libgcc.10.4.ver,
6743 config/rs6000/darwin-libgcc.10.5.ver,
6744 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
6745 config/rs6000/t-aix43, config/rs6000/t-aix52,
6746 config/rs6000/t-darwin, config/rs6000/t-fprules,
6747 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
6748 config/rs6000/t-lynx, config/rs6000/t-netbsd,
6749 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
6750 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
6751 config/rs6000/t-rtems, config/rs6000/t-spe,
6752 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
6753 config/score/t-score-elf, config/sh/divcost-analysis,
6754 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
6755 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
6756 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
6757 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
6758 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
6759 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
6760 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
6761 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
6762 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
6763 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
6764 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
6765 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
6766 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
6767 limitx.h, version.c, xcoff.h: Add copyright and license notices.
6768 * config/h8300/genmova.sh: Include copyright and license notices
6769 in generated output.
6770 * config/h8300/mova.md: Regenerate.
6771 * doc/install.texi2html: Include word "Copyright" in copyright
6772 notice and use name "Free Software Foundation, Inc.".
6773 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6774 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6775 ChangeLog-2007, ChangeLog-2008: Correct dates.
6776
ca80e52b
EB
67772009-04-21 Eric Botcazou <ebotcazou@adacore.com>
6778
6779 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6780 NE_EXPR operations as well.
6781 * c-parser.c (c_parser_condition): Do not set location information on
6782 the condition.
6783 (c_parser_conditional_expression): Likewise.
6784 (c_parser_binary_expression): Set location information on operators.
6785 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6786 TRUTH_NOT_EXPR has been folded.
6787 * fold-const.c (fold_truth_not_expr): Copy location information from
6788 the incoming expression to the outgoing one.
6789 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
6790 recursive calls on the LHS of the operator but pass that of the
6791 operator to recursive calls on the RHS of the operator. Set it
6792 on the COND_EXPR.
6793 (shortcut_cond_expr): Set the locus of the operator on the second
6794 COND_EXPR and that of the expression on the first in degenerate cases.
6795 Pass the locus of the expression to calls to shortcut_cond_r.
6796 Set the locus of the 'then' block on the associated jump, if any.
6797 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
6798 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6799 expression to call to gimplify_boolean_expr.
6800
35091630
KT
68012009-04-21 Kai Tietz <kai.tietz@onevision.com>
6802
6803 * config.gcc: Add additional configuration for
6804 i686-w64-mingw* and x86_64-w64-mingw* triplet.
6805 * config/i386/mingw-w64.h: New mingw-w64 specific header.
6806 (CPP_SPEC): Redefine for allowing -municode option.
6807 (STARTFILE_SPEC): Likewise.
6808 * config/i386/t-mingw-w64: New.
6809 * config/i386/mingw-w64.opt: New.
6810 (municode): Add new target option.
6811 * doc/invoke.texi (municode): Add documentation for new option.
6812
0267afc4
ILT
68132009-04-21 Ian Lance Taylor <iant@google.com>
6814
6815 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6816 Correct test for number of arguments.
6817 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6818
2ba9daa7
AS
68192009-04-21 Andreas Schwab <schwab@linux-m68k.org>
6820
6821 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6822 argument of emit_library_call.
6823
ad8a1ac0
RG
68242009-04-21 Richard Guenther <rguenther@suse.de>
6825
6826 PR middle-end/39829
6827 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6828 inside VIEW_CONVERT_EXPRs.
6829
7156c8ab
MJ
68302009-04-21 Martin Jambor <mjambor@suse.cz>
6831
6832 * tree-switch-conversion.c (build_constructors): Split a long line.
6833 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
6834 (build_one_array): Create assigns of constants if possible, do not
6835 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
6836 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6837 make_rename_temp. Do not call mark_symbols_for_renaming, call
6838 update_stmt.
6839 (gen_def_assigns): Do not call mark_symbols_for_renaming or
6840 find_new_referenced_vars, call update_stmt.
6841 (gen_inbound_check): Use create_tmp_var and create ssa names manually
6842 instead of calling make_rename_temp. Do not call
6843 find_new_referenced_vars or mark_symbols_for_renaming, call
6844 update_stmt.
6845
2970ccb3
RG
68462009-04-21 Richard Guenther <rguenther@suse.de>
6847
6848 PR tree-optimization/39827
7d83f4f5 6849 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
6850 (tree_ssa_phiprop): Pass the correct array size.
6851
47f402d1
UB
68522009-04-21 Uros Bizjak <ubizjak@gmail.com>
6853
6854 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6855
1e4ae551
MLI
68562009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
6857
6858 PR 16202
6859 * c-typeck.c (lvalue_p): Move declaration ...
6860 * c-common.h (lvalue_p): ... to here.
6861 * c-common.c (candidate_equal_p): New.
6862 (add_tlist): Use it.
6863 (merge_tlist): Use it.
6864 (warn_for_collisions_1): Likewise.
6865 (warning_candidate_p): Accept more candidates.
6866 (verify_tree): A warning candidate can be an expression. Use
6867 candidate_equal_p.
6868
244609a6
BE
68692009-04-21 Ben Elliston <bje@au.ibm.com>
6870
6871 PR target/5267
6872 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6873 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6874 options. Remove -mcall-solaris documentation.
6875
9c650d90
MLI
68762009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6877
6878 PR c++/13358
6879 * doc/invoke.texi (-Wlong-long): Update description.
6880 * c-lex (interpret_integer): Only warn if there was no previous
6881 overflow and -Wlong-long is enabled.
6882 * c-decl.c (declspecs_add_type): Drop redundant flags.
6883 * c.opt (Wlong-long): Init to -1.
6884 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6885 and front-end warn_long_long. Wlong-long only depends on other
6886 flags if it is uninitialized.
6887 * c-parser.c (disable_extension_diagnostics): warn_long_long is
6888 the same for CPP and FE.
6889 (restore_extension_diagnostics): Likewise.
6890
bbbbb16a
ILT
68912009-04-20 Ian Lance Taylor <iant@google.com>
6892
6893 Fix enum conversions which are invalid in C++:
47f402d1
UB
6894 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6895 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6896 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6897 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 6898 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 6899 (dbxout_parms): Likewise.
47f402d1 6900 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
6901 (df_clear_flags): Likewise.
6902 * df-problems.c (df_rd_bb_local_compute_process_def): Change
6903 top_flag parameter to int.
6904 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
6905 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6906 Remove cast.
bbbbb16a
ILT
6907 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6908 (df_ref_create_structure, df_def_record_1): Likewise.
6909 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6910 (df_notes_rescan): Change 0 to VOIDmode in function call.
6911 (df_get_call_refs, df_insn_refs_collect): Likewise.
6912 (df_bb_regs_collect): Likewise.
6913 (df_entry_block_defs_collect): Likewise.
6914 (df_exit_block_uses_collect): Likewise.
6915 * df.h: Update declarations.
6916 * double-int.c (double_int_divmod): Add cast to enum type.
6917 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6918 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6919 (based_loc_descr): Likewise.
6920 (loc_descriptor_from_tree_1): Change first_op and second_op to
6921 enum dwarf_location_atom. Add cast to enum type.
6922 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 6923 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6924 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6925 (do_store_flag): Likewise.
6926 * fixed-value.h (struct fixed_value): Change mode to enum
6927 machine_mode.
47f402d1 6928 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6929 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6930 function call.
6931 (insert_insn_decl, insert_decl, insert_state): Likewise.
6932 (automata_list_finish): Likewise.
6933 * genrecog.c (process_define_predicate): Add cast to enum type.
6934 * gensupport.c (init_predicate_table): Add cast to enum type.
6935 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6936 function call.
6937 (gimple_build_call_1, gimple_build_label): Likewise.
6938 (gimple_build_goto, gimple_build_asm_1): Likewise.
6939 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 6940 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
6941 (enum fallback): Rename from enum fallback_t.
6942 (fallback_t): Typedef as int.
6943 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6944 GSI_SAME_STMT in function call.
6945 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6946 enum type.
6947 (setup_reg_class_relations): Likewise.
47f402d1 6948 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
6949 (setup_prohibited_class_mode_regs): Add cast to enum type.
6950 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 6951 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
6952 (record_address_regs): Change i to enum reg_class.
6953 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6954 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6955 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6956 (GET_MODE_2XWIDER_MODE): Likewise.
6957 (GET_CLASS_NARROWEST_MODE): Likewise.
6958 * omp-low.c (expand_omp_for): Add cast to enum type.
6959 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6960 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6961 * postreload.c (reload_cse_simplify_operands): Change rclass local
6962 to enum reg_class.
6963 * predict.c (combine_predictions_for_insn): Change best_predictor
6964 and predictor to enum br_predictor.
6965 (combine_predictions_for_bb): Likewise.
6966 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
6967 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 6968 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
6969 * reginfo.c (init_move_cost): Add casts to enum type.
6970 (init_reg_sets_1, init_fake_stack_mems): Likewise.
6971 * regmove.c (regclass_compatible_p): Change class0 and class1 to
6972 enum reg_class.
6973 * reload.c (find_valid_class): Add casts to enum type.
6974 (push_reload): Change 0 to NO_REGS in function call.
6975 (find_reloads): Change this_alternative to array of enum
6976 reg_class. Remove some now-unnecessary casts.
6977 (make_memloc): Change 0 to VOIDmode in function call.
6978 * reload1.c (reload): Change 0 to VOIDmode in function call.
6979 (eliminate_regs_1, elimination_effects): Likewise.
6980 (eliminate_regs_in_insn): Likewise.
6981 (emit_input_reload_insns): Add cast to enum type.
6982 (delete_output_reload): Change 0 to VOIDmode in function call.
6983 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
6984 to enum type in function call.
6985 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
6986 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 6987 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
6988 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
6989 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
6990 (dump_function): Likewise.
6991 * tree-dump.h: Update declarations.
6992 * tree-pass.h: Update declarations.
6993 * varasm.c (assemble_integer): Change mclass to enum mode_class.
6994 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
6995 enum type.
6996 (arm_rtx_costs_1): Correct parenthesization.
6997 (arm_rtx_costs): Add casts to enum type.
6998 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
6999 (vfp_emit_fstmd): Use add_rg_note.
7000 (emit_multi_reg_push, emit_sfm): Likewise.
7001 (thumb_set_frame_pointer): Likewise.
7002 (arm_expand_prologue): Likewise.
7003 (arm_regno_class): Change return type to enum reg_class.
7004 (thumb1_expand_prologue): Use add_reg_note.
7005 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
7006 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
7007 in function call.
7008 * config/arm/gentune.sh: Add cast to enum type.
7009 * config/arm/arm-tune.md: Rebuild.
7010 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
7011 (ix86_split_fp_branch, predict_jump): Likewise.
7012 (ix86_expand_multi_arg_builtin): Change sub_code from enum
7013 insn_code to enum rtx_code.
7014 (ix86_builtin_vectorized_function): Add cast to enum type.
7015 * config/i386/i386.md (truncdfsf2): Change slot to enum
7016 ix86_stack_slot.
7017 (truncxf<mode>2, isinf<mode>2): Likewise.
7018 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
7019 enum type.
7020 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
7021 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
7022 (insert_bundle_state): Change 1 to INSERT in function call.
7023 (ia64_add_bundle_selector_before): Likewise.
7024 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
7025 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
7026 (restore_stack_nonlocal): Likewise.
7027 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
7028 function call.
7029 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
7030 function call.
7031 (mips_rtx_costs): Likewise.
7032 (mips_override_options): Add casts to enum type.
7033 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
7034 in function call.
7035 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
7036 (store_reg, set_reg_plus_d): Likewise.
7037 (hppa_expand_prologue, hppa_profile_hook): Likewise.
7038 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7039 cast to enum type.
7040 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
7041 function call.
7042 (emit_unlikely_jump): Use add_reg_note.
7043 (rs6000_emit_allocate_stack): Likewise.
7044 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
7045 (output_toc): Change 1 to INSERT in function call.
7046 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
7047 (rs6000_initialize_trampoline): Likewise.
7048 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
7049 function call.
7050 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
7051 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
7052 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
7053 (save_gprs): Use add_reg_note.
7054 (s390_emit_prologue): Likewise.
47f402d1 7055 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7056 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
7057 (sparc_fold_builtin): Add cast to enum type.
7058 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
7059 enum insn_code.
7060 (spu_expand_prologue): Use add_reg_note.
47f402d1 7061 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7062
70632009-04-20 Ian Lance Taylor <iant@google.com>
7064
7065 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
7066 (c_parser_postfix_expression_after_primary): Get VEC for list of
7067 arguments. Get original types of arguments. Call
7068 build_function_call_vec.
7069 (cached_expr_list_1, cached_expr_list_2): New static variables.
7070 (c_parser_expr_list): Change return type to VEC *. Add
7071 p_orig_types parameter. Change all callers.
7072 (c_parser_release_expr): New static function.
7073 (c_parser_vec_to_tree_list): New static function.
7074 * c-typeck.c (build_function_call): Rewrite to build a VEC and
7075 call build_function_call_vec.
7076 (build_function_call_vec): New function, based on old
7077 build_function_call.
7078 (convert_arguments): Remove nargs and argarray parameters. Change
7079 values to a VEC. Add origtypes parameter.
47f402d1 7080 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
7081 (convert_for_assignment): Add origtype parameter. Change all
7082 callers. If warn_cxx_compat, check for conversion to an enum
7083 type when calling a function.
7084 (store_init_value): Add origtype parameter. Change all callers.
7085 (digest_init): Likewise.
7086 (struct init_node): Add origtype field.
7087 (add_pending_init): Add origtype parameter. Change all callers.
7088 (output_init_element): Likewise.
7089 (output_pending_init_elements): Pass origtype from init_node to
7090 output_init_element.
f28a61ab 7091 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
7092 output_init_element.
7093 (c_finish_return): Add origtype parameter. Change all callers.
7094 * c-common.c (sync_resolve_size): Change params to VEC *. Change
7095 caller.
7096 (sync_resolve_params): Likewise.
47f402d1 7097 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 7098 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 7099 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
7100 * c-decl.c (finish_decl): Add origtype parameter. Change all
7101 callers. Call build_function_call_vec rather than
7102 build_function_call for cleanup.
7103 * c-tree.h: Update declarations.
7104 * c-common.h: Update declarations.
7105 * stub-objc.c (objc_rewrite_function_call): Change parameter from
7106 params to first_param.
7107 * target.h (struct gcc_target): Change resolve_overloaded_builtin
7108 params parameter from tree to void *.
7109 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7110 Change arglist parameter to have type void *, and to be a pointer
7111 to a VEC.
7112 * config/rs6000/rs6000-protos.h
7113 (altivec_resolve_overloaded_builtin): Update declaration.
7114 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
7115 fnargs parameter to have type void *, and to be a pointer to a
7116 VEC. Call build_function_call_vec instead of
7117 build_function_call.
47f402d1 7118 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 7119
6ff078d4 71202009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 7121 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
7122 H.J. Lu <hongjiu.lu@intel.com>
7123
7124 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
7125
7126 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
7127 (IX86_LEA_PRIORITY): Likewise.
7128 (distance_non_agu_define): New function.
7129 (distance_agu_use): Likewise.
7130 (ix86_lea_for_add_ok): Likewise.
7131 (ix86_dep_by_shift_count): Likewise.
7132
7133 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
7134 should split for LEA.
7135
7136 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
7137 function.
7138 (ix86_dep_by_shift_count): Likewise.
7139
87a5b4cc
RG
71402009-04-20 Richard Guenther <rguenther@suse.de>
7141
7142 * expr.c (handled_component_p): Move ...
7143 * tree.h (handled_component_p): ... here.
7144 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
7145 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
7146 and REALPART_EXPR to be in one group.
7147
438c239d
RG
71482009-04-20 Richard Guenther <rguenther@suse.de>
7149
7150 * basic-block.h (get_all_dominated_blocks): Declare.
7151 * dominance.c (get_all_dominated_blocks): New function.
7152 * tree-cfg.c (get_all_dominated_blocks): Remove.
7153 (remove_edge_and_dominated_blocks): Adjust.
7154 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
7155 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
7156 instead of recursing.
7157
fed5ae11
DK
71582009-04-20 Doug Kwan <dougkwan@google.com>
7159
7160 * cgraph.h (cgraph_node_ptr): New type for vector functions.
7161 (struct cgraph_node_set_def): New type.
7162 (cgraph_node_set) New type. Also declare vector functions.
7163 (struct cgraph_node_set_element_def): New type.
7164 (cgraph_node_set_element): Ditto.
7165 (cgraph_node_set_iterator): New iterator type.
7166 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
7167 cgraph_node_set_remove, dump_cgraph_node_set,
7168 debug_cgraph_node_set): New prototypes.
7169 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
7170 cgraph_node_set_size): New inlines.
7171 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
7172 including cgraph.h.
7173 (struct ipa_opt_pass): Add struct cgraph_node_set_def
7174 argument to function 'write_summary'.
7175 * ipa.c: Include ggc.h.
7176 (hash_cgraph_node_set_element,
7177 eq_cgraph_node_set_element, cgraph_node_set_new,
7178 cgraph_node_set_add, cgraph_node_set_remove,
7179 cgraph_node_set_find, dump_cgraph_node_set,
7180 debug_cgraph_node_set): New functions.
7181 * Makefile.in (ipa.o): Add dependency on GGC_H.
7182
c4551b28
IR
71832009-04-20 Ira Rosen <irar@il.ibm.com>
7184
7185 PR tree-optimization/39675
2ba9daa7 7186 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
7187 check of the return code of vect_schedule_slp. Check that
7188 stmt_vec_info still exists for the statement, before checking its
7189 vectorization type.
c4551b28 7190
21a495fb
MM
71912009-04-20 Michael Matz <matz@suse.de>
7192
7193 * Makefile.in (generated_files): Take out $(simple_generated_c).
7194
8e208874
DK
71952009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
7196
7197 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
7198 (UINTPTR_TYPE): Likewise.
7199
a45e580b
JM
72002009-04-19 Joseph Myers <joseph@codesourcery.com>
7201
7202 PR c/37481
7203 * c-typeck.c (digest_init): Check for initializing an array with a
7204 string literal.
7205
20845d35
JM
72062009-04-19 Joseph Myers <joseph@codesourcery.com>
7207
7208 PR c/19771
7209 * c-semantics.c (pop_stmt_list): Propagate
7210 STATEMENT_LIST_HAS_LABEL to parent statement list.
7211
28143fdd
AN
72122009-04-19 Adam Nemet <anemet@caviumnetworks.com>
7213
7214 * config/mips/mips.h (mips_tune_attr): New macro.
7215 * config/mips/mips.md (cpu): Use it.
7216
da377db9
JM
72172009-04-19 Joseph Myers <joseph@codesourcery.com>
7218
7219 PR c/38243
7220 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
7221 declaring a tag.
7222
3baf459d
DN
72232009-04-19 Diego Novillo <dnovillo@google.com>
7224
7225 * toplev.c (compile_file): Move call to coverage_finish ...
7226 * cgraphunit.c (ipa_passes): ... here.
7227 Call cgraph_process_new_functions.
7228 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
7229 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
7230
b6fa5b01
JH
72312009-04-19 Jan Hubicka <jh@suse.cz>
7232
47f402d1
UB
7233 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
7234 cfun.
b6fa5b01
JH
7235 (dump_cgraph_node): Dump can throw external flag.
7236 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
7237
ca409efd
MLI
72382009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
7239
7240 PR c/32061
7241 PR c++/36954
7242 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
7243 * common.opt (Wlogical-op): Move from here...
7244 * c.opt (Wlogical-op): ... to here.
7245 * c-typeck.c (parser_build_binary_op): Update call to
7246 warn_logical_operator.
7247 * c-opts.c (c_common_post_options): Enable warn_logical_op with
7248 extra_warnings.
7249 * c-common.c (warn_logical_op): Update.
7250 * c-common.h (warn_logical_op): Update declaration.
7251
9db4cdd3
EB
72522009-04-19 Eric Botcazou <ebotcazou@adacore.com>
7253
7254 * tree.c (protected_set_expr_location): Fix formatting.
7255
f37acdf9
JM
72562009-04-18 Joseph Myers <joseph@codesourcery.com>
7257
7258 PR c/27676
7259 * c-typeck.c (readonly_warning): new.
7260 (build_unary_op, build_modify_expr): Use readonly_warning for
7261 storing into something readonly but not const-qualified.
7262
2b4b7036
JM
72632009-04-18 Joseph Myers <joseph@codesourcery.com>
7264
7265 PR c/22367
7266 * c-typeck.c (build_unary_op): Check for taking address of
7267 expression of type void.
7268
3ce62965
JM
72692009-04-18 Joseph Myers <joseph@codesourcery.com>
7270
7271 PR c/35210
7272 * c-typeck.c (build_function_call): Check for calling a function
7273 with qualified void return types. Call require_complete_type when
7274 generating a trap.
7275
2505c5ed
JH
72762009-04-18 Jan Hubicka <jh@suse.cz>
7277
7278 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
7279 Set nothrow flag.
7280 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
7281 can_throw_external flag.
7282 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
7283 * ipa-pure-const.c (ignore_edge): New function.
7284 (propagate): Compute order for NOTHROW computation; set NOTHROWs
7285 only over can_throw_external edges.
7286 (local_pure_const): Add nothrow flag.
7287 * ipa-utils.c (searchc): Add ignore_edge callback.
7288 (ipa_utils_reduced_inorder): Add ignore_edge callback.
7289 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
7290 (set_nothrow_function_flags): Update cgraph.
7291 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
7292
2586ba4b
RG
72932009-04-18 Richard Guenther <rguenther@suse.de>
7294
7295 PR middle-end/39804
7296 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
7297 (fold_stmt): ... this and ...
7298 (fold_stmt_inplace): ... this.
7299 (fold_stmt_1): Fold references in calls and asms.
7300 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
7301
1eefab17
KH
73022009-04-18 Kazu Hirata <kazu@codesourcery.com>
7303
7304 * tree-vrp.c (ssa_name_nonzero_p): Remove.
7305 * tree.h: Remove the prototype for ssa_name_nonzero_p.
7306
aa424b01
KH
73072009-04-18 Kazu Hirata <kazu@codesourcery.com>
7308
7309 * tree.c (function_args_count): Remove.
7310 * tree.h: Remove the prototype for function_args_count.
7311
613a896b
KH
73122009-04-18 Kazu Hirata <kazu@codesourcery.com>
7313
7314 * tree-iterator.c (expr_only): Remove.
7315 * tree.h: Remove the prototype for expr_only.
7316
579e694c
KH
73172009-04-18 Kazu Hirata <kazu@codesourcery.com>
7318
7319 * reginfo.c (cannot_change_mode_set_regs): Remove.
7320 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
7321
ee7e3ad3
AS
73222009-04-08 Anatoly Sokolov <aesok@post.ru>
7323
7324 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
7325 whether operands 0 and 1 overlaps.
7326
92ef7fb1
MLI
73272009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
7328
7329 PR middle-end/36902
7330 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
7331 pointer. Use warning_at instead of warning.
7332 (search_for_addr_array): Likewise.
7333 (check_array_bounds): Likewise.
7334 (check_all_array_refs): Check that the incoming edge is not in the
7335 list of edges to be removed.
7336 (check_all_array_refs): Avoid the temporal pointer.
7337 (vrp_visit_cond_stmt): Fix typo.
7338 (simplify_switch_using_ranges): Handle the case where the switch
7339 index is an integer constant.
7340
0e097268
AN
73412009-04-18 Adam Nemet <anemet@caviumnetworks.com>
7342
7343 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
7344
c782f1dd
KH
73452009-04-18 Kazu Hirata <kazu@codesourcery.com>
7346
7347 * doc/extend.texi, doc/invoke.texi: Fix typos.
7348
668fb0e8
CC
73492009-04-17 Cary Coutant <ccoutant@google.com>
7350
7351 * tree-flow-inline.h (get_lineno): Fix inverted test.
7352
4d4014c1
DN
73532009-04-17 Diego Novillo <dnovillo@google.com>
7354
7355 * tree-ssa-pre.c (create_expression_by_pieces): Remove
7356 assertion for AVAIL_OUT.
7357
2984e1b6
MF
73582009-04-17 Mike Frysinger <vapier@gentoo.org>
7359
7360 PR target/38627
7361 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
7362 * config/sh/linux-atomic.asm: Likewise.
7363
9994a182
DN
73642009-04-17 Diego Novillo <dnovillo@google.com>
7365
7366 * except.c (debug_eh_tree): New.
7367 (struct eh_region, struct eh_status): Move ...
7368 * except.h: ... here.
7369 (add_type_for_runtime): Declare extern.
7370 (lookup_type_for_runtime): Likewise.
7371 (debug_eh_tree): Declare.
7372 * Makefile.in (GTFILES): List except.h before except.c
7373
07485407
DN
73742009-04-17 Diego Novillo <dnovillo@google.com>
7375
47f402d1 7376 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
7377 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7378 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
7379 (find_vars_r): ... here.
7380 * tree-flow.h (find_referenced_vars_in): Declare.
7381 * tree-ssa-pre.c (create_expression_by_pieces): Assert
7382 that AVAIL_OUT exists for BLOCK.
7383 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
7384 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
7385 (tree-parloops.o): Likewise.
7386
4e53d196
SB
73872009-04-17 Simon Baldwin <simonb@google.com>
7388
7389 * toplev.c (default_tree_printer): Add handling for %E format.
7390
413d3aa8
DN
73912009-04-17 Diego Novillo <dnovillo@google.com>
7392
47f402d1
UB
7393 * tree-pretty-print.c (dump_generic_node): Add break after
7394 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
7395 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
7396 FUNCTION_TYPE together. Call print_struct_decl when printing
7397 structures and TDF_SLIM is not given.
413d3aa8
DN
7398 (print_struct_decl): Fix logic for detecting recursion.
7399
5a691e98
RAE
74002009-04-17 Rafael Avila de Espindola <espindola@google.com>
7401
7402 PR 31567
7403 * gcc.c (create_at_file): New.
7404 (compile_input_file_p): New.
7405 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
7406 * main.c (main): Update call to toplev_main.
7407 * toplev.c (toplev_main): Change signature. Call expandargv.
7408 * toplev.h (toplev_main): Change signature.
7409
9eacf7a6
EB
74102009-04-17 Eric Botcazou <ebotcazou@adacore.com>
7411
7412 * dwarf2out.c (field_byte_offset): Use the type size as the field size
7413 if the latter is not constant.
7414
58298177
DE
74152009-04-17 David Edelsohn <edelsohn@gnu.org>
7416
7417 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
7418
5b4c43d7
EB
74192009-04-17 Eric Botcazou <ebotcazou@adacore.com>
7420
7421 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
7422 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
7423
b51605c4
RG
74242009-04-17 Richard Guenther <rguenther@suse.de>
7425
7426 * tree-ssa-structalias.c (get_constraint_for_component_ref):
7427 Handle component references view-converting an invariant address.
7428
9e3be889
AN
74292009-04-17 Adam Nemet <anemet@caviumnetworks.com>
7430
7431 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
7432 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
7433 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
7434 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
7435 Use @deftypevr rather than @deftypevar.
7436
7c3e9dc3
RG
74372009-04-17 Richard Guenther <rguenther@suse.de>
7438
47f402d1 7439 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
7440 (get_prop_source_stmt): Likewise.
7441 (can_propagate_from): Likewise.
7442
aca600aa
AS
74432009-04-17 Andrew Stubbs <ams@codesourcery.com>
7444
7445 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
7446 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
7447 (--with-multilib-list): Add default value.
7448 * configure: Regenerate.
7449 * Makefile.in (TM_ENDIAN_CONFIG): Define.
7450 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
7451 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
7452 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
7453 Don't add default cpu to multilib list unnecessarily, but do enable
7454 the relevant compiler option..
7455 Add support for --with-multilib-list=<blank> and
7456 --with-multilib-list=!<somelib> to supress unwanted multilibs.
7457 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
7458 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
7459 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
7460 TM_MULTILIB_CONFIG.
7461 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
7462 (MULTILIB_OSDIRNAMES): New variable.
7463 * config/sh/t-1e: Delete file.
7464 * config/sh/t-mlib-sh1: Delete file.
7465 * config/sh/t-mlib-sh2: Delete file.
7466 * config/sh/t-mlib-sh2a: Delete file.
7467 * config/sh/t-mlib-sh2a-nofpu: Delete file.
7468 * config/sh/t-mlib-sh2a-single: Delete file.
7469 * config/sh/t-mlib-sh2a-single-only: Delete file.
7470 * config/sh/t-mlib-sh2e: Delete file.
7471 * config/sh/t-mlib-sh3e: Delete file.
7472 * config/sh/t-mlib-sh4: Delete file.
7473 * config/sh/t-mlib-sh4-nofpu: Delete file.
7474 * config/sh/t-mlib-sh4-single: Delete file.
7475 * config/sh/t-mlib-sh4-single-only: Delete file.
7476 * config/sh/t-mlib-sh4a: Delete file.
7477 * config/sh/t-mlib-sh4a-nofpu: Delete file.
7478 * config/sh/t-mlib-sh4a-single: Delete file.
7479 * config/sh/t-mlib-sh4a-single-only: Delete file.
7480 * config/sh/t-mlib-sh4al: Delete file.
7481 * config/sh/t-mlib-sh5-32media: Delete file.
7482 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
7483 * config/sh/t-mlib-sh5-64media: Delete file.
7484 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
7485 * config/sh/t-mlib-sh5-compact: Delete file.
7486 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
7487 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
7488 * doc/install.texi (Options specification): Add
7489 --with-multilib-list and --with-endian.
7490
cf8aba7f
RAE
74912009-04-17 Rafael Avila de Espindola <espindola@google.com>
7492
7493 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
7494 REVISION_c.
7495 (OBJS-common): Add plugin-version.o.
7496 (plugin-version.o): New.
7497 * gcc-plugin.h (plugin_gcc_version): New.
7498 (plugin_default_version_check): New.
7499 (plugin_init_func, plugin_init): Add version argument.
7500 * plugin-version.c: New.
7501 * plugin.c (str_plugin_gcc_version_name): New.
7502 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
7503 pass it to the init function.
7504 (plugin_default_version_check): New.
7505
61e20b90
RG
75062009-04-17 Richard Guenther <rguenther@suse.de>
7507
7508 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
7509 for decl-vs-decl disambiguation.
7510
90c6fd8a
AK
75112009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
7512
7513 * config/s390/s390.h (s390_tune_attr): New macro definition.
7514 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
7515
9fe9fe04
RG
75162009-04-17 Richard Guenther <rguenther@suse.de>
7517
7518 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
7519 (fold_stmt_r): Likewise.
7520 (maybe_fold_reference): New function.
7521 (fold_gimple_assign): Handle cases fold_stmt_r did.
7522 (fold_stmt): Do not use fold_stmt_r.
7523 (fold_stmt_inplace): Likewise.
7524
7e673273
RG
75252009-04-17 Richard Guenther <rguenther@suse.de>
7526
7527 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
7528 (record_equivalences_from_stmt): Remove useless checks and
7529 simplifications.
7530 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
7531 the type is already suitable.
7532
fabf2749
PB
75332009-04-17 Paolo Bonzini <bonzini@gnu.org>
7534
7535 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
7536
68f7b061
UB
75372009-04-17 Uros Bizjak <ubizjak@gmail.com>
7538
7539 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
7540 (CMPtype): Define as __gcc_CMPtype.
7541
532bfb0a
AJ
75422009-04-17 Aurelien Jarno <aurelien@aurel32.net>
7543
7544 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
7545 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
7546
e3ac77ff
RG
75472009-04-17 Richard Guenther <rguenther@suse.de>
7548
7549 PR tree-optimization/39746
7550 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
7551 special-casing for builtins and static variable use/def.
7552 (call_may_clobber_ref_p_1): Likewise.
7553
7072a650
ILT
75542009-04-16 Ian Lance Taylor <iant@google.com>
7555
7556 * df.h: Include "timevar.h".
7557 (struct df_problem): Change tv_id field to timevar_id_t.
7558 * tree-pass.h: Include "timevar.h".
7559 (struct opt_pass): Change tv_id field to timevar_id_t.
7560 * timevar.h (timevar_id_t): Define TV_NONE.
7561 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
7562 TV_NONE rather than tv_id != 0.
7563 (execute_one_pass): Likewise.
7564 * Makefile.in (DF_H): Add $(TIMEVAR_H).
7565 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
7566 dependencies to $(TREE_PASS_H).
7567 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
7568 to TV_NONE.
7569 (pass_branch_target_load_optimize2): Likewise.
7570 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
7571 (pass_outof_cfg_layout_mode): Likewise.
7572 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
7573 (pass_rebuild_cgraph_edges): Likewise.
7574 (pass_remove_cgraph_callee_edges): Likewise.
7575 * df-core.c (pass_df_initialize_opt): Likewise.
7576 (pass_df_initialize_no_opt): Likewise.
7577 (pass_df_finish): Likewise.
7578 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
7579 * except.c (pass_set_nothrow_function_flags): Likewise.
7580 (pass_convert_to_eh_region_ranges): Likewise.
7581 * final.c (pass_compute_alignments): Likewise.
7582 * function.c (pass_instantiate_virtual_regs): Likewise.
7583 (pass_init_function): Likewise.
7584 (pass_leaf_regs): Likewise.
7585 (pass_match_asm_constraints): Likewise.
7586 * gimple-low.c (pass_lower_cf): Likewise.
7587 (pass_mark_used_blocks): Likewise.
7588 * init-regs.c (pass_initialize_regs): Likewise.
7589 * integrate.c (pass_initial_value_sets): Likewise.
7590 * ira.c (pass_ira): Likewise.
7591 * jump.c (pass_cleanup_barriers): Likewise.
7592 * omp-low.c (pass_expand_omp): Likewise.
7593 (pass_lower_omp): Likewise.
7594 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
7595 * recog.c (pass_split_all_insns): Likewise.
7596 (pass_split_after_reload): Likewise.
7597 (pass_split_before_regstack): Likewise.
7598 (pass_split_before_sched2): Likewise.
7599 (pass_split_for_shorten_branches): Likewise.
7600 * reginfo.c (pass_reginfo_init): Likewise.
7601 (pass_subregs_of_mode_init): Likewise.
7602 (pass_subregs_of_mode_finish): Likewise.
7603 * passes.c (pass_postreload): Likewise.
7604 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
7605 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
7606 (pass_warn_function_return): Likewise.
7607 (pass_warn_function_noreturn): Likewise.
7608 * tree-complex.c (pass_lower_complex): Likewise.
7609 (pass_lower_complex_O0): Likewise.
7610 * tree-if-conv.c (pass_if_conversion): Likewise.
7611 * tree-into-ssa.c (pass_build_ssa): Likewise.
7612 * tree-mudflap.c (pass_mudflap_1): Likewise.
7613 (pass_mudflap_2): Likewise.
7614 * tree-nomudflap.c (pass_mudflap_1): Likewise.
7615 (pass_mudflap_2): Likewise.
7616 * tree-nrv.c (pass_return_slot): Likewise.
7617 * tree-object-size.c (pass_object_sizes): Likewise.
7618 * tree-optimize.c (pass_all_optimizations): Likewise.
7619 (pass_early_local_passes): Likewise.
7620 (pass_all_early_optimizations): Likewise.
7621 (pass_cleanup_cfg): Likewise.
7622 (pass_cleanup_cfg_post_optimizing): Likewise.
7623 (pass_free_datastructures): Likewise.
7624 (pass_free_cfg_annotations): Likewise.
7625 (pass_fixup_cfg): Likewise.
7626 (pass_init_datastructures): Likewise.
7627 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
7628 (pass_late_warn_uninitialized): Likewise.
7629 (pass_update_address_taken): Likewise.
7630 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
7631 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
7632 (pass_cse_sincos): Likewise.
7633 (pass_convert_to_rsqrt): Likewise.
7634 * tree-ssa-structalias.c (pass_build_alias): Likewise.
7635 * tree-stdarg.c (pass_stdarg): Likewise.
7636 * tree-tailcall.c (pass_tail_recursion): Likewise.
7637 (pass_tail_calls): Likewise.
7638 * tree-vect-generic.c (pass_lower_vector): Likewise.
7639 (pass_lower_vector_ssa): Likewise.
7640 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
7641
0051ef59
JM
76422009-04-16 Joseph Myers <joseph@codesourcery.com>
7643
7644 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
7645 XLR entry.
7646 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
7647 Handle -march=xlr.
7648 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
7649 logical and signext.
7650
b3f8558a
KK
76512009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
7652
7653 PR target/39767
7654 * config/sh/predicates.md (arith_operand): Check if the operand
7655 of TRUNCATE is a REG.
7656
f57597d9
KH
76572009-04-16 Kazu Hirata <kazu@codesourcery.com>
7658
7659 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
7660 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
7661
b172d063
KH
76622009-04-16 Kazu Hirata <kazu@codesourcery.com>
7663
7664 * tree-iterator.c (tsi_split_statement_list_after,
7665 tsi_split_statement_list_before): Remove.
7666 * tree-iterator.h: Remove the prototypes for
532bfb0a 7667 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 7668
78fe4f1f
KH
76692009-04-16 Kazu Hirata <kazu@codesourcery.com>
7670
7671 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
7672 * tree-ssa-propagate.h: Remove the prototype for
7673 stmt_makes_single_load.
7674
43dd3201
KH
76752009-04-16 Kazu Hirata <kazu@codesourcery.com>
7676
7677 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
7678 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
7679
4252a4aa
KH
76802009-04-16 Kazu Hirata <kazu@codesourcery.com>
7681
7682 * tree-iterator.c (EXPR_LAST_BODY): Remove.
7683
bfb69968
KH
76842009-04-16 Kazu Hirata <kazu@codesourcery.com>
7685
7686 * except.c (eh_region_outer_p): Remove.
7687 * except.h: Remove the prototype for eh_region_outer_p.
7688
c7db7fa5
KH
76892009-04-16 Kazu Hirata <kazu@codesourcery.com>
7690
7691 * function.c (current_function_assembler_name): Remove.
7692 * function.h: Remove the prototype for
7693 current_function_assembler_name.
7694
efc0b2bd
ILT
76952009-04-16 Ian Lance Taylor <iant@google.com>
7696
532bfb0a 7697 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
7698 (add_reg_note): Call alloc_reg_note.
7699 * rtl.h (alloc_reg_note): Declare.
7700 * combine.c (try_combine): Use alloc_reg_note.
7701 (recog_for_combine, move_deaths): Likewise.
7702 (distribute_notes): Use alloc_reg_note and add_reg_note.
7703 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
7704 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
7705 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
7706
6080348f
VM
77072009-04-16 Vladimir Makarov <vmakarov@redhat.com>
7708
7709 PR rtl-optimization/39762
7710 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
7711 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 7712 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 7713
6080348f
VM
7714 * ira-conflicts.c (process_regs_for_copy): Use function
7715 ira_get_register_move_cost instead of global
7716 ira_register_move_cost.
7717
7718 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
7719 color_pass, move_spill_restore, update_curr_costs): Ditto.
7720
7721 * ira-lives.c (process_single_reg_class_operands): Ditto.
7722
7723 * ira-emit.c (emit_move_list): Ditto.
7724
7725 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
7726 (record_reg_classes): Ditto. Use functions
7727 ira_get_register_move_cost and ira_get_may_move_cost instead of
7728 global vars ira_register_move_cost, ira_may_move_out_cost and
7729 ira_may_move_in_cost.
7730 (record_address_regs): Don't call ira_init_register_move_cost.
7731 Use function ira_get_may_move_cost instead of global
7732 ira_may_move_in_cost.
7733 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 7734 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 7735 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 7736
646bea10
RG
77372009-04-16 Richard Guenther <rguenther@suse.de>
7738
7739 * tree-cfg.c (verify_gimple_assign_binary):
7740 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
7741 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
7742 (create_general_new_stmt): Note that this function is broken.
7743
02e819ff
RAE
77442009-04-16 Rafael Avila de Espindola <espindola@google.com>
7745
7746 * common.opt (fhelp): Add Var(help_flag).
7747 * gcc-plugin.h (plugin_info): Add help.
7748 * plugin.c (plugin_name_args): Add help.
7749 (register_plugin_info): Set plugin->help.
7750 (print_help_one_plugin): New.
7751 (print_plugins_help): New.
7752 * plugin.h (print_plugins_help): New.
7753 * toplev.c (toplev_main): Call print_plugins_help if needed.
7754
ccacdf06
RG
77552009-04-16 Richard Guenther <rguenther@suse.de>
7756
7757 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
7758 (gimple_ior_addresses_taken_1): New function.
7759 (gimple_ior_addresses_taken): Likewise.
7760 * gimple.h (struct gimple_statement_with_ops_base): Remove
7761 addresses_taken member.
7762 (gimple_ior_addresses_taken): Declare.
7763 (gimple_addresses_taken, gimple_addresses_taken_ptr,
7764 gimple_set_addresses_taken): Remove.
7765 * ipa-reference.c (mark_address): New function.
7766 (scan_stmt_for_static_refs): Use it for marking addresses taken.
7767 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
7768 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
7769 (gimple_add_to_addresses_taken): Remove.
7770 (get_tmr_operands): Call mark_address_taken.
7771 (get_asm_expr_operands): Likewise.
7772 (get_expr_operands): Likewise.
7773 (build_ssa_operands): Do not clear the addresses_taken bitmap.
7774 (free_stmt_operands): Do not free it.
7775 * tree-ssa.c (delete_tree_ssa): Likewise.
7776 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7777
346ef3fa
RG
77782009-04-16 Richard Guenther <rguenther@suse.de>
7779
7780 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7781 (walk_stmt_load_store_ops): Likewise.
7782 * gimple.c (get_base_loadstore): New function.
7783 (walk_stmt_load_store_addr_ops): Likewise.
7784 (walk_stmt_load_store_ops): Likewise.
7785 * ipa-pure-const.c (check_op): Simplify.
7786 (check_load, check_store): New functions.
7787 (check_stmt): Use walk_stmt_load_store_ops.
7788 * ipa-reference.c (mark_load): Adjust signature.
7789 (mark_store): Likewise.
7790 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7791
44e9f006
RAE
77922009-04-16 Rafael Avila de Espindola <espindola@google.com>
7793
7794 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7795 (plugin_info): New.
7796 * opts.c (common_handle_option): Don't call print_version.
7797 * plugin.c (plugin_name_args): Add version.
7798 (register_plugin_info): New.
7799 (register_callback): Handle PLUGIN_INFO.
7800 (try_init_one_plugin): New.
7801 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7802 if failed to init.
7803 (finalize_one_plugin): New.
7804 (finalize_plugins): New.
7805 (print_one_plugin): New.
7806 (print_plugins_versions): New.
7807 * plugin.h (print_plugins_versions): New.
7808 (finalize_plugins): New.
7809 * toplev.c (compile_file): Don't call initialize_plugins.
7810 (print_version): Call print_plugins_versions.
7811 (toplev_main): Call initialize_plugins. Print version if needed.
7812 Call finalize_plugins.
7813
41fd0f9b
RAE
78142009-04-16 Rafael Avila de Espindola <espindola@google.com>
7815
7816 * common.opt (fversion): New.
7817 * gcc.c (print_version): New.
7818 (process_command): Don't print the version. Just set print_version.
7819 (main): Print version. Call subprocesses if print_version and
7820 verbose_flag are set.
7821 * opts.c (common_handle_option): Handle OPT_fversion.
7822
550918ca 78232009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 7824 Ira Rosen <irar@il.ibm.com>
550918ca
RG
7825
7826 PR tree-optimization/39698
7827 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7828 type of the reduction variable. Only generate the def if
7829 it is needed.
7830
7831 * omp-low.c (expand_omp_for_generic): When converting to a pointer
7832 make sure to first convert to an integer of the same precision.
7833 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7834 the type of the evolution correctly in computing the new
7835 induction variable base.
7836
54634841
RG
78372009-04-16 Richard Guenther <rguenther@suse.de>
7838
7839 PR middle-end/39625
7840 * tree-cfg.c (make_blocks): Split statements with to-be
7841 abnormal SSA names on the lhs.
7842
b6fc2cdb
PB
78432009-04-16 Paolo Bonzini <bonzini@gnu.org>
7844
7845 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7846 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7847 * c-typeck.c (really_start_incremental_init): Likewise.
7848 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7849 (TARGET_INITIALIZER): Remove it.
7850 * target.h (struct target): Remove vector_opaque_p.
7851 * tree.c (build_opaque_vector_type): New.
7852 * tree.h (TYPE_VECTOR_OPAQUE): New.
7853 (build_opaque_vector_type): Declare.
7854 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7855 * config/rs6000/rs6000.c (build_opaque_vector_type,
7856 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7857 (rs6000_init_builtins): Use build_opaque_vector_type for
7858 opaque_V4SI_type_node.
7859
a417cdd9
CM
78602009-04-15 Catherine Moore <clm@codesourcery.com>
7861
532bfb0a
AJ
7862 * debug.h (set_name): Declare.
7863 * dwarf2out.c (dwarf2out_set_name): Declare.
7864 (dwarf2_debug_hooks): Add set_name.
7865 (find_AT_string): New.
7866 (add_AT_string): Call find_AT_string.
7867 (dwarf2out_set_name): New.
7868 * cp/decl.c (grokdeclarator): Call set_name.
7869 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7870 * debug.c (do_nothing_debug_hooks): Likewise.
7871 * dbxout.c (dbx_debug_hooks): Likewise.
7872 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 7873
60839f5d 78742009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 7875
532bfb0a
AJ
7876 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7877 reg for single-precision FPU.
7878 * config/rs6000/rs6000.md (movsi_internal1): Only for
7879 !TARGET_SINGLE_FPU.
7880 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
7881 single-precision FP regs.
7882
ada39f0b
RG
78832009-04-15 Richard Guenther <rguenther@suse.de>
7884
7885 * omp-low.c (lower_rec_input_clauses): Build correct address
7886 expressions.
7887 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 7888 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
7889 (generate_memset_zero): Fix types.
7890 * tree-profile.c (prepare_instrumented_value): Correctly
7891 widen a pointer.
7892
6866c6e8
ILT
78932009-04-15 Ian Lance Taylor <iant@google.com>
7894
7895 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
7896 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7897 for -Wall and for -Wc++-compat.
7898 (c_common_post_options): For C++, set warn_enum_compare if not
7899 already set.
7900 * c-tree.h (struct c_expr): Add field original_type.
7901 (build_external_ref): Update declaration.
7902 * c-parser.c (c_parser_braced_init): Set original_type.
7903 (c_parser_initelt): Likewise.
7904 (c_parser_expr_no_commas): Likewise.
7905 (c_parser_conditional_expression): Likewise.
7906 (c_parser_cast_expression): Likewise.
7907 (c_parser_unary_expression): Likewise. Pull setting of
7908 original_code to top of function.
7909 (c_parser_sizeof_expression): Set original_type.
7910 (c_parser_alignof_expression): Likewise.
7911 (c_parser_postfix_expression): Likewise. Pull setting of
7912 original_code to top of function.
532bfb0a 7913 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
7914 (c_parser_postfix_expression_after_primary): Likewise.
7915 (c_parser_expression): Likewise.
7916 * c-typeck.c (build_external_ref): Add type parameter. Change all
7917 callers.
7918 (c_expr_sizeof_expr): Set original_type field.
7919 (parser_build_unary_op): Likewise.
7920 (parser_build_binary_op): Likewise. Optionally warn about
7921 comparisons of enums of different types.
7922 (digest_init): Set original_type field.
7923 (really_start_incremental_init): Likewise.
7924 (push_init_level, pop_init_level): Likewise.
7925 * doc/invoke.texi (Warning Options): -Wenum-compare now
7926 supported in C.
7927
f116fecf
RG
79282009-04-15 Richard Guenther <rguenther@suse.de>
7929
7930 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7931 out a necessary conversion.
7932 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7933 names we didn't value number.
7934 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7935
25e20805
RG
79362009-04-15 Richard Guenther <rguenther@suse.de>
7937
7938 PR tree-optimization/39764
7939 * tree-ssa-ccp.c (get_value): Canonicalize value with
7940 canonicalize_float_value.
7941
90cc3676
JH
79422009-04-15 Jan Hubicka <jh@suse.cz>
7943
7944 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7945 Wrong version of patch.
7946
6d14c006
JH
79472009-04-15 Jan Hubicka <jh@suse.cz>
7948
7949 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7950
5afaa917
NS
79512009-04-15 Nathan Sidwell <nathan@codesourcery.com>
7952
7953 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7954 our distinct integral and vector types.
7955
3b482fca
RAE
79562009-04-15 Rafael Avila de Espindola <espindola@google.com>
7957
7958 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7959 * init.c (build_vtbl_address): Remove call to assemble_external.
7960
6cd1d2e2
DJ
79612009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
7962
7963 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
7964 output for other floating point modes.
7965
dab71827
DN
79662009-04-14 Diego Novillo <dnovillo@google.com>
7967
7968 * diagnostic.c (diagnostic_report_diagnostic): Do not
7969 warn about loaded plugins for DK_ERROR and DK_WARNING.
7970 * c-decl.c (declspecs_add_type): Move call to
7971 invoke_plugin_callbacks ...
7972 * c-parser.c (c_parser_declspecs): ... here.
7973 * plugin.c (dump_active_plugins): Tidy output.
7974
68a607d8
DN
79752009-04-14 Diego Novillo <dnovillo@google.com>
7976 Le-Chun Wu <lcwu@google.com>
7977
7978 * configure.ac: Add --enable-plugin support.
7979 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
7980 * Makefile.in (PLUGIN_H): Define.
7981 Export ENABLE_PLUGIN and GMPINC to site.exp.
7982 Add PLUGINLIBS to link command.
7983 Add/modify dependencies for plugin.o and files including plugin.h.
7984 (plugin.o): New.
7985 * config.in: Regenerate.
2ba9daa7 7986
68a607d8
DN
7987 * opts.c (common_handle_option): Handle OPT_fplugin_ and
7988 OPT_fplugin_arg_.
7989
79902009-04-14 Le-Chun Wu <lcwu@google.com>
7991
7992 * tree-pass.h (register_one_dump_file): Add a prototype for
7993 register_one_dump_file.
7994 * toplev.c (compile_file): Call initialize_plugins.
7995 (do_compile): Call invoke_plugin_callbacks.
7996 (toplev_main): Call invoke_plugin_callbacks.
7997 * common.opt: Add -fplugin= and -fplugin-arg-.
7998 * gcc-plugin.h: New public header file for plugins to include.
7999 * plugin.c: New source file.
8000 * plugin.h: New internal header file.
8001 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 8002
68a607d8
DN
8003 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
8004
80052009-04-14 Diego Novillo <dnovillo@google.com>
8006
8007 * doc/plugins.texi: New.
8008 * doc/gccint.texi: Add reference to Plugins chapter.
8009 * doc/invoke.texi: Document -fplugin and -fplugin-arg
8010 * diagnostic.c (diagnostic_report_diagnostic): Warn about
8011 loaded plugins, if any.
8012 * timevar.def (TV_PLUGIN_INIT): Define.
8013 (TV_PLUGIN_RUN): Define.
8014 * plugin.c: Include timevar.h
8015 (plugins_active_p): New.
8016 (dump_active_plugins): New.
8017 (debug_active_plugins): New.
8018
50617257
JM
80192009-04-14 Joseph Myers <joseph@codesourcery.com>
8020
8021 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
8022 library paths.
8023 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
8024
b32f6fff
KH
80252009-04-14 Kazu Hirata <kazu@codesourcery.com>
8026
8027 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
8028 the same as a minus without a shift.
8029
85d04fa2
NC
80302009-04-14 Nick Clifton <nickc@redhat.com>
8031
8032 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
8033 comparisons with small integers will always produce a short
8034 branch.
8035
e495a0c8
RAE
80362009-04-14 Rafael Avila de Espindola <espindola@google.com>
8037
8038 Merge:
e495a0c8
RAE
8039 2008-12-19 Diego Novillo <dnovillo@google.com>
8040
532bfb0a 8041 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 8042
ad41bd84 80432009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
8044
8045 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
8046 verification.
8047 (verify_gimple_assign_binary): Likewise. Handle shifts and
8048 rotates correctly.
8049 (verify_gimple_phi): Print the mismatched argument position.
8050 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8051 Fix types.
8052 (vect_update_init_of_dr): Likewise.
8053 * matrix-reorg.c (transform_access_sites): Do what the
8054 comment suggests.
8055 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
8056
60839f5d 80572009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
8058
8059 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
8060 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
8061 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 8062 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
8063 remove duplicate config
8064
b0e2d008
DR
80652009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8066
8067 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
8068 file_name:line_number type locator of the call site.
2ba9daa7 8069
1244a8b7
VM
80702009-04-13 Vladimir Makarov <vmakarov@redhat.com>
8071
8072 * genautomata.c: Put blank after comma.
8073 (automaton_decls): New.
8074 (struct unit_usage): Add comments to member next.
8075 (store_alt_unit_usage): Keep the list ordered.
8076 (unit_present_on_list_p, equal_alternatives_p): New.
8077 (check_regexp_units_distribution): Check units distribution
8078 correctness correctly.
8079 (main): Don't write automata if error is found. Return correct
8080 exit code.
2ba9daa7 8081
1244a8b7
VM
8082 * config/m68k/cf.md (cfv4_ds): Remove.
8083 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
8084 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
8085
8086 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
8087 power4-load-ext, power4-store, power4-store-update,
8088 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
8089 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
8090 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
8091 power4-sqrt, power4-isync): Modify reservation to make correct
8092 unit distribution to automata.
8093
8094 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
8095 power5-store-update, power5-two, power5-three, power5-lmul,
8096 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 8097
f7dd1864
AN
80982009-04-13 Adam Nemet <anemet@caviumnetworks.com>
8099
8100 * except.c (pass_set_nothrow_function_flags): Set name and add
8101 TODO_dump_func.
8102 (set_nothrow_function_flags): Mention in the dump file when
8103 changing a function to nothrow.
8104
59a1171f
OS
81052009-04-13 Ozkan Sezer <sezeroz@gmail.com>
8106
8107 PR/39066
8108 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
8109 instead of unsigned long.
8110
934c2060
RR
81112009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8112
f7dd1864
AN
8113 * config/arm/arm.c (return_used_this_function): Remove.
8114 (arm_output_function_prologue): Remove use of
934c2060 8115 return_used_this_function.
f7dd1864 8116 (output_return_instruction): Replace use of
934c2060
RR
8117 return_used_this_function
8118 by cfun->machine->return_used_this_function.
f7dd1864
AN
8119 (arm_output_epilogue): Likewise.
8120 (arm_output_function_epilogue): Likewise.
8121 (thumb_unexpanded_epilogue): Likewise.
8122 * config/arm/arm.h (struct machine_function):
934c2060 8123 New member return_used_this_function.
f7dd1864 8124
ae5cc016
MM
81252009-04-12 Mark Mitchell <mark@codesourcery.com>
8126
8127 * doc/install.texi: Correct description of default directory for
8128 --with-gxx-include-dir.
8129
a0ce68df 81302009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
8131
8132 * fold-const.c (build_range_check): Properly deal with enumeral and
8133 boolean base types.
8134
3906a4a1
SB
81352009-04-12 Steven Bosscher <steven@gcc.gnu.org>
8136
8137 * doc/invoke.texi (max_gcse_passes): Remove documentation.
8138 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
8139 * params.h (MAX_GCSE_PASSES): Remove.
8140 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
8141 in sequence. Remove ability to run multiple passes.
8142 (bypass_jumps): Report run as third CPROP pass.
8143
efaadb93
AN
81442009-04-12 Adam Nemet <anemet@caviumnetworks.com>
8145
8146 PR middle-end/39651
8147 * except.c (can_throw_external): Look at each insn in a SEQUENCE
8148 when deciding whether the whole SEQUENCE can throw.
8149
4c48007b
UB
81502009-04-12 Uros Bizjak <ubizjak@gmail.com>
8151
8152 PR target/39740
8153 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
8154 offseted label references.
8155
b4104018
JH
81562009-04-11 Jan Hubicka <jh@suse.cz>
8157
8158 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
8159
32848948
RG
81602009-04-11 Richard Guenther <rguenther@suse.de>
8161
8162 PR middle-end/39732
8163 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
8164 return variables as TREE_ADDRESSABLE.
8165
8810712e
RG
81662009-04-11 Richard Guenther <rguenther@suse.de>
8167
8168 PR tree-optimization/39713
8169 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
8170 reference trees have SSA_NAME operands.
8171
fa78c0c1
RG
81722009-04-11 Richard Guenther <rguenther@suse.de>
8173
8174 PR c/39712
8175 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
8176 address expressions.
8177
4d722130
DK
81782009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
8179
8180 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
8181 match changes in Cygwin 1.7
8182 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
8183 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
8184
567a90f5
PB
81852009-04-10 Paolo Bonzini <bonzini@gnu.org>
8186
8187 PR tree-optimization/39701
8188 * doc/invoke.texi (Optimization Options): Document change in
8189 meaning and initialization of -fdelete-null-pointer-checks.
8190
1ad2f450
L
81912009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8192
8193 PR middle-end/39701
8194 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
8195
8196 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
8197 here.
8198
8199 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
8200
1afc5373
CF
82012009-04-10 Chao-ying Fu <fu@mips.com>
8202
8203 * doc/tm.texi (Instruction Output): Document
8204 TARGET_ASM_FINAL_POSTSCAN_INSN.
8205 * target.h (final_postscan_insn): New field in asm_out.
8206 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8207 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
8208 * final.c (final_scan_insn): Call
8209 targetm.asm_out.final_postscan_insn after outputting
8210 an asm macro and a normal instruction.
8211
8212 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
8213 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
8214 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
8215 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
8216 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8217
4d35e75c
PB
82182009-04-10 Paolo Bonzini <bonzini@gnu.org>
8219
8220 PR middle-end/39701
1ad2f450
L
8221 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
8222 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 8223
62c49b83
L
82242009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8225
8226 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
8227
80558628
L
82282009-04-09 H.J. Lu <hongjiu.lu@intel.com>
8229
8230 PR target/39678
8231 * config/i386/i386.c (classify_argument): Handle SCmode with
8232 (bit_offset % 64) != 0.
8233
8c70d28b
SL
82342009-04-09 Sandra Loosemore <sandra@codesourcery.com>
8235
8236 * doc/invoke.texi (Optimize Options): Add cross-reference to
8237 -Q --help=optimizers examples.
8238
e1ff19bf
BE
82392009-04-10 Ben Elliston <bje@au.ibm.com>
8240
8241 PR target/36800
8242 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
8243 regalign for the reg == fpr and TDmode case.
8244
52daca75
DA
82452009-04-09 David Ayers <ayers@fsfe.org>
8246
8247 PR objc/29200
8248 * objc/objc-act.c (warn_with_method): Remove helper function.
8249 (check_duplicates): Call warning and inform directly.
8250 (really_start_method): Likewise.
8251
b45f0e58
PB
82522009-04-09 Paolo Bonzini <bonzini@gnu.org>
8253
8254 * expmed.c (expand_divmod): Always use a comparison for a division
8255 by a large unsigned integer.
8256
1ad2f450
L
8257 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
8258 for things others than variables or functions as nonzero.
b45f0e58 8259
748086b7
JJ
82602009-04-09 Nick Clifton <nickc@redhat.com>
8261
8262 * unwind-compat.c: Change copyright header to refer to version
8263 3 of the GNU General Public License with version 3.1 of the
8264 GCC Runtime Library Exception and to point readers at the
7a715bba 8265 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
8266 * config/alpha/crtfastmath.c: Likewise.
8267 * config/alpha/linux-unwind.h: Likewise.
8268 * config/alpha/qrnnd.asm: Likewise.
8269 * config/alpha/vms-crt0-64.c: Likewise.
8270 * config/alpha/vms-crt0.c: Likewise.
8271 * config/alpha/vms-dwarf2.asm: Likewise.
8272 * config/alpha/vms-dwarf2eh.asm: Likewise.
8273 * config/alpha/vms-psxcrt0-64.c: Likewise.
8274 * config/alpha/vms-psxcrt0.c: Likewise.
8275 * config/alpha/vms_tramp.asm: Likewise.
8276 * config/arc/initfini.c: Likewise.
8277 * config/arc/lib1funcs.asm: Likewise.
8278 * config/arm/bpabi-v6m.S: Likewise.
8279 * config/arm/bpabi.S: Likewise.
8280 * config/arm/bpabi.c: Likewise.
8281 * config/arm/crti.asm: Likewise.
8282 * config/arm/crtn.asm: Likewise.
8283 * config/arm/ieee754-df.S: Likewise.
8284 * config/arm/ieee754-sf.S: Likewise.
8285 * config/arm/lib1funcs.asm: Likewise.
8286 * config/arm/libunwind.S: Likewise.
8287 * config/arm/linux-atomic.c: Likewise.
8288 * config/arm/mmintrin.h: Likewise.
8289 * config/arm/pr-support.c: Likewise.
8290 * config/arm/unaligned-funcs.c: Likewise.
8291 * config/arm/unwind-arm.c: Likewise.
8292 * config/arm/unwind-arm.h: Likewise.
8293 * config/avr/libgcc.S: Likewise.
8294 * config/bfin/crti.s: Likewise.
8295 * config/bfin/crtlibid.s: Likewise.
8296 * config/bfin/crtn.s: Likewise.
8297 * config/bfin/lib1funcs.asm: Likewise.
8298 * config/bfin/linux-unwind.h: Likewise.
8299 * config/cris/arit.c: Likewise.
8300 * config/cris/cris_abi_symbol.c: Likewise.
8301 * config/darwin-64.c: Likewise.
8302 * config/darwin-crt2.c: Likewise.
8303 * config/darwin-crt3.c: Likewise.
8304 * config/darwin.h: Likewise.
8305 * config/dbxelf.h: Likewise.
8306 * config/dfp-bit.c: Likewise.
8307 * config/dfp-bit.h: Likewise.
8308 * config/elfos.h: Likewise.
8309 * config/fixed-bit.c: Likewise.
8310 * config/fixed-bit.h: Likewise.
8311 * config/fp-bit.c: Likewise.
8312 * config/fp-bit.h: Likewise.
8313 * config/fr30/crti.asm: Likewise.
8314 * config/fr30/crtn.asm: Likewise.
8315 * config/fr30/lib1funcs.asm: Likewise.
8316 * config/freebsd-spec.h: Likewise.
8317 * config/frv/cmovd.c: Likewise.
8318 * config/frv/cmovh.c: Likewise.
8319 * config/frv/cmovw.c: Likewise.
8320 * config/frv/frvbegin.c: Likewise.
8321 * config/frv/frvend.c: Likewise.
8322 * config/frv/lib1funcs.asm: Likewise.
8323 * config/glibc-stdint.h: Likewise.
8324 * config/h8300/clzhi2.c: Likewise.
8325 * config/h8300/crti.asm: Likewise.
8326 * config/h8300/crtn.asm: Likewise.
8327 * config/h8300/ctzhi2.c: Likewise.
8328 * config/h8300/fixunssfsi.c: Likewise.
8329 * config/h8300/lib1funcs.asm: Likewise.
8330 * config/h8300/parityhi2.c: Likewise.
8331 * config/h8300/popcounthi2.c: Likewise.
8332 * config/i386/ammintrin.h: Likewise.
8333 * config/i386/att.h: Likewise.
8334 * config/i386/avxintrin.h: Likewise.
8335 * config/i386/biarch64.h: Likewise.
8336 * config/i386/bmmintrin.h: Likewise.
8337 * config/i386/cpuid.h: Likewise.
8338 * config/i386/cross-stdarg.h: Likewise.
8339 * config/i386/crtfastmath.c: Likewise.
8340 * config/i386/crtprec.c: Likewise.
8341 * config/i386/cygming-crtbegin.c: Likewise.
8342 * config/i386/cygming-crtend.c: Likewise.
8343 * config/i386/cygwin.asm: Likewise.
8344 * config/i386/emmintrin.h: Likewise.
8345 * config/i386/gmm_malloc.h: Likewise.
8346 * config/i386/gthr-win32.c: Likewise.
8347 * config/i386/i386.h: Likewise.
8348 * config/i386/immintrin.h: Likewise.
8349 * config/i386/linux-unwind.h: Likewise.
8350 * config/i386/linux64.h: Likewise.
8351 * config/i386/mm3dnow.h: Likewise.
8352 * config/i386/mmintrin-common.h: Likewise.
8353 * config/i386/mmintrin.h: Likewise.
8354 * config/i386/nmmintrin.h: Likewise.
8355 * config/i386/pmm_malloc.h: Likewise.
8356 * config/i386/pmmintrin.h: Likewise.
8357 * config/i386/smmintrin.h: Likewise.
8358 * config/i386/sol2-c1.asm: Likewise.
8359 * config/i386/sol2-ci.asm: Likewise.
8360 * config/i386/sol2-cn.asm: Likewise.
8361 * config/i386/sol2-gc1.asm: Likewise.
8362 * config/i386/tmmintrin.h: Likewise.
8363 * config/i386/unix.h: Likewise.
8364 * config/i386/w32-unwind.h: Likewise.
8365 * config/i386/wmmintrin.h: Likewise.
8366 * config/i386/x86-64.h: Likewise.
8367 * config/i386/x86intrin.h: Likewise.
8368 * config/i386/xmmintrin.h: Likewise.
8369 * config/ia64/crtbegin.asm: Likewise.
8370 * config/ia64/crtend.asm: Likewise.
8371 * config/ia64/crtfastmath.c: Likewise.
8372 * config/ia64/crti.asm: Likewise.
8373 * config/ia64/crtn.asm: Likewise.
8374 * config/ia64/fde-glibc.c: Likewise.
8375 * config/ia64/lib1funcs.asm: Likewise.
8376 * config/ia64/linux-unwind.h: Likewise.
8377 * config/ia64/quadlib.c: Likewise.
8378 * config/ia64/unwind-ia64.c: Likewise.
8379 * config/linux.h: Likewise.
8380 * config/m32c/m32c-lib1.S: Likewise.
8381 * config/m32c/m32c-lib2-trapv.c: Likewise.
8382 * config/m32c/m32c-lib2.c: Likewise.
8383 * config/m32r/initfini.c: Likewise.
8384 * config/m68hc11/larith.asm: Likewise.
8385 * config/m68hc11/m68hc11-crt0.S: Likewise.
8386 * config/m68k/cf.md: Likewise.
8387 * config/m68k/crti.s: Likewise.
8388 * config/m68k/crtn.s: Likewise.
8389 * config/m68k/lb1sf68.asm: Likewise.
8390 * config/m68k/linux-unwind.h: Likewise.
8391 * config/mcore/crti.asm: Likewise.
8392 * config/mcore/crtn.asm: Likewise.
8393 * config/mcore/lib1.asm: Likewise.
8394 * config/mips/linux-unwind.h: Likewise.
8395 * config/mips/loongson.h: Likewise.
8396 * config/mips/mips16.S: Likewise.
8397 * config/mmix/crti.asm: Likewise.
8398 * config/mmix/crtn.asm: Likewise.
8399 * config/pa/fptr.c: Likewise.
8400 * config/pa/hpux-unwind.h: Likewise.
8401 * config/pa/lib2funcs.asm: Likewise.
8402 * config/pa/linux-atomic.c: Likewise.
8403 * config/pa/linux-unwind.h: Likewise.
8404 * config/pa/milli64.S: Likewise.
8405 * config/pa/quadlib.c: Likewise.
8406 * config/pa/stublib.c: Likewise.
8407 * config/picochip/libgccExtras/adddi3.asm: Likewise.
8408 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
8409 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
8410 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
8411 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
8412 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
8413 * config/picochip/libgccExtras/divmod15.asm: Likewise.
8414 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
8415 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
8416 * config/picochip/libgccExtras/longjmp.asm: Likewise.
8417 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
8418 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
8419 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
8420 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
8421 * config/picochip/libgccExtras/setjmp.asm: Likewise.
8422 * config/picochip/libgccExtras/subdi3.asm: Likewise.
8423 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
8424 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
8425 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
8426 * config/rs6000/750cl.h: Likewise.
8427 * config/rs6000/altivec.h: Likewise.
8428 * config/rs6000/biarch64.h: Likewise.
8429 * config/rs6000/crtresfpr.asm: Likewise.
8430 * config/rs6000/crtresgpr.asm: Likewise.
8431 * config/rs6000/crtresxfpr.asm: Likewise.
8432 * config/rs6000/crtresxgpr.asm: Likewise.
8433 * config/rs6000/crtsavfpr.asm: Likewise.
8434 * config/rs6000/crtsavgpr.asm: Likewise.
8435 * config/rs6000/darwin-asm.h: Likewise.
8436 * config/rs6000/darwin-fallback.c: Likewise.
8437 * config/rs6000/darwin-fpsave.asm: Likewise.
8438 * config/rs6000/darwin-ldouble.c: Likewise.
8439 * config/rs6000/darwin-tramp.asm: Likewise.
8440 * config/rs6000/darwin-unwind.h: Likewise.
8441 * config/rs6000/darwin-vecsave.asm: Likewise.
8442 * config/rs6000/darwin-world.asm: Likewise.
8443 * config/rs6000/e500crtres32gpr.asm: Likewise.
8444 * config/rs6000/e500crtres64gpr.asm: Likewise.
8445 * config/rs6000/e500crtres64gprctr.asm: Likewise.
8446 * config/rs6000/e500crtrest32gpr.asm: Likewise.
8447 * config/rs6000/e500crtrest64gpr.asm: Likewise.
8448 * config/rs6000/e500crtresx32gpr.asm: Likewise.
8449 * config/rs6000/e500crtresx64gpr.asm: Likewise.
8450 * config/rs6000/e500crtsav32gpr.asm: Likewise.
8451 * config/rs6000/e500crtsav64gpr.asm: Likewise.
8452 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
8453 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
8454 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
8455 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
8456 * config/rs6000/eabi-ci.asm: Likewise.
8457 * config/rs6000/eabi-cn.asm: Likewise.
8458 * config/rs6000/eabi.asm: Likewise.
8459 * config/rs6000/linux-unwind.h: Likewise.
8460 * config/rs6000/linux64.h: Likewise.
8461 * config/rs6000/paired.h: Likewise.
8462 * config/rs6000/paired.md: Likewise.
8463 * config/rs6000/ppc64-fp.c: Likewise.
8464 * config/rs6000/ppu_intrinsics.h: Likewise.
8465 * config/rs6000/rs6000.h: Likewise.
8466 * config/rs6000/si2vmx.h: Likewise.
8467 * config/rs6000/sol-ci.asm: Likewise.
8468 * config/rs6000/sol-cn.asm: Likewise.
8469 * config/rs6000/spe.h: Likewise.
8470 * config/rs6000/spu2vmx.h: Likewise.
8471 * config/rs6000/sysv4.h: Likewise.
8472 * config/rs6000/tramp.asm: Likewise.
8473 * config/rs6000/vec_types.h: Likewise.
8474 * config/s390/linux-unwind.h: Likewise.
8475 * config/s390/tpf-unwind.h: Likewise.
8476 * config/score/crti.asm: Likewise.
8477 * config/score/crtn.asm: Likewise.
8478 * config/sh/crt1.asm: Likewise.
8479 * config/sh/crti.asm: Likewise.
8480 * config/sh/crtn.asm: Likewise.
8481 * config/sh/divtab-sh4-300.c: Likewise.
8482 * config/sh/divtab-sh4.c: Likewise.
8483 * config/sh/divtab.c: Likewise.
8484 * config/sh/lib1funcs-4-300.asm: Likewise.
8485 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
8486 * config/sh/lib1funcs.asm: Likewise.
8487 * config/sh/lib1funcs.h: Likewise.
8488 * config/sh/linux-atomic.asm: Likewise.
8489 * config/sh/linux-unwind.h: Likewise.
8490 * config/sh/shmedia.h: Likewise.
8491 * config/sh/sshmedia.h: Likewise.
8492 * config/sh/ushmedia.h: Likewise.
8493 * config/sparc/crtfastmath.c: Likewise.
8494 * config/sparc/linux-unwind.h: Likewise.
8495 * config/sparc/sol2-c1.asm: Likewise.
8496 * config/sparc/sol2-ci.asm: Likewise.
8497 * config/sparc/sol2-cn.asm: Likewise.
8498 * config/spu/divmodti4.c: Likewise.
8499 * config/spu/divv2df3.c: Likewise.
8500 * config/spu/float_disf.c: Likewise.
8501 * config/spu/float_unsdidf.c: Likewise.
8502 * config/spu/float_unsdisf.c: Likewise.
8503 * config/spu/float_unssidf.c: Likewise.
8504 * config/spu/mfc_multi_tag_release.c: Likewise.
8505 * config/spu/mfc_multi_tag_reserve.c: Likewise.
8506 * config/spu/mfc_tag_release.c: Likewise.
8507 * config/spu/mfc_tag_reserve.c: Likewise.
8508 * config/spu/mfc_tag_table.c: Likewise.
8509 * config/spu/multi3.c: Likewise.
8510 * config/spu/spu_internals.h: Likewise.
8511 * config/spu/spu_intrinsics.h: Likewise.
8512 * config/spu/spu_mfcio.h: Likewise.
8513 * config/spu/vec_types.h: Likewise.
8514 * config/spu/vmx2spu.h: Likewise.
8515 * config/stormy16/stormy16-lib2.c: Likewise.
8516 * config/svr4.h: Likewise.
8517 * config/sync.c: Likewise.
8518 * config/v850/lib1funcs.asm: Likewise.
8519 * config/vxlib-tls.c: Likewise.
8520 * config/vxlib.c: Likewise.
8521 * config/vxworks-dummy.h: Likewise.
8522 * config/xtensa/crti.asm: Likewise.
8523 * config/xtensa/crtn.asm: Likewise.
8524 * config/xtensa/ieee754-df.S: Likewise.
8525 * config/xtensa/ieee754-sf.S: Likewise.
8526 * config/xtensa/lib1funcs.asm: Likewise.
8527 * config/xtensa/lib2funcs.S: Likewise.
8528 * config/xtensa/linux-unwind.h: Likewise.
8529 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8530 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
8531 * coretypes.h: Likewise.
8532 * crtstuff.c: Likewise.
8533 * defaults.h: Likewise.
8534 * dwarf2.h: Likewise.
8535 * emutls.c: Likewise.
8536 * gbl-ctors.h: Likewise.
8537 * gcov-io.h: Likewise.
8538 * ginclude/float.h: Likewise.
8539 * ginclude/iso646.h: Likewise.
8540 * ginclude/stdarg.h: Likewise.
8541 * ginclude/stdbool.h: Likewise.
8542 * ginclude/stddef.h: Likewise.
8543 * ginclude/stdfix.h: Likewise.
8544 * ginclude/stdint-gcc.h: Likewise.
8545 * ginclude/tgmath.h: Likewise.
8546 * gthr-aix.h: Likewise.
8547 * gthr-dce.h: Likewise.
8548 * gthr-gnat.c: Likewise.
8549 * gthr-gnat.h: Likewise.
8550 * gthr-lynx.h: Likewise.
8551 * gthr-mipssde.h: Likewise.
8552 * gthr-nks.h: Likewise.
8553 * gthr-posix.c: Likewise.
8554 * gthr-posix.h: Likewise.
8555 * gthr-posix95.h: Likewise.
8556 * gthr-rtems.h: Likewise.
8557 * gthr-single.h: Likewise.
8558 * gthr-solaris.h: Likewise.
8559 * gthr-tpf.h: Likewise.
8560 * gthr-vxworks.h: Likewise.
8561 * gthr-win32.h: Likewise.
8562 * gthr.h: Likewise.
8563 * libgcc2.c: Likewise.
8564 * libgcc2.h: Likewise.
8565 * libgcov.c: Likewise.
8566 * tsystem.h: Likewise.
8567 * typeclass.h: Likewise.
8568 * unwind-c.c: Likewise.
8569 * unwind-compat.h: Likewise.
8570 * unwind-dw2-fde-compat.c: Likewise.
8571 * unwind-dw2-fde-darwin.c: Likewise.
8572 * unwind-dw2-fde-glibc.c: Likewise.
8573 * unwind-dw2-fde.c: Likewise.
8574 * unwind-dw2-fde.h: Likewise.
8575 * unwind-dw2.c: Likewise.
8576 * unwind-dw2.h: Likewise.
8577 * unwind-generic.h: Likewise.
8578 * unwind-pe.h: Likewise.
8579 * unwind-sjlj.c: Likewise.
8580 * unwind.inc: Likewise.
8581 * config/arm/neon-gen.ml: Change generated copyright header to
8582 refer to version 3 of the GNU General Public License with
8583 version 3.1 of the GCC Runtime Library Exception and to point
8584 readers at the COPYING3 and COPYING3.RUNTIME files and the
8585 FSF's license web page.
8586 * config/arm/arm_neon.h: Regenerate.
8587
85882009-04-09 Jakub Jelinek <jakub@redhat.com>
8589
8590 * config/cris/cris.md: Change copyright header to refer to version
8591 3 of the GNU General Public License.
8592 * doc/install.texi2html: Change copyright header to refer to version
8593 3 of the GNU General Public License and to point readers at the
8594 COPYING3 file and the FSF's license web page.
8595 * config/vax/linux.h: Likewise.
8596
4a77c72b
PB
85972009-04-09 Paolo Bonzini <bonzini@gnu.org>
8598
1ad2f450
L
8599 * config/i386/i386.md (cmpcc): New.
8600 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
8601 (sync_compare_and_swap_cc*): Delete.
8602
8603 * config/s390/s390.c (s390_compare_emitted): Remove.
8604 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
8605 s390_compare_emitted used to be handled. Assert that modes match.
8606 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
8607 refer to sync_compare_and_swap_ccsi.
8608 * config/s390/s390.h (s390_compare_emitted): Remove.
8609 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
8610 instead of s390_compare_emitted.
8611 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
8612 instead of s390_compare_emitted.
8613 * config/s390/s390.md (cmpcc): New.
8614 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
8615 CC_REGNUM, do not pretend it's set.
8616 (sync_compare_and_swap_cc*): Delete.
8617 * config/s390/predicates.md (cc_reg_operand): New.
8618
8619 * expr.c (sync_compare_and_swap_cc): Delete.
8620 * optabs.h (sync_compare_and_swap_cc): Delete.
8621 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
8622 is being used with can_compare_p.
8623 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
8624 (find_cc_set): New.
8625 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
8626 look for a MODE_CC set instead. Use emit_store_flag.
8627 (expand_compare_and_swap_loop): Likewise, with some additional
8628 complication to avoid a force_reg when useless. Use
8629 emit_cmp_and_jump_insns.
8630 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
8631 * doc/md.texi (sync_compare_and_swap_cc): Merge with
8632 sync_compare_and_swap documentation.
4a77c72b 8633
0c0efb33
JH
86342009-04-09 Jan Hubicka <jh@suse.cz>
8635
8636 * except.c (find_prev_try): Break out from ....
8637 (duplicate_eh_regions): ... here; properly update prev_try pointers
8638 when duplication part of tree.
8639 (dump_eh_tree): Improve dumping.
8640 (verify_eh_region): New.
8641 (verify_eh_tree): Use it.
8642
22a65a54
RG
86432009-04-06 Richard Guenther <rguenther@suse.de>
8644
8645 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
8646 &ARRAY addresses by adjusting their types and prepending
8647 a conversion.
8648 * tree-cfg.c (verify_gimple_assign_single): Verify that
8649 addresses are correct.
8650
f76968e6
RG
86512009-04-09 Richard Guenther <rguenther@suse.de>
8652
8653 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
8654 indices into an array reference if possible.
8655 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8656 Fold POINTER_PLUS_EXPR statements with invariant address.
8657
c90c5fb5
AM
86582009-04-09 Alan Modra <amodra@bigpond.net.au>
8659
8660 PR target/39634
8661 * config.gcc (powerpc64-*-linux*): Always build biarch.
8662
17cede2e
JM
86632009-04-09 Joseph Myers <joseph@codesourcery.com>
8664
8665 PR c/39613
8666 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
8667 it and pedwarn if this results in an INTEGER_CST.
8668
a3337ea2
KG
86692009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8670
8671 * doc/install.texi: Update minimum GMP version. Remove obsolete
8672 text in MPFR section.
8673
ce9ba79b
JJ
86742009-04-08 Jakub Jelinek <jakub@redhat.com>
8675
8676 * dwarf2out.c (class_scope_p): New static inline.
8677 (class_or_namespace_scope_p): Use it.
8678 (gen_variable_die): Use DW_TAG_member tag for static data member
8679 declarations instead of DW_TAG_variable.
8680
4f0ae266
JJ
8681 PR middle-end/39573
8682 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
8683 variables.
8684
d27f0ddc
RG
86852009-04-08 Richard Guenther <rguenther@suse.de>
8686
8687 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
8688 valueize random data.
8689
557cc596
DE
86902009-04-08 David Edelsohn <edelsohn@gnu.org>
8691
8692 * config.gcc (aix tm_file): Add aix-stdint.h.
8693 (aix tm clause use_gcc_stdint): Set to wrap.
8694 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 8695
75ccc1e7
RG
86962009-04-08 Richard Guenther <rguenther@suse.de>
8697
8698 PR middle-end/36291
8699 * tree-dfa.c (add_referenced_var): Do not recurse into
8700 global initializers.
8701 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
8702 exposed variables.
8703 (fold_const_aggregate_ref): Likewise.
8704
c6963675
PB
87052009-04-08 Paolo Bonzini <bonzini@gnu.org>
8706
6c44cf79
L
8707 * recog.c (ordered_comparison_operator): New.
8708 * gensupport.c (std_preds): Add it.
c6963675
PB
8709 * doc/md.texi (Machine-Independent Predicates): Document it.
8710
6d07ad98
JH
87112009-04-08 Jan Hubicka <jh@suse.cz>
8712
8713 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
8714 * function.h (rtl_eh): Remove exception_handler_label_map.
8715 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
8716 remove_exception_handler_label, for_each_eh_label_1): Remove.
8717 (rtl_remove_unreachable_regions): Remove.
8718 (convert_from_eh_region_ranges): Do not remove unreachable regions.
8719 (find_exception_handler_labels): Don't build the hashtable.
8720 (maybe_remove_eh_handler): Remove.
8721 (for_each_eh_label): Rewrite to walk the tree.
8722 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
8723 * except.h (maybe_remove_eh_handler): Remove.
8724 * passes.c (init_optimization_passes): Schedule second EH cleanup
8725 before out-of-ssa.
8726 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
8727 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
8728
7ddf71e3
PB
87292009-04-08 Paolo Bonzini <bonzini@gnu.org>
8730
8731 * genoutput.c (validate_optab_operands): New.
8732 (gen_insn, gen_expand): Call it.
8733
8734 * genflags.c (gen_insn): Detect misused iterators.
8735 (main): Pass line_no to gen_insn, exit with status 1 on error.
8736
8737 * genextract.c (line_no): Make global.
8738 (VEC_safe_set_locstr): Change assertion to error message.
8739 (main): Exit with status 1 on error.
8740
4d84fe7c
JM
87412009-04-08 Joseph Myers <joseph@codesourcery.com>
8742
8743 PR c/39614
8744 PR c/39673
8745 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8746 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8747 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
8748 * c-convert.c (convert): Do not call fold on results of conversion
8749 functions when the result is a C_MAYBE_CONST_EXPR.
8750 * c-parser.c (c_parser_postfix_expression): Do not fold condition
8751 of __builtin_choose_expr.
8752 * c-typeck.c (remove_c_maybe_const_expr): New.
8753 (build_unary_op, build_conditional_expr, build_compound_expr,
8754 build_binary_op, c_objc_common_truthvalue_conversion): Call
8755 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
8756 integer operands.
8757
60839f5d 87582009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 8759
2ba9daa7 8760 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 8761 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 8762
8e481a2c
DS
87632009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
8764
8765 PR bootstrap/39660
8766 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
8767 mix declarations and code.
8768
ee618c17
BE
87692009-04-08 Ben Elliston <bje@au.ibm.com>
8770
8771 * gcc.c: Replace `CC' with `GCC' throughout.
8772
f2a758a2
L
87732009-04-07 H.J. Lu <hongjiu.lu@intel.com>
8774
8775 * doc/invoke.texi: Document Atom support.
8776
6ea2bd47
JM
87772009-04-07 Jason Merrill <jason@redhat.com>
8778
8779 PR c++/25185
8780 * c-common.h, c-common.c: Add flag_pretty_templates.
8781 * c-opts.c (c_common_handle_option): Set it.
8782 * c.opt: Add -fno-pretty-templates.
8783 * doc/invoke.texi (C++ Dialect Options): Likewise.
8784
fcb82ab0
UB
87852009-04-07 Uros Bizjak <ubizjak@gmail.com>
8786
8787 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8788 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8789 (ia64_expand_builtin): Likewise.
8790
dc5e7298
MJ
87912009-04-07 Martin Jambor <mjambor@suse.cz>
8792
8793 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8794 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8795 ADDR_EXPRS are include too.
8796
0609b355
RG
87972009-04-07 Richard Guenther <rguenther@suse.de>
8798
8799 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8800 decls are only used if passes as parameters or if they are
8801 local statics and the call is not to a builtin.
8802 (call_may_clobber_ref_p_1): Likewise.
8803
d8e535fa
PB
88042009-04-07 Paolo Bonzini <bonzini@gnu.org>
8805
8806 * expr.c (do_store_flag): Remove last argument. Simplify code
8807 to avoid duplication of tests already done by can_compare_p.
8808 (expand_expr_real_1): Adjust caller.
8809
c3c64f50
PB
88102009-04-07 Paolo Bonzini <bonzini@gnu.org>
8811
fcb82ab0
UB
8812 * optabs.c (can_compare_p): Test the predicate of a
8813 cbranch and cstore pattern.
c3c64f50 8814
9a53bc17
PB
88152009-04-07 Paolo Bonzini <bonzini@gnu.org>
8816
fcb82ab0
UB
8817 * expr.c (convert_move): Use emit_store_flag instead of
8818 "emulating" it.
9a53bc17 8819
67b8f1c1
PB
88202009-04-07 Paolo Bonzini <bonzini@gnu.org>
8821
fcb82ab0
UB
8822 * config/i386/i386.c (ix86_compare_emitted): Remove.
8823 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8824 ix86_compare_op0 like ix86_compare_emitted used to be handled.
8825 * config/i386/i386.h (ix86_compare_emitted): Remove.
8826 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8827 instead of ix86_compare_emitted.
8828 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 8829
44509946
AS
88302009-04-07 Andrew Stubbs <ams@codesourcery.com>
8831
8832 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8833 Add t-sysroot-suffix to tmake_file.
8834 * config/print-sysroot-suffix.sh: New file.
8835 * config/t-sysroot-suffix: New file.
8836
ca22d882
BE
88372009-04-07 Ben Elliston <bje@au.ibm.com>
8838
8839 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8840 as the latter produces a warning when the target does not support
8841 infinity.
8842
95aac11b
BE
88432009-04-07 Ben Elliston <bje@au.ibm.com>
8844
8845 * dfp.c: Replace type punning assignments with memcpy throughout.
8846 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 8847
633dd061
AM
88482009-04-07 Alan Modra <amodra@bigpond.net.au>
8849
8850 PR target/39634
8851 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8852 Include soft-fp/t-softfp after rs6000/t-linux64.
8853
fe0a25ec
EB
88542009-04-06 Eric Botcazou <ebotcazou@adacore.com>
8855
8856 * stor-layout.c (set_sizetype): Use the full precision of their
8857 machine mode for bitsize types.
8858
0c011bc3
L
88592009-04-06 H.J. Lu <hongjiu.lu@intel.com>
8860
8861 * config/i386/i386.md: Revert 2 accidental checkins.
8862
b6837b94 88632009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 8864 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
8865 H.J. Lu <hongjiu.lu@intel.com>
8866
8867 Atom pipeline model, tuning and insn selection.
8868 * config.gcc (atom): Add atom config options and target.
8869
8870 * config/i386/atom.md: New.
8871
8872 * config/i386/i386.c (atom_cost): New cost.
8873 (m_ATOM): New macro flag.
8874 (initial_ix86_tune_features): Set m_ATOM.
8875 (x86_accumulate_outgoing_args): Likewise.
8876 (x86_arch_always_fancy_math_387): Likewise.
8877 (processor_target): Add Atom cost.
8878 (cpu_names): Add Atom cpu name.
8879 (override_options): Set Atom ISA.
8880 (ix86_issue_rate): New case PROCESSOR_ATOM.
8881 (ix86_adjust_cost): Likewise.
8882
8883 * config/i386/i386.h (TARGET_ATOM): New target macro.
8884 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8885 (TARGET_OPT_AGU): New target option.
8886 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8887 (processor_type): Add PROCESSOR_ATOM.
8888
8889 * config/i386/i386.md (cpu): Add new value "atom".
8890 (use_carry, movu): New attr.
8891 (atom.md): Include atom.md.
8892 (adddi3_carry_rex64): Set attr "use_carry".
8893 (addqi3_carry): Likewise.
8894 (addhi3_carry): Likewise.
8895 (addsi3_carry): Likewise.
8896 (*addsi3_carry_zext): Likewise.
8897 (subdi3_carry_rex64): Likewise.
8898 (subqi3_carry): Likewise.
8899 (subhi3_carry): Likewise.
8900 (subsi3_carry): Likewise.
8901 (x86_movdicc_0_m1_rex64): Likewise.
8902 (*x86_movdicc_0_m1_se): Likewise.
8903 (x86_movsicc_0_m1): Likewise.
8904 (*x86_movsicc_0_m1_se): Likewise.
8905 (*adddi_1_rex64): Emit add insn as much as possible.
8906 (*addsi_1): Likewise.
8907 (return_internal): Set atom_unit.
8908 (return_internal_long): Likewise.
8909 (return_pop_internal): Likewise.
8910 (*rcpsf2_sse): Set atom_sse_attr attr.
8911 (*qrt<mode>2_sse): Likewise.
8912 (*prefetch_sse): Likewise.
8913
8914 * config/i386/i386-c.c (ix86_target_macros_internal): New case
8915 PROCESSOR_ATOM.
8916 (ix86_target_macros_internal): Likewise.
8917
8918 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8919 (*prefetch_sse_rex): Likewise.
8920 (sse_rcpv4sf2): Likewise.
8921 (sse_vmrcpv4sf2): Likewise.
8922 (sse_sqrtv4sf2): Likewise.
8923 (<sse>_vmsqrt<mode>2): Likewise.
8924 (sse_ldmxcsr): Likewise.
8925 (sse_stmxcsr): Likewise.
8926 (*sse_sfence): Likewise.
8927 (sse2_clflush): Likewise.
8928 (*sse2_mfence): Likewise.
8929 (*sse2_lfence): Likewise.
8930 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8931 (<sse>_movup<ssemodesuffixf2c>): Likewise.
8932 (avx_movdqu<avxmodesuffix>): Likewise.
8933 (avx_lddqu<avxmodesuffix>): Likewise.
8934 (sse2_movntv2di): Change attr "type" to "ssemov".
8935 (sse2_movntsi): Likewise.
8936 (rsqrtv8sf2): Change attr "type" to "sseadd".
8937 (sse3_addsubv2df3): Set attr "atom_unit".
8938 (sse3_h<plusminus_insn>v4sf3): Likewise.
8939 (*sse2_pmaddwd): Likewise.
8940 (*vec_extractv2di_1_rex64): Likewise.
8941 (*vec_extractv2di_1_avx): Likewise.
8942 (sse2_psadbw): Likewise.
8943 (ssse3_phaddwv8hi3): Likewise.
8944 (ssse3_phaddwv4hi3): Likewise.
8945 (ssse3_phadddv4si3): Likewise.
8946 (ssse3_phadddv2si3): Likewise.
8947 (ssse3_phaddswv8hi3): Likewise.
8948 (ssse3_phaddswv4hi3): Likewise.
8949 (ssse3_phsubwv8hi3): Likewise.
8950 (ssse3_phsubwv4hi3): Likewise.
8951 (ssse3_phsubdv4si3): Likewise.
8952 (ssse3_phsubdv2si3): Likewise.
8953 (ssse3_phsubswv8hi3): Likewise.
8954 (ssse3_phsubswv4hi3): Likewise.
8955 (ssse3_pmaddubsw128): Likewise.
8956 (sse3_pmaddubsw: Likewise.
8957 (ssse3_palignrti): Likewise.
8958 (ssse3_palignrdi): Likewise.
8959
53e350d3
GP
89602009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
8961
8962 * doc/install.texi (Specific): Fix two cross-references to MinGW.
8963
439ef907
RG
89642009-04-06 Richard Guenther <rguenther@suse.de>
8965
8966 PR tree-optimization/28868
8967 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
8968 of which PHI results we inserted.
8969 (insert_into_preds_of_block): Record inserted PHIs.
8970 (eliminate): Eliminate redundant PHI nodes.
8971 (init_pre): Init inserted_phi_names.
8972
4bad83f5
RG
89732009-04-06 Richard Guenther <rguenther@suse.de>
8974
8975 PR tree-optimization/39643
8976 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
8977 IMAGPART_EXPRs of complex constants.
8978 (execute_fold_all_builtins): If we folded a call queue
8979 TODO_update_address_taken.
8980
570c4247
JH
89812009-04-06 Jan Hubicka <jh@suse.cz>
8982
8983 PR middle-end/39659
8984 * except.c (remove_unreachable_regions): Propagate may_contain_throw
8985 flag.
8986
a460d7a1
AS
89872009-04-06 Andrew Stubbs <ams@codesourcery.com>
8988
8989 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
8990 delay slot.
8991 (ic_invalidate_array): Likewise.
8992
60839f5d 89932009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
8994
8995 * calls.c (emit_library_call_value_1): Fix a problem with parameter
8996 alignment for library calls.
8997
7d253f6e
DS
89982009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
8999
9000 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
9001 (mingw32 tm clause use_gcc_stdint): Set to wrap.
9002 * config/i386/mingw-stdint.h: New file.
9003
941c3614
RB
90042009-04-05 Richard Guenther <rguenther@suse.de>
9005
9006 PR tree-optimization/39648
9007 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
9008 our &A vs. &A[0] IL deficiencies.
9009
12633413
JH
90102009-04-04 Jan Hubicka <jh@suse.cz>
9011
941c3614
RB
9012 * except.c (sjlj_find_directly_reachable_regions): Be ready for
9013 removed toplevel regions.
12633413
JH
9014 (sjlj_mark_call_sites): Likewise.
9015
bb2aaded
DK
90162009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
9017
9018 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
9019 (cygwin tm clause use_gcc_stdint): Set to wrap.
9020 * config/i386/cygwin-stdint.h: New file.
9021
86290011
RG
90222009-04-04 Richard Guenther <rguenther@suse.de>
9023
9024 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
9025 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
9026 single-argument PHIs if we are in loop-closed SSA form.
9027 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
9028 for the pre-condition.
9029 (slpeel_tree_peel_loop_to_edge): Likewise.
9030 (vect_build_loop_niters): Take an optional sequence to append stmts.
9031 (vect_generate_tmps_on_preheader): Likewise.
9032 (vect_do_peeling_for_loop_bound): Take extra guards for the
9033 pre-condition.
9034 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
9035 the cost model check.
9036 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 9037 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
9038 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
9039 (vect_do_peeling_for_loop_bound): Likewise.
9040 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
9041 loop bound only record extra pre-conditions, do not apply loop
9042 versioning.
9043
5eeeac64
RG
90442009-04-04 Richard Guenther <rguenther@suse.de>
9045
9046 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
9047 renaming code.
9048
1ff7d06b
JH
90492009-04-04 Jan Hubicka <jh@suse.cz>
9050
9051 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9052 last_basic_block for size of bb->index indexed array.
9053 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
9054 compute_out, link_btr_uses, build_btr_def_use_webs,
9055 build_btr_def_use_webs, migrate_btr_defs): Likewise.
9056
14925fcd
JH
90572009-04-04 Jan Hubicka <jh@suse.cz>
9058
9059 * except.c (remove_eh_handler_and_replace): Break out from ...
9060 (remove_eh_handler): ... here.
9061 (bring_to_root): New function.
9062 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
9063 handled ones, bring others to root of tree.
9064
4e6d1743
JH
90652009-04-04 Jan Hubicka <jh@suse.cz>
9066
4cb735f7
JH
9067 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
9068 (all_phis_safe_to_merge): New function.
9069 (update_info): New structure.
9070 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
9071 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 9072
c6803d43
RG
90732009-04-04 Richard Guenther <rguenther@suse.de>
9074
9075 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
9076 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
9077 (append_vuse): Likewise.
9078
54f5943c
JJ
90792009-04-04 Jakub Jelinek <jakub@redhat.com>
9080
9081 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
9082 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
9083 instead of REG_UNSAVED for DW_CFA_undefined.
9084 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
9085 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
9086 outermost frame.
9087
aad2bccb
RE
90882009-04-04 Richard Earnshaw <rearnsha@arm.com>
9089
9090 PR target/39501
9091 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
9092 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
9093 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
9094
aa7069aa
RG
90952009-04-04 Richard Guenther <rguenther@suse.de>
9096
9097 PR tree-optimization/8781
9098 PR tree-optimization/37892
9099 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
9100 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
9101 (valueize_refs): Call it for *& valueizations.
9102 (shared_reference_ops_from_ref): Rename to ...
9103 (valueize_shared_reference_ops_from_ref): ... this and valueize.
9104 (shared_reference_ops_from_call): Rename to ...
9105 (valueize_shared_reference_ops_from_call): ... this and valueize.
9106 (vn_reference_lookup): Update.
9107 (visit_reference_op_call): Likewise.
9108 * tree-ssa-pre.c (phi_translate_1): Fold *&.
9109 (eliminate): Value-replace the call address in call statements.
9110
cd15ad3e
RG
91112009-04-04 Richard Guenther <rguenther@suse.de>
9112
9113 PR tree-optimization/39636
9114 * tree-ssa-forwprop.c
9115 (forward_propagate_addr_into_variable_array_index): Check for
9116 GIMPLE_ASSIGN before accessing the rhs code.
9117
462f3262
JM
91182009-04-03 Jason Merrill <jason@redhat.com>
9119
9120 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
9121
6adb807e
SE
91222009-04-03 Steve Ellcey <sje@cup.hp.com>
9123
9124 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
9125 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
9126 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
9127 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
9128 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
9129 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
9130 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
9131 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
9132 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
9133 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
9134 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
9135 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
9136 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
9137 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
9138 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
9139 Use fr_reg_or_fp01_operand instead of fr_register_operand
9140
9141 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
9142 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
9143 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
9144
174b3107
VM
91452009-04-03 Vladimir Makarov <vmakarov@redhat.com>
9146
b844e5d8
L
9147 PR rtl-optimization/39607
9148 PR rtl-optimization/39631
7a715bba
UB
9149
9150 Revert:
2ba9daa7 9151
174b3107
VM
9152 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9153 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9154 instead of DF_LR_OUT.
9155 * ira-lives.c (process_bb_node_lives): Ditto.
9156 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9157 instead of DF_LR_{OUT,IN}.
9158 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9159 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9160
535b544a
SB
91612009-04-03 Steven Bosscher <steven@gcc.gnu.org>
9162
9163 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
9164 (execute_lower_omp): Always run but take the short way out if -fopenmp
9165 is not given.
9166 (gate_lower_omp): Remove, forcing the pass manager to always run the
9167 pass and always set PROP_gimple_lomp.
9168 (pass_lower_omp): Remove gate function.
9169 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
9170 PROP_trees. Instead, require it.
9171 * ipa-cp.c (pass_ipa_cp): Likewise.
9172 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
9173 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
9174 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
9175 and PROP_gimple_leh.
9176
5006671f
RG
91772009-04-03 Richard Guenther <rguenther@suse.de>
9178
9179 PR middle-end/13146
9180 PR tree-optimization/23940
9181 PR tree-optimization/33237
9182 PR middle-end/33974
9183 PR middle-end/34093
9184 PR tree-optimization/36201
9185 PR tree-optimization/36230
9186 PR tree-optimization/38049
9187 PR tree-optimization/38207
9188 PR tree-optimization/38230
9189 PR tree-optimization/38301
9190 PR tree-optimization/38585
9191 PR middle-end/38895
9192 PR tree-optimization/38985
9193 PR tree-optimization/39299
9194 * tree-ssa-structalias.h: Remove.
9195 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
9196 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
9197 (struct vuse_element_d): Remove.
9198 (struct vuse_vec_d): Likewise.
9199 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
9200 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
9201 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
9202 VUSE_ELEMENT_VAR): Likewise.
9203 (struct voptype_d): Likewise.
9204 (NUM_VOP_FREE_BUCKETS): Likewise.
9205 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
9206 (struct stmt_operands_d): Remove.
9207 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
9208 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
9209 VDEF_NUM, VDEF_VECT): Likewise.
9210 (copy_virtual_operands): Remove.
9211 (operand_build_cmp): Likewise.
9212 (create_ssa_artificial_load_stmt): Likewise.
9213 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
9214 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
9215 vuse_index and mayuse_index members. Pack and move done and iter_type
9216 members to the front.
9217 (SSA_OP_VMAYUSE): Remove.
9218 (SSA_OP_VIRTUAL_USES): Adjust.
9219 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
9220 (unlink_stmt_vdef): Declare.
9221 (add_to_addressable_set): Remove.
9222 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
9223 (vrp_visit_stmt): Likewise.
9224 * doc/tree-ssa.texi (Alias analysis): Update.
9225 * doc/invoke.texi (max-aliased-vops): Remove docs.
9226 (avg-aliased-vops): Likewise.
9227 * tree-into-ssa.c (syms_to_rename): Remove.
9228 (need_to_update_vops_p): Likewise.
9229 (need_to_initialize_update_ssa_p): Rename to ...
9230 (update_ssa_initialized_fn): ... this. Track function we are
9231 initialized for.
9232 (symbol_marked_for_renaming): Simplify.
9233 (add_new_name_mapping): Do not set need_to_update_vops_p.
9234 (dump_currdefs): Use SYMS_TO_RENAME.
9235 (rewrite_update_stmt): Always walk all uses/defs.
9236 (dump_update_ssa): Adjust.
9237 (init_update_ssa): Take function argument. Track what we are
9238 initialized for.
9239 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
9240 (create_new_def_for): Initialize for cfun, assert we are initialized
9241 for cfun.
9242 (mark_sym_for_renaming): Simplify.
9243 (mark_set_for_renaming): Do not initialize update-ssa.
9244 (need_ssa_update_p): Simplify. Take function argument.
9245 (name_mappings_registered_p): Assert we ask for the correct function.
9246 (name_registered_for_update_p): Likewise.
9247 (ssa_names_to_replace): Likewise.
9248 (release_ssa_name_after_update_ssa): Likewise.
9249 (update_ssa): Likewise. Use SYMS_TO_RENAME.
9250 (dump_decl_set): Do not print a newline.
9251 (debug_decl_set): Do it here.
9252 (dump_update_ssa): And here.
9253 * tree-ssa-loop-im.c (move_computations): Adjust.
9254 (movement_possibility): Likewise.
9255 (determine_max_movement): Likewise.
9256 (gather_mem_refs_stmt): Likewise.
9257 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
9258 or NAME_MEMORY_TAG.
9259 * tree-complex.c (update_all_vops): Remove.
9260 (expand_complex_move): Adjust.
9261 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
9262 Simplify test for memory referencing statement. Exclude
9263 non-invariant ADDR_EXPRs.
9264 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
9265 * tree-loop-distribution.c (generate_memset_zero): Adjust.
9266 (rdg_flag_uses): Likewise.
9267 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
9268 related code.
9269 (tree_optimize_tail_calls_1): Also split the
9270 edge from the entry block if we have degenerate PHI nodes in
9271 the first basic block.
9272 * tree.c (init_ttree): Remove memory-tag related code.
9273 (tree_code_size): Likewise.
9274 (tree_node_structure): Likewise.
9275 (build7_stat): Re-write to be build6_stat.
9276 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
9277 (SSA_VAR_P): Adjust.
9278 (struct tree_memory_tag): Remove.
9279 (struct tree_memory_partition_tag): Likewise.
9280 (union tree_node): Adjust.
9281 (build7): Re-write to be build6.
9282 * tree-pass.h (pass_reset_cc_flags): Remove.
9283 (TODO_update_address_taken): New flag.
9284 (pass_simple_dse): Remove.
9285 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
9286 * params.h (MAX_ALIASED_VOPS): Remove.
9287 (AVG_ALIASED_VOPS): Likewise.
9288 * omp-low.c (expand_omp_taskreg): Update SSA form.
9289 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
9290 aliases the lhs in a copy stmt.
9291 * tree-ssa-dse.c (struct address_walk_data): Remove.
9292 (memory_ssa_name_same): Likewise.
9293 (memory_address_same): Likewise.
9294 (get_kill_of_stmt_lhs): Likewise.
9295 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
9296 unused stores. Look through PHI nodes into post-dominated regions.
9297 (dse_optimize_stmt): Simplify. Properly remove stores.
9298 (tree_ssa_dse): Compute dominators.
9299 (execute_simple_dse): Remove.
9300 (pass_simple_dse): Likewise.
9301 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
9302 gimple_loaded_syms and gimple_stored_syms computation.
9303 * toplev.c (dump_memory_report): Dump alias and pta stats.
9304 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
9305 (vn_reference_eq): Likewise.
9306 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
9307 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
9308 valueize_vuses): Remove.
9309 (get_def_ref_stmt_vuses): Simplify. Rename to ...
9310 (get_def_ref_stmt_vuse): ... this.
9311 (vn_reference_lookup_2): New function.
9312 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
9313 walking equivalent vuses. Simplify.
9314 (vn_reference_lookup): Likewise.
9315 (vn_reference_insert): Likewise.
9316 (vn_reference_insert_pieces): Likewise.
9317 (visit_reference_op_call): Simplify.
9318 (visit_reference_op_load): Likewise.
9319 (visit_reference_op_store): Likewise.
9320 (init_scc_vn): Remove shared_lookup_vuses initialization.
9321 (free_scc_vn): Remove shared_lookup_vuses freeing.
9322 (sort_vuses, sort_vuses_heap): Remove.
9323 (get_ref_from_reference_ops): Export.
9324 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
9325 vector with single vuse pointer.
9326 (vn_reference_lookup_pieces, vn_reference_lookup,
9327 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
9328 (shared_vuses_from_stmt): Remove.
9329 (get_ref_from_reference_ops): Declare.
9330 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
9331 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
9332 memory-tag related code.
9333 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
9334 (likely_value): Add comment, skip static-chain of call statements.
9335 (surely_varying_stmt_p): Adjust.
9336 (gimplify_and_update_call_from_tree): Likewise.
9337 (execute_fold_all_builtins): Do not rebuild alias info.
9338 (gimplify_and_update_call_from_tree): Properly update VOPs.
9339 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
9340 (copy_ref_info): Remove memory-tag related code.
9341 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
9342 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
9343 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
9344 computation.
9345 * tree-ssa-dom.c (gimple_p): Remove typedef.
9346 (eliminate_redundant_computations): Adjust.
9347 (record_equivalences_from_stmt): Likewise.
9348 (avail_expr_hash): Likewise.
9349 (avail_expr_eq): Likewise.
7a715bba 9350 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
9351 (stmt_makes_single_load): Likewise.
9352 (stmt_makes_single_store): Likewise.
9353 * tree-ssa-alias.c: Rewrite completely.
9354 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
9355 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
9356 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
9357 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
9358 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
9359 Remove public functions.
9360 (pass_reset_cc_flags): Remove.
9361 (pass_build_alias): Move ...
9362 * tree-ssa-structalias.c (pass_build_alias): ... here.
9363 * tree-ssa-alias.c (may_be_aliased): Move ...
9364 * tree-flow-inline.h (may_be_aliased): ... here.
9365 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
9366 count_uses_and_derefs): Move ...
9367 * gimple.c: ... here.
9368 * gimple.h (count_uses_and_derefs): Declare.
9369 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
9370 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
9371 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
9372 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
9373 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
9374 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
9375 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
9376 New functions.
9377 * tree-dfa.c (refs_may_alias_p): Move ...
9378 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
9379 * tree-ssa-alias.h: New file.
9380 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
9381 (statement_sink_location): Likewise.
9382 * opts.c (decode_options): Do not adjust max-aliased-vops or
9383 avg-aliased-vops values.
9384 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
9385 (TV_CALL_CLOBBER): Likewise.
9386 (TV_FLOW_SENSITIVE): Likewise.
9387 (TV_FLOW_INSENSITIVE): Likewise.
9388 (TV_MEMORY_PARTITIONING): Likewise.
9389 (TV_ALIAS_STMT_WALK): New timevar.
9390 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
9391 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
9392 (get_address_description): Remove memory-tag related code.
9393 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
9394 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
9395 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
9396 and immediate uses in statements. Document.
9397 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
9398 (dump_symbols): Remove.
9399 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
9400 * alias.c (get_deref_alias_set): New function split out from ...
9401 (get_alias_set): ... here.
9402 * alias.h (get_deref_alias_set): Declare.
9403 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
9404 type parameter. Remove restrict pointer handling. Create a
9405 ref-all pointer in case type-based alias sets do not conflict.
9406 (vect_analyze_data_refs): Remove SMT related code.
9407 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
9408 (vectorizable_load): Likewise.
9409 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
9410 (DR_SYMBOL_TAG, DR_VOPS): Remove.
9411 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
9412 Ignore vops and SMTs.
9413 (dr_analyze_alias): Likewise..
9414 (free_data_ref): Likewise.
9415 (create_data_ref): Likewise.
9416 (analyze_all_data_dependences): Likewise.
9417 (get_references_in_stmt): Adjust.
9418 * tree-flow-inline.h (gimple_aliases_computed_p,
9419 gimple_addressable_vars, gimple_call_clobbered_vars,
9420 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
9421 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
9422 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
9423 gimple_mem_ref_stats): Remove.
9424 (gimple_vop): New function.
9425 (op_iter_next_use): Remove vuses and mayuses cases.
9426 (op_iter_next_def): Remove vdefs case.
9427 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
9428 (clear_and_done_ssa_iter): Do not set removed fields.
9429 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
9430 Assert we are not iterating over vuses or vdefs if not also
9431 iterating over uses or defs.
9432 (op_iter_init_use): Likewise.
9433 (op_iter_init_def): Likewise.
9434 (op_iter_next_vdef): Remove.
9435 (op_iter_next_mustdef): Likewise.
9436 (op_iter_init_vdef): Likewise.
9437 (compare_ssa_operands_equal): Likewise.
9438 (link_use_stmts_after): Handle vuse operand.
9439 (is_call_used): Use is_call_clobbered.
9440 (is_call_clobbered): Global variables are always call clobbered,
9441 query the call-clobbers bitmap.
9442 (mark_call_clobbered): Ignore global variables.
9443 (clear_call_clobbered): Likewise.
9444 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
9445 virtual operands sanity check.
9446 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
9447 Remove.
9448 (TARGET_MEM_REF): Remove TMR_TAG operand.
9449 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
9450 Remove call-clobber related code.
9451 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
9452 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
9453 partitions or escape reason.
9454 (get_single_def_stmt, get_single_def_stmt_from_phi,
9455 get_single_def_stmt_with_phi): Remove.
9456 (dump_referenced_vars): Tidy.
9457 (get_ref_base_and_extent): Allow bare decls.
9458 (collect_dfa_stats): Adjust.
9459 * graphite.c (rename_variables_in_stmt): Adjust.
9460 (graphite_copy_stmts_from_block): Likewise.
9461 (translate_clast): Likewise.
9462 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
9463 (EXPR_DIES): New.
9464 (translate_vuse_through_block): Use the oracle.
9465 (phi_translate_1): Adjust.
9466 (value_dies_in_block_x): Use the oracle. Cache the outcome
9467 in EXPR_DIES.
9468 (valid_in_sets): Check if the VUSE for
9469 a REFERENCE is available.
9470 (eliminate): Do not remove stmts during elimination,
9471 instead queue and remove them afterwards.
9472 (do_pre): Do not rebuild alias info.
9473 (pass_pre): Run TODO_rebuild_alias before PRE.
9474 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
9475 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
9476 (mark_all_v_defs_stmt): Remove.
9477 (mark_all_v_defs_seq): Adjust.
9478 (sra_replace): Likewise.
9479 (scalarize_use): Likewise.
9480 (scalarize_copy): Likewise.
9481 (scalarize_init): Likewise.
9482 (scalarize_ldst): Likewise.
9483 (todoflags): Remove.
9484 (tree_sra): Do not rebuild alias info.
9485 (tree_sra_early): Adjust.
9486 (pass_sra): Run TODO_update_address_taken before SRA.
9487 * tree-predcom.c (set_alias_info): Remove.
9488 (prepare_initializers_chain): Do not call it.
9489 (mark_virtual_ops_for_renaming): Adjust.
9490 (mark_virtual_ops_for_renaming_list): Remove.
9491 (initialize_root_vars): Adjust.
9492 (initialize_root_vars_lm): Likewise.
9493 (prepare_initializers_chain): Likewise.
9494 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
9495 (may_propagate_copy_into_stmt): Likewise.
9496 (merge_alias_info): Do nothing for now.
9497 (propagate_tree_value_into_stmt): Adjust.
9498 (stmt_may_generate_copy): Likewise.
9499 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
9500 not mark symbols for renaming.
9501 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
9502 with the same statement, make sure to update the new pointed-to one.
9503 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
9504 call statements, do not mark symbols for renaming.
9505 (mark_operand_necessary): Dump something.
9506 (ref_may_be_aliased): New function.
9507 (mark_aliased_reaching_defs_necessary_1): New helper function.
9508 (mark_aliased_reaching_defs_necessary): Likewise.
9509 (mark_all_reaching_defs_necessary_1): Likewise.
9510 (mark_all_reaching_defs_necessary): Likewise.
9511 (propagate_necessity): Do not process virtual PHIs. For
9512 non-aliased loads mark all reaching definitions as necessary.
9513 For aliased loads and stores mark the immediate dominating
9514 aliased clobbers as necessary.
9515 (visited): New global static.
9516 (perform_tree_ssa_dce): Free visited bitmap after propagating
9517 necessity.
9518 (remove_dead_phis): Perform simple dead virtual PHI removal.
9519 (remove_dead_stmt): Properly unlink virtual operands when
9520 removing stores.
9521 (eliminate_unnecessary_stmts): Schedule PHI removal after
9522 stmt removal.
9523 * tree-ssa-ter.c (is_replaceable_p): Adjust.
9524 (process_replaceable): Likewise.
9525 (find_replaceable_in_bb): Likewise.
9526 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
9527 based on the single gimple vop.
9528 (verify_flow_insensitive_alias_info): Remove.
9529 (verify_flow_sensitive_alias_info): Likewise.
9530 (verify_call_clobbering): Likewise.
9531 (verify_memory_partitions): Likewise.
9532 (verify_alias_info): Likewise.
9533 (verify_ssa): Adjust..
9534 (execute_update_addresses_taken): Export. Update SSA
9535 manually. Optimize only when optimizing. Use a local bitmap.
9536 (pass_update_address_taken): Remove TODO_update_ssa, add
9537 TODO_dump_func.
9538 (pass_update_address_taken): Just use TODO_update_address_taken.
9539 (init_tree_ssa): Do not initialize addressable_vars.
9540 (verify_ssa): Verify new VUSE / VDEF properties.
9541 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
9542 Do not call verify_alias_info.
9543 (delete_tree_ssa): Clear the VUSE, VDEF operands.
9544 Do not free the loaded and stored syms bitmaps. Reset the escaped
9545 and callused solutions. Do not free addressable_vars.
9546 Remove memory-tag related code.
9547 (warn_uninitialized_var): Aliases are always available.
9548 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
9549 * lambda-code.c (can_put_in_inner_loop): Adjust.
9550 (can_put_after_inner_loop): Likewise.
9551 (perfect_nestify): Likewise.
9552 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
9553 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
9554 (vectorizable_conversion): Do not mark symbols for renaming.
9555 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
9556 (expand_call_inline): Unlink the calls virtual operands before
9557 replacing it.
9558 (tree_function_versioning): Do not call update_ssa if we are not
9559 updating clones. Simplify.
9560 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
9561 (propagate_with_phi): Likewise..
9562 * tree-outof-ssa.c (create_temp): Remove memory tag and call
9563 clobber code. Assert we are not aliased or global.
9564 * tree-flow.h: Include tree-ssa-alias.h
9565 (enum escape_type): Remove.
9566 (struct mem_sym_stats_d): Likewise.
9567 (struct mem_ref_stats_d): Likewise.
9568 (struct gimple_df): Add vop member. Remove global_var,
9569 call_clobbered_vars, call_used_vars, addressable_vars,
9570 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
9571 escaped and callused members.
9572 (struct ptr_info_def): Remove all members, add points-to solution
9573 member pt.
9574 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
9575 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
9576 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
9577 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
9578 (tree-ssa-alias.o): Likewise.
9579 (toplev.o): Add tree-ssa-alias.h
9580 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
9581 * gimple.c (gimple_set_bb): Fix off-by-one error.
9582 (is_gimple_reg): Do not handle memory tags.
9583 (gimple_copy): Also copy virtual operands.
9584 Delay updating the statement. Do not reset loaded and stored syms.
9585 (gimple_set_stored_syms): Remove.
9586 (gimple_set_loaded_syms): Likewise.
9587 (gimple_call_copy_skip_args): Copy the virtual operands
9588 and mark the new statement modified.
9589 * tree-ssa-structalias.c (may_alias_p): Remove.
9590 (set_uids_in_ptset): Take the alias set to prune with as
9591 parameter. Fold in the alias test of may_alias_p.
9592 (compute_points_to_sets): Compute whether a ptr is dereferenced
9593 in a local sbitmap.
9594 (process_constraint): Deal with &ANYTHING on the lhs, reject all
9595 other ADDRESSOF constraints on the lhs.
9596 (get_constraint_for_component_ref): Assert that we don't get
9597 ADDRESSOF constraints from the base of the reference.
9598 Properly generate UNKNOWN_OFFSET for DEREF if needed.
9599 (struct variable_info): Remove collapsed_to member.
9600 (get_varinfo_fc): Remove.
9601 (new_var_info): Do not set collapsed_to.
9602 (dump_constraint): Do not follow cycles.
9603 (dump_constraint_graph): Likewise.
9604 (build_pred_graph): Likewise.
9605 (build_succ_graph): Likewise.
9606 (rewrite_constraints): Likewise.
9607 (do_simple_structure_copy): Remove.
9608 (do_rhs_deref_structure_copy): Remove.
9609 (do_lhs_deref_structure_copy): Remove.
9610 (collapse_rest_of_var): Remove.
9611 (do_structure_copy): Re-implement.
9612 (pta_stats): New global variable.
9613 (dump_pta_stats): New function.
9614 (struct constraint_expr): Make offset signed.
9615 (UNKNOWN_OFFSET): Define special value.
9616 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
9617 (solution_set_expand): New helper function split out from ...
9618 (do_sd_constraint): ... here.
9619 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
9620 (do_ds_constraint): Likewise.
9621 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
9622 and CALLUSED = *CALLUSED.
9623 (set_union_with_increment): Make inc argument signed.
9624 (type_safe): Remove.
9625 (get_constraint_for_ptr_offset): Handle unknown and negative
9626 constant offsets.
9627 (first_vi_for_offset): Handle offsets before start. Bail
9628 out early for offsets beyond the variable extent.
9629 (first_or_preceding_vi_for_offset): New function.
9630 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
9631 Together with ESCAPED = *ESCAPED this properly computes reachability.
9632 (find_what_var_points_to): New function.
9633 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
9634 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
9635 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
9636 pt_solutions_intersect): New functions.
9637 (compute_call_used_vars): Remove.
9638 (compute_may_aliases): New main entry into PTA computation.
9639 * gimple.h (gimple_p): New typedef.
9640 (struct gimple_statement_base): Remove references_memory_p.
9641 (struct gimple_statement_with_memory_ops_base): Remove
9642 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
9643 members.
9644 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
9645 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
9646 gimple_set_references_memory): Remove.
9647 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
9648 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
9649 New functions.
9650 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
9651 (verify_expr): Allow RESULT_DECL.
9652 (gimple_duplicate_bb): Do not copy virtual operands.
9653 (gimple_duplicate_sese_region): Adjust.
9654 (gimple_duplicate_sese_tail): Likewise.
9655 (mark_virtual_ops_in_region): Remove.
9656 (move_sese_region_to_fn): Do not call it.
9657 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
9658 and pass_simple_dse.
9659 (execute_function_todo): Handle TODO_update_address_taken,
9660 call execute_update_addresses_taken for TODO_rebuild_alias.
9661 (execute_todo): Adjust.
9662 (execute_one_pass): Init dump files early.
9663 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
9664 call-clobbered.
9665 (create_general_new_stmt): Clear vops.
9666 * tree-ssa-reassoc.c (get_rank): Adjust.
9667 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
9668 symbols for renaming.
9669 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
9670 (PARAM_AVG_ALIASED_VOPS): Likewise.
9671 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
9672 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 9673 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
9674 (operand_build_cmp, copy_virtual_operands,
9675 create_ssa_artificial_load_stmt, add_to_addressable_set,
9676 gimple_add_to_addresses_taken): Remove public functions.
9677 (unlink_stmt_vdef): New function.
9678
457d1d00
AM
96792009-04-03 Alan Modra <amodra@bigpond.net.au>
9680
9681 * config.gcc (powerpc-*-linux*): Merge variants.
9682
e19da24c 96832009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 9684 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
9685
9686 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
9687 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
9688 cop0_sp_offset.
9689 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
9690 keep_interrupts_masked_p, use_debug_exception_return_p.
9691 (mips_attribute_table): Add interrupt, use_shadow_register_set,
9692 keep_interrupts_masked, use_debug_exception_return.
9693 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
9694 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
9695 New functions.
9696 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
9697 (mips_print_operand): Process COP0 registers to print $0 .. $31
9698 correctly for GAS to process.
9699 (mips_interrupt_extra_call_saved_reg_p): New function.
9700 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
9701 extra registers.
9702 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9703 (mips_compute_frame_info): Add supports for interrupt context that
9704 includes doubleword accumulators and COP0 registers.
9705 (mips_for_each_saved_acc): New function.
9706 (mips_for_each_saved_gpr_and_fpr): Change the function name from
9707 mips_for_each_saved_reg.
9708 (mips_save_reg): Save accumulators.
9709 (mips_kernel_reg_p): A new for_each_rtx callback.
9710 (mips_expand_prologue): Support interrupt handlers.
9711 (mips_restore_reg): Restore accumulators.
9712 (mips_expand_epilogue): Support interrupt handlers.
9713 (mips_can_use_return_insn): Return false for interrupt handlers.
9714 (mips_epilogue_uses): New function.
9715 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
9716 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
9717 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
9718 cop0_move): New instructions.
9719 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
9720 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
9721 defines.
9722 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
9723 New defines.
9724 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
9725 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
9726 interrupt handlers, we use K0 as the temporary register.
9727 (EPILOGUE_USES): Change to a function call.
9728 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
9729 handlers, we use K0 as the temporary register.
2ba9daa7 9730
e19da24c
CF
9731 * doc/extend.texi (Function Attributes): Document interrupt,
9732 use_shadow_register_set, keep_interrupts_masked,
9733 use_debug_exception_return for MIPS attributes.
9734
aa1ca044
AM
97352009-04-03 Alan Modra <amodra@bigpond.net.au>
9736
9737 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
9738 Remove a number of t-files from tmake_file.
9739 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
9740 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
9741 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9742 target_prototype, not TARGET_PROTOTYPE.
9743 (LINK_OS_GNU_SPEC): Define.
9744 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
9745 and darwin-ldoubdle.c.
9746
14fdc613
MM
97472009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9748
9749 PR driver/39293
9750 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
9751 (cpp_options): Ditto.
9752 (default_compilers): Ditto.
9753 (display_help): Ditto.
9754 (process_command): Ditto.
9755 (do_spec_1): Ditto.
9756 (set_input): Use lbasename instead of duplicate code.
9757 (save_temps_prefix): New static for -save-temps=obj.
9758 (save_temps_length): Ditto.
2ba9daa7 9759
14fdc613
MM
9760 * doc/invoke.texi (-save-temps=obj): Document new variant to
9761 -save-temps switch.
9762
d3aa398e
JL
97632009-04-02 Jeff Law <law@redhat.com>
9764
9765 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
9766 variable.
9767
83f0ccb8
L
97682009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9769
9770 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
9771 * configure: Regenerated.
9772
dcb6e951
RAE
97732009-04-02 Rafael Avila de Espindola <espindola@google.com>
9774
9775 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9776 share the argument list.
9777
d85478c2
RAE
97782009-04-02 Rafael Avila de Espindola <espindola@google.com>
9779
9780 Merge
9781
9782 2009-02-12 Diego Novillo <dnovillo@google.com>
9783
83f0ccb8
L
9784 * varpool.c (debug_varpool): New.
9785 * cgraph.h (debug_varpool): Declare.
d85478c2 9786
34f42a49
JH
97872009-04-02 Jan Hubicka <jh@suse.cz>
9788
9789 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9790 pass.
9791
a4747b4a
L
97922009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9793
9794 * config/i386/i386.c (ix86_abi): Move initialization to ...
9795 (override_options): Here.
9796
63a9de54
CB
97972009-04-02 Christian Bruel <christian.bruel@st.com>
9798
9799 * config/sh/sh.c (sh_dwarf_register_span): New function.
9800 (TARGET_DWARF_REGISTER_SPAN): Define.
9801 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 9802
2f0fa28e
IR
98032009-04-02 Ira Rosen <irar@il.ibm.com>
9804
9805 PR tree-optimization/39595
2ba9daa7 9806 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
9807 interleaved loads group is not greater than the SLP group size.
9808
bbf7ce11
RAE
98092009-04-02 Rafael Avila de Espindola <espindola@google.com>
9810
9811 * builtins.c (is_builtin_name): New.
9812 (called_as_built_in): Use is_builtin_name.
9813 * tree.h (is_builtin_name): New.
9814 * varasm.c (incorporeal_function_p): Use is_builtin_name
9815
47e4dfcf
AS
98162009-04-02 Andrew Stubbs <ams@codesourcery.com>
9817
9818 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9819
d0940d56
DS
98202009-04-02 Dodji Seketeli <dodji@redhat.com>
9821
9822 PR c++/26693
532bfb0a 9823 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
9824 * c-common.c (set_underlying_type): ... here.
9825 Also, make sure the function properly sets TYPE_STUB_DECL() on
9826 the newly created typedef variant type.
9827 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
9828 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9829 points.
d0940d56 9830
bf1cbdc6
RG
98312009-04-02 Richard Guenther <rguenther@suse.de>
9832
9833 PR tree-optimization/37221
9834 * tree-flow.h (degenerate_phi_result): Declare.
9835 * tree-ssa-dom.c (degenerate_phi_result): Export.
9836 * tree-scalar-evolution.c (analyze_initial_condition): If
9837 the initial condition is defined by a degenerate PHI node
9838 use the degenerate value.
9839
87cfb32c
EB
98402009-04-01 Eric Botcazou <ebotcazou@adacore.com>
9841
9842 PR rtl-optimization/39588
9843 * combine.c (merge_outer_ops): Do not set the constant when this
9844 is not necessary.
9845 (simplify_shift_const_1): Do not modify it either in this case.
9846
bbb6eae8
SB
98472009-04-01 Steven Bosscher <steven@gcc.gnu.org>
9848
9849 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9850 tuning is deprecated if -mtune value is set to an Itanium1 variant.
9851
839a3b8a
JJ
98522009-04-01 Janis Johnson <janis187@us.ibm.com>
9853
9854 PR c/29027
9855 * c-lex.c (interpret_float): Default (no suffix) is double.
9856
667e8acb
XDL
98572009-04-1 Xinliang David Li <davidxl@google.com>
9858
9859 * config/i386/i386.c (legitimate_constant_p): Recognize
9860 all one vector constant.
9861
60839f5d 98622009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9863
60839f5d 9864 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
9865 Change #include order to silence two warnings.
9866
60839f5d 98672009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9868
60839f5d 9869 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
9870 (ASM_SPEC): Pass -k to the assembler for PIC code.
9871
60839f5d 98722009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9873
60839f5d
EB
9874 * config.gcc: Add vax-*-linux* to the switch.
9875 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
9876 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9877
60839f5d 98782009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9879
60839f5d 9880 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 9881 Use predicate macros instead of GET_CODE() == foo.
60839f5d 9882 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
9883 ashlsi3, rotrsi3, <unnamed>): Likewise.
9884
60839f5d 98852009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9886
60839f5d 9887 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 9888 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
9889 * config/vax/constraints.md: Likewise.
9890 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9891 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9892 * config/vax/predicates.md: Likewise.
9893 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 9894 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
9895 * config/vax/vax.h: Likewise.
9896 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 9897
60839f5d 98982009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9899
60839f5d 9900 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
9901 (indirectable_address_p, adjacent_operands_p): Add spaces around
9902 braces.
60839f5d 9903 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 9904
60839f5d 99052009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9906
60839f5d 9907 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
9908 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9909 index_term_p, reg_plus_index_p, legitimate_address_p,
9910 vax_mode_dependent_address_p): Update comments to match functions
9911 modified by the recent int->bool conversion.
9912
60839f5d 99132009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9914
60839f5d
EB
9915 * config/vax/builtins.md: Update copyright message.
9916 * config/vax/constraints.md: Likewise.
9917 * config/vax/netbsd-elf.h: Likewise.
9918 * config/vax/predicates.md: Likewise.
9919 * config/vax/vax-protos.h: Likewise.
9920 * config/vax/vax.c: Likewise.
9921 * config/vax/vax.h: Likewise.
9922 * config/vax/vax.md: Likewise.
9923 * config/vax/vax.opt: Likewise.
c4e75102 9924
60839f5d 99252009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9926
60839f5d 9927 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 9928 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
9929 * config/vax/constraints.md (B, R): Likewise.
9930 * config/vax/predicates.md (external_memory_operand,
c4e75102 9931 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
9932 * config/vax/vax.c (vax_output_int_add): Likewise.
9933 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
9934 untyped_call): Likewise.
9935
60839f5d 99362009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 9937
7a715bba
UB
9938 * config/vax/predicates.md: New file.
9939 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
9940 external_const_operand, nonsymbolic_operand, external_memory_operand,
9941 indirect_memory_operand, indexed_memory_operand,
9942 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9943 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9944 predicate.
7a715bba
UB
9945 * config/vax/constraints.md: New file.
9946 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9947 New constraint.
9948 * config/vax/builtins.md: New file.
9949 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9950 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9951 jbbccisi): Define.
c4e75102
MT
9952 * config/vax/vax.opt (mqmath): Add option.
9953 * config/vax/vax.md (isfx): Extend with DI.
9954 (VAXintQH, VAXintQHSD): Define.
9955 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9956 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9957 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9958 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9959 (movdi): Update constraints and use vax_output_int_move().
9960 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9961 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9962 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9963 nonlocal_goto): New.
9964 (mov<mode>): Extend accepted operand types.
9965 (subdi3_old): Rename from subdi3, change update constraints and use
9966 a new implementation.
60839f5d 9967 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
9968 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
9969 MOVE_RATIO, CLEAR_RATIO): Define.
9970 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
9971 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9972 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 9973 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
9974 (split_quadword_operands): Make static and really allow variable
9975 splitting.
9976 (print_operand_address): Update for PIC generation.
9977 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
9978 indexable_address_p, fixup_mathdi_operand,
9979 vax_expand_addsub_di_operands, adjacent_operands_p): New.
9980 (vax_float_literal, legitimate_constant_p,
9981 indirectable_constant_address_p, index_term_p,
9982 reg_plus_index_p): Return bool instead of int.
9983 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
9984 where needed.
9985 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
9986 generation.
9987 (vax_output_conditional_branch): Indent.
9988 (legitimate_constant_address_p, indirectable_constant_address_p,
9989 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
9990 vax_mode_dependent_address_p): Return bool instead of int, update for
9991 PIC generation.
9992 * config/vax/vax-protos.h (legitimate_constant_address_p,
9993 legitimate_constant_p, legitimate_address_p,
9994 vax_mode_dependent_address_p): Change declaration to bool.
9995 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
9996 vax_expand_addsub_di_operands, vax_output_int_subtract,
9997 vax_output_movmemsi): Declare.
9998 (split_quadword_operands, vax_float_literal): Delete declaration.
9999 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
10000 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
10001 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
10002 ASM_OUTPUT_DWARF_PCREL): Define.
10003 (ASM_SPEC): Change definition to allow PIC generation.
10004
9332c6eb
L
100052009-04-01 Steve Ellcey <sje@cup.hp.com>
10006
10007 * doc/sourcebuild.texi: Update front-end requirements.
10008
d93e052c
JJ
100092009-04-01 Jakub Jelinek <jakub@redhat.com>
10010
10011 PR target/39226
10012 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
10013 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
10014 (booldi3_internal3): Use boolean_or_operator instead of
10015 boolean_operator.
10016
6ccb2a4a
JM
100172009-04-01 Joseph Myers <joseph@codesourcery.com>
10018
10019 PR c/39605
10020 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
10021 declarator whose size is not an integer constant expression but
10022 folds to an integer constant, then treat it as a constant
10023 subsequently.
10024
299b87f8
RG
100252009-04-01 Richard Guenther <rguenther@suse.de>
10026
10027 * fold-const.c (fold_plusminus_mult_expr): Do not fold
10028 i * 4 + 2 to (i * 2 + 1) * 2.
10029
b85eb797
JJ
100302009-04-01 Jakub Jelinek <jakub@redhat.com>
10031
10032 PR c/37772
10033 * c-parser.c (c_parser_asm_statement): Skip until close paren and
10034 return if c_parser_asm_string_literal returned NULL.
10035
235e1fe8
NC
100362009-04-01 Nick Clifton <nickc@redhat.com>
10037
10038 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
10039 already defined.
10040 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
10041 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
10042 other typedefs to avoid conflicts with libgcc2.c. Define labels
10043 to gain 16-bit bit-manipulation functions from libgcc2.c and then
10044 include it.
10045 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
10046 to gain 16-bit trapping arithmetic functions from libgcc2.c and
10047 then include it.
10048
d6868399
RAE
100492009-04-01 Rafael Avila de Espindola <espindola@google.com>
10050
7a715bba
UB
10051 * varasm.c (default_function_rodata_section): Declare DOT as
10052 const char*.
d6868399 10053
73d21f56 100542009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 10055 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
10056
10057 PR/39492
10058 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10059 Make object_name unique for each process.
10060
03742a9b
JJ
100612009-04-01 Jakub Jelinek <jakub@redhat.com>
10062
10063 PR other/39591
10064 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
10065 addressable variables in the parallel that could go out of scope while
10066 running queued tasks.
10067
4223ff5f
AS
100682009-04-01 Anatoly Sokolov <aesok@post.ru>
10069
10070 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
10071 (CASE_VALUES_THRESHOLD): Redefine.
10072 * config/avr/avr.c (avr_override_options): Remove initialization of
10073 avr_case_values_threshold variable.
10074 (avr_case_values_threshold): Remove variable. Add new function.
10075 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
10076 * config/avr/avr.opt (mno-tablejump): Remove option.
10077 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
10078
e893f6f3
DD
100792009-04-01 DJ Delorie <dj@redhat.com>
10080
10081 * varasm.c (default_function_rodata_section): Don't assume
10082 anything about where the first '.' in the section name is.
10083
b246d100
AM
100842009-04-01 Alan Modra <amodra@bigpond.net.au>
10085
10086 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
10087 rs6000_emit_stack_tie.
10088
d3e37a9e
ILT
100892009-03-31 Ian Lance Taylor <iant@google.com>
10090
10091 * tree-eh.c (tree_remove_unreachable_handlers): Compare
10092 gimple_code with GIMPLE_RESX, not RESX.
10093
c1b61fca
JM
100942009-03-31 Joseph Myers <joseph@codesourcery.com>
10095
10096 * c-common.c (c_get_ident): New.
7a715bba 10097 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 10098
c2d2ad48
BE
100992009-04-01 Ben Elliston <bje@au.ibm.com>
10100
10101 * config/rs6000/sysv4.opt (msdata): Improve option description.
10102
13d1a6e7
SE
101032009-03-31 Steve Ellcey <sje@cup.hp.com>
10104
10105 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
10106 (divdf3_internal_lat): Remove.
10107 (divxf3_internal_lat): Remove.
10108 (divxf3_internal_thr): Remove.
10109 (divxf): Use divxf3_internal.
10110 * config/ia64/div.md (divsf3_internal_lat): New.
10111 (divdf3_internal_lat): New.
10112 (divxf3_internal): New.
10113
207bf79d
JM
101142009-03-31 Joseph Myers <joseph@codesourcery.com>
10115
10116 PR c/448
10117 * Makefile.in (USE_GCC_STDINT): Define.
10118 (stmp-int-hdrs): Install stdint.h if applicable.
10119 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
10120 if known.
10121 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
10122 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
10123 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10124 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10125 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10126 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10127 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10128 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10129 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10130 (c_common_nodes_and_builtins): Initialize
10131 underlying_wchar_type_node. Do not initialize
10132 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
10133 nodes for new types.
10134 (c_stddef_cpp_builtins): Define macros for new types.
10135 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
10136 Remove.
10137 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
10138 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
10139 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
10140 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
10141 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
10142 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
10143 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
10144 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
10145 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
10146 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
10147 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
10148 int16_type_node, int32_type_node, int64_type_node,
10149 uint8_type_node, uint16_type_node, c_uint32_type_node,
10150 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
10151 int_least32_type_node, int_least64_type_node,
10152 uint_least8_type_node, uint_least16_type_node,
10153 uint_least32_type_node, uint_least64_type_node,
10154 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
10155 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
10156 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
10157 uintptr_type_node): Define.
10158 * c-cppbuiltin.c (builtin_define_constants,
10159 builtin_define_type_minmax): New.
10160 (builtin_define_stdint_macros): Define more macros.
10161 (c_cpp_builtins): Define more limit macros.
10162 (type_suffix): New.
10163 (builtin_define_type_max): Define in terms of
10164 builtin_define_type_minmax. Remove is_long parameter. All
10165 callers changed.
10166 * config.gcc (use_gcc_stdint): Define.
10167 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
10168 Add newlib-stdint.h for generic targets.
10169 * config/glibc-stdint.h, config/newlib-stdint.h,
10170 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
10171 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
10172 * config/score/score.h (UINTPTR_TYPE): Define.
10173 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
10174 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
10175 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10176 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10177 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10178 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10179 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10180 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10181 * config/spu/spu.h (STDINT_LONG32): Define.
10182 * configure.ac (use_gcc_stdint): Substitute.
10183 * configure: Regenerate.
10184 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
10185 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
10186 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
10187 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
10188 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
10189 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
10190 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
10191 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
10192 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
10193 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
10194 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
10195 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
10196 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
10197 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
10198 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
10199 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
10200 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
10201 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
10202 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
10203 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
10204 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
10205 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
10206 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10207 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10208 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10209 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10210 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10211 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10212 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
10213
ed853664
BS
102142009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
10215
10216 * loop-iv.c (suitable_set_for_replacement): Renamed from
10217 simplify_using_assignment; changed to return bool and to accept new
10218 args DEST and SRC. Return true iff we find a source/destination pair
10219 that can be used to make a replacement, and fill SRC and DEST if so.
10220 Remove arg ALTERED. Don't deal with altered regs here. All callers
10221 changed.
10222 (simplify_using_initial_values): Deal with altered regs here and track
10223 more precisely the effect they have on the validity of our expression.
10224
1569e190
BS
10225 * loop-iv.c (simplify_using_condition): A condition of the form
10226 (EQ REG CONST) can be used to simply make a substitution.
10227 (simplify_using_initial_values): Keep track of conditions we have seen
10228 and keep using them to simplify new expressions, while applying the
10229 same substitutions to them as to the expression.
10230
1d1eb80c
BS
10231 * simplify-rtx.c (simplify_relational_operation_1): Simplify
10232 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
10233 GEU/LTU reversed.
10234
28af33b0
BS
10235 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
10236 changed. Use this when trying to improve the upper bound.
10237 Generate the comparison by using simplify_gen_relational.
10238
b30321cd
BS
10239 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
10240
60081874
BS
10241 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
10242 functions.
2ba9daa7 10243 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
10244 replace_in_expr to make replacements. Call replace_single_def_regs
10245 once on the initial version of the expression.
10246
bebc6e07
RR
102472009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10248
fcb82ab0 10249 PR target/27237
bebc6e07 10250 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 10251
6b12efe9
RG
102522009-03-31 Richard Guenther <rguenther@suse.de>
10253
10254 PR middle-end/31029
10255 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
10256 equality comparisons. Fold C - X CMP X if C % 2 == 1.
10257
108f6c2f
RG
102582009-03-31 Richard Guenther <rguenther@suse.de>
10259
10260 * tree.h (div_if_zero_remainder): Declare.
10261 * fold-const.c (div_if_zero_remainder): Export.
10262 * tree-ssa-forwprop.c
10263 (forward_propagate_addr_into_variable_array_index): Handle
10264 constant array index addition outside of the variable index.
10265
8f612190
JM
102662009-03-31 Joseph Myers <joseph@codesourcery.com>
10267
10268 PR target/39592
10269 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
10270 define_splits, floatunssi<mode>2): Require x87 conversions from
10271 DImode to be permitted.
10272
47580d22
JM
102732009-03-31 Joseph Myers <joseph@codesourcery.com>
10274
10275 PR preprocessor/15638
10276 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
10277
ba4d8f9d
RG
102782009-03-31 Richard Guenther <rguenther@suse.de>
10279
10280 PR middle-end/23401
10281 PR middle-end/27810
10282 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
10283 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
10284 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
10285 a separate statement.
10286 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
10287 (lookup_tmp_var): Likewise.
10288 (is_gimple_formal_tmp_or_call_rhs): Remove.
10289 (is_gimple_reg_or_call_rhs): Rename to ...
10290 (is_gimple_reg_rhs_or_call): ... this.
10291 (is_gimple_mem_or_call_rhs): Rename to ...
10292 (is_gimple_mem_rhs_or_call): ... this.
10293 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
10294 DECL_GIMPLE_REG_P only if is_formal is true.
10295 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
10296 for non-proper post-modify expression gimplification.
10297 (gimplify_self_mod_expr): For post-modify expressions gimplify
10298 the lvalue to a minimal lvalue.
10299 (rhs_predicate_for): Remove formal temp case.
10300 (gimplify_modify_expr_rhs): Likewise.
10301 (gimplify_addr_expr): Use is_gimple_reg.
10302 (gimplify_expr): Remove formal temp cases.
10303 (gimple_regimplify_operands): Likewise.
10304 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
10305 and FILTER_EXPR like constants.
10306 * gimple.c (walk_gimple_op): Fix val_only initialization, use
10307 is_gimple_reg.
10308 (is_gimple_formal_tmp_rhs): Remove.
10309 (is_gimple_reg_rhs): Remove special casing.
10310 (is_gimple_mem_rhs): Fix.
10311 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
10312 (is_gimple_formal_tmp_var): Remove.
10313 (is_gimple_formal_tmp_reg): Likewise.
10314 (is_gimple_min_lval): Allow invariant component ref parts.
10315 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
10316 is_gimple_formal_tmp_reg): Remove declarations.
10317 * tree-cfg.c (verify_expr): Verify that variables with address
10318 taken do not have DECL_GIMPLE_REG_P set.
10319 * tree-mudflap.c (mf_build_check_statement_for): Use
10320 force_gimple_operand instead of gimplify_expr.
10321
8de9b877
AZ
103222009-03-31 Ayal Zaks <zaks@il.ibm.com>
10323
10324 * modulo-sched.c (sms_schedule_by_order): Pass the actual
10325 schedulable rows to compute_split_row.
10326
b5e3caf2
BE
103272009-03-31 Ben Elliston <bje@au.ibm.com>
10328
10329 PR target/31635
10330 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
10331 OPT_mvrsave.
10332
9752c4ad
AM
103332009-03-31 Alan Modra <amodra@bigpond.net.au>
10334
10335 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
10336 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
10337 * configure: Regenerate.
10338 * config.in: Regenerate.
10339 * config/rs6000/rs6000.opt (mtls-markers): Add.
10340 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
10341 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
10342 (tls_ld_aix, tls_ld_sysv): Likewise.
10343 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
10344 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
10345
b597d1b6
AM
103462009-03-31 Alan Modra <amodra@bigpond.net.au>
10347
10348 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
10349
a203a221
JH
103502009-03-30 Jan Hubicka <jh@suse.cz>
10351
b597d1b6
AM
10352 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
10353 out of RESX.
10354 (tree_remove_unreachable_handlers): Cleanup EH predecestor
10355 detection and label handling.
a203a221 10356
5b0c0b2c
VM
103572009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10358
10359 * ira-int.h (ira_allocno): Rename left_conflicts_num to
10360 left_conflicts_size.
10361 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
10362 ALLOCNO_LEFT_CONFLICTS_SIZE.
10363
10364 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
10365 remove_allocno_from_bucket_and_push,
10366 allocno_spill_priority_compare, push_allocnos_to_stack,
10367 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10368 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
10369 (setup_allocno_left_conflicts_num): Ditto. Rename to
10370 setup_allocno_left_conflicts_size.
10371 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10372 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
10373 setup_allocno_left_conflicts_size instead of
10374 setup_allocno_left_conflicts_num.
10375
10376 * ira-build.c (ira_create_allocno): Use
10377 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
10378 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 10379
9a48a93f
VM
103802009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10381
10382 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10383 instead of DF_LR_OUT.
10384
10385 * ira-lives.c (process_bb_node_lives): Ditto.
10386
10387 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10388 instead of DF_LR_{OUT,IN}.
10389
10390 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10391
10392 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10393
4c936d4f
JH
103942009-03-30 Jan Hubicka <jh@suse.cz>
10395
10396 * except.c (label_to_region_map): Fix thinko.
10397
f4d9f129
SE
103982009-03-30 Steve Ellcey <sje@cup.hp.com>
10399
10400 PR middle-end/38237
10401 * tree.h (tree_find_value): New declaration.
10402 * tree.c (tree_find_value): New function.
10403 * varasm.c (assemble_external): Avoid duplicate entries on lists.
10404
b3f27c15
JJ
104052009-03-30 Jakub Jelinek <jakub@redhat.com>
10406
10407 PR debug/39563
10408 * c-decl.c (struct c_binding): Add locus field.
10409 (bind): Add locus argument, set locus field from it.
10410 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
10411 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
10412 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
10413 implicitly_declare, undeclared_variable, lookup_label,
10414 declare_label, c_make_fname_decl, c_builtin_function,
10415 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
10416 bind callers.
10417
ad41bd84 104182009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
10419
10420 PR target/38781
10421 * config/i386/i386.c (classify_argument): Check total size of
10422 structure.
10423
133f9369
MJ
104242009-03-30 Martin Jambor <mjambor@suse.cz>
10425
10426 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
10427 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
10428 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
10429 respectively.
10430
10431 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
10432 seen_variable_array_ref while also traversing a union.
10433
10434 * tree-inline.c (optimize_inline_calls): Do not call
10435 cgraph_node_remove_callees.
10436 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
10437 (pass_remove_cgraph_callee_edges): New variable.
10438 * passes.c (init_optimization_passes): Add
10439 pass_remove_cgraph_callee_edges after early inlining and before all
10440 late intraprocedural passes.
10441
10442 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
10443
1190f2eb
PB
104442009-03-30 Paolo Bonzini <bonzini@gnu.org>
10445
10446 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
10447 Fix typos in names.
10448
fedc1775
PB
104492009-03-30 Paolo Bonzini <bonzini@gnu.org>
10450
fcb82ab0
UB
10451 * combine.c (simplify_comparison): Use have_insn_for.
10452 * dojump.c (do_jump): Likewise.
fedc1775 10453
65c5ae8b
PB
104542009-03-30 Paolo Bonzini <bonzini@gnu.org>
10455
10456 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
10457 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
10458 sparc_compare_op0 like sparc_compare_emitted used to be handled.
10459 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
10460 instead of sparc_compare_emitted.
10461 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
10462 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
10463 instead of sparc_compare_emitted.
10464
d25aa7ab
PB
104652009-03-30 Paolo Bonzini <bonzini@gnu.org>
10466
10467 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
10468 enter/exit cfglayout mode.
10469 (pass_partition_block): Require it.
10470 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
10471 (combine_instructions): Track basic blocks instead of labels.
10472 (update_cfg_for_uncondjump): New.
10473 (try_combine): Use it. Update jumps after rescanning.
10474 (pass_combine): Require PROP_cfglayout.
10475 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
10476
9c9e26f5
PB
104772009-03-30 Paolo Bonzini <bonzini@gnu.org>
10478
fcb82ab0
UB
10479 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
10480 Provide/destroy PROP_cfglayout respectively.
10481 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
10482 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 10483
28ddeea1
PB
104842009-03-30 Paolo Bonzini <bonzini@gnu.org>
10485
10486 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
10487 fold_convert_const_fixed_from_fixed,
10488 fold_convert_const_fixed_from_int,
10489 fold_convert_const_fixed_from_real, fold_negate_const): Do not
10490 set TREE_CONSTANT_OVERFLOW.
10491 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
10492 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
10493
ebfd146a
IR
104942009-03-30 Ira Rosen <irar@il.ibm.com>
10495
10496 * tree-vect-loop-manip.c: New file.
10497 * tree-vectorizer.c: Update documentation and included files.
10498 (vect_loop_location): Make extern.
10499 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
10500 (rename_variables_in_bb, rename_variables_in_loop,
10501 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
10502 slpeel_update_phi_nodes_for_guard1,
10503 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
10504 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
10505 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 10506 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
10507 find_loop_location): Likewise.
10508 (new_stmt_vec_info): Move to tree-vect-stmts.c.
10509 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
10510 get_vectype_for_scalar_type, vect_is_simple_use,
10511 supportable_widening_operation, supportable_narrowing_operation):
10512 Likewise.
10513 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
10514 (new_loop_vec_info, destroy_loop_vec_info,
10515 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
10516 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
10517 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
10518 (vect_supportable_dr_alignment): Likewise.
10519 * tree-vectorizer.h (tree-data-ref.h): Include.
10520 (vect_loop_location): Declare.
10521 Reorganize function declarations according to the new file structure.
10522 * tree-vect-loop.c: New file.
2ba9daa7 10523 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
10524 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
10525 * tree-vect-data-refs.c: New file.
10526 * tree-vect-patterns.c (timevar.h): Don't include.
10527 * tree-vect-stmts.c: New file.
2ba9daa7 10528 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 10529 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
10530 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
10531 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
10532 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
10533 (tree-vect-analyze.o): Remove.
10534 (tree-vect-transform.o): Likewise.
10535 (tree-vect-data-refs.o): Add rule.
2ba9daa7 10536 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
10537 tree-vect-slp.o): Likewise.
10538 (tree-vect-patterns.o): Remove redundant dependencies.
10539 (tree-vectorizer.o): Likewise.
10540 * tree-vect-slp.c: New file.
10541
40a1cfba
RW
105422009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10543
10544 * optc-gen.awk: Warn if an option flag has multiple different
10545 help strings.
10546
a9a7a9a2
SP
105472009-03-30 Sebastian Pop <sebastian.pop@amd.com>
10548
10549 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
10550 -floop-block): Document dependences on PPL, CLooG and Graphite.
10551
8ce94e44
JM
105522009-03-30 Joseph Myers <joseph@codesourcery.com>
10553
10554 PR rtl-optimization/323
10555 * c-common.c (c_fully_fold, convert_and_check,
10556 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
10557 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
10558 * c-common.def (EXCESS_PRECISION_EXPR): New.
10559 * c-cppbuiltin.c (builtin_define_float_constants): Define
10560 constants with enough digits for long double.
10561 * c-lex.c (interpret_float): Interpret constant with excess
10562 precision where appropriate.
10563 * c-opts.c (c_common_post_options): Set
10564 flag_excess_precision_cmdline. Give an error for
10565 -fexcess-precision=standard for C++ for processors where the
10566 option is significant.
10567 * c-parser.c (c_parser_conditional_expression): Handle excess
10568 precision in condition.
10569 * c-typeck.c (convert_arguments): Handle arguments with excess
10570 precision.
10571 (build_unary_op): Move excess precision outside operation.
10572 (build_conditional_expr): Likewise.
10573 (build_compound_expr): Likewise.
10574 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
10575 (build_modify_expr): Handle excess precision in RHS.
10576 (convert_for_assignment): Handle excess precision in converted
10577 value.
10578 (digest_init, output_init_element, process_init_element): Handle
10579 excess precision in initializer.
10580 (c_finish_return): Handle excess precision in return value.
10581 (build_binary_op): Handle excess precision in operands and add
10582 excess precision as needed for operation.
10583 * common.opt (-fexcess-precision=): New option.
10584 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
10585 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10586 For standard excess precision, output explicit conversion to and
10587 truncation from XFmode.
10588 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
10589 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
10590 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
10591 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
10592 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
10593 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
10594 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
10595 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
10596 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
10597 define_splits, sqrt<mode>2): Disable where appropriate for
10598 standard excess precision.
10599 * convert.c (convert_to_real): Do not shorten arithmetic to type
10600 for which excess precision would be used.
10601 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
10602 * doc/invoke.texi (-fexcess-precision=): Document option.
10603 (-mfpmath=): Correct index entry.
10604 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
10605 flag_excess_precision): New.
10606 * langhooks.c (lhd_post_options): Set
10607 flag_excess_precision_cmdline.
10608 * opts.c (common_handle_option): Handle -fexcess-precision=.
10609 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
10610 init_excess_precision): New.
10611 (lang_dependent_init_target): Call init_excess_precision.
10612 * tree.c (excess_precision_type): New.
10613 * tree.h (excess_precision_type): Declare.
10614
1e57bf47
JM
106152009-03-30 Joseph Myers <joseph@codesourcery.com>
10616
10617 PR c/35235
10618 * c-typeck.c (build_component_ref): Do not copy qualifiers from
10619 non-lvalue to component.
10620
148e4216
JM
106212009-03-29 Joseph Myers <joseph@codesourcery.com>
10622
10623 PR preprocessor/34695
10624 * Makefile.in (c-opts.o): Depend on c-tree.h.
10625 * c-common.c: Move down include of diagnostic.h.
10626 (done_lexing, c_cpp_error): New.
10627 * c-common.h (done_lexing): Declare.
10628 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
10629 (parse_in).
10630 * c-opts.c: Include c-tree.h.
10631 (c_common_init_options): Set preprocessor error callback.
10632 (c_common_handle_option): Do not set preprocessor
10633 inhibit_warnings, warnings_are_errors, warn_system_headers,
10634 pedantic_errors or inhibit_warnings flags.
10635 (c_common_post_options): Do not check cpp_errors (parse_in).
10636 (c_common_finish): Do not output dependencies if there were
10637 errors. Do not check return value of cpp_finish.
10638 * c-ppoutput.c (pp_file_change): Set input_location.
10639 * c-tree.h (c_cpp_error): Declare.
10640 * diagnostic.c (diagnostic_set_info_translated): Also initialize
10641 override_column.
10642 (diagnostic_build_prefix): Check override_column.
10643 * diagnostic.h (diagnostic_info): Add override_column field.
10644 (diagnostic_override_column): Define.
10645
2ec5deb5
PB
106462009-03-28 Paolo Bonzini <bonzini@gnu.org>
10647
ba20e309
UB
10648 * c-common.c (c_expand_expr, c_staticp): Remove.
10649 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
10650 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
10651 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
10652 * c-gimplify.c (gimplify_compound_literal_expr,
10653 optimize_compound_literals_in_ctor): Remove.
10654 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
10655 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
10656 * c-semantics.c (emit_local_var): Remove.
10657
10658 * langhooks-def.h (lhd_expand_expr): Remove.
10659 * langhooks.c (lhd_expand_expr): Remove.
10660 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
10661
10662 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
10663 handling from c-semantics.c; don't call into langhook.
10664 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
10665 * gimplify.c (gimplify_compound_literal_expr,
10666 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
10667 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
10668 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
10669 as was done in c-gimplify.c.
10670 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
10671 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
10672 Move from c-common.h.
10673 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
10674
10675 * tree.c (staticp): Do not call langhook.
10676 * langhooks.c (lhd_staticp): Delete.
10677 * langhooks-def.h (lhd_staticp): Delete prototype.
10678 (LANG_HOOKS_STATICP): Delete.
10679 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
10680
ba20e309
UB
10681 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
10682 instead of DECL_STMTs.
2ec5deb5 10683
928c19bb
JM
106842009-03-29 Joseph Myers <joseph@codesourcery.com>
10685
10686 PR c/456
10687 PR c/5675
10688 PR c/19976
10689 PR c/29116
10690 PR c/31871
10691 PR c/35198
10692 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
10693 void_type_node.
10694 (fold_call_expr): Return a NOP_EXPR from folding rather than the
10695 contained expression.
ba20e309 10696 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
10697 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
10698 conditional expressions for C.
10699 (decl_constant_value_for_optimization): Move from
ba20e309 10700 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
10701 whether optimizing and that the expression is a VAR_DECL not of
10702 array type instead of doing such checks in the caller. Do not
10703 check pedantic. Call gcc_unreachable for C++.
10704 * c-common.def (C_MAYBE_CONST_EXPR): New.
10705 * c-common.h (c_fully_fold, c_save_expr,
10706 decl_constant_value_for_optimization): New prototypes.
10707 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10708 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10709 EXPR_INT_CONST_OPERANDS): Define.
10710 * c-convert.c (convert): Strip nops from expression.
10711 * c-decl.c (groktypename): Take extra parameters expr and
10712 expr_const_operands. Update call to grokdeclarator.
10713 (start_decl): Update call to grokdeclarator. Add statement for
10714 expressions used in type of decl.
10715 (grokparm): Update call to grokdeclarator.
10716 (push_parm_decl): Update call to grokdeclarator.
10717 (build_compound_literal): Add parameter non_const and build a
10718 C_MAYBE_COSNT_EXPR if applicable.
10719 (grokdeclarator): Take extra parameters expr and
10720 expr_const_operands. Track expressions used in declaration
10721 specifiers and declarators. Fold array sizes and track whether
10722 they are constant expressions and whether they are integer
10723 constant expressions.
10724 (parser_xref_tag): Set expr and expr_const_operands fields in
10725 return value.
10726 (grokfield): Update call to grokdeclarator.
10727 (start_function): Update call to grokdeclarator.
10728 (build_null_declspecs): Set expr and expr_const_operands fields in
10729 return value.
10730 (declspecs_add_type): Handle expressions in typeof specifiers.
10731 * c-parser.c (c_parser_declspecs): Set expr and
10732 expr_const_operands fields for declaration specifiers.
10733 (c_parser_enum_specifier): Likewise.
10734 (c_parser_struct_or_union_specifier): Likewise.
10735 (c_parser_typeof_specifier): Likewise. Update call to
10736 groktypename. Fold expression as needed. Return expressions with
10737 type instead of adding statements.
10738 (c_parser_attributes): Update calls to c_parser_expr_list.
10739 (c_parser_statement_after_labels): Fold expression before passing
10740 to objc_build_throw_stmt.
10741 (c_parser_condition): Fold expression.
10742 (c_parser_asm_operands): Fold expression.
10743 (c_parser_conditional_expression): Use c_save_expr. Update call
10744 to build_conditional_expr.
10745 (c_parser_alignof_expression): Update call to groktypename.
10746 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
10747 original_code. Fold expression argument of va_arg. Create
10748 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
10749 argument to va_arg. Update calls to groktypename. Fold array
10750 index for offsetof. Verify that first argument to
10751 __builtin_choose_expr has integer type.
10752 (c_parser_postfix_expression_after_paren_type): Update calls to
10753 groktypename and build_compound_literal. Handle expressions with
10754 side effects in type name.
10755 (c_parser_postfix_expression_after_primary): Update call to
10756 c_parser_expr_list. Set original_code for calls to
10757 __builtin_constant_p.
10758 (c_parser_expr_list): Take extra parameter fold_p. Fold
10759 expressions if requested.
10760 (c_parser_objc_type_name): Update call to groktypename.
10761 (c_parser_objc_synchronized_statement): Fold expression.
10762 (c_parser_objc_receiver): Fold expression.
10763 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
10764 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
10765 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
10766 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
10767 (struct c_typespec): Add elements expr and expr_const_operands.
10768 (struct c_declspecs): Add elements expr and expr_const_operands.
10769 (groktypename, build_conditional_expr, build_compound_literal):
10770 Update prototypes.
10771 (in_late_binary_op): Declare.
10772 * c-typeck.c (note_integer_operands): New function.
10773 (in_late_binary_op): New variable.
10774 (decl_constant_value_for_broken_optimization): Move to c-common.c
10775 and rename to decl_constant_value_for_optimization.
10776 (default_function_array_conversion): Do not strip nops.
10777 (default_conversion): Do not call
10778 decl_constant_value_for_broken_optimization.
10779 (build_array_ref): Do not fold result.
10780 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
10781 result when operand is a VLA.
10782 (c_expr_sizeof_type): Update call to groktypename. Handle
10783 expressions included in type name. Use C_MAYBE_CONST_EXPR for
10784 result when operand names a VLA type.
10785 (build_function_call): Update call to build_compound_literal.
10786 Only fold result for calls to __builtin_* functions. Strip
10787 NOP_EXPR from INTEGER_CST returned from such functions. Fold
10788 the function designator.
10789 (convert_arguments): Fold arguments. Update call to
10790 convert_for_assignment.
10791 (build_unary_op): Handle increment and decrement of
10792 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
10793 decrement earlier. Fold operand of increment and decrement.
10794 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
10795 built for integer operand. Wrap returns that are INTEGER_CSTs
10796 without being integer constant expressions or that have integer
10797 constant operands without being INTEGER_CSTs.
10798 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10799 (build_conditional_expr): Add operand ifexp_bcp. Track whether
10800 result is an integer constant expression or can be used in
10801 unevaluated parts of one and avoid folding and wrap as
10802 appropriate. Fold operands before possibly doing -Wsign-compare
10803 warnings.
10804 (build_compound_expr): Wrap result for C99 if operands can be used
10805 in integer constant expressions.
10806 (build_c_cast): Update call to digest_init. Do not ignore
10807 overflow from casting floating-point constants to integers. Wrap
10808 results that could be confused with integer constant expressions,
10809 null pointer constants or floating-point constants.
10810 (c_cast_expr): Update call to groktypename. Handle expressions
10811 included in type name.
10812 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
10813 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
10814 Update calls to convert_for_assignment.
10815 (convert_for_assignment): Take new parameter
10816 null_pointer_constant. Do not strip nops or call
10817 decl_constant_value_for_broken_optimization. Set
10818 in_late_binary_op for conversions to boolean.
10819 (store_init_value): Update call to digest_init.
10820 (digest_init): Take new parameter null_pointer_constant. Do not
10821 call decl_constant_value_for_broken_optimization. pedwarn for
10822 initializers not constant expressions. Update calls to
10823 convert_for_assignment.
10824 (constructor_nonconst): New.
10825 (struct constructor_stack): Add nonconst element.
10826 (really_start_incremental_init, push_init_level, pop_init_level):
10827 Handle constructor_nonconst and nonconst element.
10828 (set_init_index): Call constant_expression_warning for array
10829 designators.
10830 (output_init_element): Fold value. Set constructor_nonconst as
10831 applicable. pedwarn for initializers not constant expressions.
10832 Update call to digest_init. Call constant_expression_warning
10833 where constant initializers are required.
10834 (process_init_element): Use c_save_expr.
10835 (c_finish_goto_ptr): Fold expression.
10836 (c_finish_return): Fold return value. Update call to
10837 convert_for_assignment.
10838 (c_start_case): Fold switch expression.
10839 (c_process_expr_stmt): Fold expression.
10840 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 10841 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
10842 (build_binary_op): Track whether results are integer constant
10843 expressions or may occur in such, disable folding and wrap results
10844 as applicable. Fold operands for -Wsign-compare warnings unless
10845 in_late_binary_op.
10846 (c_objc_common_truthvalue_conversion): Handle results folded to
10847 integer constants that are not integer constant expressions.
10848 * doc/extend.texi: Document when typeof operands are evaluated,
10849 that condition of __builtin_choose_expr is an integer constant
10850 expression, and more about use of __builtin_constant_p in
10851 initializers.
10852
5babbcc0
RG
108532009-03-29 Richard Guenther <rguenther@suse.de>
10854
10855 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10856 propagate addresses of array references.
10857
0340f2ba
SB
108582009-03-29 Steven Bosscher <steven@gcc.gnu.org>
10859
10860 * regmove.c (perhaps_ends_bb_p): Remove.
10861 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
10862 from INSN and check that the main loop stays within that basic block.
10863 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10864 (regmove_forward_pass): Split out from regmove_optimize. Use
10865 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10866 (regmove_backward_pass): Split out from regmove_optimize. Use
10867 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10868 (regmove_optimize): Simplify.
10869
eeae74a1
L
108702009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10871
10872 PR target/39545
10873 * config/i386/i386.c (classify_argument): Ignore flexible array
10874 member in struct and warn ABI change.
10875
a24078b2
L
108762009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10877
10878 * config/i386/i386-protos.h (ix86_agi_dependent): New.
10879
10880 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10881 (ix86_adjust_cost): Updated.
10882
a8da523f
JH
108832009-03-29 Jan Hubicka <jh@suse.cz>
10884
10885 PR middle-end/28850
10886 * tree-pass.h (pass_cleanup_eh): New function.
10887 (remove_unreachable_regions): Break code handling RTL
10888 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10889 that can not be reached by runtime.
10890 (can_be_reached_by_runtime): New function.
10891 (label_to_region_map): New function.
10892 (num_eh_regions): New function.
10893 (rtl_remove_unreachable_regions): New function.
10894 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10895 (remove_eh_region): New function.
10896 * except.h: Include sbitmap and vecprim.
10897 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10898 num_eh_regions): Declare.
10899 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 10900 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
10901 * tree-eh.c (tree_remove_unreachable_handlers): New function.
10902 (tree_empty_eh_handler_p): New function.
10903 (cleanup_empty_eh): New function.
10904 (cleanup_eh): New function.
10905 (pass_cleanup_eh): New function.
10906
98f358e5
JH
109072009-03-29 Jan Hubicka <jh@suse.cz>
10908
10909 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10910 for removed regions.
10911
13a9fa44
JH
109122009-03-29 Jan Hubicka <jh@suse.cz>
10913
10914 * except.c (dump_eh_tree): Dump all datastructures.
10915
e38cf733
JH
109162009-03-29 Jan Hubicka <jh@suse.cz>
10917
10918 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10919 (duplicate_eh_regions_1): Likewise.
10920 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10921 vector; call EH verification.
10922 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10923 Be ready for region being removed.
10924
12802c2b
JH
109252009-03-29 Jan Hubicka <jh@suse.cz>
10926
10927 * bitmap.c (bitmap_last_set_bit): New function.
10928 * bitmap.h (bitmap_last_set_bit): Declare.
10929
4ea80a41
DA
109302009-03-29 David Ayers <ayers@fsfe.org>
10931
10932 PR objc/27377
10933 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10934 by calling objc_compare_types and surpress warnings about
10935 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 10936
4ea80a41 109372009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
10938
10939 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10940 call initialize_inline_failed.
10941 (initialize_inline_failed): Move it from here ...
10942 * cgraph.c (initialize_inline_failed): ... to here.
10943 (cgraph_create_edge): Call initialize_inline_failed rather than
10944 setting inline_failed directly.
10945
7fb0ee07
BE
109462009-03-29 Ben Elliston <bje@au.ibm.com>
10947
10948 PR target/32542
10949 * sysv4.opt (msdata): Improve comment.
10950 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10951 * sysv4.h (SVR4_ASM_SPEC): Likewise.
10952
0be77bf2
BE
109532009-03-29 Ben Elliston <bje@au.ibm.com>
10954
10955 PR target/30451
10956 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10957 load and store attributes.
10958
593812b6
BE
109592009-03-29 Ben Elliston <bje@au.ibm.com>
10960
10961 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10962 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10963 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
10964 * doc/extend.texi (X86 Built-in Functions): Add index entries for
10965 __builtin_infq and __builtin_huge_valq.
10966
8272d11d
AS
109672009-03-28 Anatoly Sokolov <aesok@post.ru>
10968
10969 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
10970 atmega8m1 devices.
10971 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10972 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
10973
74fe548b
XDL
109742009-03-28 Xinliang David Li <davidxl@google.com>
10975
2ba9daa7 10976 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
10977 (do_dbg_cnt): New function.
10978
33977f81
JH
109792009-03-28 Jan Hubicka <jh@suse.cz>
10980
10981 Merge from pretty-ipa:
10982
10983 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 10984
33977f81
JH
10985 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10986 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
10987 * passes.c (function_called_by_processed_nodes_p): New.
10988 * ipa-pure-const.c (check_call): Fix handling of operands.
10989 (analyze_function): Dump debug output for skipped bodies.
10990 (local_pure_const): Use function_called_by_processed_nodes_p.
10991 * dwarf2out.c (reference_to_unused): Use output.
10992 * passes.c (do_per_function_toporder): Likewise.
10993
10994 2008-11-12 Jan Hubicka <jh@suse.cz>
10995
10996 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
10997 * ipa-pure-const.c (funct_state_d): Add can throw field; make
10998 state_set_in_source enum
10999 (check_decl): Ignore memory tags; do not set fake looping flags;
11000 dump diagnostics.
11001 (check_operand, check_tree, check_rhs_var, check_lhs_var,
11002 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
11003 (check_call, analyze_function): Rewrite.
11004 (check_stmt): New.
11005 (add_new_function): Update call of analyze_function.
11006 (generate_summary): Add call of analyze_function.
11007 (propagate): Propagate can_throw; handle state_set_in_source correctly.
11008 (local_pure_const): New function.
11009 (pass_local_pure_const): New pass.
11010 * ipa-inline.c (inline_transform): Set after_inlining.
11011 * tree-eh.c (stmt_can_throw_external): New.
11012 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
11013 work with aliasing built.
11014 * tree-flow.h (stmt_can_throw_external): New.
11015 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
11016 and local pure/const pass in early and late optimization queue.
ba20e309 11017
617f3897
MJ
110182009-03-28 Martin Jambor <mjambor@suse.cz>
11019
11020 * fold-const.c (get_pointer_modulus_and_residue): New parameter
11021 allow_func_align.
11022 (fold_binary): Allow function decl aligment consideration is the
11023 second argument is integer constant one.
11024 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
11025 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
11026 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
11027
fe89fbc5
JH
110282009-03-28 Jan Hubicka <jh@suse.cz>
11029
11030 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
11031 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
11032 * function.h (rtl_data): Add nothrow flag.
11033 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
11034 set DECL_NOTHROW for AVAILABLE functions.
11035
574872ff
JJ
110362009-03-28 Jakub Jelinek <jakub@redhat.com>
11037
b3bf8855
JJ
11038 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
11039 following vector keyword has expansion starting with pixel or bool
11040 keyword, expand vector to __vector and pixel or bool to __pixel or
11041 __bool.
11042
574872ff
JJ
11043 PR c++/39554
11044 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
11045 warn_if_disallowed_function_p): Removed.
11046 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
11047 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
11048 warning_if_disallowed_function_p.
11049 * flags.h (warn_if_disallowed_function_p,
11050 warn_disallowed_functions): Removed.
11051 * common.opt (Wdisallowed-function-list=): Removed.
11052 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
11053
b005da11
RG
110542009-03-28 Richard Guenther <rguenther@suse.de>
11055
11056 PR tree-optimization/38723
11057 * tree-ssa-pre.c (compute_avail): Add all default definitions to
11058 the entry block.
11059
1de812a6
JH
110602009-03-28 Jan Hubicka <jh@suse.cz>
11061
11062 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
11063 test introduced by my previous patch.
11064
fbb789d4
RG
110652009-03-28 Richard Guenther <rguenther@suse.de>
11066
11067 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
11068 the PHIs value undefined.
11069
6f1873a1
JH
110702009-03-28 Jan Hubicka <jh@suse.cz>
11071
11072 * tree-pass.h (pass_fixup_cfg): New pass.
11073 * ipa-inline.c (inline_transform): Set
11074 always_inline_functions_inlined/after_inlining.
11075 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
11076 (pass_fixup_cfg): New pass.
11077 * passes.c (init_optimization_passes): Add fixup_cfg.
11078
17021bc8
RG
110792009-03-28 Richard Guenther <rguenther@suse.de>
11080
11081 PR tree-optimization/38458
11082 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
11083 argument use the arguments copy-of value.
11084
e8114fba
RG
110852009-03-28 Richard Guenther <rguenther@suse.de>
11086
11087 PR tree-optimization/38180
11088 * tree-ssa-ccp.c (get_default_value): Simplify.
11089 (likely_value): Likewise.
11090 (surely_varying_stmt_p): Properly handle VOP case.
11091 (ccp_initialize): Likewise.
11092 (ccp_fold): Handle propagating through *&.
11093 (fold_const_aggregate_ref): Also handle decls.
11094
257eb6e3
JH
110952009-03-28 Jan Hubicka <jh@suse.cz>
11096
11097 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11098 * cgraph.h (cgraph_node): Likewise.
11099 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
11100 (cgraph_reset_node): Use process flag.
11101 (cgraph_mark_functions_to_output): Likewise.
11102 (cgraph_expand_function): Likewise.
11103 (cgraph_expand_all_functions): Likewise.
11104 (cgraph_output_in_order): Likewise.
11105 * dwarf2out.c (reference_to_unused): Likewise.
11106 * passes.c do_per_function_toporder): Likewise.
11107
61a05df1
JH
111082009-03-28 Jan Hubicka <jh@suse.cz>
11109
11110 Bring from lto-branch:
ba20e309 11111
61a05df1
JH
11112 2008-09-03 Doug Kwan <dougkwan@google.com>
11113
11114 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
11115 enums instead of reason strings.
11116 * cgraph.c (cgraph_create_edge): Same.
11117 (cgraph_inline_failed_string): New function.
11118 * cgraph.h (cgraph_inline_failed_t): New enum type.
11119 (cgraph_inline_failed_string): New prototype.
11120 (struct cgraph_edge): Change type of INLINED_FAILED from constant
11121 char pointer to cgraph_inline_failed_t.
11122 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
11123 (cgraph_default_inline_p): Ditto.
60839f5d 11124 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
11125 to cgraph_inline_failed_t pointer.
11126 * cif-code.def: New file.
11127 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
11128 reason string.
11129 (cgraph_check_inline_limits): Change type of REASON to pointer to
11130 cgraph_inline_failed_t. Replace reason strings with enums.
11131 (cgraph_default_inline_p): Ditto.
11132 (cgraph_recursive_inlining_p): Ditto.
11133 (update_caller_keys): Change type of FAILED_REASON to
11134 cgraph_inline_failed_t.
11135 (cgraph_set_inline_failed): Change type of REASON to pointer to
11136 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
11137 convert enums to strings for text output.
11138 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
11139 to be of type cgraph_inline_failed_t. Replace reason strings with
11140 enums. Call cgraph_inline_failed_string to covert enums
11141 to strings for text output.
11142 (cgraph_decide_inlining): Replace reason strings with enums.
11143 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
11144 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
11145 for text output.
11146 * tree-inline.c (expand_call_inline): Change type of REASON
11147 to cgraph_inline_failed_t. Replace reason strings with enums.
11148 Call cgraph_inline_failed_string for text output.
11149 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
11150 (cgraph.o): Ditto.
11151
144e8aac
JH
111522009-03-28 Jan Hubicka <jh@suse.cz>
11153
11154 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
11155 cgraph_clone_node): Remove master clone handling.
11156 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11157 * cgraph.h (master_clone): Remove.
11158 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11159 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
11160 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
11161
4a371c8d
JH
111622009-03-28 Jan Hubicka <jh@suse.cz>
11163
11164 * cgraph.c (cgraph_function_body_availability): Functions declared
11165 inline are always safe to assume that it is not going to be replaced.
11166
6cdb0ee3
RG
111672009-03-28 Richard Guenther <rguenther@suse.de>
11168
11169 PR tree-optimization/38513
11170 * tree-ssa-pre.c (eliminate): Remove redundant stores.
11171 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11172 EXC_PTR_EXPR and FILTER_EXPR.
11173 (get_ref_from_reference_ops): Likewise.
11174
8ca1fd76
RG
111752009-03-28 Richard Guenther <rguenther@suse.de>
11176
11177 PR tree-optimization/38968
11178 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
11179 Use FLOOR_MOD_EXPR to compute misalignment.
11180
a254e44d
RG
111812009-03-28 Richard Guenther <rguenther@suse.de>
11182
11183 PR tree-optimization/37795
11184 * tree.h (combine_comparisons): Declare.
11185 * fold-const.c (combine_comparisons): Export.
11186 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
11187 comparisons.
11188 (ifcombine_iforif): Use combine_comparisons.
11189
a8ee227c
JH
111902009-03-28 Jan Hubicka <jh@suse.cz>
11191
11192 * tree-eh.c (inlinable_call_p): New function.
11193 (make_eh_edges): Use it.
11194 (verify_eh_edges): Use it.
11195 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
11196 * except.c (reachable_next_level): Add inlinable_function argument
11197 (sjlj_find_directly_reachable_regions): Update.
11198 (add_reachable_handler): Do not set saw_any_handlers.
11199 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
11200 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11201 Add new inlinable call parameter.
11202 (can_throw_internal, can_throw_external): Update.
11203 * except.h (can_throw_internal_1, can_throw_external_1,
11204 foreach_reachable_handler): Update declaration.
11205
52c0e446
JM
112062009-03-28 Joseph Myers <joseph@codesourcery.com>
11207
11208 * config/arm/t-arm-coff, config/h8300/coff.h,
11209 config/i386/i386-aout.h, config/i386/i386-coff.h,
11210 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
11211 config/pdp11/2bsd.h, config/rs6000/aix41.h,
11212 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
11213 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
11214 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
11215 sys-types.h: Remove.
11216 * Makefile.in: Remove protoize and fixproto support and references
11217 in comments.
11218 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
11219 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
11220 Remove.
11221 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
11222 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
11223 unprotoize$(exeext).
11224 (rest.encap): Don't depend on $(STMP_FIXPROTO)
11225 (.PHONY): Don't depend on proto.
11226 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
11227 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
11228 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
11229 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
11230 build/gen-protos.o, build/scan.o, xsys-protos.h,
11231 build/fix-header$(build_exeext), build/fix-header.o,
11232 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
11233 stmp-install-fixproto): Remove.
11234 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
11235 SYSCALLS.c or fixproto files.
11236 (install-common): Don't install protoize.
11237 (install-headers-tar, install-headers-cpio, install-headers-cp):
11238 Don't depend on $(STMP_FIXPROTO).
11239 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
11240 install fixproto files or write out fixproto settings.
11241 (uninstall): Don't uninstall protoize.
11242 * config.gcc (use_fixproto): Remove.
11243 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
11244 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
11245 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
11246 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
11247 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
11248 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
11249 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
11250 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
11251 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
11252 * config/t-vxworks (STMP_FIXPROTO): Remove.
11253 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
11254 STMP_FIXPROTO): Remove.
11255 * config.in, configure: Regenerate.
11256 * crtstuff.c (gid_t, uid_t): Don't undefine.
11257 * doc/install.texi: Change m68k-coff to m68k-elf in example.
11258 (arm-*-coff, arm-*-aout: Remove target entries.
11259 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
11260 Remove mention of AIX 4.1.
11261 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
11262 * doc/invoke.texi (Running Protoize): Remove.
11263 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
11264 (Protoize Caveats): Remove.
11265 * tsystem.h: Update comments on headers assumed to exist.
11266
20a07f44
VM
112672009-03-27 Vladimir Makarov <vmakarov@redhat.com>
11268
11269 * genautomata.c: Add a new year to the copyright. Add a new
11270 reference.
11271 (struct insn_reserv_decl): Add comments for member bypass_list.
11272 (find_bypass): Remove.
11273 (insert_bypass): New.
11274 (process_decls): Use insert_bypass.
11275 (output_internal_insn_latency_func): Output all bypasses with the
11276 same input insn in one switch case.
11277
11278 * rtl.def (define_bypass): Describe bypass choice.
11279 * doc/md.texi (define_bypass): Ditto.
11280
3a0d06c1
RB
112812009-03-27 Richard Guenther <rguenther@suse.de>
11282
11283 * gimplify.c (mark_addressable): Export.
11284 * tree-flow.h (mark_addressable): Declare.
11285 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
11286 * tree-ssa.c (verify_phi_args): Verify that address taken
11287 variables have TREE_ADDRESSABLE set.
11288
112892009-03-27 Richard Guenther <rguenther@suse.de>
11290
11291 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
11292 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
11293 Do not mark decls TREE_ADDRESSABLE.
11294 (build_fold_addr_expr): Adjust.
11295 (fold_addr_expr): Remove.
11296 (fold_unary): Use build_fold_addr_expr.
11297 (fold_comparison): Likewise.
11298 (split_address_to_core_and_offset): Likewise.
11299 * coverage.c (tree_coverage_counter_addr): Mark the array decl
11300 TREE_ADDRESSABLE.
11301 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
11302 (gimplify_modify_expr_to_memcpy): Mark source and destination
11303 addressable.
11304 * omp-low.c (create_omp_child_function): Mark the object decl
11305 TREE_ADDRESSABLE.
11306 (lower_rec_input_clauses): Mark the var we take the address of
11307 TREE_ADDRESSABLE.
11308 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
11309
2ac26e15
L
113102009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11311
11312 PR middle-end/39315
11313 * cfgexpand.c (expand_one_stack_var_at): Change alignment
11314 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
11315
472c7fbd
RG
113162009-03-27 Richard Guenther <rguenther@suse.de>
11317
11318 PR tree-optimization/39120
11319 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
11320 constraints.
11321 (handle_lhs_call): Process return constraints. Add escape
11322 constraints if necessary.
11323 (handle_const_call): Fill out return constraints. Make nested
11324 case more precise. Avoid consttmp if possible.
11325 (handle_pure_call): Fill out return constraints. Avoid
11326 callused if possible.
11327 (find_func_aliases): Simplify call handling.
11328
113292009-03-27 Richard Guenther <rguenther@suse.de>
11330
11331 PR tree-optimization/39120
11332 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
11333 as a representative.
11334 (solve_graph): Do propagate CALLUSED.
11335 (handle_pure_call): Use a scalar constraint from CALLUSED for
11336 the return value.
11337 (find_what_p_points_to): CALLUSED shall not appear in poins-to
11338 solutions.
11339
d9223014
L
113402009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11341
11342 PR c/39323
11343 * c-common.c (handle_aligned_attribute): Properly check alignment
11344 overflow. Use (1U << i) instead of (1 << i).
11345
ba20e309 11346 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
11347
11348 * expr.h (get_mem_align_offset): Updated.
11349
11350 * tree.h (tree_decl_common): Change align to "unsigned int" and
11351 move it before pointer_alias_set.
11352
689b689c
L
113532009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11354 Jakub Jelinek <jakub@redhat.com>
11355
11356 PR target/38034
11357 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
11358 gr_register_operand with gr_reg_or_0_operand.
11359 (cmpxchg_rel_di): Likewise.
11360 (sync_lock_test_and_set<mode>): Likewise.
11361
c619e982
L
113622009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11363
11364 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
11365 (true_regnum): Likewise.
11366
11367 * rtlanal.c (subreg_info): Moved to ...
11368 * rtl.h (subreg_info): Here. New.
11369 (subreg_get_info): New.
11370
11371 * rtlanal.c (subreg_get_info): Make it extern.
11372
51212b32
L
113732009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11374
11375 PR target/39472
11376 * config/i386/i386.c (ix86_abi): New.
11377 (override_options): Handle -mabi=.
ba20e309 11378 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
11379 (ix86_call_abi_override): Likewise.
11380 (init_cumulative_args): Likewise.
11381 (function_arg_advance): Likewise.
11382 (function_arg_64): Likewise.
11383 (function_arg): Likewise.
11384 (ix86_pass_by_reference): Likewise.
11385 (ix86_function_value_regno_p): Likewise.
11386 (ix86_build_builtin_va_list_abi): Likewise.
11387 (setup_incoming_varargs_64): Likewise.
11388 (is_va_list_char_pointer): Likewise.
11389 (ix86_init_machine_status): Likewise.
ba20e309 11390 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
11391 (ix86_function_type_abi): Return enum calling_abi. Rewrite
11392 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 11393 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
11394 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
11395 with ix86_abi.
11396 (ix86_fn_abi_va_list): Updated.
11397
11398 * config/i386/i386.h (ix86_abi): New.
11399 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
11400 (CONDITIONAL_REGISTER_USAGE): Likewise.
11401 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
11402 (machine_function): Likewise.
11403
11404 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
11405 with ix86_abi.
11406 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
11407 (STACK_BOUNDARY): Likewise.
11408 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
11409
11410 * config/i386/i386.opt (mabi=): New.
11411
11412 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
11413 return enum calling_abi.
11414 (ix86_function_type_abi): Likewise.
11415 (ix86_function_abi): Removed.
11416
11417 * doc/invoke.texi: Document -mabi= option for x86.
11418
7338ea63
KG
114192009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11420
11421 * builtins.c (real_dconstp): Delete.
11422 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
11423
68599f33
DS
114242009-03-27 Dodji Seketeli <dodji@redhat.com>
11425 Jakub Jelinek <jakub@redhat.com>
11426
11427 PR debug/37959
11428 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
11429 (gen_subprogram_die): When a function is explicit, generate the
11430 DW_AT_explicit attribute.
11431 * langhooks.h (struct lang_hooks_for_decls): Add
11432 function_decl_explicit_p langhook.
11433 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
11434 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
11435
9f5e9983
JJ
114362009-03-27 Jakub Jelinek <jakub@redhat.com>
11437
64d7685c
JJ
11438 * builtins.c (fold_builtin_memory_op): Optimize memmove
11439 into memcpy if we can prove source and destination don't overlap.
11440
9f5e9983
JJ
11441 * tree-inline.c: Include gt-tree-inline.h.
11442 (clone_fn_id_num): New variable.
11443 (clone_function_name): New function.
11444 (tree_function_versioning): Use it.
11445 * Makefile.in (GTFILES): Add tree-inline.c.
11446
e54d52a8
MM
114472009-03-27 Mark Mitchell <mark@codesourcery.com>
11448
11449 * BASE-VER: Change to 4.5.0.
11450
e9d51dc6
XDL
114512009-03-27 Xinliang David Li <davidxl@google.com>
11452
11453 PR tree-optimization/39557
11454 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
11455
4577cea1
XDL
114562009-03-27 Xinliang David Li <davidxl@google.com>
11457
11458 PR tree-optimization/39548
2ba9daa7 11459 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
11460 candidate check.
11461
0f7464f4
L
114622009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11463
11464 * c-common.c (pointer_int_sum): Use %wd on return from
11465 tree_low_cst.
11466
a8847a7f
L
114672009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11468
11469 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
11470 on return from tree_low_cst.
11471
b0957daf
AP
114722009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
11473
11474 PR c++/36799
ba20e309
UB
11475 * ginclude/stdarg.h (va_copy): Define also for
11476 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 11477
a5f805df
MLI
114782009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11479
11480 PR c++/35652
11481 * builtins.h (c_strlen): Do not warn here.
11482 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
11483 * c-common.c (pointer_int_sum): Take an explicit location.
11484 Warn about offsets out of bounds.
11485 * c-common.h (pointer_int_sum): Adjust declaration.
11486
6f401211
RW
114872009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11488
a5f805df
MLI
11489 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
11490 markup glitch.
6f401211 11491
5a59b39e
JJ
114922009-03-26 Jakub Jelinek <jakub@redhat.com>
11493
11494 PR c++/39554
11495 * opts.c (warn_if_disallowed_function_p): Don't assume
11496 get_callee_fndecl must return non-NULL.
11497
d5f89b53
VM
114982009-03-26 Vladimir Makarov <vmakarov@redhat.com>
11499
11500 PR rtl-optimization/39522
11501 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
11502 when reg_reloaded_valid is set.
11503
61238a79
UW
115042009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11505
11506 * config/spu/divv2df3.c: New file.
11507 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
11508 (DPBIT_FUNCS): Filter out _div_df.
11509
03f8829b
BS
115102009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
11511
11512 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
11513 a jump insn, count that jump in the distance to the loop start.
11514
9fdcdc74
KK
115152009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
11516
11517 PR target/39523
11518 * config/sh/sh.c (calc_live_regs): Fix condition for global
11519 registers except PIC_OFFSET_TABLE_REGNUM.
11520
46994828
KT
115212009-03-25 Kai Tietz <kai.tietz@onevision.com>
11522
11523 PR/39518
11524 * doc/invoke.texi (-mconsole): New.
11525 (-mcygwin): New.
11526 (-mno-cygwin): New.
11527 (-mdll): New.
11528 (-mnop-fun-dllimport): New.
11529 (-mthread): New.
11530 (-mwin32): New.
11531 (-mwindows): New.
11532 (sub section "i386 and x86-64 Windows Options"): New.
11533
60839f5d 115342009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
11535
11536 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
11537 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
11538
ae560440
RG
115392009-03-25 Richard Guenther <rguenther@suse.de>
11540
11541 PR middle-end/39497
11542 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
11543 of -Wno-error.
11544
cd510f15
AM
115452009-03-25 Andrey Belevantsev <abel@ispras.ru>
11546
11547 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
11548 neither of haifa/selective schedulers are working.
11549
44ab0f0e
RW
115502009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11551
11552 * doc/invoke.texi (Debugging Options): Fix description of
11553 -fno-merge-debug-strings.
11554
ad9646c7
HPN
115552009-03-24 Hans-Peter Nilsson <hp@axis.com>
11556
e6142656
HPN
11557 * config/cris/libgcc.ver: New version-script.
11558 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
11559
ad9646c7
HPN
11560 * configure.ac <GAS features, nop mnemonic>: Add pattern
11561 crisv32-*-* for "nop".
ba20e309 11562 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
11563 * configure: Regenerate.
11564
09ac4473
IR
115652009-03-24 Ira Rosen <irar@il.ibm.com>
11566
11567 PR tree-optimization/39529
11568 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
11569 mark_sym_for_renaming for the tag copied to the new vector
11570 pointer.
11571
d94a427e
AL
115722009-03-24 Arthur Loiret <aloiret@debian.org>
11573
ba20e309 11574 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
11575 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
11576 EXTRA_SPEC_FUNCTIONS.
11577 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
11578 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
11579 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
11580 -march and -mtune options.
11581
60839f5d 115822009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
11583
11584 * config/m68k/t-rtems: Add m5329 multilib.
11585
603f5959
DS
115862009-03-24 Dodji Seketeli <dodji@redhat.com>
11587 Jakub Jelinek <jakub@redhat.com>
11588
11589 PR debug/39524
11590 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
11591 nodes.
11592
c5cdb03f
JJ
115932009-03-23 Jakub Jelinek <jakub@redhat.com>
11594
11595 PR c/39495
11596 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
11597 instead of c_parser_expression_conv, if original_code isn't one of the
11598 4 allowed comparison codes, fail.
11599
3691626c
RG
116002009-03-23 Richard Guenther <rguenther@suse.de>
11601
11602 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
11603 * tree.h (struct tree_type): Likewise.
11604 * reload.h (struct insn_chain): Likewise.
11605 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
11606 * function.h (struct function): Likewise.
11607 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
11608
88ccb72a
JJ
116092009-03-23 Jakub Jelinek <jakub@redhat.com>
11610
11611 PR tree-optimization/39516
11612 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
11613
60839f5d 116142009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 11615
2ba9daa7 11616 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
11617 should be set true if BITS_PER_WORD of target is bigger than 32
11618
f82162f8
HPN
116192009-03-22 Hans-Peter Nilsson <hp@axis.com>
11620
11621 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
11622 Translate -B-options to -rpath-link. Correct existing
11623 rpath-link and conditionalize on !nostdlib.
11624
048fd785
RW
116252009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11626
11627 * doc/extend.texi (Function Attributes, Variable Attributes):
11628 Fix typos.
11629 * doc/invoke.texi (Debugging Options, Optimize Options)
11630 (i386 and x86-64 Options, MCore Options): Likewise.
11631
6e75c1a9
JJ
116322009-03-20 Jakub Jelinek <jakub@redhat.com>
11633
11634 PR debug/37890
11635 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
11636 it for block local namespace aliases.
11637 (gen_decl_die): Pass context_die to gen_namespace_die.
11638
ea1199ee
JJ
116392009-03-19 Jakub Jelinek <jakub@redhat.com>
11640
11641 PR c/39495
11642 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
11643 minimum or maximum value.
11644
58929c10
AO
116452009-03-19 Alexandre Oliva <aoliva@redhat.com>
11646
11647 * reginfo.c (globalize_reg): Recompute derived reg sets.
11648
60839f5d 116492009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
11650
11651 PR target/39063
11652 * libgcc2.c (mprotect): Do not use signed arguments for
11653 VirtualProtect, use DWORD arguments. Also fix the 'may
11654 be used uninitialized' warning for the np variable.
11655
f57c2f04
JJ
116562009-03-19 Jakub Jelinek <jakub@redhat.com>
11657
11658 PR target/39496
11659 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
11660 functions using regparm calling conventions when not optimizing.
11661 (ix86_function_sseregparm): Similarly for sseregparm calling
11662 conventions.
11663
9e517d61
LF
116642009-03-19 Li Feng <nemokingdom@gmail.com>
11665
11666 PR middle-end/39500
11667 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
11668 dependence if the first conflict is after niter iterations.
11669
8ef20026
HPN
116702009-03-19 Hans-Peter Nilsson <hp@axis.com>
11671
11672 PR middle-end/38609
11673 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
11674 functions with dynamic stack-pointer adjustments.
11675
64e4a1a6
BE
116762009-03-19 Ben Elliston <bje@au.ibm.com>
11677
11678 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
11679 option; change to -msdata=data.
11680
9a0f3e86
RW
116812009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11682
11683 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
11684 and -fopenmp.
11685
09bc5979
EB
116862009-03-18 Eric Botcazou <ebotcazou@adacore.com>
11687
11688 PR target/35180
11689 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
11690
332459cd
SL
116912009-03-18 Sandra Loosemore <sandra@codesourcery.com>
11692
11693 * doc/invoke.texi (Code Gen Options): Expand discussion of
11694 -fno-common.
11695
8f5929e1
JJ
116962009-03-18 Jakub Jelinek <jakub@redhat.com>
11697
11698 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
11699 * matrix-reorg.c (struct matrix_info): Likewise.
11700 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
11701 * rtl.h (struct mem_attrs): Likewise.
11702 * df.h (struct df): Likewise.
11703 * tree-data-ref.h (struct data_dependence_relation): Likewise.
11704 * ira-int.h (struct ira_allocno): Likewise.
11705 * df-scan.c (struct df_collection_rec): Likewise.
11706 * ira.c (struct equivalence): Likewise.
11707 * function.c (struct temp_slot): Likewise.
11708 * cfgloop.h (struct loop): Likewise.
11709
d130d647
JJ
11710 PR debug/39485
11711 * function.c (use_register_for_decl): When not optimizing, disregard
11712 register keyword for variables with types containing methods.
11713
9968d233
SP
117142009-03-18 Sebastian Pop <sebastian.pop@amd.com>
11715
11716 PR middle-end/39447
11717 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
11718 (is_simple_operand): Call contains_component_ref_p before calling data
11719 reference analysis that would fail on COMPONENT_REFs.
11720
11721 * tree-vrp.c (search_for_addr_array): Fix formatting.
11722
69484bfd
RG
117232009-03-18 Richard Guenther <rguenther@suse.de>
11724
11725 * tree-vect-transform.c (vect_loop_versioning): Fold the
11726 generated comparisons.
11727 * tree-vectorizer.c (set_prologue_iterations): Likewise.
11728 (slpeel_tree_peel_loop_to_edge): Likewise.
11729
66811228
RW
117302009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11731
0631b69f
RW
11732 PR middle-end/37805
11733 * opts.c (print_specific_help): In addition to `undocumented',
11734 accept `separate' and `joined' flags if passed alone. Describe
11735 output by the first matched one of those.
11736 (common_handle_option): Skip over empty strings.
11737 * gcc.c (display_help): Fix help string for `--help='.
11738 * doc/invoke.texi (Option Summary, Overall Options): With
11739 `--help=', classes and qualifiers can both be repeated, but
11740 only the latter can be negated. One should not pass only
11741 negated qualifiers. Fix markup and examples.
11742
66811228
RW
11743 Revert
11744 2008-10-14 Jakub Jelinek <jakub@redhat.com>
11745 PR middle-end/37805
11746 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
11747 and -fhelp=separate.
11748
3c072c6b
JY
117492009-03-17 Jing Yu <jingyu@google.com>
11750
11751 PR middle-end/39378
80c65208
JY
11752 * function.h (struct rtl_data): Move is_thunk from here...
11753 (struct function): ...to here.
11754 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
11755 * varasm.c (assemble_start_function): Change is_thunk from crtl to
11756 cfun.
80c65208
JY
11757 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
11758 cfun.
11759 (alpha_does_function_need_gp, alpha_start_function): Likewise.
11760 (alpha_output_function_end_prologue): Likewise.
11761 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
11762 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
11763 (rs6000_output_function_epilogue): Likewise.
11764 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 11765
9ade279b
UB
117662009-03-17 Uros Bizjak <ubizjak@gmail.com>
11767
11768 PR target/39482
11769 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
11770 from different units in a single alternative.
11771 (*truncdfsf_i387): Ditto.
11772 (*truncxfsf2_mixed): Ditto.
11773 (*truncxfdf2_mixed): Ditto.
11774
16e60c17
JJ
117752009-03-17 Jakub Jelinek <jakub@redhat.com>
11776
98381eb4
JJ
11777 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11778 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11779
df5deb18
JJ
11780 PR debug/39474
11781 * tree-ssa-live.c (remove_unused_locals): Don't remove local
11782 unused non-artificial variables when not optimizing.
11783
a3f596ba
JJ
11784 PR debug/39471
11785 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11786 DW_TAG_imported_module even if decl is IMPORTED_DECL with
11787 NAMESPACE_DECL in its DECL_INITIAL.
11788
6b2b8871
JJ
11789 PR middle-end/39443
11790 * optabs.c (set_user_assembler_libfunc): New function.
11791 * expr.h (set_user_assembler_libfunc): New prototype.
11792 * c-common.c: Include libfuncs.h.
11793 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11794 for memcmp, memset, memcpy, memmove and abort.
11795 * Makefile.in (c-common.o): Depend on libfuncs.h.
11796
16e60c17
JJ
11797 PR debug/39412
11798 * dwarf2out.c (gen_inlined_enumeration_type_die,
11799 gen_inlined_structure_type_die, gen_inlined_union_type_die,
11800 gen_tagged_type_instantiation_die): Removed.
11801 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11802 do nothing.
11803
4d936aca
JJ
118042009-03-17 Janis Johnson <janis187@us.ibm.com>
11805
11806 PR testsuite/38526
11807 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11808 its use.
11809 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11810 (check-parallel-%): Ditto.
11811 (check-consistency): Ditto.
11812
4e9b2e50
KT
118132009-03-17 Kai Tietz <kai.tietz@onevision.com>
11814
11815 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11816 local variable rhs by NULL_TREE.
11817
21440b2d
L
118182009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11819
11820 PR target/39477
9ade279b 11821 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 11822
d8905c6a
L
118232009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11824
11825 PR target/39476
9ade279b 11826 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
11827
118282009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
11829
11830 PR target/39473
11831 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11832 for ms->sysv ABI calls only in 64bit mode.
11833
11834 * config/i386/i386.md (untyped_call): Support 32bit.
11835
cdcabece
L
118362009-03-16 H.J. Lu <hongjiu.lu@intel.com>
11837
11838 * doc/extend.texi: Replace x86_65 with x86_64.
11839
97b4ba9f
JJ
118402009-03-16 Jakub Jelinek <jakub@redhat.com>
11841
11842 PR tree-optimization/39455
11843 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11844 mismatches for POINTER_TYPE_P (type).
11845 (number_of_iterations_le): Likewise.
11846
60839f5d 118472009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
11848
11849 * config/picochip/picochip.c: Removed profiling support.
11850 * config/picochip/picochip.md: Removed profiling instruction.
11851 * config/picochip/picochip.h: Removed profiling builtin.
11852
f38095f3
JM
118532009-03-16 Joseph Myers <joseph@codesourcery.com>
11854
11855 * doc/install.texi (--with-host-libstdcxx): Document.
11856
2cb4817b
AS
118572009-03-14 Anatoly Sokolov <aesok@post.ru>
11858
11859 PR target/34299
11860 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11861 generate a warning if the function name does not begin with
11862 "__vector" and the function has either the 'signal' or 'interrupt'
11863 attribute, from here to ...
11864 (avr_declare_function_name): ...here. New function.
11865 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11866 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11867
39b2ac74
JJ
118682009-03-14 Jakub Jelinek <jakub@redhat.com>
11869
11870 PR bootstrap/39454
11871 * cse.c (fold_rtx): Don't modify original const_arg1 when
11872 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11873 separate variable instead.
11874 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11875 from out of range shift counts.
11876 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11877
ad41bd84 118782009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 11879
60839f5d 11880 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
11881 diagnostic.h with $(DIAGNOSTIC_H).
11882
ad41bd84 118832009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
11884
11885 PR target/39431
11886 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11887 predicate.
11888 * config/i386/sync.md (sync_compare_and_swap<mode>,
11889 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11890 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11891 into a register.
11892 (sync_double_compare_and_swapdi_pic,
11893 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11894 cmpxchg8b_pic_memory_operand instead of just memory_operand.
11895
122c59c7
L
118962009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11897
11898 PR target/39445
9ade279b 11899 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 11900
cec8874f
L
119012009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11902
11903 PR target/39327
11904 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11905 (avx_addsubv4df3): Likewise.
11906 (*avx_addsubv4sf3): Likewise.
11907 (sse3_addsubv4sf3): Likewise.
11908
bbb52802
L
119092009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11910
11911 PR target/38824
9ade279b 11912 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 11913
a812fb07
VM
119142009-03-12 Vladimir Makarov <vmakarov@redhat.com>
11915
11916 PR debug/39432
11917 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11918 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11919 registers for allocnos created from user-defined variables.
11920
4caab5ba
UW
119212009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11922
11923 PR target/39181
11924 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11925 of non-integer mode as well.
11926
498e51ca
AN
119272009-03-11 Adam Nemet <anemet@caviumnetworks.com>
11928
11929 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11930 for functions for which the parameter types are unknown.
11931
9bfaf89d
JJ
119322009-03-11 Jakub Jelinek <jakub@redhat.com>
11933
11934 PR target/39137
9ade279b 11935 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
11936 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11937 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11938 * config/i386/i386.c (ix86_local_alignment): For
11939 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11940 long long variables on the stack to avoid dynamic realignment.
11941 Allow the first argument to be a decl rather than type.
11942 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11943
18a3bdcb
NC
119442009-03-11 Nick Clifton <nickc@redhat.com>
11945
11946 PR target/5362
40190a76
NC
11947 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11948 options.
11949 Add description to mno-lsim option.
11950 * config/mcore/mcore.h: Remove comment about deprecated m4align
11951 option.
11952 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11953 * doc/invoke.texi: Add description of mno-lsim and
11954 mstack-increment options.
11955
18a3bdcb
NC
11956 * config/fr30/fr30.opt: Document the -mno-lsim option.
11957 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11958 and -mno-lsim options.
11959
dc215785
UW
119602009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11961
11962 * fold-const.c (fold_comparison): Only call fold_inf_compare
11963 if the mode supports infinities.
11964
7716876b
JM
119652009-03-11 Jason Merrill <jason@redhat.com>
11966
11967 PR debug/39086
11968 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
11969 end already did. Notice GIMPLE_CALL modifications of the result.
11970 Don't copy debug information from an ignored decl or a decl from
11971 another function.
11972
ddef83d2
RG
119732009-03-10 Richard Guenther <rguenther@suse.de>
11974 Nathan Froyd <froydnj@codesourcery.com>
11975
11976 PR middle-end/37850
9ade279b 11977 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
11978 (__divMODE3): Likewise.
11979
9a9ba8d9
JJ
119802009-03-09 Jakub Jelinek <jakub@redhat.com>
11981
11982 PR tree-optimization/39394
11983 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
11984 DECL_SIZE_UNIT of variable length FIELD_DECLs.
11985
929b7fc3
AK
119862009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11987
11988 * recog.c (verfiy_changes): Disallow renaming of hard regs in
11989 inline asms for register asm ("") declarations.
11990
1803581d
EB
119912009-03-09 Eric Botcazou <ebotcazou@adacore.com>
11992
11993 * fold-const.c (fold_unary): Fix comment.
11994
8454d27e
JH
119952009-03-07 Jan Hubicka <jh@suse.cz>
11996
11997 PR target/39361
969a5433
JJ
11998 * tree-inline.c (setup_one_parameter): Do replacement of const
11999 argument by constant in SSA form.
8454d27e 12000
3a695389
UW
120012009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12002
12003 PR middle-end/38028
12004 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
12005 determine alignment passed to assign_stack_local.
12006 (assign_parms_unsplit_complex): Likewise.
12007 * except.c (sjlj_build_landing_pads): Likewise.
12008
9f0e7885
JJ
120092009-03-06 Jakub Jelinek <jakub@redhat.com>
12010
65401a0b
JJ
12011 PR middle-end/39360
12012 * tree-flow.h (add_referenced_var): Return bool instead of void.
12013 * tree-dfa.c (add_referenced_var): Return result of
12014 referenced_var_check_and_insert call.
12015 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
12016 of referenced_var_check_and_insert.
12017
9f0e7885 12018 PR debug/39372
9ade279b 12019 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
12020 (gen_variable_die): Emit DW_AT_location on abstract static variable's
12021 DIE, don't emit it if abstract origin already has it.
12022 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
12023 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
12024
3b664bd1
JBG
120252009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12026
ba20e309 12027 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
12028 detection.
12029 (write_tm_constrs_h): Indent generated code.
12030
d8f8ca80
RR
120312009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12032
12033 * doc/extend.texi (Function Attributes): Add documentation
12034 for isr attributes.
12035
6c3d550c
JJ
120362009-03-06 Jakub Jelinek <jakub@redhat.com>
12037
12038 PR debug/39387
12039 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
12040 take locus from its DECL_SOURCE_LOCATION instead of input_location.
12041
f9e96751
BS
120422009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
12043
12044 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
12045 the loop as bad.
12046
ee0ee7e2
JJ
120472009-03-05 Jakub Jelinek <jakub@redhat.com>
12048
12049 PR debug/39379
12050 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
12051 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
12052
6c6094f1
UB
120532009-03-05 Uros Bizjak <ubizjak@gmail.com>
12054
12055 * config/i386/i386.md (R8_REG, R9_REG): New constants.
12056 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
12057 constants instead of magic numbers.
12058 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
12059 (QI_REG_P): Ditto.
12060 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
12061 (x86_64_ms_abi_int_parameter_registers): Ditto.
12062 (x86_64_int_return_registers): Ditto.
09f8a8d3 12063 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
12064 (ix86_expand_call): Ditto for clobbered_registers array.
12065 (ix86_hard_regno_mode_ok): Ditto.
12066 (x86_extended_QIreg_mentioned_p): Ditto.
12067
b267bd41
R
120682009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
12069
6c6094f1 12070 PR tree-optimization/39349
1f3ad3f0
R
12071 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
12072
b267bd41
R
12073 * combine.c (gen_lowpart_for_combine): Use omode when generating
12074 clobber.
12075
1242bc9d
R
120762009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
12077
6c6094f1 12078 PR rtl-optimization/39235
1242bc9d
R
12079 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
12080
48f03606
ZD
120812009-03-04 Zdenek Dvorak <ook@ucw.cz>
12082
12083 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
12084
b505e785
RG
120852009-03-04 Richard Guenther <rguenther@suse.de>
12086
12087 PR tree-optimization/39362
12088 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
12089 that occur in abnormal PHIs should be varying.
12090
f017bf5e
ZD
120912009-03-04 Zdenek Dvorak <ook@ucw.cz>
12092
12093 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
12094 Extend comments.
12095 (simple_iv): Take loop as an argument instead of statement.
12096 * tree-scalar-evolution.h (simple_iv): Declaration changed.
12097 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
12098 to simple_iv.
12099 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
12100 Ditto.
12101 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
12102 * matrix-reorg.c (analyze_transpose): Ditto.
12103 * tree-data-ref.c (dr_analyze_innermost): Ditto.
12104 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
12105 * tree-predcom.c (ref_at_iteration): Ditto.
12106 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
12107
6a66f28e
RG
121082009-03-04 Richard Guenther <rguenther@suse.de>
12109
12110 PR tree-optimization/39358
12111 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
12112 escaped_id and callused_id.
12113 (solve_graph): Likewise.
12114
57e454ee
RG
121152009-03-04 Richard Guenther <rguenther@suse.de>
12116
12117 PR tree-optimization/39339
12118 * tree-sra.c (try_instantiate_multiple_fields): Make it
12119 no longer ICE on the above.
12120
a6fe9ed4
JM
121212009-03-03 Joseph Myers <joseph@codesourcery.com>
12122
12123 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
12124 that fits within Pmode.
12125
dc672951
SE
121262009-03-03 Steve Ellcey <sje@cup.hp.com>
12127
12128 PR middle-end/10109
12129 * tm.texi (LIBCALL_VALUE): Update description.
12130
8b9d598f
SE
121312009-03-03 Steve Ellcey <sje@cup.hp.com>
12132
12133 PR middle-end/34443
12134 * doc/extend.texi (section): Update description.
12135
13e4e36e
L
121362009-03-03 H.J. Lu <hongjiu.lu@intel.com>
12137
12138 PR middle-end/39345
12139 * tree-inline.c (remapped_type): New.
12140 (can_be_nonlocal): Call remapped_type instead of remap_type.
12141
067dd3c9
JJ
121422009-03-03 Jakub Jelinek <jakub@redhat.com>
12143
12144 PR fortran/39354
12145 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
12146 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
12147
9bd9f738
RG
121482009-03-03 Richard Guenther <rguenther@suse.de>
12149
12150 PR middle-end/39272
12151 * tree.c (tree_nonartificial_location): New function.
12152 * tree.h (tree_nonartificial_location): Declare.
12153 * builtins.c (expand_builtin_memory_chk): Provide location
12154 of the call location for artificial function pieces.
12155 (maybe_emit_chk_warning): Likewise.
12156 (maybe_emit_sprintf_chk_warning): Likewise.
12157 (maybe_emit_free_warning): Likewise.
12158 * expr.c (expand_expr_real_1): Likewise.
12159
f07049c8
JJ
121602009-03-03 Jakub Jelinek <jakub@redhat.com>
12161
12162 PR tree-optimization/39343
12163 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
12164 COMPONENT_REF t has ARRAY_TYPE.
12165
7d4fba4a
SP
121662009-03-02 Sebastian Pop <sebastian.pop@amd.com>
12167
12168 PR middle-end/39335
12169 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
12170 when the type precision of the induction variable should be
12171 larger than the type precision of nit.
12172 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
12173 * graphite.c (graphite_loop_normal_form): Same.
12174 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
12175
78168632
UB
121762009-03-02 Uros Bizjak <ubizjak@gmail.com>
12177
12178 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
12179 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 12180 numbers to describe clobbered registers.
78168632 12181 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
12182 * config/i386/mmx.md (mmx_emms): Ditto.
12183 (mmx_femms): Ditto.
78168632 12184
63553059
RS
121852009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
12186
12187 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
12188 of ABI_64.
12189
500a1f85
UW
121902009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12191
12192 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
12193 (spu_section_type_flags): New function.
12194
962aae34
UB
121952009-03-02 Uros Bizjak <ubizjak@gmail.com>
12196
12197 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
12198 reg_class_contents of FLOAT_REGS into a temporary.
12199
6dfb529c 122002009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 12201 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
12202
12203 PR tree-optimization/39318
12204 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
12205 information to the vectorized statement.
12206
6b5629db
UB
122072009-03-01 Uros Bizjak <ubizjak@gmail.com>
12208
434426d2
UB
12209 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
12210 variable. Use defined names instead of magic constants for REX SSE
12211 registers.
6b5629db 12212
14e5b285
RG
122132009-03-01 Richard Guenther <rguenther@suse.de>
12214
12215 PR tree-optimization/39331
12216 * omp-low.c (lower_send_shared_vars): Do not receive new
12217 values for the reference of DECL_BY_REFERENCE parms or results.
12218
526d73ab
JH
122192009-03-01 Jan Hubicka <jh@suse.cz>
12220
12221 PR debug/39267
12222 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
12223 BLOCK_NONLOCALIZED_VAR): New macros.
12224 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
12225 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
12226 gen_decl_die): Add origin argument. Allow generation of die with
12227 origin at hand only.
526d73ab 12228 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
12229 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
12230 of gen_*.
526d73ab
JH
12231 (gen_block_die): Fix checking for unused blocks.
12232 (process_scope_var): Break out from .... ; work with origins only.
12233 (decls_for_scope) ... here; process nonlocalized list.
12234 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
12235 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
12236 vars.
526d73ab
JH
12237 (dump_scope_block): Dump them.
12238 * tree-inline.c (remap_decls): Handle nonlocalized vars.
12239 (remap_block): Likewise.
12240 (can_be_nonlocal): New predicate.
12241 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
12242
7a9d3fe8
RW
122432009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12244
12245 * configure: Regenerate.
12246
b3cdf3cb
RW
122472009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12248
a16d1645 12249 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 12250 Reuse help texts for duplicate options which do not have any.
a16d1645 12251
1156c176
RW
12252 * gcc.c (display_help): Document --version.
12253
033505fc
RW
12254 * gcc.c (main): If print_help_list and verbose_flag, ensure
12255 driver output comes before subprocess output.
12256
4d077054
RW
12257 * optc-gen.awk: Assign all remaining fields to help string,
12258 space-separated, for multi-line help in *.opt.
12259
a072f1cf
RW
12260 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
12261 -Wno-pedantic-ms-format is for MinGW targets only.
12262
b3cdf3cb
RW
12263 * doc/options.texi (Option file format): Fix bad indentation,
12264 restoring dropped sentence.
12265
a3aadcc5
JH
122662009-02-28 Jan Hubicka <jh@suse.cz>
12267
12268 * tree-inline.c (tree_function_versioning): Output debug info.
12269
1cf5abb3
JH
122702009-02-28 Jan Hubicka <jh@suse.cz>
12271
12272 PR debug/39267
12273 * tree-inline.c (setup_one_parameter): Do not copy propagate
12274 arguments when not optimizing.
12275
c4d3f42f
L
122762009-02-28 H.J. Lu <hongjiu.lu@intel.com>
12277
12278 PR target/39327
12279 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12280 (avx_addsubv4df3): Likewise.
12281 (*avx_addsubv4sf3): Likewise.
12282 (sse3_addsubv4sf3): Likewise.
12283 (*avx_addsubv2df3): Likewise.
12284 (sse3_addsubv2df3): Likewise.
12285 (avx_unpckhps256): Correct item selectors.
12286 (avx_unpcklps256): Likewise.
12287 (avx_unpckhpd256): Likewise.
12288 (avx_unpcklpd256): Likewise.
12289
eb50f5f4
JH
122902009-02-28 Jan Hubicka <jh@suse.cz>
12291
12292 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
12293 static vars.
12294 (copy_arguments_for_versioning): If var is declared don't declare it.
12295 (tree_function_versioning): First setup substitutions and then copy
12296 args.
12297
26140130
JH
122982009-02-27 Jan Hubicka <jh@suse.cz>
12299
12300 PR debug/39267
12301 * cgraph.h (varpool_output_debug_info): Remove.
12302 * cgraphunit.c (varpool_output_debug_info): Remove.
12303 * dwarf2out.c (deferred_locations_struct): New struct
12304 (deferred_locations): New type.
12305 (deferred_locations_list): New static var.
12306 (deffer_location): New function.
12307 (gen_variable_die): Use it.
12308 (decls_for_scope): Output info on local static vars.
12309 (dwarf2out_finish): Process deferred locations.
12310 * varpool.c (varpool_output_debug_info): Remove.
12311
cff7525f
JH
123122009-02-27 Jan Hubicka <jh@suse.cz>
12313
12314 PR debug/39267
12315 * tree.h (TREE_PROTECTED): Fix comment.
12316 (BLOCK_HANDLER_BLOCK): Remove.
12317 (struct tree_block): Remove handler_block add body_block.
12318 (inlined_function_outer_scope_p): New.
12319 (is_body_block): Remove.
12320 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
12321 * dwarf2out.c (is_inlined_entry_point): Remove.
12322 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
12323 (gen_block_die): Use is_inlined_entry_point check. Remove body block
12324 code.
cff7525f
JH
12325 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
12326 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
12327 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
12328 block with multiple subblocks.
cff7525f
JH
12329 (dump_scope_block): Prettier output; dump more flags and info.
12330 (dump_scope_blocks): New.
12331 (remove_unused_locals): Use dump_scope_blocks.
12332 * tree-flow.h (dump_scope_blocks): Declare.
12333 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
12334 * stmt.c (is_body_block): Remove.
12335 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
12336 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
12337
c20993b9
SP
123382009-02-27 Sebastian Pop <sebastian.pop@amd.com>
12339
12340 PR middle-end/39308
2ba9daa7 12341 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
12342 number_of_iterations_exit from a gcc_assert.
12343
e3cba5e5
AK
123442009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12345
60839f5d 12346 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
12347 jumps if COND is NULL.
12348 (find_cond_jump): New function.
12349 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 12350 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 12351
9dadeeb8
UB
123522009-02-26 Uros Bizjak <ubizjak@gmail.com>
12353
12354 * config/alpha/alpha.h (alpha_expand_mov): Return false if
12355 force_const_mem returns NULL_RTX.
12356
625d3251
EB
123572009-02-26 Jan Hubicka <jh@suse.cz>
12358
12359 PR debug/39267
12360 * cgraph.h (varpool_output_debug_info): Remove.
12361 * cgraphunit.c (varpool_output_debug_info): Remove.
12362 * dwarf2out.c (deferred_locations_struct): New struct
12363 (deferred_locations): New type.
12364 (deferred_locations_list): New static var.
12365 (deffer_location): New function.
12366 (gen_variable_die): Use it.
12367 (decls_for_scope): Output info on local static vars.
12368 (dwarf2out_finish): Process deferred locations.
12369 * varpool.c (varpool_output_debug_info): Remove.
12370
38432148 123712009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
12372
12373 PR rtl-optimization/39241
12374 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
12375 to subreg_offset_representable_p.
12376
62d049cf
PB
123772009-02-25 Paolo Bonzini <bonzini@gnu.org>
12378
12379 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
12380 execute function prototype. Get f and nregs from max_reg_num
12381 and get_insns. Remove the first backward pass as it's dead,
12382 guard the forward pass by flag_expensive_optimizations.
12383 (rest_of_handle_regmove): Delete.
12384 (pass_regmove): Replace it with regmove_optimize.
12385
f618d33e
MJ
123862009-02-25 Martin Jambor <mjambor@suse.cz>
12387
12388 PR tree-optimization/39259
12389 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 12390 calls_alloca function flags.
f618d33e
MJ
12391 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
12392 calls are detected.
12393
c8a05f7c
PB
123942009-02-25 Paolo Bonzini <bonzini@gnu.org>
12395
12396 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
12397 flags_set_1_rtx, flags_set_1_set): Delete.
12398 (regmove_optimize): Do not call mark_flags_life_zones.
12399
6d2538f5
JB
124002009-02-24 Julian Brown <julian@codesourcery.com>
12401
12402 PR target/35965
12403 * config/arm/arm.c (require_pic_register): Only set
12404 cfun->machine->pic_reg once per function.
12405
a2fa6772
SL
124062009-02-24 Sandra Loosemore <sandra@codesourcery.com>
12407
12408 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 12409 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 12410
5472de36
SE
124112009-02-24 Steve Ellcey <sje@cup.hp.com>
12412
12413 PR target/33785
12414 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
12415
844216f3
RG
124162009-02-24 Richard Guenther <rguenther@suse.de>
12417
12418 PR debug/39285
12419 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
12420
71adbef3 124212009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 12422 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
12423
12424 PR tree-optimization/39233
12425 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
12426 from converting them to a generic type.
12427
f1a558e0
SP
124282009-02-23 Sebastian Pop <sebastian.pop@amd.com>
12429
12430 PR tree-optimization/39260
12431 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
12432 contains a condition with a real type.
12433 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
12434
d8028f2c
JM
124352009-02-23 Jason Merrill <jason@redhat.com>
12436
12437 PR c++/38880
12438 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
12439 narrowing_initializer_constant_valid_p.
2ba9daa7 12440 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
12441 null_pointer_node for adding a pointer to itself.
12442
9283b513
JH
124432009-02-23 Jan Hubicka <jh@suse.cz>
12444
12445 PR c/12245
9dadeeb8
UB
12446 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
12447 resizing.
9283b513 12448
61e04322
JH
124492009-02-23 Jan Hubicka <jh@suse.cz>
12450
9dadeeb8
UB
12451 PR tree-optimization/37709
12452 * tree.c (block_ultimate_origin): Move here from dwarf2out.
12453 * tree.h (block_ultimate_origin): Declare.
12454 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
12455 * tree-ssa-live.c (remove_unused_scope_block_p):
12456 Eliminate blocks containig no instructions nor live variables nor
12457 nested blocks.
12458 (dump_scope_block): New function.
12459 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 12460 enable dumping at TDF_DETAILS.
61e04322 12461
38432148 124622009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
12463
12464 * config/i386/i386.c (classify_argument): Don't allow COImode
12465 and OImode.
12466 (function_arg_advance_32): Don't allow OImode.
12467 (function_arg_32): Likewise.
12468 (function_value_32): Likewise.
12469 (return_in_memory_32): Likewise.
12470 (function_arg_64): Remove OImode comment.
12471
38432148 124722009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
12473
12474 PR target/39261
12475 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
12476 ix86_expand_vector_set for V4DImode in 64bit mode only.
12477 (ix86_expand_vector_init_one_var): Likewise.
12478
dcd739a6
SP
124792009-02-21 Sebastian Pop <sebastian.pop@amd.com>
12480
12481 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
12482
6c3b938d
RS
124832009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12484
8e361f23 12485 PR bootstrap/39257
6c3b938d
RS
12486 * loop-iv.c: Revert last change.
12487 * emit-rtl.c: Likewise.
12488
38432148 124892009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
12490
12491 PR target/39256
12492 * config/i386/i386.c (type_natural_mode): Remove an extra
12493 space in the warning message.
12494 (function_value_32): Handle 32-byte vector modes.
12495 (return_in_memory_32): Likewise.
12496
2ec62529
RS
124972009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
12498
12499 * loop-iv.c (truncate_value): New function.
12500 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
12501 of lowpart_subreg.
12502 (lowpart_subreg): Move to...
12503 * emit-rtl.c: ...here.
12504
ecb8c3cc 125052009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 12506
ecb8c3cc
DS
12507 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
12508 accidental and undocumented change at revision 140860.
12509
ae46a823
JM
125102009-02-21 Joseph Myers <joseph@codesourcery.com>
12511
12512 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
12513 take gimple_seq * arguments.
12514 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
12515 types_compatible_p langhook.
12516
07d8efe3 125172009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 12518 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
12519
12520 * config/arm/arm.c (arm_builtin_va_list): New function.
12521 (arm_expand_builtin_va_start): Likewise.
12522 (arm_gimplify_va_arg_expr): Likewise.
12523 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
12524 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
12525 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
12526 (va_list_type): New variable.
12527 (arm_mangle_type): Mangle va_list_type appropriately.
12528
b1fb9f56
JJ
125292009-02-20 Jakub Jelinek <jakub@redhat.com>
12530
12531 PR middle-end/39157
12532 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
12533 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
12534 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
12535 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
12536 parameter to 1000 for -O1 by default.
12537 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
12538 parameter.
12539 * loop-invariant.c: Include params.h.
12540 (move_loop_invariants): Don't call move_single_loop_invariants on
12541 very large loops.
12542
5bc0807c
JM
125432009-02-20 Jaka Mocnik <jaka@xlab.si>
12544
12545 * calls.c (emit_library_call_value_1): Use slot_offset instead of
12546 offset when calculating bounds for indexing stack_usage_map. Fixes
12547 a buffer overflow with certain target setups.
12548
c69cd1f5
JJ
125492009-02-20 Jakub Jelinek <jakub@redhat.com>
12550
12551 PR target/39240
12552 * calls.c (expand_call): Clear try_tail_call if caller and callee
12553 disagree in promotion of function return value.
12554
09812622
JJ
125552009-02-19 Jakub Jelinek <jakub@redhat.com>
12556
12557 PR target/39175
12558 * c-common.c (c_determine_visibility): If visibility changed and
12559 DECL_RTL has been already set, call make_decl_rtl to update symbol
12560 flags.
12561
68017cb4
L
125622009-02-19 H.J. Lu <hongjiu.lu@intel.com>
12563
12564 PR c++/39188
12565 * varasm.c (assemble_variable): Don't check DECL_NAME when
12566 globalizing a variable.
12567
ab4194da
JM
125682009-02-19 Joseph Myers <joseph@codesourcery.com>
12569
12570 PR c/38483
12571 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
12572 expression before any __builtin_trap call.
12573 * c-typeck.c (build_function_call): Convert and check function
12574 arguments before generating a call to a trap. Evaluate the
12575 function arguments before the trap.
12576
6b67572e
UB
125772009-02-19 Uros Bizjak <ubizjak@gmail.com>
12578
12579 PR target/39228
12580 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
12581 (UNSPEC_FXAM_MEM): New unspec.
12582 (fxam<mode>2_i387_with_temp): New insn and split pattern.
12583 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
12584 memory using fxam<mode>2_i387_with_temp to remove excess precision.
12585
9e39dba6
RG
125862009-02-19 Richard Guenther <rguenther@suse.de>
12587
12588 PR tree-optimization/39207
12589 PR tree-optimization/39074
12590 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
12591 storedanything_tree): New.
12592 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 12593 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
12594 (build_succ_graph): Add edges from STOREDANYTHING to all
12595 non-direct nodes.
12596 (init_base_vars): Initialize STOREDANYTHING.
12597 (compute_points_to_sets): Free substitution info after
12598 building the succ graph.
12599 (ipa_pta_execute): Likewise.
12600
12601 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
12602 field.
12603 (do_ds_constraint): Do not add to special var or non-pointer
12604 field solutions.
12605 (type_could_have_pointers): Split out from ...
12606 (could_have_pointers): ... here. For arrays use the element type.
12607 (create_variable_info_for): Initialize may_have_pointers.
12608 (new_var_info): Likewise.
12609 (handle_lhs_call): Make the HEAP variable unknown-sized.
12610 (intra_create_variable_infos): Use a type with pointers for
12611 PARM_NOALIAS, make it unknown-sized.
12612
fd7b2603
L
126132009-02-18 H.J. Lu <hongjiu.lu@intel.com>
12614
12615 PR target/39224
6b67572e 12616 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 12617
98b80692
JM
126182009-02-18 Jason Merrill <jason@redhat.com>
12619
12620 PR target/39179
12621 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
12622 value if DECL_EXTERNAL.
12623 * tree-sra.c (sra_walk_gimple_assign): Likewise.
12624 * target.h (gcc_target::binds_local_p): Clarify "module".
12625 * tree.h (TREE_PUBLIC): Clarify "module".
12626
0705d3f4
L
126272009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
12628
12629 PR target/38891
12630 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
12631 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
12632
bce08d50
L
126332009-02-17 H.J. Lu <hongjiu.lu@intel.com>
12634
12635 PR target/39082
12636 * c.opt (Wabi): Support C and ObjC.
12637 (Wpsabi): New.
12638
12639 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
12640
12641 * config/i386/i386.c (classify_argument): Warn once about the ABI
12642 change when passing union with long double.
12643
12644 * doc/invoke.texi: Update -Wabi for warning psABI changes.
12645
5600f233
JM
126462009-02-18 Joseph Myers <joseph@codesourcery.com>
12647
12648 PR c/35447
12649 * c-parser.c (c_parser_compound_statement): Always enter and leave
12650 a scope.
12651
8cd01fe6
JDA
126522009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12653
12654 PR target/34587
12655 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
12656
418df9d7
JJ
126572009-02-18 Jakub Jelinek <jakub@redhat.com>
12658
12659 PR tree-optimization/36922
12660 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
12661 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
12662 Likewise.
12663
082d2ebb
RS
126642009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12665
12666 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
12667 to 0 for EABI64.
12668
17de576c
RS
126692009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12670
12671 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
12672
6d8d5435
RS
126732009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
12674
12675 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
12676 tree sharing.
12677
e69ff910
RB
126782009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
12679 Richard Sandiford <rdsandiford@googlemail.com>
12680
12681 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
12682 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
12683 (loongson_biadd): ...this.
12684
6b24ee26
RG
126852009-02-17 Richard Guenther <rguenther@suse.de>
12686
12687 PR tree-optimization/39202
12688 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
12689 a var make sure to follow existing collapses.
12690
91ab2c86
RG
126912009-02-17 Richard Guenther <rguenther@suse.de>
12692
12693 PR middle-end/39214
12694 * langhooks.c (lhd_print_error_function): Check for NULL block.
12695
73a63870
RG
126962009-02-17 Richard Guenther <rguenther@suse.de>
12697
12698 PR tree-optimization/39204
12699 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
12700 of the PHI arg.
12701
0e08f686
UB
127022009-02-17 Uros Bizjak <ubizjak@gmail.com>
12703
12704 * config/soft-fp/double.h: Update from glibc CVS.
12705
a60b7ddb
RG
127062009-02-17 Richard Guenther <rguenther@suse.de>
12707
12708 PR tree-optimization/39207
12709 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
12710 strict-aliasing warnings for pointers pointing to NULL.
12711
a47e20fd
JM
127122009-02-16 Joseph Myers <joseph@codesourcery.com>
12713
12714 PR c/35446
12715 * c-parser.c (c_parser_braced_init): Call pop_init_level when
12716 skipping until next close brace.
12717
50aab7dc
L
127182009-02-16 H.J. Lu <hongjiu.lu@intel.com>
12719
12720 PR target/37049
12721 * config/i386/i386.c (ix86_expand_push): Set memory alignment
12722 to function argument boundary.
12723
68e53db0
HS
127242009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
12725
12726 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
12727 in the lea_add. Reload eventually constraints it properly.
0d50d55a 12728 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
12729 "b", since it is not needed anymore.
12730
09e361bb
JJ
127312009-02-16 Jakub Jelinek <jakub@redhat.com>
12732
12733 * gthr-dce.h: Uglify function parameter and local variable names.
12734 * gthr-gnat.h: Likewise.
12735 * gthr-mipssde.h: Likewise.
12736 * gthr-nks.h: Likewise.
12737 * gthr-posix95.h: Likewise.
12738 * gthr-posix.h: Likewise.
12739 * gthr-rtems.h: Likewise.
12740 * gthr-single.h: Likewise.
12741 * gthr-solaris.h: Likewise.
12742 * gthr-tpf.h: Likewise.
12743 * gthr-vxworks.h: Likewise.
12744 * gthr-win32.h: Likewise.
12745
47f5a48f
L
127462009-02-15 H.J. Lu <hongjiu.lu@intel.com>
12747
12748 PR target/39196
12749 * config/i386/i386.md: Restrict the new peephole2 to move
12750 between MMX/SSE registers.
12751
68c9ab45
RG
127522009-02-15 Richard Guenther <rguenther@suse.de>
12753
12754 Revert
12755 2009-02-13 Richard Guenther <rguenther@suse.de>
12756
12757 * configure.ac: Enable LFS.
12758 * configure: Re-generate.
12759 * config.in: Likewise.
12760
d7815554
UW
127612009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12762
12763 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
12764 spu_srqwbyte, spu_srqwbytebc): Define.
12765 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
12766 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
12767 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
12768 "shrqby_<mode>"): New insn-and-split patterns.
12769 * config/spu/spu.c (expand_builtin_args): Determine and return
12770 number of operands using spu_builtin_description data.
12771 (spu_expand_builtin_1): Use it.
12772
c208436c
SE
127732009-02-13 Steve Ellcey <sje@cup.hp.com>
12774
12775 PR target/38056
12776 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12777 TARGET_CONST_GP.
12778
c2e7ba7e
L
127792009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12780
12781 PR target/39149
12782 * config/i386/i386.c (override_options): Correct warning
6c6094f1 12783 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 12784
72f4e3a7
L
127852009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12786
12787 PR target/39152
12788 * config/i386/i386.md: Restrict the new peephole2 to move
12789 between the general purpose registers.
12790
53f648e2
L
127912009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12792
12793 PR target/39162
12794 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 12795 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
12796 (function_arg_advance): Updated.
12797 (function_arg): Likewise.
12798 (ix86_function_value): Likewise.
12799 (ix86_return_in_memory): Likewise.
12800 (ix86_sol10_return_in_memory): Likewise.
12801 (ix86_gimplify_va_arg): Likewise.
12802 (function_arg_32): Don't warn ABX ABI change here.
12803 (function_arg_64): Likewise.
12804
38432148 128052009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
12806
12807 * loop-iv.c (implies_p): In the final case, test that operands 0
12808 of the two comparisons match.
12809
dd2139e7
BS
12810 * config/bfin/bfin.c (find_prev_insn_start): New function.
12811 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12812 (find_next_insn_start): Move.
12813
601b3e1a
RG
128142009-02-13 Richard Guenther <rguenther@suse.de>
12815
12816 * configure.ac: Enable LFS.
12817 * configure: Re-generate.
12818 * config.in: Likewise.
12819
f007042e
JM
128202009-02-13 Joseph Myers <joseph@codesourcery.com>
12821
12822 PR c/35444
12823 * c-parser.c (c_parser_parms_list_declarator): Discard pending
12824 sizes on syntax error after some arguments have been parsed.
12825
3f238e8b
JJ
128262009-02-12 Jakub Jelinek <jakub@redhat.com>
12827
12828 * doc/invoke.texi (-fira): Remove.
12829
328e13b7
L
128302009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12831
12832 * caller-save.c: Replace regclass.c with reginfo.c in comments.
12833 * recog.c: Likewise.
12834 * rtl.h: Likewise.
12835
c252db20
L
128362009-02-12 Uros Bizjak <ubizjak@gmail.com>
12837
12838 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12839 (umul_ppmm): Likewise.
12840 (count_leading_zeros): Likewise.
12841 (count_trailing_zeros): Likewise.
12842 (UMUL_TIME): Likewise.
12843
128442009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12845
ba181049
UB
12846 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12847 soft-fp/t-softfp to tmake_file.
c252db20
L
12848
12849 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
12850 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12851 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12852 IA64_BUILTIN_INFQ]: New.
c252db20
L
12853 (ia64_init_builtins): Initialize __builtin_infq,
12854 __builtin_fabsq and __builtin_copysignq if not HPUX.
12855 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12856 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12857
12858 * config/ia64/lib1funcs.asm (__divtf3): Define only if
12859 SHARED is defined.
12860 (__fixtfti): Likewise.
12861 (__fixunstfti): Likewise.
12862 (__floattitf): Likewise.
12863
12864 * config/ia64/libgcc-glibc.ver: New.
12865 * config/ia64/t-fprules-softfp: Likewise.
12866 * config/ia64/sfp-machine.h: Likewise.
12867
12868 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12869 (LIBGCC2_TF_CEXT): Likewise.
12870 (TF_SIZE): Likewise.
12871 (TARGET_INIT_LIBFUNCS): Likewise.
12872
ba181049 12873 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 12874 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 12875
f13eae6a
L
128762009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12877
12878 * config/i386/i386.c (construct_container): Rewrite processing
12879 BLKmode with X86_64_SSE_CLASS.
12880
12019aec
L
128812009-02-12 Paolo Bonzini <bonzini@gnu.org>
12882
12883 PR target/39152
12884 * config/i386/i386.md: Replace simplify_replace_rtx with
12885 replace_rtx in the new peephole2.
12886
28c11eb3
NS
128872009-02-12 Nathan Sidwell <nathan@codesourcery.com>
12888
12889 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12890 loop unrolling do not happen at -O2.
12891
c7b94907
MM
128922009-02-12 Michael Matz <matz@suse.de>
12893
12894 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12895
61e98967
JJ
128962009-02-12 Jakub Jelinek <jakub@redhat.com>
12897
12898 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12899 for -g3.
12900
a2a237b5
BE
129012009-02-12 Ben Elliston <bje@au.ibm.com>
12902
12903 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12904 patterns when updating the back chain. Missed in the 2009-02-10
12905 change.
12906
853eda8d
JJ
129072009-02-11 Janis Johnson <janis187@us.ibm.com>
12908
12909 * doc/extend.texi (Decimal Floating Types): Update identifier of
12910 draft TR and list of missing support.
12911
3ad6b266
JJ
129122009-02-11 Jakub Jelinek <jakub@redhat.com>
12913
12914 PR middle-end/39154
12915 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12916 bit to variable length decl's flags, add it also to its
12917 pointer replacement variable.
12918
b058b753
UB
129192009-02-11 Uros Bizjak <ubizjak@gmail.com>
12920 Jakub Jelinek <jakub@redhat.com>
12921
12922 PR target/39118
12923 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12924 (memory_blockage): New expander.
12925 (*memory_blockage): New insn pattern.
12926 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12927 instead of general blockage at the end of function prologue when
12928 frame pointer is used to access red zone area. Do not emit blockage
12929 when profiling, it is emitted in generic code.
12930 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12931 function epilogue when frame pointer is used to access red zone area.
12932
bab64f23
PB
129332009-02-11 Paolo Bonzini <bonzini@gnu.org>
12934
0ce6dcfa 12935 PR target/38824
bab64f23
PB
12936 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12937 by arithmetic with memory operands.
12938 * config/i386/predicates.md (commutative_operator): New.
12939
8fd94bda
JJ
129402009-02-10 Janis Johnson <janis187@us.ibm.com>
12941
12942 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12943 bulleted lists.
12944
794511d2
EB
129452009-02-10 Eric Botcazou <ebotcazou@adacore.com>
12946
12947 * alias.h (record_alias_subset): Declare.
12948 * alias.c (record_alias_subset): Make global.
12949
6da7fc87
NC
129502009-02-10 Nick Clifton <nickc@redhat.com>
12951
12952 * tree-parloops.c: Change license to GPLv3.
12953 * ipa-struct-reorg.c: Change license to GPLv3.
12954 * ipa-struct-reorg.h: Change license to GPLv3.
12955
a03813c8
SE
129562009-02-10 Steve Ellcey <sje@cup.hp.com>
12957
12958 PR c/39084
12959 * c-decl.c (start_struct): Return NULL on error.
12960
fc3103e7
JJ
129612009-02-10 Jakub Jelinek <jakub@redhat.com>
12962
9b43d37b
JJ
12963 PR middle-end/39124
12964 * cfgloopmanip.c (remove_path): Call remove_bbs after
12965 cancel_loop_tree, not before it.
12966
fc3103e7 12967 PR target/39139
b058b753 12968 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
12969 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
12970 VAR_DECLs were seen.
12971 * tree-ssa-live.c (remove_unused_locals): Recompute
12972 cfun->has_local_explicit_reg_vars.
12973 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
12974 copies or clearings if cfun->has_local_explicit_reg_vars.
12975
dbf9ee15
UB
129762009-02-10 Uros Bizjak <ubizjak@gmail.com>
12977
12978 PR target/39118
12979 * config/i386/i386.c (expand_prologue): Emit blockage at the end
12980 of function prologue when frame pointer is used to access
12981 red zone area.
12982
bdec4dc7
RG
129832009-02-10 Richard Guenther <rguenther@suse.de>
12984
12985 PR middle-end/39127
12986 * gimplify.c (gimple_regimplify_operands): Always look if
12987 we need to create a temporary.
12988
7cae94fc
RG
129892009-02-10 Richard Guenther <rguenther@suse.de>
12990
12991 PR tree-optimization/39132
12992 * tree-loop-distribution.c (todo): New global var.
12993 (generate_memset_zero): Trigger TODO_rebuild_alias.
12994 (tree_loop_distribution): Return todo.
12995
a8800687
L
129962009-02-10 H.J. Lu <hongjiu.lu@intel.com>
12997
12998 PR target/39119
12999 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
13000 (x86_64_reg_class_name): Removed.
13001 (classify_argument): Return 0 if bytes > 32. Return 0 if the
13002 first one isn't X86_64_SSE_CLASS or any other ones aren't
13003 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
13004 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
13005 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
13006 and 3 X86_64_SSEUP_CLASS.
13007 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
13008 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
13009
d4bacef0
BE
130102009-02-10 Ben Elliston <bje@au.ibm.com>
13011
13012 * config/rs6000/rs6000.md (allocate_stack): Always use an update
13013 form instruction to update the stack back chain word, even if the
13014 user has disabled the generation of update instructions.
13015 (movdi_<mode>_update_stack): New.
13016 (movsi_update_stack): Likewise.
13017 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
13018 always use an update form instruction to update the stack back
13019 chain word.
13020
01d7d2f3
SP
130212009-02-09 Sebastian Pop <sebastian.pop@amd.com>
13022
13023 PR middle-end/38953
b058b753
UB
13024 * graphite.c (if_region_set_false_region): After moving a region in
13025 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
13026 (gloog): Remove wrong fix for PR38953.
13027
e41e2ab4
UW
130282009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13029
13030 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
13031 generation due to implicit sign extension.
13032
4bb07c5d
EB
130332009-02-09 Eric Botcazou <ebotcazou@adacore.com>
13034
13035 PR middle-end/38981
13036 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
13037 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
13038
f060a261
RG
130392009-02-09 Richard Guenther <rguenther@suse.de>
13040
13041 PR middle-end/35202
13042 * convert.c (convert_to_real): Disable (float)fn((double)x)
13043 to fnf(x) conversion if errno differences may occur and
13044 -fmath-errno is set.
13045
5a7e237c
AS
130462009-02-07 Anatoly Sokolov <aesok@post.ru>
13047
13048 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
13049 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13050 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13051
feab5a67
JM
130522009-02-06 Joseph Myers <joseph@codesourcery.com>
13053
13054 PR c/35434
13055 * c-common.c (handle_alias_attribute): Disallow attribute for
13056 anything not a FUNCTION_DECL or VAR_DECL.
13057
90ef2296
JJ
130582009-02-06 Janis Johnson <janis187@us.ibm.com>
13059
13060 PR c/39035
13061 * real.c (do_compare): Special-case compare of zero against
13062 decimal float value.
13063
1de2c900
JM
130642009-02-06 Joseph Myers <joseph@codesourcery.com>
13065
13066 PR c/36432
13067 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
13068 as indicating flexible array members unless the field itself is
13069 being declarared as the incomplete array.
13070
e901811a
JH
130712009-02-06 Jan Hubicka <jh@suse.cz>
13072
13073 PR tree-optimization/38844
13074 * ipa-inline.c (try_inline): Stop inlining recursion when edge
13075 is already inlined.
13076
3cfa762b
RG
130772009-02-06 Richard Guenther <rguenther@suse.de>
13078
13079 PR middle-end/38977
13080 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
13081 fork because we may expand it as __gcov_fork.
13082
8506528c
NC
130832009-02-06 Nick Clifton <nickc@redhat.com>
13084
dbf9ee15 13085 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 13086
85169114
PB
130872009-02-06 Paolo Bonzini <bonzini@gnu.org>
13088
13089 PR tree-optimization/35659
13090 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
13091 vn_phi_eq): Shortcut if hashcode does not match.
13092 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
13093 NULL operands.
13094 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
13095 and avoid iterative_hash_expr.
13096 (FOR_EACH_VALUE_ID_IN_SET): New.
13097 (value_id_compare): Remove.
13098 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
13099 sort expressions by value id.
13100
6d39673d
KK
131012009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
13102
13103 PR target/38991
13104 * config/sh/predicates.md (general_movsrc_operand): Don't check
13105 the subreg of system registers here.
13106
e6e1c050
JJ
131072009-02-05 Jakub Jelinek <jakub@redhat.com>
13108
13109 PR c++/39106
13110 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
13111 on the copied decl.
13112
65a74b5d
PB
131132009-02-05 Paolo Bonzini <bonzini@gnu.org>
13114
13115 PR rtl-optimization/39110
13116 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
13117 addresses, not aligned ones.
13118
08e14b2a
DB
131192009-02-05 Daniel Berlin <dberlin@dberlin.org>
13120 Richard Guenther <rguenther@suse.de>
13121
13122 PR tree-optimization/39100
13123 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
13124 comment says and add edges.
13125
5006381c
JM
131262009-02-05 Joseph Myers <joseph@codesourcery.com>
13127
13128 PR c/35435
13129 * c-common.c (handle_tls_model_attribute): Ignore attribute for
13130 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
13131
2ba9daa7 131322009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
13133
13134 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
13135 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
13136 register_bb_in_sese, new_sese, free_sese): Moved.
13137 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
13138 outermost_loop_in_scop, build_scop_iteration_domain,
13139 expand_scalar_variables_ssa_name, get_vdef_before_scop,
13140 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
13141 Use loop_in_sese_p instead of loop_in_scop_p.
13142 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
13143 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
13144 (scopdet_basic_block_info): Fix bug in scop detection.
13145 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
13146 eq_loop_to_cloog_loop): Remove.
13147 (nb_loops_around_loop_in_scop, nb_loop
13148 ref_nb_loops): Moved here...
13149 * graphite.h (ref_nb_loops): ... from here.
13150 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
13151 (loop_domain_dim, loop_iteration_vector_dim): Remove.
13152 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
13153 * testsuite/gcc.dg/graphite/scop-19.c: New
13154
48e8382e
PB
131552009-02-04 Paolo Bonzini <bonzini@gnu.org>
13156 Hans-Peter Nilsson <hp@axis.com>
13157
13158 PR rtl-optimization/37889
13159 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
13160 Move offset handling from PLUS to before the switch. Use new
13161 arguments when considering SYMBOL_REFs too.
13162 (rtx_addr_can_trap_p): Pass dummy offset and size.
13163 (enum may_trap_p_flags): Remove.
13164 (may_trap_p_1): Pass size from MEM_SIZE.
13165
13166 PR rtl-optimization/38921
13167 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
13168 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
13169 * rtlanal.c (may_trap_after_code_motion_p): Delete.
13170 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
13171
69349ea5
L
131722009-02-04 H.J. Lu <hongjiu.lu@intel.com>
13173
13174 AVX Programming Reference (January, 2009)
13175 * config/i386/sse.md (*vpclmulqdq): New.
13176
b545e411
JJ
131772009-02-04 Jakub Jelinek <jakub@redhat.com>
13178
13179 PR tree-optimization/38977
13180 PR gcov-profile/38292
bf9b2cc9 13181 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 13182
5b43bf05
HS
131832009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
13184
13185 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
13186 non-indexable addresses even before reload.
13187
062c4bb3
JM
131882009-02-03 Joseph Myers <joseph@codesourcery.com>
13189
13190 PR c/29129
13191 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
13192 as having variable size. Do not give an error for unnamed
13193 parameters with [*] declarators. Give a warning for type names
13194 with [*] declarators and mark them as variable size.
13195 * c-parser.c (c_parser_sizeof_expression): Do not give an error
13196 for sizeof applied to [*] type names.
13197
6175f578
AP
131982009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
13199
13200 PR C++/36607
13201 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
13202
d4f4bc84
JJ
132032009-02-03 Jakub Jelinek <jakub@redhat.com>
13204
13205 * gcc.c (process_command): Update copyright notice dates.
13206 * gcov.c (print_version): Likewise.
13207 * gcov-dump.c (print_version): Likewise.
13208 * mips-tfile.c (main): Likewise.
13209 * mips-tdump.c (main): Likewise.
13210
f6294de7
JM
132112009-02-03 Joseph Myers <joseph@codesourcery.com>
13212
13213 PR c/35433
13214 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
13215 for composite type involving a zero-length array type.
13216
754ccf7c
JJ
132172009-02-03 Jakub Jelinek <jakub@redhat.com>
13218
70f16287
JJ
13219 PR target/35318
13220 * function.c (match_asm_constraints_1): Skip over
13221 initial optional % in the constraint.
13222
754ccf7c
JJ
13223 PR inline-asm/39059
13224 * c-parser.c (c_parser_postfix_expression): If fixed point is not
13225 supported, don't accept FIXED_CSTs.
13226 * c-decl.c (finish_declspecs): Error if fixed point is not supported
13227 and _Sat is used without _Fract/_Accum. Set specs->type to
13228 integer_type_node for cts_fract/cts_accum if fixed point is not
13229 supported.
13230
965fdadf
CM
132312009-02-02 Catherine Moore <clm@codesourcery.com>
13232
dbf9ee15 13233 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 13234
2e8a796f
RS
132352009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13236
13237 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
13238 (ABI_HAS_64BIT_SYMBOLS): Use it.
13239 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
13240
e0079468
PB
132412009-02-02 Paul Brook <paul@codesourcery.com>
13242
13243 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
13244
eca72963
JJ
132452009-02-02 Jakub Jelinek <jakub@redhat.com>
13246
13247 PR inline-asm/39058
13248 * recog.h (asm_operand_ok): Add constraints argument.
13249 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
13250 recurse on matching constraint.
13251 (check_asm_operands): Pass constraints as 3rd argument to
13252 asm_operand_ok. Don't look up matching constraint here.
13253 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
13254 to asm_operand_ok.
13255
b5bde9ff
BE
132562009-02-02 Ben Elliston <bje@au.ibm.com>
13257
13258 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
13259 TARGET_NARROW_VOLATILE_BITFIELD macro names.
13260
30f3e427
JDA
132612009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13262
be7659ba
JDA
13263 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
13264 information. Remove some obsolete information. Reorganize.
13265
30f3e427
JDA
13266 * config/pa/fptr.c: Revert license to GPL 2.
13267 * config/pa/milli64.S: Likewise.
13268
3cbfaf98
DK
132692009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13270
13271 PR target/38904
13272 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
13273 LIBRARY name in, instead of hard-coding it.
13274 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
13275 extra target make frag to tmake_files according to EH model.
13276 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13277 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
13278 frags that define makefile variable EH_MODEL appropriately.
13279 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
13280 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
13281 to "-sjlj" according to type of EH configured.
13282 (LIBGCC_SONAME): Concatenate it to shared library base name.
13283 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
13284 to "_sjlj" according to type of EH configured.
13285 (LIBGCC_SONAME): Concatenate it to shared library base name.
13286 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
13287 (SHLIB_LINK): Add missing semicolon to if-else construct.
13288 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13289 string value of "pe_dll" command-line option.
13290 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
13291 (SHLIB_SONAME): Use it when overriding t-cygming default.
13292 (SHLIB_IMPLIB): Override t-cygming default.
13293 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13294 string value of "pe_dll" command-line option.
13295
8d0b6068
DK
132962009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13297
13298 PR target/38952
13299 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 13300 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 13301
14c28276
RG
133022009-01-31 Richard Guenther <rguenther@suse.de>
13303
13304 PR tree-optimization/38937
13305 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
13306 computing the transitive closure.
13307
5f4d82c2
RG
133082009-01-30 Richard Guenther <rguenther@suse.de>
13309
13310 PR tree-optimization/39041
13311 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
13312 Propagate variable indices only if the types match for this stmt.
13313
d0728ae0
JJ
133142009-01-30 Jakub Jelinek <jakub@redhat.com>
13315
13316 PR target/39013
13317 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
13318 inline but never defined.
13319
6b67572e 133202009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
13321
13322 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
13323 (*insv_h_di_reg_extimm): New insn.
13324 (*insv_l<mode>_reg_extimm): New insn.
13325
133262009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
13327
13328 * config/picochip/picochip.c (flag_conserve_stack): set
13329 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
13330 fconserve-stack. Reduce call-overhead used by inliner.
13331
9fec758d 133322009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
13333
13334 PR/38157
13335 * common.opt (flag_conserve_stack): Initialised to zero.
13336
7f1c539c
KT
133372009-01-30 Kai Tietz <kai.tietz@onevision.com>
13338
13339 PR/39002
13340 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
13341 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
13342 method.
13343
3631be48
L
133442009-01-29 H.J. Lu <hongjiu.lu@intel.com>
13345
13346 * ira-color.c (allocno_reload_assign): Update comments.
13347 * regmove.c (regmove_optimize): Likewise.
13348
13349 * ra.h: Removed.
13350
416ac4d4
RM
133512009-01-29 Robert Millan <rmh@aybabtu.com>
13352
60839f5d
EB
13353 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
13354 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 13355 `MD_UNWIND_SUPPORT'.
60839f5d 13356 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 13357
d5e54bc1
KH
133582009-01-29 Kazu Hirata <kazu@codesourcery.com>
13359
13360 PR tree-optimization/39007
13361 * tree-loop-distribution.c (generate_builtin): Use
13362 recompute_dominator to compute the immediate dominator of the
13363 basic block just after the loop.
13364
38432148 133652009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
13366
13367 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
13368 (ASM_OUTPUT_DWARF_PCREL): Define.
13369
38432148 133702009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
13371
13372 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
13373 * doc/passes.texi: Remove entries about regclass, local-alloc, and
13374 global. Modify entries about regmove and IRA.
13375
13376 * ra-conflict.c: Remove the file.
13377
13378 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
13379
13380 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
13381 (pass_regclass_init): Rename to pass_reginfo_init.
13382
13383 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
13384
13385 * toplev.h (flag_ira): Remove.
13386
13387 * caller-save.c (setup_save_areas): Remove flag_ira.
13388
bf9b2cc9 13389 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
13390
13391 * global.c: Remove the file.
13392
ba20e309 13393 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
13394
13395 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
13396
13397 * regmove.c: Modify file description.
13398 (find_use_as_address, try_auto_increment): Define them only if
13399 AUTO_INC_DEC is defined.
13400 (replacement_quality, replace_in_call_usage, fixup_match_1,
13401 stable_and_no_regs_but_for_p): Remove.
13402 (reg_set_in_bb): Make it static.
13403 (regmove_optimize): Remove flag_ira and code which worked for
13404 !flag_ira.
13405
13406 * local-alloc.c: Remove the file.
13407
13408 * common.opt (fira): Remove.
13409
13410 * ira.c: Include except.h.
13411 (eliminable_regset): Move from global.c.
13412 (mark_elimination): Ditto. Remove flag_ira.
13413 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
13414 equiv_mem_modified, validate_equiv_mem_from_store,
13415 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
13416 contains_replace_regs, memref_referenced_p, memref_used_between_p,
13417 no_equiv, recorded_label_ref): Move from local-alloc.c.
13418 (update_equiv_regs): Ditto. Make it static.
13419 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 13420 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
13421 (build_insn_chain): Ditto. Make it static.
13422 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
13423 Rename to init_live_subregs.
13424 (gate_ira): Remove flag_ira.
13425
13426 * regclass.c: Rename reginfo.c. Change file description.
13427 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 13428 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
13429 (init_reg_sets_1): Remove code for evaluation of
13430 reg_class_superclasses and losing_caller_save_reg_set.
13431 (init_regs): Remove init_reg_autoinc.
13432 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
13433 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 13434 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
13435 (pass_regclass_init): Rename to pass_reginfo_init. Modify
13436 corresponding entries.
13437 (dump_regclass, record_operand_costs, scan_one_insn,
13438 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
13439 record_address_regs, auto_inc_dec_reg_p): Remove.
13440 (gt-regclass.h): Rename to gt-reginfo.h.
13441
13442 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 13443 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
13444
13445 * Makefile.in (RA_H): Remove.
13446 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
13447 Rename regclass.o to reginfo.o.
13448 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
13449 gt-reginfo.h.
13450 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
13451 (GTFILES): Rename regclass.c to reginfo.c.
13452
13453 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 13454 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
13455
13456 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13457 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
13458 Remove flag_ira.
6b67572e 13459 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 13460
c95b2534 134612009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
13462
13463 PR middle-end/35854
13464 * doc/invoke.texi (rtl debug options): Complete rewrite.
13465 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
13466 to auto_inc_dec".
13467 * mode-switching.c (pass_mode_switching): Rename pass from
13468 "mode-sw" to "mode_sw".
13469 * except.c (pass_convert_to_eh_ranges): Rename pass from
13470 "eh-ranges" to "eh_ranges".
13471 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
13472 to "subreg1".
2ba9daa7
AS
13473
13474
72a54528
AM
134752009-01-29 Andrey Belevantsev <abel@ispras.ru>
13476 Alexander Monakov <amonakov@ispras.ru>
13477
13478 PR middle-end/38857
13479 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
13480 register.
13481 (move_exprs_to_boundary): Change return type and pass through
13482 should_move from move_op. Relax assert. Update usage ...
13483 (schedule_expr_on_boundary): ... here. Use should_move instead of
13484 cant_move.
13485 (move_op_orig_expr_found): Indicate that insn was disconnected from
13486 stream.
13487 (code_motion_process_successors): Do not call after_merge_succs
13488 callback if original expression was not found when traversing any of
13489 the branches.
13490 (code_motion_path_driver): Change return type. Update prototype.
13491 (move_op): Update comment. Add a new parameter (should_move). Update
13492 prototype. Set *should_move based on indication provided by
13493 move_op_orig_expr_found.
13494
001b9eb6
PH
134952009-01-28 Pat Haugen <pthaugen@us.ibm.com>
13496
13497 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
13498 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
13499 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
13500 * config/rs6000/rs6000.c (rs6000_override_options): Default
13501 avoid-indexed-addresses on for Power6, off for everything else.
13502 (avoiding_indexed_address_p): New function.
13503 (rs6000_legitimize_address): Use it.
13504 (rs6000_legitimate_address): Likewise.
13505 * config/rs6000/rs6000.md (movXX_updateX): Likewise
13506
59dc4898
KH
135072009-01-28 Kazu Hirata <kazu@codesourcery.com>
13508
13509 PR tree-optimization/38997
13510 * tree-loop-distribution.c (generate_memset_zero): Use
13511 POINTER_PLUS_EXPR for a pointer addition.
13512
07da44ab
AK
135132009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
13514
13515 * config/s390/s390.md (bswap<mode>2): New pattern added.
13516
cdc15d23
WG
135172009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13518
13519 * config/s390/s390.md (*tls_load_31): Added type attribute.
13520
d46f24b6
WG
135212009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13522
13523 * config/s390/s390.md: Fix a few comments.
13524
729e750f
WG
135252009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
13526
13527 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
13528 (*tm<mode>_full): Fixed z10prop attribute.
13529 (*tst<mode>_extimm): Fixed z10prop attribute.
13530 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
13531 (*tstqiCCT_cconly): Fixed z10prop attribute.
13532 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
13533 (*movsi_larl): Fixed z10prop attribute.
13534 (*movsi_zarch): Fixed z10prop attribute.
13535 (*movsi_eas): Fixed z10prop attribute.
13536 (*movhi): Fixed z10prop attribute.
13537 (*movqi): Fixed z10prop attribute.
13538 (*movstrictqi): Fixed z10prop attribute.
13539 (*mov<mode>): Fixed z10prop attribute.
13540 (*movcc): Fixed z10prop attribute.
13541 (*sethighpartdi_64): Fixed z10prop attribute.
13542 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
13543 (*negdi2_sign_cc): Fixed z10prop attribute.
13544 (*negdi2_sign): Fixed z10prop attribute.
13545 (*absdi2_sign_cc): Fixed z10prop attribute.
13546 (*absdi2_sign): Fixed z10prop attribute.
13547 (*negabsdi2_sign_cc): Fixed z10prop attribute.
13548 (*negabsdi2_sign): Fixed z10prop attribute.
13549 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
13550 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
13551 (doloop_si64): Fixed z10prop attribute.
13552 (doloop_si31): Fixed z10prop attribute.
13553 (doloop_long): Fixed z10prop attribute.
13554 (indirect_jump): Fixed z10prop attribute.
13555 (nop): Fixed z10prop attribute.
13556 (main_base_64): Fixed z10prop attribute.
13557 (reload_base_64): Fixed z10prop attribute.
13558
c7789bfb
JJ
135592009-01-28 Jakub Jelinek <jakub@redhat.com>
13560
13561 PR rtl-optimization/38740
6b67572e
UB
13562 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
13563 if !optimize.
c7789bfb
JJ
13564 * config/mips/mips.c (mips_reorg): Likewise.
13565
de081cfd
RG
135662009-01-28 Richard Guenther <rguenther@suse.de>
13567
13568 PR tree-optimization/38926
13569 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
13570 with the correct value id to a value.
13571 (do_regular_insertion): Use the value number of edoubleprime
13572 for the value number of the expr.
13573
13574 Revert
13575 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 13576
d748c406
UB
13577 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
13578 a PHI ask VN if it is already available.
13579 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
13580 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 13581
a9d386a1
JJ
135822009-01-28 Jakub Jelinek <jakub@redhat.com>
13583
13584 PR middle-end/38934
13585 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
13586 set to varying whenever max has TREE_OVERFLOW set, similarly
13587 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
13588
97a170cd
RG
135892009-01-28 Richard Guenther <rguenther@suse.de>
13590
13591 PR middle-end/38908
13592 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
13593 uninitialized aggregate uses in call arguments.
13594
89ebafc6
PB
135952009-01-28 Paolo Bonzini <bonzini@gnu.org>
13596
13597 PR tree-optimization/38984
13598 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
13599 the nothing_id variable if -fno-delete-null-pointer-checks.
13600
bef3c57b
UB
136012009-01-28 Uros Bizjak <ubizjak@gmail.com>
13602
13603 PR target/38988
13604 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
13605 (set_got_offset_rex64): Ditto.
13606
0c6390fa
L
136072009-01-27 H.J. Lu <hongjiu.lu@intel.com>
13608
13609 PR target/38941
13610 * doc/extend.texi: Improve local variable with asm reg.
13611
bee6fa6d
AN
136122009-01-27 Adam Nemet <anemet@caviumnetworks.com>
13613
13614 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
13615 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
13616 was not supplied then set warn_packed_bitfield_compat to the
13617 default value of 1.
13618 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
13619 against 1.
13620
b5c3dfbb
RG
136212009-01-27 Richard Guenther <rguenther@suse.de>
13622
13623 PR tree-optimization/38503
13624 * cfgexpand.c (expand_gimple_basic_block): Ignore
13625 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
13626 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
13627 variables that cannot have TBAA applied.
13628 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
13629 statements.
13630
d748c406 136312009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
13632
13633 PR middle-end/38969
13634 * calls.c (initialize_argument_information): Do not wrap complex
13635 arguments in SAVE_EXPR.
13636
9112bb38
AT
136372009-01-26 Andreas Tobler <a.tobler@schweiz.org>
13638
13639 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 13640 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 13641
4757704f
RG
136422009-01-26 Richard Guenther <rguenther@suse.de>
13643
13644 PR tree-optimization/38745
13645 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
13646 from special handling.
13647
e3e6cff4
RG
136482009-01-26 Richard Guenther <rguenther@suse.de>
13649
13650 PR tree-optimization/38745
13651 * tree-ssa.c (execute_update_addresses_taken): Do not include
13652 variables that cannot possibly be a register in not_reg_needs.
13653 Do not clear TREE_ADDRESSABLE on vars that may not become
13654 registers.
13655 * tree-ssa.c (update_alias_info_1): Include those in the set
13656 of addressable vars.
13657
dc874b53
RG
136582009-01-26 Richard Guenther <rguenther@suse.de>
13659
13660 PR middle-end/38851
13661 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
13662 * tree-ssa-dse.c: Include langhooks.h
13663 (execute_simple_dse): Remove stores with zero size.
13664
849421a3
JJ
136652009-01-24 Jakub Jelinek <jakub@redhat.com>
13666
13667 PR c/38957
13668 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
13669 as PLUS_EXPR.
13670
82f70421
JB
136712009-01-24 Julian Brown <julian@codesourcery.com>
13672
13673 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
13674 config/arm/linux-atomic.c.
13675 * config/arm/linux-atomic.c: New.
13676
863412d6
EB
136772009-01-24 Eric Botcazou <ebotcazou@adacore.com>
13678
13679 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
13680 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
13681 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
13682
8c684300
L
136832009-01-24 H.J. Lu <hongjiu.lu@intel.com>
13684
13685 PR c/38938
93f1527a 13686 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
13687 properly.
13688
b840fb02
SP
136892009-01-24 Sebastian Pop <sebastian.pop@amd.com>
13690
13691 PR tree-optimization/38953
13692 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
13693 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
13694 (gloog): Split the exit of the scop when the scop exit is a loop exit.
13695 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
13696 changed the CFG.
13697
ecee559f
PB
136982009-01-24 Paul Brook <paul@codesourcery.com>
13699
13700 * config/arm/neon.md (neon_type): Move to arm.md.
13701 (neon_mov<VSTRUCT>): Add neon_type attribute.
13702 * config/arm/arm.md (neon_type): Move to here.
13703 (conds): Add "unconditioal" and use as default for NEON insns.
13704
61ad0914
BE
137052009-01-24 Ben Elliston <bje@au.ibm.com>
13706
13707 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
13708 void *' warning from -Wc++-compat.
13709 * Makefile.in (dominance.o-warn): Remove.
13710
38432148 137112009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
13712
13713 PR tree-optimization/38932
13714 * fold-const.c (fold_unary_ignore_overflow): New.
13715 * tree.h (fold_unary_ignore_overflow): Declare.
13716 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
13717 * tree-ssa-sccvn.c (visit_reference_op_load,
13718 simplify_unary_expression): Likewise.
13719
2cd36c22
AN
137202009-01-22 Adam Nemet <anemet@caviumnetworks.com>
13721
13722 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
13723 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
13724 regardless of their type.
13725 * c-common.c (handle_packed_attribute): Don't ignore packed on
13726 bitfields.
13727 * c.opt (Wpacked-bitfield-compat): New warning option.
13728 * stor-layout.c (place_field): Warn if offset of a field changed.
13729 * doc/extend.texi (packed): Mention the ABI change.
13730 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
13731 (Warning Options): Add it to the list.
13732
e4e624ab
L
137332009-01-22 H.J. Lu <hongjiu.lu@intel.com>
13734
13735 * c-opts.c (c_common_post_options): Fix a typo in comments.
13736
d0ea0759
SE
137372009-01-22 Steve Ellcey <sje@cup.hp.com>
13738
13739 PR middle-end/38615
13740 * gimplify.c (gimplify_init_constructor): Fix promotion of const
13741 variables to static.
13742 * doc/invoke.texi (-fmerge-all-constants): Update description.
13743
87673f84
UB
137442009-01-22 Uros Bizjak <ubizjak@gmail.com>
13745
13746 PR target/38931
13747 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
13748 (*movdi_1_rex64): Use type "mmx" for alternative 5.
13749
96339268
RE
137502009-01-22 Richard Earnshaw <rearnsha@arm.com>
13751
13752 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
13753 a word boundary.
13754 (LOCAL_ALIGNMENT): Similarly.
13755
442dc742 137562009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 13757 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
13758
13759 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
13760 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
13761 * config/arm/arm-tune.md: Regenerate.
13762 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
13763 -march=iwmmxt2.
13764
9b34732e
MS
137652009-01-22 Mark Shinwell <shinwell@codesourcery.com>
13766
13767 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
13768 version number to five.
13769
03c2a308
DS
137702009-01-22 Dodji Seketeli <dodji@redhat.com>
13771
13772 PR c++/38930
ba20e309 13773 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
13774 * c-common.c (set_underlying_type): Likewise.
13775 (is_typedef_decl ): Likewise
13776 * tree.h: Likewise
13777 (set_underlying_type): Likewise.
13778 (is_typedef_type): Likewise.
13779
1240d76e
VM
137802009-01-21 Vladimir Makarov <vmakarov@redhat.com>
13781
13782 PR middle-end/38587
13783 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13784 crossing setjmps.
13785
b8a1087d
DK
137862009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
13787
13788 PR bootstrap/37660
13789 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
13790 (LIBGCC_SPEC): Don't define.
13791 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
13792
435da628
UB
137932009-01-21 Uros Bizjak <ubizjak@gmail.com>
13794
13795 PR rtl-optimization/38879
13796 * alias.c (base_alias_check): Unaligned access via AND address can
13797 alias all surrounding object types except those with sizes equal
13798 or wider than the size of unaligned access.
13799
d597b3ce
DS
138002009-01-21 Dodji Seketeli <dodji@redhat.com>
13801
13802 PR c++/26693
ba20e309 13803 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 13804 * c-common.c (set_underlying_type): ... here.
435da628 13805 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
13806 the newly created typedef variant type.
13807 (is_typedef_decl ): New entry point.
13808 * tree.h: Added a new member member_types_needing_access_check to
13809 struct tree_decl_non_common.
13810 (set_underlying_type): New entry point.
13811 (is_typedef_type): Likewise.
13812
71a6fe66
BM
138132009-01-21 Bingfeng Mei <bmei@broadcom.com>
13814
13815 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13816 Check whether two instructions have memory references that
13817 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
13818 are helper functions for traversing.
13819 * alias.h (insn_alias_sets_confilict_p): New prototypes.
13820 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13821 not to draw dependency edge for instructions with non-conflicting
13822 alias sets.
13823
5a248274
JM
138242009-01-20 Joseph Myers <joseph@codesourcery.com>
13825
13826 PR other/38758
6b67572e
UB
13827 * longlong.h: Update copyright years. Use soft-fp license notice.
13828 Sync __clz_tab declaration with glibc.
5a248274 13829
4b84f3de
SE
138302009-01-20 Steve Ellcey <sje@cup.hp.com>
13831
13832 PR target/30687
13833 * doc/extend.texi (syscall_linkage): New.
13834 (version_id): Modify.
13835
37348bf1 138362009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 13837 Richard Guenther <rguenther@suse.de>
37348bf1
AP
13838
13839 PR tree-optimization/38747
13840 PR tree-optimization/38748
13841 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13842 conversion if the base address is an indirect reference and the
13843 aliasing sets could cause issues.
13844
d0a58904
SP
138452009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13846
2ba9daa7 13847 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
13848 explaining why these options are not documented.
13849
71e7afb2
SP
138502009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13851
13852 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13853 gimple_call_lhs is NULL.
13854
38432148 138552009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
13856
13857 PR target/38868
13858 * emit-rtl.c (adjust_address_1): Make sure memref is never
13859 overwritten.
13860
cbb8dee3
BE
138612009-01-20 Ben Elliston <bje@au.ibm.com>
13862
13863 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 13864 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
13865 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13866 const qualifier from arg 2.
13867
72c66596
IS
138682009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
13869
435da628 13870 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 13871
f68211cd
VM
138722009-01-19 Vladimir Makarov <vmakarov@redhat.com>
13873
13874 PR c/38869
13875 * rtl.h (reinit_regs): New prototype.
13876 * regclass.c: Include ira.h.
13877 (reinit_regs): New.
13878 * Makefile.in (regclass.o): Add ira.h.
13879 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13880
6e4f1168
L
138812009-01-18 H.J. Lu <hongjiu.lu@intel.com>
13882
13883 PR target/38736
13884 * c-common.c (handle_aligned_attribute): Use
13885 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13886 default alignment value.
13887
13888 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13889
13890 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13891 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13892
13893 * doc/extend.texi: Update __attribute__ ((aligned)). Document
13894 __BIGGEST_ALIGNMENT__.
13895
13896 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13897
890065bf
RG
138982009-01-18 Richard Guenther <rguenther@suse.de>
13899
13900 PR tree-optimization/38819
13901 * tree-flow.h (operation_could_trap_helper_p): Declare.
13902 * tree-eh.c (operation_could_trap_helper_p): Export.
13903 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13904 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13905 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13906 are about to insert a possibly trapping instruction and fail
13907 in this case.
13908
a729d731
AS
139092009-01-18 Andreas Schwab <schwab@suse.de>
13910
13911 * doc/install.texi (Configuration): Remove obsolete paragraph
13912 about use of --with-gnu-ld with --with-gnu-as.
13913
a640c13b
KH
139142009-01-18 Kazu Hirata <kazu@codesourcery.com>
13915
13916 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13917 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13918 Follow spelling conventions.
13919
dba2cc0c
BE
139202009-01-18 Ben Elliston <bje@au.ibm.com>
13921
13922 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13923 C++ warning about implicit conversion from void * to struct
13924 bitmap_head_def *.
13925 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 13926 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 13927
2207a498
DK
139282009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
13929
13930 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
13931
8137e465
SP
139322009-01-17 Sebastian Pop <sebastian.pop@amd.com>
13933 Tobias Grosser <tobi.grosser@amd.com>
13934
13935 * graphite.c (graphite_trans_scop_block): Do not block single
13936 nested loops.
13937
5be1c58c
AO
139382009-01-16 Alexandre Oliva <aoliva@redhat.com>
13939
13940 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13941 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13942 test with assertion.
13943
786ce82d
RG
139442009-01-16 Richard Guenther <rguenther@suse.de>
13945
13946 PR tree-optimization/38835
13947 PR middle-end/36227
13948 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13949 and INT + PTR -> (INT)(PTR p+ INT) folding.
13950 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13951
c1cb09ad
AN
139522009-01-16 Adam Nemet <anemet@caviumnetworks.com>
13953
13954 PR target/38554
13955 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13956 the subreg from a lowpart subreg if it is also casting the value.
13957
bcab4e19
SP
139582009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13959 Tobias Grosser <tobi.grosser@amd.com>
13960
13961 * graphite.c (compare_prefix_loops): New.
13962 (build_scop_canonical_schedules): Rewritten.
13963 (graphite_transform_loops): Move build_scop_canonical_schedules
13964 after build_scop_iteration_domain.
13965
0b040072
SP
139662009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13967 Tobias Grosser <tobi.grosser@amd.com>
13968
2ba9daa7 13969 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
13970 the dimension of the iteration domain. Do copy the domain
13971 only when it exists.
13972 (build_scop_conditions_1): Do not call add_conditions_to_domain.
13973 (add_conditions_to_constraints): New.
13974 (can_generate_code_stmt, can_generate_code): Removed.
13975 (gloog): Do not call can_generate_code.
13976 (graphite_transform_loops): Call add_conditions_to_constraints
13977 after building the iteration domain.
13978
56c6a499
JJ
139792009-01-16 Jakub Jelinek <jakub@redhat.com>
13980
13981 PR tree-optimization/38789
13982 * tree-ssa-threadedge.c
13983 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13984 __builtin_constant_p.
13985
c95b2534 139862009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
13987
13988 * dce.c (delete_unmarked_insns): Reversed the order that insns are
13989 examined before deleting them.
2ba9daa7 13990
c433cb14
RE
139912009-01-16 Richard Earnshaw <rearnsha@arm.com>
13992
13993 * function.c (aggregate_value_p): Correctly extract the function
13994 type from CALL_EXPR_FN lookup.
13995
c95b2534 139962009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
13997
13998 * config/picochip/picochip.c (picochip_override_options): Revert
13999 CFI asm flag disable commited previously.
14000
c77bb78f
SP
140012009-01-15 Sebastian Pop <sebastian.pop@amd.com>
14002 Tobias Grosser <tobi.grosser@amd.com>
14003 Jan Sjodin <jan.sjodin@amd.com>
14004
14005 * graphite.c (scan_tree_for_params): On substractions negate
14006 all the coefficients of the term.
14007 (clast_to_gcc_expression_red): New. Handle reduction expressions
14008 of more than two operands.
14009 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
14010 (get_vdef_before_scop): Handle also the case of default definitions.
14011
574af2d6
RS
140122009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
14013
14014 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
14015 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
14016 Also use them when walking CALL_INSN_FUNCTION_USAGE.
14017
e939805b
L
140182009-01-15 H.J. Lu <hongjiu.lu@intel.com>
14019 Joey Ye <joey.ye@intel.com>
14020
14021 PR middle-end/37843
14022 * cfgexpand.c (expand_stack_alignment): Don't update stack
14023 boundary nor check incoming stack boundary here.
14024 (gimple_expand_cfg): Update stack boundary and check incoming
14025 stack boundary here.
14026
c95b2534 140272009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 14028
435da628 14029 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 14030
0196c95e
JJ
140312009-01-14 Jakub Jelinek <jakub@redhat.com>
14032
14033 PR rtl-optimization/38245
14034 * calls.c (expand_call): Add stack arguments to
14035 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14036 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
14037 in regs and partially in memory or BLKmode arguments.
14038 (emit_library_call_value_1): Add stack arguments to
14039 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14040 ACCUMULATE_OUTGOING_ARGS).
14041 * dce.c: Include tm_p.h.
14042 (find_call_stack_args): New function.
14043 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
14044 argument.
14045 (mark_insn): Call find_call_stack_args for CALL_Ps.
14046 (prescan_insns_for_dce): Walk insns backwards in bb rather than
14047 forwards. Allocate and free arg_stores bitmap if needed, pass it
14048 down to deletable_insn_p, don't mark stores set in arg_stores
14049 bitmap, clear the bitmap at the beginning of each bb.
14050 * Makefile.in (dce.o): Depend on $(TM_P_H).
14051
6df6bcfa
MM
140522009-01-14 Michael Meissner <gnu@the-meissners.org>
14053
14054 PR target/22599
435da628
UB
14055 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
14056 to make sure the insn is a conditional test (bug 22599). Reformat a
14057 few long lines.
6df6bcfa 14058
765ec70c
SP
140592009-01-14 Sebastian Pop <sebastian.pop@amd.com>
14060
14061 PR middle-end/38431
14062 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
14063 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
14064 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 14065 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
14066 scops have been code generated.
14067
7de2b688
BS
140682009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
14069 * doc/gty.texi (Invoking the garbage collector): Added new node
14070 and section documenting ggc_collect.
14071
10bd6c5c
RG
140722009-01-14 Richard Guenther <rguenther@suse.de>
14073
14074 PR tree-optimization/38826
14075 PR middle-end/38477
14076 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
14077 initialization notes only if we actually emitted a warning.
14078 (intra_create_variable_infos): Add constraints for a result decl
14079 that is passed by hidden reference.
14080 (build_pred_graph): Mark all related variables non-direct on
14081 address-taking.
14082
9c7c70ee
NC
140832009-01-14 Nick Clifton <nickc@redhat.com>
14084
14085 * ira-conflicts.c: Include addresses.h for the definition of
14086 base_reg_class.
435da628
UB
14087 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
14088 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 14089
cf0c2a60
VM
140902009-01-13 Vladimir Makarov <vmakarov@redhat.com>
14091
14092 PR target/38811
14093 * Makefile.in (ira-lives.o): Add except.h.
14094
14095 * ira-lives.c: Include except.h.
14096 (process_bb_node_lives): Process can_throw_internal.
14097
d3302fd3
JJ
140982009-01-13 Jakub Jelinek <jakub@redhat.com>
14099
14100 PR rtl-optimization/38774
14101 * combine.c (simplify_set): When undoing cc_use change, don't do
14102 PUT_CODE on the newly created comparison, but instead put back the
14103 old comparison.
14104
7ab23fd0
JM
141052009-01-13 Joseph Myers <joseph@codesourcery.com>
14106
14107 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
14108 values. Remove duplicate arm8 entry.
14109
f9344488
SP
141102009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14111
14112 PR tree-optimization/38786
14113 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
14114 the SSA_NAME case of expand_scalar_variables_expr.
14115 Set the type of an expression to the type of its assign statement.
14116 (expand_scalar_variables_expr): Also gather the scalar computation
14117 used to index the memory access. Do not pass loop_p.
14118 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
14119 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
14120 the gimple_stmt_iterator where it inserts new code.
14121 Do not pass loop_p.
f9344488
SP
14122 (copy_bb_and_scalar_dependences): Do not pass loop_p.
14123 (translate_clast): Update call to copy_bb_and_scalar_dependences.
14124
2d8bb84d
SP
141252009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14126
14127 * graphite.h (debug_value): Removed.
14128 * graphite.c (debug_value): Removed.
14129
ff128632
RE
141302009-01-13 Richard Earnshaw <rearnsha@arm.com>
14131
435da628
UB
14132 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
14133 ldrd/strd with two 32-bit instructions.
ff128632 14134
d5a0a47b
RE
141352009-01-13 Richard Earnshaw <rearnsha@arm.com>
14136
435da628
UB
14137 * config/arm/arm.c (struct processors): Pass for speed down into
14138 cost helper functions.
d5a0a47b
RE
14139 (const_ok_for_op): Handle COMPARE and inequality nodes.
14140 (arm_rtx_costs_1): Rewrite.
14141 (arm_size_rtx_costs): Update prototype.
14142 (arm_rtx_costs): Pass speed down to helper functions.
14143 (arm_slowmul_rtx_costs): Rework cost calculations.
14144 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
14145 (arm_9e_rtx_costs): Likewise.
14146
26d5bf5b
UB
141472009-01-13 Uros Bizjak <ubizjak@gmail.com>
14148
14149 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 14150 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
14151 (alpha_legitimize_address): Do not split local symbols wider than
14152 UNITS_PER_WORD into HIGH/LO_SUM parts.
14153
5d14e3d5
DS
141542009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
14155
14156 PR bootstrap/38580
14157 * gcc.c (process_command): Replace call to execvp with calls
14158 to pex_one and exit.
14159
33faafca
AS
141602009-01-03 Anatoly Sokolov <aesok@post.ru>
14161
14162 PR target/29141
14163 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
14164 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
14165 variant for devices with 3-byte PC.
ba20e309 14166 (__tablejump_elpm__): New.
33faafca 14167
634b5df5
JJ
141682009-01-12 Jakub Jelinek <jakub@redhat.com>
14169
14170 PR c/32041
14171 * c-parser.c (c_parser_postfix_expression): Allow `->' in
14172 offsetof member-designator, handle it as `[0].'.
14173
2842bb86
JDA
141742009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14175
14176 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
14177 function when not using named sections on targets with named sections
14178 if branch distance is less than 262132.
14179
76ee70f6
RE
141802009-01-12 Richard Earnshaw <rearnsha@arm.com>
14181
14182 * combine.c (combine_instructions): Recompute
14183 optimize_this_for_speed_p for each BB in the main combine loop.
14184
f56e675d
TB
141852009-01-12 Tomas Bily <tbily@suse.cz>
14186
14187 PR middlend/38385
26d5bf5b
UB
14188 * tree-loop-distribution.c (prop_phis): New function.
14189 (generate_builtin): Call prop_phis.
14190 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 14191
c2152239
JJ
141922009-01-12 Jakub Jelinek <jakub@redhat.com>
14193
14194 PR tree-optimization/38807
14195 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
14196 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
14197
0e510b3e
AN
141982009-01-11 Adam Nemet <anemet@caviumnetworks.com>
14199
14200 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
14201 subreg of op0 to the original op0.
14202
c95b2534 142032009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
14204
14205 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 14206
53a7ff9a
MS
142072009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
14208
14209 PR debug/7055
60839f5d 14210 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
14211 starting with digits.
14212
b3a796bc
JJ
142132009-01-10 Jakub Jelinek <jakub@redhat.com>
14214
14215 PR target/38695
14216 * config/arm/arm.c (arm_is_long_call_p): Don't call
14217 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
14218
b21b850e
SB
142192009-01-09 Steven Bosscher <steven@gcc.gnu.org>
14220
14221 * regrename.c (regrename_optimize): Fix dumping.
14222 (find_oldest_value_reg): Preserve REG_POINTER.
14223 (copy_hardreg_forward_1): Likewise.
14224
e0e10d3a
DN
142252009-01-09 Diego Novillo <dnovillo@google.com>
14226
bf9b2cc9 14227 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
14228 the restrictions on its use.
14229 (gimple_uid): Tidy.
14230 (gimple_set_uid): Tidy.
14231
c9da2ae8
JJ
142322009-01-09 Jakub Jelinek <jakub@redhat.com>
14233
14234 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
14235 zero guard even if align_bytes != 0 and count is smaller than
14236 size_needed.
14237
38432148 142382009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
14239
14240 PR rtl-optimization/38495
26d5bf5b 14241 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
14242 (add_range_and_copies_from_move_list): Print all added ranges.
14243 Add ranges to memory optimized destination.
14244
260fda3d
JJ
142452009-01-09 Jakub Jelinek <jakub@redhat.com>
14246
6f6278ad
JJ
14247 PR target/38686
14248 PR target/38708
14249 * config/i386/i386.c (override_options): Reject
14250 -mstringop-strategy=rep_8byte with -m32.
14251 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
14252 to 1. Do count comparison against epilogue_size_needed at compile
14253 time even when count_exp was constant forced into register. For
14254 size_needed don't jump to epilogue, instead just avoid aligning
14255 and invoke the body algorithm. If need_zero_guard, add zero guard
14256 even if count is non-zero, but smaller than size_needed + number of
14257 bytes that could be stored for alignment.
14258 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
14259 to 1. If need_zero_guard, add zero guard even if count is non-zero,
14260 but smaller than size_needed + number of bytes that could be stored
14261 for alignment. Compare size_needed with epilogue_size_needed instead
14262 of desired_align - align, don't adjust size_needed, pass
14263 epilogue_size_needed to the epilogue expanders.
14264
260fda3d 14265 PR c/35742
26d5bf5b 14266 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 14267
67b846fa
JDA
142682009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14269
14270 * pa.c (last_address): Change to unsigned.
14271 (update_total_code_bytes): Change argument to unsigned. Don't
14272 check if insn addresses are set.
14273 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
14274 addresses are not set.
14275 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
14276
91c82473
NC
142772009-01-09 Nick Clifton <nickc@redhat.com>
14278
14279 * config/sh/symbian.c: Replace uses of DECL_INLINE with
14280 DECL_DECLARED_INLINE_P.
14281
4017e262
JJ
142822009-01-09 Jakub Jelinek <jakub@redhat.com>
14283
0a49e5c2
JJ
14284 PR middle-end/38347
14285 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
14286 GET_MODE (op0) in operand_subword_force calls.
14287
4017e262
JJ
14288 PR middle-end/38771
14289 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
14290 fold_convert arg0 operands to TREE_TYPE (op0) first.
14291
7cd06356
VM
142922009-01-08 Vladimir Makarov <vmakarov@redhat.com>
14293
14294 * params.def (ira-max-conflict-table-size): Decrease default value
14295 to 1000.
14296
96867bbd
JJ
142972009-01-08 Jakub Jelinek <jakub@redhat.com>
14298
14299 PR tree-optimization/37031
14300 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
14301 on parameter_set.
14302 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
14303 allocate it using gc instead of heap, use VEC_quick_push instead of
14304 VEC_safe_push.
14305 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
14306 instead of heap, use VEC_quick_push instead of VEC_safe_push.
14307 * tree-data-ref.h (struct access_matrix): Change matrix to gc
14308 allocated vector from heap allocated.
14309 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
14310 * tree-loop-linear.c (linear_transform_loops): Allocate nest
14311 vector only after perfect_loop_nest_depth call.
14312
68f61c3d
SP
143132009-01-08 Sebastian Pop <sebastian.pop@amd.com>
14314 Jan Sjodin <jan.sjodin@amd.com>
14315
14316 PR tree-optimization/38559
14317 * graphite.c (debug_value, copy_constraint,
14318 swap_constraint_variables, scale_constraint_variable, ): New.
14319 (get_lower_bound, get_upper_bound): Removed.
14320 (graphite_trans_bb_strip_mine): Clean up this code that works
14321 only for constant number of iterations. Fully copy upper and
14322 lower bound constraints, not only the constant part of them.
14323 * graphite.h (debug_value): Declared.
14324
82567e33
IR
143252009-01-08 Ira Rosen <irar@il.ibm.com>
14326
14327 PR tree-optimization/37194
14328 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 14329 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
14330 outside cost in case of known number of iterations.
14331
7da13f1d
NF
143322009-01-07 Nathan Froyd <froydnj@codesourcery.com>
14333 Alan Modra <amodra@bigpond.net.au>
14334
14335 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
14336 non-word-aligned REG+CONST addressing.
14337
c0f64575
UB
143382009-01-07 Uros Bizjak <ubizjak@gmail.com>
14339
14340 PR target/38706
14341 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
14342 free_after_compilation when outputting a thunk.
14343 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
14344 Do not call free_after_compilation here.
14345
301b6a4e
UB
143462009-01-07 Uros Bizjak <ubizjak@gmail.com>
14347
14348 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
14349 (ix86_valid_target_attribute_inner_p): Ditto.
14350
6a114766
JS
143512009-01-07 Jan Sjodin <jan.sjodin@amd.com>
14352
14353 PR tree-optimization/38492
14354 PR tree-optimization/38498
14355 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
14356 * tree-chrec.h (scev_is_linear_expression): Declared.
14357 * graphite.c (graphite_cannot_represent_loop_niter): New.
14358 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
14359 (graphite_loop_normal_form): Use gcc_assert.
14360 (scan_tree_for_params): Use CASE_CONVERT.
14361 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
14362 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
14363 Use gcc_assert. Discard scops that contain unhandled cases.
14364 (build_scop_conditions): Return a boolean status for unhandled cases.
14365 (strip_mine_profitable_p): Print the loop number, not its depth.
14366 (is_interchange_valid): Pass the depth of the loop nest, don't
14367 recompute it wrongly.
14368 (graphite_trans_bb_block): Same.
14369 (graphite_trans_bb_block): Print tentative of loop blocking.
14370 (graphite_trans_scop_block): Do not print that the loop has been
14371 blocked.
14372 (graphite_transform_loops): Do not handle scops that contain condition
14373 scalar phi nodes.
14374
65b82caa
L
143752009-01-07 H.J. Lu <hongjiu.lu@intel.com>
14376
14377 AVX Programming Reference (December, 2008)
14378 * config/i386/avxintrin.h (_mm256_stream_si256): New.
14379 (_mm256_stream_pd): Likewise.
14380 (_mm256_stream_ps): Likewise.
14381
14382 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
14383 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
14384 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
14385 (bdesc_special_args): Add __builtin_ia32_movntdq256,
14386 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
14387 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
14388 (ix86_expand_special_args_builtin): Likewise.
14389
14390 * config/i386/sse.md (AVXMODEDI): New.
14391 (avx_movnt<mode>): Likewise.
14392 (avx_movnt<mode>): Likewise.
14393 (<sse>_movnt<mode>): Remove AVX support.
14394 (sse2_movntv2di): Likewise.
14395
cef158f9
RG
143962009-01-07 Richard Guenther <rguenther@suse.de>
14397
14398 PR middle-end/38751
14399 * fold-const.c (extract_muldiv): Remove obsolete comment.
14400 (fold_plusminus_mult_expr): Undo MINUS_EXPR
14401 to PLUS_EXPR canonicalization for the canonicalization.
14402
246cb5be
GP
144032009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
14404
14405 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
14406 hosted cross-compilers generating less efficient code.
14407
84b9b872
RS
144082009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
14409
14410 * function.h (rtl_data): Add a dbr_scheduled_p field.
14411 * reorg.c (dbr_schedule): Set it.
14412 (gate_handle_delay_slots): Check it.
14413 * config/mips/mips.c (mips_base_delayed_branch): Delete.
14414 (mips_reorg): Check flag_delayed_branch instead of
14415 mips_base_delayed_branch.
14416 (mips_override_options): Don't set mips_base_delayed_branch
14417 or flag_delayed_branch.
14418
ace984c8
RS
144192009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
14420
14421 PR rtl-optimization/38426.
14422 * ira.c (ira): Set current_function_is_leaf earlier.
14423
7ad7809b
JJ
144242009-01-06 Jakub Jelinek <jakub@redhat.com>
14425
14426 PR rtl-optimization/38722
14427 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
14428 too early, only set a flag and modify after last possible
14429 undo_all point.
14430
c52ec948
JJ
144312009-01-06 Janis Johnson <janis187@us.ibm.com>
14432
14433 PR c/34252
14434 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
14435 * real.c (decimal_single_format): Correct values of emin and emax.
14436 (decimal_double_format): Ditto.
14437 (decimal_quad_format): Ditto.
14438 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
14439 computation of DECnn_MIN and DECnn_MAX for corrected values of
14440 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
14441 __DECnn_MIN__, and adjust its computation for the corrected value
14442 of emin.
14443
300240e1
JH
144442009-01-06 Jan Hubicka <jh@suse.cz>
14445
14446 PR target/38744
435da628 14447 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 14448
271c069e
GP
144492009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
14450
14451 * doc/contrib.texi (Contributors): Slightly adjust the end note.
14452 Add Robert Clark to the list of testers.
14453
64e4c301 144542009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14455 Kai Tietz <kai.tietz@onevision.com>
64e4c301 14456
435da628
UB
14457 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
14458 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 14459
7650b83e 144602009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14461 Kai Tietz <kai.tietz@onevision.com>
7650b83e 14462
435da628
UB
14463 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
14464 for w64 ABI.
14465 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
14466 (ix86_nsaved_regs): Count only general purpose regs.
14467 (ix86_nsaved_sseregs): New.
14468 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
14469 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
14470 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
14471 general purpose regs.
7650b83e
JH
14472 (ix86_emit_save_sse_regs_using_mov): New.
14473 (ix86_expand_prologue): Save SSE regs if needed.
14474 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
14475 (ix86_emit_restore_sse_regs_using_mov): New.
14476 (ix86_expand_epilogue): Save SSE regs if needed.
14477
9aa5c1b2 144782009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 14479 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 14480
435da628
UB
14481 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
14482 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
14483 functions when accumulate outgoing args is off.
9aa5c1b2 14484
f7556aae
L
144852009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14486
14487 PR bootstrap/38742
14488 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
14489 before using pseudos_have_intersected_live_ranges_p.
14490
14491 * ira-int.h (ira_assert): Always define.
14492
e47b7d04
L
144932009-01-06 H.J. Lu <hongjiu.lu@intel.com>
14494
14495 AVX Programming Reference (December, 2008)
14496 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
14497 (_mm256_permute2_pd): Likewise.
14498 (_mm_permute2_ps): Likewise.
14499 (_mm256_permute2_ps): Likewise.
14500 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
14501 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
14502
14503 * config/i386/i386.c (ix86_builtins): Remove
14504 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
14505 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
14506 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
14507 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
14508 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
14509 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
14510 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
14511 __builtin_ia32_vpermil2ps256.
14512 (ix86_init_mmx_sse_builtins): Updated.
14513 (ix86_expand_args_builtin): Likewise.
14514
44b86471
JDA
145152009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14516
e47b7d04
L
14517 * pa.c (output_call): Relocate non-jump insns in the delay slot of
14518 long absolute calls when generating PA 2.0 code.
44b86471 14519
311aab06
VM
145202009-01-05 Vladimir Makarov <vmakarov@redhat.com>
14521
14522 PR rtl-optimization/38583
14523 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
14524
14525 * params.def (ira-max-conflict-table-size): New.
14526
14527 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 14528
311aab06 14529 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 14530
311aab06
VM
14531 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
14532 table. Report this. Return result of building.
14533 (ira_build_conflicts): Use ira_conflicts_p. Check result of
14534 building conflict table.
14535
301b6a4e 14536 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 14537 (ira_color): Use ira_conflicts_p.
2ba9daa7 14538
311aab06
VM
14539 * global.c: Include ira.h.
14540 (pseudo_for_reload_consideration_p, build_insn_chain): Use
14541 ira_conflicts_p.
14542
14543 * Makefile.in (global.o): Add ira.h.
2ba9daa7 14544
311aab06
VM
14545 * ira-build.c (mark_all_loops_for_removal,
14546 propagate_some_info_from_allocno): New.
14547 (remove_unnecessary_allocnos): Call
14548 propagate_some_info_from_allocno.
14549 (remove_low_level_allocnos): New.
14550 (remove_unnecessary_regions): Add parameter. Call
14551 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
14552 parameter to remove_unnecessary_regions.
14553 (ira_build): Remove all regions but root if the conflict table was
14554 not built. Update conflict hard regs for allocnos crossing calls.
14555
14556 * ira.c (ira_conflicts_p): New global.
14557 (ira): Define and use ira_conflicts_p.
14558
14559 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14560 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 14561 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 14562
5641785f
BE
145632009-01-06 Ben Elliston <bje@au.ibm.com>
14564
14565 * gengtype-lex.l (YY_NO_INPUT): Define.
14566
e4e5261f
AP
145672009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
14568
14569 PR c/34911
5641785f
BE
14570 * c-common.c (handle_vector_size_attribute): Also reject
14571 BOOLEAN_TYPE types.
e4e5261f 14572
7b10257f
SP
145732009-01-05 Sebastian Pop <sebastian.pop@amd.com>
14574
14575 PR tree-optimization/38492
14576 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
14577 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
14578 rename_map_elt_info, eq_rename_map_elts,
14579 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
14580 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
14581 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
14582 (sese_build_livein_liveouts): New.
14583 (new_sese, free_sese): New.
14584 (new_scop): Call new_sese.
14585 (free_scop): Call free_sese.
14586 (rename_variables_from_edge, rename_phis_end_scop): Removed.
14587 (register_old_new_names): Renamed register_old_and_new_names.
14588 (register_scop_liveout_renames, add_loop_exit_phis,
14589 insert_loop_close_phis, struct igp,
14590 default_liveout_before_guard, add_guard_exit_phis,
14591 insert_guard_phis, copy_renames): New.
14592 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
14593 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
14594 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
14595 (scop_adjust_phis_for_liveouts): New.
14596 (gloog): Call scop_adjust_phis_for_liveouts.
14597
14598 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 14599 num_ver and livein.
7b10257f
SP
14600 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
14601 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
14602 (struct scop): Added field liveout_renames.
14603 (SCOP_LIVEOUT_RENAMES): New.
14604
9761fcc7
HJ
146052009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
14606
14607 PR tree-optimization/38510
14608 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
14609 (translate_clast): Call recompute_all_dominators before
14610 graphite_verify.
14611 (gloog): Call recompute_all_dominators before graphite_verify.
14612
146132009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 14614 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
14615
14616 PR tree-optimization/38500
14617 * graphite.c (create_sese_edges): Call fix_loop_structure after
14618 splitting blocks.
14619
c95b2534 146202009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
14621
14622 * config.gcc: Add m32r*-*-rtems*.
14623 * config/m32r/rtems.h: New file.
14624
fc0cd180
BE
146252009-01-05 Ben Elliston <bje@au.ibm.com>
14626
14627 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
14628 (.po.pox): Likewise.
14629 (po/gcc.pot): Likewise.
14630
3106d8e5
DM
146312009-01-04 David S. Miller <davem@davemloft.net>
14632
14633 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
14634 (STARTING_FRAME_OFFSET): Always set to zero.
14635
0009b473
RS
146362009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14637
14638 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
14639 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
14640 fixed-point types, and vectors of the same.
14641
4f24c6d6
RS
146422009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
14643
14644 * config/mips/sync.md (*mb_barrier): Rename to...
14645 (*memory_barrier): ...this.
14646
1df48f5c
JW
146472009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
14648
14649 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 14650 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
14651 and put in alphabetical order. Fix 'target' name and put in order.
14652 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
14653 typos.
14654
1a8c13b3
UB
146552009-01-04 Uros Bizjak <ubizjak@gmail.com>
14656
14657 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
14658 (memory_barrier): Expand as unspec instead of unspec_volatile.
14659 Remove mem:BLK from insn operands. Use Pmode scratch register.
14660 (*memory_barrier): Define as unspec instead of unspec_volatile.
14661 Use (match_dup 0) as input operand.
14662
14663 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
14664 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
14665 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
14666 scratch register. Remove operand 1.
14667 (*stbar): Define as unspec instead of unspec_volatile.
14668 Use (match_dup 0) as input operand, remove (const_int 8).
14669 (*membar): Define as unspec instead of unspec_volatile.
14670 Use (match_dup 0) as input operand, remove input operand 2.
14671
14672 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
14673 (memory_barrier): Expand as unspec instead of unspec_volatile.
14674 Remove mem:BLK from insn operands. Use Pmode scratch register.
14675 (*memory_barrier): Define as unspec instead of unspec_volatile.
14676 Use (match_dup 0) as input operand.
14677
14678 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
14679 Remove mem:BLK from insn operands. Use Pmode scratch register.
14680 Set volatile flag on operand 0.
14681 (*memory_barrier): New insn pattern.
14682
14683 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
14684 insn operands.
14685 (*memory_barrier): Use (match_dup 0) as input operand.
14686
14687 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
14688 Remove mem:BLK from insn operands. Use Pmode scratch register.
14689 Set volatile flag on operand 0.
301b6a4e 14690 (*mb_internal): New insn pattern.
1a8c13b3
UB
14691
14692 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
14693
fb0703f7
SB
146942009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14695
14696 PR middle-end/38586
14697 * function.c (struct temp_slot): Move to the section of the file
14698 that deals with temp slots. Remove field 'address'.
14699 (temp_slot_address_table): New hash table of address -> temp slot.
14700 (struct temp_slot_address_entry): New struct, items for the table.
14701 (temp_slot_address_compute_hash, temp_slot_address_hash,
14702 temp_slot_address_eq, insert_temp_slot_address): Support functions
14703 for the new table.
14704 (find_temp_slot_from_address): Rewrite to use the new hash table.
14705 (remove_unused_temp_slot_addresses): Remove addresses of temp
14706 slots that have been made available.
14707 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
14708 worker function for remove_unused_temp_slot_addresses.
14709 (assign_stack_temp_for_type): Don't clear the temp slot address list.
14710 Add the temp slot address to the address -> temp slot map.
14711 (update_temp_slot_address): Update via insert_temp_slot_address.
14712 (free_temp_slots): Call remove_unused_temp_slot_addresses.
14713 (pop_temp_slots): Likewise.
14714 (init_temp_slots): Allocate the address -> temp slot map, or empty
14715 the map if it is already allocated.
14716 (prepare_function_start): Initialize temp slot processing.
14717
b5a430f3
SB
147182009-01-04 Steven Bosscher <steven@gcc.gnu.org>
14719
14720 PR middle-end/38584
14721 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
14722 Calculate the size of all stack vars assuming no packing of stack
14723 vars will happen, replacing a quadratic algorithm with a linear one.
14724
5d560619
JJ
147252009-01-03 Jakub Jelinek <jakub@redhat.com>
14726
14727 PR target/38707
14728 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
14729 can't be used.
14730
953a7caa
DN
147312009-01-03 Diego Novillo <dnovillo@google.com>
14732
14733 * doc/contrib.texi: Update contributions.
14734
5f26a230
JJ
147352009-01-03 Jakub Jelinek <jakub@redhat.com>
14736
493aa551
JJ
14737 PR c++/38705
14738 * builtins.c (fold_builtin_memory_op): Give up if either operand
14739 is volatile. Set srctype or desttype to non-qualified version
14740 of the other type.
14741
5f26a230
JJ
14742 PR c/38700
14743 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
14744 and FUNCTION_DECLs.
14745
c95b2534 147462009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
14747
14748 PR rtl-optimization/35805
14749 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
14750 problem if fast dce is able to remove any instructions.
14751 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 14752
0b355794
MM
147532009-01-02 Mark Mitchell <mark@codesourcery.com>
14754
14755 PR 33649
14756 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
14757
0cf0d02b
JJ
147582009-01-02 Jakub Jelinek <jakub@redhat.com>
14759
14760 PR middle-end/38690
14761 * tree-flow.h (op_code_prio, op_prio): New prototypes.
14762 * tree-pretty-print.c (op_code_prio): New function.
14763 (op_prio): No longer static. Use op_code_prio.
14764 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
14765 Use op_prio and op_code_prio to determine if () should be
14766 printed around operand(s) or not.
14767
14768 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
14769 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
14770 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
14771 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
14772 pp_character instead of pp_string for single letter printing.
14773
e3606f3b
RS
147742009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
14775
14776 * doc/extend.texi: Fix '#pragma GCC option' typo.
14777
c95b2534 147782009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 14779
a5f061dc
RG
14780 * doc/install.texi (--enable-checking): Mention different
14781 default for stage1.
14782 (--enable-stage1-checking): Document.
00f39bd5 14783
26de0bcb
AP
147842009-01-01 Andrew Pinski <pinskia@gmail.com>
14785
14786 PR middle-end/30142
14787 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
14788 case to be an error.
14789
7a7d8fab
BE
147902009-01-02 Ben Elliston <bje@au.ibm.com>
14791
14792 * config/fp-bit.h (pack_d): Constify argument.
14793 * config/fp-bit.c (makenan): Constify return type. Remove casts.
14794 (isnan): Constify argument.
14795 (isinf): Likewise.
14796 (iszero): Likewise.
14797 (pack_d): Likewise.
14798 (_fpadd_parts): Constify return type.
14799 (_fpmul_parts): Likewise.
14800 (_fpdiv_parts): Likewise.
14801
b295aee2
JJ
148022009-01-01 Jakub Jelinek <jakub@redhat.com>
14803
14804 PR c/36489
14805 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
14806 warn about overwriting initializer with side-effects or
14807 -Woverride-init if !IMPLICIT.
14808 (output_init_element): Likewise. Pass IMPLICIT down to
14809 add_pending_init.
14810 (process_init_element): Add IMPLICIT argument. Pass it down
14811 to output_init_element.
14812 (push_init_element, pop_init_level, set_designator): Adjust
14813 process_init_element callers.
14814 (set_nonincremental_init, set_nonincremental_init_from_string):
14815 Adjust add_pending_init callers.
14816 (output_pending_init_elements): Adjust output_init_element callers.
14817 * c-tree.h (process_init_element): Adjust prototype.
14818 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14819 process_init_element callers.
ad41bd84
JM
14820
14821\f
14822Copyright (C) 2009 Free Software Foundation, Inc.
14823
14824Copying and distribution of this file, with or without modification,
14825are permitted in any medium without royalty provided the copyright
14826notice and this notice are preserved.