]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Revert emutls patch.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
5c3667a1 12006-10-09 Richard Henderson <rth@redhat.com>
2
3 Revert emutls patch.
4
bd09cd3e 52006-10-09 Richard Guenther <rguenther@suse.de>
6
7 PR middle-end/29254
8 * cgraphunit.c (verify_cgraph_node): Bail out on earlier
9 errors.
10
f406e07e 112006-10-09 Steve Ellcey <sje@cup.hp.com>
12
13 PR target/27880
14 * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
15 * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
16 * configure: Regenerate.
17 * config.in: Regenerate.
18
28f1e21f 192006-10-09 Aldy Hernandez <aldyh@redhat.com>
20
21 * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
22
73816ab1 232006-10-08 Richard Sandiford <richard@codesourcery.com>
24
25 * config/mips/mips.c (mips_legitimize_tls_address): Implement
26 all TLS models in the same way as local exec if !TARGET_ABICALLS.
27 Remove stray newline.
28
345b1590 292006-10-08 Richard Sandiford <richard@codesourcery.com>
30
31 * config/mips/mips.c (mips_classify_symbol): Do not return
32 SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
33 (mips_in_small_data_p): Tweak comments.
34
3aa446da 352006-10-08 Richard Sandiford <richard@codesourcery.com>
36
37 * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
38
eed50407 392006-10-07 Kazu Hirata <kazu@codesourcery.com>
40
41 * gimplify.c, sched-int.h: Fix comment typos.
42
8e3eaeaf 43 * sched-int.h: Fix comment typos.
44
fd27912f 452006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
46
47 * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
48 New macros.
49 * sched-ebb.c (begin_schedule_ready): Use them.
50 * haifa-sched.c (schedule_insn, move_insn, try_ready,
51 add_to_speculative_block, create_check_block_twin, speculate_insn,
52 fix_jump_move, move_block_after_check): Ditto.
53 * sched-rgn.c (new_ready): Ditto.
54
2521f35f 552006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
56
57 PR rtl-optimization/29128
58 * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
59 * sched-ebb.c (advance_target_bb): Use it to fix condition to
60 allow interblock movement of speculation checks.
61
9b6564b5 622006-10-06 Zdenek Dvorak <dvorakz@suse.cz>
63
64 PR middle-end/29256
65 * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
66 casted to integer type.
67 (get_address_cost): Decrease cost of [symbol + index] addressing modes
68 if they are significantly more expensive than [reg + index] ones.
69
3e69d97d 702006-10-06 Jakub Jelinek <jakub@redhat.com>
71
62761183 72 PR tree-optimization/29330
73 * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
74 (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
75 on newly allocated ddrs.
76 (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
77 to VEC (loop_p, heap) pointer.
78 (compute_data_dependences_for_loop): Adjust caller.
79 (free_dependence_relations): Free DDR_LOOP_NEST.
80
81 * tree-loop-linear.c (linear_transform_loops): Don't forget to
82 free DEPENDENCE_RELATIONS and DATAREFS.
83
3e69d97d 84 PR target/28924
85 * builtins.c (expand_builtin_sync_operation,
86 expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
87 Use convert_to_mode to handle promoted arguments.
88
85a76dc8 892006-10-06 J"orn Rennecke <joern.rennecke@st.com>
90
91 * print-tree.c (print_node_brief, print_node): Print sign of Inf.
92
d44c5496 932006-10-06 J"orn Rennecke <joern.rennecke@st.com>
94
95 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
96
c6307a1e 972006-10-05 Uros Bizjak <uros@kss-loka.si>
98
99 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
100 "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
101 Use <modeconstraint> instead of "r" as operand 1 constraint.
102
6e8435a1 1032006-10-06 Olivier Hainque <hainque@adacore.com>
104
105 * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
106 Don't recurse on the pointed-to type.
107 * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
108 DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
109 types with components of variable size.
110
8057d305 1112006-10-06 Danny Smith <dannysmith@users.sourceforge.net>
112
113 config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
114
69d99d08 1152006-10-06 Jakub Jelinek <jakub@redhat.com>
116
3be2994e 117 PR tree-optimization/29290
118 * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
119 multiple exits.
120
8d3480ed 121 PR target/29198
122 * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
123 * config/i386/predicates.md (local_symbolic_operand): Likewise.
124
69d99d08 125 PR c/29091
126 * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
127 the number of vector elements fill the rest with zeros.
128
12b49fa5 1292006-10-05 Richard Sandiford <richard@codesourcery.com>
130
131 * config/mips/mips.c (mips_pass_by_reference): Do not return false
132 for EABI if type is NULL. Use a size check based on GET_MODE_SIZE
133 instead.
134
8c9eef63 1352006-10-05 Bernd Schmidt <bernd.schmidt@analog.com>
136
137 * config/bfin/bfin.md (subsi3): Lose expander, change previously
138 unnamed pattern into subsi3. Use correct constraints/predicates.
139 * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
140 * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
141
009860bf 1422006-10-05 Ira Rosen <irar@il.ibm.com>
143
144 * doc/loop.texi: Add data references analysis description.
145
7be3c866 1462006-10-04 Brooks Moses <bmoses@stanford.edu>
147
148 * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
149
2551f8e0 1502006-10-04 Richard Henderson <rth@redhat.com>
151 Jakub Jelinek <jakub@redhat.com>
152
153 * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
154 * builtin-types.def (BT_WORD): Make unsigned.
155 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
156 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
157 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
158 * c-decl.c (grokdeclarator): Don't error if !have_tls.
159 * c-parser.c (c_parser_omp_threadprivate): Likewise.
160 * cgraph.c (decide_is_variable_needed): Look at force_output.
161 Recurse for emulated tls.
162 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
163 checks redundant with decide_is_variable_needed.
164 (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
165 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
166 emulated tls.
167 * expr.c (emutls_var_address): New.
168 (expand_expr_real_1): Expand emulated tls.
169 (expand_expr_addr_expr_1): Likewise.
170 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
171 * output.h (emutls_finish): Declare.
172 * toplev.c (compile_file): Call it.
173 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
174 address before wrapping in CONST.
175 * varasm.c (emutls_htab, emutls_object_type): New.
176 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
177 (get_emutls_object_name, get_emutls_object_type): New.
178 (get_emutls_init_templ_addr, emutls_decl): New.
179 (emutls_common_1, emutls_finish): New.
180 (assemble_variable): When emulating tls, swap decls; generate
181 constructor for the emutls objects.
182 (do_assemble_alias): When emulating tls, swap decl and target name.
183 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
184 for emulated tls.
185 * emutls.c: New file.
186 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
187 tls_object for real tls.
188
5e156a9d 1892006-10-04 Zack Weinberg <zackw@panix.com>
190
191 Fix bug in constraint-check generator, reported by Rask Ingemann
192 Lambertsen:
193 * genpreds.c (add_constraint): Don't remove anything from the
194 expression here.
195 (write_tm_constrs_h): Detect whether "op" argument is used, and
196 mark it ARG_UNUSED if it isn't.
197 (write_insn_const_int_ok_for_constraint): Skip the part of the
198 expression that would test whether "op" (which is not available
199 here) is a CONST_INT.
200
9a0aa4d3 2012006-10-04 Ryan Mansfield <rmansfield@qnx.com>
202
203 PR c++/28448
204 * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
205
affc4a5b 2062006-10-03 Geoffrey Keating <geoffk@apple.com>
207
208 * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
209 current Leopard versions.
210 * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
211
cdab3c63 2122006-10-03 Kazu Hirata <kazu@codesourcery.com>
213
214 * doc/install.texi: Fix typos.
215
3a69c60c 2162006-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
217
218 * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
219 * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
220 * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
221
c7b5e79e 2222006-10-02 Jack Howarth <howarth@bromo.med.uc.edu>
223
224 * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
225 arg to be struct mach_header_64* instead.
226
0aa655a0 2272006-10-02 Jakub Jelinek <jakub@redhat.com>
228
229 PR c/29154
230 * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
231 side effects after the outer expression's post side effects.
232
9f35f9b2 2332006-10-01 Sandra Loosemore <sandra@codesourcery.com>
234
235 * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
236 comments to reflect actual behavior and relationship between
237 DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
238
239 * doc/c-tree.texi (Working with declarations): Fix documentation
240 of FIELD_DECL likewise.
241
b7aa2b22 2422006-10-01 Ryan Mansfield <rmansfield@qnx.com>
243
244 PR c/20533
5e156a9d 245 * doc/extend.texi: Add used variable attribute description.
b7aa2b22 246
f1f157ae 2472006-09-30 Joseph S. Myers <joseph@codesourcery.com>
248
249 PR c/24010
250 * c.opt (Woverride-init): New.
251 * c-opts.c (c_common_post_options): Default warn_override_init to
252 extra_warnings.
253 * c-typeck.c (add_pending_init, output_init_element): Warn for
254 overriding initializers without side effects.
255 * doc/invoke.texi (-Woverride-init): Document.
256 (-Wextra): Update.
257
0264b815 2582006-09-30 Eric Botcazou <ebotcazou@libertysurf.fr>
259
260 PR rtl-optimization/28096
261 * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
262 assignment has already been used as a destination earlier in the block.
263
2642006-09-29 Eric Botcazou <ebotcazou@adacore.com>
2c8a1497 265
266 * builtins.c (expand_builtin_setjmp): Delete.
267 (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
268 <BUILT_IN_SETJMP_SETUP>: New case.
269 <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
270 <BUILT_IN_SETJMP_RECEIVER>: Likewise.
271 * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
272 (BUILT_IN_SETJMP_DISPATCHER): Likewise.
273 (BUILT_IN_SETJMP_RECEIVER): Likewise.
274 * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
275 (lower_function_body): Initialize it to false. If it is set to true
276 at the end of the processing, emit the setjmp dispatcher.
277 (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
278 is __builtin_setjmp and set calls_builtin_setjmp to true as well.
279 <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
280 on the rhs of the assignment.
281 (lower_builtin_setjmp): New function.
282 * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
283 BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
284 * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
285 to detect calls that can go to non-local labels. Use specific
286 helper to create the abnormal edges associated with them.
287 <MODIFY_EXPR>: Likewise.
288 (make_abnormal_goto_edges): New function extracted from...
289 (make_goto_expr_edges): ...here. Call it for computed gotos.
290 (simple_goto_p): Minor tweak.
291 (tree_can_make_abnormal_goto): New predicate.
292 (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
293 (tree_purge_dead_abnormal_call_edges): New function.
294 * tree-flow.h (tree_can_make_abnormal_goto): Declare.
295 (tree_purge_dead_abnormal_call_edges): Likewise.
296 (make_abnormal_goto_edges): Likewise.
297 * tree-inline.c (expand_call_inline): Simplify statement frobbing.
298 Purge all dead abnormal edges if the call was in the last statement.
299 * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
300 (execute_fixup_cfg): If there are non-local labels in the function,
301 scan the basic blocks and split them at calls that can go to non-local
302 labels or add missing abnormal call edges. Write down the CFG in the
303 dump file.
304 (pass_fixup_cfg): Remove TODO_dump_func flag.
305 * unwind-sjlj.c: Poison setjmp.
306 * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
307 * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
308 (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
309 (DONT_USE_BUILTIN_SETJMP): Document it.
310
23e97733 3112006-09-28 Geoffrey Keating <geoffk@apple.com>
312
313 PR target/28617
314 * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
315 to 1 when __ppc64__ is defined.
316 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
317 darwin-64.c.
318 * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
319
620f139b 3202006-09-28 Steve Ellcey <sje@cup.hp.com>
321
322 * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
323 * config/ia64/unwind-hpux.c: Delete.
324
18272fb7 3252006-09-28 Eric Botcazou <ebotcazou@adacore.com>
326
327 * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
328 on the element before gimplifying it, instead of punting if it is of
329 variable size.
330
93d414c9 3312006-09-28 Zdenek Dvorak <dvorakz@suse.cz>
332
333 * doc/loop.texi: New file.
334 * doc/gccint.texi: Reference loop.texi.
335 * Makefile.in (loop.texi): Add.
336
6a53b02d 3372006-09-27 Geoffrey Keating <geoffk@apple.com>
338
339 * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
340 __sysctl.
341 * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
342 * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
343
8d737105 3442006-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
345
346 * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
347
112f3d57 3482006-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
349
350 * doc/install.texi: Document required versions of GMP and MPFR.
351
cdb1295a 3522006-09-27 Paul Brook <paul@codesourcery.com>
353
354 PR target/29230
355 * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
356
595d62e9 3572006-09-27 Richard Sandiford <richard@codesourcery.com>
358
359 * reload1.c (alter_reg): Require the alignment of the stack slot to
360 be at least reg_max_ref_width bytes.
361 (scan_paradoxical_subregs): Record the largest width in
362 reg_max_ref_width.
363
76d042ab 3642006-09-26 Jakub Jelinek <jakub@redhat.com>
365
366 PR middle-end/25261
367 PR middle-end/28790
368 * tree-nested.c (struct nesting_info): Added static_chain_added.
369 (convert_call_expr): Set static_chain_added when adding static
370 chain. Handle OMP_PARALLEL and OMP_SECTION.
371
abcb6ae7 3722006-09-25 Matthias Klose <doko@debian.org>
373
374 * doc/invoke.texi: Add missing full stop.
375
8acdd6b3 3762006-09-25 Richard Henderson <rth@redhat.com>
377
378 * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
379 before cgraph_function_flags_ready.
380
4d9f13e4 3812006-09-24 Zdenek Dvorak <dvorakz@suse.cz>
382 Adam Nemet <anemet@caviumnetworks.com>
383
384 * tree-ssa-loop-ivopts.c (aff_combination_convert,
385 determine_common_wider_type): New functions.
386 (get_computation_aff): Use them to simplify arithmetic between
387 UBASE and CBASE if they are shortened from the same type.
388
7f2a4bd2 3892006-09-24 Kazu Hirata <kazu@codesourcery.com>
390
391 PR target/28911
392 * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
393 -2147483647 - 1 instead of 0x80000000.
394
64a46f56 3952006-09-23 Revital1 Eres <ERES@il.ibm.com>
396
397 * flags.h (HONOR_NANS): Fix typo in comment.
398
eada9ddd 3992006-09-23 Uros Bizjak <uros@kss-loka.si>
400
401 * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
402
9369a09f 4032006-09-23 Jakub Jelinek <jakub@redhat.com>
404
405 PR c/28706
406 PR c/28712
407 * tree.c (merge_attributes, attribute_list_contained): If both
408 TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
409 simple_cst_equal.
410 * c-typeck.c (comptypes_internal): Don't consider aggregates
411 in different TUs as compatible if there one set of attributes is
412 not a subset of the other type's attributes.
413 (composite_type): Try harder not to create a new aggregate type.
414
0f4f6f1c 4152006-09-22 Geoffrey Keating <geoffk@apple.com>
416
852c5acb 417 * config/i386/driver-i386.c: Always define host_detect_local_cpu.
418 * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
419 or x86_64 host. Define HAVE_LOCAL_CPU_DETECT.
420 (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
421 than replicating condition above.
422 * config.host (i[34567]86-*-*): Always use driver-i386.o.
423
0f4f6f1c 424 * config/darwin.h (LINK_SYSROOT_SPEC): New.
425 (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
426 the linker by default.
427
70026e8a 4282006-09-22 Mike Stump <mrs@apple.com>
429
430 * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
431 code.
432
7615883a 4332006-09-22 Richard Guenther <rguenther@suse.de>
434
435 PR middle-end/28964
436 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
437 sort of stack variables stable.
438
9a28c846 4392006-09-22 Peter Bergner <bergner@vnet.ibm.com>
440
441 PR middle-end/28690
442 * explow.c (force_reg): Set REG_POINTER flag according to
443 MEM_POINTER flag.
444
71cfcaa2 4452006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
446
447 PR tree-optimization/28888
448 * tree-if-conv.c (combine_blocks): Rewritten.
449 * tree-cfg.c (tree_verify_flow_info): Check that edges with
450 EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
451
5a7c6119 4522006-09-22 Jakub Jelinek <jakub@redhat.com>
453
454 * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
455 needed.
456
9357a254 4572006-09-21 Richard Sandiford <richard@codesourcery.com>
458
459 * varasm.c (copy_constant): Fix reversed gcc_assert check.
460
5d820dff 4612006-09-21 Janis Johnson <janis187@us.ibm.com>
462
463 * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
464
3036ecbe 4652006-09-21 Roger Sayle <roger@eyesopen.com>
466
467 PR debug/29132
468 * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
469 dw_fde_current_label, to be the start of the function, i.e. the same
470 value as dw_fde_begin.
471
15ea25ad 4722006-09-20 Richard Sandiford <richard@codesourcery.com>
473
474 * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
475 * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
476 (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
477 (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
478 (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
479 (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
480 (abs<mode>2, neg<mode>2): Likewise.
481 * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
482 (*mips_abs_ps): New define_insn.
483
dee3c9dd 4842006-09-20 Josh Conner <jconner@apple.com>
485
486 PR middle-end/25505
487 * calls.c (expand_call): Allow reuse of structure return stack
488 temp.
489
a341fc0c 4902006-09-20 Paul Brook <paul@codesourcery.com>
491
a341fc0c 492 * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
493 positive offsets.
494
cded8ad2 4952006-09-20 Janis Johnson <janis187@us.ibm.com>
496
497 * doc/extend.texi (Decimal Float): Update for latest draft TR,
498 clean up terminology.
499
fa4578c6 5002006-09-20 Steve Ellcey <sje@cup.hp.com>
501
502 PR target/28574
503 * ifcvt.c (dead_or_predicable): Don't predicate then blocks
504 with tablejumps in them.
505
eaa3785f 5062006-09-20 Jakub Jelinek <jakub@redhat.com>
507
508 PR middle-end/28046
509 * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
510 wrap it into TARGET_EXPR.
511
99efba31 5122006-09-20 Eric Christopher <echristo@apple.com>
513
514 * config/i386/i386.c (x86_fisttp): Remove.
515 * config/i386/i386.h (x86_fisttp): Ditto.
516 (TARGET_FISTTP): Ditto.
517
6db57367 5182006-09-19 Eric Christopher <echristo@apple.com>
519
520 * doc/tm.texi (OBJC_JBLEN): Describe.
521 * config/i386/darwin.h (OBJC_JBLEN): Define.
522 * config/rs6000/darwin.h: Ditto.
523
1b575dc7 5242006-09-19 Steven Bosscher <steven@gcc.gnu.org>
525
526 PR rtl-optimization/21299
527 * reload1.c (reload): Purge invalid ASMs in the final pass.
528
27ab60b9 5292006-09-19 Steve Ellcey <sje@cup.hp.com>
530
531 PR 28490
532 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
533 pointers as legitimate constants.
534
d105e3e2 5352006-09-19 Paul Brook <paul@codesourcery.com>
536
537 PR target/28516
538 * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
539
6dce7ee9 5402006-09-17 Zdenek Dvorak <dvorakz@suse.cz>
541
542 PR tree-optimization/28887
543 * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
544 component parts from the reference.
545 (gather_memory_references_ref): Record the reference without the
546 nonaddressable component parts.
547
bc7ab021 5482006-09-17 Steven Bosscher <steven@gcc.gnu.org>
549
550 PR c/25993
551 * c-opts.c (c_common_handle_option): Ignore the -std options
552 if the input language is assembly.
553
e6c961dd 5542006-09-17 Ira Rosen <irar@il.ibm.com>
555
467bcbd9 556 PR tree-opt/21591
e6c961dd 557 * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
467bcbd9 558 tag first.
559 (ptr_ptr_may_alias_p): Likewise.
560 (record_record_differ_p): New function.
561 (base_object_differ_p): Call record_record_differ_p.
e6c961dd 562
f5911bbe 5632006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
564
565 PR tree-opt/29059
566 * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
567 away for the expr argument.
568
5be4eedf 5692006-09-16 Steven Bosscher <steven@gcc.gnu.org>
570
f5911bbe 571 PR tree-opt/27742
5be4eedf 572 * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
573 before using it for dumping after vectorizing loops.
574
f5911bbe 5752006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
576 Jack Howarth <howarth@bromo.med.uc.edu>
aa8b5d07 577
578 PR target/29030
579 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
580 skip on error_mark_node.
581 (rs6000_darwin64_record_arg_recurse): Likewise.
582
0d26f707 5832006-09-16 Steven Bosscher <steven@gcc.gnu.org>
584
585 * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
586 * doc/rtl.texi: Remove related documentation.
587
2ce55c0b 5882006-09-16 Bernd Schmidt <bernd.schmidt@analog.com>
589
590 * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
591 printf.
592
1a29d5df 5932006-09-15 Jim Wilson <wilson@specifix.com>
594
595 * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
596 Handle symbol offsets same as they are handled in ia64_expand_move
597 and move_operand.
598
9cab63d0 5992006-09-16 Andreas Tobler <a.tobler@schweiz.org>
600
601 * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
602 Add forgotten parameter to the fprintf call.
603
066cf272 6042006-09-15 Steve Ellcey <sje@cup.hp.com>
605
606 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
607
35ca3ada 6082006-09-15 Uros Bizjak <uros@kss-loka.si>
609
610 * doc/contrib.texi: Add my entry.
611
c2a5aadd 6122006-09-15 Nick Clifton <nickc@redhat.com>
613
614 * doc/md.texi (Processor pipeline description): Fix typo in
615 example of how to use the absence_set directive and reword the
616 description to make it slightly easier to read.
617
2ce55c0b 6182006-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
883bb2bb 619
620 * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
621 * loop-doloop.c (doloop_optimize): Use it to limit costs of
622 expanding the number of iterations.
ff7e43ad 623 * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
883bb2bb 624
aa02fa19 625 * cfgrtl.c (emit_insn_at_entry): New function.
626 * rtl.h (emit_insn_at_entry): Declare it.
627 * integrate.c (emit_initial_value_sets): Use it.
628
1db61145 629 * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
630
e82f36f5 631 * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
632 bad.
633 (struct loop_work and related VEC declarations): Delete.
634 (bfin_dump_loops): Print out new member bad.
635 (bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
636 (bfin_scan_loop): Don't recurse.
637 (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
638 loops. No longer need to update outer loops if the current one is
639 found bad. Move some validitiy checks to bfin_discover_loop.
640 (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
641 but changed not to check for nesting. Also changed to use the new bad
642 flag.
643 (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
644 time. Use bitmap based test to discover loop nesting.
645
f9c7c7fb 6462006-09-15 Kazu Hirata <kazu@codesourcery.com>
647
648 * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
649 one line.
650
62419968 6512006-09-14 Richard Guenther <rguenther@suse.de>
652 Kazu Hirata <kazu@codesourcery.com>
653
654 PR middle-end/28884.
655 * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
656 (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
657 Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
658 with TARGET_FUNCTION_VALUE.
659
7882a2f9 6602006-09-14 Anatoly Sokolov <aesok@post.ru>
661
662 PR target/26504
663 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
664
09fa572c 6652006-09-13 Aldy Hernandez <aldyh@redhat.com>
666
467bcbd9 667 * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
668 of a RETURN_EXPR
09fa572c 669
cfdab332 6702006-09-13 Andrew Pinski <pinskia@physics.uc.edu>
671
672 PR debug/28980
673 * dwarf2out.c (loc_descriptor_from_tree_1): Handle
674 FUNCTION_DECL.
675
a5517fc0 6762006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
677
678 * basic_block.h (bb_has_eh_pred): Fix comment.
679
467b5d37 6802006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
681
682 * flow.c (calculate_global_regs_live): Invalidate eh registers
683 on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
684 (propagate_block): Handle eh registers as if they were set at basic
685 block start.
686 * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
687 registers.
688 * global.c (global_conflicts): Make eh registers to conflict with
689 pseudos live at basic block begin.
690 * basic_block.h (bb_has_eh_pred): New function.
691
23c79c0f 6922006-09-13 Richard Sandiford <richard@codesourcery.com>
693
694 PR rtl-optimization/28982
695 * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
696 index of a PRE_MODIFY or POST_MODIFY address.
697 * reload1.c (inc_for_reload): Use find_replacement on the original
698 base and index registers.
699
dd7bdc90 7002006-09-12 H.J. Lu <hongjiu.lu@intel.com>
701
702 * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
703 for -Os. Update __m128 alignment requirement.
704
8a14140c 7052006-09-13 Jan Hubicka <jh@suse.cz>
706
707 * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
708
ac24e06b 7092006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
710
711 PR rtl-optimization/28243
712 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
713 the insn to which the note was originally attached.
714
62435250 7152006-09-12 Andrew Pinski <pinskia@physics.uc.edu>
716 Roger Sayle <roger@eyesopen.com>
717
718 * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
719 outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
720 on platforms that don't use dwarf for debug info.
721
5a1c3f40 7222006-09-12 Jason Merrill <jason@redhat.com>
723
724 PR middle-end/28493
725 * builtins.c (expand_builtin_setjmp_receiver): Clobber
726 hard_frame_pointer_rtx after using it to update the frame pointer.
727
6e2ff8f8 7282006-09-12 Roger Sayle <roger@eyesopen.com>
729
730 * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
731 (TARGET_ASM_CLOSE_PAREN): Likewise.
732 * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
733 (TARGET_ASM_CLOSE_PAREN): Likewise.
734
6dbdfeeb 7352006-09-12 Roger Sayle <roger@eyesopen.com>
736
737 PR target/22223
738 * config/alpha/alpha.c (alpha_start_function): Don't emit stack
739 frame information for frames larger than 512 Kbytes on Tru64 when
740 using the native assembler.
741
9ab183e3 7422006-09-12 Roger Sayle <roger@eyesopen.com>
743
744 PR middle-end/4520
745 PR bootstrap/28784
746 * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
747 and symbols. Instead use the implementation from cse.c's hash_rtx.
748
8fde4b5b 7492006-09-12 Jan Hubicka <jh@suse.cz>
750
751 PR rtl-optimization/28071
752 * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
753 (vect_transform_loop): Likewise.
754 * tree-vectorizer.c (new_loop_vec_info): Likewise.
755 (new_loop_vec_info): Likewise.
756 (destroy_loop_vec_info): Likewise.
757 * tree-dfa.c (create_var_ann): Use GCC_CNEW.
758 (create_stmt_ann): Likewise.
759 (create_tree_ann): Rename to ...
760 (create_tree_common_ann): ... this one; allocate only the common part
761 of annotations.
762 * tree-vn.c (set_value_handle): Use get_tree_common_ann.
763 (get_value_handle): Likewise.
764 * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
765 get_tree_common_ann.
766 * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
767 (vinfo_for_stmt): Use stmt annotations.
768 * tree-flow.h (tree_ann_common_t): New type.
769 (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
770 (tree_ann, get_tree_ann, create_tree_ann): New.
771 * tree-flow-inline.h (get_function_ann): Do more type checking.
772 (stmt_ann): Likewise.
773 (tree_ann): Rename to ...
774 (tree_common_ann): ... this one; return ony common_ann
775 (get_tree_ann): Rename to ...
776 (tree_common_ann): This one; return only common_ann.
777 * tree-vect-patterns.c (vect_pattern_recog_1): Update call
778 of set_stmt_info.
779
69278c24 7802006-09-11 Geoffrey Keating <geoffk@apple.com>
781
a5efd1bc 782 * config.gcc (i[34567]86-*-darwin*): Set with_arch and
783 with_cpu by default.
784
69278c24 785 * dwarf2out.c (dwarf_file_data): New.
786 (enum dw_val_class): Add dw_val_class_file.
787 (struct dw_val_struct): Add val_file.
788 (file_table): Change to a hash table.
789 (file_table_emitted): Delete.
790 (file_table_last_lookup_index): Delete.
791 (emitcount): Delete.
792 (last_emitted_file): New.
793 (lookup_filename): Change prototype to return a struct dwarf_file_data.
794 (init_file_table): Delete.
795 (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
796 (AT_addr): Add comment.
797 (add_AT_file): New.
798 (AT_file): New.
799 (get_AT_file): New.
800 (print_die): Handle dw_val_class_file.
801 (print_dwarf_line_table): Update for new file table structure.
802 (attr_checksum): Do checksum a filename.
803 (same_dw_val_p, same_attr_p): Do compare a filename.
804 (size_of_die): Handle dw_val_class_file.
805 (value_format): Likewise.
806 (output_die): Likewise. Also, call maybe_emit_file here.
807 (struct file_info): Constify filenames. Make file_idx a pointer
808 to a struct dwarf_file_data.
809 (struct dir_info): Constify directory names. Remove 'used' field.
810 (struct file_name_acquire_data): New.
811 (file_name_acquire): New.
812 (output_file_names): Modify to handle new file data structures.
813 (add_src_coords_attributes): Use add_AT_file.
814 (add_call_src_coords_attributes): Likewise.
815 (dwarf2out_imported_module_or_decl): Likewise.
816 (gen_subprogram_die): Modify for new file data structures.
817 (gen_variable_die): Likewise.
818 (file_table_eq): New.
819 (file_table_hash): New.
820 (file_table_last_lookup): New.
821 (lookup_filename): Rewrite to handle new file data structures.
822 (maybe_emit_file): Rewrite to handle new file data structures.
823 (dwarf2out_source_line): Always call lookup_filename and
824 maybe_emit_file.
825 (dwarf2out_init): Create file_table here.
826 (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
827 (file_table_relative_p): New.
828 (dwarf2out_finish): Change detection of relative filenames
829 to work with new file data structures. Move output_line_info call
830 after debug_info output.
831
fc5c8662 8322006-09-11 H.J. Lu <hongjiu.lu@intel.com>
833
834 PR target/13685
835 PR target/27537
836 PR target/28621
837 * config/i386/i386.c (override_options): Always default to 16
838 byte stack boundary.
839
2a964ec6 8402006-09-11 Alexandre Oliva <aoliva@redhat.com>
841
842 PR target/28672
843 * var-tracking.c (dump_dataflow_set): Start dumping at
844 register zero.
845 (clobber_variable_part): Kill only the variable part in
846 registers holding it, leaving other variables alone.
847
57bcf24d 8482006-09-11 Josh Triplett <josh@freedesktop.org>
849
850 * doc/extend.texi (Other Builtins): Actually use the macro
851 argument in the documentation example for
852 __builtin_types_compatible_p.
853
8ad6f16d 8542006-09-11 Eric Botcazou <ebotcazou@libertysurf.fr>
855
856 PR rtl-optimization/28726
857 * sched-deps.c (sched_analyze_reg): New function extracted from...
858 (sched_analyze_1): ...here. Call it to analyze references to
859 registers. Treat again writes to a stack register as writing to the
860 register.
861 (sched_analyze_2): ...and here. Call it to analyze references to
862 registers. Treat again reads of a stack register as reading the
863 register.
864
73f4dbb0 8652006-09-11 Guenter Roeck <guenter@roeck-us.net>
866 David Edelsohn <edelsohn@gnu.org>
867
868 PR target/27287
869 * config/rs6000/spe.md (frob_df_di): Remove %H.
870 (frob_di_df): Remove %H. Change evmergelo to mr.
871 (frob_di_df_2): Remove %H. Change evldd to two loads.
872
39d6b9c8 8732006-09-11 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp>
874
875 * doc/cpp.texi: Fix names of charset options.
876
d0e3a920 8772006-09-10 Andrew Pinski <pinskia@physics.uc.edu>
878
879 PR target/29009
880 * config/i386/i386.c (override_options): Use 128-bit
881 stack boundary always for 64bits.
882
7bb0bd01 8832006-09-10 Eric Botcazou <ebotcazou@libertysurf.fr>
884
885 PR rtl-optimization/28636
886 * combine.c (force_to_mode): Test for side-effects before
887 substituting by zero.
888 (simplify_shift_const): Likewise for zero or other constants.
889
32acc84a 8902006-09-10 Steven Bosscher <steven@gcc.gnu.org>
891
892 PR middle-end/26983
893 * builtins.c (expand_builtin_setjmp): Force next_lab to be
894 preserved.
895
ee116d2b 8962006-09-10 Richard Sandiford <richard@codesourcery.com>
897
898 PR target/29006
899 * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
900 * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
901 returned by mode_for_size, rather than the mode of src itself,
902 to choose between 32-bit and 64-bit patterns.
903 (mips_mem_fits_mode_p): New function.
904 * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
905 that the size of the source matches the size of the destination.
906 (mov_<store>l, mov_<store>r): Likewise.
907
2805e80b 9082006-09-10 Eric Christopher <echristo@apple.com>
909
910 * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
911 for literal16.
912
7463cbdf 9132006-09-09 Eric Christopher <echristo@apple.com>
914
915 PR target/28995
916 * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
917 for literal16.
918
bea04f76 9192006-09-09 Roger Sayle <roger@eyesopen.com>
920 Nicolas Setton <setton@adacore.com>
921
922 * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
923
71a703eb 9242006-09-10 Andreas Schwab <schwab@suse.de>
925
926 * config/m68k/m68k.md (bungt_rev): New pattern.
927
8ee7afab 9282006-09-09 Paolo Bonzini <bonzini@gnu.org>
929 Dale Johannesen <dalej@apple.com>
930
931 PR target/26778
932 * regclass.c (struct reg_pref): Update documentation.
933 (regclass): Set prefclass to NO_REGS if memory is the best option.
934 (record_reg_classes): Cope with a prefclass set to NO_REGS.
935
3ebc7dec 9362006-09-08 Eric Christopher <echristo@apple.com>
937
938 * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
939 * config/t-slibgcc-darwin: Support x86_64 multilib.
940 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
941 Return 1 for x86_64-darwin.
942 * config/i386/t-darwin: Add m64 multilib.
943 (LIB2_SIDITI_CONV_FUNCS): Use.
944 (LIB2FUNCS_EXTRA): Ditto.
945 * config/i386/darwin.h: Support x86_64.
946 * config/i386/i386.c (override_options): Turn on flag_pic
947 for x86_64-darwin. Disable flag_omit_pointer.
948 (get_pc_thunk_name): Assert !TARGET_64BIT.
949 (legitimate_address_p): Disable machopic addressing for
950 x86_64.
951 (legitimize_pic_address): Ditto.
952 (ix86_expand_move): Ditto.
953 (ix86_expand_call): Ditto.
954 (machopic_output_stub): Ditto.
955 * config/darwin.c (machopic_select_section): Support literal16.
956 (machopic_select_rtx_section): Ditto.
957 * config/darwin-sections.def: Ditto.
958 * config/darwin-64.c: New.
959
2e3bc123 9602006-09-08 Joseph S. Myers <joseph@codesourcery.com>
961
962 PR c/28504
963 * c-tree.h (struct c_arg_info): Add pending_sizes.
964 * c-parser.c (c_parser_parms_declarator,
965 c_parser_parms_list_declarator): Initialize pending_sizes.
966 * c-decl.c (get_parm_info): Initialize pending_sizes.
967 (get_parm_info): Set pending_sizes.
968 (grokdeclarator): Call put_pending_sizes for parameters for
969 function definition only.
970
88cea5cf 9712006-09-07 Jason Merrill <jason@redhat.com>
972
f3fd6db7 973 PR middle-end/27724
974 * varasm.c (output_constant): Only strip actual no-op conversions.
975
88cea5cf 976 PR target/13685
977 * config/i386/i386.c (override_options): Use 128-bit
978 stack boundary if -msse.
979
ddb2c0eb 9802006-09-07 Eric Christopher <echristo@apple.com>
981
982 * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
983 comment.
984 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
985 Redefine.
986
85fdc672 9872006-09-07 Geoffrey Keating <geoffk@apple.com>
988
989 * dwarf2out.c: Remove strange characters from comment above
990 dwarf2out_frame_debug_expr.
991
2e55afeb 9922006-09-07 Eric Christopher <echristo@apple.com>
993
994 * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
995 * config/darwin.h: ... to here.
996
bb758671 9972006-09-07 H.J. Lu <hongjiu.lu@intel.com>
998
999 * config/i386/i386.c (x86_partial_flag_reg_stall): New.
1000
1001 * config/i386/i386.h (x86_partial_flag_reg_stall): New.
1002 (TARGET_PARTIAL_FLAG_REG_STALL): New.
1003
1004 * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
1005 TARGET_PARTIAL_FLAG_REG_STALL.
1006 (*ashldi3_cconly_rex64): Likewise.
1007 (*ashlsi3_cmp): Likewise.
1008 (*ashlsi3_cconly): Likewise.
1009 (*ashlsi3_cmp_zext): Likewise.
1010 (*ashlhi3_cmp): Likewise.
1011 (*ashlhi3_cconly): Likewise.
1012 (*ashlqi3_cmp): Likewise.
1013 (*ashlqi3_cconly): Likewise.
1014 (*ashrdi3_cmp_rex64): Likewise.
1015 (*ashrdi3_cconly_rex64): Likewise.
1016 (*ashrsi3_cmp): Likewise.
1017 (*ashrsi3_cconly): Likewise.
1018 (*ashrsi3_cmp_zext): Likewise.
1019 (*ashrhi3_cmp): Likewise.
1020 (*ashrhi3_cconly): Likewise.
1021 (*ashrqi3_cmp): Likewise.
1022 (*ashrqi3_cconly): Likewise.
1023 (*lshrdi3_cmp_rex64): Likewise.
1024 (*lshrdi3_cconly_rex64): Likewise.
1025 (*lshrsi3_cmp): Likewise.
1026 (*lshrsi3_cconly): Likewise.
1027 (*lshrsi3_cmp_zext): Likewise.
1028 (*lshrhi3_cmp): Likewise.
1029 (*lshrhi3_cconly): Likewise.
1030 (*lshrqi2_cmp): Likewise.
1031 (*lshrqi2_cconly): Likewise.
1032
062db9f3 10332006-09-07 Uros Bizjak <uros@kss-loka.si>
1034
1035 PR target/28946
1036 * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
1037 "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
1038 "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
1039 "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
1040 "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
1041 "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
1042 "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
1043 "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
1044 "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
1045 implement only CC setting effects of shift instructions.
1046
c69dbba0 10472006-09-07 Martin Michlmayr <tbm@cyrius.com>
1048
1049 * doc/contrib.texi: Add myself.
1050
950474d6 10512006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
1052
1053 PR middle-end/28862
1054 * stor-layout.c (relayout_decl): Don't zero the alignment if it
1055 was set by the user.
1056
15256eba 10572006-09-07 Paolo Bonzini <bonzini@gnu.org>
1058
1059 PR target/27117
1060 * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
1061 (divsi_inv_m1): Use them.
1062 (UNSPEC_DIV_INV_TABLE): New constant.
1063
34c971f6 10642006-09-06 James E Wilson <wilson@specifix.com>
1065
1066 PR rtl-opt/27883
1067 * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
1068 then call count_or_remove_death_notes.
1069
25b3017b 10702006-09-06 Jason Merrill <jason@redhat.com>
1071
1072 PR c++/27371
1073 * tree-inline.c (copy_result_decl_to_var): New fn.
1074 (declare_return_variable): Use it. Call declare_inline_vars here.
1075 (expand_call_inline): Not here.
1076
959fee9a 10772006-09-06 Diego Novillo <dnovillo@redhat.com>
1078
1079 * doc/contrib.texi: Update my entry.
1080
f003f386 10812006-09-06 Nick Clifton <nickc@redhat.com>
1082
1083 * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
1084
4c641bf8 10852006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
1086
1087 PR tree-opt/28937
1088 * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
1089 (canonicalize_induction_variables): Likewise.
1090 (tree_unroll_loops_completely): Likewise.
1091 (tree_ssa_prefetch_arrays): Likewise.
1092 (remove_empty_loops): Likewise.
1093 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
1094 TODO_cleanup_cfg instead of directly calling
1095 cleanup_tree_cfg_loop.
1096 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
1097 Likewise.
1098 (tree_unroll_loops_completely): Likewise.
1099 (remove_empty_loops): Likewise.
1100 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
1101 * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
1102 of tree_ssa_unswitch_loops.
1103 (tree_ssa_loop_ivcanon): Use the return value of
1104 canonicalize_induction_variables.
1105 (tree_ssa_empty_loop): Use the return value of
1106 remove_empty_loops.
1107 (tree_complete_unroll): Use the return value of
1108 tree_unroll_loops_completely.
1109 (tree_ssa_loop_prefetch): Use the return value of
1110 tree_ssa_prefetch_arrays.
1111 * passes.c (execute_todo): Before Cleanup CFG, set
1112 updating_used_alone and after cleanup CFG, call
1113 recalculate_used_alone.
1114
4ff650b4 11152006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
1116
1117 PR tree-opt/28952
1118 * tree-vect-transform.c (vectorizable_condition): Move the check
1119 for the type after the check for simple condition.
1120
9e236a59 11212006-09-05 J"orn Rennecke <joern.rennecke@st.com>
1122 Kaz Kojima <kkojima@gcc.gnu.org>
1123
1124 PR target/28764
1125 * mode-switching.c (optimize_mode_switching): Make the destination
1126 block of an abnormal edge have no anticipatable mode. Don't
1127 insert mode switching code at the end of the source block of
1128 an abnormal edge.
1129
8d7243cc 11302006-09-05 Paolo Bonzini <bonzini@gnu.org>
1131
1132 PR rtl-optimization/26847
1133 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
1134 (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
1135 (simplify_plus_minus): Count n_constants while filling ops. Replace
1136 qsort with insertion sort. Before going through the array to simplify
1137 pairs, sort it. Delay early exit until after the first sort, exiting
1138 only if no swaps occurred. Simplify pairs in reversed order, without
1139 special-casing the first iteration. Pack ops after simplifying pairs.
1140
11412006-09-05 Anatoly Sokolov <aesok@post.ru>
79fe0612 1142
4ff650b4 1143 * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
1144 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1145 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1146 (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
79fe0612 1147
2228ea8f 11482006-09-05 Richard Guenther <rguenther@suse.de>
1149
1150 PR tree-optimization/28900
1151 * tree-if-conv.c (find_phi_replacement_condition): Gimplify
1152 compound conditional before creating COND_EXPR condition.
1153
fd2730c0 11542006-09-05 Richard Guenther <rguenther@suse.de>
1155
1156 PR tree-optimization/28905
1157 * tree-vrp.c (fix_equivalence_set): Manually implement
1158 !value_ranges_intersect_p to also handle symbolic ranges.
1159
bb8a9715 11602006-09-05 Richard Guenther <rguenther@suse.de>
1161
1162 PR middle-end/28935
1163 * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
1164 of a COND_EXPR.
1165
8f353ea8 11662006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr>
1167
1168 PR rtl-optimization/27616
1169 * cse.c (table_size): New static variable.
1170 (new_basic_block): Initialize it to 0.
1171 (remove_from_table): Decrement it.
1172 (insert): Increment it.
1173 (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
1174 (fold_rtx_mem): Enforce a cap on the recursion depth. Call
1175 fold_rtx_mem_1 if under the cap.
1176 (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
1177 the lookup of the equivalent expression and test for equality of the
1178 first operand of the equivalent expression before in turn looking up
1179 an equivalent constant for the second operand.
1180
46b2b3c8 11812006-09-02 Geoffrey Keating <geoffk@apple.com>
1182
1183 Revert this change:
1184 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
1185 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
1186 pointer, instead of assuming it is possible to derive the
1187 correct args size from a call insn.
1188
4f46f2b9 11892006-09-02 Jakub Jelinek <jakub@redhat.com>
1190
1191 PR middle-end/27567
1192 * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
1193 (fold_builtin_mempcpy): Rename to...
1194 (fold_builtin_memory_op): ... this. Optimize one element copy
1195 into an assignment.
1196 (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
1197 functions.
1198 (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
1199 (expand_builtin_memcpy, expand_builtin_mempcpy,
1200 expand_builtin_memmove): Likewise. Use fold_builtin_memory_op.
1201 (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
1202 BUILT_IN_BCOPY. Use fold_builtin_memory_op for
1203 BUILT_IN_MEM{CPY,PCPY,MOVE}.
1204
3d594561 12052006-09-01 DJ Delorie <dj@redhat.com>
1206
1207 * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
1208 (stzx_16): Likewise.
1209 ("stzx_24_<mode>"): Likewise.
1210 ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
1211 ("cmp<mode>_op"): New.
1212 (cmp<mode>): Change to expander; just save operands.
1213 (b<code>_op): New.
1214 (b<code>): Change to expander, emit compare here.
1215 (s<code>_op): Change to use split and expander.
1216 (s<code>_24_op): Likewise.
1217 (s<code>_<mode>): New.
1218 (s<code>_<mode>_24): New.
1219 (movqicc_<code>_<mode): New.
1220 (movhicc_<code>_<mode>): New.
1221 (s<code>): New.
1222 (s<code>_24): New.
1223 * config/m32c/m32c.c (compare_op0, compare_op1): New.
1224 (m32c_pend_compare): New.
1225 (m32c_unpend_compare): New.
1226 (m32c_expand_scc): New.
1227 (m32c_expand_movcc): Emit the compare also.
1228 * config/m32c/predicates.md (mra_nopp_operand): New.
1229
d2df7679 12302006-09-01 J"orn Rennecke <joern.rennecke@st.com>
1231 Richard Guenther <rguenther@suse.de>
1232 Adam Nemet <anemet@caviumnetworks.com>
1233
1234 PR middle-end/27226
1235 * builtins.c (get_pointer_alignment): Handle more forms
1236 of base addresses that can be used to derive more precise
1237 information about alignment.
1238
09607d08 12392006-09-01 Jason Merrill <jason@redhat.com>
1240
1241 PR c++/28899
1242 * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
1243 want_value.
1244
1245 * gimplify.c (voidify_wrapper_expr): Handle null type.
1246
166cf564 12472006-09-01 Josh Conner <jconner@apple.com>
1248
1249 PR c++/25505
1250 * tree-nrv.c (dest_safe_for_nrv_p): New function.
1251 (execute_return_slot_opt): Use it.
1252
f1e06d36 12532006-08-31 Josh Conner <jconner@apple.com>
1254
1255 PR c++/25505
1256 * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
1257 returning aggregates.
1258
94858f65 12592006-08-31 Zdenek Dvorak <dvorakz@suse.cz>
1260
1261 PR tree-optimization/28839
1262 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
1263 blocks in that phi arguments appear.
1264
d8eb7025 12652006-08-31 Roger Sayle <roger@eyesopen.com>
1266
1267 PR other/22313
1268 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
2e55afeb 1269 NULL, otherwise use an advance_loc4 to adjust relative to the
d8eb7025 1270 current label.
1271 (output_cfi) <DW_CFA_set_loc>: Update the current label.
1272 (dwarf2out_switch_text_section): Reset the current label to avoid
1273 using advance_loc4 over section boundaries.
1274
abbcecd2 12752006-08-31 Andreas Krebbel <krebbel1@de.ibm.com>
1276
1277 PR target/24367
1278 * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
1279 r12 + SYMBOLIC_CONST.
1280
e0a02196 12812006-08-30 Richard Guenther <rguenther@suse.de>
1282
1283 * Makefile.in (see.o): Add $(EXPR_H) dependency.
1284
afd8eb66 12852006-08-30 Zdenek Dvorak <dvorakz@suse.cz>
1286
1287 PR rtl-optimization/27735
1288 * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
1289 Add new argument to keep track of whether an irreducible region
1290 was affected. All callers changed.
1291 (fix_irreducible_loops): Removed.
1292 (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
1293 flags were invalidated.
1294
65881f79 12952006-08-29 H.J. Lu <hongjiu.lu@intel.com>
1296
1297 * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
1298 instead of SF operands.
1299 (*fop_df_comm_sse): Likewise.
1300 (*fop_df_comm_i387): Likewise.
1301 (*fop_df_1_mixed): Likewise.
1302 (*fop_df_1_sse): Likewise.
1303
bf07aa0a 13042006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
4f652d47 1305 J"orn Rennecke <joern.rennecke@st.com>
1306
1307 PR tree-optimization/17506
1308 * tree-ssa.c (warn_uninit): If warning about a location outside of
1309 the current function, note where the variable was declared.
1310
58f43b90 13112006-08-28 Zdenek Dvorak <dvorakz@suse.cz>
1312
1313 PR tree-optimization/28411
1314 * double-int.c (double_int_div): Use double_int_divmod.
1315 (double_int_divmod, double_int_sdivmod, double_int_udivmod,
1316 double_int_mod, double_int_smod, double_int_umod): New functions.
1317 * double-int.h (double_int_divmod, double_int_sdivmod,
1318 double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
1319 Declare.
1320 * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
1321 in double_int.
1322 (get_computation_aff, get_computation_cost_at): Handle double_int
1323 return type of constant_multiple_of.
1324
9c6fee9d 13252006-08-28 Kazu Hirata <kazu@codesourcery.com>
1326
1327 PR middle-end/26632
1328 * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
1329 an implicit conversion.
1330
51136ff4 13312006-08-28 Prafulla Thakare <prafullat@kpitcummins.com>
1332
1333 * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
1334
8b5eeb90 13352006-08-27 Roger Sayle <roger@eyesopen.com>
1336
1337 * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
1338 x87 instructions.
1339
1078d25d 13402006-08-27 Kazu Hirata <kazu@codesourcery.com>
1341
1342 * config/i386/crtfastmath.c: Fix a comment typo.
1343
359d87c6 13442006-08-26 Roger Sayle <roger@eyesopen.com>
1345
1346 * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
1347 temporary visit flags on CASE_LABEL_EXPRs.
1348 * c-common.c (match_case_to_enum): Add function comment. Avoid
1349 O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
1350 (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and
1351 CASE_HIGH_SEEN for enumerated types. If the switch expression is
1352 a constant, only warn if that constant value isn't handled.
1353
18a3d34c 13542006-08-26 Joseph S. Myers <joseph@codesourcery.com>
1355
1356 PR c++/24009
1357 * input.h (restore_input_file_stack): Declare.
1358 (INPUT_FILE_STACK_BITS): Define.
1359 * toplev.c (fs_p, input_file_stack_history,
1360 input_file_stack_restored, restore_input_file_stack): New.
1361 (push_srcloc, pop_srcloc): Check for input_file_stack_tick
1362 overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack.
1363 (pop_srcloc): Don't free old state of stack.
1364
268b2718 13652006-08-26 David Edelsohn <edelsohn@gnu.org>
1366
1367 PR target/27544
1368 * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
1369 (PowerPC Type Attributes): New.
1370
81c44390 13712006-08-26 Bob Wilson <bob.wilson@acm.org>
1372
1373 * config/xtensa/xtensa.c (function_arg_boundary): New.
1374 (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
1375 STACK_BOUNDARY.
1376 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
1377 function_arg_boundary function that limits alignment to STACK_BOUNDARY.
1378
4a121d41 13792006-08-26 Jakub Jelinek <jakub@redhat.com>
1380
1381 PR middle-end/28683
1382 * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
1383 3 following insns.
1384
35a10db8 13852006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1386
1387 * flow.c (verify_wide_reg): Use internal_error for consistency failure.
1388 (verify_local_live_at_start): Likewise.
1389
00fde275 13902006-08-25 Joseph S. Myers <joseph@codesourcery.com>
1391
1392 PR c/27893
1393 * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
1394 omp_add_variable): Treat sizes as variable whenever not
1395 INTEGER_CST.
1396
a73dee2b 13972006-08-26 Richard Guenther <rguenther@suse.de>
1398
1399 PR middle-end/28814
1400 * fold-const.c (fold_binary): Fold temporary to correct
1401 type before constructing new comparison.
1402
e6b3b120 14032006-08-25 Fariborz Jahanian <fjahanian@apple.com>
1404
1405 PR c/28418
1406 * c-gimplify.c (gimplify_compound_literal_expr): Don't add
1407 variable again if DECL_SEEN_IN_BIND_EXPR_P.
1408
4d5ac30e 14092006-08-25 Joseph S. Myers <joseph@codesourcery.com>
1410
1411 PR c/28299
1412 * c-decl.c (start_function): Don't try to process prototype
1413 information from old declaration that isn't a function.
1414
376d0610 14152006-08-25 Jan Hubicka <jh@suse.cz>
1416
1417 PR target/28621
1418 * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
1419
1f496736 14202006-08-25 Alan Modra <amodra@bigpond.net.au>
1421
1422 PR target/27075
1423 * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
1424 for 8 byte objects.
1425
7989f7bd 14262006-08-25 J"orn Rennecke <joern.rennecke@st.com>
1427
1428 PR tree-optimization/16876
1429 * c-typeck.c (c_convert_parm_for_inlining): Don't take early
1430 exit if PARM doesn't match VALUE.
1431
de46f109 14322006-08-25 Bob Wilson <bob.wilson@acm.org>
1433
1434 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
1435 literal_prefix directive.
1436 (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
1437 * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
1438 * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
1439
5b4e7458 14402006-08-25 David Edelsohn <edelsohn@gnu.org>
1441
1442 PR target/28753
1443 * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
1444 predicate to general_operand. Add 0->y and I->r alternatives.
1445
ab4f0a13 14462006-08-25 Kazu Hirata <kazu@codesourcery.com>
1447
1448 * doc/tm.texi: Fix a typo.
1449 * predict.c: Fix comment typos.
1450
c419de76 14512006-08-25 Nick Clifton <nickc@redhat.com>
1452
1453 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
1454 assertions of "cpu" and "machine".
1455
b745b656 14562006-08-24 Andrew Pinski <pinskia@physics.uc.edu>
1457
1458 PR tree-opt/28807
1459 * tree-ssa-operands.c (access_can_touch_variable): Don't say
1460 the access through a base which has an alias set of 0 cannot
1461 touch the variable.
1462
14632006-08-24 Bill Wendling <wendling@apple.com>
300c667a 1464
1465 * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
2e55afeb 1466
f9b7f54d 14672006-08-24 Jan Hubicka <jh@suse.cz>
1468
1469 * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
1470
cd6bca02 14712006-08-24 Jan Hubicka <jh@suse.cz>
1472
1473 PR debug/26881
1474 * cgraph.c: Fix comments.
1475 (cgraph_varpool_mark_needed_node): Mark only variables not already
1476 output to file.
1477 * cgraphunit.c: Update comments; include gt-cgraphunit.h
1478 (cgraph_varpool_assembled_nodes_queue): New static variable.
1479 (cgraph_varpool_assemble_decl): Record output decls for debug out code.
1480 (cgraph_varpool_output_debug_info): New function.
1481 (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
1482 * Makefile.in: Add gt-cgraphunit.h
1483
b41438e5 14842006-08-24 Jan Hubicka <jh@suse.cz>
1485
1486 * predict.c (probability_reliable_p): New predicate.
1487 (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
1488 (predict_loops): Do not predict loop exit with less than 2%
1489 probability.
1490 * basic-block.h (edge_probability_reliable_p,
1491 br_prob_note_reliable_p): Declare.
1492 * ia64.h (ia64_print_operand): Do not disable on-chip branch
1493 prediction when static predictor is not reliable.
1494 * rs6000.c (output_cbranch): Likewise.
1495
1315e264 14962006-08-23 Stuart Hastings <stuart@apple.com>
1497
1498 PR 28825
1499 * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
1500 ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
1501
bf591863 15022006-08-21 Geoffrey Keating <geoffk@apple.com>
1503
1504 PR debug/28692
1505 * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
1506 complex values, nor for generic vector values.
1507
78350879 15082006-08-22 Richard Guenther <rguenther@suse.de>
1509
1510 PR middle-end/28776
1511 * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
1512 parameter. Convert arguments to arithmetic expression to the
1513 chrecs type.
1514 (analyze_scalar_evolution_1): Adjust caller.
1515
47df8084 15162006-08-22 Jan Hubicka <jh@suse.cz>
1517
1518 Patch by Paolo Bonzini
1519 * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
1520 my previous patch.
1521
9e80b67b 15222006-08-22 Daniel Berlin <dberlin@dberlin.org>
1523
1524 PR tree-optimization/28003
1525 * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
1526 before grouping aliases.
1527
eca54dee 15282006-08-22 Roger Sayle <roger@eyesopen.com>
1529
1530 * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
1531 if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
1532
c3d09d4d 15332006-08-21 Jason Merrill <jason@redhat.com>
1534
1535 PR c++/27115
1536 * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
1537 wrapper. Loop to handle nested wrappers.
1538 (gimplify_bind_expr): Remove temp parameter.
1539 (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
1540 and STATEMENT_LIST on the rhs.
1541 (gimplify_statement_list): Voidify the STATEMENT_LIST.
1542 (gimplify_expr): Pass pre_p to gimplify_statement_list.
1543 (gimplify_target_expr): Remove special BIND_EXPR handling.
1544
bd494d23 15452006-08-21 J"orn Rennecke <joern.rennecke@st.com>
1546
1547 * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
1548 #if !__SHMEDIA__ .
1549
e1685698 15502006-08-21 Olivier Hainque <hainque@adacore.com>
1551
1552 * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
1553 Arrange for the temporary captures of components overlapping the lhs
1554 to happen before the lhs is possibly cleared.
2e55afeb 1555
41c5a437 15562006-08-21 Mark Shinwell <shinwell@codesourcery.com>
6993cbc4 1557
41c5a437 1558 * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
1559 necessary places to pass the correct "number of registers" values
1560 to _Unwind_VRS_Pop.
1561
844ea20e 15622006-08-20 Jan Hubicka <jh@suse.cz>
1563
1564 * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
1565 (create_name_tags): Instead of quadratic checking use hashtable.
1566 * bitmap.h: Include hashtab.h.
1567 (bitmap_hash): Declare.
1568 * bitmap.c (bitmap_hash): New function.
1569
8df22c5c 15702006-08-20 Jan Hubicka <jh@suse.cz>
1571
1572 PR rtl-optimization/28071
1573 * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
1574 twice.
1575 * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
1576 * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
1577 (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
1578 cgraph_decide_inlining_incrementally): Update use of
1579 cgraph_check_inline_limits.
1580 * cgraph.c (edge_hash, edge_eq): New function.
1581 (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
1582 cgraph_edge_remove_caller, cgraph_node_remove_callees,
1583 cgraph_remove_node): Maintain call site hash.
1584 * cgraph.h (struct cgraph_node): Add call_site_hash.
1585 (cgraph_set_call_stmt): New function.
1586
7d742877 15872006-08-20 Jan Hubicka <jh@suse.cz>
1588
1589 PR rtl-optimization/28071
1590 * reload1.c (reg_has_output_reload): Turn into regset.
1591 (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
1592 choose_reload_regs, emit_reload_insns): Update to new
1593 reg_has_output_reload.
1594
6f30959a 15952006-08-20 Jan Hubicka <jh@suse.cz>
1596
1597 PR middle-end/28779
1598 * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
1599 function body sizes.
1600 * cgraphunit.c (cgraph_analyze_function): Don't do so.
1601
16022006-08-20 Danny Smith <dannysmith@users.sourceforge.net>
27e0de67 1603
1604 PR target/28648 c:
1605 * tree.c (handle_dll_attribute): Return early if not a
6993cbc4 1606 var or function decl.
27e0de67 1607
ff5e5248 16082006-08-18 Joseph Myers <joseph@codesourcery.com>
1609
1610 PR target/27565
1611 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
1612 alignment of SPE vector types.
1613
beb68f4a 16142006-08-18 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
1615
1616 * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
1617
ba12ea31 16182006-08-17 Jakub Jelinek <jakub@redhat.com>
1619
1620 PR c/28744
1621 * cgraph.h (struct cgraph_node): Remove externally_visible
1622 bitfield.
1623 * cgraphunit.c (process_function_and_variable_attributes): Set
1624 local.externally_visible rather than externally_visible.
1625
1626 PR c/28744
1627 * c-common.c (handle_externally_visible_attribute): First look
1628 at TREE_CODE and only if it is function or var decl, check for
1629 non-public objects. Don't warn for DECL_EXTERNAL.
1630 * cgraphunit.c (process_function_and_variable_attributes): Warn
1631 if externally_visible attribute is used on non-public object.
1632
94aa2a3c 16332006-08-17 Jan Hubicka <jh@suse.cz>
1634
1635 PR tree-optimization/27865
1636 * reload1.c (forget_marked_reloads): New function.
1637 (forget_old_reloads_1): When data are passed, just mark the registers
1638 for later removal.
1639 (reload_as_needed): Use the new mechanizm.
1640
d51b37c2 16412006-08-17 Alexandre Oliva <aoliva@redhat.com>
1642
1643 PR target/28146
1644 * reload.h (reg_equiv_alt_mem_list): New declaration.
1645 * reload1.c (reg_equiv_alt_mem_list): New definition.
1646 (reload): Initialize it and release it.
1647 (delete_output_reload): Use it.
1648 * reload.c (push_reg_equiv_alt_mem): New function.
1649 (find_reloads_toplev): Call it.
1650 (find_reloads_address, find_reloads_address_1): Likewise.
1651 (find_reloads_subreg_address): Likewise.
1652
6fcfdb19 16532006-08-17 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1654
1655 PR rtl-optimization/28489
1656 * sched-ebb.c (begin_schedule_ready): Create basic block
1657 at the right place.
1658 (advance_target_bb): Skip empty blocks.
1659 * haifa-sched.c (bb_note): Make global.
1660 * sched-int.h (bb_note): Add prototype.
1661
318a3281 16622006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1663
1664 PR tree-optimization/27865
1665 * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
1666 for pointer types.
1667 * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
1668 fold_used_pointer, pointer_used_p): New functions.
1669 (analyze_scalar_evolution_1): Use fold_used_pointer.
1670 * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
1671 * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
1672 for pointers.
1673
d897f7c2 16742006-08-17 Paolo Bonzini <bonzini@gnu.org>
1675
1676 PR c++/28573
1677 * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
2e55afeb 1678 or the INTEGER_CST. Fail on a CALL_EXPR.
d897f7c2 1679 (fold_offsetof): Pass new argument to fold_offsetof_1.
1680 * c-parser.c (c_parser_postfix_expression): Don't include a NULL
2e55afeb 1681 operand into an INDIRECT_REF.
d897f7c2 1682 * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
1683
102a5b98 16842006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1685
1686 PR gcov/profile/26570
1687 * value-prof.c (static_values): Removed.
1688 (tree_find_values_to_profile): Do not set static_values.
1689 (find_values_to_profile): Do not free static_values.
1690 * profile.c (instrument_values): Do not free the values.
1691 (branch_prob): Free the values.
1692
09fc0c2b 16932006-08-16 Naveen.H.S <naveenh@kpitcummins.com>
1694
1695 * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
1696
62e58612 16972006-08-16 Joseph S. Myers <joseph@codesourcery.com>
1698
1699 PR c/27697
1700 * c-typeck.c (build_component_ref): Combine qualifiers of
1701 structure or union and field.
1702
f50cf978 17032006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1704
1705 PR rtl-optimization/28071
1706 * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
1707 * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
1708 * tree-into-ssa.c (struct dom_dfsnum): New.
1709 (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
1710 functions.
1711 (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
1712 compute_global_livein.
1713 (prepare_block_for_update, prepare_use_sites_for): Mark the uses
1714 in phi nodes in the correct blocks.
1715
026ea634 17162006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
1717
1718 PR tree-optimization/28364
1719 * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
1720 correctly.
1721 (fold_affine_expr): New function.
1722 (may_eliminate_iv): Use fold_affine_expr.
1723
55d7e60b 17242006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1725
1726 PR c/27489
1727 * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
1728 Clean up.
1729
5eec57e0 17302006-08-16 Mike Stump <mrs@apple.com>
1731
1732 * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
1733 * doc/cppopts.texi (-MD): Likewise.
1734
f948b309 17352006-08-15 Danny Smith <dannysmith@users.sourceforge.net>
1736
1737 PR c/28287
1738 * c-common.c (handle_weak_attribute): Ignore and warn if
1739 not a FUNCTION_ or VAR_DECL.
1740
0e9b75a8 17412006-07-15 Mike Stump <mrs@apple.com>
1742
1743 PR c/28280
1744 * c-parser.c (c_parser_typeof_specifier): Don't use
1745 c_finish_expr_stmt, open code desired semantics instead.
1746
a05c50de 17472006-08-15 Nick Clifton <nickc@redhat.com>
1748
1749 * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
1750 fragment to tmake_file only if threads are enabled.
1751 * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
1752 * config/i386/t-gthr-win32: New file. ... here.
1753
d038ab63 17542006-08-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1755
1756 PR c/28649
1757 * c-parser.c (c_parser_compound_statement_nostart): Reset
1758 parser->error after each statement.
1759
8adefd57 17602006-08-15 Jakub Jelinek <jakub@redhat.com>
1761
cc6b725b 1762 PR middle-end/28713
1763 * omp-low.c (lower_omp_parallel): Convert t to
1764 receiver_decl's type.
1765 (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
1766 source before comparison.
1767
8adefd57 1768 PR middle-end/28724
1769 * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
1770 to itype in assignment to oldival2.
1771
47adf96b 17722006-07-14 Andrew Pinski <pinksia@physics.uc.edu>
1773
1774 PR c/27490
1775 PR c/27489
1776 * c-typeck.c (build_compound_expr): If the second expression
1777 is an error mark, then just return an error mark instead of
1778 creating a COMPOUND_EXPR.
1779
ef7a32fb 17802006-07-14 Mike Stump <mrs@apple.com>
1781
1782 * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
1783
a8b99ef6 17842006-08-14 Kazu Hirata <kazu@codesourcery.com>
1785
1786 * c-decl.c, var-tracking.c: Fix comment typos.
1787
44382350 17882006-08-14 Richard Sandiford <richard@codesourcery.com>
1789
1790 PR rtl-optimization/28634
1791 * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
1792 for floating-point modes unless flag_unsafe_math_optimizations.
1793
ce675af0 17942006-08-13 Alexandre Oliva <aoliva@redhat.com>
1795 Andrew Pinski <pinskia@physics.uc.edu>
1796
1797 PR c/27184
1798 * tree.c (build_array_type): Unify array types with
1799 unspecified index_type.
1800 * c-decl.c (grokdeclarator): Make sure we do not modify a
1801 unified incomplete array type.
1802 * c-typeck.c (store_init_value): Create distinct type before
1803 filling in the index type in an initializer from a compound
1804 literal.
1805
1806 * c-decl.c (grokdeclarator): Remove code where we copy the
1807 array type over.
1808
138fbfd0 18092006-08-13 Andrew Pinski <pinskia@physics.uc.edu>
1810
1811 * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
1812 into account for TODO_dump_cgraph.
1813 (TODO_update_ssa_no_phi): Likewise.
1814 (TODO_update_ssa_full_phi): Likewise.
1815 (TODO_update_ssa_only_virtuals): Likewise.
1816 (TODO_remove_unused_locals): Likewise.
1817 (TODO_set_props): Likewise.
1818 (TODO_update_stmt_usage): Likewise.
1819
1e31ff37 18202006-08-13 Dirk Mueller <dmueller@suse.de>
1821
1822 * c-common.c (strict_aliasing_warning): Fix formatting.
1823
79d18c70 18242006-08-13 Matthias Klose <doko@debian.org>
1825
1826 * doc/invoke.texi: Fix spelling errors.
1827
8ce4be4f 18282006-08-11 Eric Botcazou <ebotcazou@libertysurf.fr>
1829
1830 PR rtl-optimization/23454
1831 * reorg.c (relax_delay_slots): Update comment.
1832
3cea28d7 18332006-08-11 Richard Guenther <rguenther@suse.de>
1834
1835 PR middle-end/28651
1836 * simplify-rtx.c (simplify_const_relational_operation):
1837 Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
1838 codes.
1839
e8c64570 18402006-08-10 Eric Botcazou <ebotcazou@adacore.com>
25a7cbe1 1841
1842 * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
1843 TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
1844
168bf671 18452006-08-10 Paul Brook <paul@codesourcery.com>
1846
1847 * final.c (final_scan_insn): Clear current_insn_predicate before
1848 outputting inline asm.
1849
ac926412 18502006-08-10 Dorit Nuzman <dorit@il.ibm.com>
1851
1852 PR tree-optimization/26197
1853 * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
1854 get_ref_base_and_extent and overlap_subvar to add only relevant
1855 subvars as may-aliases.
1856 (add_may_alias_for_new_tag): New function, factored out of
1857 new_type_alias.
1858 * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
1859 with additional argument.
1860 * tree-flow.h (new_type_alias): Takes additional argument.
1861
fb6e7e82 18622006-08-09 Nathan Sidwell <nathan@codesourcery.com>
1863
1864 * gcov.c (no_data_file): New flag.
1865 (read_count_file): Set it if data file not present. Assume counts
1866 zero if not found.
1867 (output_lines): Don't name the data file, if there wasn't one.
1868
3a1af930 18692006-08-09 Eric Botcazou <ebotcazou@adacore.com>
1870
1871 * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
1872 (rs6000_generate_compare): Tweak comments.
1873 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
1874
96414f01 18752006-08-09 Alexandre Oliva <aoliva@redhat.com>
1876
1877 * var-tracking.c (enum micro_operation_type): Add MO_COPY.
1878 (var_debug_decl): New function.
1879 (var_reg_set): Follow debug decl link. Add location even if
1880 reg is already known to hold some other variable.
1881 (var_mem_set): Follow debug decl link.
1882 (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
1883 decl link. Delete other known locations of the variable part
1884 if requested.
1885 (var_reg_delete, var_mem_delete): Delete other known locations
1886 of the variable part if requested.
1887 (same_variable_part_p): New function.
1888 (add_stores): Select MO_COPY when appropriate.
1889 (vt_initialize): Handle it.
1890 (compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete
1891 known locations for MO_SET and MO_CLOBBER.
1892 (find_variable_location_part): New function.
1893 (set_variable_part, delete_variable_part): Use it.
1894 (clobber_variable_part): New function.
1895 * dwarf2out.c (dwarf2out_var_location): Do not follow debug
1896 decl link.
1897
0bf7f847 18982006-08-07 Victor Kaplansky <victork@il.ibm.com>
f1ee72f7 1899
6993cbc4 1900 PR tree-optimization/26969
1901 * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
1902 with an empty list of PHIs.
f1ee72f7 1903
3e3ebec6 19042006-08-06 Paolo Bonzini <bonzini@gnu.org>
1905
1906 PR target/27827
1907
1908 * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
1909 instructions.
1910
ef2ee7d3 19112006-08-06 Andreas Schwab <schwab@suse.de>
1912
1913 * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
1914 string. Whitespace and comment fixup.
1915
481f0237 19162006-08-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1917
cd27e3ac 1918 PR c/28502
1919 * c-decl.c (validate_proto_after_old_defn): Return false on invalid
1920 argument.
1921
ab774101 1922 PR c/27721
1923 * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
1924
481f0237 1925 PR c/28136
1926 * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
1927
7c679c65 19282006-08-04 Jan Hubicka <jh@suse.cz>
1929
1930 PR target/26655
1931 PR target/28270
481f0237 1932 * reload.c (push_reload): Patch out the mismatching instruction;
1933 return early.
7c679c65 1934 (find_reload): Bail out if the instruction was patched out.
1935
8e224d28 19362006-08-04 Jan Hubicka <jh@suse.cz>
1937
1938 PR tree-optimization/24888
1939 * tree-inline.c (expand_call_inline): Do not re-record variables.
1940 (declare_inline_vars): Add variable to unexpanded_var_list.
1941
0518a465 19422006-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1943 Roger Sayle <roger@eyesopen.com>
1944
1945 PR rtl-optimization/26244
1946 * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
1947 inner_const are negative or greater than or equal to the bitsize of
1948 MODE. If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
1949 Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
1950 Simplify complicated if statement. For ASHIFT and LSHIFTRT, return
1951 CONST0_RTX (mode) when the new shift count is greater than or equal to
1952 to the bitsize of the object being shifted and XEXP (y, 0) has no side
1953 effects.
1954
54311699 19552006-08-04 Kazu Hirata <kazu@codesourcery.com>
1956
1957 * tree-cfg.c: Fix a comment typo.
1958
393cc65b 19592006-08-03 Mark Mitchell <mark@codesourcery.com>
1960
1961 PR c++/28148
1962 * varasm.c (output_constant): Give the front end another chance to
1963 expand constants, after stripping NOPs.
1964
3100c298 19652006-08-03 Jan Hubicka <jh@suse.cz>
1966
1967 * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
1968 implementation.
1969
9896f25b 19702006-08-03 Dorit Nuzman <dorit@il.ibm.com>
1971
6993cbc4 1972 PR tree-optimization/27770
1973 * tree-vectorizer.h (get_vectype_for_scalar_type): Function
1974 declaration removed (moved to tree-flow.h).
1975 (vect_can_force_dr_alignment_p): Likewise.
1976 * tree-flow.h (get_vectype_for_scalar_type): New function declaration
1977 (moved from tree-vectorizer.h).
1978 (vect_can_force_dr_alignment_p): Likewise.
1979 * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
1980 from outside the vectorizer - in particular from cgraph stage.
1981 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
1982 the alignment of global arrays when -fsection-anchors is enabled.
1983 * cgraphunit.c (cgraph_increase_alignment): New function.
1984 (cgraph_optimize): Call cgraph_increase_alignment.
9896f25b 1985
0620b8e0 19862006-08-03 David Edelsohn <edelsohn@gnu.org>
1987
1988 PR target/27566
1989 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1990 not reload a SPE symbol_ref into a lo_sum address.
1991
4533b23c 19922006-08-02 Daniel Jacobowitz <dan@codesourcery.com>
1993
1994 PR debug/28063
1995 * dwarf2out.c (prune_unused_types_prune): Move call to
1996 prune_unused_types_update_strings to cover the parent DIE also.
1997
986c559b 19982006-08-02 Jan Hubicka <jh@suse.cz>
1999
2000 PR gcov/profile/28480
2001 * tree-cfg.c (change_bb_for_stmt): New function.
2002 (tree_merge_blocks, tree_split_blocks): Use it.
2003
cb2b5570 20042006-08-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2005
2006 PR c++/28250
2007 PR c++/28257
2008 PR c++/28259
2009 PR c++/28267
2010 * toplev.c (compile_file): Return early on errorcount or sorrycount.
2011 * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
2012 (cgraph_optimize): Likewise.
2013
02fd0f2d 20142006-08-01 Stuart Hastings <stuart@apple.com>
2015
2016 * rtl.h (UINTVAL) New.
2017 * config/rs6000/rs6000.c (SMALL_INT) Use it.
2018 * testsuite/gcc.dg/20060801-1.c: New.
2e55afeb 2019
89c30811 20202006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
2021
2022 PR debug/23336
2023 * c-typeck.c (build_external_type): Mark used enum types.
2024 * dwarf2out.c (dwarf2out_abstract_function): Save and restore
2025 cfun also.
2026 (gen_subprogram_die): Whitespace fix.
2027
6ec39557 20282006-08-01 Jan Hubicka <jh@suse.cz>
2029
2030 * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
2031 bitmap when not needed.
2032 * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
2033 bitmaps.
2034
c0c6c140 20352006-08-01 Dirk Mueller <dmueller@suse.de>
2036
2037 * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
2038
0846098b 20392006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2040
2041 * Makefile.in: Revert part of previous patch:
2042 Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
2043 and REGS_H.
2044
c4e8a4d4 20452006-07-30 Eric Christopher <echristo@apple.com>
2046
2047 PR target/27543
2048 * doc/extend.texi (i386 Variable Attributes): Add anchor.
2049 (PowerPC Variable Attributes): New section.
2050
b4306b43 20512006-07-30 Atsushi Nemoto <anemo@mba.ocn.ne.jp>
2052
2053 PR target/28126 (partial fix)
2054 * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
2055
2344b440 20562006-07-28 Jan Hubicka <jh@suse.cz>
2057
2058 PR rtl-optimization/28071
2059 * cfgrtl.c (rtl_delete_block): Free regsets.
2060 * flow.c (allocate_bb_life_data): Re-use regsets if available.
2061
e85b0b9f 20622006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2063
2064 * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
2065 and variables used in dependencies.
2066
c61aff47 20672006-07-27 Arjan van de Ven <arjan@linux.intel.com>
2068
2069 * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
2070 %fs for -mcmodel=kernel.
2071 (stack_tls_protect_test_di): Likewise.
2072
581a3a99 20732006-07-27 Carlos O'Donell <carlos@codesourcery.com>
2074
2075 * Makefile.in: Use mkinstalldirs.
2076
f8d1124d 20772006-07-27 H.J. Lu <hongjiu.lu@intel.com>
2078
2079 PR driver/28437
2080 * opts-common.c (prune_options): Skip joined switches.
2081
b0d535b8 20822006-07-27 Jan Hubicka <jh@suse.cz>
2083
2084 PR rtl-optimization/28071
2085 * cselib.c (cselib_process_insn): Don't remove useless values too
2086 often for very large hashtables.
2087
7824554a 20882006-07-27 Jan Hubicka <jh@suse.cz>
2089
2090 PR rtl-optimization/28071
2091 * global.c (greg_obstack): New obstack.
2092 (allocate_bb_info): Use it.
2093 (free_bb_info): Likewise.
2094 (modify_reg_pav): Likewise.
2095
73a0da56 20962006-07-27 Roger Sayle <roger@eyesopen.com>
2097
2098 * builtins.c (fold_fixed_mathfn): When long and long long are the
2099 same size, canonicalize llceil*, llfloor*, llround* and llrint*
2100 functions to their lceil*, lfloor*, lround* and lrint* forms.
2101
579e8d56 21022006-07-27 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2103
2104 PR gcc/28508
2105 * config/m32r/m32r.md (branch_insn): Reduce pc range for short
2106 branch.
2107 (rev_branch_insn): Likewise.
2108
681f6fc5 21092006-07-27 Jan Hubicka <jh@suse.cz>
2110
2111 PR rtl-optimization/28071
2112 * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
2113 (reg_set_in_bb, max_reg_computed): New static variables.
2114 (regmove_optimize): Free the new array.
2115 (fixup_match_1): Update call of reg_is_remote_constant_p.
2116
f4ec5ce1 21172006-07-26 Jan Hubicka <jh@suse.cz>
2118
2119 PR tree-optimization/27882
2120 * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
2121 and decl fields.
2122 * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
2123 next pointer
2124 (cgraph_analyze_compilation_unit): Likewise.
2125 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
2126 * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
2127 (cgraph_early_inlinine): Make order garbage collected.
2128 * Makefile.in (gt-ipa-inline): New garbagecollected file.
2129
c32222a3 21302006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
2131
2132 * dbxout.c (output_types_sort): Add a comment.
2133 (output_used_types): Free the VEC.
2134
70392493 21352006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
2136
2137 * function.c (reorder_fix_fragments): Delete.
2138 (reorder_blocks): Don't call it.
2139 (reorder_blocks_1): Put all subblocks under the origin block.
2140
e40df2f5 21412006-07-26 Zdenek Dvorak <dvorakz@suse.cz>
2142
2143 PR rtl-optimization/27907
2144 * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
2145 FLOAT_TRUNCATE.
2146
a2d0445d 21472006-07-25 Roger Sayle <roger@eyesopen.com>
2148
2149 PR middle-end/28473
2150 * convert.c (convert_to_integer): When transforming (T)foo(x) into
2151 bar(x) check that bar's result type can represent all the values of T.
2152
01b1b46d 21532006-07-25 Zdenek Dvorak <dvorakz@suse.cz>
2154
2155 * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
2156
f68513d3 21572006-07-25 Nick Clifton <nickc@redhat.com>
2158
2159 * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
2160 size_lookup[] array.
2161 (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
2162 (ggc_pch_count_object): Likewise.
2163 (ggc_pch_alloc_object): Likewise.
2164 (ggc_pch_write_object): Likewise.
2165 (init_ggc): Do not attempt to initialize entries in the
2166 size_lookup[] array for objects whose size is greater than than
2167 the length of the array.
2168
18247eca 21692006-07-25 Daniel Jacobowitz <dan@codesourcery.com>
2170
2171 * dbxout.c (output_used_types_helper): Push queued types
2172 on a VEC.
2173 (output_types_sort): New.
2174 (output_used_types): Collect used types on a VEC and sort them
2175 before emission.
2176
01ded803 21772006-07-24 Richard Guenther <rguenther@suse.de>
2178
2179 PR middle-end/28463
2180 * cgraph.c (cgraph_remove_node): Do not check if dumps
2181 are enabled.
2182 * cgraphunit.c (cgraph_optimize): Likewise.
2183
2f30597a 21842006-07-24 Jan Hubicka <jh@suse.cz>
2185
2186 PR rtl-optimization/28071
2187 * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
2188 * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
2189 splitting before first stmt.
2190
109bf1e3 21912006-07-24 Jan Hubicka <jh@suse.cz>
2192
2193 PR rtl-optimization/28071
2194 * ipa-inline.c (update_caller_keys): Remove edges that
2195 are no longer inline candidates.
2196
c8c04e0d 21972006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
2198
2199 PR debug/27473
2200 * dbxout.c (output_used_types_helper, output_used_types): New.
2201 (dbxout_symbol): Call output_used_types.
2202
05806473 22032006-07-23 Jan Hubicka <jh@suse.cz>
2204
2205 PR c/25795
2206 PR c++/27369
2207 * cgraph.c (cgraph_varpool_nodes): Export.
2208 (decide_is_variable_needed): Ignored "used" attribute in
2209 unit-at-a-time mode.
2210 * cgraph.h (cgraph_varpool_nodes): Declare.
2211 * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
2212 unit-at-a-time mode.
2213
c54654b7 22142006-07-23 Roger Sayle <roger@eyesopen.com>
2215
2216 PR target/28247
2217 * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
2218 mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of
2219 the __gthrw form of thr_keycreate.
2220 (__gthread_key_delete): Silence the unused argument warning.
2221
500973f9 22222006-07-23 Steven Bosscher <steven@gcc.gnu.org>
2223
2224 PR debug/25468
2225 * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
2226 Cache the last found '\0' marker to avoid quadratic behavior.
2227
c98a8335 22282006-07-23 Jan Hubicka <jh@suse.cz>
2229
2230 * i386.md (subsi_3_zext): Fix output template.
2231
f05a163e 22322006-07-21 Mike Stump <mrs@apple.com>
2233
2234 * doc/invoke.texi (C++ Dialect Options): Note that
2235 -fvisibility-inlines-hidden doesn't affect explicitly
2236 instantiationed inline methods.
2237
8b3b32fb 22382006-07-20 Roger Sayle <roger@eyesopen.com>
2239
2240 * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
2241 if the target assembler is GNU binutils' gas.
2242 * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
2243 whether to pass GNU gas or native as command line options.
2244
6a47600c 22452006-07-20 Jason Merrill <jason@redhat.com>
2246
2247 * tree.c (remove_attribute): New fn.
b85623b5 2248 * tree.h: Declare it.
6a47600c 2249
977ffed2 22502006-07-20 Paul Brook <paul@codesourcery.com>
2251
2252 PR 27363
2253 * cse.c (cse_insn): Add destination addresses to hash table. Check if
2254 they are invalidated by this instruction.
2255
ec9719e1 22562006-07-21 Danny Smith <dannysmith@users.sourceforge.net>
2257
2258 PR target/28427
6993cbc4 2259 * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
ec9719e1 2260
3e883b09 22612006-07-20 Eric Christopher <echristo@apple.com>
2262
2263 PR target/26877
2264 * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
2265
52d22316 22662006-07-19 Eric Christopher <echristo@apple.com>
2267
2268 * config/t-slibgcc-darwin (stmp-lipo): Remove.
2269 Rewrite dependencies for libgcc_s.1.dylib.
2270
e6855db0 22712006-07-19 Jakub Jelinek <jakub@redhat.com>
2272
2273 * except.c (duplicate_eh_regions_1): Clear next_peer.
2274
e3eb8567 22752006-07-17 Nathan Sidwell <nathan@codesourcery.com>
2276
2277 * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
2278 -mlongcall does not guarantee all calls will be long.
2279 * doc/extend.texi (long_call/short_call): Document that longcall
2280 does not guarantee a long call will be used.
2281 (longcall/shortcall): Likewise.
2282
99d2e279 22832006-07-18 Roger Sayle <roger@eyesopen.com>
2284
2285 PR middle-end/28283
2286 * expmed.c (expand_shift): Additionally check that the shift_cost
2287 is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
2288 before implementing a LSHIFT_EXPR as a sequence of additions.
2289 * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
2290 middle-end that DImode shifts need to be synthesized by expand.
2291
8443c80c 22922006-07-18 Diego Novillo <dnovillo@redhat.com>
2293
2294 PR 28410
2295 * tree-ssa-operands.c (access_can_touch_variable): Update
2296 comment.
2297 Return true if ALIAS is .GLOBAL_VAR.
2298
6702edc2 22992006-07-18 David Daney <ddaney@avtrex.com>
2300
2301 * gcc.c (display_help): Fix typo in help text.
2302
20169a64 23032006-07-18 Olivier Hainque <hainque@adacore.com>
2304
2305 * tree.h (categorize_ctor_elements): Adjust prototype and add
2306 descriptive comment, both in accordance with the interface change
2307 described below.
2308 * varasm.c (constructor_static_from_elts_p): New function.
2309 Whether a constructor node is a valid static constant initializer
2310 if all its elements are.
2311 (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
52d22316 2312 * output.h: Declare it.
20169a64 2313 * expr.c (categorize_ctor_elements_1): Return whether the constructor
2314 is a valid constant initializer instead of computing the number of
2315 non-constant elements. Use constructor_static_from_elts_p for this
2316 purpose. Replace the head comment with an indication that this is a
2317 helper for categorize_ctor_elements.
2318 (categorize_ctor_elements): Same interface change as for the _1
2319 helper. Former head comment from this helper moved here, adjusted to
2320 account for the interface changes.
2321 (mostly_zeros_p): Adjust call to categorize_ctor_elements.
52d22316 2322 (all_zeros_p): Likewise.
20169a64 2323 * gimplify.c (gimplify_init_constructor): Decide whether we can make
2324 static versions of the constructor from the categorize_ctor_elements
2325 return value instead of the formerly computed number of non-constant
2326 elements.
2327
3e427a9c 23282006-07-18 Paolo Bonzini <bonzini@gnu.org>
2329
6993cbc4 2330 * configure: Regenerate.
2331 * Makefile.in (build_libsubdir): New configure substitution
2332 (build_libobjdir): New variable.
2333 (BUILD_LIBIBERTY): Use it.
3e427a9c 2334
6e890d9c 23352006-07-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2336
2337 PR c/28286
2338 * c-pragma.c (handle_pragma_pack): Handle invalid constants.
2339
83852912 23402006-07-18 Alexandre Oliva <aoliva@redhat.com>
2341
2342 PR c/26993
2343 * c-common.c (handle_weakref_attribute): Ignore attribute in
2344 the same conditions the alias attribute is ignored.
2345
ff1a5b4a 23462006-07-17 Carlos O'Donell <carlos@codesourcery.com>
2347
2348 * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
2349 (dbxout_begin_prologue): Increment scope_labelno.
2350
a4b6566a 23512006-07-17 Richard Henderson <rth@redhat.com>
2352
2353 PR 27889
2354 * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
2355 if needed.
2356
78ab4d5e 23572006-07-17 Roger Sayle <roger@eyesopen.com>
2358 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2359
2360 * config/i386/gmon-sol2.c: Silence compilation warnings by partially
2361 synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0
2362 blocks. #include "tconfig.h" and "tsystem.h" to prototype system
2363 functions such as sbrk, write, etc.. Add function prototypes.
2364 Convert function declarations from K&R to ISO C. Cast pointers
2365 to "long" and "unsigned long" instead of "int" and "unsigned int".
2366 Convert tokens following #endif into comments.
2367
b7c18eb3 23682006-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
2369
2370 * invoke.texi: Remove mention of f77; Reformat table for
2371 inline parameter options correctly; mention that -malign-double
2372 is default on x86-64 targets.
2373
85cf2bcd 23742006-07-17 Zdenek Dvorak <dvorakz@suse.cz>
2375
2376 * tree-chrec.c (avoid_arithmetics_in_type_p): New.
2377 (convert_affine_scev, chrec_convert_aggressive): Use
2378 avoid_arithmetics_in_type_p. Do not check for the subtypes
2379 separately.
2380
ed4439b1 23812006-07-17 Richard Sandiford <richard@codesourcery.com>
2382
2383 PR middle-end/28403
2384 * optabs.c (expand_doubleword_shift): Wrap the call to
2385 do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
2386
36271919 23872006-07-17 Richard Sandiford <richard@codesourcery.com>
2388
2389 PR middle-end/28402
2390 * optabs.c (expand_binop): Pass next_methods rather than methods
2391 to expand_doubleword_shift.
2392
969239ad 23932006-07-17 J"orn Rennecke <joern.rennecke@st.com>
2394
2395 PR other/28251
2396 * tree.h (dump_addr): Declare.
2397 * print-tree.c (dump_addr): New function.
2398 (print_node_brief, print_node): Use it.
2399 * print-rtl.c (print_rtx): Likewise.
2400 * common.opt (-fdump-noaddr): New option.
2401 * doc/invoke.texi (-fdump-noaddr): Document.
2402 * loop-unroll.c (si_info_hash): Make hash independent of addresses.
2403 (ve_info_hash): Likewise.
2404
8e659d30 24052006-07-13 Andrew Haley <aph@redhat.com>
2406
2407 PR tree-optimization/19505
2408 * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
2409 edge leaving this block, make sure that the destination of this
2410 block has only one predecessor.
2411
5bfb60b4 24122006-07-17 Richard Guenther <rguenther@suse.de>
2413
2414 PR tree-optimization/28238
2415 * tree-inline.c (copy_bb): Check if we produced valid
2416 gimple copying and substituting a stmt. If not, gimplify
2417 it.
2418
8ccaf1c3 24192006-07-16 Eric Botcazou <ebotcazou@adacore.com>
2420
2421 * optabs.c (maybe_encapsulate_block): New function extracted from...
2422 (emit_libcall_block): ...here. Invoke it on the block of insns to
2423 maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
2424 (emit_no_conflict_block): Likewise.
2425
5c9156d2 24262006-07-16 Eric Botcazou <ebotcazou@libertysurf.fr>
2427
62426a9d 2428 * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
5c9156d2 2429
f2f31d94 24302006-07-15 Roger Sayle <roger@eyesopen.com>
2431
2432 * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
2433 a new NOP_EXPR case of the switch statement.
2434
8aea3a7e 24352006-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
2436
2437 PR middle-end/28160
2438 * stor-layout.c (place_field): Take the bit field with
2439 an excessive size into account in the ms-bitfiled case.
2440
2441 PR middle-end/28161
2442 * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
2443 the previous bit field.
2444
d45d6318 24452006-07-14 Eliot Dresselhaus <eliot@sonic.net>
2446
2447 PR target/27287
2448 * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
2449
199f9baa 24502006-07-14 Ulrich Weigand <uweigand@de.ibm.com>
2451
2452 * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
2453 signal frames correctly even when the signal was installed with
2454 sa_restorer set.
2455
14571b8c 24562006-07-14 Carlos O'Donell <carlos@codesourcery.com>
a6e8892a 2457
2458 * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
52d22316 2459 (dbxout_function_end): Use local label LFBB. Remove hook
14571b8c 2460 DBX_OUTPUT_NFUN.
a6e8892a 2461 (dbxout_source_line): Use local label LFBB.
2462 (dbxout_block): Likewise.
2463 (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
2464 (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
2465 * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
2466 and DBX_OUTPUT_NFUN.
2467
c7a67206 24682006-07-13 Janis Johnson <janis187@us.ibm.com>
2469
2470 * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
2471
e3a1de9d 24722006-07-13 Jan Hubicka <jh@suse.cz>
2473
2474 * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
2475 align_variable.
2476 * output.h (align_variable): Declare.
2477 * varasm.c (align_variable): Export.
2478 * value-prof.c (tree_value_profile_transformations): Recompute iterator
2479 when basic block changed.
2480
8bd02423 24812006-07-13 Nick Clifton <nickc@redhat.com>
2482
2483 * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
2484 walking the LOG_LINKS chain.
52d22316 2485
825957d0 24862006-07-12 Geoffrey Keating <geoffk@apple.com>
2487
2488 * doc/invoke.texi (C++ Dialect Options): Explain difference
2489 between -fvisibility-inlines-hidden and setting hidden
2490 visibility explicitly.
2491
296ac38d 24922006-07-12 Eric Christopher <echristo@apple.com>
2493
2494 * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
2495 (stmp-lipo): Depend on libgcc.a.
2496
a3a710ae 24972006-07-12 Kazu Hirata <kazu@codesourcery.com>
2498
2499 * tree.c: Fix a comment typo.
2500
03ed61bd 25012006-07-12 Naveen.H.S <naveenh@kpitcummins.com>
2502
296ac38d 2503 * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
03ed61bd 2504 dest.
2505 (umulhisi3_r): Likewise.
2506
2be9ef44 25072006-07-12 Paolo Carlini <pcarlini@suse.de>
2508
2509 PR libstdc++/27878
2510 * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
2511 x < 19, vs wchar_t support.
2512
a363d423 25132006-07-12 Nick Clifton <nickc@redhat.com>
2514
2515 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
2516 instead of -isa=sh4.
2517
b1acb195 25182006-07-12 Mike Stump <mrs@apple.com>
2519
2520 * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
2521
4bd2ed91 25222006-07-10 Eric Christopher <echristo@apple.com>
2523
2524 * config/t-slibgcc-darwin: Rewrite.
2525
53d9fa56 25262006-07-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2527
2528 PR bootstrap/20437
2529 * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
2530 dependencies.
2531
52e76f50 25322006-07-08 Matthias Klose <doko@debian.org>
2533
2534 * doc/sourcebuild.texi: Fix typo.
2535
61025e42 25362006-07-07 Mike Stump <mrs@apple.com>
2537
2538 * toplev.c (process_options): Don't give -ffunction-sections may
2539 affect debugging warning for Mach-O.
2540
2ca4dfa4 25412006-07-07 James E Wilson <wilson@specifix.com>
2542
2543 * config/mips/mips.md (cpu): Add sb1a.
2544 * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
2545 addition to sb1. Adjust comments to clarify SB-1A differences from
2546 SB-1.
2547 (ir_sb1a_load): New. Modify bypasses to use it.
2548 (ir_sb1a_simple_alu): Likewise.
2549 * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
2550 (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
2551 (mips_issue_rate): Add PROCESSOR_SB1A.
2552 (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
2553 * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
2554 (TARGET_SB1): Add PROCESSOR_SB1A check.
2555 (TUNE_SB1): Likewise.
2556
2557 * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
2558 * config/mips/mips.c (mips_store_data_bypass_p): New.
2559 * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
2560 store_data_bypass_p.
2561
463b8e0b 25622006-07-08 Paul Brook <paul@codesourcery.com>
2563
2564 PR target/27991
2565 * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
2566
ba56cb50 25672006-07-07 Richard Guenther <rguenther@suse.de>
2568
2569 PR middle-end/28268
2570 * tree.h (build_one_cst): Declare.
2571 * tree.c (build_one_cst): New function.
2572 * tree-ssa-math-opts.c (get_constant_one): Remove.
2573 (insert_reciprocals): Use build_one_cst.
2574 * fold-const.c (fold_plusminus_mult): Likewise.
2575
2e2fd8fe 25762006-07-07 Roger Sayle <roger@eyesopen.com>
2577
2578 * pointer-set.c (pointer_set_destroy): Correct whitespace.
2579 * cfgloopanal.c (dump_graph): Likewise.
2580 * dojump.c (discard_pending_stack_adjust): Likewise.
2581 * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
2582 Likewise.
2583 * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
2584 * function.c (finalize_block_changes): Likewise.
2585 * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
2586 * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
2587 * rtl.c (dump_rtx_statistics): Likewise.
4bd2ed91 2588 * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
2e2fd8fe 2589 Likewise.
2590 * varray.c (dump_varray_statistics): Likewise.
2591 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
2592 decode_decimal64, encode_decimal128, decode_decimal128,
2593 decimal_real_to_decimal): Likewise.
2594
238ad80e 25952006-07-07 Richard Guenther <rguenther@suse.de>
2596
2597 PR tree-optimization/28187
2598 * tree-vrp.c (vrp_operand_equal_p): New function.
2599 (vrp_bitmap_equal_p): Likewise.
2600 (update_value_range): Use them to compare old and new
2601 max and min values.
2602
3ab72ef0 26032006-07-06 Roger Sayle <roger@eyesopen.com>
2604
2605 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
2606 a default case to switch statement to silence compiler warnings.
2607
97f2677a 26082006-07-06 Roger Sayle <roger@eyesopen.com>
2609
2610 PR target/27968
4bd2ed91 2611 * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
97f2677a 2612 the configured assembler supports the x87's ffreep mnemonic.
2613 * configure: Regenerate.
2614 * config.in: Regenerate.
2615
2616 * config/i386/i386.c (output_387_ffreep): New function.
2617 (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
2618 (output_387_reg_move): Likewise.
2619
108cf177 26202006-07-06 Paul Eggert <eggert@cs.ucla.edu>
2621
2622 Port to hosts whose 'sort' and 'tail' implementations
2623 treat operands with leading '+' as file names, as POSIX
2624 has required since 2001. However, make sure the code still
2625 works on pre-POSIX hosts.
2626 * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
2627 which says you should use "tail -c +N" rather than "tail +Nc".
2628 Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
2629
499c8b1e 26302006-07-06 Zdenek Dvorak <dvorakz@suse.cz>
2631
97f2677a 2632 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
2633 argument name.
499c8b1e 2634
0c3d4c89 26352006-07-06 David Edelsohn <edelsohn@gnu.org>
2636
2637 PR target/28150
2638 * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
2639 PRE_{INC,DEC} of TFmode.
2640
26412006-07-06 David Edelsohn <edelsohn@gnu.org>
2642 Alan Modra <amodra@bigpond.net.au>
2643
2644 PR target/28170
2645 * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
2646 bounds. Simplify.
2647
c1d0c676 26482006-07-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2649
2650 PR target/28285
2651 * config/alpha/predicates.md (alpha_swapped_comparison_operator):
2652 Remove duplicate gtu.
2653
2bc7da70 26542006-07-05 Jason Merrill <jason@redhat.com>
2655
2656 PR c++/13983
2657 PR c++/17519
2658 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
2659 * c-common.c (handle_packed_attribute): So don't copy it here.
2660 * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
2661
d2f36968 26622006-07-05 Mike Stump <mrs@apple.com>
2663
2664 * doc/invoke.texi (Invoking G++): Clarify prose for g++.
2665
a2e127ea 26662006-07-05 H.J. Lu <hongjiu.lu@intel.com>
2667
2668 PR target/26146
2669 * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
2670
547f0055 26712006-07-05 Richard Guenther <rguenther@suse.de>
2672
2673 PR target/28158
2674 * config/i386/i386.md (*negdf2_1): Restrict pattern to
2675 TARGET_SSE2 targets if using SSE math.
2676 (*absdf2_1): Likewise.
2677
47652819 26782006-07-05 Richard Guenther <rguenther@suse.de>
2679
2680 PR tree-optimization/28162
2681 * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
2682 make sure to convert the operands to the correct type.
2683
c136ae61 26842006-07-04 Paolo Bonzini <bonzini@gnu.org>
2685
2686 PR tree-optimization/28218
2687
2688 * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
2689 to calculate and free the dominator information.
4bd2ed91 2690
46276eaf 26912006-07-04 Peter O'Gorman <peter@pogma.com>
2692
2693 * mklibgcc.in: chmod 644 before ranlib during install.
2694
a9e7d751 26952006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
2696 J"orn Rennecke <joern.rennecke@st.com>
2697
2698 * configure.ac (.eh_frame data check): Use diff -b.
2699
f508ba97 27002006-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
2701
2702 PR bootstrap/18058
2703 * Makefile.in (BUILD_RTL): Add build/vec.o.
2704 (build/gencondmd.o): Filter out -fkeep-inline-functions.
2705 (build/genextract): Delete.
2706 (build/genautomata): Likewise.
2707
487b16e9 27082006-07-04 Alan Modra <amodra@bigpond.net.au>
2709
2710 PR target/28207
2711 * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
2712 128-bit IBM long doubles for ABI_V4.
2713
2100c228 27142006-07-03 Eric Botcazou <ebotcazou@adacore.com>
2715
2716 * tree.c (range_in_array_bounds_p): New predicate.
2717 * tree.h (range_in_array_bounds_p): Declare it.
2718 * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
2719 return a less conservative answer.
2720 * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
2721 and flag 'is_group'.
2722 (IS_ELEMENT_FOR_GROUP): New macro.
2723 (FOR_EACH_ACTUAL_CHILD): Likewise.
2724 (next_child_for_group): New helper function.
2725 (can_completely_scalarize_p): Take into account groups.
2726 (sra_hash_tree): Handle RANGE_EXPR.
2727 (sra_elt_eq): Likewise.
2728 (lookup_element): Be prepared for handling groups.
2729 (is_valid_const_index): Delete.
2730 (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
2731 instead of is_valid_const_index.
2732 <ARRAY_RANGE_REF>: New case.
2733 (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
2734 is_valid_const_index.
2735 <ARRAY_RANGE_REF>: Do not unconditionally punt.
2736 (scan_dump): Dump info for groups too.
2737 (decide_instantiation_1): Likewise.
2738 (decide_block_copy): Assert that the element is not a group.
2739 Propagate decision to groups.
2740 (generate_one_element_ref): Handle RANGE_EXPR.
2741 (mark_no_warning): Iterate over actual childs.
2742 (generate_copy_inout): Likewise.
2743 (generate_element_copy): Likewise.
2744 (generate_element_zero): Likewise.
2745 (generate_element_init_1): Likewise.
2746 (dump_sra_elt_name): Handle RANGE_EXPR.
2747
aed95130 27482006-07-03 Roger Sayle <roger@eyesopen.com>
2749
2750 PR tree-optimization/26251
2751 * tree-ssa-threadupdate.c (redirection_block_p): New function.
2752 (thread_block): When optimizing for size refuse to thread jumps
2753 that would require duplication of blocks other than redirection
2754 blocks.
2755
3891e7d9 27562006-07-03 Paolo Bonzini <bonzini@gnu.org>
2757
2758 * configure.ac: Fix thinko in previous check-in.
2759 * configure: Regenerate.
2760
5dee13c2 27612006-07-03 Paolo Bonzini <bonzini@gnu.org>
2762
2763 PR other/27063
2764 * configure.ac (for lang...): Simplify nesting of conditionals.
2765 Test subdir_requires for non-enabled languages. Move processing
2766 of lang_opt_files and lang_tree_fiels below that test.
2767 * configure: Regenerate.
2768 * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
2769
0cda8c30 27702006-07-01 Martin Michlmayr <tbm@cyrius.com>
2771
2772 * doc/gcov.texi (Invoking Gcov): Add a missing word.
2773
588ce679 27742006-06-30 Kazu Hirata <kazu@codesourcery.com>
2775
2776 * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
2777 comment typos.
2778
4a2849cb 27792006-06-29 Jason Merrill <jason@redhat.com>
2780
2781 PR c++/26905
2782 PR c++/26612
2783 PR c++/27000
2784 PR c++/26984
2785 PR c++/19134
2786 * tree.c (build_decl_stat): Don't hande #pragma visibility here.
2787 * c-common.c (c_determine_visibility): Handle it here.
4bd2ed91 2788 * c-decl.c (finish_decl): Call c_determine_visibility for
4a2849cb 2789 functions, too.
2790 * flags.h (enum symbol_visibility): Sort from most to least visibility.
2791 * tree.h: Likewise.
2792 * varasm.c (default_assemble_visibility): Likewise.
2793 * c-common.c (handle_visibility_attribute): Complain about trying
2794 to give visibility to an already defined class, or trying to change
2795 declared visibility. Always attach the attribute.
2796
2797 PR c++/26905
2798 PR c++/21675
2799 PR c++/17470
2800 * attribs.c (decl_attributes): Ignore type-in-place attributes
2801 once the type has been defined.
2802
7a8c1294 28032006-06-29 Roger Sayle <roger@eyesopen.com>
2804
2805 PR middle-end/27428
2806 * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
2807 to indicate the cpplib has issued an error message for us.
2808
6c6fd108 28092006-06-29 Asher Langton <langton2@llnl.gov>
2810
2811 PR target/25765
2812 * config/i386/i386.c (ix86_output_function_epilogue): Don't
2813 insert a label at the end of an function under Mach-O.
4bd2ed91 2814
c0933680 28152006-06-29 Eric Christopher <echristo@apple.com>
2816 Evan Cheng <evan.cheng@apple.com>
2817
2818 * predicates.md (vector_all_ones_operand): New.
2819 (nonimmediate_or_sse_const_operand): Ditto.
2820 * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
2821 * config/i386/i386.c (standard_sse_constant_opcode): Define.
2822 (standard_sse_mode_p): Ditto.
2823 (standard_sse_constant_p): Add case for -1 vector.
2824 (ix86_expand_vector_move): Try to use.
2825 * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
2826 Call standard_sse_constant_opcode.
2827 (*movv4sf_internal): Ditto.
2828 (*movv2df_internal): Ditto.
2829
c062b0d1 28302006-06-29 Roger Sayle <roger@eyesopen.com>
2831
2832 * genpreds.c (write_match_code_switch): Correctly use XSTR instead
2833 of XEXP to extract the operands of a MATCH_CODE rtx.
2834
4043066e 28352006-06-28 Andrew Pinski <pinskia@gmail.com>
2836
2837 * tree.c (tree_size): Do not waste tail padding in
2838 struct tree_string and make the size be the same as
2839 build_string will generate.
2840
d0fb9d56 28412006-06-28 Jason Merrill <jason@redhat.com>
2842
2843 PR c++/27768
2844 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
2845 may_aliases already in the tag's annotations to the bitmap.
2846
21455936 28472006-06-28 Roger Sayle <roger@eyesopen.com>
2848
2849 * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
2850
868178ed 28512006-06-28 Roger Sayle <roger@eyesopen.com>
2852
2853 * genpreds.c (generate_switch_p): New function.
2854 (add_mode_tests): Push the new mode test down inside an AND expr
2855 if this allows the switch-suitable MATCH_CODE to be near the root.
2856 (write_match_code_switch): New function to write a MATCH_CODE as
2857 a switch statement.
2858 (write_predicate_stmts): New function to write a predicate RTX
2859 expression as a sequence of statements.
2860 (write_one_predicate_function): Use write_predicate_stmts.
2861 (write_tm_constrs_h): Likewise.
2862
68b77226 28632006-06-26 Fred Fish <fnf@specifix.com>
2864
2865 * config/mips/t-sb1: New file.
2866 * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
2867 tmake_file list.
2868
54536dfe 28692006-06-26 DJ Delorie <dj@redhat.com>
2870
2871 * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
2872
28732006-06-26 Naveen H.S <naveenh@kpitcummins.com>
2874 Jayant Sonar <jayants@kpitcummins.com>
2875 Jaydeep Vipradas <jaydeepv@kpitcummins.com>
2876
2877 * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
2878 (subsi3, subsi3_1, subsi3_2): New.
2879 * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
2880 * config/m32c/mov.md (SI mov peephole): New.
2881 * config/m32c/m32.c (m32c_immd_dbl_mov): New.
2882 * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
c0933680 2883
6f18455e 28842006-06-26 Olivier Hainque <hainque@adacore.com>
2885
2886 * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
2887 a CALL_EXPR target function declaration.
2888
65c79db3 28892006-06-26 Richard Guenther <rguenther@suse.de>
2890
2891 * tree.c (build_string): Do not waste tail padding in
2892 struct tree_string.
2893
5da2078a 28942006-06-26 Richard Guenther <rguenther@suse.de>
2895
2896 * ggc-page.c (init_ggc): Add missing element to size_lookup
2897 table.
2898
2899 Revert
2900 2006-06-23 Richard Guenther <rguenther@suse.de>
2901
2902 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2903 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
2904 alignment requests instead. Add verification code.
2905 Add struct tree_function_decl and struct tree_binfo size to
2906 extra_order_size_table. Add missing element to size_lookup
2907 table.
2908
0b6fa2ba 29092006-06-25 Eric Botcazou <ebotcazou@adacore.com>
2910
2911 PR middle-end/28151
2912 * fold-const.c (const_binop): Be prepared for self returning zero.
2913 Simplify code handling complex values.
2914
9c530f25 29152006-06-24 Olivier Hainque <hainque@adacore.com>
2916
2917 * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
2918 (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
2919 aggregate types.
2920
29212006-06-24 Olivier Hainque <hainque@adacore.com>
2922
2923 * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
2924 ARRAY_REF, so have the callback called for the low bound expression.
2925
e5d0ba06 29262006-06-23 Janis Johnson <janis187@us.ibm.com>
2927
2928 * tree.h (DECIMAL_FLOAT_TYPE_P): New.
2929 * c-typeck.c (c_common_type): Disallow operations on decimal float
2930 types and other float types.
2931 * convert.c (convert_to_real): Don't ignore conversions involving
2932 decimal float types.
2933
150edb07 29342006-06-23 Olivier Hainque <hainque@adacore.com>
2935
2936 * tree.c (max_int_size_in_bytes): New function, inspired from
2937 code in function.c:assign_temp.
2938 * tree.h (max_int_size_in_bytes): Declare.
2939 * function.c (assign_temp): Use it.
2940 * gimplify.c (create_tmp_var): Relax the assertions on the type
2941 properties, not mandating constant size any more.
2942 (force_constant_size): New static function.
2943 (gimple_add_tmp_var): Use it, forcing variable size to a
2944 constant upper bound if it is not constant on entry.
2945
768d7d97 29462006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
2947
2948 PR target/27789
2949 * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
2950 for initialization and setting of one_only flag to ...
2951 (i386_pe_encode_section_info): ...here.
2952 (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
2953 Recheck that the symbol has not been defined.
2954
8c14f57e 29552006-06-23 Richard Guenther <rguenther@suse.de>
2956
2957 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
2958 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
2959 alignment requests instead. Add verification code.
2960 Add struct tree_function_decl and struct tree_binfo size to
2961 extra_order_size_table. Add missing element to size_lookup
2962 table.
2963
231c1565 29642006-06-22 Roger Sayle <roger@eyesopen.com>
2965 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2966
2967 PR middle-end/28131
2968 * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
2969 call to lang_hooks.types.type_for_mode returned NULL_TREE.
2970
f11164aa 29712006-06-23 Ben Elliston <bje@au.ibm.com>
2972
2973 * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
2974 negate dn -- manipulate it directly.
2975
493488c1 29762006-06-22 Roger Sayle <roger@eyesopen.com>
2977 Steven Bosscher <stevenb.gcc@gmail.com>
2978
2979 PR target/27531
2980 * reload1.c (gen_reload): Call mark_jump_label on the new insns
2981 generated by gen_move_insn to add REG_LABEL notes if necessary.
2982
da0eb3fd 29832006-06-22 Bob Wilson <bob.wilson@acm.org>
2984
2985 * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
2986 (leaf_entry): Remove use of MIN_ESA.
2987
ea06d49f 29882006-06-22 Zdenek Dvorak <dvorakz@suse.cz>
2989
2990 PR rtl-optimization/28121
2991 * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
2992 the entry edge.
2993
387715e2 29942006-06-21 DJ Delorie <dj@redhat.com>
2995
2996 * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
2997 (TN-16C-A156A/E).
2998 (mulhisi3_r): Likewise.
2999
82e15b07 30002006-06-21 Richard Sandiford <richard@codesourcery.com>
3001
3002 PR middle-end/28034
3003 * coverage.c (coverage_counter_alloc): Leave the index type
3004 unspecified.
3005 (coverage_counter_alloc): Use null arguments for operands 2 and 3
3006 of the ARRAY_REF.
3007
1c661d17 30082006-06-21 Andrew Pinski <pinskia@physics.uc.edu>
3009
3010 * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
3011 section from the "Options for Code Generation Conventions".
3012
2702343c 30132006-06-21 Richard Henderson <rth@redhat.com>
3014
3015 PR target/26347
3016 PR target/27082
3017 * config/alpha/predicates.md (small_symbolic_operand): Deny weak
3018 symbols.
3019 (global_symbolic_operand): Allow weak symbols, even if local_p.
3020
8ee578c8 30212006-06-21 Eric Botcazou <ebotcazou@adacore.com>
3022
3023 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
3024 (find_interesting_uses_address): Punt if above function returns true.
3025
b1ef404e 30262006-06-21 Richard Guenther <rguenther@suse.de>
3027
3028 * configure: Regenerated.
3029
9fc4153e 30302006-06-21 Joseph Myers <joseph@codesourcery.com>
3031
3032 * config/mips/mips.c (function_arg): Where one part of a
3033 complex argument is in registers and the other part in the stack,
3034 return a REG not a PARALLEL.
3035
0bf9691e 30362006-06-21 Mark Mitchell <mark@codesourcery.com>
3037
3038 * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
3039 when cross-compiling. Do not substitute libstdcxx_incdir.
3040 * configure: Regenerated.
3041
1fc5c8af 30422006-06-21 Jakub Jelinek <jakub@redhat.com>
3043
3044 * varasm.c (mergeable_string_section): Check for embedded NULs and
3045 NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
3046 rather than TREE_STRING_LENGTH bytes.
3047
7a0c37de 30482006-06-21 Richard Guenther <rguenther@suse.de>
3049
3050 * ggc-page.c (extra_order_size_table): Add var_ann_d,
3051 tree_ssa_name, bitmap_element and phi_node with 4 arguments
3052 sizes.
3053
86159992 30542006-06-21 Richrad Guenther <rguenther@suse.de>
3055
3056 * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
3057 Limit iteration over the dominators.
3058
d72835ba 30592006-06-20 Roger Sayle <roger@eyesopen.com>
3060
3061 * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
3062 (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
3063
0a06d4f0 30642006-06-20 Richard Guenther <rguenther@suse.de>
3065 Michael Matz <matz@suse.de>
3066
3067 * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
3068 function.
3069 * alloc-pool.c (free_alloc_pool_if_empty): New function.
3070 * et-forest.h (et_free_pools): Prototype new function.
c0933680 3071 * et-forest.c (et_free_tree_force): Free parent occurrence.
0a06d4f0 3072 (et_free_pools): New function.
3073 * dominance.c (free_dominance_info): Free et-forest alloc
3074 pools.
3075
9fd22806 30762006-06-20 Roger Sayle <roger@eyesopen.com>
3077
3078 * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
3079 integer modes, attempt to directly construct an integer constant.
3080
3081 * fold-const.c (native_encode_vector): Determine the size of each
3082 element from the vector type instead of the first vector element.
3083
3084 * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
3085 if all of its elements/components are constant.
3086 (build_constructor_from_list): Likewise.
3087
31e389a2 30882006-06-20 Zdenek Dvorak <dvorakz@suse.cz>
3089
3090 PR tree-optimization/27331
3091 * tree-data-ref.c (free_data_ref): New function.
3092 (create_data_ref): Fail if the data reference has unknown access
3093 function.
3094 (free_data_refs): Use free_data_ref.
3095
aee8cc15 30962006-06-19 Andrew Pinski <pinskia@gmail.com>
3097
3098 PR middle-end/28075
3099 * tree-inline.c (setup_one_parameter): Strip useless
3100 type conversion before adding it to the IR.
3101 (declare_return_variable): Likewise.
3102
4d9f60cc 31032006-06-19 Martin Michlmayr <tbm@cyrius.com>
3104
3105 PR c/27149
3106 * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
3107
de8dea22 31082006-06-19 Mike Stump <mrs@apple.com>
3109
3110 * tree.c (variably_modified_type_p): VM arguments don't make the
3111 type a VM type.
3112
9404b9c6 31132006-06-19 Richard Guenther <rguenther@suse.de>
3114
3115 * tree-ssa-pre.c (try_combine_conversion): Strip useless
3116 type conversions after folding.
3117
1c2a6a66 31182006-06-19 Richard Guenther <rguenther@suse.de>
3119
3120 * ggc-page.c (extra_order_size_tab): Add entries with
3121 size of struct function and basic_block.
3122 (size_lookup): Extend to cover sizes up to 511.
3123 (ggc_alloc_stat): Adjust user.
3124 (ggc_pch_count_object): Likewise.
3125 (ggc_pch_alloc_object): Likewise.
3126 (ggc_pch_write_object): Likewise.
3127
30b9be29 31282006-06-19 Zdenek Dvorak <dvorakz@suse.cz>
3129
3130 * tree-ssa-loop-niter.c (implies_ge_p): New function.
3131 (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
3132 correctly.
3133
88aaa76d 31342006-06-19 Denis Chertykov <denisc@overta.ru>
3135
3136 * config/avr/libgcc.S : Correct my wrong previous commit.
3137
b7ba5735 31382006-06-19 Roger Sayle <roger@eyesopen.com>
3139
3140 PR target/27861
3141 * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
3142 have stripped a SUBREG from the shift count, so we may need to
3143 convert_to_mode back to the type's mode before calling make_tree.
3144 Use new_amount instead of amount to avoid expanding a tree twice.
3145
68826b15 31462006-06-19 Richard Guenther <rguenther@suse.de>
3147
3148 PR middle-end/28045
3149 * fold-const.c (operand_equal_p): Check if the argument types
3150 have the same precision before stripping NOPs.
3151
714d1260 31522006-06-19 Daniel Berlin <dberlin@dberlin.org>
3153
3154 Fix PR tree-optimization/27341
3155 * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
3156 statement we get.
c0933680 3157 * tree-complex.c (pass_lower_complex): Update SMT usage.
714d1260 3158
65092884 31592006-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
3160
c0933680 3161 * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
65092884 3162 Add a new alternative to the constraint strings. Add move of
3163 operand 1 to 3 to the splitter definition.
3164 ("doloop_si_long"): Second contraint alternative removed.
3165
0aab73c2 31662006-06-08 Anatoly Sokolov <aesok@post.ru>
3167
3168 * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
c0933680 3169 (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
0aab73c2 3170 __AVR_HAVE_LPMX__.
3171 (AVR_HAVE_MOVW) Define.
3172 (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
3173 (ASM_SPEC): Add avr25.
3174 (LINK_SPEC): Add avr25.
3175 * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
3176 (base_arch_s): Add new member 'have_movw_lpmx'.
3177 (avr_arch_types): Init 'have_movw_lpmx'.
3178 (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
3179 attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
3180 attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
3181 (avr_override_options): Init 'avr_have_movw_lpmx_p'.
c0933680 3182 (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
0aab73c2 3183 AVR_HAVE_MOVW.
3184 (avr_file_start): Do not output '.arh' derective.
3185 * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
3186 (__do_copy_data): Use __AVR_HAVE_LPMX__.
3187 * config/avr/avr.md (mcu_enhanced): Delete.
3188 (mcu_have_movw): Define.
3189 (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
3190 (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
3191 * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
3192 (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
c0933680 3193 attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
0aab73c2 3194 attiny861 and at86rf401 devices.
3195
b6cf30ce 31962006-06-18 Jie Zhang <jie.zhang@analog.com>
3197
3198 * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
3199 of 4096.
3200
9249a3df 32012006-06-17 Karl Berry <karl@gnu.org>
3202
3203 * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
3204 doc/gccint.texi, doc/install.texi (@dircategory): Use
3205 "Software development" instead of "Programming", following
3206 the Free Software Directory.
3207
ca5e9d0e 32082006-06-17 Alexandre Oliva <aoliva@redhat.com>
3209
3210 * config/i386/i386.c (legitimate_tls_address)
3211 <TARGET_GNU2_TLS>: Add tp after DTPOFF.
3212 * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
3213 (*tls_dynamic_gnu2_combine_64): Likewise.
3214
58b22aa6 32152006-06-16 Richard Guenther <rguenther@suse.de>
3216
3217 PR middle-end/27116
3218 * fold-const.c (negate_expr_p): Do not introduce undefined
3219 overflow in negating INTEGER_CSTs.
3220 (fold_negate_expr): Rename from negate_expr. Revert last
3221 change for folding BIT_NOT_EXPR. Change semantics to
3222 return NULL_TREE for non-simplified negations. Do not
3223 strip type conversions and unify type handling.
3224 (negate_expr): New function, wrap around fold_negate_expr
3225 but ensure building a tree always. Strip type conversions
3226 here, fold to result type.
3227 (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
3228
50e6dbf3 32292006-06-16 Roger Sayle <roger@eyesopen.com>
3230
3231 PR middle-end/27802
3232 * reg-stack.c (subst_stack_regs): Handle noreturn function calls
3233 that (would) return their results in stack registers.
3234
40c3c1b3 32352006-06-16 Michael Matz <matz@suse.de>
3236 Richard Guenther <rguenther@suse.de>
3237
3238 * fold-const.c (fold_truthop): Only return new tree node if
3239 we canonicalized something.
3240
ee5142f6 32412006-06-16 Richard Guenther <rguenther@suse.de>
3242
3243 * function.h (enum function_frequency): Move declaration
3244 out of struct function.
3245 (struct function): Move bool fields and the enum to the bitfield
3246 section. Reorder elements to avoid padding. Remove unused
3247 fields left over from the RTL inliner removal.
3248 * function.c (free_after_compilation): Do not zero removed fields.
3249 * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
3250 (ipa-type-escape.o): Likewise.
3251
a16eb452 32522006-06-16 Richard Guenther <rguenther@suse.de>
3253
3254 * cgraph.h (struct cgraph_local_info): Turn bool elements
3255 into a bitfield.
3256 (struct cgraph_node): Likewise.
3257 (struct cgraph_varpool_node): Likewise.
3258
6758b11c 32592006-06-15 Richard Guenther <rguenther@suse.de>
3260
3261 * fold-const.c (fold_truth_not_expr): Rename from
3262 invert_truthvalue. Give it fold_* semantics to avoid
3263 generating garbage.
3264 (invert_truthvalue): New function. Wrapper around
3265 fold_truth_not_expr.
3266 (optimize_minmax_comparison): Avoid creating garbage.
3267 (fold_unary): Use fold_truth_not_expr for folding
3268 TRUTH_NOT_EXPR.
3269 (fold_ternary): Replace uses of invert_truthvalue with
3270 fold_truth_not_expr where applicable.
3271 * tree.h (fold_truth_not_expr): Prototype.
3272
959fce68 32732006-06-16 Richard Guenther <rguenther@suse.de>
3274
3275 PR tree-optimization/27781
3276 * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
3277 * ipa-pure-const.c (target.h): Include.
3278 (analyze_function): Do not analyze functions that do not
3279 bind locally.
3280
c0296575 32812006-06-15 Andrew MacLeod <amacleod@redhat.com>
c0933680 3282
c0296575 3283 PR middle-end/27793
3284 * tree-dfa.c (referenced_vars_dup_list): Remove.
3285 (find_referenced_vars): Remove assert.
3286 (referenced_var_check_and_insert): Replace dup list with assert.
3287 * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
3288 * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
3289
a04b3e37 32902006-06-15 Richard Guenther <rguenther@suse.de>
3291
3292 * tree-ssa-structalias.c (alias_get_name): Avoid creating
3293 extra unused identifiers if not dumping.
3294 (create_variable_info_for): Likewise.
3295
d8a99c17 32962006-06-15 Zdenek Dvorak <dvorakz@suse.cz>
3297
3298 * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
3299 (derive_constant_upper_bound): Derive more precise upper bound in
3300 common cases. Return type changed to double_int.
3301 (record_estimate): Reflect the changed return type of
3302 derive_constant_upper_bound.
3303 * double-int.c (double_int_zext, double_int_sext): Fix.
3304
c81c13fb 33052006-06-15 Paolo Bonzini <bonzini@gnu.org>
3306
3307 * configure.ac (CFLAGS): Get them from the toplevel or from the
3308 configure invocation.
3309 * configure: Regenerate.
3310 * Makefile.in (CFLAGS): Substitute value provided by configure.
3311
d377303f 33122006-06-14 Mark Mitchell <mark@codesourcery.com>
3313
3314 PR c++/26559
3315 * c-common.h (c_finish_omp_atomic): Adjust declaration.
3316 * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
3317 rather than calling add_stmt on it.
3318 * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
3319
0aacf12c 33202006-06-14 Andreas Krebbel <krebbel1@de.ibm.com>
3321
3322 PR middle-end/27959
3323 * reload1.c (reload): Remove registers returned by update_eliminables
3324 from used_spill_regs.
3325
718a81bb 33262006-06-13 DJ Delorie <dj@redhat.com>
3327
3328 * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
3329
18f327f7 33302006-06-13 Carlos O'Donell <carlos@codesourcery.com>
3331
3332 * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
3333 html__strip_dir, html__mkdir_p. Enhance install-html target.
c0933680 3334 * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
18f327f7 3335 * configure: Regenerate.
3336
d0911b8e 33372006-06-13 Fariborz Jahanian <fjahanian@apple.com>
3338
c0933680 3339 * fold-const.c (fold_cond_expr_with_comparison): Check for
d0911b8e 3340 Objective-C++ as language in deciding COND_EXPR transformation.
3341
2b2f5cfb 33422006-06-06 J"orn Rennecke <joern.rennecke@st.com>
3343
3344 PR target/28014:
3345 * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
3346 * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
3347 * config/sh/lib1funcs.h (SL, SL1): Define.
3348 * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
3349 * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
3350 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
3351 (OBJS_Os_4_200): New variable.
3352 ($(T)libgcc-Os-4-200.a): Use it.
3353 * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
3354 when dividing 1 and/or by 0.
3355
679f19b4 33562006-06-13 Roger Sayle <roger@eyesopen.com>
3357
3358 * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
3359 before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
3360 * configure: Regenerate.
3361
7196637a 33622006-06-13 Jie Zhang <jie.zhang@analog.com>
3363
3364 * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
3365 for real instruction.
3366
45bfe09b 33672006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3368
3369 PR middle-end/26807
3370 * haifa-sched.c (check_cfg): Handle special case.
3371
0c2f12e9 33722006-06-13 Eric Botcazou <ebotcazou@adacore.com>
3373
3374 PR debug/26754
3375 * gimplify.c (declare_tmp_vars): Rename into declare_vars.
3376 Add debug_info parameter. Chain the vars to the BLOCK instead
3377 of the BIND_EXPR if debug info are requested for them.
3378 (pop_gimplify_context): Adjust for above change.
3379 (gimple_add_tmp_var): Likewise.
3380 * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
3381 Add bool parameter.
3382 * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
3383 (convert_local_reference): Likewise.
3384 (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
3385 (finalize_nesting_tree_1): Request that debug info be emitted
3386 for debug_var_chain.
3387
ec469632 33882006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3389
3390 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
3391 for PR target/27863.
3392
3669a8aa 33932006-06-13 Richard Guenther <rguenther@suse.de>
3394
3395 PR middle-end/27536
3396 * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
3397
52a7bd0e 33982006-06-13 Richard Guenther <rguenther@suse.de>
3399
3400 PR tree-optimization/27830
3401 * tree-inline.c (copy_body_r): For copying the operand
3402 of an ADDR_EXPR make sure to fold &* afterwards.
3403
e1f5655d 34042006-06-12 Eric Botcazou <ebotcazou@adacore.com>
3405
3406 * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
3407 lvalues in the fb_none case with side-effects.
3408
edbe946e 34092006-06-12 Kazu Hirata <kazu@codesourcery.com>
3410
3411 * tree-flow.h: Remove the prototype for
3412 compute_phi_arg_on_exit.
3413 * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
3414 protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
3415 Remove.
3416
1b74fde7 34172006-06-12 Mark Shinwell <shinwell@codesourcery.com>
3418
3419 * builtins.c (expand_builtin_return_addr): Only use
3420 frame_pointer_rtx when count == 0 and we are expanding
3421 __builtin_return_address.
3422
4266946e 34232006-06-12 Fred Fish <fnf@specifix.com>
3424
3425 * config/mips/mips.c (mips_file_start): Create special section
3426 ".gcc_compiled_longXX" for o64 ABI as well as EABI.
3427
a6cf93fb 34282006-06-11 Eric Christopher <echristo@apple.com>
3429
3430 PR middle-end/27948
3431 * stor-layout.c (place_field): Remove check for
3432 remaining_in_alignment when aligning at the end of a run.
3433
114d1545 34342006-06-11 Eric Christopher <echristo@apple.com>
3435
3436 PR 27542
3437 * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
3438 pragma.
3439
622e3537 34402006-06-11 Roger Sayle <roger@eyesopen.com>
3441
3442 PR target/27858
3443 Revert incorrect fix for PR target/27158
3444 2006-05-08 Roger Sayle <roger@eyesopen.com>
3445 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
3446 of a reg_equiv_constant if the result is a legitimate constant.
3447
e4152f24 34482006-06-11 Roger Sayle <roger@eyesopen.com>
3449
3450 PR target/27158
3451 * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
3452 extract a CONST_VECTOR element and interpret it as an integer.
3453 (vspltis_constant): Use const_vector_elt_as_int instead of the
3454 macro CONST_VECTOR_ELT in order to handle FP vector modes.
3455 * config/rs6000/predicates.md (easy_vector_const): Consider
3456 floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
3457
089ea875 34582006-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
3459
3460 PR middle-end/27942
3461 * stor-layout.c (update_alignment_for_field): Don't add extra
3462 alignment for packed non-bitfield fields in ms_bitfield_layout_p
3463 code.
3464
2137eaa9 34652006-06-09 Ralf Corsepius <ralf.corsepius@rtems.org>
3466
3467 * config/mips/t-rtems: Add EL/EB multilib variants.
3468
bd4e1b5a 34692006-06-09 Mike Stump <mrs@apple.com>
3470
3471 * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
3472
28143dbb 34732006-06-09 David Daney <ddaney@avtrex.com>
3474
3475 * doc/install.texi: Add binutils version recommendation for mips-*-*.
3476
5f2bd98f 34772006-06-09 Andreas Krebbel <krebbel1@de.ibm.com>
3478
3479 * reload.c (find_reloads): Unset force_reload for 'X' constraint.
3480
0086a3d6 34812006-06-09 Richard Guenther <rguenther@suse.de>
3482
3483 PR tree-optimization/26998
3484 * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
3485 of signed types, only TYPE_MIN_VALUE is special, but for both,
3486 minimum and maximum value. Likewise VR_ANTI_RANGE is special
3487 in this case, as is -fwrapv.
3488
f13da317 34892006-06-08 Mike Stump <mrs@apple.com>
3490
3491 PR target/26427
3492 * config/darwin.c (darwin_asm_output_anchor): Disable
3493 -fsection-anchors on darwin for now.
3494 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
3495 * rs6000/rs6000.c (optimization_options): Likewise.
3496
95de4d5a 34972006-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3498
3499 PR target/27421
3500 * config/i386/i386.c (classify_argument): Skip fields with invalid
3501 types in unions.
3502
4c958a22 35032006-06-08 Steven Bosscher <steven@gcc.gnu.org>
3504
3505 * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
3506 (cse_insn): Likewise for the stack_pointer_rtx.
3507
c4124729 35082006-06-08 Roger Sayle <roger@eyesopen.com>
3509
3510 * tree-ssa-dom.c (record_conditions): Only record "unordered"
3511 conditions from floating point comparisons.
3512
65801c1c 35132006-06-08 Paolo Bonzini <bonzini@gnu.org>
3514
3515 PR middle-end/27733
3516 * expmed.c (struct alg_hash_entry): Fix type of field T
3517 to match synth_mult argument.
3518 (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
3519
792f1838 35202006-06-08 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3521
3522 PR target/27863
3523 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
3524 block boundaries.
3525
2ba580f0 35262006-06-08 Richard Guenther <rguenther@suse.de>
3527
3528 PR middle-end/27116
3529 * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
3530 only, if overflow is defined and not trapping.
3531 (negate_expr): Likewise.
3532
89c8b802 35332006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
3534
3535 PR tree-optimization/27872
3536 * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
3537 flag on the new exit edge of the unrolled loop.
3538
bd7519f0 35392006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
3540
3541 PR rtl-optimization/26449
3542 * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
3543
d328c4ab 35442006-06-07 Andrew MacLeod <amacleod@redhat.com>
3545
3546 PR middle-end/27793
114d1545 3547 * tree-dfa.c (referenced_vars_dup_list): New. List of duplicate
d328c4ab 3548 referenced_variables with matching DECL_UID's.
3549 (find_referenced_vars): Make sure duplicate list is empty to start.
3550 (referenced_var_p): Remove.
114d1545 3551 (referenced_var_check_and_insert): Renamed from referenced_var_insert.
d328c4ab 3552 Check if var is in the list, and add if needed. Update the duplicate
3553 list if a different var is in the list with the same DECL_UID.
3554 (add_referenced_var): Call routine to check and insert.
3555 * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
3556 * tree-flow.h (referenced_vars_dup_list): External declaration.
3557
55f80fd5 35582006-06-07 Fred Fish <fnf@specifix.com>
3559
3560 * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
3561 into single entry.
3562
389d0d04 35632006-06-07 Paolo Bonzini <bonzini@gnu.org>
3564
3565 PR target/27390
3566 * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
3567 the imaginary and real parts of a clobbered register.
3568 Emit insn to set the imaginary part.
3569
7b8afd5d 35702006-06-06 Peter Lemieszewski <lemie@us.ibm.com>
3571
3572 * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
3573 in lieu of unwind-dw2-fde.c.
3574
5fbe6585 35752006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
3576
3577 * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
3578
19155a13 35792006-06-06 Ulrich Weigand <uweigand@de.ibm.com>
3580
3581 PR target/27842
3582 * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
3583 ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
3584 ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
3585 V4SImode temporaries and operations instead.
3586
feb71a63 35872006-06-06 Joseph S. Myers <joseph@codesourcery.com>
3588
3589 * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
3590 dp-bit.c.
3591
85690e4d 35922006-06-06 Mike Stump <mrs@apple.com>
3593
3594 * Makefile.in: Rename to htmldir to build_htmldir to avoid
3595 installing during build.
3596
475a74e0 35972006-06-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3598
3599 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
3600 value to 0.
3601 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
3602 * config/ia64/ia64.c (params.h): New header.
3603 (ia64_optimization_options): New function to adjust parameters.
3604 * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
3605 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
3606 * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
3607
674b377b 36082006-06-05 Kazu Hirata <kazu@codesourcery.com>
3609
3610 * stor-layout.c (debug_rli): Fix a typo in a debug message.
3611
71685250 36122006-06-05 Steve Ellcey <sje@cup.hp.com>
3613
3614 PR target/27051
3615 * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
3616
e47352fb 36172006-06-05 Dorit Nuzman <dorit@il.ibm.com>
3618 Victor Kaplansky <victork@il.ibm.com>
3619
6993cbc4 3620 PR tree-optimization/26360
3621 * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
3622 stmts.
e47352fb 3623
a0a37ffc 36242006-06-04 Roger Sayle <roger@eyesopen.com>
3625 Andrew Pinski <pinskia@physics.uc.edu>
3626
3627 PR middle-end/27382
3628 * c-common.c (c_common_truthvalue_conversion): Explicitly check
3629 for LABEL_DECL before calling DECL_WEAK.
3630
3631 PR c/27150
3632 * c-typeck.c (build_binary_op): Likewise, explicitly check for
3633 LABEL_DECL and PARM_DECL.
3634
dc95eae2 36352006-06-05 Joseph S. Myers <joseph@codesourcery.com>
3636
3637 PR c/25161
3638 PR c/27020
3639 * c-decl.c (grokdeclarator): Disallow variably modified types at
3640 file scope. Avoid marking shared array type of constant size as
3641 VLA.
3642
6b11d2e3 36432006-06-04 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3644
3645 PR c++/27601
3646 * c-common.c (fold_offsetof_1): Handle static members.
3647
7bd4091f 36482006-06-04 Eric Christopher <echristo@apple.com>
3649
3650 * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
3651 (debug_rli): Output value for remaining_in_alignment.
3652 (update_alignment_for_field): Unconditionalize
3653 ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
3654 extra alignment code.
3655 (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
3656 ms_bitfield_layout_p code. Rewrite handling of structure fields.
3657 * tree.h (record_layout_info_s): Remove prev_packed.
3658 * doc/extend.texi (ms_struct): Add documentation of format.
3659
47be647d 36602006-06-04 Mark Shinwell <shinwell@codesourcery.com>
3661
3662 * tree.h: Declare folding_initializer.
3663 * builtins.c (fold_builtin_constant_p): Give definite answer
3664 if folding inside an initializer.
3665 * fold-const.c: Define folding_initializer.
3666 (START_FOLD_INIT): Save and then set folding_initializer.
3667 (END_FOLD_INIT): Restore folding_initializer.
3668
f9ea6ec6 36692006-06-04 Richard Guenther <rguenther@suse.de>
3670
3671 PR tree-optimization/27039
3672 * fold-const.c (fold_comparison): Handle pointer comparison
3673 again for all comparison codes. Compare offsets in signed
3674 size type.
3675 (fold_binary): Move code from here.
3676
944e7877 36772006-06-03 Roger Sayle <roger@eyesopen.com>
3678
3679 PR target/26223
3680 * config/i386/i386.c (construct_container): Split static issued_error
3681 flag into issued_sse_arg_error, issued_sse_ret_error and
3682 issued_x87_ret_error. Issue a daignostic if the x86-64 ABI
3683 requires the use of x87 registers and the user explicitly
3684 specified the -mno-80387 command line option.
3685
168c58e0 36862006-06-02 Geoffrey Keating <geoffk@apple.com>
3687
3688 * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
3689 HAVE_DECL_SIGALTSTACK.
3690 (MC_FLD): New.
3691 (segv_handler): Use MC_FLD.
3692 * configure.ac: Check for a sigaltstack declaration.
3693 Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
3694 * configure: Regenerate.
3695 * config.in: Regenerate.
3696
36eb5072 36972006-06-03 J"orn Rennecke <joern.rennecke@st.com>
3698
3699 PR other/27850
3700 * Makefile.in (stmp-fixinc): Fix typo.
3701
75e3ef6e 37022006-06-02 Roger Sayle <roger@eyesopen.com>
3703
3704 * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
3705 are type correct. Clean-up.
3706 <REALPART_EXPR>: Likewise. Optimize creal(~z) as creal(z).
3707 <IMAGPART_EXPR>: Likewise. Optimize cimag(~z) as -cimag(z).
3708
e3a89ab1 37092006-06-01 DJ Delorie <dj@redhat.com>
3710
3711 * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
3712 shift, as we've disabled the "switch" insn that needs it.
3713
2e1e73b6 37142006-06-01 Per Bothner <bothner@bothner.com>
3715
3716 Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
3717 * c-opts.c (finish_options): Use internal line 0 for <command-line>.
3718 * c-ppoutput.c (cb_define): Don't increment line 0.
3719
52f78840 37202006-06-01 Pete Steinmetz <steinmtz@us.ibm.com>
3721
3722 * doc/invoke.texi: Add cpu_type power6.
3723 * config.gcc: Add cpu_type power6.
3724 * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
3725 to power5+ with Altivec.
3726 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
3727 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
3728
e4ac826f 37292006-05-30 Anatoly Sokolov <aesok@post.ru>
3730
3731 * config/avr/avr.h (SET_ASM_OP): Define.
3732
1a4340cd 37332006-06-01 Kazu Hirata <kazu@codesourcery.com>
3734
3735 * config/bfin/bfin.c: Fix comment typos.
3736
a0092fa5 37372006-06-01 Paolo Bonzini <bonzini@gnu.org>
3738
3739 PR 25453
3740 * doc/install.texi: Document --enable-bootstrap and
3741 --disable-bootstrap.
3742
63a06cfe 37432006-06-01 Paolo Bonzini <bonzini@gnu.org>
3744
3745 * doc/install.texi: Document that InfoZIP can replace jar.
3746
ee308124 37472006-05-31 Roger Sayle <roger@eyesopen.com>
3748
3749 * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
3750 isn't available, directly generate the simpler x87 patterns without
3751 the (use (const_int 0)).
3752 * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
3753 implementation isn't available.
3754 (*negdf2_1): Likewise.
3755 (*negxf2_1): XF mode negation is always done using the x87.
3756 (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
3757
749891b2 37582006-05-31 Roger Sayle <roger@eyesopen.com>
3759
3760 * builtins.c (fold_builtin_cabs): Delete prototype. Require an
3761 additional FNDECL argument. Optimize cabs(-z) and cabs(~z) as
3762 cabs(z).
3763 (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
3764
3c1905a4 37652006-05-31 Jie Zhang <jie.zhang@analog.com>
3766
3767 * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
3768 * config/bfin/bfin.c (basic-block.h): Include.
3769 (struct machine_function): New.
3770 (bfin_init_machine_status): New.
3771 (override_options): Initialize init_machine_status.
3772 (bfin_hardware_loop): New.
3773 (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
3774 (DEF_VEC_P (loop_info)): New.
3775 (DEF_VEC_ALLOC_P (loop_info,heap)): New.
3776 (struct loop_info): New.
3777 (loop_info): New typedef.
3778 (struct loop_work): New.
3779 (loop_work): New typedef.
3780 (DEF_VEC_O (loop_work)): New.
3781 (DEF_VEC_ALLOC_O (loop_work,heap)): New.
3782 (bfin_dump_loops): New.
3783 (bfin_bb_in_loop): New.
3784 (bfin_scan_loop): New.
3785 (bfin_optimize_loop): New.
3786 (bfin_reorg_loops): New.
3787 (bfin_reorg): Use bfin_reorg_loops.
3788 * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
3789 loop registers.
3790 (I_REGNO_P): Simplify.
3791 (DP_REGNO_P, DPREG_P): New macros.
3792 (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
3793 REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
3794 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
3795 Add LT_REGS, LC_REGS, LB_REGS.
3796 (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
3797 'l' for LB_REGS.
3798 (REGNO_REG_CLASS): Deal with loop registers.
3799 * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
3800 letters.
3801 (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
3802 New constants for loop registers.
3803 (UNSPEC_LSETUP_END): New.
3804 (seq_insns): New define_attr. Set it for appropriate insns.
3805 (movsi_insn): Add alternatives for move from/to
3806 loop count registers.
3807 (doloop_end): New define_expand.
3808 (loop_end): New define_insn.
3809 (define_split for bad doloop_end): New.
3810 (lsetup_with_autoinit): New define_insn.
3811 (lsetup_without_autoinit): New define_insn.
3812 (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
3813 * config/bfin/predicates.md (lc_register_operand): New.
3814 (lt_register_operand): New.
3815 (lb_register_operand): New.
3816 (nondp_register_operand): New.
3817 (nondp_reg_or_memory_operand): New.
3818 * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
3819
6833eae4 38202006-05-31 Jie Zhang <jie.zhang@analog.com>
3821
3822 * config/bfin/bfin.c (bfin_delegitimize_address): New.
3823 (TARGET_DELEGITIMIZE_ADDRESS): Define.
3824
49688a56 38252006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
3826
3827 * Makefile.in (CATALOGS): Add po/ prefix.
3828 * configure: Regenerated.
3829
26dff611 38302006-05-31 Richard Earnshaw <richard.earnshaw@arm.com>
3831
73f7ec8b 3832 PR target/27829
26dff611 3833 * arm.c (arm_print_operand case 'S'): Validate that the operand is
3834 a shift operand before calling shift_op. Avoid redundant call of
3835 shift_op.
3836
7b4716cf 38372006-05-30 Naveen.H.S <naveenh@kpitcummins.com>
3838 DJ Delorie <dj@redhat.com>
3839
3840 * config/m32c/m32c.c (m32c_expand_insv): Check that the value
3841 we're inserting is a singlt-bit constant.
3842
885fe2d1 38432006-05-30 Roger Sayle <roger@eyesopen.com>
3844
3845 * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
3846 width to HOST_WIDE_INT to avoid comparison warnings on some targets.
3847
5f4f3617 38482006-05-30 Roger Sayle <roger@eyesopen.com>
3849
3850 PR tree-optimization/23452
3851 * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
3852 to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
3853 (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
3854 complex values and with -ffast-math for FP complex values.
3855
ce0e61fe 38562006-05-30 Kazu Hirata <kazu@codesourcery.com>
3857
3858 * c-common.h: Remove the prototype for yyparse.
3859 * rtl.h: Remove the prototype for init_loop.
3860
0c0acbaa 38612006-05-30 Andreas Krebbel <krebbel1@de.ibm.com>
3862
3863 * cse.c (validate_canon_reg, cse_insn): Don't change insns without
3864 calling recog.
3865
445e5fbb 38662006-05-30 Roger Sayle <roger@eyesopen.com>
3867
3868 * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
3869 and rotate cases.
3870 <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
3871 log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
3872
72370f24 38732006-05-30 Dirk Mueller <dmueller@suse.de>
3874
3875 PR c/27273
3876 * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
3877 for CONSTANT_CLASS_P expresisons.
3878
8a98ec4a 38792006-05-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3880
3881 PR c/27718
3882 * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
3883
df71b940 38842006-05-30 Zdenek Dvorak <dvorakz@suse.cz>
3885
3886 PR tree-optimization/27779
3887 * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
3888 initial_condition instead of CHREC_LEFT.
3889
347a25f7 38902006-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
3891
3892 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
3893 * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
3894 Make prototypes ISO C90.
3895
528dbbba 38962006-05-30 Mircea Namolaru <namolaru@il.ibm.com>
df71b940 3897 Leehod Baruch <leehod.baruch@weizmann.ac.il>
528dbbba 3898
df71b940 3899 * see.c (see_analyze_one_def): Correct check.
3900 (see_get_extension_data): Check if extension is parallel.
3901 (see_get_extension_reg): Likewise.
528dbbba 3902
dc674af7 39032006-05-30 Uros Bizjak <uros@kss-loka.si>
3904
3905 PR target/27790
3906 * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
3907 into register for (code == GTU).
3908
c9b0adad 39092006-05-29 Roger Sayle <roger@eyesopen.com>
3910
3911 PR tree-optimization/24964
3912 * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
3913 <MULT>: Minor clean-up. Don't convert x*-1.0 into -x if we honor
3914 signaling NaNs. Optimize -x*-x as x*x for all float modes, and
3915 abs(x)*abs(x) as x*x for scalar floating point modes.
3916
bb9243aa 39172006-05-29 Sebastian Pop <pop@cri.ensmp.fr>
3918
3919 PR middle-end/27745
3920 * lambda-code.c (perfect_nestify): Don't copy statements
3921 in the inner loop: move them to the inner loop header.
3922
d5ea8306 39232006-05-29 Diego Novillo <dnovillo@redhat.com>
3924
3925 PR 26237
3926 * c-tree.texi: Document OpenMP directives and clauses.
3927
9bbaa634 39282006-05-29 Kazu Hirata <kazu@codesourcery.com>
3929
3930 * varasm.c (globalize_decl): Fix indentation.
3931
9fc508b2 39322006-05-29 Diego Novillo <dnovillo@redhat.com>
3933
3934 PR 26242
3935 * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
3936 pass_fre, pass_store_ccp, pass_copy_prop,
3937 pass_store_copy_prop, pass_merge_phi, pass_nrv,
3938 pass_return_slot, pass_object_size, pass_lim,
3939 pass_linear_transform, pass_empty_loop, pass_complete_unroll,
3940 pass_loop_prefetch and pass_stdarg.
3941
55be0e32 39422005-05-29 Bernd Schmidt <bernd.schmidt@analog.com>
3943
3944 * config/bfin/bfin.opt (mfdpic): New option.
3945 * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
3946 (EXTRA_MULTILIB_PARTS): Likewise.
3947 (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
3948 (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
3949 multilib.
3950 * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
3951 (CRT_CALL_STATIC_FUNCTION): New.
3952 * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
3953 -shared.
3954 (CRT_CALL_STATIC_FUNCTION): New.
3955 * config/bfin/bfin.c (legitimize_pic_address): Now static. Handle
3956 FD-PIC moves.
3957 (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
3958 (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
3959 (initialize_trampoline): Changed to handle FD-PIC code generation.
3960 (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
3961 (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
3962 (override_options): Disallow -mid-shared-library -mfdpic combination.
3963 Can't do unaligned ops if FD-PIC.
3964 Turn off flag_pic if trying to generate non-id-shared-library
3965 non-fdpic code, since it's not supported.
3966 (bfin_assemble_integer): New function.
3967 (TARGET_ASM_INTEGER): Define.
3968 * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
3969 __BFIN_FDPIC__.
3970 * config/bfin/crtn.s: Restore them.
3971 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
3972 if TARGET_FDPIC.
3973 (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
3974 LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
3975 (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
3976 (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
3977 (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
3978 call-used.
3979 (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
3980 FDPIC_REGS and FDPIC_FPTR_REGS.
3981 (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
3982 * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
3983 UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
3984 (load_funcdescsi): New pattern.
3985 (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
3986 sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
3987 call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
3988
67a5e20a 39892006-05-29 Kazu Hirata <kazu@codesourcery.com>
3990
3991 * gcse.c, rtlanal.c: Remove obsolete comments associated with
3992 loop.c.
3993
d5744dca 3994 * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
3995
d470ecbd 3996 * tree-flow.h: Remove the prototype for add_type_alias.
3997 * tree-ssa-alias.c (add_type_alias): Remove.
3998
554f2707 39992006-05-28 Kazu Hirata <kazu@codesourcery.com>
4000
4001 * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
4002 config/fr30/fr30.md, config/i386/i386-interix.h,
4003 config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
4004 config/sh/superh64.h, config/v850/v850.c, df-core.c,
4005 df-problems.c, df.h, except.c, final.c, haifa-sched.c,
4006 lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
4007 reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
4008 tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
4009 Follow spelling conventions.
4010 * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
4011 Follow spelling conventions.
4012
735eed27 40132006-05-27 Richard Guenther <rguenther@suse.de>
4014
4015 PR middle-end/27773
4016 * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
4017 to produce a constant of value 1 of generic type.
4018
95da6220 40192006-05-27 Dirk Mueller <dmueller@suse.de>
4020
4021 * cgraphunit.c (decide_is_function_needed): Fix wrong
4022 PR reference.
4023
91e1886d 40242006-05-26 Ulrich Weigand <uweigand@de.ibm.com>
4025
4026 PR rtl-optimization/27661
4027 * reload.c (find_reloads): When reloading a VOIDmode constant
4028 as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
4029 use Pmode as mode of the reload register.
4030
0f9af572 40312006-05-26 Eric Botcazou <ebotcazou@adacore.com>
4032
4033 * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
4034 is enabled at -O and above.
4035
40362006-05-26 Steven Bosscher <steven@gcc.gnu.org>
449b6e20 4037
4038 PR target/27571
4039 * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
4040 table data.
4041
788f3e3e 40422006-05-25 Mark Mitchell <mark@codesourcery.com>
4043
4044 PR c++/20103
4045 * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
7bd4091f 4046 for anonymous variables explicitly declared by front ends.
788f3e3e 4047
a478a521 40482006-05-25 Eric Botcazou <ebotcazou@adacore.com>
4049
4050 * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
4051 (struct alias_info): Add new field ref_all_symbol_mem_tag.
4052 * tree-ssa-alias.c (compute_may_aliases): If the program contains
4053 ref-all pointers, run a finalization pass for them.
4054 (compute_flow_insensitive_aliasing): Skip ref-all pointers.
4055 (finalize_ref_all_pointers): New function.
4056 (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
4057 regular pointer type to a ref-all pointer type.
4058 (get_tmt_for): Return the special memory tag for ref-all pointers.
4059
2b2c6e11 40602006-05-25 Richard Guenther <rguenther@suse.de>
4061
4062 PR middle-end/27743
4063 * fold-const.c (fold_binary): Do not look at the stripped
4064 op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
4065
ad2a47a5 40662006-05-25 Eric Botcazou <ebotcazou@adacore.com>
4067
4068 * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
4069 for LT and GT if the computed range is effectively empty.
4070
40712006-05-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
0c7b5a46 4072
4073 PR target/27627
4074 * pa/pa-modes.def: Use mips_single_format, mips_double_format and
4075 mips_quad_format formats instead of ieee_single_format,
4076 ieee_double_format and ieee_quad_format formats, respectively.
4077
57e3f39a 40782006-05-24 Zdenek Dvorak <dvorakz@suse.cz>
4079
4080 PR tree-optimization/27639
4081 PR tree-optimization/26719
4082 * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
4083 call to scev_probably_wraps_p.
4084 * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
4085 used_in_pointer_arithmetic_p, convert_step): Removed.
4086 (nowrap_type_p): New function.
4087 (scev_probably_wraps_p): Rewritten.
4088 * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
4089 chrec_convert if chrec_convert_aggressive might have been used.
4090 * tree-chrec.c (convert_affine_scev, chrec_convert_1,
4091 scev_direction): New functions.
4092 (chrec_convert): Changed to a wrapper over chrec_convert_1.
4093 * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
4094 instead of convert_step.
4095 * tree-flow.h (scev_probably_wraps_p): Declaration changed.
4096 (convert_step): Declaration removed.
4097 (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
4098
aa7aac1f 40992006-05-23 Kenneth Zadeck <zadeck@naturalbridge.com>
4100
57e3f39a 4101 * df-core.c: Added to header comments.
aa7aac1f 4102 * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
4103 df_ur_bb_info, df_urec_bb_info): Added comments.
7bd4091f 4104 * df-problems (df_ref_bitmap, ru, rd, lr, ur,
aa7aac1f 4105 urec, ri problems): Fixed header comments.
7bd4091f 4106 (df_ru_transfer_function): Fixed in-out set dyslexia when copying
aa7aac1f 4107 code from df_rd_transfer_function.
7bd4091f 4108
943e5a87 41092006-05-23 Richard Sandiford <richard@codesourcery.com>
4110
4111 * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
4112 (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
4113 MIN_UNITS_PER_WORD to set the default. Also use it in the guard.
4114
8dfa1b7f 41152006-05-23 Joseph Myers <joseph@codesourcery.com>
4116
4117 * expr.c (undefined_operand_subword_p): New.
4118 (emit_move_multi_word): Do not generate move from undefined bits
4119 of a paradoxical subreg.
4120
98c26c78 41212006-05-23 Richard Sandiford <richard@codesourcery.com>
4122
4123 PR rtl-optimization/27736
4124 * combine.c (replaced_rhs_value): New variable.
4125 (combine_instructions): Set it.
4126 (distribute_notes): When distributing a note in replaced_rhs_insn,
4127 check whether the value was used in replaced_rhs_value.
4128
987392e5 41292006-05-23 Andrew MacLeod <amacleod@redhat.com>
4130
4131 PR c++/26757
7bd4091f 4132 * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
987392e5 4133 add_referenced_var instead of add_referenced_tmp_var.
4134 * tree-complex.c (create_one_component_var): Use add_referenced_var.
4135 * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
4136 add_referenced_var.
4137 * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
4138 tree_optimize_tail_calls_1): Use add_referenced_var.
4139 * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
4140 * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
4141 Use add_referenced_var.
4142 * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
4143 * gimplify.c (force_gimple_operand): Use add_referenced_var.
4144 * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
4145 Use add_referenced_var.
4146 * tree-dfa.c (struct walk_state): Remove.
4147 (find_referenced_vars): Remove walk state and vars_found hash table.
4148 (make_rename_temp): Use add_referenced_var.
4149 (find_vars_r): Pass less parameters to add_referenced_var.
4150 (referenced_var_p): New. Is var in referenced_var hash table.
4151 (referenced_var_insert): Assert var isn't already in hash table.
4152 (add_referenced_var): Don't need walk_state parameter. Add var if it
4153 isn't already in the hash table.
4154 (add_referenced_tmp_var): Remove.
4155 (find_new_referenced_vars_1): Use add_referenced_var.
7bd4091f 4156 * tree-ssa-pre.c (create_expression_by_pieces,
987392e5 4157 insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
4158 Use add_referenced_var.
4159 * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
4160 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
7bd4091f 4161 lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
987392e5 4162 add_referenced_var.
4163 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
4164 vect_create_data_ref_ptr, vect_create_destination_var,
7bd4091f 4165 vect_init_vector, vect_build_loop_niters,
987392e5 4166 vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
4167 vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
4168 Use add_referenced_var.
4169 * tree-outof-ssa.c (create_temp): Use add_referenced_var.
4170 * tree-flow.h (add_referenced_tmp_var): Remove prototype
4171 (add_referenced_var): Add prototype.
7bd4091f 4172 * tree-ssa-structalias.c (get_constraint_for,
987392e5 4173 intra_create_variable_infos): Use add_referenced_var.
4174
9a8a3ff4 41752006-05-23 Alexandre Oliva <aoliva@redhat.com>
4176
4177 * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
4178 big-endian paradoxical subregs.
4179 * var-tracking.c (struct micro_operation_def): Document that,
4180 for modify micro operations, insn is the subsequent instruction.
4181 (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
4182 (var_reg_set, var_mem_set): ... new functions.
4183 (add_stores): Record subsequent insn.
4184 (compute_bb_dataflow): Use new functions for MO_USE.
4185 (emit_notes_in_bb): Use new functions for MO_USE. Emit use
4186 notes after the insn, and modify notes before the insn known
4187 to be the subsequent one.
4188 (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
4189
b9612c36 41902006-05-23 Kazu Hirata <kazu@codesourcery.com>
4191
4192 PR target/27696
4193 * config/i386/i386.c (ix86_expand_builtin): Use
4194 gen_sse3_monitor64 for TARGET_64BIT.
4195
02a8ad7e 41962006-05-22 Kenneth Zadeck <zadeck@naturalbridge.com>
4197
4198 PR rtl-optimization/26375
4199 PR rtl-optimization/26855
4200 * df-problems (df_ru_bb_local_compute_process_def): Removed update
4201 to gen set.
4202 (df_ru_bb_local_compute): Reversed statements and removed bogus
4203 comment explaining why they should be in wrong order.
7bd4091f 4204 (df_ru_dump, df_rd_dump): Enhanced debug info.
02a8ad7e 4205 * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
7bd4091f 4206 debug info.
02a8ad7e 4207 * ddg.c (add_deps_for_def): Converted use of reaching defs to
57e3f39a 4208 reaching uses and fixed space problem.
02a8ad7e 4209
d3d410e1 42102006-05-23 Jan Hubicka <jh@suse.cz>
4211
4212 * cgraphunit.c (decide_is_function_needed): Also nested functions
4213 and functions declared inline can be optimized out at -O0.
4214
82307148 42152006-05-22 Gerald Pfeifer <gerald@pfeifer.com>
4216
4217 * doc/install.texi (Configuration): Remove reference to CrossGCC
5aa6d4f0 4218 FAQ which was gone.
82307148 4219 (Building): Ditto.
4220
27c7a7c4 42212006-05-22 Kazu Hirata <kazu@codesourcery.com>
4222
4223 PR target/27266
4224 * config/i386/i386.c (ix86_expand_branch): Jump to simple if
4225 ix86_compare_emitted is non-NULL.
4226
b3790f16 42272006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4228
4229 PR c++/27451
4230 * stmt.c (expand_asm_operands): Skip asm statement with erroneous
4231 clobbers.
4232
810d7bbd 42332006-05-22 Richard Sandiford <richard@codesourcery.com>
4234
4235 PR rtl-optimization/25514
4236 * combine.c (replaced_rhs_insn): New variable.
4237 (combine_instructions): Set replaced_rhs_insn when trying to replace
4238 a SET_SRC with a REG_EQUAL note.
4239 (distribute_notes): Use replaced_rhs_insn when determining the live
4240 range of a REG_DEAD register.
4241
346f625e 42422006-18-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
5e156a9d 4243 Anatoly Sokolov <aesok@post.ru>
346f625e 4244
4245 * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
4246 attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
7bd4091f 4247 attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
4248 atmega164p, atmega324p, atmega644p, atmega644, atmega329,
4249 atmega3290, atmega649, atmega6490, atmega406, atmega640,
4250 atmega1280, atmega1281, at90can32, at90can64, at90usb646,
4251 at90usb647, at90usb1286 and at90usb1287 devices.
346f625e 4252 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
4253 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
4254
01672744 42552006-05-22 Richard Sandiford <richard@codesourcery.com>
4256
4257 * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
4258
37f85f50 42592006-05-22 Richard Guenther <rguenther@suse.de>
4260
4261 Revert
4262 2006-01-31 Richard Guenther <rguenther@suse.de>
4263 Paolo Bonzini <bonzini@gnu.org>
4264
4265 * doc/install.texi (--disable-libgcc-math): Document.
4266
b21d5608 42672006-05-22 Richard Guenther <rguenther@suse.de>
4268
4269 Revert
4270 2006-01-31 Richard Guenther <rguenther@suse.de>
4271
4272 * doc/invoke.texi (-msselibm): Document.
4273 * target.h (expand_library_builtin): New target hook.
4274 * builtins.c (expand_builtin): Use expand_library_builtin.
4275 (default_expand_library_builtin): New function.
4276 * gcc.c (LINK_GCC_MATH_SPEC): Define.
4277 (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
4278 (link_gcc_math_spec): Declare.
4279 (static_specs): Add link_gcc_math_spec.
4280 * expr.h (default_expand_library_builtin): Declare.
4281 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
4282 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
4283 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
4284 * config/i386/i386.opt (msselibm): New target option.
4285 * config/i386/i386.c (ix86_builtin_function_variants): New array.
4286 (ix86_init_sse_abi_builtins): New function.
4287 (ix86_expand_library_builtin): Likewise.
4288 (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
4289 (override_options): Handle error conditions wrt -msselibm.
4290 (ix86_builtins): Add function codes for SSE2 ABI builtins.
4291 (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
4292 * doc/extend.texi (__builtin_sse2_*): Document new target specific
4293 builtins.
4294
b4b63acb 42952006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4296
e1d8e198 4297 PR c/27420
4298 * c-common.c (self_promoting_args_p): Skip erroneous args.
4299
b4b63acb 4300 PR c/26818
4301 * c-decl.c (finish_struct): Skip erroneous fields.
4302
4a967fbe 43032006-05-22 Nick Clifton <nickc@redhat.com>
4304
4305 * config/cris/cris.opt (march): Remove VarExists attribute.
4306 (max-stackframe=): Likewise.
4307
13f378e2 43082006-05-22 Kazu Hirata <kazu@codesourcery.com>
4309
4310 * doc/rtl.texi: Fix a typo.
4311 * see.c: Fix comment typos.
4312
1ed52621 4313 * tree-ssa-structalias.h (alias_info): Remove num_references.
4314
616e9486 43152006-05-21 Mike Stump <mrs@apple.com>
4316
4317 * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
4318 (BAD2): Add.
c1fe988d 4319 (darwin_pragma_options): Use BAD instead.
4320 (darwin_pragma_unused): Likewise.
4321 (darwin_pragma_ms_struct): Likewise.
4322
d1a0f7ec 43232006-05-21 David Edelsohn <edelsohn@gnu.org>
4324
4325 * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
4326
d76f0821 43272006-05-21 Kazu Hirata <kazu@codesourcery.com>
4328
4329 PR rtl-optimization/27671
4330 * simplify-rtx.c (simplify_relational_operation_1): Fix
4331 simplifications of (eq/ne (xor x y) y) and
4332 (eq/ne (xor x y) x).
4333
f0d3e909 4334 PR tree-optimization/26622.
4335 * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
4336 on arg1.
4337
13b96211 43382006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
4339
4340 * tree-cfg.c: Prune whitespace.
4341 (debug_tree_cfg): Point to correct header containing the
4342 TDF_* defines.
4343
5cd75817 43442006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
4345
4346 PR middle-end/25776
4347 * cgraphunit.c (verify_cgraph_node): Typo in error message.
4348
be4d0974 43492006-05-20 Andrew Pinski <pinskia@physics.uc.edu>
4350
4351 PR middle-end/25776
4352 * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
4353 or sorry count is non zero.
4354
629da55a 43552006-05-20 Andreas Schwab <schwab@suse.de>
82c65053 4356
4357 * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
4358
f6682f83 43592006-05-19 Daniel Berlin <dberlin@dberlin.org>
5e156a9d 4360 Kenneth Zadeck <zadeck@naturalbridge.com>
f6682f83 4361
4362 PR rtl-optimization/26855
4363
4364 * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
4365 multiword refs.
4366 (df_scan_alloc): Added code to properly handle multiword hard
4367 registers and add all_blocks parameter.
4368 (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
4369 code to properly handle multiword hard registers.
4370 (df_rescan_blocks): Added code to remove deleted blocks from
4371 bitmap.
4372 (df_ref_create_structure, df_ref_record): Added code to properly
4373 handle subregs.
4374 (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
4375 and set DF_REF_PARTIAL.
4376 (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
7bd4091f 4377 (df_uses_record): Added DF_REF_PARTIAL for subreg.
f6682f83 4378 (df_scan_add_problem): Added flags parameter.
4379 (df_ref_create_structure): Changed switching structure.
4380 (df_bb_refs_record): Fixed case where duplicate artificial refs
4381 were created. Changed location of flags.
4382 (df_record_entry_block_defs): Added code to make stack pointer
4383 live in entry block. Refined cases where frame pointer is needed.
4384 Changed location of flags.
4385 (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
4386 (df_set_state): Removed function.
4387 (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
7bd4091f 4388 df_insn_create_insn_record, df_insn_refs_delete,
4389 df_ref_create_structure): Formatting changes.
f6682f83 4390 * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
4391 df_delete_basic_block): New function.
4392 (df_init): Changed location of flags.
4393 (df_add_problem): Added flags parameter and the way flags are
4394 processed.
4395 (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
4396 debug_df_chain): Improved debugging output.
4397 (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
4398 (df_refs_chain_dump): Removed df parameter.
4399 (df_iterative_dataflow): Added consistency check.
4400 (df_prune_to_subcfg): Made public.
4401 (df_analyze_problem): Added blocks_to_init parameter and made
4402 public.
7bd4091f 4403 (df_ref_record, df_bb_refs_record, df_mark_reg,
f6682f83 4404 df_record_exit_block_uses): Whitespace changes.
4405 (df_dump): Whitespace changes.
4406 * df.h: Some reordering to remove forward references.
4407 (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
4408 DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
4409 (df_ref_flags.DF_REF_CLOBBER): Deleted field.
4410 (dataflow.flags): New field.
4411 (df.flag): Deleted field.
4412 (df_alloc_function): Added additional bitmap parameter.
4413 (df_dependent_problem_function): New type.
4414 (df_problem.changeable_flags): New field.
4415 (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
4416 DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
4417 (df_mw_hardreg): New struct.
4418 (DF_INSN_UID_MWS): New macro.
4419 (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
4420 parameter.
4421 (df_add_problem, df_ru_add_problem, df_rd_add_problem,
4422 df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
4423 df_ri_add_problem, df_scan_add_problem): Added flags parameter.
4424 (df_set_state): Removed function.
4425 (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
4426 * df-problems.c (df_chain_dump): Removed df parameter.
4427 (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
4428 df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
4429 parameter.
4430 (df_ru_alloc, df_rd_alloc): Now resets all blocks.
4431 (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
4432 df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
4433 Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
4434 DF_REF_MUST_CLOBBER cases.
4435 (df_ru_bb_local_compute_process_def,
4436 df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
4437 df_lr_bb_local_compute, df_ur_bb_local_compute,
4438 df_chain_create_bb): Made subreg aware.
4439 (df_ru_bb_local_compute, df_rd_bb_local_compute,
4440 df_lr_bb_local_compute, df_lr_bb_local_compute,
4441 df_chain_create_bb): Cleanup to use proper macros.
4442 (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
4443 code to fixup bitvectors.
4444 (df_ri_alloc): Cleared lifetime.
4445 (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
4446 df_create_unused_note): New function.
4447 (df_ri_bb_compute, df_ri_compute): Added code to create/update
4448 REG_DEAD and REG_UNUSED notes as well as register information.
4449 (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
4450 df_chains_dump): Fixed crash if problem was never run.
4451 (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
4452 df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
4453 df_ri_add_problem): Processes flags in uniform manner.
4454 (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
4455 df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
4456 df_rd_dump, df_urec_free_bb_info): Formatting changes.
4457 (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
4458 df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
4459 df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
4460 df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
4461 df_ur_dump, df_urec_free_bb_info, df_urec_dump,
4462 df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
4463 * modulo-sched.c (sms_schedule): Added flag parameter to calls.
4464 * see.c (see_initialize_data): Ditto.
4465 * final.c (rest_of_clean_state) Added regstack_completed.
4466 * rtl.h (regstack_completed): Ditto.
4467 * reg-stack.c (regstack_completed): Ditto.
4468
8f0d6fd4 44692006-05-19 Mike Stump <mrs@apple.com>
4470
4471 * c-tree.h (default_conversion): Remove.
4472 * c-common.h (default_conversion): Add.
4473
7587869b 44742006-05-19 Zdenek Dvorak <dvorakz@suse.cz>
4475
4476 * tree-vrp.c (valid_value_p): New function.
4477 (adjust_range_with_scev): Fail if the value of bound is not
4478 simple.
4479
0848ddff 44802006-05-19 Richard Sandiford <richard@codesourcery.com>
4481
4482 * config/mips/linux-unwind.h: Include <asm/unistd.h>
4483 (mips_fallback_frame_state): Use syscall numbers to determine
4484 the appropriate li instruction for the current ABI. Only use
4485 __NR_sigreturn for o32.
4486
7d709201 44872006-05-19 Nicolas Setton <setton@adacore.com>
4488
4489 * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
4490 * langhooks.c (lhd_dwarf_name): New function.
4491 * langhooks-def.h (lhd_dwarf_name): Declare.
4492 (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
4493 * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
4494 * ada/misc.c (gnat_dwarf_name): New function.
4495 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
7bd4091f 4496
0e8499c7 44972006-05-19 Richard Sandiford <richard@codesourcery.com>
4498
4499 * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
4500 libgcc2.h.
4501 (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
4502 MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if
4503 LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
4504 * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
4505 Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
4506 determine the size of Wtype, etc.
4507 * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
4508 (swfloatfuncs): New variable.
4509 (dwfloatfuncs): Likewise.
4510 (lib2funcs): Remove floating-point conversion functions from
4511 initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine
4512 the set of conversion routines needed. Allow entries to specify
4513 an object name, filename and word size. Update users accordingly.
4514 * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
4515 * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
4516
4517 Revert:
4518
4519 2006-02-08 Roger Sayle <roger@eyesopen.com>
4520
4521 PR target/22209
4522 * config/fixtfdi.c: New libgcc source file.
4523 * config/fixunstfdi.c: New source file.
4524 * config/floatditf.c: New source file.
4525 * config/floatunditf.c: New souce file.
4526 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
4527 files above instead of config/mips/_tilib.c.
4528 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
4529
56967b5b 45302006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4531
4532 * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
4533 * pa/pa-hpux11.h (LIB_SPEC): Update comment.
4534
32d33ab2 45352006-05-18 Mike Stump <mrs@apple.com>
4536
4537 Fix up vla, vm and [*] sematics.
4538
4539 PR c/18740
4540 PR c/7948
4541 PR c/25802
7d67118d 4542 PR c/27673
32d33ab2 4543 * c-tree.h (struct c_arg_info): Add had_vla_unspec.
4544 (c_vla_unspec_p): Add.
4545 (c_vla_type_p): Add.
4546 * c-decl.c (struct c_scope): Add had_vla_unspec.
4547 (build_array_declarator): Add support for [*].
4548 (grokdeclarator): Likewise.
4549 (grokparms): Likewise.
4550 (get_parm_info): Likewise.
4551 * c-objc-common.c (c_vla_unspec_p): Likewise.
4552 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
4553 * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
4554 typeof when argument is a variably modified type not inside sizeof or alignof.
4555 (c_parser_direct_declarator_inner): Propagate errors.
4556 (c_parser_sizeof_expression): Add support for [*].
7d67118d 4557 (c_parser_parms_declarator): Initialize had_vla_unspec.
4558 (c_parser_parms_list_declarator): Likewise.
32d33ab2 4559 * c-typeck.c (c_vla_type_p): Add.
4560 (composite_type): Add support for vla compositing.
4561 (comptypes_internal): Add support for vla compatibility.
4562 (c_expr_sizeof_expr): Evaluate vla arguments.
4563 * tree.c (variably_modified_type_p): Update comment for [*].
4564
96034e28 45652006-05-18 Michael Matz <matz@suse.de>
4566
4567 PR target/27599
4568 * config.host: Make assignments to host_xmake_file cumulative.
4569 * config.host (*-darwin*): Test $host, not $target.
4570
124c0201 45712006-05-12 Stuart Hastings <stuart@apple.com>
4572
cf8cdd54 4573 * config/i386/i386.opt (-mstackrealign): New flag.
4574 * config/i386/i386.c (force_align_arg_pointer): New attribute.
124c0201 4575 (ix86_handle_cconv_attribute): Emit error when
4576 force_align_arg_pointer attribute collides with too many regparms.
4577 (ix86_function_regparm): Limit regparms when used with
4578 force_align_arg_pointer attribute. (ix86_internal_arg_pointer):
4579 Support stack-realigning prologue in non-main functions. Emit
4580 warning for nested functions under -mstackrealign, emit error for
4581 nested functions with force_align_arg_pointer attribute.
cf8cdd54 4582 * doc/extend.texi (force_align_arg_pointer): Document it.
4583 * doc/invoke.texi (-mstackrealign): Document it.
522701ef 4584
f3cc7f79 45852006-05-17 Kazu Hirata <kazu@codesourcery.com>
4586
4587 PR rtl-optimization/27477
4588 * combine.c (try_combine): Don't split a parallel consisting
4589 of two sets into two individual sets if both sets reference
4590 cc0.
4591
a492433f 45922006-05-17 H.J. Lu <hongjiu.lu@intel.com>
4593
4594 * config/arm/arm.opt (target_fpe_name): Remove VarExists.
4595 * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
4596
4597 * doc/options.texi (VarExists): Updated.
4598
68528f68 45992006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4600
4601 * unwind-dw2.c: Add declarations for uw_update_context and
4602 uw_frame_state_for.
4603 * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
4604 detected, advance frame state and context once to skip over stub.
4605
dfe210e4 46062006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
4607
4608 PR middle-end/20256
4609 PR middle-end/26435
4610 * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
4611 Call rewrite_into_loop_closed_ssa only when something changed.
4612 * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
4613 * lambda-code.c (can_convert_to_perfect_nest): Declared.
4614 (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
4615 Test for perfect_nest_p here. Fix formating.
4616 (replace_uses_equiv_to_x_with_y): Fix formating.
4617 (stmt_uses_op): Removed.
4618 (can_convert_to_perfect_nest): Removed loopivs parameter.
4619 Complete the test by checking the scalar dependences.
4620 (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
4621 Fix formating.
4622
4a62cbb1 46232005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
4624
4625 PR bootstrap/22541
4626 From Dan Kegel <dank@kegel.com>:
4627 * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
4628
6726ef59 46292006-05-17 Eric Botcazou <ebotcazou@adacore.com>
4630
4631 * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
4632 if the element type is variably modified without recursing.
4633
e0cf06e1 46342006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
4635
4636 PR middle-end/27332
522701ef 4637 * tree-loop-linear.c (try_interchange_loops): Test for
e0cf06e1 4638 no data dependences.
4639
72079d62 46402006-05-17 Zdenek Dvorak <dvorakz@suse.cz>
4641
4642 PR tree-optimization/27548
4643 * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
4644 range of ssa names that appear on abnormal edges.
4645 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
4646 * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
4647
a5b684d2 46482005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
4649
4650 PR middle-end/27620
4651 * expr.c (safe_from_p): Handle CONSTRUCTOR again.
4652
87f7c31e 46532006-05-17 Jakub Jelinek <jakub@redhat.com>
4654
4655 PR middle-end/27415
4656 * tree.h (OMP_PARALLEL_COMBINED): Define.
4657 * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
4658 (new_omp_context): Add is_combined_parallel argument.
4659 (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
4660 new_omp_context caller.
4661 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
4662 Adjust gimplify_scan_omp_clauses callers.
4663 (omp_is_private): Issue errors if iteration variable is firstprivate
4664 or reduction in the current context.
4665 * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
4666 on combined parallel workshare constructs.
4667
486ae7e7 46682006-05-16 H.J. Lu <hongjiu.lu@intel.com>
4669
4670 * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
4671 (gcc-options.o): New rule.
4672
4673 * optc-gen.awk: Protect variables for gcc-options.o with
4674 #ifdef GCC_DRIVER/#endif.
4675
6b5a5c42 46762006-05-16 Daniel Berlin <dberlin@dberlin.org>
522701ef 4677
6b5a5c42 4678 Fix PR tree-optimization/27373
4679 * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
4680 (forward_propagate_addr_expr): Update call.
4681
a91c04b7 46822006-05-16 H.J. Lu <hongjiu.lu@intel.com>
4683
4684 * doc/options.texi: Move the Negative option.
4685
4f61cce6 46862006-05-16 Richard Guenther <rguenther@suse.de>
4687
4688 PR tree-optimization/22303
4689 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
4690 from STRING_CSTs.
4691 (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
4692 ccp_fold did not simplify the statement.
4693
a1baa5f1 46942006-05-16 H.J. Lu <hongjiu.lu@intel.com>
4695
4696 PR driver/26885
4697 * Makefile.in (GCC_OBJS): New.
4698 (OBJS-common): Add opts-common.o.
4699 (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
4700 (cpp$(exeext)): Likewise.
4701 (gcc.o): Also depend on opts.h.
4702 (opts-common.o): New.
4703
4704 * common.opt (gcoff): Add Negative(gdwarf-2).
4705 (gdwarf-2): Add Negative(gstabs).
4706 (gstabs): Add Negative(gstabs+).
4707 (gstabs+): Add Negative(gvms).
4708 (gvms): Add Negative(gxcoff).
4709 (gxcoff): Add Negative(gxcoff+).
4710 (gxcoff+): Add Negative(gcoff).
4711 * config/i386/i386.opt (m32): Add Negative(m64).
4712 (m64): Add Negative(m32).
4713
4714 * doc/options.texi: Document the Negative option.
4715
4716 * gcc.c: Include "opts.h".
4717 (main): Call prune_options after expandargv.
4718
4719 * optc-gen.awk: Generate common declarations for all flag
4720 variables in options.c. Output the neg_index field.
4721
4722 * opts.c (find_opt): Moved to ...
4723 * opts-common.c: Here. New file.
4724
4725 * opts.h (cl_option): Add a neg_index field.
4726 (find_opt): New.
4727 (prune_options): Likewise.
4728
cc63cb7d 47292006-05-16 Jakub Jelinek <jakub@redhat.com>
4730
3480139d 4731 PR middle-end/27573
4732 * omp-low.c (expand_omp_parallel): Don't assert
4733 .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
4734 instead search for it.
4735
cc63cb7d 4736 PR c/27499
4737 * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
4738 is signed.
4739
f7df448c 47402006-05-16 Andreas Schwab <schwab@suse.de>
4741
4742 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
4743 defmac.
4744
f3af78f1 47452006-05-15 Roger Sayle <roger@eyesopen.com>
4746
4747 PR target/26600
4748 * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
4749 integer constants other than zero are only legitimate on TARGET_64BIT.
4750 <CONST_VECTOR> Only zero vectors are legitimate.
4751 (ix86_cannot_force_const_mem): Integral and vector constants can
4752 always be put in the constant pool.
4753
91e8ab5c 47542006-05-16 DJ Delorie <dj@redhat.com>
4755
4756 * crtstuff.c (__dso_handle): Set section from
4757 TARGET_LBIGCC_SDATA_SECTION if defined.
f7df448c 4758 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
91e8ab5c 4759 * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
4760
c0af1519 47612006-05-16 Danny Smith <dannysmith@users.sourceforge.net>
4762
96034e28 4763 PR target/27599
c0af1519 4764 * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
4765 host_xmake_file.
4766
0055dbde 47672006-05-16 Ben Elliston <bje@au.ibm.com>
4768
4769 * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
4770
0085bb71 47712006-05-15 Per Bothner <per@bothner.com>
4772
c4f77c27 4773 * tree.c: (last_annotated_node): Use source_locus typedef.
0085bb71 4774 This permits bootstrapping with --enable-mapped-location.
4775
2920559d 47762006-05-15 Zdenek Dvorak <dvorakz@suse.cz>
4777
4778 PR tree-optimization/26830
4779 * tree-into-ssa.c (struct ssa_name_info): Add age field.
4780 (info_for_ssa_name, current_info_for_ssa_name_age,
4781 blocks_to_update): New variables.
4782 (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
4783 (clear_ssa_name_info, initialize_flags_in_bb,
4784 mark_block_for_update): New functions.
4785 (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
4786 (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
4787 prepare_def_site_for): Use mark_block_for_update.
4788 (mark_def_interesting): Assert that the processed block is marked in
4789 blocks_to_update. Do not take blocks argument.
4790 (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
4791 argument.
4792 (rewrite_update_init_block, rewrite_update_stmt): Only process
4793 blocks with statements to rewrite.
4794 (delete_update_ssa): Do not clear SSA_NAME_AUX.
4795 (update_ssa): Initialize and free blocks_to_update. Do not
4796 clear flags on statements. Do not use blocks bitmap.
4797 * tree.h (SSA_NAME_AUX): Removed.
4798 (struct tree_ssa_name): Removed aux field.
4799 * print-tree.c (print_node): Do not print SSA_NAME_AUX.
4800
d4eedd54 48012006-05-15 Richard Guenther <rguenther@suse.de>
4802
4803 PR tree-optimization/27603
4804 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
4805 Do computations in original type.
4806
8a667709 48072006-05-15 Mircea Namolaru <namolaru@il.ibm.com>
4808
c6b897fe 4809 * see.c: Code style changes such as redundant paranthesis,
4810 redundant intialization of local variables etc.
4811 (see_main): Declared now as static.
4812 * doc/invoke.texi: Update that -fsee is not enabled by
4813 default at -O3.
8a667709 4814
9438af57 48152006-05-15 Jakub Jelinek <jakub@redhat.com>
4816
c1d127dd 4817 * omp-low.c (check_omp_nesting_restrictions): New function.
4818 (scan_omp_1): Call it.
4819
9438af57 4820 PR middle-end/27416
4821 * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
4822 construct, return *VAR.
4823
bc26d495 48242006-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
4825
4826 PR rtl-optimization/27406
4827 * bt-load.c (migrate_btr_def): Skip the block having abnormal
4828 edges.
4829
dcfc98c1 48302006-05-14 Roger Sayle <roger@eyesopen.com>
4831
4832 PR rtl-optimization/27538
4833 * combine.c (expand_compound_operation): Call gen_lowpart
4834 before calling simplify_shift_const.
4835
f31d1dc3 48362006-05-14 Roger Sayle <roger@eyesopen.com>
4837
4838 PR rtl-optimization/22563
4839 * expmed.c (store_fixed_bit_field): When using AND and IOR to store
4840 a fixed width bitfield, always force the intermediates into psuedos.
4841
6cd86b1d 48422006-05-14 Bernhard Fischer <aldot@gcc.gnu.org>
4843
4844 PR 27501
4845 * mkconfig.sh: Use operator = instead of == for test.
4846
f52ddb74 48472006-05-13 Nick Clifton <nickc@redhat.com>
4848
4849 * dwarf2out.c (dbx_reg_number): Check return value from
4850 LEAF_REG_REMAP and only use it if it is valid.
4851 (multiple_reg_loc_descriptor): Likewise.
4852
071ed2eb 48532006-05-13 Richard Guenther <rguenther@suse.de>
4854
4855 * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
4856 host_xmake_file.
4857
6151bbc3 48582006-05-13 Steven Bosscher <stevenb.gcc@gmail.com>
4859
4860 * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
4861 information attached to non-INSNs such as NOTEs.
4862 (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
4863
d5608dc4 48642006-05-12 Andreas Krebbel <krebbel1@de.ibm.com>
4865
4866 * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
4867 On contraint.
4868 * config/s390/s390.md: Adjust comment describing On constraint.
4869
bba7ddf8 48702006-05-11 Jan Hubicka <jh@suse.cz>
4871
4872 * cgraphunit.c (decide_is_function_needed): Don't force always_inline
4873 to be output at -O0.
4874
0bec3023 48752006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4876
4a698d62 4877 PR middle-end/27384
4878 * fold-const.c (size_binop): Move sanity check for arguments to
4879 the beginning of the function.
4880
0bec3023 4881 PR middle-end/27488
4882 * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
4883 expression.
4884
219dad96 48852006-05-11 Richard Guenther <rguenther@suse.de>
4886
4887 PR middle-end/27529
4888 * fold-const.c (fold_unary): Handle intermediate conversion
4889 to a pointer type like intermediate conversion to an integer
4890 type in folding of (T1)(T2)var to var.
4891 Match the code to the comment in the final conversion for
4892 (T1)(T2)var to (T1)var regarding to type precision. Rather
4893 than disallow T1 being of pointer type, assert that both T1
4894 and var are of pointer type or not. Make sure not to fall
4895 over the frontends lazyness wrt array to pointer decay though.
4896
f2be8f2b 48972006-05-10 Richard Earnshaw <rearnsha@arm.com>
4898
4899 * arm.c (arm_struct_value_rtx): Delete.
4900 (TARGET_STRUCT_VALUE_RTX): Use the default definition.
4901 (arm_init_cumulative_args): Always initialize nregs to zero.
4902
19256cce 49032006-05-10 Richard Guenther <rguenther@suse.de>
4904
4905 PR tree-optimization/27532
4906 * tree-object-size.c (plus_expr_object_size): Fix typo.
4907
a854b0c3 49082006-05-10 Kazu Hirata <kazu@codesourcery.com>
4909
4910 PR target/24949
4911 * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
4912 ashrdi_const, ashrdi3): Use a scratch register.
4913
ffb99bfe 49142006-05-10 Richard Guenther <rguenther@suse.de>
4915
4916 PR tree-optimization/27302
4917 * fold-const.c (operand_equal_p): For two comparisons,
4918 try comparison of one comparison code swapped if that yields
4919 the same code.
4920
503c6e8e 49212006-05-10 Ben Elliston <bje@au.ibm.com>
4922
32a9fcf7 4923 * tree-pretty-print.c (pretty_print_string): No need to handle
4924 '\0' as a special character.
4925
503c6e8e 4926 * tree.h: Include "hashtab.h".
4927 (iterative_hash_expr): Use hashval_t in its prototype.
4928 * Makefile.in (TREE_H): Add $(HASHTAB_H).
4929
8ad01423 49302006-05-09 Steve Ellcey <sje@cup.hp.com>
4931
4932 PR bootstrap/26872
4933 * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
4934 (hppa*64*-*-hpux11*): Ditto.
4935 (hppa[12]*-*-hpux11*): Ditto.
4936
92a6eba6 49372006-05-09 David Edelsohn <edelsohn@gnu.org>
4938
4939 PR target/26545
4940 * config/rs6000/aix41.h (TARGET_64BIT): Define.
4941
4009b53f 49422006-05-09 Michael Matz <matz@suse.de>
4943
4944 * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
4945 host_extra_gcc_objs and host_xmake_file.
4946 (<*-*-linux*>): Don't overwrite host_xmake_file.
4947 * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
4948 * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
4949 (host_detect_local_cpu): Declare.
4950 (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
4951 * config/i386/i386.c (override_options): Handle -mtune=native
4952 as -mtune=generic.
4953 * config/i386/x-i386: New file.
4954 * config/i386/driver-i386.c: New file.
4955 * doc/invoke.texi (<i386 and x86-64 Options>): Describe
4956 cpu-type "native".
4957
b3acd74f 49582006-05-09 Dirk Mueller <dmueller@suse.de>
4959 Richard Guenther <rguenther@suse.de>
4960
4961 PR middle-end/27498
4962 * fold-const.c (fold_read_from_constant_string): Relax check
4963 for matching types to matching modes.
4964
34e61d77 49652006-05-09 Zdenek Dvorak <dvorakz@suse.cz>
4966
4967 PR rtl-optimization/27335
4968 * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
4969 loops.
4970
1ad3c870 49712006-05-08 Chao-ying Fu <fu@mips.com>
4972 Richard Sandiford <richard@codesourcery.com>
4973
4974 * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
4975 (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
4976 * config/mips/mips.md (UNSPEC_SCC): New constant.
4977 * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
4978 * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
4979 (mips_emit_compare): Use it.
4980 (mips_expand_vcondv2sf): New function.
4981
54bbda3c 49822006-05-08 Daniel Berlin <dberlin@dberlin.org>
4983
4984 Fix PR tree-optimization/27093
522701ef 4985 * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
54bbda3c 4986 renaming when they become not-used_alone.
4987
66ac1457 49882006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4989
4990 * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
4991 relocation and relocation stubs.
4992
522ae219 49932006-05-08 Eric Christopher <echristo@apple.com>
4994
4995 * unwind-dw2-fde-darwin.c (examine_objects): Only check data
4996 section for ppc.
4997
8baa9d15 49982006-05-08 Jan Hubicka <jh@suse.cz>
4999
95da6220 5000 PR middle-end/24561
8baa9d15 5001 * cgraphunit.c (decide_is_function_needed): When not optimizing even
5002 unused static functions are needed.
5003
9f1a815a 50042006-05-08 Roger Sayle <roger@eyesopen.com>
5005
5006 PR target/27158
5007 * reload.c (find_reloads_toplev): Only return the simplified SUBREG
5008 of a reg_equiv_constant if the result is a legitimate constant.
5009
77670c1d 50102006-05-08 Uros Bizjak <uros@kss-loka.si>
5011
5012 PR target/27277
5013 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
5014 standard 80387 constants, raise the cost to prevent
5015 compress_float_constant() to generate load from memory.
5016
bbd98f7d 50172006-05-08 Kazu Hirata <kazu@codesourcery.com>
5018
5019 * config/arm/constraints.md (c): Fix a typo.
5020
9fdf9cf6 5021 * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
5022 typos.
5023
106eecb3 50242006-05-07 H.J. Lu <hongjiu.lu@intel.com>
5025
5026 PR target/24879
5027 * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
5028 inline function.
5029 (_mm_mwait): Likewise.
5030
5031 * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
5032 "mwait".
5033 (sse3_monitor): Make it 32bit only.
5034 (sse3_monitor64): New. 64bit monitor.
5035
adfbdef1 50362006-05-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5037
5038 PR target/27421
5039 * config/i386/i386.c (classify_argument): Skip fields with invalid
5040 types.
5041
1b2f34a9 50422006-05-07 Richard Guenther <rguenther@suse.de>
5043
5044 PR tree-optimization/27409
5045 * tree-ssa-structalias.c (get_constraint_for_component_ref):
5046 Do not try to find zero-sized subvars.
5047
f8540d49 50482006-05-07 Richard Guenther <rguenther@suse.de>
5049
5050 PR tree-optimization/27136
5051 * tree-ssa-loop-niter.c (get_val_for): Correct function
5052 comment, assert requirements.
5053 (loop_niter_by_eval): Stop processing if the iterated
5054 value did not simplify.
5055
b4a7fde1 50562006-05-07 Mircea Namolaru <namolaru@il.ibm.com>
5057
522701ef 5058 * opts.c (flag_see): remove its setting at -O3.
522ae219 5059
234f6557 50602006-05-07 Richard Earnshaw <rearnsha@arm.com>
5061
5062 * genpeep.c (main): Make insn-peep.c depend on flags.h.
5063 * arm/constraints.md: New file.
5064 * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
5065 (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
5066 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
5067 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
5068 (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
5069 (EXTRA_MEMORY_CONSTRAINT): Likewise.
5070 * arm.md: Include constraints.md.
5071 (thumb_movsi_insn): Use satisfies_constraint_J.
5072 (movhi, movqi): Use satisfies_constraint_I.
5073
351f885c 50742006-04-29 Anatoly Sokolov <aesok@post.ru>
5075
522701ef 5076 * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
351f885c 5077 for atmeg a645 device.
5078
94a3ff13 50792006-05-06 Richard Guenther <rguenther@suse.de>
5080
5081 PR tree-optimization/27151
5082 * tree-vect-transform.c (vectorizable_condition): Punt on
5083 values that have a different type than the condition.
5084
35df6eb4 50852006-05-03 Aldy Hernandez <aldyh@redhat.com>
5086
5087 PR/21391
5088 * c-parser.c (c_parser_cast_expression): Only insert casts into
5089 hash table if pointer.
5090 * function.c (used_types_insert_helper): Rename from
5091 used_types_insert.
5092 (used_types_insert): Call used_types_insert_helper.
5093 * function.h (used_types_insert): Accept only one argument.
5094
913b293a 50952006-05-05 David Edelsohn <edesohn@gnu.org>
5096
5097 * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
5098 scratch with output modifier.
5099
fe26ce8c 51002006-05-04 David Edelsohn <edelsohn@gnu.org>
5101
5102 PR target/26481
5103 * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
5104 with output modifier.
5105
87bc559b 51062006-05-04 Richard Sandiford <richard@codesourcery.com>
5107
5108 PR target/26765
5109 * config/mips/mips.c (mips_symbolic_address_p): Return true
5110 for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
5111 SYMBOL_GOTTPREL, and SYMBOL_TLS.
5112
cbc74ef3 51132006-05-04 Richard Guenther <rguenther@suse.de>
5114
5115 PR tree-optimization/14287
5116 PR tree-optimization/14844
5117 PR tree-optimization/19792
5118 PR tree-optimization/21608
5119 PR tree-optimization/27090
5120 * tree-ssa-pre.c (try_combine_conversion): New function.
5121 (compute_avail): After constructing the value-handle
5122 expression, use try_combine_conversion to combine NOP_EXPRs
5123 with previous value-handle expressions and use the result if it
5124 is available.
5125
ad8a2416 51262006-05-04 Joseph S. Myers <joseph@codesourcery.com>
5127
5128 * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
5129
0f6439b9 51302006-05-04 Jan Hubicka <jh@suse.cz>
5131
5132 PR middle-end/25962
5133 * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
5134
ae2e62d2 51352006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
5136
5137 * config/bfin/predicates.md (const01_rtx): Tell generator programs
5138 that this only matches CONST_INTs. All users changed to VOIDmode
5139 operands.
5140
f9edc33d 5141 * config/bfin/bfin.c: Include "optabs.h".
5142 (bfin_rtx_costs): Some costs for vector operations, to allow combine
5143 to do more work.
5144 (enum bfin_builtins): Add a number of fractional and vector builtins.
5145 (bfin_init_builtins): Likewise.
5146 (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
5147 (safe_vector_operand, bfin_expand_binop_builtin,
5148 bfin_expand_unop_builtin): New functions.
5149 (bfin_expand_builtin): Handle the new builtins.
5150 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
5151 __ADSPBLACKFIN__.
5152
2b74c150 51532006-05-04 Leehod Baruch <leehod@il.ibm.com>
5154
522701ef 5155 * see.c: New file.
5156 * Makefile.in (OBJS-common): Add see.o.
5157 (see.o): Add dependencies.
5158 * common.opt (fsee): New flag for the see optimization was added.
5159 * opts.c (flag_see): Initialized.
5160 * passes.c (init_optimization_passes, pass_see): New pass.
5161 * rtl.h (see_main): Declaration as extern.
5162 * timevar.def (TV_SEE): New.
5163 * tree-pass.h (pass_see): Declaration as extern.
5164 * invoke.texi (-fsee): Document.
5165 * recog.c (validate_simplify_insn): New function.
5166 * recog.h (validate_simplify_insn): Declaration as extern.
5167 * df-problems.c (df_chain_dump): Check for NULL.
2b74c150 5168
51692006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
522701ef 5170 Daniel Berlin <dberlin@dberlin.org>
2b74c150 5171
522701ef 5172 * cfgrtl.c (insert_insn_bb_end_new): New function.
5173 * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
2b74c150 5174
51752006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
5176
522701ef 5177 * df.h (struct web_entry): Moved from web.c.
5178 (union_defs): Declaration as extern.
5179 (unionfind_root): Likewise.
5180 (unionfind_union): Likewise.
5181 * web.c (struct web_entry): Moved to df.h.
5182 (unionfind_root): Remove static declaration.
5183 (unionfind_union): Likewise.
5184 (union_defs): Likewise and generalize to use callback function.
5185 (web_main): Update arguments for union_defs function call.
2b74c150 5186
696243a6 51872006-05-04 Richard Guenther <rguenther@suse.de>
5188
5189 PR tree-optimization/26447
5190 * tree-ssa-pre.c (realify_fake_stores): For necessary loads
5191 produce SSA_NAME copies before the store stmt to avoid
5192 breaking exception handling.
5193
013a7f55 51942006-05-04 Jakub Jelinek <jakub@redhat.com>
5195
5196 PR middle-end/27388
5197 * gimplify.c (omp_is_private): If var is shared in some outer context,
5198 return false instead of true. Stop searching on parallel context
5199 boundary.
5200
58158e5b 52012006-05-03 Alexandre Oliva <aoliva@redhat.com>
5202
5203 PR java/8260
5204 * coverage.c: Use get_gcov_unsigned_t() instead of
5205 unsigned_type_node all over.
5206
66c8f3a9 52072006-05-02 Andrew MacLeod <amacleod@redhat.com>
5208
5209 PR tree-optimization/27381
522ae219 5210 * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
66c8f3a9 5211 maintain the same immediate_use links.
522ae219 5212 * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
66c8f3a9 5213 node rather than segfaulting.
5214
0f9d10d4 52152006-05-03 Jakub Jelinek <jakub@redhat.com>
5216
5217 PR fortran/27395
5218 * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
5219 rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN
5220 bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
5221
4bef19cc 52222006-05-02 Daniel Berlin <dberlin@dberlin.org>
5223
5224 Fix PR tree-optimization/26626
5225 * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
5226 always.
5227 * tree-ssa-operands.c (access_can_touch_variable): Allow
5228 typecasting through union pointers.
5229
f49d7bb5 52302006-05-02 Jakub Jelinek <jakub@redhat.com>
5231
5232 PR c++/26943
5233 * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
5234 (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
5235 to find if var will be a global variable even in the nested context.
5236 (omp_copy_decl): Only check for global variable at the end, it might
5237 be overridden in outer contexts.
5238 (scan_sharing_clauses): For global variables don't create a field.
5239 (lower_rec_input_clauses): Do nothing for global shared variables.
5240 Emit a barrier at the end of ILIST if there were any decls in both
5241 firstprivate and lastprivate clauses.
5242 (lower_send_clauses): Do nothing for global variables except for
5243 COPYIN.
5244
d067645d 52452006-05-02 Zdenek Dvorak <dvorakz@suse.cz>
5246
5247 * tree.c (unsigned_type_for, signed_type_for): Make sure a type
5248 of the correct signedness is returned.
5249
9d8b8bc4 52502006-05-02 Jeff Law <law@redhat.com>
5251
5252 PR tree-optimization/27364
5253 * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
5254 multiply expressions.
5255
260a47ec 52562006-05-02 Tom Tromey <tromey@redhat.com>
5257
5258 * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
5259
ca1ede88 52602006-05-02 Kazu Hirata <kazu@codesourcery.com>
5261
5262 PR target/27387
5263 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
5264 -mthumb -fPIC are used.
5265
a240bf01 52662006-05-02 Stanislaw Skowronek <skylark@linux-mips.org>
5267 Joshua Kinard <kumba@gentoo.org>
12e8f34d 5268
5269 PR target/25871
cf8cdd54 5270 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
12e8f34d 5271 with 64-bit pointers.
5272
8f2b909a 52732006-05-02 Paul Brook <paul@codesourcery.com>
5274
5275 * config/arm/arm.c (add_minipool_forward_ref): Check if insn
5276 and pool overlap.
5277 (create_fix_barrier): Check that a suitable barrier location is
5278 found.
5279 (arm_reorg): Include ftmp->address in allowable range of addresses.
5280
46614828 52812006-05-02 David Billinghurst <David.Billinghurst@riotinto.com>
5282
5283 PR ada/27366
522ae219 5284 * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
8f2b909a 5285 on Cygwin.
46614828 5286
b70b62cf 52872006-05-02 Jakub Jelinek <jakub@redhat.com>
5288
df2c34fc 5289 PR middle-end/27337
5290 * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
5291 around RESULT_DECL for result passed by reference.
5292 (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
5293 * omp-low.c (use_pointer_for_field): Don't look at
5294 DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
5295 (scan_omp_1): Call remap_decl on RESULT_DECLs.
5296 (lower_rec_input_clauses): Don't allocate VLA memory for the second
5297 time or var for passing by reference for
5298 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of
5299 TREE_ADDRESSABLE variables when passing by reference.
5300
5301 * omp-low.c (dump_omp_region): Fix output formatting.
5302
5056ba1a 5303 PR middle-end/27328
5304 * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
5305 (expand_omp_parallel): Likewise.
5306 * tree-cfg.c (move_sese_region_to_fn): Likewise.
5307
aade31a0 5308 PR middle-end/27325
5309 * omp-low.c (lower_omp_sections): Call maybe_catch_exception
5310 on statement list containing also constructors and destructors.
5311 (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
5312
b70b62cf 5313 PR middle-end/27310
5314 * except.c (duplicate_eh_regions): Fix clearing of
5315 cfun->eh->region_array entries.
5316
13648950 53172006-05-01 DJ Delorie <dj@redhat.com>
5318
5319 * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
5320 build!=host.
5321 (gcc_cv_objdump): Likewise.
5322 * configure: Regenerated.
5323
12646d64 53242006-05-01 Kazu Hirata <kazu@codesourcery.com>
5325
5326 PR target/27374
5327 * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
5328 templates for case 3 and 4.
5329
c169e46c 53302006-05-01 DJ Delorie <dj@redhat.com>
5331
5332 * vec.c: Include bconfig.h when appropriate.
5333 * Makefile.in (build/vec.o): Adjust dependencies.
5334 * mkconfig.sh: Make sure config.h isn't used for build machine
5335 compiles.
5336
70630fcd 53372006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
5338
5339 * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
5340 variables.
5341 (mark_phi_for_rewrite): New function.
5342 (insert_phi_nodes_for, mark_use_interesting): Call
5343 mark_phi_for_rewrite.
5344 (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
5345 (update_ssa): Initialize and free phis_to_rewrite.
5346
a4c7895e 53472006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
5348
5349 PR rtl-optimization/27291
5350 * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
5351 folded to a constant.
5352
dcd24d3c 53532006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
5354
5355 PR tree-optimization/27283
5356 * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
5357 not whole # of iteration descriptions.
5358 (niter_for_exit): Return just # of iterations. Fail if # of iterations
5359 uses abnormal ssa name.
5360 (niter_for_single_dom_exit): Ditto.
5361 (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
5362 return just the number of iterations.
5363
d1baf6ca 53642006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
5365
5366 PR tree-optimization/27144
5367 * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
5368 (record_estimate): Only record constant upper bound.
5369 (infer_loop_bounds_from_undefined): Call
5370 compute_estimated_nb_iterations just once.
5371 (proved_non_wrapping_p): Renamed to ...
5372 (n_of_executions_at_most): ... this. Expect bound to be a constant.
5373 (convert_step_widening, scev_probably_wraps_p): Call
5374 n_of_executions_at_most instead of proved_non_wrapping_p.
5375 (substitute_in_loop_info): Do not replace values in bounds.
5376 * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update
5377 comments.
5378
adcd0e5f 53792006-05-01 Richard Henderson <rth@redhat.com>
5380
5381 PR c/27358
5382 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
5383 c_parser_skip_to_pragma_eol. Convert to switch statement. Handle
5384 CPP_PRAGMA.
5385
ceda77d2 53862006-05-01 Roger Sayle <roger@eyesopen.com>
5387
5388 * c-typeck.c (parser_build_binary_op): Don't call the function
5389 unsigned_conversion_warning to spot operand/result type overflow.
5390 (build_binary_op): Instead, call convert_and_check instead of
5391 convert to report the problem when the operands are promoted.
5392 * c-common.c (unsigned_conversion_warning): Make static.
5393 * c-common.h (unsigned_conversion_warning): Delete prototype.
5394
d3d02a88 53952006-05-01 Richard Guenther <rguenther@suse.de>
5396
5397 PR tree-optimization/26726
5398 * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
5399 problem ...
5400 (find_interesting_uses_address): ... we work around here
5401 by folding INDIRECT_REFs in the substituted base.
5402
0f9b0545 54032006-05-01 Diego Novillo <dnovillo@redhat.com>
5404
5405 * omp-low.c (dump_omp_region): Add newlines.
5406
55972f40 54072006-04-30 Roger Sayle <roger@eyesopen.com>
5408
5409 * common.opt (Woverflow): New command line option.
5410 * c-common.c (constant_expression_warning): Check warn_overflow.
5411 (overflow_waring): Pass OPT_Woverflow to warning.
5412 (unsigned_conversion_warning): Likewise.
5413 (convert_and_check): Likewise.
5414 * doc/invoke.texi: Document new command line option.
5415
2c7082e3 54162006-04-30 David Edelsohn <edelsohn@gnu.org>
5417
5418 * config/rs6000/rs6000.c (rs6000_override_options): Enable
5419 TARGET_NO_FP_IN_TOC for section anchors.
5420 (optimization_options): Enable section anchors for all
5421 non-"Objective" languages.
5422
f720b7c6 54232006-04-28 Eric Christopher <echristo@apple.com>
5424
5425 * config/darwin-c.c (darwin_ms_struct): Move this
5426 (darwin_set_default_type_attributes): and this...
5427 * config/darwin.c: ... here.
5428 * config/darwin.h (darwin_ms_struct): Declare.
5429
76e6653a 54302006-04-28 Andrew MacLeod <amacleod@redhat.com>
5431
5432 * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
5433
4aeeff51 54342006-04-28 Roger Sayle <roger@eyesopen.com>
5435
5436 PR c/25309
5437 * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
5438 (push_array_bounds): Delete prototype. Change BOUNDS argument to
5439 an unsigned HOST_WIDE_INT.
5440 (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
5441 array index.
5442 (really_start_incremental_init): No need to call convert because
5443 bitsize_zero_node is already of type bitsizetype.
5444 (push_init_level): Extract the value of constructor_index as an
5445 unsigned HOST_WIDE_INT quantity, using tree_low_cst.
5446 (process_init_element): Likewise.
5447
01b26439 54482006-04-28 Joseph S. Myers <joseph@codesourcery.com>
5449
5450 * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
5451 value before passing to make_relative_prefix.
5452
1007f554 54532006-04-28 Alan Modra <amodra@bigpond.net.au>
5454
5455 PR middle-end/27260
5456 * builtins.c (expand_builtin_memset): Expand val in original mode.
5457
f5c68723 54582006-04-27 Eric Christopher <echristo@apple.com>
5459
5460 * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
5461 with #ifndef/#endif.
5462 * config/darwin-c.c (darwin_ms_struct): New.
5463 (darwin_pragma_ms_struct): Ditto.
5464 (darwin_set_default_type_attributes): Ditto.
5465 * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
5466 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
5467 Register ms_struct pragma.
5468 * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
5469 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
5470 * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
5471 darwin_set_default_type_attributes if TARGET_MACHO.
5472
09aca5bc 54732006-04-27 Andrew MacLeod <amacleod@redhat.com>
5474
5475 PR tree-optimization/26854
5476 * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
5477 * doc/tree-ssa.texi: Update immuse iterator documentation.
5478 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
5479 * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
5480 * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
5481 first_safe_imm_use, next_safe_imm_use): Remove.
5482 (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal.
5483 (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal.
5484 (move_use_after_head): New. Helper function to sort immuses in a stmt.
5485 (link_use_stmts_after): New. Link all immuses in a stmt consescutively.
5486 (first_imm_use_stmt): New. Get first stmt in an immuse list.
5487 (next_imm_use_stmt): New. Get next stmt in an immuse list.
5488 (first_imm_use_on_stmt): New. Get first immuse on a stmt.
5489 (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt.
5490 (next_imm_use_on_stmt): New. Move to next immuse on a stmt.
5491 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
5492 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
5493 (perfect_nestify): Use new iterator.
f5c68723 5494 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
09aca5bc 5495 iterator.
5496 * tree-flow.h (struct immediate_use_iterator_d): Add comments.
5497 (next_imm_name): New field in struct immediate_use_iterator_d.
5498 (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
f5c68723 5499 (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
09aca5bc 5500 FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
5501 * tree-cfg.c (replace_uses_by): Use new iterator.
5502 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
5503 * tree-ssa-operands.c (correct_use_link): Remove.
5504 (finalize_ssa_use_ops): No longer call correct_use_link.
5505
742f0f02 55062006-04-27 Stuart Hastings <stuart@apple.com>
5507
5508 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
5509 * config/t-darwin (crt3.o): Use it.
5510 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
5511 'pmode', use Pmode instead of SImode for SYMBOL_REF.
5512 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
5513 call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
5514 call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
5515 support.
f5c68723 5516
17af021d 55172006-04-27 Roger Sayle <roger@eyesopen.com>
5518
5519 * expmed.c (store_fixed_bit_field): If we're not optimizing for
5520 size, force the intermediate into a new pseudo rather instead of
5521 performing both a bitwise AND and a bitwise IOR in memory.
5522
0ed224e1 55232006-04-27 Richard Guenther <rguenther@suse.de>
5524
5525 PR rtl-optimization/26685
5526 * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
5527 this one "max-flow-memory-locations".
5528
82086091 55292006-04-27 Richard Guenther <rguenther@suse.de>
5530
5531 PR tree-optimization/25148
5532 * tree-vrp.c (compare_values): Remove code dealing with
5533 comparisons against type min/max value. Honour overflow
5534 and negative constants in code dealing with comparisons
5535 of plus and minus expressions.
5536 (value_inside_range): Use fold_binary with LE_EXPR and
5537 GE_EXPR rather than compare_values.
5538
aaaa94f9 55392006-04-27 Dirk Mueller <dmueller@suse.de>
5540
5541 * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
5542 prototype for SSE.
5543
7d58d5ef 55442006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com>
5545
5546 * basic-block.h (safe_insert_insn_on_edge): Removed.
5547 * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
5548
91bc4142 55492006-04-26 David Edelsohn <edelsohn@gnu.org>
5550 Paolo Bonzini <bonzini@gnu.org>
5551
5552 PR middle-end/27282
5553 * combine.c (simplify_and_const_int_1): Use gen_int_mode.
5554 (simplify_and_const_int): Same.
5555
e5af536b 55562006-04-26 Aldy Hernandez <aldyh@redhat.com>
5557
522701ef 5558 * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
e5af536b 5559
f77459c5 55602006-04-26 Jakub Jelinek <jakub@redhat.com>
5561
d91321f0 5562 PR c/26171
5563 * cgraph.c (cgraph_varpool_finalize_decl): Don't call
5564 cgraph_varpool_assemble_pending_decls if -fopenmp, unless
5565 cgraph_global_info_ready.
5566
5f3cc051 5567 PR middle-end/26913
5568 * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
5569
1c59d5a8 5570 PR c/25996
5571 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
5572 either decl or init is error_mark_node.
5573
f77459c5 5574 PR middle-end/25989
5575 * tree-flow.h (struct omp_region): Add sched_kind.
5576 * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
5577 instead of extracting omp for data.
5578 (expand_omp_for): Save extracted sched_kind.
5579
e051aa14 55802006-04-25 Roger Sayle <roger@eyesopen.com>
5581
5582 * expmed.c (store_bit_field): Also check whether the bitsize is
5583 valid for the machine's "insv" instruction before moving the
5584 target into a pseudo for use with the insv.
5585 * config/i386/predicates.md (const8_operand): New predicate.
5586 * config/i386/i386.md (extv, extzv, insv): Use the new
5587 const8_operand predicate where appropriate.
5588
964f666a 55892006-04-25 DJ Delorie <dj@redhat.com>
5590
5591 * doc/install.texi (Specific): Clarify that this is not a list of
5592 supported hosts or targets.
5593
342baf8c 55942006-04-25 Richard Sandiford <richard@codesourcery.com>
5595
5596 PR rtl-optimization/26725
5597 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
5598 block's BB_DIRTY flag.
5599
08365969 56002006-04-25 Geoffrey Keating <geoffk@apple.com>
5601
2fa2456e 5602 * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
5603 are no branches.
5604
08365969 5605 * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
5606 to print an integer.
5607
d5a2a489 56082006-04-25 David Edelsohn <edelsohn@gnu.org>
5609
5610 * varasm.c (align_variable): New function.
5611 (get_block_for_decl): Apply align_variable to DECL before
5612 calculating section information.
5613 (assemble_variable): Split out alignment computation.
5614
217d3a24 56152006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
5616
5617 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
5618 machines.
5619
0bdbecff 56202006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
5621
5622 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
5623 MODE_PARTIAL_INT mode.
5624 * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
5625 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
5626 for CONST_INTs.
5627 (hard_regno_mode_ok): V2PDImode is ok for accumulators.
5628 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
5629 V2PDImode.
5630 * config/bfin/predicates.md (const01_operand, vec_shift_operand):
5631 New predicates.
5632 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
5633 New constants.
5634 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
5635 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
5636 MACFLAG_IH): Likewise.
5637 (movstricthi_1): Renamed from "*movstricthi".
5638 (load_accumulator, load_accumulator_pair, movsi_insv, insv,
5639 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
5640 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
5641 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
5642 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
5643 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
5644 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
5645 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
5646 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
5647 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
5648 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
5649 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
5650 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
5651 flag_macv2hi_parts, flag_macv2hi_parts_acconly,
5652 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
5653
280f1f24 5654 * doc/rtl.texi (ss_ashift): Improve wording.
5655
cd04bce0 56562006-04-24 Geoffrey Keating <geoffk@apple.com>
5657
5658 * dwarf2out.c (verify_marks_clear): New.
5659 (prune_unused_types): Call verify_marks_clear initially, not
5660 prune_unmark_dies.
5661
719ee5e5 56622006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5663
5664 * rtl.def (SS_ASHIFT, SS_NEG): New codes.
5665 * doc/rtl.texi: Document them.
5666 * simplify-rtx.c (simplify_unary_operation,
5667 simplify_binary_operation_1): Don't abort when we see them.
5668
2e7c8216 56692006-04-24 Mark Mitchell <mark@codesourcery.com>
5670
5671 Revert:
5672 2006-04-23 Mark Mitchell <mark@codesourcery.com>
5673 * configure.ac: Completely disregard languages that are not
5674 enabled.
5675 * configure: Regenerated.
5676
e4a492cd 56772006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
5678 Richard Guenther <rguenther@suse.de>
5679
5680 PR tree-optimization/27236
5681 * tree-inline.c (copy_body_r): Make sure to copy
5682 TREE_THIS_VOLATILE flag.
5683
f3640b8a 56842006-04-24 Richard Guenther <rguenther@suse.de>
5685
5686 PR middle-end/26869
5687 * tree-complex.c (update_parameter_components): Don't handle
5688 unused parameters which have no default def.
5689
1ab8c36e 56902006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
5691 Richard Guenther <rguenther@suse.de>
5692
5693 PR tree-optimization/27218
5694 * tree-inline.c (expand_call_inline): Strip useless type
5695 conversions for the return slot address.
5696
677144a0 56972006-04-24 Richard Guenther <rguenther@suse.de>
5698
5699 * cfgloop.h (struct loops): Remove unused field array. Reorder
5700 state after num.
5701 (LOOP_PREFETCH): Remove.
5702
7d075fc4 57032006-04-24 Richard Guenther <rguenther@suse.de>
5704
5705 PR tree-optimization/22525
5706 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
5707 variable, adjust types of generated expressions.
5708
8de62358 57092006-04-23 H.J. Lu <hongjiu.lu@intel.com>
5710
5711 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
5712 (tree-vect-patterns.o): Likewise.
5713 (jump.o): Likewise.
5714 (cselib.o): Likewise.
5715 (loop-doloop.o): Likewise.
5716 (regclass.o): Likewise.
5717 (reload1.o): Likewise.
5718 (explow.o): Replace target.h with $(TARGET_H).
5719 (ipa-prop.o): Likewise.
5720 (ipa-cp.o): Likewise.
5721 (ipa-inline.o): Likewise.
5722 (reorg.o): Likewise.
5723 (reg-stack.o): Likewise.
5724
431abd88 57252006-04-23 Eric Botcazou <ebotcazou@adacore.com>
5726
5727 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
5728
c0e47fd4 57292006-04-23 Mark Mitchell <mark@codesourcery.com>
5730
2e7c8216 5731 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
5732
5733 * configure.ac: Completely disregard languages that are not
5734 enabled.
5735 * configure: Regenerated.
5736
c0e47fd4 5737 PR c++/26534
5738 * c-common.h (c_build_bitfield_integer_type): Declare.
5739 * c-decl.c (c_build_bitfield_integer_type): Move to ...
5740 * c-common.c (c_build_bitfield_integer_type): ... here.
5741
aeaccda9 57422006-04-23 Roger Sayle <roger@eyesopen.com>
5743
5744 PR target/21283
5745 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
5746 a SImode SUBREG of a floating point register after no_new_pseudos.
5747
e9daf218 57482006-04-23 Roger Sayle <roger@eyesopen.com>
5749
5750 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
5751 identify potentially eliminable registers to additionally catch
5752 VIRTUAL_INCOMING_ARGS_REGNUM.
5753 (addsi3): Update the conditions on when to use addsi_small_int.
5754
3688a7ee 57552006-04-23 Roger Sayle <roger@eyesopen.com>
5756
5757 PR target/16641
5758 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
5759 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
5760 rtx to stack_pointer_rtx or frame_pointer_rtx directly.
5761
20efd591 57622006-04-23 Eric Botcazou <ebotcazou@adacore.com>
5763
5764 * fold-const.c (range_predecessor): Use operand_equal_p
5765 as the predicate for equality.
5766 (range_successor): Likewise.
5767
07499df0 57682006-04-22 Kazu Hirata <kazu@codesourcery.com>
5769
5770 Revert:
5771 * config/soft-fp/op-common.h: Fix a typo.
5772
c1d36cca 57732006-04-22 Frank Ch. Eigler <fche@redhat.com>
5774
5775 PR libmudflap/26864
5776 * common.opt (flag_mudflap_threads): Overload flag_mudflap.
5777 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
5778
4562961a 57792006-04-22 Kazu Hirata <kazu@codesourcery.com>
5780
5781 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
5782 Fix comment typos.
5783 * doc/tm.texi: Fix a typo.
5784
958656b7 57852006-04-21 Geoffrey Keating <geoffk@apple.com>
5786
5787 * dwarf2out.c (struct die_struct): Document that die_sib makes
5788 a circular linked list.
5789 (FOR_EACH_CHILD): New.
5790 (reverse_die_lists): Delete.
5791 (reverse_all_dies): Delete.
5792 (add_dwarf_attr): Correct documentation.
5793 (remove_child_with_prev): New.
5794 (remove_child_TAG): Update for change to die_struct, use
5795 remove_child_with_prev.
5796 (add_child_die): Update for change to die_struct.
5797 (splice_child_die): Use remove_child_with_prev and add_child_die.
5798 (print_die): Use FOR_EACH_CHILD.
5799 (die_checksum): Likewise.
5800 (assign_symbol_names): Likewise.
5801 (output_location_lists): Likewise.
5802 (build_abbrev_table): Likewise.
5803 (calc_die_sizes): Likewise.
5804 (mark_dies): Likewise.
5805 (unmark_dies): Likewise.
5806 (unmark_all_dies): Likewise.
5807 (output_die): Likewise.
5808 (prune_unused_types_mark): Likewise.
5809 (prune_unused_types_walk): Likewise.
5810 (same_die_p): Update for change to die_struct.
5811 (break_out_includes): Likewise.
5812 (prune_unused_types_prune): Likewise.
5813 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
5814 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
5815 it's already clear.
5816 (dwarf2out_finish): Don't call reverse_all_dies.
5817
d07b61a9 58182006-04-21 Eric Christopher <echristo@apple.com>
5819
5820 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
5821 in comments and function names.
5822
09d2b71a 58232006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5824
b5a68e6b 5825 PR c/25875
5826 * c-typeck.c (digest_init): Robustify.
5827
09d2b71a 5828 * c-typeck.c (pop_init_level): Simplify.
5829
388c75b0 58302006-04-21 Steve Ellcey <sje@cup.hp.com>
5831
5832 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
5833
7f5997af 58342006-04-21 Paul Brook <paul@codesourcery.com>
5835
5836 * config/arm/arm.c (arm_override_options): Error on iWMMXt and
5837 hardware floating point.
5838
89f662f5 58392006-04-21 David Edelsohn <edelsohn@gnu.org>
5840
5841 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
5842 NON_FLOAT_REGS.
5843
0abe9a12 58442006-04-21 Nick Clifton <nickc@redhat.com>
5845
5846 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
5847 OPT_EXTRA_PARTS.
5848
139699ff 58492006-04-21 Alan Modra <amodra@bigpond.net.au>
5850
5851 PR target/27230
5852 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
5853 C++ lang type in traceback table for Objective-C++.
5854
5855 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
5856
d605c7ef 58572006-04-20 H.J. Lu <hongjiu.lu@intel.com>
5858
5859 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
5860
7ac1fd6d 58612006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5862
5863 PR mudflap/26789
5864 * tree-mudflap.c (mudflap_finish_file): Skip function when there
5865 were errors. Remove check for erroneous objects.
5866
72e3ec84 58672006-04-20 Jeff Law <law@redhat.com>
5868
5869 PR tree-optimization/26854
5870 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
5871 checking for zero or one use.
5872 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
5873 * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
5874 * tree-ssa-reassoc.c (negate_value): Similarly.
5875 (reassociate_bb): Similarly.
5876
e259be19 58772006-04-20 Jakub Jelinek <jakub@redhat.com>
5878
5879 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
5880 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
5881 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
5882
af5c6f1d 58832006-04-20 Alan Modra <amodra@bigpond.net.au>
5884
5885 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
5886 fp regs if the last fp arg doesn't fit in regs.
5887
f76542c7 58882006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
5889
5890 PR target/27182
5891 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
5892 that the last insn has the REG_INC note.
5893
f6cf83a8 58942006-04-19 Carlos O'Donell <carlos@codesourcery.com>
5895 Nathan Sidwell <nathan@codesourcery.com>
5896
5897 PR c/26774
d07b61a9 5898 * stor-layout.c (update_alignment_for_field): Do not align
f6cf83a8 5899 ERROR_MARK nodes.
5900 (place_union_field): Place union field at the start of the union.
5901 (place_field): Move ERROR_MARK check later, and use the current
5902 allocation position to maintain monotonicity.
5903
a6e6c89a 59042006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
5905
5906 * dominance.c: Include timevar.h.
5907 (calculate_dominance_info): Use TV_DOMINANCE.
5908 * timevar.def (TV_DOMINANCE): New timevar.
5909 * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
5910
6746fc82 59112006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
5912
9e879e2e 5913 PR rtl-optimization/14261
6746fc82 5914 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
5915 move would be an INSV insn.
d07b61a9 5916 (noce_process_if_block): Don't optimize if the destination is a
6746fc82 5917 ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
5918
87bc9927 59192006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
5920
5921 * config/s390/s390.md: Add comments with the instructions emitted
5922 by an insn pattern if macros are used.
5923
8af0edf2 59242006-04-19 Alan Modra <amodra@bigpond.net.au>
5925
5926 PR rtl-optimization/26026
5927 * fold-const.c (fold_binary): Optimize div and mod where the divisor
5928 is a known power of two shifted left a variable amount.
5929
20f220a9 59302006-04-18 Geoffrey Keating <geoffk@apple.com>
5931
5932 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
5933 to hash table twice when the debug_str section has SECTION_MERGE.
5934
b8886216 59352006-04-18 Joseph S. Myers <joseph@codesourcery.com>
5936
5937 * config/soft-fp: New directory. From glibc.
5938 * config/soft-fp/t-softfp: New.
5939 * config/soft-fp/README: New.
5940 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
5941 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
5942 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
5943 (LIBGCC_DEPS): Add $(SFP_MACHINE).
5944 * config.gcc: Use rs6000/t-fprules-fpbit or
5945 rs6000/t-fprules-softfp and soft-fp/t-softfp together with
5946 rs6000/t-fprules.
5947 * config/rs6000/sfp-machine.h: New. Based on glibc.
5948 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
5949 New.
5950 * config/rs6000/t-fprules: Remove fp-bit rules.
5951 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
5952 * config/rs6000/t-linux64: Likewise. Remove duplicates from
5953 LIB2FUNCS_EXTRA. Remove fp-bit rules.
5954 (softfp_wrap_start, softfp_wrap_end): New.
5955
c238c203 59562006-04-18 DJ Delorie <dj@redhat.com>
5957
5958 * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
5959
bc52acac 59602006-04-18 Devang Patel <dpatel@apple.com>
5961
5962 * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
d07b61a9 5963
f01438fd 59642006-04-18 Nick Clifton <nickc@redhat.com>
5965
5966 * config/sh/t-symbian: Add rule to build sh-c.o
5967 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
5968 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
5969 (sh_symbian_encode_section_info): Likewise.
5970
2694880e 59712006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
5972
d07b61a9 5973 * builtins.c (expand_builtin_strcmp): Cover label definition of
2694880e 5974 do_libcall with HAVE_cmpstrnsi.
5975
84aacb40 59762006-04-18 Kazu Hirata <kazu@codesourcery.com>
5977
5978 * function.c (temp_slots_at_level, max_slot_level): Use VEC
5979 instead of VARRAY.
5980 * function.h (temp_slot_p): New.
5981 (function): Change the type of x_used_temp_slots to
5982 VEC(temp_slot_p,gc) *.
5983
d2024693 59842006-04-18 Nick Clifton <nickc@redhat.com>
5985
53315a0c 5986 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
5987 flag_strength_reduce.
5988
d2024693 5989 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
5990
0e820f3d 59912006-04-18 Paolo Bonzini <bonzini@gnu.org>
5992
522701ef 5993 PR target/27117
0e820f3d 5994
5995 Partial revert of revision 112637
5996 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
5997 Dale Johannesen <dalej@apple.com>
5998
5999 PR target/19653
6000 * regclass.c (struct reg_pref): Update documentation.
6001 (regclass): Set prefclass to NO_REGS if memory is the best option.
6002 (record_reg_classes): Cope with a prefclass set to NO_REGS.
6003
b614a751 60042006-04-18 Paolo Bonzini <bonzini@gnu.org>
6005
522701ef 6006 PR tree-optimization/26821
6007 * tree-ssa-math-opts.c (get_constant_one): New.
6008 (insert_reciprocals): Use it.
b614a751 6009
b0aa6b33 60102006-04-17 Geoffrey Keating <geoffk@apple.com>
6011
6012 * dwarf2out.c (free_AT): Delete.
6013 (remove_AT): Update string ref counts.
6014 (remove_child_TAG): Don't call free_die.
6015 (free_die): Delete.
6016 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
6017 or DW_TAG_GNU_EINCL.
6018 (prune_unused_types_walk_attribs): Reset string refcounts.
6019 (prune_unused_types_update_strings): New.
6020 (prune_unused_types_prune): Don't make unnecessary stores. Don't
6021 call free_die. Do call prune_unused_types_update_strings.
6022 (prune_unused_types): Empty debug_str_hash.
6023
8f3e551a 60242006-04-17 Roger Sayle <roger@eyesopen.com>
6025
6026 * expr.c (expand_assignment): Optimize away no-op moves where the
6027 source and destination are equal and have no side-effects.
6028
b870fa03 60292006-04-17 Richard Guenther <rguenther@suse.de>
6030
6031 PR target/26826
6032 * reload.c (push_reload): Guard calls to get_secondary_mem
6033 for memory subregs.
6034
980f3285 60352006-04-16 Kazu Hirata <kazu@codesourcery.com>
6036
6037 * alias.c (reg_base_value, old_reg_base_value): Change the
6038 type to VEC(rtx,gc) *.
6039 (REG_BASE_VALUE, find_base_value, record_set,
6040 init_alias_analysis): Use VEC instead of VARRAY.
6041
8b435339 6042 * alias.c (alias_sets): Change the type to
6043 VEC(alias_set_entry,gc) *.
6044 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
6045 VEC instead of VARRAY.
6046 (last_alias_set): Remove.
6047
4460a647 6048 * cgraph.h (cgraph_edge_p): New.
6049 Update the prototype of cgraph_function_versioning.
6050 * cgraphunit.c (cgraph_copy_node_for_versioning,
6051 cgraph_function_versioning): Use VEC instead of VARRAY.
6052 * ipa-cp.c (ipcp_insert_stage): Likewise.
6053
a0d17866 60542006-04-16 Roger Sayle <roger@eyesopen.com>
6055
6056 PR target/26961
6057 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
6058 "A op B" or "A op C", we may need to convert A to the type of B and C.
6059
4956440a 60602006-04-16 Adam Nemet <anemet@caviumnetworks.com>
6061
6062 * target.h (struct gcc_target): Add mode_rep_extended.
6063 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
6064 (init_num_sign_bit_copies_in_rep): Initialize it using
6065 mode_rep_extended.
6066 (truncate_to_mode): Use it.
6067 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
6068 * targhooks.h (default_mode_rep_extended): Declare it.
6069 * targhooks.c (default_mode_rep_extended): Define it.
6070 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
6071 default_mode_rep_extended.
6072 (TARGET_INITIALIZER): Include it.
6073 * doc/tm.texi (Misc): Document it.
6074 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
6075 (mips_truncated_to_mode): New function.
6076
3220d3c5 60772006-04-16 Roger Sayle <roger@eyesopen.com>
6078
6079 PR middle-end/25474
6080 * expr.c (compress_float_constant): Copy the narrow constant into
6081 a new pseudo before extending it to its final width.
6082
8dfacec0 60832006-04-16 Roger Sayle <roger@eyesopen.com>
6084 Andrew Pinski <pinskia@gcc.gnu.org>
6085 Dale Johannesen <dalej@apple.com>
6086
6087 PR target/24076
6088 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
6089 special case code to implement V8HImode and V16QImode with SSE2.
6090
aeecf0de 60912006-04-15 Roger Sayle <roger@eyesopen.com>
6092
6093 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
6094 trees are constructed with a suitable tree type.
6095
ff674908 60962006-04-15 Roger Sayle <roger@eyesopen.com>
6097
6098 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
6099 (integer_onep): Likewise.
6100 (integer_all_onesp): Likewise.
6101 (integer_pow2p): Likewise.
6102 (integer_nonzerop): Likewise.
6103 (real_zerop): Likewise.
6104 (real_onep): Likewise.
6105 (real_twop): Likewise.
6106 (real_minus_onep): Likewise.
6107 (int_size_in_bytes): Likewise.
6108 (host_integerp): Likewise.
6109
d961ae3a 61102006-04-15 Kazu Hirata <kazu@codesourcery.com>
6111
6112 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
6113 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
6114 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
6115
b332f942 6116 * tree-ssa-structalias.h (alias_info): Remove num_references.
6117
d9e3874e 61182006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6119
6120 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
6121 (output_bvb patterns): Likewise.
6122 * pa.c (output_bb): Use 'bb' insn for long branch case.
6123 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
6124 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
6125 1. Correct length operand for alternatives 1 and 2.
6126 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
6127 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
6128
caa1b5c9 61292006-04-14 Roger Sayle <roger@eyesopen.com>
6130
6131 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
6132 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
6133 were accidentally reverted by r112959.
6134
6c105785 61352006-04-15 Jakub Jelinek <jakub@redhat.com>
6136
6137 PR middle-end/26823
6138 * except.h (eh_region_outermost): New prototype.
6139 * except.c (eh_region_outermost): New function.
6140 * tree-cfg.c (find_outermost_region_in_block): Use it.
6141
28b69ba9 61422006-04-14 Kazu Hirata <kazu@codesourcery.com>
6143
6144 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
6145 of VARRAY.
6146 * reload1.c (reg_equiv_memory_loc_varray): Rename to
6147 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
6148 (init_reload, reload): Use VEC instead of VARRAY.
6149 * reload.h: Update the prototype for
6150 reg_equiv_memory_loc_varray.
6151
fee7cdb4 61522006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
522701ef 6153 Eric Botcazou <ebotcazou@libertysurf.fr>
fee7cdb4 6154
6155 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
6156 register save area.
6157
d4c690af 61582005-04-13 Uros Bizjak <uros@kss-loka.si>
6159
6160 PR middle-end/27134
6161 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
6162 to expand fallback builtin function call.
6163
6b961939 61642006-04-14 Alan Modra <amodra@bigpond.net.au>
6165
6166 PR middle-end/27095
6167 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
6168 and emit libcall here in case the builtin fails.
6169 (expand_builtin_strcmp): Always emit the libcall here on failure.
6170
d14dbec5 61712006-04-14 Kazu Hirata <kazu@codesourcery.com>
6172
6173 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
6174 * flow.c (reg_n_info): Change the type to
6175 VEC(reg_info_p,heap) *.
6176 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
6177 instead of VARRAY.
6178 * regs.h (reg_info_p): New.
6179 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
6180 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
6181 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
6182 instead of VARRAY.
6183
23df5e5b 61842006-04-13 Eric Botcazou <ebotcazou@adacore.com>
6185
6186 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
6187 defaulting to 100.
6188 * params.h (MAX_SCHED_READY_INSNS): New macro.
6189 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
6190 past MAX_SCHED_READY_INSNS during the first scheduling pass.
6191 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
6192 the ready list for 1 cycle during the first scheduling pass.
6193 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
6194
61e47ac8 61952006-04-13 Richard Henderson <rth@redhat.com>
6196
caa1b5c9 6197 PR libgomp/26651
61e47ac8 6198 * gimple-low.c (lower_omp_directive): Remove dead code.
6199 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
6200 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
6201 * omp-low.c (struct omp_region): Move to tree-flow.h.
6202 (root_omp_region): Export.
6203 (omp_regions, lookup_omp_region): Remove.
6204 (determine_parallel_type): Update for struct omp_region changes.
6205 (dump_omp_region): Dump regions with block numbers.
6206 (new_omp_region): Take type and block instead of stmt; malloc
6207 instead of ggc.
6208 (free_omp_region_1, free_omp_regions): New.
6209 (expand_parallel_call): Take entry_stmt as argument; update for
6210 changes to omp_region.
6211 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
6212 (remove_exit_barriers): New.
6213 (expand_omp_parallel): Update for struct omp_region changes.
6214 (expand_omp_synch): Likewise.
6215 (expand_omp): Likewise.
6216 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
6217 (expand_omp_for_static_chunk): Likewise.
6218 (expand_omp_for): Likewise.
6219 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
6220 (expand_omp_sections): Similarly, with GOMP_sections_end.
6221 (expand_omp_single): New.
6222 (build_omp_regions_1): Update for OMP_CONTINUE.
6223 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
6224 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
6225 OMP_SECTIONS_SECTIONS.
6226 (lower_omp_single_simple): Don't emit barrier here.
6227 (lower_omp_single_copy): Likewise.
6228 (lower_omp_single): Fix bindings, and lower to straightline now.
6229 (lower_omp_master, lower_omp_ordered): Likewise.
6230 (lower_omp_critical): Likewise.
6231 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
6232 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
6233 omp edges, free it afterward.
6234 (make_omp_sections_edges): Remove.
6235 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
6236 (move_stmt_r): Handle OMP_CONTINUE.
d07b61a9 6237 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
61e47ac8 6238 statement pointers to basic blocks. Add type member.
6239 (root_omp_region, new_omp_region, free_omp_regions): Declare.
6240 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
6241 * tree-inline.c (estimate_num_insns_1): Likewise.
6242 * tree-pretty-print.c (dump_generic_node): Likewise.
6243 * tree-ssa-operands.c (get_expr_operands): Likewise.
6244 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
6245 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
6246 (OMP_CONTINUE): New.
6247 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
6248 (OMP_SECTIONS_SECTIONS): Remove.
6249 (OMP_SECTION_LAST): New.
6250 (OMP_RETURN_NOWAIT): New.
6251
3fa15ed1 62522006-04-13 Roger Sayle <roger@eyesopen.com>
6253
6254 * fold-const.c (native_encode_vector, native_interpret_real):
6255 Correct obvious mistakes in the previous check-in.
6256
5f4092ed 62572006-04-13 Roger Sayle <roger@eyesopen.com>
6258
6259 * fold-const.c (native_encode_expr): New function to encode
6260 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
6261 or VECTOR_CST into a specified buffer.
6262 (native_encode_int): New function.
6263 (native_encode_real): New function.
6264 (native_encode_complex): New function.
6265 (native_encode_vector): New function.
6266 (native_interpret_expr): Inverse of native_encode_expr to convert
6267 a target representation into an INTEGER_CST, REAL_CST etc...
6268 (native_interpret_int): New function.
6269 (native_interpret_real): New function.
6270 (native_interpret_complex): New function.
6271 (native_interpret_vector): New function.
6272 (fold_view_convert_expr): New function to constant fold/evaluate
6273 a VIEW_CONVERT_EXPR of a suitable constant expression.
6274 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
6275 Change call of build1 to fold_build1 when constructing a
6276 VIEW_CONVERT_EXPR.
6277
8631d1da 62782006-04-13 Paolo Bonzini <bonzini@gnu.org>
6279 Ulrich Weigand <uweigand@de.ibm.com>
6280
6281 PR target/27006
6282 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
6283 to be even.
6284
9522889c 62852006-04-13 Alan Modra <amodra@bigpond.net.au>
6286
6287 PR target/26459
6288 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
6289 optimize to lo_sum for DFmode if !TARGET_FPRS.
6290
4857cd31 62912006-04-12 Kazu Hirata <kazu@codesourcery.com>
6292
6293 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
6294 delete_alias_info, compute_flow_sensitive_aliasing,
6295 group_aliases): Use VEC instead of VARRAY.
6296 * tree-ssa-structalias.c (update_alias_info): Likewise.
6297 * tree-ssa-structalias.h (alias_info): Change the type of
6298 processed_ptrs to VEC(tree,heap) *.
6299
2fa59365 63002006-04-12 J"orn Rennecke <joern.rennecke@st.com>
6301
6302 PR target/27060
522701ef 6303 * config/sh/lib1funcs.h: New file, broken out of:
6304 * config/sh/lib1funcs.asm.
6305 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
2fa59365 6306 New macros.
6307 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
522701ef 6308 * config/sh/lib1funcs-Os-4-200.asm: New file.
2fa59365 6309 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
6310 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
6311 (EXTRA_MULTILIB_PARTS): Include it.
6312 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
6313 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
6314 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
6315 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
6316 TARGET_SH2.
6317
8c02312e 63182006-04-12 Kazu Hirata <kazu@codesourcery.com>
6319
6320 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
6321 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
6322 tpa_compact, root_var_init, type_var_init): Use VEC instead of
6323 VARRAY.
6324 * tree-ssa-live.h: Include vecprim.h.
6325 (tree_partition_associator_d): Change the type of
6326 first_partition to VEC(int,heap) *.
6327 (tpa_first_partition): Use VEC instead of VARRAY.
6328
c8327067 6329 * Makefile.in (GTFILES): Move functions.h after tree.h.
6330 * function.c (reset_block_changes, record_block_change,
6331 check_block_change, free_block_changes): Use VEC instead of
6332 VARRAY.
6333 * function.h (function): Change the type of
6334 ib_boundaries_block to VEC(tree,gc) *.
6335 * tree-inline.c (copy_cfg_body): Initialize
6336 ib_boundaries_block to NULL instead of (varray_type) 0.
6337
47e9d4ca 63382006-04-12 Roger Sayle <roger@eyesopen.com>
6339
6340 * expr.c (emit_group_store): Correct operand order in call to
6341 subreg_lowpart_offset. Always create paradoxical SUBREGs with
6342 a SUBREG_BYTE of zero.
6343
34806856 63442006-04-12 Richard Guenther <rguenther@suse.de>
6345
6346 * profile.c (compute_branch_probabilities): Remove code
6347 encapsulated in !ir_type (), which are remanents of the
6348 removed RTL profiling code.
6349 * rtl-profile.c: Remove.
6350
4e7cf9f8 63512006-04-12 Alan Modra <amodra@bigpond.net.au>
6352
6353 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
6354 magic NULL_RTX comment.
6355 (function_arg): Store entire fp arg to mem if any part should go
6356 on stack.
6357 (rs6000_arg_partial_bytes): Adjust for above change.
6358
4494ff1b 63592006-04-11 Roger Sayle <roger@eyesopen.com>
6360
6361 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
6362 if it hasn't been initialized by dwarf2out_init.
6363
745c77d1 63642006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
6365
6366 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
6367 symbolic constants in branch patterns.
6368
7a37d50b 63692006-04-11 Roger Sayle <roger@eyesopen.com>
6370
6371 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
6372
9ef5c93f 63732006-04-11 Richard Sandiford <richard@codesourcery.com>
6374
6375 PR rtl-optimization/27073
6376 * gcse.c (try_replace_reg): Revert last change. Continue to search
6377 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
6378 on the former.
6379
a9b427d3 63802006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
6381
6382 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
6383 aggregate types other than record and union types.
6384 (function_arg): Likewise.
6385 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
6386 small arrays.
6387 (function_value): In 64-bit mode, return objects that require it
6388 in FP registers.
6389
0a1cbfaa 63902006-04-11 Roger Sayle <roger@eyesopen.com>
6391
6392 * dwarf2out.c (premark_used_types): Remove problematic prototype.
6393
33238887 63942006-04-11 Jakub Jelinek <jakub@redhat.com>
6395
6396 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
6397
e27ef468 63982006-04-03 Jeff Law <law@redhat.com>
6399
6400 PR/27087
6401 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
6402 alias information too.
6403
a01acf14 64042006-04-10 Mike Frysinger <vapier@gentoo.org>
6405
cf8cdd54 6406 * Makefile.in (gcc-cross): Add $(exeext) to target name.
a01acf14 6407
f6e59711 64082006-04-10 Aldy Hernandez <aldyh@redhat.com>
6409
6410 PR/21391
6411 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
6412 (premark_used_types_helper): New.
6413 (premark_used_types): New.
6414 (gen_subprogram_die): Call premark_used_types.
6415 (prune_unused_types_walk): Do not prune perennial dies.
6416 * function.c (used_types_insert): New.
6417 * function.h (struct function): Add used_types_hash field.
6418 (used_types_insert): Add prototype.
6419 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
6420 * c-parser.c (c_parser_cast_expression): Save casted types in used
6421 types hash table.
6422
339ccd69 64232006-04-11 Mark Mitchell <mark@codesourcery.com>
6424
6425 PR target/26459
6426 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
6427 rs6000_explicit_options.float_gprs.
6428
0f0ff686 64292006-04-10 Roger Sayle <roger@eyesopen.com>
6430
6431 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
6432 from ix86_expand_vector_init_low_nonzero. Take an additional
6433 one_var argument indicating which element is non-zero. Support
6434 one_var != 0 for V4SFmode and V4SImode by permuting the result.
6435 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
6436 with one_var instead of ix86_expand_vector_init_low_nonzero.
6437
05f3df98 64382006-04-10 Kazu Hirata <kazu@codesourcery.com>
6439
6440 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
6441 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
6442 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
6443 build/genextract.o): Depend on vecprim.h.
6444 * cfglayout.c, df-problems.c, function.c, genextract.c,
6445 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
6446 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
6447 vecprim.h.
6448 * vecprim.h: New.
6449
6f56c055 64502006-04-10 Geoffrey Keating <geoffk@apple.com>
6451
6452 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
6453 Declare VECs of this type.
6454 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
6455 (remove_children): Delete.
6456 (add_dwarf_attr): Use VEC routines.
6457 (add_AT_flag): Update for changes to add_dwarf_attr.
6458 (add_AT_int): Likewise.
6459 (add_AT_unsigned): Likewise.
6460 (add_AT_long_long): Likewise.
6461 (add_AT_vec): Likewise.
6462 (add_AT_string): Likewise.
6463 (add_AT_die_ref): Likewise.
6464 (add_AT_fde_ref): Likewise.
6465 (add_AT_loc): Likewise.
6466 (add_AT_loc_list): Likewise.
6467 (add_AT_addr): Likewise.
6468 (add_AT_lbl_id): Likewise.
6469 (add_AT_lineptr): Likewise.
6470 (add_AT_macptr): Likewise.
6471 (add_AT_offset): Likewise.
6472 (add_AT_range_list): Likewise.
6473 (get_AT): Use VEC_iterate.
6474 (remove_AT): Use VEC_ordered_remove.
6475 (free_die): Fold remove_children into here; have it use VEC_iterate.
6476 (print_die): Use VEC_iterate on attrs.
6477 (reverse_die_lists): Don't reverse attr lists.
6478 (die_checksum): Use VEC_iterate on attrs.
6479 (same_die_p): Likewise.
6480 (output_location_lists): Likewise.
6481 (build_abbrev_table): Likewise.
6482 (size_of_die): Likewise.
6483 (unmark_all_dies): Likewise.
6484 (output_abbrev_section): Likewise.
6485 (output_die): Likewise.
6486 (prune_unused_types_walk_attribs): Likewise.
6487
0c7dcad0 64882006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
6489
d7bbae2a 6490 * doc/install.texi (*-*-solaris2*): Point to the configure page.
0c7dcad0 6491
8462b107 64922006-04-10 Jakub Jelinek <jakub@redhat.com>
6493
6494 PR debug/27057
6495 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
6496
1abf6b04 64972006-04-09 Roger Sayle <roger@eyesopen.com>
6498
6499 * expr.c (store_constructor): Don't bother clearing target if
6500 we're about to assign a vector to it using vec_init_optab.
6501
185ba02d 65022006-04-10 Daniel Berlin <dberlin@dberlin.org>
d07b61a9 6503
185ba02d 6504 * tree-ssa-alias.c (lhs_may_store_to): New function.
6505 (recalculate_used_alone): Handle LHS of calls.
6506
25e266ae 65072006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6508
6509 PR target/27034
6510 PR target/26508
6511 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
6512 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
6513 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
6514 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
6515 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
6516 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
6517 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
6518 stubs. Add ".align 8" directives before all ".dword" directives.
6519 (GTHREAD_USE_WEAK): Revise comment.
6520 (TARGET_ATTRIBUTE_WEAK): Define.
6521 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
6522 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
6523 * stublib.c: New file.
f26036bb 6524
6525 PR target/26743
6526 PR target/11254
6527 PR target/10274
6528 * pa.md (cbranch patterns): Revise arguments used in calls to
6529 output_cbranch, output_bb and output_bvd. Add long branch length
6530 attributes.
6531 (fbranch patterns): Handle long branches.
6532 (jump): Revise length check. Revise arguments for output_lbranch call.
6533 Add long branch length attributes.
6534 (decrement_and_branch_until_zero): Add long branch length attributes.
6535 (output_movb, output_parallel_addb and output_parallel_movb patterns):
6536 Likewise. Revise arguments for output_parallel_addb and
6537 output_parallel_movb calls.
6538 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
6539 output_parallel_movb and output_parallel_addb): Update prototypes.
6540 * pa.c (output_cbranch): Revise arguments. Correct handling of
6541 nullification in long branches.
6542 (output_lbranch): Add new argument to control extraction of delay
6543 instruction.
6544 (output_bb): Handle long branches.
6545 (output_bvb, output_dbra, output_movb, output_parallel_movb,
6546 output_parallel_addb): Likewise.
6547
630a5fc0 65482006-04-09 Richard Sandiford <richard@codesourcery.com>
6549
6550 PR rtl-optimization/27073
6551 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
6552 not REG_EQUIVs.
6553
cd904438 65542006-04-08 Daniel Berlin <dberlin@dberlin.org>
6555
6556 * tree.h (tree_memory_tag): Add old_used_alone.
6557 (SMT_OLD_USED_ALONE): New macro.
6558 * tree-ssa-alias.c (recalculate_used_alone): Stop
6559 marking things for renaming unnecessarily.
6560
9ca2c29a 65612006-04-08 Kazu Hirata <kazu@codesourcery.com>
6562
6563 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
6564 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
6565 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
6566 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
6567 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
6568 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
6569 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
6570 spelling convensions.
6571 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
6572 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
6573 typos. Follow spelling conventions.
6574
87eb9cbf 65752006-04-07 DJ Delorie <dj@redhat.com>
6576
6577 * config/m32c/m32c.c (m32c_function_arg): Structures are always
6578 passed on the stack.
6579 (m32c_init_cumulative_args): When a function returns a structure,
6580 always pass the pointer to that return area on the stack.
6581 (m32c_function_arg_advance): Don't increment the parameter number
6582 if we're processing the returned structure pointer.
6583 (pushm_info): Reverse order of registers.
6584
05db596e 65852006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
6586
6587 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
6588 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
6589 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
d07b61a9 6590 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
05db596e 6591 build_int_cst_type.
6592 * tree-chrec.c (chrec_fold_multiply_poly_poly,
6593 chrec_fold_multiply): Same.
6594 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
6595 force_expr_to_var_cost): Same.
6596 * tree-mudflap.c (mf_xform_derefs_1): Same.
6597 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
6598
fb73e487 65992006-04-07 David Edelsohn <edelsohn@gnu.org>
6600
6601 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
6602 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
6603 insn.
499f708c 6604
66052006-04-07 Jan Hubicka <jh@suse.cz>
6606
6607 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
6608
6a491555 66092006-04-07 Richard Guenther <rguenther@suse.de>
6610
6611 PR tree-optimization/26135
6612 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
6613 loads for store copy-prop.
6614 (copy_prop_visit_stmt): Likewise.
6615
66162006-04-05 Robert Millan <robertmh@gnu.org>
f3a35f6e 6617
522701ef 6618 * config/i386/linux.h: Add a comment to mark macros that are
f3a35f6e 6619 being overriden in config/k*bsd-gnu.h.
522701ef 6620 * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
f3a35f6e 6621 DYNAMIC_LINKER.
522701ef 6622 * config/knetbsd-gnu.h: Ditto.
f3a35f6e 6623
0146470a 66242006-04-06 Jan Hubicka <jh@suse.cz>
6625
6626 PR profile/20815
6627 PR profile/26399
6628 * coverage.c (coverage_checksum_string): Reorganize loop to not read
6629 after buffer.
6630
03fd9d2c 66312006-04-06 Mike Stump <mrs@apple.com>
6632
6633 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
6634 for HAVE_nonlocal_goto to be consistent.
6635 (expand_builtin_nonlocal_goto): Likewise.
6636 (expand_builtin_strcmp): Use #ifdef instead of #if
6637 for HAVE_cmpstrnsi to be consistent.
6638
2683d243 66392006-04-05 DJ Delorie <dj@redhat.com>
6640
6641 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
6642 vs m32c.
6643
8f5efc80 66442006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
6645
6646 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
6647 got-relative addressing for anything but SImode.
6648
dac20ee7 6649 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
6650 even if the calling function doesn't modify them.
6651
eb30454d 66522006-04-05 Richard Guenther <rguenther@suse.de>
6653
6654 PR tree-optimization/26919
6655 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
6656 to cgraph_estimate_size_after_inlining.
6657
7781f014 66582006-04-05 Alan Modra <amodra@bigpond.net.au>
6659
6660 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
6661
a8c839ae 66622006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
6663
6664 PR tree-optimization/26996
6665 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
6666 VECTOR_TYPE variables.
6667
25bf4cab 66682006-04-05 Richard Guenther <rguenther@suse.de>
6669
6670 PR tree-optimization/26763
6671 * fold-const.c (fold_comparison): Move folding of
6672 PTR + CST CMP PTR + CST ...
6673 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
6674
0779bef9 66752006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
6676
6677 * doc/install.texi (Prerequisites): Refine some wording on
6678 bootstrapping and ksh.
6679 Move the version numbers of DejaGnu here from the testing section
6680 and fix casing of names.
6681 Fix markup and clarify wording for autogen requirements.
6682 Refer to GCJ instead of just java.
6683 Refer to SVN instead of CVS.
6684 Describe diffutils as useful instead of necessary.
6685 (Downloading the source): Refer to SVN instead of CVS.
6686 Adjust a link to our web site accordingly.
6687 (Configuration): Fix casing of Bison.
d07b61a9 6688 (Building): Refer to SVN instead of CVS.
0779bef9 6689 Fix a sentence on the use of Bison and remove duplicate (and
6690 incorrect) version number of Bison requirement.
6691 Remove one redundant list of packages needed for building.
6692 (Specific): Avoid reference to CVS.
6693
d5266769 66942006-04-04 Eric Christopher <echristo@apple.com>
6695
6696 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
6697 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
6698 (rs6000_handle_struct_attribute): New.
6699 (rs6000_ms_bitfield_layout_p): Ditto.
6700
9dc5f5cd 67012006-04-04 Geoffrey Keating <geoffk@apple.com>
6702
6703 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
6704 NULL for dso parameter to atexit_common.
6705
d86ccd2c 67062006-04-04 Eric Christopher <echristo@apple.com>
6707
6708 * config/i386/i386.c (machopic_output_stub): Output \t
6709 between instructions and operands.
6710
bd16f775 67112006-04-04 David Edelsohn <edelsohn@gnu.org>
6712
6713 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
6714 satisfies_constraint_[IL] to explicit tests on value.
6715
7c010d6a 67162006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
6717
6718 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
6719 set_nb_iterations_in_loop): Use build_int_cst instead of
6720 build_int_cst_type.
6721 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
6722 build_int_cst instead of convert.
6723
d8c09ceb 67242006-04-04 Carlos O'Donell <carlos@codesourcery.com>
6725
6726 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
6727 new value 2 for incoming.
6728 * function.c (expand_function_start): Call struct_value_rtx
6729 with incoming as 2.
6730 * config/sparc/sparc.md: Comment updated_return.
6731 * config/sparc/sparc.opt: Add -mstd-struct-return option.
6732 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
6733 struct return if sparc_std_struct_return and incoming is 2.
6734 (print_operand): Do not adjust return if
6735 sparc_std_struct_return.
6736
e3b560a6 67372006-04-04 Roger Sayle <roger@eyesopen.com>
6738
6739 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
6740 convert in the middle-end.
6741 * expr.c (store_expr, store_constructor, get_inner_reference,
6742 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
6743 Likewise.
6744 * tree.c (build_range_type): Likewise.
6745
0d53473f 67462006-04-04 Tom Tromey <tromey@redhat.com>
6747
6748 * doc/install.texi (Prerequisites): Mention jar.
6749
69e11d3c 67502006-04-04 Daniel Berlin <dberlin@dberlin.org>
6751
6752 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
6753 subsection.
6754
85cc1e72 67552006-04-04 Matthias Klose <doko@debian.org>
6756
6757 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
5e156a9d 6758
4bd32627 6759 PR bootstrap/26764
6760 PR bootstrap/27334
d4add8f3 6761 * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
6762 strings.
85cc1e72 6763
87ea783a 67642006-04-03 Geoffrey Keating <geoffk@apple.com>
6765
d86ccd2c 6766 * doc/extend.texi (Function Attributes): Rewrite visibility
8ab158f9 6767 attribute documentation.
6768 * doc/invoke.texi (C++ Dialect Options): Rewrite
6769 -fvisibility-inlines-hidden documentation to describe something
6770 entirely different, although in practise compatible.
2341a17e 6771 (Code Gen Options): Warn about system headers in -fvisibility=
8ab158f9 6772 documentation.
6773
87ea783a 6774 * doc/extend.texi (Other Builtins): Document that
6775 __builtin_nan is a compile-time constant only when its argument
6776 is valid.
6777
0f6d8eeb 67782006-04-03 Adam Nemet <anemet@caviumnetworks.com>
6779
6780 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
6781 trying to remove TRUNCATE check if all bits outside the new mode
6782 are identical to the sign bit.
6783
d76551d9 67842006-04-03 Jeff Law <law@redhat.com>
6785
6786 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
6787 and operand scanning in some common cases.
6788
9309b09c 67892006-04-03 Paolo Bonzini <bonzini@gnu.org>
897f76b2 6790 Dale Johannesen <dalej@apple.com>
6791
6792 PR target/19653
6793 * regclass.c (struct reg_pref): Update documentation.
6794 (regclass): Set prefclass to NO_REGS if memory is the best option.
6795 (record_reg_classes): Cope with a prefclass set to NO_REGS.
6796 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
6797 into account. For non-registers, equate an empty preferred
6798 reload class to a `!' in the constraint; move the if clause to
6799 do so after those that reject the insn.
6800 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
6801 return NO_REGS.
6802 (find_dummy_reload): Likewise.
6803 * doc/tm.texi (Register Classes): Document what it means
6804 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
6805 * config/i386/i386.c (ix86_preferred_reload_class): Force
6806 using SSE registers (and return NO_REGS for floating-point
6807 constants) if math is done with SSE.
6808 (ix86_preferred_output_reload_class): New.
6809 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
6810 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
6811 * config/i386/i386.md: Remove # register preferences.
6812
b92381b6 68132006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6814
6815 PR bootstrap/26992
6816 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
6817 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
6818 the type of nb_iter.
6819 (instantiate_parameters_1): Convert the operands before calling
6820 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
6821 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
6822
535664e3 68232006-04-02 Roger Sayle <roger@eyesopen.com>
6824
6825 * builtins.c (dummy_object): Use build_int_cst instead of convert.
6826 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
6827 instead of convert.
6828 * dojump.c (do_jump): Likewise.
6829 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
6830 * gimplify.c (gimple_boolify, gimplify_init_constructor,
6831 gimplify_boolean_expr): Likewise.
6832 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6833 * varasm.c (array_size_for_constructor): Likewise.
6834 * tree-object-size.c (compute_object_offset): Likewise.
6835
4bd9981b 68362006-04-02 Roger Sayle <roger@eyesopen.com>
6837
6838 PR middle-end/26977
6839 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
6840 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
6841
55feb6fa 68422006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6843
6844 PR tree-optimization/26939
6845 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
6846
f84a688a 68472006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6848
6849 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
d86ccd2c 6850 at_stmt. Convert the type of operands before calling
f84a688a 6851 build_polynomial_chrec.
6852 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
6853 add_to_evolution_1.
6854 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
d86ccd2c 6855 (instantiate_parameters_1): Convert the type of operands before calling
f84a688a 6856 build_polynomial_chrec.
6857 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
6858 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
6859 reset_evolution_in_loop): Insert asserts to check the types of the
6860 operands.
6861 (chrec_type): Moved...
6862 (eq_evolutions_p): Use operand_equal_p.
6863 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
6864 the types of the operands.
6865 (chrec_type): ...here.
6866 * tree-data-ref.c (create_data_ref): Convert the operands before
6867 calling chrec_replace_initial_condition.
6868 (same_access_functions, analyze_subscript_affine_affine,
6869 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
6870 (compute_subscript_distance, analyze_ziv_subscript,
6871 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
6872 analyze_miv_subscript): Convert the operands before calling
6873 chrec_fold_minus or chrec_fold_plus.
6874
2af73e54 68752006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
6876
6877 * tree-data-ref.c (compute_all_dependences): Use a pointer to
6878 the dependence_relations vector.
6879 (compute_data_dependences_for_loop): Adjust call to
6880 compute_all_dependences.
6881
9315094f 68822006-04-01 Roger Sayle <roger@eyesopen.com>
6883 Richard Henderson <rth@redhat.com>
6884
6885 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
6886 gimple_boolify on the condition before calling gimplify_expr.
6887
29bf9219 68882006-03-31 Bob Wilson <bob.wilson@acm.org>
6889
6890 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
6891 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
6892 the frame size. Update to use the new macros.
6893 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
6894 * config/xtensa/ieee754-df.S: Likewise.
6895
68962006-03-31 Richard Henderson <rth@redhat.com>
2a09b1df 6897
6898 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
6899 (make_edges): ... here. Control fallthru creation with a local
6900 variable. Do not play with fake edges.
6901 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
6902 (make_goto_expr_edges): Don't play with fake edges. Make for_call
6903 a boolean.
6904
04da8de9 69052006-04-01 Joseph S. Myers <joseph@codesourcery.com>
6906
6907 * dwarf2.h (DW64_CIE_ID): Define.
6908 * dwarf2out.c (DWARF_CIE_ID): Define.
6909 (output_call_frame_info): Output 0xffffffff before standard 8-byte
6910 length header. Use DWARF_CIE_ID.
6911 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
6912 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
6913
76915e72 69142006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
6915
6916 * config/sh/linux-atomic.asm: New file.
6917 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
6918
992bd98c 69192006-03-31 DJ Delorie <dj@redhat.com>
6920
6921 * config/m32c/cond.md: Set condition flags properly throughout.
6922 * config/m32c/minmax.md: Likewise.
6923 * config/m32c/prologue.md: Likewise.
6924 * config/m32c/bitops.md: Likewise.
6925 * config/m32c/muldiv.md: Likewise.
6926 * config/m32c/mov.md: Likewise.
6927 * config/m32c/addsub.md: Likewise.
6928 * config/m32c/m32c.md: Likewise.
6929 * config/m32c/jump.md: Likewise.
6930 * config/m32c/shift.md: Likewise.
6931
6932 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
6933 conditionally output the pattern for this.
6934 * config/m32c/m32c.c (flags_needed_for_conditional): New.
6935 (m32c_compare_redundant): New.
6936 (m32c_output_compare): New.
6937 * config/m32c/m32c-protos.h (m32c_output_compare): New.
6938
6939 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
6940 dest, not src. Allow other 4-byte modes.
6941
7599ef38 69422006-03-30 Denis Chertykov <denisc@overta.ru>
6943
6944 * doc/md.texi: Refer to avr/constraints.md instead of
6945 avr/avr.h.
6946
f25b36d2 69472006-03-30 Roger Sayle <roger@eyesopen.com>
6948
6949 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
6950 signed vs. unsigned comparison failures on some hosts.
6951
dfec1c81 69522006-03-31 Alan Modra <amodra@bigpond.net.au>
6953
14ee7385 6954 PR target/26459
6955 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
6956 change to FLOAT_REGS.
6957
dfec1c81 6958 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
6959 (rs6000_override_options): Use it.
6960 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
6961 only for -mabi=spe/no-spe and -mabi=altivec.
6962
f4d4e693 69632006-03-30 Geoffrey Keating <geoffk@apple.com>
6964
6965 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
6966 !Zdynamiclib.
6967
77a85ce7 69682006-03-30 Carlos O'Donell <carlos@codesourcery.com>
6969
6970 * Makefile.in: Rename docdir to gcc_docdir.
6971
73fe0e40 69722006-03-30 Roger Sayle <roger@eyesopen.com>
6973
6974 PR target/17959
522701ef 6975 * expr.c (emit_group_store): Optimize group stores into a pseudo
73fe0e40 6976 register by using a paradoxical subreg to initialize the destination
6977 if the first or last member of the group specifies a "low part".
6978
4dc5882f 69792006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6980
6981 PR target/26734
6982 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
6983 * target.h (struct gcc_target.speculate_insn): Change type of the
6984 second parameter to 'int'.
6985 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
6986 the second operand of the DEPS_LIST.
6987 (copy_DEPS_LIST_list): Update reference to the second operand of the
6988 DEPS_LIST.
6989 * rtl.h (alloc_DEPS_LIST): Update signature.
6990 * sched-int.h (ds_t): Change typedef to 'int'.
6991 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6992
611a596b 69932006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
6994
6995 * haifa-sched.c (try_ready): Change condition to restore
6996 non-speculative pattern of the instruction.
6997 (process_insn_depend_be_in_spec): Code to keep probability of the
6998 speculative dependence non-decreasing.
6999
a92178b8 70002006-03-30 Jie Zhang <jie.zhang@analog.com>
7001
7002 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
7003 (single_move_for_movmem): ... this. Also change all uses.
7004 (bfin_expand_strmov): Renamed to...
7005 (bfin_expand_movmem): ... this. Also change all uses.
7006 * config/bfin/bfin.md (movstrsi): Renamed to...
7007 (movstrsi): ...this.
7008
2166ab0e 70092006-03-30 Paolo Bonzini <bonzini@gnu.org>
7010
7011 PR tree-optimization/26830
7012
7013 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
7014 (copy_prop_visit_stmt): Remove write-only variable ann.
7015 (init_copy_prop): Check variable loop depth here. Do not simulate
7016 memory-tag and virtual operand PHIs except for store copy prop.
7017
1fd05f7f 70182006-03-30 Richard Guenther <rguenther@suse.de>
7019
7020 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
7021 variants with double arguments.
7022
64319b3e 70232006-03-29 David Edelsohn <edelsohn@gnu.org>
7024
7025 * genpreds.c (write_tm_constrs_h): Delete variable p.
966eae04 7026 * genconditions.c (write_header): Add tm-constrs.h to included
7027 headers.
61b11029 7028 * genpeep.c (main): Add toplev.h to included headers.
2ac9bd76 7029 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
420b1776 7030 (build/genpeep.o): Add toplev.h dependency.
764fce6b 7031 * config/rs6000/constraints.md: Add "W" constraint.
64319b3e 7032
1088cbc4 70332006-03-29 Roger Sayle <roger@eyesopen.com>
7034
7035 * stor-layout.c (mode_for_size_tree): Remove restiction on type
7036 sizes by correctly testing whether the size fits a host integer.
7037 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
7038 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
7039 SImode range for the default sizetype and bitsizetype.
7040
322fdac2 70412006-03-29 Roger Sayle <roger@eyesopen.com>
7042
7043 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
7044 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
7045 quickly if the argument is already of the correct type.
7046 Call fold_build1 instead of build1. Tidy up blank lines.
7047
a014ec0f 70482006-03-29 David Edelsohn <edelsohn@gnu.org>
7049
7050 * genemit.c (main): Add tm-constrs.h to included headers.
7051 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
7052 * genpeep.c (main): Add tm-constrs.h to included headers.
7053 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
7054 (write_tm_constrs_h): this and write complete file.
7055 (write_tm_preds_h): Do not emit satisfies_constraint fns.
7056 (write_insn_preds_c): Add tm-constrs.h to included headers.
7057 (gen_constrs): New variable.
7058 (parse_option): Parse "-c".
7059 (main): Invoke write_tm_constrs_h.
7060 * genrecog.c (write_header): Add tm-constrs.h to included headers.
7061 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
7062 (object_out_file): Add tm-constrs.h dependency.
7063 (insn-emit.o): Same.
7064 (insn-output.o): Same.
7065 (insn-peep.o): Same.
7066 (insn-preds.o): Same.
7067 (insn-recog.o): Same.
7068 (tm-constsr.h): New target.
7069 (s-constrs-h): New target.
7070
7071 * config/rs6000/constraints.md: New file.
7072 * config/rs6000/rs6000.c: Include tm-constrs.h.
7073 (num_insn_constant_wide): Convert to satisfies_constraint.
7074 (rs6000_rtx_costs): Convert to satisfies_constraint.
7075 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
7076 (CONST_OK_FOR_LETTER_P): Delete.
7077 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7078 (EXTRA_CONSTRAINT): Delete.
7079 (EXTRA_MEMORY_CONSTRAINT): Delete.
7080 (EXTRA_ADDRESS_CONSTRAINT): Delete.
7081 * config/rs6000/predicates.md: Convert to satisfies_constraint.
7082 * config/rs6000/rs6000.md: Include constraints.md. Convert to
7083 satisfies_constraint.
7084
7085 * config/i386/i386.c: Include tm-constrs.h.
7086
04bd1b81 70872006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
7088
7089 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
7090 * tree-data-ref.c (find_data_references_in_loop,
7091 compute_data_dependences_for_loop): Use pointers to VEC.
7092 (analyze_all_data_dependences): Adjust calls.
7093 * tree-data-ref.h (find_data_references_in_loop,
7094 compute_data_dependences_for_loop): Adjust declarations.
7095 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
7096 compute_data_dependences_for_loop.
7097
a694a165 70982006-03-29 Paul Brook <paul@codesourcery.com>
7099
7100 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
7101 (movdf_vfp): Ditto.
7102
96710944 71032006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
7104
7105 PR tree-optimization/26859
7106 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
7107 division by zero.
7108 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
7109 for the step after fold_convert.
7110
f5bccbd1 71112006-03-29 Paul Brook <paul@codesourcery.com>
7112
7113 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
7114 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
7115
5f458503 71162006-03-29 Paul Brook <paul@codesourcery.com>
7117
7118 PR middle-end/23623
7119 * targhooks.c (default_narrow_bitfield): New fuction.
7120 * targhooks.h (default_narrow_bitfield): add prototype.
7121 * target.h (gcc_target): Add narrow_volatile_bitfield.
7122 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
7123 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
7124 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
7125 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
7126
36868490 71272006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
7128
d86ccd2c 7129 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
36868490 7130 tmake_file.
7131 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
7132 (NR_C_MODES): Add TDmode, DDmode and SDmode.
7133 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
7134 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
7135 (s390_function_arg_float): Allow SDmode and DDmode values to be
7136 passed in floating point registers.
d86ccd2c 7137 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
36868490 7138 check with SCALAR_FLOAT_MODE_P.
7139 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
7140
0840f4fe 71412006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
7142
7143 PR tree-optimization/25985
7144 * tree-ssa-loop-niter.c (number_of_iterations_le,
7145 number_of_iterations_ne): Make comments more precise.
7146 (number_of_iterations_cond): Add only_exit argument. Use the
7147 fact that signed variables do not overflow only when only_exit
7148 is true.
7149 (loop_only_exit_p): New.
7150 (number_of_iterations_exit): Pass result of loop_only_exit_p to
7151 number_of_iterations_cond.
7152
bc06978f 71532006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
7154
7155 PR tree-optimization/26643
7156 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
7157 bit_field_refs.
7158
344d49a6 71592006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
7160
7161 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
7162 (divsi3_i4_int): Likewise.
7163
522701ef 71642006-03-28 Roger Sayle <roger@eyesopen.com>
2b4bed8a 7165
7166 * expr.c (emit_group_store): Only create a new pseudo reg if the
7167 quantity it needs to hold isn't already a suitable pseudo.
7168
1ef27f86 71692006-03-28 Jeff Law <law@redhat.com>
7170
7171 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
7172 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
7173
a3cf48f5 71742006-03-28 Roger Sayle <roger@eyesopen.com>
7175
7176 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
7177 the equivalent ~X & Y, and the symmetry related transformations.
d86ccd2c 7178 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
a3cf48f5 7179 ~X & Y, and symmetry related transforms.
7180
b2814640 71812006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7182
7183 Revert my 2006-03-27 patches.
7184
c348f27f 71852006-03-28 Roger Sayle <roger@eyesopen.com>
7186
7187 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
7188 ~(T1)X, when T1 and T2 are integer types of the same precision
7189 and (T2)X isn't an extension.
7190
d65e4929 71912006-03-28 Jeff Law <law@redhat.com>
7192
7193 PR tree-optimization/26796
7194 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
7195 need EH edge cleanups rather than purging them immediately.
7196 (eliminate_degenerate_phis): Handle queued EH cleanups.
7197
b587b882 71982006-03-28 Daniel Berlin <dberlin@dberlin.org>
7199
7200 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
7201 from parent_var.
7202
ecf7be71 72032006-03-27 Roger Sayle <roger@eyesopen.com>
7204
7205 PR middle-end/22524
7206 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
7207 cast BIT_NOT_EXPR operand to the correct type.
7208
41c7a324 72092006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
7210
7211 * tree-loop-linear.c: Don't include varray.h.
7212 (gather_interchange_stats, try_interchange_loops,
7213 linear_transform_loops): Use VEC instead of VARRAY.
7214 * lambda-mat.c: Don't include varray.h.
7215 * tree-chrec.c: Same.
7216 * lambda-trans.c: Same.
7217 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
7218 VEC instead of VARRAY.
7219 * tree-vectorizer.h: Idem.
7220 * tree-data-ref.c (dump_data_references,
7221 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
7222 initialize_data_dependence_relation, finalize_ddr_dependent,
7223 compute_all_dependences, find_data_references_in_loop,
7224 compute_data_dependences_for_loop, analyze_all_data_dependences,
7225 free_dependence_relation, free_dependence_relations,
7226 free_data_refs): Idem.
7227 * tree-data-ref.h (data_reference_p, subscript_p): New.
7228 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
7229 VEC instead of VARRAY.
7230 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
7231 (find_data_references_in_loop, compute_data_dependences_for_loop,
7232 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
7233 dump_data_dependence_relations, free_dependence_relations,
7234 free_data_refs): Adjust declaration.
7235 (lambda_transform_legal_p): Move declaration here...
7236 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
7237 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
7238 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
7239 vect_analyze_data_refs): Use VEC instead of VARRAY.
7240 * lambda.h (lambda_transform_legal_p): ...from here.
7241 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
7242 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
7243 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
7244 tree-chrec.o): Don't depend on VARRAY_H.
7245
db888ba8 72462006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7247
7248 * rtl.def (Copyright): Update date.
7249 (DEPS_LIST): Change type of the second operand to 'int'.
7250 * target.h (Copyright): Update date.
7251 (struct gcc_target.speculate_insn): Change type of the second parameter
7252 to 'int'.
7253 * lists.c (Copyright): Update date.
7254 (alloc_DEPS_LIST): Change signature. Update reference to the second
7255 operand of the DEPS_LIST.
7256 (copy_DEPS_LIST_list): Update reference to the second operand of the
7257 DEPS_LIST.
7258 * rtl.h (Copyright): Update date.
7259 (alloc_DEPS_LIST): Update signature.
7260 * sched-int.h (Copyright): Update date.
7261 (ds_t): Change typedef to 'int'.
7262 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
7263
a6c9503b 72642006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7265
7266 * haifa-sched.c (Copyright): Update date.
7267 (try_ready): Change condition to restore non-speculative pattern
7268 of the instruction.
7269 (process_insn_depend_be_in_spec): Code to keep probability of the
7270 speculative dependence non-decreasing.
7271
345c1cc2 72722006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
7273
7274 * regrename.c (replace_oldest_value_addr): Initialize a variable to
7275 shut up the compiler.
7276
16dccd22 72772006-03-27 J"orn Rennecke <joern.rennecke@st.com>
7278
7279 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
7280 to use lib prefix for target.
7281 ($(T)libic_invalidate_array_4-200.a): Likewise.
7282 ($(T)libic_invalidate_array_4a.a): Likewise.
7283
3a6994f8 72842006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
7285 J"orn Rennecke <joern.rennecke@st.com>
7286
7287 * superh.opt: New file.
7288 * sh.c (boardtype, osruntime): Remove.
7289 * superh.h (SUBTARGET_OPTIONS): Remove.
7290 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
7291
7292 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
7293 arguments with ^ and/or [].
7294
7295 * config.gcc (sh-*-*): Add quoting to account for quirk of
7296 Solaris /bin/sh.
7297 Replace == with = in enable_incomplete_targets test.
7298
7299 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
7300 with MASK_LITTLE_ENDIAN.
7301
7302 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
7303 * config/sh/sh.opt: Added to some comments.
7304 * config/sh/superh.h: Removed some chaff.
7305
7306 * config/sh/sh.opt: Add m4-[1234]00* options.
7307 * config/sh/sh.c (sh_handle_option): Likewise.
7308 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
7309 (ic_invalidate_array_4-100.o): New rule.
7310 ($(T)libic_invalidate_array_4-100.a): Likewise.
7311 (ic_invalidate_array_4-200.o): Likewise.
7312 ($(T)libic_invalidate_array_4-200.a): Likewise.
7313 (ic_invalidate_array_4a.o): Likewise.
7314 ($(T)libic_invalidate_array_4a.a): Likewise.
7315 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
7316 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
7317 m4-200*, and m4a*.
7318 * config/sh/crt1.asm: Merged in profiling code.
7319 * config/sh/superh.h (STARTFILE_SPEC): Override.
7320 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
7321 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
7322 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
7323
7324 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
7325 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
7326 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
7327
7328 * sh.opt (mpretend-cmove): New option.
7329 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
7330 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
7331 (movsicc): Add TARGET_PRETEND_CMOVE code.
7332
8f1128bb 73332006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
7334
d86ccd2c 7335 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
8f1128bb 7336 s390_class_max_nregs): New function prototypes.
7337 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
7338 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
7339 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
7340 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
7341
e124d6c7 73422006-03-26 Geoffrey Keating <geoffk@apple.com>
7343
7344 * dwarf2out.c (add_location_or_const_value_attribute): Call
7345 tree_add_const_value_attribute if nothing else works.
7346 (reference_to_unused): New.
7347 (rtl_for_decl_init): Use reference_to_unused to decide whether
7348 to output an initializer.
7349
14a01286 73502006-03-27 Alan Modra <amodra@bigpond.net.au>
7351
7352 PR target/26459
7353 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
7354 peephole removing spe frob_di_df_2.
7355
b44d1046 73562006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
7357
7358 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
7359 (subscript_dependence_tester_1): Declared.
7360 (print_dir_vectors, print_dist_vectors): New.
7361 (debug_data_dependence_relation): New.
7362 (dump_data_dependence_relation): Print more details.
7363 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
7364 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
7365 (save_dist_v, save_dir_v, add_outer_distances,
7366 build_classic_dist_vector_1): New.
7367 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
7368 Don't test for lambda_vector_lexico_pos.
7369 (same_access_functions, add_multivariate_self_dist,
7370 add_other_self_distances, dir_from_dist): New.
d86ccd2c 7371 (build_classic_dir_vector): Replace implementation almost identical to
b44d1046 7372 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
7373 dir_from_dist.
7374 (subscript_dependence_tester_1): New.
7375 (subscript_dependence_tester): Handle the lexicographically negative
7376 distance vectors by recomputing the dependence relation.
7377 (compute_affine_dependence): Remove parameter loop_nest_depth.
7378 (compute_self_dependence): Don't call compute_subscript_distance.
7379 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
7380 Add a parameter for the loop_nest.
7381 (find_loop_nest_1, find_loop_nest): New.
7382 (compute_data_dependences_for_loop): Compute the loop nest, and give
7383 up if the nest is not well formed.
7384 * tree-data-ref.h (loop_p): New.
d86ccd2c 7385 (struct data_dependence_relation): Replace size_vect field with
b44d1046 7386 loop_nest, a vec of loops.
7387 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
7388 (DDR_LOOP_NEST): New.
7389 (print_dir_vectors, print_dist_vectors,
7390 debug_data_dependence_relation): Declared.
7391 (index_in_loop_nest): New.
7392 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
7393 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
7394 distance.
7395
3bc6a7ce 73962006-03-25 Adam Nemet <anemet@caviumnetworks.com>
7397
7398 * simplify-rtx.c (simplify_relational_operation): Call
7399 simplify_relational_operation_1 even if mode is VOIDmode.
7400
604eef2c 74012006-03-25 Daniel Berlin <dberlin@dberlin.org>
7402
7403 PR tree-optimization/26804
7404 * tree.h (DECL_CALL_CLOBBERED): New macro.
7405 (tree_decl_common): Add call_clobbered_flag.
7406 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
7407 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
7408 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
7409 (mark_non_addressable): Ditto.
7410 * tree-ssa.c (verify_call_clobbered): New function.
7411 (verify_alias_info): Use it.
7412 * tree-pass.h (pass_reset_cc_flags): New prototype.
7413 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
7414 (reset_cc_flags): New function.
7415 * passes.c (init_optimization_passes): Call reset_cc_flags after
7416 initializing referenced_vars.
7417
c2c96591 74182006-03-25 Uros Bizjak <uros@kss-loka.si>
7419 Roger Sayle <roger@eyesopen.com>
7420
7421 PR middle-end/26717
7422 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
7423 to 1.0 for non-real operands. Implement A / A optimization for
7424 complex operands.
7425
0a3cb44d 74262006-03-25 H.J. Lu <hongjiu.lu@intel.com>
7427
7428 * config/i386/i386.c (size_cost): Correct the comment for
7429 cost of storing fp registers.
7430 (i386_cost): Likewise.
7431 (i486_cost): Likewise.
7432 (pentium_cost): Likewise.
7433 (pentiumpro_cost): Likewise.
7434 (k6_cost): Likewise.
7435 (athlon_cost): Likewise.
7436 (k8_cost): Likewise.
7437 (pentium4_cost): Likewise.
7438 (nocona_cost): Likewise.
7439 (generic64_cost): Likewise.
7440 (generic32_cost): Likewise.
7441
0d2d3527 74422006-03-24 Denis Chertykov <denisc@overta.ru>
7443
7444 * config/avr/avr-protos.h (extra_constraint): Delete.
7445 (extra_constraint_Q): New declaration.
7446 * config/avr/constraints.md: New file.
7447 * config/avr/avr.md: Include it.
7448 (REG_X, REG_Y, REG_Z, REG_W): New constants.
7449 (TMP_REGNO, ZERO_REGNO): Likewise.
7450 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
7451 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
7452 (extra_constraint): Delete.
7453 (extra_constraint_Q): Test for memory constraint 'Q'.
7454 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
7455 (REG_CLASS_FROM_LETTER): Delete.
7456 (CONST_OK_FOR_LETTER_P): Delete.
7457 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7458 (EXTRA_CONSTRAINT): Delete.
7459 (TMP_REGNO): Delete.
7460 (ZERO_REGNO): Delete.
7461
2f067d14 74622006-03-24 Jeff Law <law@redhat.com>
7463
7464 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
7465 directly. Call mark_new_vars_to_rename slightly earlier.
7466
f543041b 74672006-03-24 Geoffrey Keating <geoffk@apple.com>
7468
bda642f9 7469 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
7470 (is_cxx): Likewise.
7471 (gen_compile_unit_die): Use new language types for Objective-C and
7472 Objective-C++.
7473 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
7474 DW_LANG_C_plus_plus.
7475
f543041b 7476 PR 26793
7477 * config/t-darwin (crt3.o): Work around bug 26840.
7478 * config/darwin-crt3.c: Rewrite.
7479 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
7480
0c573f98 74812006-03-24 Carlos O'Donell <carlos@codesourcery.com>
7482
7483 * doc/invoke.texi: Document -femit-class-debug-always
7484 * common.opt: Add -femit-class-debug-always.
7485
1e280623 74862006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
7487
7488 * config/s390/s390.c (s390_decompose_address): Allow SImode for
7489 index and base register.
7490 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
7491 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
7492 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
7493 REGNO_OK_FOR_INDEX_P.
7494 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
7495 ADDR_REGNO_P.
7496 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
7497 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
7498 REG_OK_FOR_BASE_P): Definitions removed.
7499
97492514 75002006-03-24 Jakub Jelinek <jakub@redhat.com>
7501
7502 PR middle-end/26611
7503 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
7504 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
7505 set yet or weren't marked as local yet.
7506
260988c8 75072006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
7508
7509 * regrename.c (scan_rtx_address): Initialize a variable to shut up
7510 the compiler.
7511
439e6f39 75122006-03-24 Eric Botcazou <ebotcazou@adacore.com>
7513
7514 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
7515 (rs6000_legitimate_small_data_p): Delete.
7516 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
7517 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
7518 and make static. Add forward declaration. Update uses.
7519 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
7520 of offsettable_memref_p.
7521 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
7522 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
7523
ea54ad41 75242006-03-24 Jeff Law <law@redhat.com>
7525
7526 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
7527 around bug in immediate-use iterator.
7528
507573d8 75292006-03-24 Alan Modra <amodra@bigpond.net.au>
7530
7531 PR target/26607
7532 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
7533 or __LITTLE_ENDIAN__.
7534
d6005df3 75352006-03-23 J"orn Rennecke <joern.rennecke@st.com>
7536
7537 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
7538 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
7539 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
7540 * config/sh/sh.opt (mdiv=): Amend description.
7541 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
7542 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
7543 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
7544 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
7545 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
7546 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
7547 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
7548 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
7549 TARGET_DIVIDE_CALL_FP.
7550
e5f7d6da 75512006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7552
7553 * haifa-sched.c (choose_ready): Fix type of the local variable.
7554 Move local variables. Add comment.
7555 (check_reg_live): Change signature. Make callable from debugger.
7556 * sched-int.h (check_reg_live): Update signature.
7557 * sched-ebb.c (check_reg_live): Update parameters.
7558 * sched-rgn.c (check_reg_live): Ditto.
7559 (region_head_or_leaf_p): Check pointer before dereferencing.
7560 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
7561 before reload on optimization levels below 1.
7562
f3c616bc 75632006-03-23 Richard Henderson <rth@redhat.com>
7564
b5c0ec3d 7565 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
7566 tls symbols.
7567
f3c616bc 7568 PR target/26347
7569 * config/alpha/predicates.md (local_symbolic_operand): Reject
7570 weak symbols.
7571
4ae20934 75722006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
7573
7574 PR tree-opt/26795
7575 * tree-ssa-pre.c (create_value_expr_from): Don't reject
7576 expressions which have overflowed constants.
7577
8b2453d4 75782006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
7579
7580 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
7581
d6a6ac20 75822006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
7583
7584 * cfgloopmanip.c (create_loop_notes): Removed.
7585 * final.c (final_scan_insn): Do not handle loop notes.
7586 * jump.c (squeeze_notes): Ditto.
7587 * cfglayout.c (skip_insns_after_block,
7588 duplicate_insn_chain): Ditto.
7589 * cfgcleanup.c (rest_of_handle_jump2): Do not call
7590 create_loop_notes.
7591 * cfgloop.h (create_loop_notes): Declaration removed.
7592
372df111 75932006-03-23 Richard Sandiford <richard@codesourcery.com>
7594
7595 * varasm.c (output_constant_pool): Restore fnname and fndecl
7596 arguments.
7597 (assemble_start_function): Adjust call accordingly.
7598 (assemble_end_function): Likewise.
7599
c0e40292 76002006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7601
87861324 7602 PR mudflap/26789
909f55ac 7603 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
7604
87861324 7605 PR mudflap/26790
c0e40292 7606 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
7607
87011ef0 76082006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7609
7610 PR driver/22600
7611 * system.h (ICE_EXIT_CODE): New macro.
7612 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
7613 (diagnostic_action_after_output): Likewise.
7614 * gcc.c (fatal_ice): New function.
7615 (execute): Use it instead of fatal.
7616 (fancy_abort): Likewise.
7617 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
7618
e8820970 76192006-03-22 Jeff Law <law@redhat.com>
7620
7621 * loop-unroll.c (analyze_iv_to_split_insn): Handle
7622 iv_analyze_result returning false.
7623
2789d110 76242006-03-22 Jie Zhang <jie.zhang@analog.com>
7625
7626 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
7627
30b822ea 76282006-03-22 Richard Henderson <rth@redhat.com>
7629
7630 PR middle-end/26084
7631 * except.c (duplicate_eh_regions_0): New.
7632 (duplicate_eh_region_1): Duplicate the children of the node as
7633 well as the node itself. Link them up properly.
7634 (duplicate_eh_region_2): Merge into ...
7635 (duplicate_eh_regions): ... here. Take copy_region argument, and
7636 copy only a sub-tree if asked. Simplify copying and fixup.
7637 (eh_region_outer_p): New.
7638 * except.h (duplicate_eh_regions): Update decl.
7639 (eh_region_outer_p): Declare.
7640 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
7641 (lower_omp_master): Likewise.
7642 (lower_omp_ordered): Likewise.
7643 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
7644 (move_stmt_r): Use it to remap labels. Handle recursion vs
7645 remap_decls_p properly.
7646 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
7647 (find_outermost_region_in_block): New.
7648 (new_label_mapper): New.
7649 (move_sese_region_to_fn): Copy eh information to the new function
7650 properly.
7651 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
7652 argument.
7653 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
7654 number.
7655
fc0cd9d4 76562006-03-22 Richard Sandiford <richard@codesourcery.com>
7657
7658 * doc/md.texi (-mshared): Mention that -mshared code can be linked
7659 into shared libraries.
7660
c60dcd8c 76612006-03-22 Richard Sandiford <richard@codesourcery.com>
7662
7663 * doc/md.texi: Refer to i386/constraints.md instead of
7664 i386/predicates.md.
7665 * config/i386/constraints.md: New file, extracted from...
7666 * config/i386/predicates.md: ...here.
7667 * config/i386/i386.md: Include constraints.md.
7668
f0f2eb24 76692006-03-21 Jason Merrill <jason@redhat.com>
7670
e82d310b 7671 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
7672
f0f2eb24 7673 PR middle-end/20297
7674 * expr.c (init_block_move_fn): Force default visibility.
7675 (init_block_clear_fn): Likewise.
7676 * builtins.c (expand_builtin_fork_or_exec): Likewise.
7677 * targhooks.c (default_external_stack_protect_fail): Likewise.
7678
1b6b10a9 76792006-03-21 Richard Sandiford <richard@codesourcery.com>
7680
7681 * config/mips/predicates.md (const_call_insn_operand): Allow direct
7682 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
7683 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
7684 Use TARGET_OLDABI instead of !TARGET_NEWABI.
7685 (loadgp): Use mips_current_loadgp_style.
7686 (loadgp_noshared): New pattern.
7687 (sibcall_internal): Use MIPS_CALL.
7688 (sibcall_value_internal): Likewise.
7689 (sibcall_value_multiple_internal): Likewise.
7690 (call_internal): Likewise.
7691 (call_value_internal): Likewise.
7692 (call_value_multiple_internal): Likewise.
7693 (call_split): Use MIPS_CALL and add an 'S' constraint.
7694 (call_value_split): Likewise.
7695 (call_value_multiple_split): Likewise.
7696 * config/mips/mips.opt (-mabicalls): Tweak docstring.
7697 (-mshared): New option.
7698 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
7699 (mips_current_loadgp_style): Declare.
7700 * config/mips/mips.c (mips_classify_symbol): Avoid using
7701 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
7702 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
7703 TARGET_ABSOLUTE_ABICALLS.
7704 (override_options): Adjust comments. Improve the warning that is
7705 issued when -mabicalls and -G are used together.
7706 (mips_file_start): Remove comment.
7707 (mips_current_loadgp_style): New function.
7708 (mips_gnu_local_gp): New variable.
7709 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
7710 LOADGP_ABSOLUTE.
7711 (mips_output_function_prologue): Use mips_current_laodgp_style.
7712 (mips_expand_prologue): Call mips_emit_loadgp before emitting
7713 the cprestore instruction.
7714 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
7715 live for TARGET_ABSOLUTE_ABICALLS.
7716 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
7717 (ASM_SPEC): Pass down -mshared and -mno-shared.
7718 (MIPS_CALL): New macro.
7719 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
7720 definition.
7721 * doc/invoke.texi (-mabicalls): Update documentation.
7722 (-mshared): Document.
7723
44348c35 77242006-03-21 Steve Ellcey <sje@cup.hp.com>
7725
7726 * config/ia64/unwind-hpux.c: New file.
7727 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
7728
729c6839 77292006-03-21 Steve Ellcey <sje@cup.hp.com>
7730
7731 PR libgomp/26384
7732 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
7733
bb22ee7f 77342006-03-21 Jeff Law <law@redhat.com>
7735
7736 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
7737 type conversions of a VR_VARYING source to a wider type.
7738
517cabaa 77392006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
7740
7741 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
7742 tm_file on Solaris 10 and later.
7743 (sparc64-*-solaris2*): Likewise.
7744 (sparc-*-solaris2*): Likewise.
7745 * config/sol26.h: Rename to config/sol2-6.h.
7746 * config/sol2-10.h: New file.
7747
8168e38d 77482006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
7749
7750 PR tree-opt/26781
7751 * tree-ssa-pre.c (create_component_ref_by_pieces):
7752 Handle STRING_CST.
7753
6da06c90 77542006-03-21 Jakub Jelinek <jakub@redhat.com>
7755
7756 PR c++/26690
7757 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
7758 return it immediately.
7759
c72f0286 77602006-03-21 Michael Matz <matz@suse.de>
7761
7762 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
7763 New members.
7764 (remove_arc, add_arc): Update num_out_arcs member.
7765 (set_out_arc_insns_equiv_num): Returns nothing instead of number
7766 of out arcs.
7767 (cache_presence): New function.
7768 (compare_states_for_equiv): New function.
7769 (state_is_differed): Don't take number of outargs, adjust callers.
7770 Use new invariant for speeding up.
7771 (init_equiv_class): Create initial classes based on sorted
7772 input.
7773 (partition_equiv_class): Don't track out_arcs_num.
7774 (evaluate_equiv_classes): Call cache_presence on all states and
7775 sort them.
7776
00cb30dc 77772006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
7778
7779 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
7780 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
7781 (bfin_valid_reg_p): Test for pseudos explicitly and use only
7782 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
7783 callers changed.
7784 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
7785 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
7786 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
7787 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
7788 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
7789 macros.
7790 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
7791 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
7792 (REGNO_REG_CLASS): ARGP is in PREGS.
7793 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
7794 IREGS.
7795 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
7796 to deal with those addresses.
7797 * addresses.h: New file.
7798 * caller-save.c: Include "addresses.h".
7799 (init_caller_save): Use new base_reg_class function.
7800 * rtl-factoring.c: Include "addresses.h".
7801 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
7802 * recog.c: Include "addresses.h".
7803 (preprocess_constraints): Use new base_reg_class function.
7804 * regrename.c: Include "addresses.h".
7805 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
7806 functions. Keep track of a new var INDEX_CODE to compute valid
7807 classes.
7808 (replace_oldest_value_addr): Likewise.
7809 (replace_oldest_value_mem): Use base_reg_class.
7810 * reload.c: Include "addresses.h".
7811 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
7812 (find_reloads): Use new base_reg_class function.
7813 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
7814 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
7815 all callers and prototype changed.
7816 * reload1.c: Include "addresses.h".
7817 (maybe_fix_stack_asms): Use base_reg_class.
7818 * regclass.c: Include "addresses.h".
7819 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
7820 (init_reg_autoinc): Use new base_reg_class function.
7821 (record_reg_classes): Likewise.
7822 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
7823 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
7824 Use new args to compute necessary class.
7825
7826 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
7827 regrename.o, rtl-factoring.o): Update dependencies.
7828 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
7829 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
7830 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
7831 REG_OK_FOR_INDEX_P): Delete documentation.
7832
f7ae7dc1 78332006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
7834
7835 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
7836 from V7 to V9 for Solaris 7 and above.
7837
5ff22aea 78382006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
7839
7840 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
7841 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
7842 argument pointers may not alias any other storage.
7843 * common.opt: Define option -fargument-noalias-anything.
7844 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
7845 alias semantics is specified by flag_argument_noalias > 2.
7846
f2df2401 78472006-03-20 Jeff Law <law@redhat.com>
d1d2af7d 7848
7849 * tree-pass.h (pass_phi_only_copy_prop): Delete.
7850 (pass_phi_only_cprop): Declare.
7851 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
7852 with phi_only_cprop
7853 * tree-ssa-dom.c (degenerate_phi_result): New function.
7854 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
7855 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
7856 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
7857 (eliminate_degenerate_phis): Likewise.
7858 (pass_phi_only_cprop): New pass descriptor.
7859 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
7860 support code. Callers updated.
7861 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
7862 (store_copy_prop): Likewise.
7863 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
7864
799435d8 78652006-03-20 Jason Merrill <jason@redhat.com>
7866
7867 PR c++/21764
7868 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
7869 (push_visibility, pop_visibility): Likewise.
7870 * c-pragma.h: Declare them.
7871
078bb30c 78722006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
7873
7874 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
7875
7876 * config/sh/sh.c (find_regmode_weight): Change the type of the first
7877 parameter and use get_ebb_head_tail.
7878 (sh_md_init_global): Adjust uses of find_regmode_weight.
7879
1edb3690 78802006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
7881
7882 * function.h (struct function) <x_tail_recursion_reentry>:
7883 Rename to x_stack_check_probe_note.
7884 (tail_recursion_reentry): Rename to stack_check_probe_note.
7885 * function.c: Replace tail_recursion_reentry with
7886 stack_check_probe_note everywhere.
7887 (expand_function_start): Only emit a note for
7888 stack_check_probe_note with -fstack-protect.
7889 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
7890
7891 * emit-rtl.c (remove_unnecessary_notes): Remove.
7892 (pass_remove_unnecessary_notes): Remove.
7893 * rtl.h (remove_unnecessary_notes): Remove prototype.
7894 * final.c (final_start_function): Don't call remove_unnecessary_notes.
7895 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
7896 * passes.c (pass_remove_unnecessary_notes): Don't run it.
7897
0e8f5fde 78982006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
7899
7900 PR tree-opt/26629
7901 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
7902 (valid_in_set): Handle ARRAY_REF.
7903 Change "if min_variant or VH" to asserts.
7904 (create_component_ref_by_pieces): Handle ARRAY_REF.
7905 (create_expression_by_pieces): Likewise.
7906 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
7907
dd030c96 79082006-03-20 David Edelsohn <edelsohn@gnu.org>
7909
7910 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
7911 is operand of switch, not str[0].
7912
0178c458 79132006-03-20 Alan Modra <amodra@bigpond.net.au>
7914
7915 * config/rs6000/rs6000.c (rs6000_handle_option): Use
7916 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
7917
3f11e6d5 79182006-03-19 David Edelsohn <edelsohn@gnu.org>
7919
7920 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
7921 end of insn_extra_address_constraint declaration.
7922
43edbc2e 79232006-03-19 David Edelsohn <edelsohn@gnu.org>
7924
7925 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
7926 (no-sum-in-toc): Same.
7927 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
7928 variables.
7929 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
7930 NO_FP_IN_TOC for -fPIC instead of mask.
7931
7932 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
7933 (BOOT_LDFLAGS): Delete.
7934 (LDFLAGS): Delete.
7935 * config/rs6000/t-aix52: Same.
7936
7937 * config/rs6000/rs6000.md (store_multiple_power): Delete.
7938 (stmsi[345678]_power): New.
7939
65df3cb8 79402006-03-17 Steve Ellcey <sje@cup.hp.com>
7941
7942 * config/ia64/ia64.opt: Add empty line to end of file.
7943
e068b646 79442006-03-17 Richard Guenther <rguenther@suse.de>
7945
7946 PR middle-end/26721
7947 * builtins.c (get_pointer_alignment): For component style references
7948 adjust alignment to the component type alignment. Make sure
7949 to adjust alignment for component access of constants.
7950
72a99552 79512006-03-17 David Edelsohn <edelsohn@gnu.org>
7952
7953 * config/rs6000/rs6000.md (strlensi): Emit barrier after
7954 unconditional jump.
7955
086571a4 79562006-03-17 Paul Brook <paul@codesourcery.com>
7957
7958 * doc/install.texi: Docuemnt --with-mode.
7959 * config.gcc: Add --with-mode for arm*-*-*.
7960 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
7961
be7f5947 79622006-03-17 J"orn Rennecke <joern.rennecke@st.com>
7963
7964 * sh.c (max_labelno_before_reorg): New variable.
7965 (sh_reorg): Initialize it.
7966 (find_barrier): Check max_labelno_before_reorg before using
7967 label_to_alignment. Take length of explicit alignment insns
7968 into account. When seeing a UNSPECV_CONST_END, return it.
7969
7970 * sh.c (fixup_mova): Set mode of affected label to QImode.
7971 (untangle_mova): New function.
7972 (find_barrier): Use it. Check mode of label before decrementing
7973 num_mova.
7974 (sh_reorg): Likewise.
7975 Set mode of all insns back to VOIDmode.
7976
7977 * sh.c (MOVA_LABELREF): New macro.
7978 (mova_p, fixup_mova, sh_reorg): Use it.
7979 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
7980 ADDR_DIFF_VEC matches mova.
7981
e056afd2 79822006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
7983
7984 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
7985 with ATTRIBUTE_UNUSED.
7986
72099bdb 79872006-03-17 Alexandre Oliva <aoliva@redhat.com>
7988
7989 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
7990 pointer, instead of assuming it is possible to derive the
7991 correct args size from a call insn.
7992
97590808 79932006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7994
7995 * rtl.h (CONST_INT_P): Define.
7996 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
7997 instead of GET_CODE(x) == CONST_INT.
7998 (vax_rtx_costs): Likewise.
7999 (vax_output_int_move): Likewise.
8000 (vax_output_int_add): Likewise.
8001 (legitimate_constant_address_p): Likewise.
8002 (index_term_p): Likewise.
8003 * config/vax/vax.h (PRINT_OPERAND): Likewise.
8004 * config/vax/vax.md (and<mode>3): Likewise.
8005 (ashrsi3): Likewise.
8006 (extv): Likewise.
8007 (movstricthi): Likewise.
8008 (movstrictqi): Likewise.
8009 (rotrsi3): Likewise.
8010 (five unnamed insns): Likewise.
8011
d08d29c0 80122006-03-16 Geoffrey Keating <geoffk@apple.com>
8013
8014 * doc/tm.texi (SDB and DWARF): Add extra parameter to
8015 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
8016 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
8017 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
8018 Pass to ASM_OUTPUT_DWARF_OFFSET.
8019 * dwarf2out.c (debug_frame_section): New.
8020 (output_call_frame_info): Use debug_frame_section. Pass it to
8021 dw2_asm_output_offset.
8022 (output_die): Pass appropriate section to dw2_asm_output_offset.
8023 (output_compilation_unit_header): Likewise.
8024 (output_pubnames): Likewise.
8025 (output_aranges): Likewise.
8026 (enum dw_val_class): Break dw_val_class_lbl_offset into
8027 dw_val_class_lineptr and dw_val_class_macptr.
8028 (add_AT_lbl_offset): Delete.
8029 (add_AT_lineptr): New.
8030 (add_AT_macptr): New.
8031 (AT_lbl): Expect a lineptr or macptr.
8032 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
8033 (attr_checksum): Likewise.
8034 (same_dw_val_p): Likewise.
8035 (size_of_die): Likewise.
8036 (value_format): Likewise.
8037 (output_die): Likewise.
8038 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
8039 add_AT_lbl_offset.
8040 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
8041 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
8042 * config/darwin-protos.h (darwin_file_start): New.
8043 (darwin_asm_output_dwarf_offset): New.
8044 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
8045 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
8046 darwin_file_start.
8047 * config/darwin.c (darwin_emit_unwind_label): Don't output label
8048 if not EH section; simplify.
8049 (darwin_file_start): New.
8050 (darwin_asm_output_dwarf_offset): New.
8051 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
8052 mark as 'debug'.
8053 (DEBUG_INFO_SECTION): Likewise.
8054 (DEBUG_ABBREV_SECTION): Likewise.
8055 (DEBUG_ARANGES_SECTION): Likewise.
8056 (DEBUG_MACINFO_SECTION): Likewise.
8057 (DEBUG_LINE_SECTION): Likewise.
8058 (DEBUG_LOC_SECTION): Likewise.
8059 (DEBUG_PUBNAMES_SECTION): Likewise.
8060 (DEBUG_STR_SECTION): Likewise.
8061 (DEBUG_RANGES_SECTION): Likewise.
8062 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
8063 (ASM_OUTPUT_DWARF_OFFSET): New.
8064
515fdcc2 80652006-03-16 Joseph S. Myers <joseph@codesourcery.com>
8066
8067 * config.gcc (tm_defines): Always add to previous value rather
8068 than replacing it.
8069
1a4d3221 80702006-03-16 Richard Sandiford <richard@codesourcery.com>
8071
8072 * config/mips/predicates.md (splittable_const_int_operand): New,
8073 split from move_operand.
8074 (splittable_symbolic_operand): New.
8075 (move_operand): Add commentary. Use splittable_const_int_operand.
8076 Inline mips_atomic_symbolic_constant_p.
8077 * config/mips/mips.md: Add combine splitters for handling moves
8078 of splittable_const_int_operands and splittable_symbolic_operands.
8079 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
8080 (mips_split_symbol): Declare.
8081 (mips_move_integer): Declare.
8082 * config/mips/mips.c (mips_split_p): Make global.
8083 (TARGET_MIN_ANCHOR_OFFSET): Override default.
8084 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
8085 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
8086 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
8087 (mips_offset_within_object_p): Handle block symbols.
8088 (mips_atomic_symbolic_constant_p): Delete.
8089 (mips_cannot_force_const_mem): Return false for constants that
8090 mips_legitimize_move can handle.
8091 (mips_use_blocks_for_constant_p): New function.
8092 (mips_split_symbol): Make global.
8093 (mips_move_integer): Likewise. Add a temporary register argument.
8094 (mips_legitimize_const_move): Use splittable_const_int_operand and
8095 splittable_symbolic_operand.
8096 (mips_use_anchors_for_symbol_p): New function.
8097 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
d86ccd2c 8098 (mips_split_p): Declare.
1a4d3221 8099
42102a26 81002006-03-16 Richard Sandiford <richard@codesourcery.com>
8101
8102 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
8103 (mips*-*-linux*): Likewise.
8104
905582c1 81052006-03-16 Roger Sayle <roger@eyesopen.com>
8106 Daniel Speyer <dspeyer@wam.umd.edu>
8107
8108 PR middle-end/18259
8109 * tree-dump.c (dump_real): New function.
8110 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
8111 * Makefile.in (REAL_H): New macro for dependencies on real.h.
8112 (tree-dump.o): Add $(REAL_H) to the dependencies.
8113
f2ecae08 81142006-03-16 Roger Sayle <roger@eyesopen.com>
8115
8116 PR middle-end/21781
8117 * real.c (real_from_string): If the mantissa is zero, don't bother
8118 parsing the exponent as the result should always be zero.
8119
dc44b957 81202006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
8121
8122 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
8123
ea13ae4c 81242006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
8125
f3c616bc 8126 * config/ia64/ia64.c (stops_p): Added explicit initialization.
8127 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
8128 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
8129 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
ea13ae4c 8130 ia64_sched_finish_global): New static functions to implement
8131 hooks from gcc_target.sched.
8132 (spec_check_no, max_uid, pending_data_specs): New static variables.
f3c616bc 8133 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
ea13ae4c 8134 ia64_spec_check_src_p): New static functions.
f3c616bc 8135 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
8136 (TARGET_SCHED_ADJUST_COST): Removed.
8137 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
ea13ae4c 8138 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
8139 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
8140 TARGET_SCHED_GEN_CHECK,
8141 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
f3c616bc 8142 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
8143 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
ea13ae4c 8144 Fixed to handle speculation checks.
f3c616bc 8145 (rtx_needs_barrier): Fixed to handle speculative loads and
8146 their checks.
8147 (ia64_variable_issue): Added code to count speculative loads and their
8148 checks.
8149 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
8150 speculative loads.
8151 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
8152 New enumerations.
8153 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
8154 New constants.
8155 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
ea13ae4c 8156 (ia64_reorg): Reset stops_p to NULL after it is freed.
f3c616bc 8157 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
ea13ae4c 8158 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
f3c616bc 8159 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
8160 chk_a.
8161 (data_speculative, control_speculative, check_load): New attributes.
8162 (mov<mode>_advanced, mov<mode>_speculative,
8163 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
8164 zero_extend<mode>di2_speculative,
8165 zero_extend<mode>di2_speculative_advanced): New patterns for
8166 data and control speculative loads.
8167 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
8168 check loads.
8169 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
8170 New pattern for data and control speculation checks.
ea13ae4c 8171 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
8172 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
8173 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
8174 Auxiliary definitions for the patterns.
f3c616bc 8175 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
8176 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
8177 constraints.
ea13ae4c 8178 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
f3c616bc 8179 for speculation.
8180 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
8181 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
ea13ae4c 8182 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
8183 New resource constraints.
8184 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
f3c616bc 8185 for speculation.
8186 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
8187 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
8188 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
8189 msched-in-control-spec, msched-ldc, msched-control-ldc,
8190 msched-spec-verbose, msched-prefer-non-data-spec-insns,
8191 msched-prefer-non-control-spec-insns,
ea13ae4c 8192 msched-count-spec-in-critical-path): New flags to tune speculative
8193 scheduling.
8194 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
f3c616bc 8195 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
8196 msched-in-control-spec, msched-ldc, msched-control-ldc,
8197 msched-spec-verbose, msched-prefer-non-data-spec-insns,
8198 msched-prefer-non-control-spec-insns,
ea13ae4c 8199 msched-count-spec-in-critical-path): Document new flags.
8200
6a1cdb4d 82012006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
8202
f3c616bc 8203 * target.h (struct spec_info_def): New opaque declaration.
8204 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
8205 speculate_insn, needs_block_p, gen_check,
8206 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
8207 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
8208 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
8209 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
8210 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
8211 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
8212 gcc_target.sched.
8213 (TARGET_SCHED): Use new macros.
8214 * rtl.h (copy_DEPS_LIST_list): New prototype.
8215 * sched-int.h (struct sched_info): Change signature of new_ready field,
6a1cdb4d 8216 adjust all initializations. New fields: add_remove_insn,
f3c616bc 8217 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
6a1cdb4d 8218 region_head_or_leaf_p.
f3c616bc 8219 (struct spec_info_def): New structure declaration.
8220 (spec_info_t): New typedef.
8221 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
8222 recovery_block, orig_pat.
8223 (glat_start, glat_end): New variables declaraions.
8224 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
6a1cdb4d 8225 New access macros.
f3c616bc 8226 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
8227 DETACH_LIFE_INFO, USE_GLAT.
8228 (enum SPEC_SCHED_FLAGS): New enumeration.
8229 (NOTE_NOTE_BB_P): New macro.
8230 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
8231 attach_life_info, debug_spec_status, check_reg_live): New functions.
8232 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
8233 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
8234 sched-ebb.c
6a1cdb4d 8235 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
f3c616bc 8236 * ddg.c (get_block_head_tail): Adjust all uses.
8237 * modulo-sched.c (get_block_head_tail): Adjust all uses.
6a1cdb4d 8238 (sms_sched_info): Initialize new fields.
8239 (contributes_to_priority): Removed.
f3c616bc 8240 * haifa-sched.c (params.h): New include.
6a1cdb4d 8241 (get_block_head_tail): Adjust all uses.
f3c616bc 8242 (ISSUE_POINTS): New macro.
8243 (glat_start, glat_end): New global variables.
8244 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
6a1cdb4d 8245 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
8246 old_last_basic_block, before_recovery, current_sched_info_var,
8247 rgn_n_insns, luid): New static variables.
f3c616bc 8248 (insn_cost1): New function. Move logic from insn_cost to here.
8249 (find_insn_reg_weight1): New function. Move logic from
8250 find_insn_reg_weight to here.
8251 (reemit_notes, move_insn, max_issue): Change signature.
8252 (move_insn1): Removed.
8253 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
8254 extend_bb): New static functions to support extension of scheduler's
8255 data structures.
8256 (generate_recovery_code, process_insn_depend_be_in_spec,
8257 begin_speculative_block, add_to_speculative_block,
8258 init_before_recovery, create_recovery_block, create_check_block_twin,
8259 fix_recovery_deps): New static functions to support
8260 generation of recovery code.
8261 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
8262 restore_bb_notes, move_block_after_check, move_succs): New static
8263 functions to support ebb scheduling.
8264 (init_glat, init_glat1, attach_life_info1, free_glat): New static
8265 functions to support handling of register live information.
8266 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
6a1cdb4d 8267 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
8268 add_jump_dependencies): New static functions.
f3c616bc 8269 (check_cfg, has_edge_p, check_sched_flags): New static functions for
6a1cdb4d 8270 consistancy checking.
8271 (debug_spec_status): New function to call from debugger.
8272 (priority): Added code to handle speculation checks.
8273 (rank_for_schedule): Added code to distinguish speculative instructions.
8274 (schedule_insn): Added code to handle speculation checks.
8275 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
8276 Fixed to handle ebbs.
f3c616bc 8277 (move_insn): Added code to handle ebb scheduling.
6a1cdb4d 8278 (max_issue): Added code to use ISSUE_POINTS of instructions.
f3c616bc 8279 (choose_ready): Added code to choose between speculative and
8280 non-speculative instructions.
8281 (schedule_block): Added code to handle ebb scheduling and scheduling of
8282 speculative instructions.
8283 (sched_init): Initialize new variables.
8284 (sched_finish): Free new variables. Print statistics.
8285 (try_ready): Added code to handle speculative instructions.
8286 * lists.c (copy_DEPS_LIST_list): New function.
8287 * sched-deps.c (extend_dependency_caches): New function. Move logic
8288 from create_dependency_caches to here.
6a1cdb4d 8289 (get_dep_weak, ds_merge): Make global.
f3c616bc 8290 * genattr.c (main): Code to output prototype for
8291 dfa_clear_single_insn_cache.
8292 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
8293 (output_dfa_clean_insn_cache_func): Code to output
8294 dfa_clear_single_insn_cache function.
8295 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
6a1cdb4d 8296 n_insns.
f3c616bc 8297 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
8298 Removed.
8299 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
8300 New static variables.
8301 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
6a1cdb4d 8302 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
8303 struct sched_info.
f3c616bc 8304 (ebb_sched_info): Initialize new fields.
6a1cdb4d 8305 (get_block_head_tail): Adjust all uses.
8306 (compute_jump_reg_dependencies): Fixed to use glat_start.
8307 (schedule_ebb): Code to remove unreachable last block.
f3c616bc 8308 (schedule_ebbs): Added code to update register live information.
8309 * sched-rgn.c (region_sched_info): Initialize new fields.
6a1cdb4d 8310 (get_block_head_tail): Adjust all uses.
8311 (last_was_jump): Removed. Adjust users.
f3c616bc 8312 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
6a1cdb4d 8313 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
8314 Implement new hooks.
f3c616bc 8315 (check_dead_notes1): New static function.
8316 (struct region): New fields: dont_calc_deps, has_real_ebb.
8317 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
8318 (BB_TO_BLOCK): Fixed to handle EBBs.
8319 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
8320 (ebb_head): New static variable.
8321 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
8322 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
6a1cdb4d 8323 new fields.
8324 (compute_dom_prob_ps): New assertion.
f3c616bc 8325 (check_live_1, update_live_1): Fixed to work with glat_start instead of
8326 global_live_at_start.
6a1cdb4d 8327 (init_ready_list): New assertions.
8328 (can_schedule_ready_p): Split update code to begin_schedule_ready.
8329 (new_ready): Add support for BEGIN_CONTROL speculation.
f3c616bc 8330 (schedule_insns): Fixed code that updates register live information
8331 to handle EBBs.
8332 (schedule_region): Fixed to handle EBBs.
6a1cdb4d 8333 (init_regions): Use extend_regions and check_dead_notes1.
f3c616bc 8334 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
8335 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
6a1cdb4d 8336 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
8337 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
8338 TARGET_SCHED_GEN_CHECK,
8339 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
8340 TARGET_SCHED_SET_SCHED_FLAGS): Document.
f3c616bc 8341 * doc/invoke.texi (max-sched-insn-conflict-delay,
6a1cdb4d 8342 sched-spec-prob-cutoff): Document.
8343
e4897000 83442006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
8345
f3c616bc 8346 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
e4897000 8347 inter_tick, queue_index.
8348 (struct sched_info): Change signature of init_ready_list field.
8349 Adjust all initializations.
8350 (RESOLVED_DEPS): New access macro.
8351 (ready_add): Remove prototype.
8352 (try_ready): Add prototype.
8353 * sched-rgn.c (init_ready_list): Use try_ready.
8354 (schedule_region): Initialize
8355 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
8356 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
8357 (init_ready_list): Use try_ready.
8358 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
8359 * lists.c (remove_list_elem): Remove `static'.
8360 (remove_free_INSN_LIST_elem): New function.
8361 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
8362 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
8363 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
8364 New constants.
8365 (readyp): New variable.
8366 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
8367 change_queue_index, resolve_dep): New static functions.
8368 (try_ready): New function. Adjust callers in sched-rgn.c and
8369 sched-ebb.c to use it instead of ready_add.
8370 (clock_var): Move at the begining of file.
8371 (rank_for_schedule): Fix typo.
8372 (queue_insn): Add assertion. Handle QUEUE_INDEX.
8373 (ready_lastpos): Enforce assertion.
8374 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
8375 update all callers.
8376 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
8377 (schedule_insn): Rewrite to use try_ready and resolve_dep.
8378 (queue_to_ready): Use free_INSN_LIST_list.
8379 (early_queue_to_ready): Fix typo.
8380 (schedule_block): Init readyp. Move init_ready_list call after the
8381 initialization of clock_var. Fix error in rejecting insn by
8382 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
8383 that previously corrected INSN_TICKs. Add code for handling
8384 QUEUE_INDEX.
8385 (set_priorities): Fix typo.
8386 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
8387 Clarify comment and code that keeps current_sched_info->next_tail
8388 non-null.
8389
4bfe0e7b 83902006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
8391
8392 * sched-rgn.c (extend_rgns): New static function.
8393 (find_rgns): Use it.
8394 (gather_region_statistics, print_region_statistics): New static
8395 functions.
8396 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
f3c616bc 8397 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
4bfe0e7b 8398
4d64d9a4 83992006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
f3c616bc 8400 Andrey Belevantsev <abel@ispras.ru>
4d64d9a4 8401
8402 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
f3c616bc 8403 * lists.c (unused_deps_list): New variable.
d86ccd2c 8404 (free_list): Add assertions to verify the proper distinguishing
f3c616bc 8405 between INSN_LISTs and DEPS_LISTs.
8406 (find_list_elem, remove_list_elem, remove_list_node): New static
4d64d9a4 8407 functions.
f3c616bc 8408 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
8409 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
8410 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
8411 (alloc_INSN_LIST): Assert that the list we're working on is indeed
4d64d9a4 8412 an INSN_LIST.
f3c616bc 8413 (free_INSN_LIST_node): Likewise.
4d64d9a4 8414 * modulo-sched.c (current_sched_info): Initialize flags field.
8415 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
8416 * rtl.def (DEPS_LIST): Define.
f3c616bc 8417 * rtl.h: Declare new functions from lists.c.
8418 * sched-deps.c (spec_dependency_cache): New static variable.
8419 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
8420 (add_dependence): Change return type to void. Move the logic to ...
8421 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
8422 (delete_all_dependences): Add comment about forward_dependency_cache.
4d64d9a4 8423 Handle spec_dependency_cache. Handle DEPS_LISTs.
f3c616bc 8424 (fixup_sched_groups): Clarify the change of priority of output
8425 and anti dependencies.
8426 (sched_analyze_2): Adjust add_dependence calls to create data
4d64d9a4 8427 speculative dependence.
f3c616bc 8428 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
4d64d9a4 8429 Adjust all callers. Handle DEPS_LISTS.
f3c616bc 8430 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
4d64d9a4 8431 presence of speculation.
f3c616bc 8432 (init_dependency_caches, free_dependency_caches):
4d64d9a4 8433 Handle spec_dependency_cache.
f3c616bc 8434 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
4d64d9a4 8435 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
8436 New static functions.
f3c616bc 8437 (add_or_update_back_dep, add_or_update_back_forw_dep,
4d64d9a4 8438 add_back_forw_dep, delete_back_forw_dep): New functions.
8439 * sched-int.h (ds_t, dw_t): New typedefs.
8440 (struct sched_info): Add new field flags.
8441 (struct haifa_insn_data): Add new bitfield has_internal_dep.
8442 Prototype new sched-deps.c functions.
f3c616bc 8443 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
4d64d9a4 8444 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
8445 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
8446 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
8447 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
8448 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
8449 New constants.
f3c616bc 8450 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
4d64d9a4 8451 New enums.
8452 * sched-rgn.c (current_sched_info): Initialize flags field.
8453 (schedule_insns): Initialize current_sched_info before the sched_init
8454 call.
8455 * sched-ebb.c (current_sched_info): Initialize flags field.
8456 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
8457 Call add_or_update_back_dep instead of add_dependence.
8458 Create control speculative dependencies.
8459 (schedule_insns): Initialize current_sched_info before the sched_init
8460 call.
8461
439ce31f 84622006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
8463
8464 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
8465 fs->signal_frame.
8466 (sh_fallback_frame_state): Likewise.
8467
3da996b9 84682006-03-15 Geoffrey Keating <geoffk@apple.com>
8469
8470 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
8471 Do switch on default_use_cxa_atexit.
8472 (powerpc*-*-darwin*): Build crt2.o on powerpc.
8473 * config/darwin-crt3.o: New.
8474 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
8475 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
8476 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
8477 OS version.
8478 * config/rs6000/t-darwin: Move crt2.o building to here.
8479 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
8480 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
8481 of __cxa_atexit.
8482
952259d9 84832006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8484
8485 * config/vax/vax.c (nonindexed_address_p): Change logical negation
8486 from '! xxx' to '!xxx' for coding-style conformance.
8487 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
8488 (EXTRA_CONSTRAINT): Likewise.
8489 * config/vax/vax.md (four unnamed insns): Likewise.
d86ccd2c 8490
acc677e9 84912006-03-15 Paul Brook <paul@codesourcery.com>
8492
8493 * config/arm/arm.c (minipool_pad): New.
84901a95 8494 (add_minipool_forward_ref): Include pool alignment padding in address
acc677e9 8495 calculation.
8496 (push_minipool_fix): Set minipool_pad.
8497 (minipool_pad): Ditto.
8498
66a61c7f 84992006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8500
8501 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
8502 instead of GET_CODE() == MEM and REG_P() instead of
8503 GET_CODE() == REG.
8504 (print_operand_address): Likewise.
8505 (vax_address_cost): Likewise.
8506 (vax_rtx_costs): Likewise.
8507 (vax_notice_update_cc): Likewise.
8508 (vax_output_int_add): Likewise.
8509 (INDEX_REGISTER_P): Likewise.
8510 (BASE_REGISTER_P): Likewise.
8511 (nonindexed_address_p): Likewise.
8512 (vax_mode_dependent_address_p): Likewise.
8513 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
8514 (PRINT_OPERAND): Likewise.
8515 * config/vax/vax.md (ashlsi3): Likewise.
8516 (ashlsi3): Likewise.
8517 (some more unnamed insns): Likewise.
8518
bfad1dc2 85192006-03-15 Kazu Hirata <kazu@codesourcery.com>
8520
8521 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
8522 iterator-style macro.
8523 (mark_control_dependent_edges_necessary): Update the use of
8524 EXECUTE_IF_CONTROL_DEPENDENT.
8525
3d533137 85262006-03-15 J"orn Rennecke <joern.rennecke@st.com>
8527
8528 * config/sh/predicates.md (cache_address_operand): Special.
8529 (ua_address_operand): Likewise.
8530
340690bf 85312006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
8532
8533 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
8534 loop notes.
8535 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
8536
79bd7049 85372006-03-15 Andreas Schwab <schwab@suse.de>
8538
8539 * gensupport.c (identify_predicable_attribute): Don't free p_false
8540 when it is still in use.
8541
4c3202f0 85422006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
8543
8544 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
8545 the default setting here.
8546
0afae420 85472006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
8548
8549 * tree-pass.h (pass_cfg): Remove.
8550 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
8551 * passes.c (pass_cfg): Don't run it.
8552
9500df50 85532006-03-14 Kazu Hirata <kazu@codesourcery.com>
8554
8555 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
8556 * reg-stack.c (stack_regs_mentioned_data): Change the type to
8557 VEC(char,heap) *.
8558 (stack_regs_mentioned): Update the uses of
8559 stack_regs_mentioned_data. Don't access the array beyond its
8560 end.
8561 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
8562 Don't include gt-reg-stack.h.
8563
139086ed 8564 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
8565 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
8566
a2eceec3 8567 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
8568
a50d6416 8569 PR middle-end/26684
8570 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
8571 STACK_REGS.
8572
08ca9fd5 85732006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8574
8575 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
8576
21658abb 85772006-03-14 Richard Guenther <rguenther@suse.de>
8578
8579 PR tree-optimization/26672
8580 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
8581 SSA form.
8582
4b4d4c92 85832006-03-14 Richard Guenther <rguenther@suse.de>
8584
8585 PR tree-optimization/26667
8586 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
8587 node for the callees. Always allow inlining if it will shrink
8588 the function size.
8589
3c15318e 85902006-03-14 Richard Guenther <rguenther@suse.de>
8591
8592 PR middle-end/26659
8593 * builtins.c (get_pointer_alignment): Prefer alignment
8594 information from decls over that from types.
8595
d0207a4d 85962006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
8597
8598 PR target/26657
8599 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
8600
671169ac 86012006-03-14 Joseph S. Myers <joseph@codesourcery.com>
8602
8603 * config/rs6000/rs6000.opt (mdlmzb): New option.
8604 (msched-prolog, msched-epilog): Use Var not Mask.
8605 * doc/invoke.texi (-mdlmzb): Document.
8606 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
8607 MASK_SCHED_PROLOG.
8608 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
8609 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
8610
6acc9746 86112006-03-13 Uttam Pawar <uttamp@us.ibm.com>
8612
8613 PR rtl-optimization/25739
8614 * bt-load.c (augment_live_range): Free tos pointer.
8615
8616 * gensupport.c (identify_predicable_attribute): Free
8617 p_false pointer.
8618 * gcov.c (create_file_names): Free name pointer.
8619
a4047043 86202006-03-13 Roger Sayle <roger@eyesopen.com>
8621
8622 PR middle-end/26557
8623 * stmt.c (emit_case_nodes): Handle the case where the index is a
8624 CONST_INT, where the comparison mode is specified by the index type.
8625
a8bf5f4a 86262006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8627
8628 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
8629 is defined.
8630
754a0dcd 86312006-03-13 Richard Sandiford <richard@codesourcery.com>
8632
8633 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
8634 (*branch_fp_inverted): Likewise.
8635
6d63fc03 86362006-03-13 Jakub Jelinek <jakub@redhat.com>
8637
8638 PR middle-end/25989
8639 * omp-low.c (expand_omp_for_generic): Mark istart0
8640 and iend0 as addressable.
8641
624f1f0d 86422006-03-13 Jie Zhang <jie.zhang@analog.com>
8643
8644 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
8645
04dde933 86462006-03-13 Jeff Law <law@redhat.com>
8647
8648 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
8649 virtual operands are interesting.
8650 (vrp_visit_stmt): Corresponding changes.
8651
7e72504c 86522006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
8653
8654 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
8655 of RETS.
af228595 8656 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
8657 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
8658 * config/bfin/crti.S: Use it instead of __PIC__.
8659 * config/bfin/crtn.S: Likewise.
7e72504c 8660
ff9e05e9 8661 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
8662 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
8663 not if flag_pic.
8664 Lose 'G' modifier for call operand.
8665 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
8666 recognize 'G' modifier.
8667
b655fbd3 86682006-03-13 Eric Botcazou <ebotcazou@adacore.com>
8669
8670 PR middle-end/18859
8671 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
8672 * stmt.c (expand_case): Likewise.
8673
1e41d0e2 86742006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8675
8676 PR rtl-optimization/26254
8677 * loop-invariant.c (seq_insns_valid_p): New function.
8678 (move_invariant_reg): Only emit new code if it is valid.
8679
588aadb7 86802006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8681
8682 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
8683 Removed.
8684 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
8685 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
8686 (commit_one_edge_insertion): Do not look for loop notes.
8687
d5bd32d8 86882006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8689
8690 * jump.c (follow_jumps): Do not check for loop notes. Move check for
8691 flag_test_coverage out of loop.
8692
d84aa71e 86932006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8694
8695 * final.c (shorten_branches): Remove outdated comment, and turn
8696 the if branch that guards it to continue.
8697
58b3f902 86982006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
8699
8700 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
8701 * cfgloop.h (struct loop): Remove unused fields.
8702
4bd4c502 87032006-03-13 Kazu Hirata <kazu@codesourcery.com>
8704
8705 * doc/invoke.texi (-fdump-rtl-loop): Remove.
d86ccd2c 8706 (-dL, -fdump-rtl-loop2): Update the dump file names
4bd4c502 8707
c2bdb197 8708 * doc/invoke.texi: Update dump file names.
8709
5018c250 87102006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
8711
8712 * predict.c (estimate_probability): Remove.
8713 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
8714 * basic-block.h (estimate_probability): Remove prototype.
8715 * passes.c (finish_optimization_passes): Dump branch prediction or
8716 profiling heuristics to the .profile tree dump.
8717 (init_optimization_passes): Unqueue pass_branch_prob.
8718
8719 * doc/invoke.texi (-fdump-rtl-bp): Remove.
8720
158733a6 87212006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
8722
8723 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
8724 * rtl.h (LABEL_NEXTREF): Remove field accessor.
8725
26d04e5f 87262006-03-11 Eric Botcazou <ebotcazou@adacore.com>
8727
8728 * function.h (frame_offset_overflow): Declare.
8729 * function.c (frame_offset_overflow): New function.
8730 (assign_stack_local_1): Call it to detect that the offset overflows.
8731 * cfgexpand.c (alloc_stack_frame_space): Likewise.
8732
49166fc3 87332006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
8734
8735 * config/sh/sh.c: Include alloc-pool.h.
8736 (label_ref_list_pool): New alloc pool.
8737 (label_ref_list_t): New type for lists of labels.
8738 (struct pool_node): Make wend a label_ref_list_t.
8739 (add_constant): Use the new type, eradicate LABEL_NEXTREF
8740 references.
8741 (dump_table): Likewise.
8742 (sh_reorg): Set up the alloc pool before using add_constant and
8743 dump_table, and destroy it when finishing.
8744
e3cabaa6 87452006-03-11 Richard Sandiford <richard@codesourcery.com>
8746
8747 * config/mips/mips.c: Remove redundant comment.
8748
d217355e 87492006-03-10 Jason Merrill <jason@redhat.com>
8750
8751 PR c/26004
d86ccd2c 8752 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
d217355e 8753 the target was declared 'register'.
8754
19dd6f8c 87552006-03-10 Adam Nemet <anemet@caviumnetworks.com>
8756
8757 * genpreds.c (write_insn_constraint_len): Change definition of
8758 insn_constraint_len to return size_t to match the declaration.
8759
e282424f 87602006-03-10 DJ Delorie <dj@redhat.com>
8761
8762 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
8763 start at zero.
8764 (m32c_expand_insv): Fix test for an AND mask.
8765
1eee24cf 87662006-03-10 Richard Guenther <rguenther@suse.de>
8767
8768 PR middle-end/26565
8769 * builtins.c (get_pointer_alignment): Handle component
8770 references for field alignment.
8771
65a1f1e9 87722006-03-10 J"orn Rennecke <joern.rennecke@st.com>
8773
8774 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
8775 when building with libgloss.
8776 (sh*elf): Implement --without-fp option.
d86ccd2c 8777 (sh64-superh-linux*): Don't multilib.
65a1f1e9 8778
300b0e08 87792006-03-10 J"orn Rennecke <joern.rennecke@st.com>
8780
8781 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
8782
1e4b21e3 87832006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
8784
8785 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
8786 Set it when one of the replacement functions returned true.
8787 Return TODO_cleanup_cfg if cfgchanged is true.
8788 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
8789
6b84145c 87902006-03-09 Adam Nemet <anemet@caviumnetworks.com>
8791
8792 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
8793 instead of gen_lowpart.
8794
fe2ed30d 87952006-03-09 Richard Sandiford <richard@codesourcery.com>
8796
8797 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
8798 interface.
8799 (mips_output_order_conditional_branch): Declare.
8800 * config/mips/mips.h (MIPS_BRANCH): New macro.
8801 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
8802 for the comparison. Use gen_condjump.
8803 (mips_output_conditional_branch): Rework interface to take the
8804 asm templates for a direct branch and the inverse of a direct branch.
8805 (mips_output_order_conditional_branch): New function.
8806 (mips_builtin_branch_and_move): New function.
8807 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
8808 branch condition. Use gen_single_cc as the condition for
8809 __builtin_mips_upper_* or __builtin_mips_lower_*.
8810 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
8811 Use VOIDmode for the branch condition.
8812 * config/mips/predicates.md (order_operator): New predicate.
8813 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
8814 (branch_fp): Rename to...
8815 (*branch_fp): ...this. Remove mode from comparison operator.
8816 Use new mips_output_conditional_branch interface.
8817 (branch_fp_inverted): Rename to...
8818 (*branch_fp_inverted): ...this and update as for *branch_fp.
8819 (*branch_zero<mode>): Rename to...
8820 (*branch_order<mode>): ...this. Remove mode from comparison operator.
8821 Use mips_output_order_conditional_branch. Only accept ordered
d86ccd2c 8822 comparisons.
fe2ed30d 8823 (*branch_zero<mode>_inverted): Rename to...
8824 (*branch_order<mode>_inverted): ...this and update as for
8825 *branch_order<mode>.
8826 (*branch_equality<mode>): Accept zero as the second operand to
8827 the equality operator. Use the new mips_output_conditional_branch
8828 interface.
8829 (*branch_equality<mode>_inverted): Likewise.
8830 (condjump): New expander.
8831 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
8832 operator.
8833 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
8834 (bc1any2t, bc1any2f): Likewise.
8835 (single_cc): New expander.
8836 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
8837
595e9041 88382006-03-09 Richard Sandiford <richard@codesourcery.com>
8839
8840 * doc/md.texi: Update documentation of MIPS constraints.
8841 * config/mips/constraints.md: New file.
8842 * config/mips/mips.md: Include it.
8843 * config/mips/mips.c (mips_char_to_class): Delete.
8844 (override_options): Don't initialize mips_char_to_class.
8845 * config/mips/mips.h (mips_char_to_class): Delete.
8846 (REG_CLASS_FROM_LETTER): Delete.
8847 (CONST_OK_FOR_LETTER_P): Delete.
8848 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8849 (EXTRA_CONSTRAINT_Y): Delete.
8850 (EXTRA_CONSTRAINT_STR): Delete.
8851 (CONSTRAINT_LEN): Delete.
8852 (EXTRA_MEMORY_CONSTRAINT): Delete.
8853
8487df40 88542006-03-09 Diego Novillo <dnovillo@redhat.com>
8855
8856 * tree-cfg.c (move_block_to_fn): Remove the statements from the
8857 original fn's eh regions.
8858
66108e20 88592006-03-09 Eric Botcazou <ebotcazou@adacore.com>
8860
8861 * fold-const.c (build_range_check): Make sure to use a valid type to
8862 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
8863 transformation.
8864
8865 (range_predecessor): New static function.
8866 (range_successor): Likewise.
8867 (merge_ranges): Use them to compute predecessors and successors of
8868 range bounds.
8869
4e35b483 88702006-03-09 Roger Sayle <roger@eyesopen.com>
8871
8872 PR middle-end/26561
8873 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
8874 X op C3, consider whether C3 overflows towards +Inf or -Inf.
8875
fedc146b 88762006-03-08 DJ Delorie <dj@redhat.com>
8877
8878 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
8879 (addpsi3): Expand to include memory operands. Remove
8880 reload-specific splits.
8881 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
8882 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
8883 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
8884 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
8885 (shift1_qi, shift1_hi, insv): New.
8886 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
8887 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
8888 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
8889 cond_to_int): New.
8890 * config/m32c/m32c-protos.h: Update as needed.
8891 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
8892 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
8893 Fail for unrecognized R* constraints.
8894 (m32c_cannot_change_mode_class): Be more picky about pseudos.
8895 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
8896 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
8897 Add Sp constraint.
8898 (m32c_init_libfuncs): New.
8899 (m32c_legitimate_address_p): Add debug wrapper.
8900 (m32c_rtx_costs): New.
8901 (m32c_address_cost): New.
8902 (conversions): Add 'B' prefix.
8903 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
8904 operands, or word regnames for QI operands. 'B' prints bit
8905 position.
8906 (m32c_expand_setmemhi): New.
8907 (m32c_expand_movmemhi): New.
8908 (m32c_expand_movstr): New.
8909 (m32c_expand_cmpstr): New.
8910 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
8911 (m32c_expand_neg_mulpsi3): Handle non-ints.
8912 (m32c_cmp_flg_0): New.
8913 (m32c_expand_movcc): New.
8914 (m32c_expand_insv): New.
8915 (m32c_scc_pattern): New.
8916 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
8917 a0/a1 out of SIregs.
8918 (STORE_FLAG_VALUE): New.
8919 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
8920 code macros.
8921 (no_insn): New.
8922 * config/m32c/mov.md: Make constraints more liberal.
8923 (zero_extendqihi2): Optimize r0/r1 case.
8924 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
8925 * config/m32c/predicates.md (m32c_any_operand): New.
8926 (m32c_nonimmediate_operand): New.
8927 (m32c_hl_operand): New.
8928 (m32c_r3_operand): New.
8929 (ap_operand): New.
8930 (ma_operand): New.
8931 (memsym_operand): New.
8932 (memimmed_operand): New.
8933 (a_qi_operand): New.
8934 (m32c_eqne_operator): New.
8935 (m32c_1bit8_operand): New.
8936 (m32c_1bit16_operand): New.
8937 (m32c_1mask8_operand): New.
8938 (m32c_1mask16_operand): New.
8939 * config/m32c/blkmov.md: New file.
8940 * config/m32c/t-m32c (MD_FILES): Add blkmov.
8941
e817549b 89422006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
8943
963e1d38 8944 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
8945 unsigned to fix signed/unsigned comparison issue in
8946 DWARF2_FRAME_REG_OUT.
8947 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
8948 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
8949
e817549b 8950 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
8951 of ptr into the ENABLE_CHECKING section.
8952
581f1885 89532006-03-08 Jeff Law <law@redhat.com>
8954
8955 * tree-vrp.c (infer_value_range): Only count pointer uses
8956 and dereferences if -fdelete-null-pointer-checks is enabled.
8957
8958 * tree-vrp.c (find_assert_locations): Infer value ranges for
8959 single use pointers, but do not create ASSERT_EXPRs for them.
8960 When a non-null range is inferred for a pointer, backwards
8961 propagate that range to other equivalent pointers through the
8962 use-def chain.
8963
352ea6ae 89642006-03-08 Paolo Bonzini <bonzini@gnu.org>
8965
8966 PR bootstrap/26500
8967 * Makefile.in (dvi, html, install-info): Invoke the corresponding
8968 language hook targets.
8969 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
8970 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
8971 if language hook targets were missing.
8972
b5b59dda 89732006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
8974
8975 * tree-ssa-opfinalize.h: Removed.
8976 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
8977 dependency.
8978 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
8979 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
8980 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
8981 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
8982 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
8983 finalize_ssa_v_must_def_ops): New.
8984
ede04110 89852006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
8986
8987 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
8988 block as parameter.
8989
c98ee857 89902006-03-07 Geoffrey Keating <geoffk@apple.com>
8991
c61867e3 8992 * varasm.c (assemble_end_function): Say that 'fnname' is unused.
8993
5a70bf2d 8994 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
8995 addresses with offsets; reorganize.
8996
c98ee857 8997 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
8998 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
8999 (expand_builtin_init_dwarf_reg_sizes): Likewise.
9000
1e18cf39 90012006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
9002
9003 PR target/26588
9004 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
9005
edc6a305 90062006-03-08 Ben Elliston <bje@au.ibm.com>
9007
9008 * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
9009
2a4b6f84 90102006-03-07 Aldy Hernandez <aldyh@redhat.com>
9011
9012 PR gomp/26238
9013 * doc/passes.texi (Tree-SSA passes): Document omp lowering and
9014 expansion.
9015
3c2aae8b 90162006-03-07 Richard Guenther <rguenther@suse.de>
9017
9018 PR tree-optimization/26587
9019 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
9020
841b1537 90212006-03-07 Richard Sandiford <richard@codesourcery.com>
9022
9023 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
9024
2dbdc48e 90252006-03-07 Richard Sandiford <richard@codesourcery.com>
9026
9027 * hooks.c (hook_bool_mode_rtx_true): New function.
9028 * hooks.h (hook_bool_mode_rtx_true): Declare.
9029 * toplev.c (compile_file): Call output_shared_constant_pool.
9030 * varasm.c (shared_constant_pool): New variable.
9031 (assemble_start_function, assemble_end_function): Remove arguments
9032 from call to output_constant_pool.
9033 (create_constant_pool): New function, split out from...
9034 (init_varasm_status): ...here.
9035 (force_const_mem): Choose between the shared and per-function constant
9036 pools. Set current_function_uses_const_pool when reusing old entries
9037 as well as when creating new ones.
9038 (mark_constant): Ignore data argument.
9039 (mark_constants): Remove pool argument.
9040 (mark_constant_pool): Likewise. Use current_function_uses_const_pool
9041 to decide whether the function uses a constant pool.
9042 (output_constant_pool_contents): New function, split out from...
9043 (output_constant_pool): ...here.
9044 (output_shared_constant_pool): New function.
9045 (init_varasm_once): Initialize shared_constant_pool.
9046 * output.h (output_constant_pool): Delete.
9047 (output_shared_constant_pool): Declare.
9048 * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
9049 * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
9050
7e6711a1 90512006-03-06 Nick Clifton <nickc@redhat.com>
9052
9053 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
9054 flag_strength_reduce.
9055
ccfed050 90562006-03-06 Ben Elliston <bje@au.ibm.com>
9057
1eb5a89d 9058 * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
9059 x86_64-*-linux* configurations.
9060
ccfed050 9061 * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
ad0d48bc 9062 (LIBGCC2_WORDS_BIG_ENDIAN): Define.
ccfed050 9063
7c568de5 90642006-03-05 Kazu Hirata <kazu@codesourcery.com>
9065
9066 * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
9067 Remove.
9068 * basic-block.h: Remove the extern for
9069 rediscover_loops_after_threading.
9070
77cbebb3 9071 * cfgloop.c (cancel_loop): Make it static.
9072 * cfgloop.h: Remove the prototype for cancel_loop.
9073
fcea7c5b 9074 * flow.c (recompute_reg_usage): Make it static.
9075 * rtl.h: Remove the prototype for recompute_reg_usage.
9076
ab4605bf 9077 * function.c (use_return_register): Make it static.
9078 * function.h: Remove the prototype.
9079
2be0aefa 90802006-03-05 Kazu Hirata <kazu@codesourcery.com>
9081
9082 * recog.c (volatile_mem_p, validate_change_maybe_volatile):
9083 Remove.
9084 * recog.h: Remove the prototype for
9085 validate_change_maybe_volatile.
9086
5659dce0 90872006-03-05 Kazu Hirata <kazu@codesourcery.com>
9088
9089 * rtlanal.c (replace_reg): Remove.
9090 * rtl.h: Remove the prototype for replace_reg.
9091
03dd3bfb 90922006-03-05 Kazu Hirata <kazu@codesourcery.com>
9093
9094 * regclass.c (reg_scan_update): Remove.
9095 (reg_scan_mark_refs): Remove the last argument.
9096 * rtl.h: Remove the prototype for reg_scan_update.
9097
334ec2d8 90982006-03-04 Kazu Hirata <kazu@codesourcery.com>
9099
9100 * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
9101 combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
9102 config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
9103 config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
9104 df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
9105 loop-invariant.c, omp-low.c, opts.c, passes.c,
9106 rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
9107 tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
9108 tree-ssa-structalias.c, tree-ssa-threadedge.c,
9109 tree-ssa-threadupdate.c, tree-vect-patterns.c,
9110 tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
9111 unwind-dw2.c: Fix comment typos. Follow spelling conventions.
9112
304ef384 91132006-03-04 Kazu Hirata <kazu@codesourcery.com>
9114
9115 * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
9116 * dwarf2out.h: Remove the prototype for
9117 dwarf2out_add_library_unit_info.
9118
6b6977c0 91192006-03-04 Kazu Hirata <kazu@codesourcery.com>
9120
9121 * tree.c (add_var_to_bind_expr): Remove.
9122 * tree.h: Remove the prototype for add_var_to_bind_expr.
9123
2724c347 91242006-03-04 Kazu Hirata <kazu@codesourcery.com>
9125
9126 * regclass.c (n_non_fixed_regs): Remove.
9127 (init_reg_sets_1, globalize_reg): Remove all uses of
9128 n_non_fixed_regs.
9129 * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
9130
50d82c3c 91312006-03-04 Kazu Hirata <kazu@codesourcery.com>
9132
9133 * rtlanal.c (insns_safe_to_move_p): Remove.
9134 * rtl.h: Remove the prototype for insns_safe_to_move_p.
9135
f0aa697e 91362006-03-04 Kazu Hirata <kazu@codesourcery.com>
9137
9138 * expmed.c (expand_mult_add): Remove.
9139 * expr.h: Remove the prototype for expand_mult_add.
9140
706f0818 91412006-03-04 Jakub Jelinek <jakub@redhat.com>
9142
9143 * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
9144 and REG_SAVED_VAL_EXP constants.
9145 * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
9146 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
9147 Handle regs stored by value.
9148 (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
9149 (execute_cfa_program): Handle DW_CFA_val_offset,
9150 DW_CFA_val_offset_sf and DW_CFA_val_expression.
9151 (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
9152 value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
9153 (uw_install_context_1): Handle target regs stored by value.
9154
c96420f8 91552006-03-03 Daniel Berlin <dberlin@dberlin.org>
9156
9157 * tree-sra.c (tree_sra): Return todoflags;
9158 (generate_one_element): Set TODO_update_smt_usage if needed.
9159 (pass_sra): Remove TODO_update_smt_usage.
9160 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
9161 parameter.
9162 (tree_ssa_forward_propagate_single_use_vars): Return
9163 TODO_update_smt_usage if we need to update SMT usage.
9164 (pass_forwprop): Remove TODO_update_smt_usage.
d86ccd2c 9165
f6255040 91662006-03-03 Diego Novillo <dnovillo@redhat.com>
9167
9168 * tree-ssa-operands.c: Tidy whitespace. Fix spelling.
9169 (correct_use_link): Remove reference to get_stmt_operands.
9170 (update_stmt_operands): Likewise.
9171 (get_modify_expr_operands): New function factored out of
9172 parse_ssa_operands and get_expr_operands.
9173 Try to create V_MUST_DEFs for LHS by default.
9174 (get_expr_operands) <case MODIFY_EXPR>: Call
9175 get_modify_expr_operands.
9176 <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
9177 <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
9178 (parse_ssa_operands) <case MODIFY_EXPR>: Call
9179 get_modify_expr_operands.
9180
bd6a8ada 91812006-03-03 Kazu Hirata <kazu@codesourcery.com>
9182
9183 * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
9184 * tree-flow.h: Remove the prototype for
9185 referenced_var_lookup_if_exists.
9186
6e7b5d10 91872006-03-03 Steve Ellcey <sje@cup.hp.com>
9188
9189 PR rtl-optimization/26345
9190 PR target/19061
9191 * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
9192
560af66a 91932006-03-03 Roger Sayle <roger@eyesopen.com>
9194
9195 PR tree-optimization/26524
9196 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
9197 fold_convert to create a constant of the appropriate type.
9198
6617cbc1 91992006-03-03 Richard Sandiford <richard@codesourcery.com>
9200
9201 * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
9202 SYMBOL_REF_IN_BLOCK_P.
9203 * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
9204 of SYMBOL_FLAG_IN_BLOCK.
9205 * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
9206 instead of SYMBOL_REF_IN_BLOCK_P.
9207 * explow.c (use_anchored_address): Likewise.
9208 * rtl.c (rtx_size): Likewise.
9209 * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
9210 instead of SYMBOL_FLAG_IN_BLOCK.
9211 (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
9212 SYMBOL_REF_IN_BLOCK_P.
9213 (assemble_variable): Likewise.
9214 (output_constant_def_contents): Likewise.
9215 (output_constant_pool): Likewise.
9216 (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
9217 instead of SYMBOL_FLAG_IN_BLOCK.
9218 * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
9219 SYMBOL_REF_IN_BLOCK_P.
9220 (SYMBOL_REF_BLOCK): Likewise.
9221 (SYMBOL_REF_OFFSET): Likewise.
9222 (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
9223 SYMBOL_REF_IN_BLOCK_P.
9224 (SYMBOL_FLAG_IN_BLOCK): Replace with...
9225 (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
9226 (SYMBOL_REF_IN_BLOCK_P): Replace with...
9227 (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
9228
cb21f406 92292006-03-03 Jakub Jelinek <jakub@redhat.com>
9230
9231 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
9232
4a9a1e2b 92332006-03-02 Roger Sayle <roger@eyesopen.com>
9234
9235 * simplify-rtx.c (simplify_unary_operation): When simplifying
9236 (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
9237 that we perform the right shift in the appropriate mode, and
9238 then extend or truncate the result to requested mode.
9239
99748102 92402006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
9241
9242 * gengtype.c (main): Handle double_int type.
9243 * tree.h (struct tree_int_cst): Make type of int_cst double_int.
9244 * double-int.c: New file.
9245 * double-int.h: New file.
9246 * system.h: Include doubleint.h.
9247 * Makefile.in (SYSTEM_H): Include double-int.h.
9248 (double-int.o): Add.
9249
afba2e80 92502006-03-03 Joseph S. Myers <joseph@codesourcery.com>
9251
9252 PR bootstrap/26478
9253 * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
9254 copying over it.
9255
63945aec 92562006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
9257
4a9a1e2b 9258 * tree-vrp.c (remove_range_assertions): Do not update statements
9259 unnecessarily.
63945aec 9260
da0f98a7 92612006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
9262
9263 * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
9264 cleanup.
9265 * gcse.c (rest_of_handle_gcse): Ditto.
9266 * except.c (gate_handle_eh): Ditto.
9267 * cfgcleanup.c (rest_of_handle_jump2): Ditto.
9268 * basic-block.h (CLEANUP_PRE_LOOP): Remove.
9269
77180ce5 92702006-03-02 Eric Christopher <echristo@apple.com>
9271
9272 * config/i386/i386.c (machopic_output_stub): Add indirection to
9273 jump.
9274
7d3c6452 92752006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
9276
9277 * loop.c: Removed.
9278
6dbce0cb 92792006-03-02 David S. Miller <davem@sunset.davemloft.net>
9280
9281 Sun Niagara specific optimizations.
9282 * config.gcc: Recognize niagara as target.
9283 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
9284 (TARGET_CPU_niagara): Define.
9285 (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
9286 (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
9287 (CPP_CPU_SPEC): Handle -mcpu=niagara.
9288 (ASM_CPU_SPEC): Likewise.
9289 (PROCESSOR_NIAGARA): New enum entry.
9290 (REGISTER_MOVE_COST): Handle Niagara.
9291 (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
9292 * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
9293 (sparc_override_options): Recognize "niagara", set appropriate
9294 default MASK_* values for it, and align functions to 32-bytes
9295 by default just like ULTRASPARC/ULTRASPARC3.
9296 (sparc_initialize_trampoline): Handle niagara like ultrasparc.
9297 (sparc64_initialize_trampoline): Likewise.
9298 (sparc_use_sched_lookahead): Use zero for niagara.
9299 (sparc_issue_rate): Use one for niagara.
9300 * config/sparc/niagara.md: New file.
9301 * config/sparc/sparc.md: Include it.
9302 * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
9303 ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
9304 when default cpu is niagara.
9305 (CPP_CPU_SPEC): Handle -mcpu=niagara.
9306 (ASM_CPU_SPEC): Likewise.
9307 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
9308 when default cpu is niagara.
9309 (ASM_CPU_SPEC): Handle -mcpu=niagara.
9310 * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
9311 just like v9/ultrasparc/ultrasparc3.
9312 * doc/invoke.texi: Add documentation for "niagara" and improve
9313 existing documentation for ultrasparc variants.
77180ce5 9314
7dd75889 93152006-03-02 Diego Novillo <dnovillo@redhat.com>
9316
9317 * tree-ssa-operands.c (update_stmt_operands): Update documentation.
9318
102e3995 93192006-03-02 Richard Sandiford <richard@codesourcery.com>
9320
9321 * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
9322 (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
9323 and say that only one is needed.
9324 * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
9325 * target.h (have_switchable_bss_sections): New hook.
9326 * explow.c (use_anchored_address): Check that the symbol is in a block.
9327 * varasm.c (tls_comm_section, comm_section, lcomm_section)
9328 (bss_noswitch_section): New variables.
9329 (get_unnamed_section): Add SECTION_UNNAMED to the flags.
9330 (get_noswitch_section): New function.
9331 (get_block_for_section): Allow SECT to be null.
9332 (unlikely_text_section_p): Use SECTION_STYLE.
9333 (bss_initializer_p): New function.
9334 (get_variable_section): Move earlier in file. Take a new argument,
9335 prefer_noswitch_p. Move bss checks from assemble_variable to here.
9336 Return one of the new *_sections in such cases.
9337 (get_block_for_decl): New function, extracting some logic from
9338 use_blocks_for_decl_p.
9339 (change_symbol_section): Remove in favor of...
9340 (change_symbol_block): ...this new function.
9341 (use_blocks_for_decl_p): Remove checks now performed by
9342 get_block_for_decl.
9343 (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
9344 (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
9345 (emit_local, emit_bss, emit_common): ...these new functions.
9346 Return true if the alignment was honored.
9347 (emit_tls_common): New function.
9348 (asm_emit_uninitialised): Delete.
9349 (assemble_variable_noswitch): New function, split out from...
9350 (assemble_variable): ...here. Don't make decisions about common
9351 variables here. Globalize all public decls that go into non-common
9352 sections. Check whether SYMBOL_REF_BLOCK is null.
9353 (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
9354 (output_constant_pool): Likewise.
9355 (init_varasm_once): Initialize the new section variables.
9356 (have_global_bss_p): New function.
9357 (categorize_decl_for_section): Use bss_initializer_p.
9358 (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
9359 (place_block_symbol): Assert that the symbol must be in a block.
9360 * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
9361 (TARGET_INITIALIZER): Include it.
9362 * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
9363 * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
9364 (SECTION_MACH_DEP): Bump by two.
9365 (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
9366 (unnamed_section): Mention SECTION_UNNAMED in comment.
9367 (named_section): Likewise SECTION_NAMED.
9368 (noswitch_section_callback): New type.
9369 (noswitch_section): New structure.
9370 (section): Add a noswitch_section alternative.
9371 (SECTION_STYLE): New macro.
9372 (tls_comm_section, comm_section, lcomm_section): Declare.
9373 (bss_noswitch_section, have_global_bss_p): Declare.
9374 * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
9375 * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
9376 Override.
9377 * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
9378 * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
9379 Override.
9380
2a1990e9 93812006-03-02 Daniel Berlin <dberlin@dberlin.org>
9382
cf8cdd54 9383 * tree-vrp.c (execute_vrp): Return value.
9384 * regrename.c (rest_of_handle_regrename): Ditto.
9385 * tree-into-ssa.c (rewrite_into_ssa): Ditto.
9386 * tree-complex.c (tree_lower_complex): Ditto.
2a1990e9 9387 (tree_lower_complex_O0): Ditto.
cf8cdd54 9388 * tracer.c (rest_of_handle_tracer): Ditto.
9389 * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
9390 * postreload.c (rest_of_handle_postreload): Ditto.
9391 * tree-tailcall.c (execute_tail_recursion): Ditto.
2a1990e9 9392 (execute_tail_calls): Ditto.
cf8cdd54 9393 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
9394 * tree.h (init_function_for_compilation): Ditto.
9395 * ipa-cp.c (ipcp_driver): Ditto.
9396 * tree-scalar-evolution.c (scev_const_prop): Ditto.
9397 * tree-scalar-evolution.h (scev_const_prop): Ditto.
9398 * final.c (compute_alignments): Ditto.
2a1990e9 9399 (rest_of_handle_final): Ditto.
9400 (rest_of_handle_shorten_branches): Ditto.
9401 (rest_of_clean_state): Ditto.
cf8cdd54 9402 * omp-low.c (execute_expand_omp): Ditto.
2a1990e9 9403 (execute_lower_omp): Ditto.
cf8cdd54 9404 * tree-ssa-dse.c (tree_ssa_dse): Ditto.
9405 * ipa-reference.c (static_execute): Ditto.
9406 * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
9407 * reorg.c (rest_of_handle_delay_slots): Ditto.
2a1990e9 9408 (rest_of_handle_machine_reorg): Ditto.
cf8cdd54 9409 * cgraphunit.c (rebuild_cgraph_edges): Ditto.
9410 * flow.c (recompute_reg_usage): Ditto.
2a1990e9 9411 (rest_of_handle_remove_death_notes): Ditto.
9412 (rest_of_handle_life): Ditto.
9413 (rest_of_handle_flow2): Ditto.
cf8cdd54 9414 * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
9415 * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
2a1990e9 9416 (do_ssa_store_ccp): Ditto.
9417 (execute_fold_all_builtins): Ditto.
cf8cdd54 9418 * mode-switching.c (rest_of_handle_mode_switching): Ditto.
9419 * modulo-sched.c (rest_of_handle_sms): Ditto.
9420 * ipa-pure-const.c (static_execute): Ditto.
9421 * cse.c (rest_of_handle_cse): Ditto.
2a1990e9 9422 (rest_of_handle_cse2): Ditto.
cf8cdd54 9423 * web.c (rest_of_handle_web): Ditto.
9424 * tree-stdarg.c (execute_optimize_stdarg): Ditto.
9425 * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
9426 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
9427 * tree-nrv.c (tree_nrv): Ditto.
2a1990e9 9428 (execute_return_slot_opt): Ditto.
cf8cdd54 9429 * tree-ssa-alias.c (compute_may_aliases): Ditto.
2a1990e9 9430 (create_structure_vars): Ditto.
cf8cdd54 9431 * loop-init.c (rtl_loop_init): Ditto.
2a1990e9 9432 (rtl_loop_done): Ditto.
9433 (rtl_move_loop_invariants): Ditto.
9434 (rtl_unswitch): Ditto.
9435 (rtl_unroll_and_peel_loops): Ditto.
9436 (rtl_doloop): Ditto.
cf8cdd54 9437 * gimple-low.c (lower_function_body): Ditto.
2a1990e9 9438 (mark_used_blocks): Ditto.
cf8cdd54 9439 * tree-ssa-sink.c (execute_sink_code): Ditto.
9440 * ipa-inline.c (cgraph_decide_inlining): Ditto.
2a1990e9 9441 (cgraph_early_inlining): Ditto.
cf8cdd54 9442 * global.c (rest_of_handle_global_alloc): Ditto.
9443 * jump.c (cleanup_barriers): Ditto.
2a1990e9 9444 (purge_line_number_notes): Ditto.
cf8cdd54 9445 * ifcvt.c (rest_of_handle_if_conversion): Ditto.
2a1990e9 9446 (rest_of_handle_if_after_reload): Ditto.
cf8cdd54 9447 * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
2a1990e9 9448 (tree_ssa_loop_im): Ditto.
9449 (tree_ssa_loop_unswitch): Ditto.
9450 (tree_vectorize): Ditto.
9451 (tree_linear_transform): Ditto.
9452 (tree_ssa_loop_ivcanon): Ditto.
9453 (tree_ssa_empty_loop): Ditto.
9454 (tree_ssa_loop_bounds): Ditto.
9455 (tree_complete_unroll): Ditto.
9456 (tree_ssa_loop_prefetch): Ditto.
9457 (tree_ssa_loop_ivopts): Ditto.
9458 (tree_ssa_loop_done): Ditto.
cf8cdd54 9459 * predict.c (tree_estimate_probability): Ditto.
9460 * recog.c (split_all_insns_noflow): Ditto.
2a1990e9 9461 (rest_of_handle_peephole2): Ditto.
9462 (rest_of_handle_split_all_insns): Ditto.
cf8cdd54 9463 * tree-eh.c (lower_eh_constructs): Ditto.
9464 * regmove.c (rest_of_handle_regmove): Ditto.
2a1990e9 9465 (rest_of_handle_stack_adjustments): Ditto.
cf8cdd54 9466 * local-alloc.c (rest_of_handle_local_alloc): Ditto.
9467 * function.c (instantiate_virtual_regs): Ditto.
2a1990e9 9468 (init_function_for_compilation): Ditto.
9469 (rest_of_handle_check_leaf_regs): Ditto.
cf8cdd54 9470 * gcse.c (rest_of_handle_jump_bypass): Ditto.
2a1990e9 9471 (rest_of_handle_gcse): Ditto.
cf8cdd54 9472 * ipa-type-escape.c (type_escape_execute): Ditto.
9473 * alias.c (rest_of_handle_cfg): Ditto.
9474 * tree-if-conv.c (main_tree_if_conversion): Ditto.
9475 * profile.c (rest_of_handle_branch_prob): Ditto.
9476 * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
9477 * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
9478 * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
9479 * tree-dfa.c (find_referenced_vars): Ditto.
9480 * except.c (set_nothrow_function_flags): Ditto.
2a1990e9 9481 (convert_to_eh_region_ranges): Ditto.
9482 (rest_of_handle_eh): Ditto.
cf8cdd54 9483 * emit-rtl.c (unshare_all_rtl): Ditto.
2a1990e9 9484 (remove_unnecessary_notes): Ditto.
cf8cdd54 9485 * except.h (set_nothrow_function_flags): Ditto.
2a1990e9 9486 (convert_to_eh_region_ranges): Ditto.
cf8cdd54 9487 * cfgexpand.c (tree_expand_cfg): Ditto.
9488 * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
9489 * tree-ssa-pre.c (do_pre): Ditto.
2a1990e9 9490 (execute_fre): Ditto.
cf8cdd54 9491 * cfgcleanup.c (rest_of_handle_jump): Ditto.
2a1990e9 9492 (rest_of_handle_jump2): Ditto.
cf8cdd54 9493 * tree-sra.c (tree_sra): Ditto.
9494 * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
2a1990e9 9495 (execute_mudflap_function_decls): Ditto.
cf8cdd54 9496 * tree-ssa-copy.c (do_copy_prop): Ditto.
2a1990e9 9497 (do_store_copy_prop): Ditto.
cf8cdd54 9498 * ipa-prop.h (ipcp_driver): Ditto.
9499 * cfglayout.c (insn_locators_initialize): Ditto.
9500 * tree-ssa-forwprop.c
2a1990e9 9501 (tree_ssa_forward_propagate_single_use_vars): Ditto.
cf8cdd54 9502 * cfglayout.h (insn_locators_initialize): Ditto.
9503 * tree-ssa-dce.c (tree_ssa_dce): Ditto.
9504 * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
2a1990e9 9505 (execute_late_warn_uninitialized): Ditto.
cf8cdd54 9506 * rtl.h (cleanup_barriers): Ditto.
2a1990e9 9507 (split_all_insns_noflow): Ditto.
9508 (purge_line_number_notes): Ditto.
9509 (unshare_all_rtl): Ditto.
9510 (remove_unnecessary_notes): Ditto.
9511 (recompute_reg_usage): Ditto.
9512 (variable_tracking_main): Ditto.
cf8cdd54 9513 * integrate.c (emit_initial_value_sets): Ditto.
9514 * integrate.h (emit_initial_value_sets): Ditto.
9515 * tree-optimize.c (execute_free_datastructures): Ditto
2a1990e9 9516 (execute_free_cfg_annotations): Ditto.
9517 (execute_fixup_cfg): Ditto.
9518 (execute_cleanup_cfg_pre_ipa): Ditto.
9519 (execute_cleanup_cfg_post_optimizing): Ditto.
9520 (execute_init_datastructures): Ditto.
cf8cdd54 9521 * tree-object-size.c (compute_object_sizes): Ditto.
9522 * combine.c (rest_of_handle_combine): Ditto.
9523 * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
9524 * bb-reorder.c (duplicate_computed_gotos): Ditto.
2a1990e9 9525 (rest_of_handle_reorder_blocks): Ditto.
9526 (rest_of_handle_partition_blocks): Ditto.
cf8cdd54 9527 * var-tracking.c (variable_tracking_main): Ditto.
9528 * tree-profile.c (tree_profiling): Ditto.
9529 * tree-vect-generic.c (expand_vector_operations): Ditto.
9530 * reg-stack.c (rest_of_handle_stack_regs): Ditto.
9531 * sched-rgn.c (rest_of_handle_sched): Ditto.
2a1990e9 9532 (rest_of_handle_sched2): Ditto.
cf8cdd54 9533 * basic-block.h (free_bb_insn): Ditto.
9534 * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
9535 * tree-cfg.c (execute_build_cfg): Ditto.
2a1990e9 9536 (remove_useless_stmts): Ditto.
9537 (split_critical_edges): Ditto.
9538 (execute_warn_function_return): Ditto.
9539 (execute_warn_function_noreturn): Ditto.
cf8cdd54 9540 * tree-ssa-reassoc.c (execute_reassoc): Ditto.
9541 * cfgrtl.c (free_bb_for_insn): Ditto.
9542 * passes.c (execute_one_pass): Run additional
2a1990e9 9543 todos returned by execute function.
cf8cdd54 9544 * tree-pass.h (struct tree_opt_pass): Make execute
2a1990e9 9545 return a value.
9546
441fbbf3 95472006-03-02 Richard Guenther <rguenther@suse.de>
9548
9549 * tree-ssa-alias.c (find_used_portions): Consider taking
9550 the address as making the variable not write-only.
9551
430e8f92 95522006-03-02 Nick Clifton <nickc@redhat.com>
9553
9554 * config.gcc (default_use_cxa_atexit): Extend the description of
9555 this configure variable. Set its default value to "yes" for
9556 Linux, NetBSD and ELF targets on the assumption that they will
9557 use C libraries with the __cxa_atexit function.
9558
f4b40639 95592006-03-02 Ben Elliston <bje@au.ibm.com>
9560
9561 * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
9562 parameter as unused to suppress a build warning.
9563
694de25f 95642006-03-02 Ben Elliston <bje@au.ibm.com>
9565
9566 * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
9567 config/dfp-bit.c.
9568
80164241 95692006-03-01 Roger Sayle <roger@eyesopen.com>
9570
9571 PR other/26489
9572 * gthr-posix.h (__gthrw2): Define to take three parameters, the
9573 declared name, the weak reference name, and the typeof name.
9574 (__gthrw): Avoid expanding the declared name suffix.
9575 (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
9576
0e7a2378 95772006-03-01 Jakub Jelinek <jakub@redhat.com>
9578
9579 * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
9580 from DWARF 3.
9581 (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
9582 DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
9583 DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
9584 DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
9585 DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
9586 (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
9587 (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
9588 DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
9589 (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
9590 DW_DS_leading_separate, DW_DS_trailing_separate): New.
9591 (DW_END_default, DW_END_big, DW_END_little): New.
9592 (DW_END_lo_user, DW_END_hi_user): Define.
9593 (DW_LNE_lo_user, DW_LNE_hi_user): Define.
9594 (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
9595 (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
9596 DW_LANG_D): New.
9597
eff665b7 95982006-03-01 Diego Novillo <dnovillo@redhat.com>
9599
9600 * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
9601 Update all users.
9602 * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
9603 Update all users.
9604 (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
9605 Update all users.
9606 * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
9607 Update all users.
9608 * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
9609 to 'symbol_mem_tag'.
9610 Update all users.
9611 * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
9612 rename.
9613
749680e2 96142006-03-01 Roger Sayle <roger@eyesopen.com>
9615
9616 * builtins.c (fold_builtin_copysign): Delete unreachable code.
9617
7105bd6c 96182006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
9619
9620 PR target/25761
9621 * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
9622 MACHO_DYNAMIC_NO_PIC_P.
9623 (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
9624
8c27005f 96252006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
9626
9627 PR target/26389
9628 * config/darwin-protos.h (darwin_asm_output_anchor):
9629 Declare.
9630 * config/darwin-sections.def (cstring_section):
9631 Add SECTION_MERGE to the flags.
9632 (literal4_section): Likewise.
9633 (literal8_section): Likewise.
9634 (objc_selector_refs_section): Likewise.
9635 (objc_cls_refs_section): Likewise.
9636 * config/darwin.c (darwin_asm_output_anchor): New
9637 function.
9638 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
9639
de08b454 96402006-03-01 Daniel Berlin <dberlin@dberlin.org>
eff665b7 9641
de08b454 9642 Fix PR tree-optimization/26443
9643 * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
9644 to todo and PROP_tmt_usage to properties_destroyed.
9645 * tree-ssa-ccp.c (pass_ccp): Ditto.
9646 (pass_store_ccp): Ditto.
9647 * tree-ssa-dom.c (pass_dominator): Ditto.
9648
fa999566 96492006-03-01 Diego Novillo <dnovillo@redhat.com>
9650
9651 * tree-ssa-operands.c: Cleanup whitespace.
9652 (get_asm_expr_operands): Move before first invocation.
9653 (get_indirect_ref_operands): Likewise.
9654 (get_tmr_operands): Likewise.
9655 (get_call_expr_operands): Likewise.
9656 (append_def): Likewise.
9657 (append_use): Likewise.
9658 (append_v_may_def): Likewise.
9659 (append_v_must_def): Likewise.
9660 (add_call_clobber_ops): Likewise.
9661 (add_call_read_ops): Likewise.
9662 (add_stmt_operand): Likewise.
9663 (add_virtual_operand): Likewise.
9664 (build_ssa_operands): Likewise.
9665
96662006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
e77b8618 9667
9668 PR middle-end/26022
9669 Revert:
9670 PR middle-end/24437
9671 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
9672 with a call expr to ...
9673 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
9674
e29d5ed8 96752006-03-01 Diego Novillo <dnovillo@redhat.com>
9676
9677 * tree-vrp.c (extract_range_from_assert): Remove special
9678 handling for types with super-types.
9679
ec486420 96802006-03-01 Ben Elliston <bje@au.ibm.com>
9681
7a1e3d60 9682 * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
9683 and powerpc64-*-linux* configurations.
9684 * config/t-dfprules: New file.
9685
ec486420 9686 * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
9687 Compile dfp-bit.c from the source directory using -DWIDTH and
9688 $DFP_CFLAGS to control the compilation of that file, rather than
9689 generating width-specific versions in the build directory.
9690 * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
9691 (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
9692
089b214f 96932006-02-28 Zack Weinberg <zackw@panix.com>
9694
9695 * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
9696 continues to work.
9697
bcba0559 96982006-02-28 Eric Christopher <echristo@apple.com>
9699
9700 * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
9701 Set up IN_LIBGCC definition of TARGET_64BIT.
9702 * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
9703
7ae0e4a9 97042006-02-28 Roger Sayle <roger@eyesopen.com>
9705
9706 PR middle-end/14752
9707 * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
9708 BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
9709 cases via the construction of "expr != 0".
9710
c5780f6d 97112006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
9712
9713 * alias.c (alias_invariant, alias_invariant_size): Remove.
9714 (record_base_value): Remove.
9715 (memrefs_conflict_p): Don't look at alias_invariant.
9716 (end_alias_analysis): Don't free it.
9717 * alias.h (record_base_value): Remove prototype.
9718
fd95fba4 97192006-02-28 Paolo Bonzini <bonzini@gnu.org>
9720 Adam Nemet <anemet@caviumnetworks.com>
9721
9722 * rtl.h (truncated_to_mode): Declare it.
9723 (struct rtl_hooks): Add reg_truncated_to_mode hook.
9724 * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
9725 (RTL_HOOKS_INITIALIZER): Include it.
9726 * rtlhooks.c (reg_truncated_to_mode_general): New function.
9727 * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
9728 reg_truncated_to_mode.
9729 * rtlanal.c (truncated_to_mode): Define it.
9730 * simplify-rtx.c (simplify_unary_operation_1): Use it.
9731
8c8a79f4 97322006-02-28 Jeff Law <law@redhat.com>
9733
136335a2 9734 * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
9735 conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
9736 the range allowed by TYPE_PRECISION.
9737
8c8a79f4 9738 * tree.h (strct phi_arg_d): Remove unused NONZERO field.
9739
e686c658 97402006-02-28 Dorit Nuzman <dorit@il.ibm.com>
9741
9742 PR tree-optimization/26419
9743 * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
9744 values of n.
9745
470d2447 97462006-02-27 Zack Weinberg <zackw@panix.com>
9747
9748 * doc/md.texi: Fix typo in previous change.
9749
5f4d8ce0 97502006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
9751
9752 * df.c: Remove.
9753
026d3868 97542006-02-27 Zack Weinberg <zackw@panix.com>
9755
9756 * rtl.def (define_constraint, define_register_constraint)
9757 (define_memory_constraint, define_address_constraint): New MD forms.
9758 * gensupport.c (process_rtx): Put define_constraint etc on the
9759 predicate queue.
9760 * genpreds.c (process_define_predicate): Adjust comment. Validate
9761 the name, and call validate_exp to validate the expression.
9762 (mark_mode_tests, write_extract_subexp): Can assume correct input.
9763 (write_predicate_expr): Likewise. NAME argument no longer necessary;
9764 all callers changed.
9765 (validate_exp, needs_variable, struct constraint_data)
9766 (constraints_by_letter_table, first_constraint, last_constraint_ptr)
9767 (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
9768 (const_dbl_constraints, constraint_max_namelen)
9769 (have_register_constraints, have_memory_constraints)
9770 (have_address_constraints, have_address_constraints)
9771 (have_extra_constraints, have_const_int_constraints)
9772 (have_const_dbl_constraints, mangle, add_constraint)
9773 (process_define_constraint, process_define_register_constraint)
9774 (write_enum_constraint_num, write_lookup_constraint)
9775 (write_insn_constraint_len, write_regclass_for_constraint)
9776 (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
9777 (write_insn_extra_memory_constraint)
9778 (write_insn_extra_address_constraint)
9779 (write_satisfies_constraint_fns): New.
9780 (write_tm_preds_h): If we have new-style constraint definitions,
9781 prototype the functions generated from them, and define the
9782 old constraint interface (still used by generic code) in terms of
9783 those functions.
9784 (write_insn_preds_c): If we have new-style constraint definitions,
9785 generate all relevant functions from those definitions.
9786 (main): Handle define_constraint etc.
9787 * genoutput.c (struct constraint_data, indep_constraints)
9788 (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
9789 (mdep_constraint_len): New data structures and functions, defined
9790 #ifdef USE_MD_CONSTRAINTS.
9791 (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
9792 (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
9793 use new logic to validate operand constraints against constraint
9794 definitions.
9795 (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
9796 defined.
9797 * defaults.h: If none of the old-style constraint macros are
9798 defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
9799 old-style macros; and poison REG_CLASS_FROM_LETTER,
9800 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
9801 EXTRA_CONSTRAINT.
9802 * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
9803 * doc/md.texi: Document new constraint-definition mechanism and the
9804 C interface it provides. Remove references to old mechanism
6993cbc4 9805 elsewhere in the document.
026d3868 9806 (Machine Constraints): Use pathnames relative to gcc directory,
9807 i.e. config/ARCH/FILE. Change i386 section to refer to
9808 config/i386/predicates.md; update that section to match docstrings.
9809 * doc/tm.texi: Move all documentation of the old constraint-
9810 definition macros to their own section, clearly mark as obsolete.
9811
9812 * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
9813 (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
9814 definitions.
9815 * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
9816 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9817 * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
9818 constraint strings.
9819 (splits and peepholes): Use satisfies_constraint_*.
9820 * config/i386/i386.c (memory_address_length)
9821 (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
9822
3a6e1ee4 98232006-02-27 Daniel Berlin <dberlin@dberlin.org>
9824
9825 * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
9826 scalar operation to be put back into the loop.
9827
15c73eb7 98282006-02-27 Jakub Jelinek <jakub@redhat.com>
9829
9830 PR other/26208
9831 * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
9832 (extract_cie_info): Handle S flag in augmentation string.
9833 (execute_cfa_program): If context->signal_frame, execute also
9834 fs->pc == context->ra instructions.
9835 (uw_frame_state_for): If context->signal_frame, don't subtract one
9836 from context->ra to find FDE.
9837 (uw_update_context_1): Set context->signal_frame to
9838 fs->signal_frame.
9839 (_Unwind_GetIPInfo): New function.
9840 * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
9841 * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
9842 of _Unwind_GetIP.
9843 * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
9844 * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
9845 * unwind-compat.c (_Unwind_GetIPInfo): New function.
9846 * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
9847 * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
9848 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
9849 * config/i386/linux-unwind.h (x86_fallback_frame_state,
9850 x86_64_fallback_frame_state): Set fs->signal_frame.
9851 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
9852 (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
9853 (frob_update_context): Likewise. Workaround missing S flag in
9854 Linux 2.6.12 - 2.6.16 kernel vDSOs.
9855 * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
9856 Remove the psw_addr + 1 hack.
9857
5f506404 98582006-02-27 Daniel Berlin <dberlin@dberlin.org>
9859
9860 * tree-ssa-structalias.c (get_constraint_for): Move code to deal
9861 with aggregates here.
9862 (find_func_aliases): Remove code for &<aggregate> from here.
9863
e08a39b3 98642006-02-26 Roger Sayle <roger@eyesopen.com>
9865
522701ef 9866 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
e08a39b3 9867 (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
9868 Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
9869 as (X & C) ne/eq 0.
9870
466fed6e 98712006-02-26 Roger Sayle <roger@eyesopen.com>
9872
9873 PR middle-end/19983
9874 * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
9875
4f87b914 98762006-02-26 Zdenek Dvorak <dvorakz@suse.cz>
9877
9878 * opts.c (decode_options): Do not handle flag_strength_reduce.
9879 (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
9880 and OPT_fstrength_reduce.
9881 * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
9882 flag_prefetch_loop_arrays for being nonzero.
9883 * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
9884 no-ops.
9885 (fprefetch-loop-arrays-rtl): Removed.
9886 (flag_prefetch_loop_arrays): Do not specify the value.
9887
9888 * doc/passes.texi: Update documentation of loop optimizer
9889 passes.
9890 * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
9891 -frerun-loop-opt): Remove.
9892
5b449890 98932006-02-26 Richard Guenther <rguenther@suse.de>
9894
9895 PR tree-optimization/26421
9896 * tree-ssa-alias.c (find_used_portions): Don't treat parameters
9897 in function calls that are ADDR_EXPRs as using the whole structure.
9898
a1ab4637 98992006-02-26 Steven Bosscher <stevenb.gcc@gmail.com>
9900
9901 * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
9902 * tree-pass.h (pass_loop_optimize): Remove.
9903 * passes.c (pass_loop_optimize): Never run it.
9904 * toplev.c (backend_init): Don't call init_loop.
9905 * opts.c (flag_loop_optimize_set): Remove.
9906 (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
9907 (common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
9908 the old RTL loop optimizer when profiling enabled.
9909 * predict.c (tree_estimate_probability): Always strip builtin_expect.
9910 * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
9911 pre-headers for the sake of the old RTL loop optimizer.
9912 * Makefile.in: Remove all references to loop.o.
9913
9914 * doc/invoke.texi: Remove all references to -floop-optimize
9915 and -frerun-loop-opt.
9916
6a3e083e 99172006-02-26 Zack Weinberg <zackw@panix.com>
9918
9919 * doc/md.texi (Machine Constraints): Refer to all files with paths
9920 relative to gcc directory (i.e. config/CPU/file). Add missing
9921 @table @code ... @end table to M32C subsection.
9922
7ddc480e 99232006-02-26 Roger Sayle <roger@eyesopen.com>
9924
9925 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
9926 (X & 1) == 0.
9927 <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
9928
1d8ff0d2 99292006-02-26 Roger Sayle <roger@eyesopen.com>
9930 James A. Morrison <phython@gcc.gnu.org>
9931
9932 PR middle-end/21137
522701ef 9933 * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
1d8ff0d2 9934 when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
9935 new constant C2<<C1, or as (X<0) or (X,false) depending upon the
9936 signedness of the shift operation.
9937
b1e9e6c5 99382006-02-26 Dorit Nuzman <dorit@il.ibm.com>
9939
9940 PR tree-optimization/26359
9941 * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
9942
c11ee826 99432006-02-25 Roger Sayle <roger@eyesopen.com>
9944
522701ef 9945 * simplify-rtx.c (simplify_relational_operation_1): Simplify
c11ee826 9946 (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y
9947 as X == 0, and some symmetry related transformations.
9948 Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line.
9949
47da8b49 99502006-02-25 Roger Sayle <roger@eyesopen.com>
9951
9952 PR middle-end/23673
522701ef 9953 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
47da8b49 9954 and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
9955 symmetry related transformations. Fold (X^C1) == C2 as
9956 X == (C1^C2).
9957
6003588f 99582006-02-25 Juergen Weigert <jw@suse.de>
9959 Richard Guenther <rguenther@suse.de>
9960
9961 * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
9962
b666e08f 99632006-02-24 Adam Nemet <anemet@caviumnetworks.com>
9964
9965 * combine.c (gen_lowpart_or_truncate): Call
9966 simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
9967
fc9b1e42 99682006-02-24 Diego Novillo <dnovillo@redhat.com>
9969
9970 * doc/invoke.texi: Move -fopenmp description to "Options for
9971 Code Generation".
9972 Remove reference to -lgomp.
9973
4c4cdab7 99742006-02-24 David Edelsohn <edelsohn@gnu.org>
9975
9976 * doc/install.texi: Require GNU tar version 1.14.
9977
3bf418bd 99782006-02-24 Geoffrey Keating <geoffk@apple.com>
9979
9980 * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
6a3e083e 9981 * doc/invoke.texi (C++ Dialect Options): Document
3bf418bd 9982 -fno-use-cxa-get-exception-ptr.
9983 * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
9984 * configure: Regenerate.
9985 * c.opt (fuse-cxa-get-exception-ptr): New.
9986 * c-opts.c (c_common_handle_option): Handle
9987 OPT_fuse_cxa_get_exception_ptr.
9988 * c-common.c (flag_use_cxa_atexit): Update documentation.
9989 (flag_use_cxa_get_exception_ptr): New.
9990 * c-common.h (flag_use_cxa_get_exception_ptr): New.
9991 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
9992 documentation.
9993 (C_COMMON_OVERRIDE_OPTIONS): New.
9994
43c3808d 99952006-02-24 Roger Sayle <roger@eyesopen.com>
9996
9997 PR middle-end/24952
9998 * combine.c (try_combine): Explicitly check whether GET_CODE is
9999 a SET or a CLOBBER, instead on checking that it isn't a USE.
10000
6a451e87 100012006-02-24 Roger Sayle <roger@eyesopen.com>
10002
10003 * fold-const.c (fold_comparison): New subroutine of fold_binary
10004 containing transformations common to both the equality and
10005 ordering relational operators, factored out of fold_binary.
10006 (fold_binary): Separate out the equality operators (EQ_EXPR
10007 and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
10008 LE_EXPR and GE_EXPR), calling fold_comparison to perform the
10009 transformations common to both.
6a3e083e 10010 (fold_div_compare): Fix latent bugs in the previously unreachable
6a451e87 10011 LT_EXPR and GE_EXPR cases.
10012
fb8ce854 100132006-02-24 David Edelsohn <edelsohn@gnu.org>
10014
10015 * config/rs6000/rs6000.c (rs6000_init_builtins): Change
10016 decl libname for clog to __clog on AIX.
10017
10018 * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
10019
1d15adaa 100202006-02-24 Alan Modra <amodra@bigpond.net.au>
10021
10022 PR target/26453
10023 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
10024 output traceback table for thunks. Localise rs6000_stack_info call.
10025
ba2ddb4b 100262006-02-23 Roger Sayle <roger@eyesopen.com>
10027 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10028
10029 * gthr-posix.h (__gthrw): Fix typo in comment.
10030
100312006-02-23 Geoffrey Keating <geoffk@apple.com>
934a14ec 10032
10033 * doc/cpp.texi (Character sets): Document that we do support
10034 input files to be in any character set.
10035
f064ebd1 100362006-02-23 Jeff Law <law@redhat.com>
10037
6b34676b 10038 * tree.h (PHI_ARG_NONZERO): Remove.
10039 * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
10040 (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
10041 node to the new node.
10042
f064ebd1 10043 PR tree-optimization/26425
10044 * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
10045 min/max, then assume its varying.
10046
5ed26a34 100472006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
10048
10049 PR rtl-optimization/26316
10050 * rtlanal.c (enum may_trap_p_flags): New.
10051 (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore
10052 MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
10053 (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
10054 (may_trap_after_code_motion_p): New function.
10055 * loop-invariant.c (find_identical_invariants): Fix dump formating.
10056 (find_invariant_insn): Use may_trap_after_code_motion_p.
10057 * rtl.h (may_trap_after_code_motion_p): Declare.
10058
b1ca4af4 100592006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
10060
10061 * emit-rtl.c (immed_double_const): Cleanup.
10062
a9114efc 100632006-02-23 Daniel Berlin <dberlin@dberlin.org>
6a3e083e 10064
a9114efc 10065 Fix PR tree-optimization/26376
522701ef 10066 * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
a9114efc 10067 remove assert.
10068
a078576a 100692006-02-23 Jakub Jelinek <jakub@redhat.com>
10070
10071 PR middle-end/26412
10072 * gimplify.c (omp_add_variable): Guard variable size decl test with
10073 DECL_SIZE (decl) check.
10074
08ea2b04 100752006-02-23 Richard Guenther <rguenther@suse.de>
10076
10077 PR middle-end/26439
10078 * tree-ssa-structalias.c (find_func_aliases): Handle complex types
10079 like aggregate types.
10080
2dde0cc6 100812006-02-23 Jakub Jelinek <jakub@redhat.com>
10082
10083 * configure.ac: Add --with{,out}-long-double-128 configure option.
10084 (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
10085 * configure: Rebuilt.
10086 * config.in: Rebuilt.
10087 * doc/install.texi (Options specification): Document
10088 --with-long-double-128.
10089
10090 * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
10091 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
10092 * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
10093 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
10094
100952006-02-23 Aldy Hernandez <aldyh@redhat.com>
10096
10097 * config/s390/s390.c (override_options): Handle
10098 TARGET_DEFAULT_LONG_DOUBLE_128.
10099
10100 * config/alpha/alpha.c (override_options): Handle
10101 TARGET_DEFAULT_LONG_DOUBLE_128.
10102
10103 * config/sparc/sparc.c (sparc_override_options): Handle
10104 TARGET_DEFAULT_LONG_DOUBLE_128.
10105
ccdd426b 101062006-02-22 Daniel Jacobowitz <dan@codesourcery.com>
10107
10108 * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
10109 (real-install-headers-tar, real-install-headers-cpio)
10110 (real-install-headers-cp): New targets.
10111
610a28ab 101122006-02-22 Richard Sandiford <richard@codesourcery.com>
10113
10114 * tree.h (variable_section): Delete.
10115 * varasm.c (variable_section): Delete.
10116
6f6ae966 101172006-02-22 Paolo Bonzini <bonzini@gnu.org>
10118
10119 * install.texi: Add notes on install.texi2html.
10120 (Building in parallel): Do not use footnotes.
10121
9d5a3c4a 101222006-02-21 Aldy Hernandez <aldyh@redhat.com>
10123
10124 PR libgomp/26234
10125 * doc/install.texi (Configuration): Document --disable-libgomp.
10126
269dcd9d 101272006-02-21 Geoffrey Keating <geoffk@apple.com>
10128
10129 * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
10130
f7fa840e 101312006-02-21 Alexandre Oliva <aoliva@redhat.com>
10132
10133 * config/i386/sse.md (vec_extractv2df_1_sse): New.
10134 (vec_extractv2df_0_sse): New.
10135
89fa767a 101362006-02-21 Alexandre Oliva <aoliva@redhat.com>
10137
10138 * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
10139 * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
10140 * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
10141 * dwarf2out.c (build_cfa_loc): New offset parameter. Add it
10142 to the result of the expression.
10143 (def_cfa_1): Adjust.
10144 (frame_pointer_cfa_offset): Rename to...
10145 (frame_pointer_fb_offset): ... this. Adjust all uses.
10146 (convert_cfa_to_loc_list): Rename to...
10147 (convert_cfa_to_fb_loc_list): ... this. New offset parameter.
10148 Pass it on to build_cfa_loc.
10149 (compute_frame_pointer_to_cfa_displacement): Rename to...
10150 (compute_frame_pointer_to_fb_displacement): ... this. New
10151 offset parameter. Use it in computation.
10152 (gen_subprogram_die): Compute cfa_fb_offset with the new
10153 macro, and use it to compute the fb loc list and the
10154 displacement.
10155
622e3203 101562006-02-21 Bernd Schmidt <bernd.schmidt@analog.com>
10157
10158 * config/bfin/predicates.md (cc_operand): Delete predicate. All uses
10159 replaced with register_operand.
10160 * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
10161 non-DREG is expensive.
10162 * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
10163 * config/bfin/bfin.md (movbi): Fix constraints and template for moves
10164 involving memory.
10165
16561f50 101662006-02-21 Joseph S. Myers <joseph@codesourcery.com>
10167
10168 * doc/install.texi2html: Use set -e.
10169
e5ce4771 101702006-02-21 Richard Sandiford <richard@codesourcery.com>
10171
10172 * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
10173 (ASM_OUTPUT_SHARED_LOCAL): Delete.
10174 * doc/invoke.texi (-fshared-data): Delete.
10175 * common.opt (fshared-data): Delete.
10176 * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
10177 (assemble_static_space): Remove #if 0 code.
10178 * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
10179 (ASM_OUTPUT_SHARED_LOCAL): Poison.
10180 * config/cris/cris.h: Remove FIXME.
10181
903de853 101822006-02-21 Paolo Bonzini <bonzini@gnu.org>
10183
10184 * doc/sourcebuild.texi (Front End Directory): No more double-colon
10185 hooks.
10186
ad4ecfda 101872006-02-21 Jakub Jelinek <jakub@redhat.com>
10188
10189 PR middle-end/26379
10190 * combine.c (simplify_shift_const_1): Disable nested shifts
10191 optimization for vector shifts.
10192
667c08ce 101932006-02-20 Roger Sayle <roger@eyesopen.com>
10194
10195 PR tree-optimization/26361
10196 * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
10197 of unsigned integer types.
10198
6b421feb 101992006-02-20 Sebastian Pop <pop@cri.ensmp.fr>
10200
10201 * tree-chrec.c (eq_evolutions_p): New.
10202 * tree-chrec.h (eq_evolutions_p): Declared.
10203 * tree-data-ref.c: Fix formatting.
10204 (datadep_stats, dependence_stats): New.
10205 (gcd): Moved...
10206 (print_direction_vector): New.
10207 (dump_data_dependence_relation): Use print_direction_vector.
10208 (object_analysis, create_data_ref): Handle COMPONENT_REF.
10209 (compute_subscript_distance): Static.
10210 (initialize_data_dependence_relation): Static. Get the number
10211 of loops surrounding the references from the callers, and initialize
10212 DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
10213 base_object_differ_p analyzers.
6a3e083e 10214 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
6b421feb 10215 compute_overlap_steps_for_affine_1_2,
10216 analyze_subscript_affine_affine): Count the classified dependences.
10217 Print a message when a test failed.
6a3e083e 10218 (can_use_analyze_subscript_affine_affine): New.
6b421feb 10219 (analyze_siv_subscript): Compute the data dependences on symbolic
10220 scevs that verify can_use_analyze_subscript_affine_affine.
10221 (chrec_steps_divide_constant_p): Returns true, false, or unknown.
10222 (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
10223 Handle symbolic scevs.
10224 (analyze_overlapping_iterations): Let symbolic affine scevs to be
10225 analyzed.
10226 (subscript_dependence_tester): Moved...
6a3e083e 10227 (build_classic_dist_vector, build_classic_dir_vector): Don't use
6b421feb 10228 lambda_vector_clear on newly allocated vectors. Get nb_loops from
10229 DDR_SIZE_VECT instead of getting it in parameter.
6a3e083e 10230 (subscript_dependence_tester): ... here. Take as a parameter
6b421feb 10231 loop_nest_depth. Call build_classic_dist_vector and
10232 build_classic_dir_vector.
6a3e083e 10233 (compute_affine_dependence): Update subscript_dependence_tester
10234 parameters. Update datadep_stats counters. Call
6b421feb 10235 compute_subscript_distance.
6a3e083e 10236 (compute_self_dependence): Save the dist and dir vectors. Call
6b421feb 10237 compute_subscript_distance.
10238 (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
10239 (compute_all_dependences): Reorder parameters as they were before
10240 conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
6a3e083e 10241 compute_subscript_distance. Update the use of
6b421feb 10242 compute_affine_dependence and initialize_data_dependence_relation.
10243 (find_data_references_in_loop): Handle COMPONENT_REF.
10244 (compute_data_dependences_for_loop): Initialize dependence_stats.
10245 Don't call build_classic_dist_vector and build_classic_dir_vector.
6a3e083e 10246 Update the parameters of initialize_data_dependence_relation and
6b421feb 10247 compute_all_dependences. Print the statistics from datadep_stats.
10248 (analyze_all_data_dependences): Static. Not used until the pass for
10249 checking the data dependences is contributed.
10250 * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
10251 DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
6a3e083e 10252 (initialize_data_dependence_relation, compute_affine_dependence,
6b421feb 10253 analyze_all_data_dependences, compute_subscript_distance): Removed.
10254 (print_direction_vector): New.
10255 * lambda.h (gcd): ... here.
10256 (lambda_vector_gcd): Moved here from gcd_vector.
10257 * lambda-code.c (gcd, gcd_vector): Removed.
10258 (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
10259 * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
10260
a002e999 102612006-02-20 Diego Novillo <dnovillo@redhat.com>
10262
10263 * ipa-type-escape.c: Tidy some comments and white space.
10264 * tree-ssa-operands.c: Likewise.
10265
4d735392 102662006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
10267
10268 PR tree-opt/25879
10269 * tree-pretty-print.c (debug_tree_chain): Walk the chains.
10270 (dump_decl_name): Do not walk the decl tree chains.
10271 * tree-pass.h (TDF_CHAIN): Remove.
10272
10273