OSDN Git Service

d604a746c4c1bec943f680266269957e72ce4155
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-11-07  Dmitry Zhurikhin  <zhur@ispras.ru>
2             Andrey Belevantsev  <abel@ispras.ru>
3
4         * modulo-sched.c (sms_order_nodes, permute_partial_schedule,
5         generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes.
6         (calculate_order_params, sms_order_nodes): New parameter pmax_asap.
7         Save calculated max_asap in it.         
8         (sms_schedule): Calculate maxii using max_asap.
9
10 2007-11-07  Andreas Krebbel  <krebbel1@de.ibm.com>
11
12         * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp
13         with -mhard-dfp/-mno-hard-dfp.
14
15 2007-11-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
16             Jakub Jelinek  <jakub@redhat.com>
17
18         PR middle-end/33670
19         * haifa-sched.c (check_sched_flags): Remove.
20         (sched_init): Don't call it.
21
22 2007-11-06  Diego Novillo  <dnovillo@google.com>
23
24         * tree-flow.h (struct fieldoff): Reformat comment.
25         Document fields.
26         * tree-ssa-operands.c: Tidy top-level comments.
27         (add_vop): Likewise.
28         (add_vars_for_offset): Tidy parameter formatting..
29         (get_addr_dereference_operands): Likewise.
30         (get_indirect_ref_operands): Likewise.
31         (get_expr_operands) <OMP_ATOMIC_LOAD>: Reformat.
32         <OMP_ATOMIC_STORE>: Likewise.
33
34 2007-11-06  Rask Ingemann Lambertsen  <rask@sygehus.dk>
35
36         PR target/32787
37         * config/i386/driver-i386.c: Test for __GNUC__ instead of
38         GCC_VERSION which is always defined.
39
40 2007-11-06  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
41
42         PR target/30961
43         * reload1.c (find_reloads): Also check in_reg when handling a
44         simple move with an input reload and a destination of a hard
45         register.
46
47 2007-11-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
48
49         * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes.
50         (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
51         TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL,
52         TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
53         TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine.
54         (m68k_sched_attr_type2): New function.
55         (sched_adjust_cost_state): New static variable.
56         (m68k_sched_adjust_cost): New static function implementing
57         scheduler hook.
58         (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code):
59         New static variables.
60         (m68k_sched_variable_issue): New static function implementing
61         scheduler hook.
62         (sched_dump_class_def, sched_dump_class_func_t): New typedefs.
63         (sched_dump_split_class): New static function.
64         (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static
65         variables.
66         (sched_dump_dfa_class, m68k_sched_dump): New static function.
67         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
68         m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle,
69         m68k_sched_dfa_post_advance_cycle): New static functions implementing
70         scheduler hooks.
71
72         * config/m68k/m68k.h (m68k_sched_attr_type2): Declare.
73         (CPU_UNITS_QUERY): Define.
74
75         * config/m68k/cf.md: New file.
76         * config/m68k/m68.md (cf.md): New include.
77
78 2007-11-06  Tom Tromey  <tromey@redhat.com>
79
80         PR c++/32256, PR c++/32368:
81         * function.c (saved_in_system_header): New global.
82         (push_cfun): Save in_system_header.
83         (pop_cfun): Restore in_system_header.
84         (push_struct_function): Save in_system_header.
85
86 2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>
87
88         PR c++/33977
89         PR c++/33886
90         * c-common.c (c_build_qualified_type): Moved to c-typeck.c.
91         (complete_array_type): Set canonical type appropriately.
92         * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The
93         C and C++ front ends now have different versions of this function,
94         because the C++ version needs to maintain canonical types here.
95
96 2007-11-04  Razya Ladelsky  <razya@il.ibm.com>
97         
98         * tree-parloops.c (reduction_info): Remove reduction_init field.
99         (initialize_reductions): Remove creation of the reduction_init variable.
100         (struct data_arg): Remove.
101         (add_field_for_reduction, create_stores_for_reduction): New functions.
102         (add_field_for_name): Remove reduction handling.
103         (separate_decls_in_loop): Call add_field_for_reduction, 
104         create_stores_for_reduction.
105
106 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
107
108         PR tree-optimization/33458
109         * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates
110         !is_gimple_val PHI argument, gimplify it and insert it on edge.
111
112         PR tree-optimization/33993
113         * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector
114         rather than build_constructor_from_list if all list values are
115         constants.
116         (get_initial_def_for_induction): Use build_vector instead of
117         build_constructor_from_list.
118
119 2007-11-05  Mark Mitchell  <mark@codesourcery.com>
120
121         PR target/33579
122         * tree.h (DECL_INIT_PRIORITY): Do not require
123         DECL_HAS_INIT_PRIORITY_P.
124         (DECL_FINI_PRIORITY): Likewise.
125         * tree.c (decl_init_priority_lookup): Remove assert.
126         (decl_fini_priority_insert): Likewise.
127         * cgraphunit.c (static_ctors): Make it a VEC.
128         (static_dtors): Likewise.
129         (record_cdtor_fn): Adjust accordingly.
130         (build_cdtor): Generate multiple functions for each initialization
131         priority.
132         (compare_ctor): New function.
133         (compare_dtor): Likewise.
134         (cgraph_build_cdtor_fns): Sort the functions by priority before
135         calling build_cdtor.
136         (cgraph_build_static_cdtor): Put the priority in the function's
137         name.
138
139 2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>
140
141         PR driver/32632
142         * common.opt: Add shared and pie.
143
144 2007-11-05  Bob Wilson  <bob.wilson@acm.org>
145
146         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not
147         replace references to virtual_stack_vars_rtx in goto_handler.
148
149 2007-11-05  Paul Brook  <paul@codesourcery.com>
150
151         * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs.
152         * config/arm/arm.c (arm_lang_output_object_attributes_hook): New.
153         (arm_file_start): Don't set Tag_ABI_PCS_wchar_t.  Call
154         arm_lang_output_object_attributes_hook.
155         * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare.
156         (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init.
157         * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add
158         prototype.
159         * config/arm/t-arm.c (arm.o): New rule.
160         * config/arm/arm-c.c: New file.
161
162 2007-11-05  Nick Clifton  <nickc@redhat.com>
163             Sebastian Pop  <sebastian.pop@amd.com>
164
165         PR tree-optimization/32540
166         PR tree-optimization/33922
167         * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH.
168         * tree-ssa-pre.c: Include params.h.
169         (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH
170         to limit the maximum length of the PA set for a given block.
171         * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c
172         * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter.
173
174 2007-11-05  Nathan Sidwell  <nathan@codesourcery.com>
175
176         * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
177         __fixunssfDI): Make return type unsigned.
178         * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI,
179         __fixunssfDI): Make return type unsigned.
180
181 2007-11-05  Jakub Jelinek  <jakub@redhat.com>
182
183         PR tree-optimization/33856
184         * tree-data-ref.c (get_references_in_stmt): Don't add
185         REFERENCE_CLASS_P trees to references vector if get_base_address
186         returns NULL on them.
187
188 2007-11-05  Alexandre Oliva  <aoliva@redhat.com>
189
190         * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum.
191
192 2007-11-04  Andrew Pinski  <pinskia@gmail.com>
193
194         PR middle-end/32931
195         * fold-const.c (fold_binary <case EQ_EXPR>): Convert the inner type
196         for TRUTH_NOT_EXPR to type.
197
198 2007-11-04  Gerald Pfeifer  <gerald@pfeifer.com>
199
200         * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez.
201
202 2007-11-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
203
204         PR fortran/10220
205         * dwarf2out.c (add_calling_convention_attribute): Change
206         second argument. Set calling convention to DW_CC_program for
207         Fortran main program.
208         (gen_subprogram_die): Adjust to new prototype for
209         add_calling_convention_attribute.
210
211 2007-11-03  Dorit Nuzman  <dorit@il.ibm.com>
212
213         PR tree-optimization/33987
214         * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert.
215         Fix indentation.
216         (vectorizable_reduction): Add type check.
217
218 2007-11-03  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
219
220         PR c/29062
221         * c-parser.c (c_parser_statement_after_labels): Error if a
222         declaration is parsed after a label.
223         
224 2007-11-03  Daniel Jacobowitz  <dan@codesourcery.com>
225
226         PR debug/33921
227         * reorg.c (emit_delay_sequence): Do not clear the locator on
228         the jump instruction.
229
230 2007-11-03  Jakub Jelinek  <jakub@redhat.com>
231
232         PR middle-end/33670
233         * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the
234         current sched region.
235
236 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
237
238         * config/ia64/ia64.c (struct reg_write_state): Change into
239         unsigned short bitfields rather than unsigned int, decrease
240         first_pred to just 10 bits.
241         (rws_insn): Change into a bitmap or if not ENABLE_CHECKING
242         into two char array.
243         (rws_insn_set, rws_insn_test): New functions.
244         (in_safe_group_barrier): New variable.
245         (rws_update): Remove first argument, always set rws_sum array.
246         (rws_access_regno): Use rws_insn_set macro.  Only call rws_update
247         or update rws_sum if !in_safe_group_barrier, adjust rws_update
248         args.
249         (rtx_needs_barrier): Use rws_insn_test macro.
250         (safe_group_barrier_needed): Don't save/restore rws_sum array,
251         instead set/clear in_safe_group_barrier flag.
252
253 2007-11-02  Bob Wilson  <bob.wilson@acm.org>
254
255         * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a
256         REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack
257         pointer or frame pointer.
258         * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete.
259         (MUST_USE_SJLJ_EXCEPTIONS): Define.
260         (DWARF2_UNWIND_INFO): Define.
261         (INCOMING_RETURN_ADDR_RTX): Define.
262         (DWARF_FRAME_RETURN_COLUMN): Define.
263
264 2007-11-02  Tom Tromey  <tromey@redhat.com>
265
266         * varpool.c (dump_varpool): Use 'next', not 'next_needed' when
267         traversing pool.
268
269 2007-11-02  Diego Novillo  <dnovillo@google.com>
270
271         * langhooks.h (struct lang_hooks_for_callgraph): Remove third
272         argument from function pointer ANALYZE_EXPR.  Update all
273         users.
274         * cgraph.c (debug_cgraph_node): New.
275         (debug_cgraph): New.
276
277 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
278
279         PR rtl-optimization/33648
280         * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of
281         the newly created basic block.
282
283 2007-11-01  Richard Guenther  <rguenther@suse.de>
284
285         * ggc-page.c (extra_order_size_tab): Add bitmap_head size.
286
287 2007-11-01  Steven Bosscher  <stevenb.gcc@gmail.com>
288
289         PR rtl-optimization/33828
290         * gcse.c (compute_code_hoist_vbeinout): Fix order of computation
291         of VBEIN and VBEOUT.
292
293 2007-11-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
294
295         * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks.
296         * sched-rgn.c (compute_trg_info): Zero 'el' local variable.
297         * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable.
298
299 2007-11-01  Nathan Sidwell  <nathan@codesourcery.com>
300
301         * gcc.c (getenv_spec_function): Escape the environment variable's
302         value.
303
304 2007-11-01  Janis Johnson  <janis187@us.ibm.com>
305
306         * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps,
307         show that CSE means common subexpression elimination.  Change wording
308         for -fsee and define LCM.  Remove capitalization of optimizations
309         for -ftree-reassoc, -ftree-pre, and -ftree-fre.
310
311 2007-11-01  Janis Johnson  <janis187@us.ibm.com>
312
313         PR testsuite/25352
314         * doc/sourcebuild.texi (Test Directives): Document that xfail
315         has no effect for dg-do except when dg-do-what is "run".
316
317 2007-11-01  Tom Tromey  <tromey@redhat.com>
318
319         * c-decl.c (grokdeclarator): Set decl source locations.
320         * c-parser.c (c_parser_enum_specifier): Set location.
321         (c_parser_struct_or_union_specifier): Likewise.
322
323 2007-11-01  Tom Tromey  <tromey@redhat.com>
324
325         * print-tree.c (print_node): Print column number.
326
327 2007-11-01  Jakub Jelinek  <jakub@redhat.com>
328
329         PR debug/33537
330         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
331         gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type
332         rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl).
333
334         PR rtl-optimization/33673
335         * gcse.c (cprop_jump): If a conditional jump has been optimized
336         into unconditional jump, make the remaining normal edge fallthru
337         and delete the jump insn.
338
339 2007-11-01  Ben Elliston  <bje@au.ibm.com>
340
341         * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment.
342         (set_mem_attrs_from_reg): Likewise.
343
344 2007-11-01  Michael Matz  <matz@suse.de>
345
346         PR tree-optimization/33961
347         * tree-ssa-phiopt.c (struct name_to_bb.store): New member.
348         (name_to_bb_hash, name_to_bb_eq): Consider and check it.
349         (add_or_mark_expr): New argument 'store', using it to search
350         the hash table.
351         (nt_init_block): Adjust calls to add_or_mark_expr.
352
353 2007-10-31  Jakub Jelinek  <jakub@redhat.com>
354
355         PR target/31507
356         * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints
357         for the first push_operand.
358
359 2007-10-31  Revital Eres  <eres@il.ibm.com>
360
361         * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf,
362         reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf,
363         vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf,
364         movmisalignv2sf, vcondv2sf): New.
365         (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF,
366         UNSPEC_EXTODD_V2SF): Define new constants.
367         * config/rs6000/rs6000-protos.h (paired_expand_vector_move,
368         paired_emit_vector_cond_expr): New.
369         * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define.
370         * config/rs6000/rs6000.c (paired_expand_vector_move,
371         paired_emit_vector_cond_expr, paired_emit_vector_compare):
372         New functions.
373         * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option.
374
375 2007-10-31  Sebastian Pop  <sebastian.pop@amd.com>
376
377         PR tree-optimization/32377
378         * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it
379         work also for unknown number of iterations.
380         (analyze_subscript_affine_affine): Clean up.  Don't fail when the 
381         number of iterations is not known.
382
383 2007-10-31  Richard Guenther  <rguenther@suse.de>
384
385         PR middle-end/33779
386         * fold-const.c (extract_muldiv_1): Make sure to not introduce
387         new undefined integer overflow.
388         (fold_binary): Avoid useless conversion.
389
390 2007-10-31  Richard Sandiford  <rsandifo@nildram.co.uk>
391
392         PR target/33948
393         * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P
394         check.
395
396 2007-10-31  Andreas Krebbel  <krebbel1@de.ibm.com>
397
398         * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp.
399
400         * config/s390/s390.c: (override_options): Replace -mhard-dfp/-msoft-dfp
401         with -mhard-dfp/-mno-hard-dfp.
402         * config/s390/s390.opt: Likewise.
403         * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT
404         definition.
405
406 2007-10-30  Janis Johnson  <janis187@us.ibm.com>
407
408         * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops.
409
410 2007-10-30  Janis Johnson  <janis187@us.ibm.com>
411
412         * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of
413         optimization options.
414         (Optimize Options): Add -fdce and -fdse to the list of optimizations
415         enabled by -O.  Document -fdce and -fdse.
416
417 2007-10-30  Jakub Jelinek  <jakub@redhat.com>
418
419         PR c++/33709
420         * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR,
421         convert second operand of COMPOUND_EXPR to the original type of
422         that argument.
423
424 2007-10-30  Richard Guenther  <rguenther@suse.de>
425
426         * tree-ssa-operands.c (add_vars_for_offset): Fix exit test
427         of loop adding SFTs as virtual operands.
428
429 2007-10-30  Richard Guenther  <rguenther@suse.de>
430
431         * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies.
432
433 2007-10-29  Dorit Nuzman  <dorit@il.ibm.com>
434
435         PR tree-optimization/32893
436         * tree-vectorize.c (vect_can_force_dr_alignment_p): Check
437         STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY.
438
439 2007-10-29  Rask Ingemann Lambertsen  <rask@sygehus.dk>
440
441         * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and
442         x86_64 versions.
443         (sub_ddmmss): Likewise.
444         (umul_ppmm): Likewise.
445         (udiv_qrnnd): Likewise.
446
447 2007-10-29  Janis Johnson  <janis187@us.ibm.com>
448
449         PR testsuite/24841
450         * doc/sourcebuild.texi (Test Directives): Document that dg-require
451         directives must come before dg-additional-sources.
452
453 2007-10-29  Jakub Jelinek  <jakub@redhat.com>
454
455         PR tree-optimization/33723
456         * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or
457         MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source.
458
459 2007-10-29  Richard Sandiford  <rsandifo@nildram.co.uk>
460
461         PR tree-optimization/33614
462         * gimplify.c (gimplify_init_constructor): Gimplify vector constructors
463         if they can't be reduced to VECTOR_CSTs and aren't legitimate
464         initializer constants.
465
466 2007-10-29  Richard Guenther  <rguenther@suse.de>
467
468         PR tree-optimization/33870
469         * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter.
470         (add_virtual_operand): Do not recurse into MPTs looking for pointed-to
471         SFTs.
472
473 2007-10-29  Richard Guenther  <rguenther@suse.de>
474
475         * passes.c (init_optimization_passes): Exchange store_copy_prop
476         with copy_prop.
477         * tree-pass.h (pass_store_copy_prop): Remove.
478         * tree-ssa-copy.c (do_store_copy_prop): Remove.
479         (stmt_may_generate-copy): Do not handle store_copy_prop.
480         (get_copy_of_val): Likewise.
481         (set_copy_of_val): Likewise.
482         (copy_prop_visit_assignment): Likewise.
483         (copy_prop_visit_stmt): Likewise.
484         (copy_prop_visit_phi_node): Likewise.
485         (init_copy_prop): Likewise.
486         (execute_copy_prop): Likewise.
487         (do_copy_prop): Remove.
488         (gate_store_copy_prop): Likewise.
489         (store_copy_prop): Likewise.
490         (pass_store_copy_prop): Likewise.
491         (pass_copy_prop): Call execute_copy_prop.
492         * opts.c (decode_options): Do not set flag_tree_store_copy_prop.
493         * common.opt (ftree-store-copy-prop): Mark obsolete.
494         * doc/invoke.texi (ftree-store-copy-prop): Remove documentation.
495
496 2007-10-29  Ian Lance Taylor  <iant@google.com>
497
498         * ifcvt.c (noce_can_store_speculate_p): New static function.
499         (noce_process_if_block): Call it.
500         (if_convert): Remove recompute_dominance parameter.  Change all
501         callers.
502
503 2007-10-29  Richard Guenther  <rguenther@suse.de>
504
505         * tree-flow-inline.h (get_subvar_at): Use binary search.
506         (get_first_overlapping_subvar): New function to binary search
507         for the first overlapping subvar.
508         * tree-ssa-operands.c (add_vars_for_offset): Strip down to
509         just handle adding subvars for a pointed-to subvar.  Optimize
510         and use get_first_overlapping_subvar.
511         (add_vars_for_bitmap): Fold into single caller.
512         (add_virtual_operand): Streamline, inherit add_vars_for_bitmap
513         and non pointed-to bits of add_vars_for_offset.
514
515 2007-10-29  Revital Eres  <eres@il.ibm.com> 
516
517         * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem.
518
519 2007-10-29  Razya Ladelsky  <razya@il.ibm.com>
520             Zdenek Dvorak  <ook@ucw.cz>
521
522         OMP_ATOMIC Changes,
523         reduction support for automatic parallelization.
524
525         * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD,
526         OMP_ATOMIC_STORE.
527         * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o
528         * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD
529         and OMP_ATOMIC_STORE.
530         * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
531         * gimple-low.c (lower_stmt): Same.
532         * gimplify.c (gimplify_expr): Same.
533         (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline,
534         gimplify_omp_atomic_mutex): Remove.
535         (gimplify_omp_atomic): Change it to simply gimplify the
536         statement instead of expanding it.
537         * omp-low.c: Add includes to optabs.h, cfgloop.h.
538         (expand_omp_atomic, expand_omp_atomic_pipeline,
539         goa_stabilize_expr, expand_omp_atomic_mutex,
540         expand_omp_atomic_fetch_op): New functions to implement
541         expansion of OMP_ATOMIC.
542         (expand_omp, build_omp_regions_1): Add support for
543         OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE.
544         * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD,
545         OMP_ATOMIC_STORE.
546         * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD,
547         OMP_ATOMIC_STORE.
548         * tree-parloops.c: add include to tree-vectorizer.h.
549         (reduction_info): New structure for reduction.
550         (reduction_list): New list to represent list of reductions per loop.
551         (struct data_arg): New helper structure for reduction.
552         (reduction_info_hash, reduction_info_eq, reduction_phi,
553         initialize_reductions, create_call_for_reduction,
554         create_phi_for_local_result, create_call_for_reduction_1,
555         create_loads_for_reductions, create_final_loads_for_reduction):
556         New functions.
557         (loop_parallel_p): Identify reductions, add reduction_list parameter.
558         (separate_decls_in_loop_name): Support reduction variables.
559         (separate_decls_in_loop): Add reduction_list and ld_st_data arguments,
560         call create_loads_for_reduction for each reduction.
561         (canonicalize_loop_ivs): Identify reductions, add reduction_list
562         parameter.
563         (transform_to_exit_first_loop): Add reduction support, add
564         reduction_list parameter.
565         (gen_parallel_loop): Add reduction_list parameter.  Add call
566         separate_decls_in_loop with
567         the new argument.  Traverse reductions and call
568         initialize_reductions, create_call_for_reduction.
569         (parallelize_loops): Create and delete the reduction list.
570         (add_field_for_name): Change use of data parameter.  Add fields for
571         reductions.
572         * tree-vectorizer.h (vect_analyze_loop_form): Add declaration.
573         * tree-vect-analyze.c (vect_analyze_loop_form): export it.
574         * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
575         * tree-inline.c (estimate_num_insns_1): add cases for
576         OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
577         * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
578         * tree-ssa-operands.c (get_addr_dereference_operands):
579         New function.  Subroutine of get_indirect_ref_operands.
580         (get_indirect_ref_operands): Call get_addr_dereference_operands.
581         (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE.
582
583
584 2007-10-29  Hans-Peter Nilsson  <hp@axis.com>
585
586         * config/cris/cris.c: Include df.h.
587         (cris_address_cost): Add gcc_assert for canonicalization
588         assumptions.  For PLUS with MULT or register, correct
589         test for register in other arm.  Tweak comments.
590
591 2007-10-28  Richard Guenther  <rguenther@suse.de>
592
593         * tree-ssa-operands.c (add_vars_for_offset): Add parameter
594         telling if the var is to be treated as points-to location.
595         (add_vars_for_bitmap): Pass true to add_vars_for_offset.
596         (add_virtual_operand): Only recurse into MPTs if aliases
597         is from a NMT.
598
599 2007-10-28  Richard Guenther  <rguenther@suse.de>
600
601         * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up.
602         (add_vars_for_bitmap): Do not recurse further.  Only add vars
603         for pointed-to SFTs.
604         (add_virtual_operand): Re-instantiate loop to add operands for
605         aliases.  Recurse into MPTs.
606         (get_indirect_ref_operands): If we fall back to use a pointers
607         SMT, make sure to not prune based on the access offset and size.
608
609 2007-10-28  Andrew Pinski  <pinskia@gmail.com>
610
611         PR tree-opt/33589
612         * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
613         the eh information on the statement.
614
615 2007-10-28  Richard Guenther  <rguenther@suse.de>
616
617         * tree-flow.h (subvar_t): Make it a VEC.
618         (struct subvar): Remove.
619         (struct var_ann_d): Use VEC(tree,gc) to store subvars.
620         * tree-flow-inline.h (get_subvar_at): Adjust iterators over
621         variable subvars.
622         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
623         * tree-nrv.c (dest_safe_for_nrv_p): Likewise.
624         * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise.
625         (set_initial_properties): Likewise.
626         (setup_pointers_and_addressables): Likewise.
627         (new_type_alias): Likewise.
628         (create_overlap_variables_for): Likewise.
629         * tree-dfa.c (dump_subvars_for): Likewise.
630         * tree-ssa-operands.c (add_vars_for_offset): Likewise.
631         (get_expr_operands): Likewise.
632         (add_to_addressable_set): Likewise.
633         * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
634
635 2007-10-28  Uros Bizjak  <ubizjak@gmail.com>
636
637         PR tree-optimization/33920
638         * tree-if-conv.c (tree_if_conversion): Force predicate of single
639         successor bb to true when predecessor bb has NULL predicate.
640         (find_phi_replacement_condition): Assert that tmp_cond is non-null.
641
642 2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>
643
644         * config/mips/mips.md: Add combiner patterns for DImode extensions
645         of HImode and QImode truncations.  Reformat HImode <- QImode pattern
646         for consistency.
647
648 2007-10-28  Richard Sandiford  <rsandifo@nildram.co.uk>
649
650         PR target/33895
651         * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED.
652
653 2007-10-28  Andreas Krebbel  <krebbel1@de.ibm.com>
654
655         * dce.c (delete_unmarked_insns): Just delete the RETVAL and
656         LIBCALL notes if they are about to be moved to the same insn.
657
658 2007-10-27  Richard Guenther  <rguenther@suse.de>
659
660         PR tree-optimization/33870
661         * tree-ssa-operands.c (add_vars_for_offset): Reduce code
662         duplication.  Remove redundant call to access_can_touch_variable.
663         (add_vars_for_bitmap): New helper for recursing over MPT contents.
664         (add_virtual_operand): Use it.
665
666 2007-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
667
668         PR fortran/31608
669         * pa.h (ASM_PN_FORMAT): Delete define.
670
671 2007-10-26  Janis Johnson  <janis187@us.ibm.com>
672
673         * doc/invoke.texi (Option Summary, optimizations): Remove
674         -fbounds-check.  Add -fassociative-math, -freciprocal-math,
675         -ftree-vrp and -funit-at-a-time.  Change -fno-split-wide-types to
676         -fsplit-wide-types to match later entry.  Break up a long line.
677         (Option Summary, code gen options)  Add -fno-stack-limit.  Add
678         missing @gol to the end of a line.
679         (Optimization Options): Remove -fbounds-check, which is also
680         documented under Code Generation Options.  Remove =n from
681         index entry for -ftree-parallelize-loops.  Change -fno-cprop-registers
682         to -fcprop-registers to match other options, and say when it is
683         enabled rather than disabled.  Remove extra index entry for
684         -fno-cx-limited-range.  Add index entries for -fstack-protector
685         and -fstack-protector-all.
686         (Code Gen Options): Add index entry for -ftls-model.
687
688 2007-10-26  Anatoly Sokolov <aesok@post.ru>
689
690         * config/avr/avr.c (avr_OS_task_function_p): Add new function.
691         (avr_regs_to_save): Handle functions with 'OS_task' attribute.
692         (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue,
693         expand_epilogue, output_movhi): Don't handle 'main' function.
694         (avr_attribute_table): Add 'OS_task' function attribute.
695         * config/avr/avr.h (machine_function): Remove 'is_main' field, add
696         'is_OS_task' field.
697         * config/avr/avr.md (return_from_main_epilogue): Remove insn.
698         (return_from_epilogue, return_from_interrupt_epilogue): Don't handle
699         'main' function.
700         * config/avr/avr.opt (minit-stack): Remove.
701
702 2007-10-26  Eric Botcazou  <ebotcazou@adacore.com>
703
704         * tree-nested.c (get_trampoline_type): Fix thinko.
705
706 2007-10-26  Douglas Gregor  <doug.gregor@gmail.com>
707
708         PR c++/33601
709         * tree.c (build_offset_type): Build canonical type based on the
710         TYPE_MAIN_VARIANT of the base type.
711
712 2007-10-26  Daniel Jacobowitz  <dan@codesourcery.com>
713
714         * reorg.c (emit_delay_sequence): Move insn locator from the
715         first insn to the sequence.
716
717 2007-10-26  Samuel Tardieu  <sam@rfc1149.net>
718
719         * ipa-pure-const.c (check_decl): Return immediately when
720         pure_const_state has been set to IPA_NEITHER.
721
722 2007-10-25  Ira Rosen  <irar@il.ibm.com>
723
724         PR tree-optimization/33833
725         * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR
726         and convert init to sizetype in inner_base construction.
727
728 2007-10-25  Richard Guenther  <rguenther@suse.de>
729
730         * tree-flow.h (mem_sym_stats): Remove.
731         (dump_mem_sym_stats_for_var): Declare.
732         * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var.
733         (mem_sym_stats): Move ...
734         * tree-ssa-alias.c (mem_sym_stats): ... here and make it static.
735         (mem_sym_score): Rename from ...
736         (pscore): ... this.  Remove.
737         (dump_mem_sym_stats_for_var): New function.  Dump the score, but
738         not the frequencies.
739         (compare_mp_info_entries): Make sort stable by disambiguating
740         on DECL_UID.
741
742 2007-10-25  Ira Rosen  <irar@il.ibm.com>
743
744         PR tree-optimization/33866
745         * tree-vect-transform.c (vectorizable_store): Check operands of all
746         the stmts in the group of strided accesses. Get def stmt type for each
747         store in the group and pass it to vect_get_vec_def_for_stmt_copy ().
748
749 2007-10-25  Uros Bizjak  <ubizjak@gmail.com>
750
751         * config/i386/constraints.md (Y0): Rename register constraint to Yz.
752         (Yt): Rename register constraint to Y2.
753         * config/i386/sse.md: Use renamed register constraints.
754         * config/i386/mmx.md: Ditto.
755         * config/i386/i386.md: Ditto.
756
757 2007-10-25  Rask Ingemann Lambertsen  <rask@sygehus.dk>
758
759         * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint.
760
761 2007-10-24  Chao-ying Fu  <fu@mips.com>
762
763         * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or
764         DW_ATE_signed_fixed to describe FIXED_POINT_TYPE.
765
766 2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
767             Olga Golovanevsky <olga@il.ibm.com>
768         
769         * ipa-struct-reorg.c (replace_field_acc): Make it clear to
770         the compiler that wr.wrap and wr.domain are initialized in
771         any case.
772
773 2007-10-24  Samuel Tardieu  <sam@rfc1149.net>
774
775         * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC
776         to print gcov_type values.
777
778 2007-10-24  Eric B. Weddington  <eweddington@cso.atmel.com>
779
780         * config/avr/avr.h: Do not include progmem_section definition when
781         building with IN_TARGET_LIBS.
782
783 2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>
784
785         PR target/33755
786         * config/mips/mips.c (mips_lo_sum_offset): New structure.
787         (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq)
788         (mips_lo_sum_offset_lookup, mips_record_lo_sum)
789         (mips_orphaned_high_part_p: New functions.
790         (mips_avoid_hazard): Don't check INSN_P here.
791         (mips_avoid_hazards): Rename to...
792         (mips_reorg_process_insns): ...this.  Cope with
793         !TARGET_EXPLICIT_RELOCS.  Delete orphaned high-part relocations,
794         or turn them into nops.
795         (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to
796         dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns.
797         (mips_set_mips16_mode): Don't set flag_delayed_branch here.
798         (mips_override_options): Set flag_delayed_branch to 0.
799
800 2007-10-24  Richard Sandiford  <rsandifo@nildram.co.uk>
801
802         * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe
803         MIPS-specific implementation details.
804         (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro.
805         (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise.
806         (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD
807         for targets with movmemsi.
808         (MOVE_BY_PIECES_P): Define.
809         * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete.
810         (mips_block_move_loop): Add a bytes_per_iter argument.
811         (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT.
812         Update call to mips_block_move_loop.
813
814 2007-10-24  Michael Matz  <matz@suse.de>
815
816         PR debug/33868
817         * var-tracking.c (variable_union): Don't break after one loop
818         iteration but only when a difference is found.
819         (dump_variable): Also print DECL_UID.
820
821 2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>
822
823         * ipa-type-escape.h: Expose function
824         is_array_access_through_pointer_and_index.
825         * ipa-type-escape.c
826         (is_array_access_through_pointer_and_index):
827         Add three new parameters. Add support of
828         POINTER_PLUS_EXPR tree code.
829
830 2007-10-24  Olga Golovanevsky  <olga@il.ibm.com>
831
832         * ipa-struct-reorg.c, ipa-struct-reorg.h: New files.
833         * tree-pass.h: Add pass_ipa_struct_reorg.
834         * common.opt: Add ipa-struct-reorg flag.
835         * Makefile.in: Add ipa-strcut-reorg.o compilation.
836         * passes.c: Add pass pass_ipa_struct_reorg.
837         * params.h:  Add STRUCT_REORG_COLD_STRUCT_RATIO.
838         * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO.
839
840 2007-10-24  Ira Rosen  <irar@il.ibm.com>
841
842         PR tree-optimization/33804
843         * tree-vect-transform.c (vectorizable_operation): Remove the
844         checks that the vectorization is worthwhile from the transformation
845         phase.
846
847 2007-10-24  Ira Rosen  <irar@il.ibm.com>
848
849         * tree-vect-analyze.c (vect_build_slp_tree): Return false if
850         vectype cannot be determined for the scalar type.
851         (vect_analyze_slp_instance): Likewise.
852         * tree-vect-transform.c (vect_model_reduction_cost): Change the
853         return type to bool. Return false if vectype cannot be determined 
854         for the scalar type.
855         (vect_get_constant_vectors): Return false if vectype cannot be
856         determined for the scalar type.
857         (get_initial_def_for_induction, vect_get_vec_def_for_operand,
858         get_initial_def_for_reduction, vect_create_epilog_for_reduction,
859         vectorizable_reduction): Likewise.      
860
861 2007-10-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
862
863         * config.gcc: For a FreeBSD target, parse the value of ${target}
864         to determine the value of FBSD_MAJOR, instead of adding an
865         explicit check for every possible FreeBSD major version.
866
867 2007-10-23  Uros Bizjak  <ubizjak@gmail.com>
868
869         PR rtl-optimization/33846
870         * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes.
871
872 2007-10-23  Dorit Nuzman  <dorit@il.ibm.com>
873
874         PR tree-optimization/33860
875         * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow
876         interleaved accesses in case the dr is inside the inner-loop during
877         outer-loop vectorization.
878
879 2007-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
880
881         * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry.
882         Document MEM_POINTER.  Replace mentions of "integrated"
883         field with "return_val".  Delete outdated stuff.
884
885 2007-10-23  David Edelsohn  <edelsohn@gnu.org>
886
887         * config/rs6000/rs6000.c (rs6000_override_options): Set
888         rs6000_altivec_abi on AIX.
889         (conditional_register_usage): Set VR20:31 fixed on AIX.
890
891 2007-10-23  Richard Guenther  <rguenther@suse.de>
892
893         * alias.c (get_alias_set): For INDIRECT_REFs, deal with
894         SSA_NAME pointers.
895
896 2007-10-22  Seongbae Park <seongbae.park@gmail.com>
897         David S. Miller  <davem@davemloft.net>
898
899         * df-scan.c (df_get_call_refs): Mark global registers as both a
900         DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF.
901
902 2007-10-22  Dorit Nuzman  <dorit@il.ibm.com>
903
904         PR tree-optimization/33834
905         PR tree-optimization/33835
906         * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE
907         stmts need to be checked for success seperately.
908         * tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
909         Remove the check that stmt is not LIVE.
910         (vectorizable_assignment, vectorizable_induction): Likewise.
911         (vectorizable_operation, vectorizable_type_demotion): Likewise.
912         (vectorizable_type_promotion, vectorizable_load, vectorizable_store):
913         Likewise.
914         (vectorizable_live_operation): Check that op is not NULL. 
915
916 2007-10-22  Janis Johnson  <janis187@us.ibm.com>
917
918         * doc/invoke.texi (Optimization Options): In the summary, show
919         that the value for options -falign-jumps, -falign-labels,
920         -falign-loops, -falign-functions, -fsched-stalled-insns, and
921         -fsched-stalled-insns-dep is optional.  In the summary, show that
922         -fsched-stalled-insns takes an optional argument and that
923         -fparallelize-loops takes an argument.  Add opindex for several
924         optimization options, and fix typos in the opindex commands for
925         several others.  In the descriptions for -fsched-stalled-insns
926         and -fsched-stalled-insns-dep, show the options with and without
927         values.
928
929 2007-10-22  Eric B. Weddington  <eweddington@cso.atmel.com>
930
931         * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never
932         produced.
933         * config/avr/avr.h (LINK_SPEC): Likewise.
934         (CRT_BINUTILS_SPECS): Likewsie.
935         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
936
937 2007-10-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
938
939         PR rtl-optimization/33644
940         * cfgcleanup.c: Do not include dce.h.
941         * cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
942         * combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
943         * dce.c (something_changed): Delete.
944         (libcall_dead_p): New predicate.
945         (delete_unmarked_insns): Use it to delete dead libcalls.
946         Deal with REG_LIBCALL and REG_RETVAL notes.
947         (prescan_libcall_for_dce): New function.
948         (prescan_insns_for_dce): Use it to deal with libcalls.
949         (mark_reg_dependencies): Do nothing special for libcalls.
950         (dce_process_block): Likewise.
951         (fast_dce): Delete unused local variable.
952         (run_fast_dce): Do not return a value.
953         * dce.h (struct df): Delete.
954         (run_fast_dce): Adjust prototype.
955         * optabs.c (libcall_id): Delete.
956         (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
957         (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
958         * reload1.c (reload): Delete REG_LIBCALL_ID case.
959         * rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
960         * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
961         notes instead of REG_LIBCALL_ID notes.
962         * reg-notes.def (LIBCALL_ID): Delete.
963         * Makefile.in (see.o): Add dce.h dependency.
964         (cfgcleanup.o): Remove dce.h dependency.
965
966 2007-10-22  Michael Matz  <matz@suse.de>
967
968         PR tree-optimization/33855
969         * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE
970         and VECTOR_TYPE.
971
972 2007-10-22  Ira Rosen  <irar@il.ibm.com>
973
974         PR tree-optimization/33854
975         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
976         FLOAT_EXPR to the list of promotion operations. 
977
978 2007-10-22  Rask Ingemann Lambertsen  <rask@sygehus.dk>
979
980         PR target/29473
981         PR target/29493
982         * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax.
983         (print_reg): Print register prefix only with AT&T asm syntax. 
984         Support pc_rtx for RIP register.
985         (print_operand_address): Use print_reg()'s pc_rtx support for RIP
986         relative addressing.  Always print segment register prefix with AT&T
987         asm syntax and never with Intel asm syntax.
988         (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands. 
989         Fix prefix for 16-byte XFmode operands.
990         (output_addr_const_extra): Support Intel asm syntax.
991         (x86_file_start): Don't use register prefix with Intel asm syntax.
992         * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo.
993         ("return_internal_long"): Fix Intel asm syntax output.
994         ("set_got_rex64"): Support Intel asm syntax.
995         ("set_rip_rex64"): Likewise.
996         ("set_got_offset_rex64"): Likewise.
997         ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm
998         syntax.
999         ("*tls_global_dynamic_64"): Likewise.
1000         ("*tls_local_dynamic_base_64"): Likewise.
1001         ("*load_tp_si")("*load_tp_di"): Likewise.
1002         ("*add_tp_si")("*add_tp_di"): Likewise.
1003         ("*tls_dynamic_lea_64"): Likewise.
1004         ("*sibcall_value_1_rex64_v"): Likewise.
1005         ("stack_tls_protect_set_si"): Likewise.
1006         ("stack_tls_protect_set_di"): Likewise.
1007         ("stack_tls_protect_test_si"): Likewise.
1008         ("stack_tls_protect_test_di"): Likewise.
1009         * config/i386/mmx.md ("*mov<mode>_internal_rex64"): Fix Intel asm
1010         syntax output.
1011         ("*movv2sf_internal_rex64"): Likewise.
1012         * config/i386/cpuid.h (__cpuid): Support Intel asm syntax.
1013         (__get_cpuid_max): Likewise.
1014
1015 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1016
1017         * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give
1018         the STRICT_P argument type "bool" rather than "int".
1019         (mips_legitimate_address_p): Likewise.
1020         (fp_register_operand, lo_operand): Delete.
1021         (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
1022         (mips_emit_scc): Rename to...
1023         (mips_expand_scc): ...this.
1024         (gen_conditional_branch): Rename to...
1025         (mips_expand_conditional_branch): ...this.
1026         (gen_conditional_move): Rename to...
1027         (mips_expand_conditional_move): ...this.
1028         (mips_gen_conditional_trap): Rename to...
1029         (mips_expand_conditional_trap): ...this and take an rtx code instead
1030         of an operands array.
1031         (mips_expand_call): Give the SIBCALL_P argument type "bool"
1032         rather than "int".
1033         (mips_emit_fcc_reload): Rename to...
1034         (mips_expand_fcc_reload): ...this.
1035         (init_cumulative_args): Rename to...
1036         (mips_init_cumulative_args): ...this and remove the libname argument.
1037         (function_arg_advance): Rename to...
1038         (mips_function_arg_advance): ...this.
1039         (function_arg): Rename to...
1040         (mips_function_arg): ...this and use "rtx" instead of
1041         "struct rtx_def *".
1042         (function_arg_boundary): Rename to...
1043         (mips_function_arg_boundary): ...this.
1044         (mips_expand_unaligned_load): Rename to...
1045         (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
1046         and BITPOS arguments type "HOST_WIDE_INT".
1047         (mips_expand_unaligned_store): Rename to...
1048         (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
1049         and BITPOS arguments type "HOST_WIDE_INT".
1050         (override_options): Rename to...
1051         (mips_override_options): ...this.
1052         (print_operand): Rename to...
1053         (mips_print_operand): ...this.
1054         (print_operand_address): Rename to...
1055         (mips_print_operand_address): ...this.
1056         (mips_output_ascii): Remove the PREFIX argument.
1057         (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
1058         rather than "int".
1059         (mips_can_use_return_insn): Return a "bool" rather than an "int".
1060         (mips_function_value): Remove the FUNC argument.  Use "rtx" instead
1061         of "struct rtx_def *".
1062         (mips_secondary_reload_class): Give the IN_P argument type "bool"
1063         rather than "int".
1064         (build_mips16_call_stub): Delete.
1065         (mips_store_data_bypass_p): Return a "bool" rather than an "int".
1066         (mips_use_ins_ext_p): Give the second and third arguments type
1067         "HOST_WIDE_INT" rather than "rtx".
1068         * config/mips/mips.h: Update after the above changes.  Tweak comments
1069         and formatting.
1070         (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument.
1071         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
1072         (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
1073         element type from "char" to "bool".
1074         (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely)
1075         (mips_cpu_info_table): Delete.
1076         * config/mips/mips.md: Update after the above changes.  Tweak some
1077         formatting.
1078         * config/mips/mips-ps-3d.md: Likewise.
1079         * config/mips/mips.c: Tweak comments and formatting.
1080         Use NULL-like macros rather than 0 in various places.
1081         (mips_section_threshold): Rename to...
1082         (mips_small_data_threshold): ...this and give it an unsigned type.
1083         (num_source_filenames): Remove explicit initialization.
1084         (sdb_label_count): Likewise.
1085         (sym_lineno): Delete.
1086         (set_noat): Make static.
1087         (mips_branch_likely): Likewise, and give it type "bool".
1088         (mips_isa_info): Rename to...
1089         (mips_isa_option_info): ...this.
1090         (mips_flag_delayed_branch): Rename to...
1091         (mips_base_delayed_branch): ...this.
1092         (mips_split_addresses): Delete.
1093         (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the
1094         element type from "char" to "bool".
1095         (mips_regno_to_class): Add an explicit array size.
1096         (mips16_flipper): Change from type "int" to type "bool".
1097         (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check.
1098         (mips_tls_operand_p): Rename to...
1099         (mips_tls_symbol_p): ...this.
1100         (mips_global_symbol_p): Remove redundant "const".
1101         (mips_offset_within_alignment_p): Simplify.
1102         (mips_regno_mode_ok_for_base_p): Change the name of the last argument
1103         to STRICT_P and give it type bool.
1104         (mips_valid_base_register_p): Likewise.
1105         (mips_classify_address): Likewise.
1106         (mips_legitimate_address_p): Likewise.
1107         (mips16_unextended_reference_p): Take the offset as an
1108         "unsigned HOST_WIDE_INT" rather than an "rtx".  Simplify.
1109         (mips_const_insns): Use IN_RANGE.
1110         (mips_force_temporary): Remove an unnecessary copy_rtx.
1111         (mips16_gp_pseudo_reg): Simplify.
1112         (mips_split_symbol): Remove an unnecessary copy_rtx.
1113         (mips_legitimize_tls_address): Only create registers if we need them.
1114         (mips_legitimize_address): Use mips_split_plus.
1115         (mips_move_integer): Swap DEST and TEMP arguments.  Rename local
1116         variable COST to NUM_OPS.
1117         (mips_legitimize_move): Use gen_lowpart.
1118         (mips_rewrite_small_data): Rename the OP parameter to PATTERN.
1119         (m16_check_op): Use IN_RANGE.
1120         (mips_subword): Give the HIGH_P argument type "bool" rather than "int".
1121         (mips_split_doubleword_move): Pass booleans to mips_subword.
1122         (mips_output_move): Store the mode in a local variable.
1123         Explicitly assert that this function does not deal with
1124         MFLO and MFHI.  Use SMALL_OPERAND_UNSIGNED.  Make order of
1125         cases more consistent.
1126         (mips_relational_operand_ok_p): Rename to...
1127         (mips_int_order_operand_ok_p): ...this.
1128         (mips_canonicalize_comparison): Rename to...
1129         (mips_canonicalize_int_order_test): ...this.
1130         (mips_emit_int_relational): Rename to...
1131         (mips_emit_int_order_test): ...this.  Store the mode in a local
1132         variable.
1133         (mips_reverse_fp_cond_p): Rename to...
1134         (mips_reversed_fp_cond): ...this.
1135         (mips_emit_compare): Make the order of the statements more consistent.
1136         (mips_emit_scc): Rename to...
1137         (mips_expand_scc): ...this.
1138         (gen_conditional_branch): Rename to...
1139         (mips_expand_conditional_branch): ...this.
1140         (gen_conditional_move): Rename to...
1141         (mips_expand_conditional_move): ...this.  Build the condition
1142         separately from the main pattern.
1143         (mips_gen_conditional_trap): Rename to...
1144         (mips_expand_conditional_trap): ...this and take an rtx code instead
1145         of an operands array.  Simplify.
1146         (init_cumulative_args): Rename to...
1147         (mips_init_cumulative_args): ...this.  Use memset rather than a
1148         copy from a zeroed static.  Use prototype_p and stdarg_p.
1149         (mips_arg_info): Rename to...
1150         (mips_get_arg_info): ...this and put the INFO argument first.
1151         (function_arg): Rename to...
1152         (mips_function_arg): ...this and use "rtx" instead of
1153         "struct rtx_def *".  Only split structures into chunks if 
1154         TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on
1155         a chunk-by-chunk basis.  Use SCALAR_FLOAT_TYPE_P instead of a
1156         comparison with REAL_TYPE.  Rename local variable REG to REGNO
1157         and make it unsigned.
1158         (function_arg_advance): Rename to...
1159         (mips_function_arg_advance): ...this.
1160         (function_arg_boundary): Rename to...
1161         (mips_function_arg_boundary): ...this.
1162         (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison
1163         with MODE_INT.
1164         (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a
1165         comparison with REAL_TYPE.
1166         (mips_function_value): Remove the FUNC argument.  Rename local
1167         variable UNSIGNEDP to UNSIGNED_P.
1168         (mips_return_in_memory): Use IN_RANGE.
1169         (mips_setup_incoming_varargs): Pass a boolean rather than an int
1170         to FUNCTION_ARG_ADVANCE.
1171         (mips_gimplify_va_arg_expr): Rename local variable INDIRECT
1172         to INDIRECT_P.  Remove a redundant mips_abi check.  Only calculate
1173         SIZE and RSIZE if needed.
1174         (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool"
1175         rather than "int".
1176         (build_mips16_function_stub): Rename to...
1177         (mips16_build_function_stub): ...this.
1178         (build_mips16_call_stub): Rename to...
1179         (mips16_build_call_stub): ...this.  Make static, and return a
1180         "bool" rather than an "int".  Rename the ARG_SIZE argument to
1181         ARGS_SIZE.  Rename the local variable FPRET to FP_RET_P and give
1182         it type "bool".  Use "jr" rather than "j".  Use XNEW.  Simplify.
1183         (mips_load_call_address): Give the SIBCALL_P argument type "bool"
1184         rather than "int".
1185         (mips_expand_call): Likewise.  Assert that MIPS16 calls via stubs
1186         are not sibling ones.
1187         (mips_emit_fcc_reload): Rename to...
1188         (mips_expand_fcc_reload): ...this.
1189         (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type
1190         "HOST_WIDE_INT".
1191         (mips_expand_unaligned_load): Rename to...
1192         (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH
1193         and BITPOS arguments type "HOST_WIDE_INT".  Remove redundant
1194         SUBREG_BYTE check.
1195         (mips_expand_unaligned_store): Rename to...
1196         (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH
1197         and BITPOS arguments type "HOST_WIDE_INT".
1198         (mips_use_ins_ext_p): Rename second and third arguments to WIDTH
1199         and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx".
1200         Use IN_RANGE.
1201         (mips_init_split_addresses): Replace with...
1202         (mips_split_addresses_p): ...this new function.
1203         (mips_init_relocs): Check mips_split_addresses_p () rather than
1204         mips_split_addresses.  Always initialize mips_split_p with booleans.
1205         (print_operand_reloc): Rename to...
1206         (mips_print_operand_reloc): ...this.  Use a gcc_assert rather than
1207         a fatal_error.
1208         (print_operand): Rename to...
1209         (mips_print_operand): ...this.
1210         (print_operand_address): Rename to...
1211         (mips_print_operand_address): ...this.  Use GP_REG_FIRST.
1212         (mips_in_small_data_p): Simplify.
1213         (mips_output_ascii): Remove the PREFIX argument and "register"
1214         keywords.  Use the STRING parameter directly and cast to
1215         "unsigned char".
1216         (mips16e_collect_argument_save_p): Use IN_RANGE.
1217         (mips_function_has_gp_insn): Simplify.
1218         (mips_set_return_address): Use BITSET_P.
1219         (mips_restore_gp): Use a separate statement to pick the base
1220         register.
1221         (mips_output_function_prologue): Use a local FRAME variable.
1222         (mips_save_reg): Pass booleans to mips_subword.
1223         (mips_expand_prologue): Use a local FRAME variable.  Use
1224         cprestore_size to detect when .cprestore is needed.
1225         (mips_restore_reg): Use GP_REG_FIRST.
1226         (mips_expand_epilogue): Give the SIBCALL_P argument type "bool"
1227         rather than "int".  Use local FRAME and REGNO variables.
1228         (mips_can_use_return_insn): Return a "bool" rather than an "int".
1229         (mips_secondary_reload_class): Give the IN_P argument type "bool"
1230         rather than "int".
1231         (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN.
1232         (mips_store_data_bypass_p): Return a "bool" rather than an "int".
1233         (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P.
1234         (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P.
1235         (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P.
1236         (builtin_description): Rename to...
1237         (mips_builtin_description): ...this.
1238         (mips_bdesc): Rename to...
1239         (mips_ps_bdesc): ...this.
1240         (sb1_bdesc): Rename to...
1241         (mips_sb1_bdesc): ...this.
1242         (dsp_bdesc): Rename to...
1243         (mips_dsp_bdesc): ...this.
1244         (dsp_32only_bdesc): Rename to...
1245         (mips_dsp_32only_bdesc): ...this.
1246         (bdesc_map): Rename to...
1247         (mips_bdesc_map): ...this.
1248         (bdesc_arrays): Rename to...
1249         (mips_bdesc_arrays): ...this.
1250         (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO.
1251         Tweak error message.
1252         (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P.
1253         Rename local variables I and J to OPNO and ARGNO respectively.
1254         Assert that the number of arguments is no more than the number of
1255         input operands.
1256         (mips_expand_builtin_compare): Use an array of arguments rather
1257         than an array of operands.  Assert that the number of operands is
1258         as expected.
1259         (add_constant): Rename to...
1260         (mips16_add_constant): ...this.  Use XNEW.
1261         (dump_constants_1): Rename to...
1262         (mips16_emit_constants_1): ...this.  Use ALL_SCALAR_FIXED_POINT_MODE_P.
1263         (dump_constants): Rename to...
1264         (mips16_emit_constants): ...this.
1265         (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO.
1266         (mips_set_mips16_mode): Don't call mips_init_split_addresses.
1267         Assign mips16_p to was_mips16_p.
1268         (mips_parse_cpu): Tweak warning message.
1269         (override_options): Rename to...
1270         (mips_override_options): ...this.  Move the mips_cost initialization
1271         out of the "shared with GAS" block.  Quote option names in error
1272         messages.
1273         (mips_conditional_register_usage): Make local variable REGNO unsigned.
1274         (mips_order_regs_for_local_alloc): Remove register keyword.
1275
1276 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1277
1278         * system.h (IN_RANGE): Cast each argument individually.
1279
1280 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1281
1282         * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float
1283         MIPS16 code unless using o32 or o64.  
1284
1285 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1286
1287         * config/mips/mips.c (mips_cannot_change_mode_class): Don't check
1288         for modes smaller than 4 bytes.
1289         * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove
1290         FPR alternatives.
1291
1292 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1293
1294         * config/mips/mips-protos.h (mips_output_aligned_bss): Delete.
1295         * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete.
1296         (ASM_OUTPUT_ALIGNED_BSS): Delete.
1297         * config/mips/mips.c (mips_output_aligned_bss): Delete.
1298
1299 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1300
1301         * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid
1302         sibling calls to "mips16" functions if the function satisfies
1303         const_call_insn_operand.
1304
1305 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1306
1307         * config/mips/mips.c (mips_va_start): Fix types in calls
1308         to build_int_cst.
1309
1310 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1311
1312         * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals
1313         if ISA_HAS_FP4.
1314
1315 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1316
1317         * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro.
1318         * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1
1319         instead of checking mips_isa.
1320
1321 2007-10-21  Richard Sandiford  <rsandifo@nildram.co.uk>
1322
1323         * doc/invoke.texi (-mpaired-single): Don't say that the option
1324         requires 64-bit code.
1325         * config/mips/mips-protos.h (mips_modes_tieable_p): Declare.
1326         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro.
1327         (ISA_HAS_NMADD_NMSUB): Add a mode argument.  Return true for
1328         V2SF if ISA_MIPS32R2.
1329         (MODES_TIEABLE_P): Use mips_modes_tieable_p.
1330         * config/mips/mips.c (mips_rtx_costs): Pass a mode argument
1331         to ISA_HAS_NMADD_NMSUB.
1332         (mips_split_doubleword_move): Handle V2SF.
1333         (mips_modes_tieable_p): New function.
1334         (override_options): Report a warning rather than an error when
1335         -mpaired-single is used on ISAs that don't support it; use
1336         ISA_HAS_PAIRED_SINGLE to check that case.
1337         * config/mips/mips.md (MOVE64): New mode iterator.  Replace DI
1338         and DF move splitters with a single MOVE64 splitter, thereby adding
1339         a V2SF splitter too.
1340         (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF.
1341         Add a TARGET_FLOAT64 condition to TF.  Add V2SF to the iterator.
1342         (HALFMODE): Add V2SF.
1343         (*nmadd<mode>, *nmadd<mode>_fastmath, *nmsub<mode>)
1344         (*nmsub<mode>_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB.
1345         (movv2sf_hardfloat_64bit): Tweak ordering of conditions.
1346         (movv2sf_hardfloat_32bit): New pattern.
1347         (load_low<mode>, load_high<mode>, store_word<mode>): Remove
1348         TARGET_DOUBLE_FLOAT conditions.
1349
1350 2007-10-20  Jakub Jelinek  <jakub@redhat.com>
1351
1352         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
1353         saved CR2 offset to low 32 bits of regs->ccr rather than the whole
1354         64-bit register in 64-bit libgcc.
1355
1356 2007-10-20  Eric B. Weddington  <eweddington@cso.atmel.com>
1357
1358         * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
1359         * config/avr/avr.h (LINK_SPEC): Likewise.
1360         (CRT_BINUTILS_SPECS): Likewsie.
1361         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1362
1363 2007-10-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1364
1365         * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
1366         and -Wfatal-errors together.
1367         
1368 2007-10-20  Alan Modra  <amodra@bigpond.net.au>
1369
1370         PR target/33812
1371         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
1372         change for vrsave, ie restore after frame pop.
1373
1374 2007-10-19  David S. Miller  <davem@davemloft.net>
1375
1376         * config/sparc/niagara2.md: Fix copyright notice.
1377
1378 2007-10-19  Sebastian Pop  <sebastian.pop@amd.com>
1379
1380         PR tree-optimization/23820
1381         PR tree-optimization/24309
1382         PR tree-optimization/33766
1383         * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
1384         * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
1385         * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
1386         * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
1387         * tree-loop-linear.c (perfect_loop_nest_depth): New.
1388         (linear_transform_loops): Use perfect_loop_nest_depth.
1389         * lambda-code.c (perfect_nest_p): Outer loops in perfect nests 
1390         should have a single condition: their exit.
1391
1392 2007-10-19  Richard Guenther  <rguenther@suse.de>
1393
1394         PR middle-end/33816
1395         PR middle-end/32921
1396         * stor-layout.c (layout_type): Assert that aggregates do not
1397         have their alias sets set.
1398         * alias.c (get_alias_set): Return alias set zero for incomplete
1399         types, return the alias set of the element for incomplete array
1400         types, but do not remember these.
1401
1402 2007-10-19  Richard Guenther  <rguenther@suse.de>
1403
1404         Revert
1405         2007-10-19  Richard Guenther  <rguenther@suse.de>
1406
1407         PR middle-end/32921
1408         * tree.c (build_array_type): Do not re-layout unbound array
1409         types.
1410
1411 2007-10-19  Richard Guenther  <rguenther@suse.de>
1412
1413         PR middle-end/32921
1414         * tree.c (build_array_type): Do not re-layout unbound array
1415         types.
1416
1417 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
1418
1419         * config/mips/mips.c (mips_canonicalize_comparison):  Check
1420         mips_relational_operand_ok_p before trying to rewrite the test.
1421         Only calculate PLUS_ONE if needed.
1422         (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
1423         here.
1424
1425 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
1426
1427         * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
1428         calculation.
1429
1430 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
1431
1432         * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
1433         the call uses the incoming value of $2.
1434
1435 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
1436
1437         * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
1438         rather then gen_rtx_MEM.
1439         (mips_setup_incoming_varargs): Use gen_frame_mem rather than
1440         gen_rtx_MEM.
1441         (mips_set_return_address): Likewise.
1442         (mips_restore_gp): Likewise.
1443
1444 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
1445
1446         * config/mips/mips.c (gpr_mode): Delete.
1447         (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
1448         instead of gpr_mode.
1449         (mips_for_each_saved_reg): Likewise.
1450         (mips_expand_prologue, mips_expand_epilogue): Likewise.
1451         (override_options): Don't initialize gpr_mode.
1452         * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
1453
1454 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
1455
1456         * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
1457         case last.
1458         (mips_class_max_nregs): Calculate the smallest consituent register
1459         size and use that to determine an upper bound on the number of
1460         registers.
1461
1462 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
1463
1464         * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
1465         split out from...
1466         (mips_expand_epilogue): ...here.
1467         (mips_mdebug_abi_name): New function, split out from...
1468         (mips_file_start): ...here.
1469         (mips_hard_regno_mode_ok_p): New function, split out from...
1470         (override_options): ...here.
1471         (mips_expand_builtin_1): New function, split out from...
1472         (mips_expand_buitin): ...here.  Abort if we don't recognize
1473         the function.
1474
1475 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
1476
1477         * config/mips/mips.c (build_mips16_function_stub): Load the
1478         target address into $1 before transfering the arguments.
1479         Don't use ".set noreorder".
1480         (build_mips16_call_stub): Likewise.
1481
1482 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
1483
1484         * config/mips/mips.c (mips_output_32bit_xfer): New function.
1485         (mips_output_64bit_xfer): Likewise.
1486         (mips16_fp_args): Rename to...
1487         (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
1488         with a DIRECTION argument.  Use mips_output_32bit_xfer and
1489         mips_output_64bit_xfer.
1490         (build_mips16_function_stub): Update accordingly.
1491         (mips16_fpret_double): Delete.
1492         (build_mips16_call_stub): Update after above changes.
1493         Use mips_output_32bit_xfer.  Use mips_output_64bit_xfer instead
1494         of mips16_fpret_double.  Use GP_REG_RETURN.
1495
1496 2007-10-19  Richard Sandiford  <rsandifo@nildram.co.uk>
1497
1498         * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
1499         use asm_out_file instead.
1500         (build_mips16_function_stub): Likewise.
1501         (build_mips16_call_stub, mips_output_function_prologue): Update
1502         accordingly.
1503
1504 2007-10-18  David S. Miller  <davem@davemloft.net>
1505
1506         Add Niagara-2 support.
1507         * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
1508         * config.gcc: Add niagara2 to cpu and tune lists for sparc.
1509         * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
1510         (include): Add inclusion of niagara2.md
1511         * config/sparc/sparc.c (niagara2_costs): New.
1512         (sparc_override_options): Add niagara2 entry to cpu_default[]
1513         and cpu_table[].  Set align_functions to 32 on Niagara2.  Use
1514         niagara2_costs when PROCESSOR_NIAGARA2.  Handle Niagara2 for
1515         PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
1516         (sparc_initialize_trampoline): Handle niagara2 like niagara.
1517         (sparc64_initialize_trampoline): Likewise.
1518         (sparc_use_sched_lookahead): Likewise.
1519         (sparc_issue_rate): Likewise.
1520         * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
1521         mcpu=niagara2
1522         * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
1523         ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
1524         TARGET_CPU_niagara2.
1525         (PROCESSOR_NIAGARA2): New.
1526         (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
1527         (BRANCH_COST): Likewise.
1528         * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
1529         * config/sparc/sol2.h: Likewise.
1530         * config/sparc/niagara2.md: New file.
1531
1532 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1533
1534         * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
1535         and fp_reg_size.
1536         (mips_compute_frame_info): Remove associated code.
1537         (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
1538
1539 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1540
1541         * config/mips/mips-protos.h (compute_frame_size): Delete.
1542         * config/mips/mips.h: Update comments.
1543         * config/mips/mips.c (mips_frame_info): Remove initialized.
1544         (compute_frame_size): Rename to...
1545         (mips_compute_frame_info): ...this and make static.  Remove the
1546         SIZE argument and return no value.  Remove the setting of initialized.
1547         Update rest of file accordingly.
1548         (mips_set_return_address): Don't call compute_frame_size.
1549         (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
1550         Don't call compute_frame_size.
1551
1552 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1553
1554         * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
1555         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
1556         mips_hard_frame_pointer_required.
1557         (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
1558         large MIPS16 frames.
1559         * config/mips/mips.c (mips_frame_pointer_required): New function.
1560
1561 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1562
1563         * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
1564         and hard_frame_pointer_offset.
1565         (mips_debugger_offset): Use hard_frame_pointer_offset.
1566         (mips16e_collect_argument_save_p): Likewise.
1567         (compute_frame_size): Initialize arg_pointer_offset and
1568         hard_frame_pointer_offset.
1569         (mips_initial_elimination_offset): Use them.
1570         (mips_output_function_prologue): Use hard_frame_pointer_offset.
1571         (mips_expand_prologue, mips_expand_epilogue): Likewise.
1572
1573 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1574
1575         * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
1576         profiling code.
1577         * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
1578         "unsigned int" rather than "int" and put them with the other
1579         register-related fields.  Put expanded comments above fields
1580         rather than to their right.
1581         (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
1582         with a NUM_REGS_PTR argument.
1583         (mips16e_save_restore_pattern_p): Update accordingly.
1584         (compute_frame_size): Clarify frame diagram.  Rewrite.
1585
1586 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1587
1588         * config/mips/mips-ftypes.def: New file.
1589         * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
1590         (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
1591         (mips_function_type): Redefine using mips-ftypes.def.
1592         (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
1593         (mips_builtin_vector_type): New function.
1594         (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
1595         (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
1596         (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
1597         (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
1598         macros.
1599         (mips_build_function_type): New function.
1600         (mips_init_builtins): Use it to create types lazily.
1601
1602 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1603
1604         * config/mips/mips.h (set_volatile): Delete.
1605         * config/mips/mips.c (set_volatile): Delete.
1606         (mips_print_operand_punctuation): New function, split out from
1607         print_operand.  Remove '%{', '%}', '%~', '%&' and '%!'.
1608         Use the same character ordering in the code and the comments.
1609         Use a recursive call to handle '*'.  Abort on unknown characters.
1610         (mips_init_print_operand_punct): New function, split out from
1611         override_options.
1612         (mips_print_int_branch_condition): New function, split out from
1613         print_operand.  Use GET_RTX_NAME.  Use output_operand_lossage
1614         to report unexpected codes.
1615         (mips_print_float_branch_condition): New function, split out from
1616         print_operand.  Use output_operand_lossage to report unexpected codes.
1617         (print_operand): Rework to use a case statement.  Use the
1618         same letter ordering in the code and the comments.  Use
1619         output_operand_lossage to report unexpected codes and
1620         reverse_condition to handle inverted branch conditions.
1621         (override_options): Use mips_init_print_operand_punct.
1622
1623 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1624
1625         * config/mips/mips.h: Move variable declarations to end of file and
1626         enclose them all in #ifndef USED_FOR_TARGET.
1627         * config/mips/mips.c: Reorder functions into more logical groups,
1628         and so that callees appear before callers.  Put the targetm
1629         initializer at the end of the file.  Remove forward static
1630         declarations where possible.
1631         (mips_init_builtins): Add "static" to definition.
1632         (mips_expand_builtin, mips_mode_rep_extended): Likewise.
1633
1634 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1635
1636         * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
1637         (TARGET_MAX_ANCHOR_OFFSET): Delete.
1638         (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
1639         (mips_set_mips16_mode): Initialize min_anchor_offset and
1640         max_anchor_offset directly to constants.
1641
1642 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1643
1644         * config/mips/mips.c: Delete trailing whitespace.
1645
1646 2007-10-18  Richard Sandiford  <rsandifo@nildram.co.uk>
1647
1648         * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
1649         (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
1650         and pick the first.
1651         * config/mips/mips.md (load_call<mode>): Don't make the unspec
1652         depend on FAKE_CALL_REGNO.  Set FAKE_CALL_REGNO.
1653
1654 2007-10-18  David Daney  <ddaney@avtrex.com>
1655
1656         * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
1657         reg_offset variable to calculate register locations.
1658
1659 2007-10-18  Richard Guenther  <rguenther@suse.de>
1660
1661         * tree-ssa.c (uid_ssaname_map_eq): New function.
1662         (uid_ssaname_map_has): Likewise.
1663         (init_tree_ssa): Allocate default_defs as uid_ssaname map.
1664         * tree-flow.h (struct gimple_df): Make default_defs a
1665         uid_ssaname map.
1666         * tree-dfa.c (gimple_default_def): Deal with it.
1667         (set_default_def): Likewise.
1668
1669 2007-10-18  Richard Guenther  <rguenther@suse.de>
1670
1671         * tree-flow.h (struct gimple_df): Make referenced_vars
1672         a uid_decl_map.
1673         (uid_decl_map_eq): Declare.
1674         (uid_decl_map_hash): Likewise.
1675         * tree-ssa.c (uid_decl_map_eq): New function.
1676         (uid_decl_map_hash): Likewise.
1677         (init_tree_ssa): Make referenced_vars a uid_decl_map.
1678         * tree-flow-inline.h (first_referenced_var): Deal with
1679         the referenced_vars representation change.
1680         (next_referenced_var): Likewise.
1681         * tree-dfa.c (referenced_var_lookup): Likewise.
1682         (referenced_var_check_and_insert): Likewise.
1683         (remove_referenced_var): Likewise.
1684
1685 2007-10-18  Daniel Jacobowitz  <dan@codesourcery.com>
1686
1687         * config/mips/mips.c (mips_dwarf_register_span): New.
1688         (TARGET_DWARF_REGISTER_SPAN): Define.
1689
1690 2007-10-18  Chen Liqin  <liqin@sunnorth.com.cn>
1691
1692         * config.gcc : update score-*-elf(extra_objs).
1693         * config/score/mac.md : Remove.
1694         * config/score/misc.md : Remove.
1695         * config/score/score7.md : Remove.
1696         * config/score/score-mdaux.h : Remove.
1697         * config/score/score-mdaux.c : Remove.
1698         * config/score/score-version.h : Remove.
1699         * config/score/score-generic.md : New.
1700         * config/score/score3.h : New.
1701         * config/score/score3.c : New.
1702         * config/score/score7.h : New.
1703         * config/score/score7.c : New.
1704         * config/score/mul-div.S : add flush_cache score3 support.
1705         * config/score/elf.h : Fix some typos.
1706         * config/score/score.md : merge score3 and score7 pattern.
1707         * config/score/score.c : use to seperate which target it used.
1708         * config/score/score.h : use to seperate the target macro.
1709         * config/score/score.opt : remove -mmac option , add -mscore3,
1710         -mscore3d and -march OPTION support.
1711  
1712 2007-10-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1713
1714         * cfgexpand.c (expand_stack_vars): Add checking to make sure
1715         that the offset of a variable is not greater than the size
1716         of the paritition.
1717
1718 2007-10-17  Anatoly Sokolov <aesok@post.ru>
1719
1720         * config/avr/avr.c (avr_mcu_types): Add support for atmega48p, 
1721         atmega88p, atmega168p and atmega328p devices.
1722         * config/avr/avr.h (LINK_SPEC): (Ditto.).
1723         (CRT_BINUTILS_SPECS): (Ditto.).
1724         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1725
1726 2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
1727
1728         * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
1729         * ddg.c: Ditto.
1730         * sched-deps.c: Ditto.  Remove nested #ifdef's INSN_SCHEDULING.
1731         * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
1732         (print_insn): Move declaration to ...
1733         * rtl.h (print_insn): ... here.
1734
1735 2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
1736
1737         * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
1738         m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
1739         m68k_sched_branch_type): Move declarations to ...
1740         * config/m68/m68k-protos.h: ... here.
1741
1742 2007-10-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
1743
1744         * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
1745
1746 2007-10-17  Eric B. Weddington  <eweddington@cso.atmel.com>
1747
1748         * config/avr/avr.c (avr_mcu_types): Add attiny48.
1749         * config/avr/avr.h (LINK_SPEC): Likewise.
1750         (CRT_BINUTILS_SPECS): Likewsie.
1751         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1752
1753 2007-10-17  Eric B. Weddington  <eweddington@cso.atmel.com>
1754
1755         * config/avr/avr.c (avr_mcu_types): Add attiny43u.
1756         * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
1757         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1758
1759 2007-10-17  Uros Bizjak  <ubizjak@gmail.com>
1760
1761         PR middle-end/33794
1762         * reg-stack.c (move_for_stack_reg): Swap input argument of
1763         UNSPEC_TAN insn to the top of the stack.
1764
1765 2007-10-17  Uros Bizjak  <ubizjak@gmail.com>
1766
1767         PR target/32961
1768         * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
1769         IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
1770         IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
1771         IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
1772         immediate shift value.
1773         * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
1774         _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
1775         _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
1776         Remove macros for !__OPTIMIZE__ case.
1777
1778 2007-10-17  Daniel Berlin  <dberlin@dberlin.org>
1779
1780         * tree-ssa-structalias.c (rewrite_constraints): Don't test for
1781         directness anymore.
1782         (perform_var_substitution): Only DFS from real nodes. Don't test
1783         for directness.
1784         (unite_pointer_equivalences): Fix broken test.
1785
1786 2007-10-17  Alan Modra  <amodra@bigpond.net.au>
1787
1788         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
1789         altivec sp_offset.  Rearrange sp_offset assignments to
1790         correspond to stack adjustments.  Use frame_reg_rtx for
1791         SPE register restores.  Correct SPE stack adjustment.
1792
1793 2007-10-17  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1794
1795         * builtins.c (gimplify_va_arg_expr): Use inform for help message.
1796         * toplev.c (check_global_declaration_1): Use appropriate warning
1797         option instead of unnamed warning.
1798         * stor-layout.c (layout_decl): Likewise.
1799         * c-typeck.c (build_conditional_expr): Likewise.
1800         (build_compound_expr): Fix wrong comment.
1801         (build_binary_op): Use appropriate warning option instead of
1802         unnamed warning.
1803         * cfgexpand.c (tree_expand_cfg): Likewise.
1804         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1805         * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
1806         (execute_warn_function_return): Likewise.
1807         * stmt.c (warn_if_unused_value): Likewise.
1808
1809 2007-10-16  Eric B. Weddington  <eweddington@cso.atmel.com>
1810
1811         * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
1812         * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
1813         similar devices.
1814         (CRT_BINUTILS_SPECS): Likewsie.
1815         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
1816
1817 2007-10-16  Amruth Laxman  <amruth.laxman@nsn.com>
1818
1819         PR target/33594
1820         * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
1821
1822 2007-10-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1823
1824         * dce.c (init_dce): Only initialize the obstacks for the fast pass.
1825         (fini_dce): Only release them for the fast pass.
1826         (end_ud_dce): Delete.
1827         (rest_of_handle_ud_dce): Do not modify df_in_progress.
1828         Call fini_dce instead of end_ud_dce.
1829         (rest_of_handle_fast_dce): Do not modify df_in_progress.
1830         (run_fast_df_dce): Reset df_in_progress to false on exit.
1831
1832 2007-10-16  Paolo Bonzini  <bonzini@gnu.org>
1833             Maxim Kuvyrkov  <maxim@codesourcery.com>
1834
1835         * target.h (unspec_may_trap_p): New target hook.
1836         * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
1837         * targhooks.c (default_unspec_may_trap_p): Default implementation of
1838         the hook.
1839         * targhooks.h (default_unspec_may_trap_p): Declare it.
1840         * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
1841         * rtlanal.c (may_trap_p_1): Use new hook.  Make global.
1842         * rtl.h (may_trap_p_1): Declare.
1843         
1844         * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
1845         override default hook implementation.
1846         (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
1847         hook.
1848
1849 2007-10-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1850
1851         * doc/invoke.texi (Wextra): Move it just after Wall, list the
1852         options enabled by Wextra and mention Wuninitialized.
1853         
1854 2007-10-15  Nigel Stephens  <nigel@mips.com>
1855
1856         * config/mips/mips.h (LOCAL_ALIGNMENT): Define.
1857
1858 2007-10-15  Jakub Jelinek  <jakub@redhat.com>
1859
1860         PR tree-optimization/33136
1861         * opts.c (decode_options): Don't enable flag_ipa_type_escape.
1862
1863 2007-10-15  Alexandre Oliva  <aoliva@redhat.com>
1864
1865         PR tree-optimization/33735
1866         PR tree-optimization/33572
1867         * tree-inline.c (update_ssa_across_abnormal_edges): Revert
1868         2007-10-09's change.
1869         * except.c (duplicate_eh_regions): Don't look for prev_try
1870         beyond ERT_ALLOWED_EXCEPTIONS with an empty list.
1871
1872 2007-10-15  Alexandre Oliva  <aoliva@redhat.com>
1873
1874         PR middle-end/33706
1875         * tree-inline.c (copy_bb): Use bsi_replace to replace a
1876         __builtin_va_arg_pack-containing call stmt.
1877
1878 2007-10-15  Razya Ladelsky  <razya@il.ibm.com>
1879
1880         * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
1881         program flag.
1882
1883 2007-10-15  Jakub Jelinek  <jakub@redhat.com>
1884
1885         PR tree-optimization/33619
1886         * tree-ssa-ter.c (is_replaceable_p): Return false for all
1887         calls.
1888
1889 2007-10-15  David Edelsohn  <edelsohn@gnu.org>
1890
1891         * config.gcc (powerpc-ibm-aix5*): Install altivec.h.
1892
1893 2007-10-15  Richard Guenther  <rguenther@suse.de>
1894
1895         * fold-const.c (extract_array_ref): Remove.
1896         (fold_comparison): Handle POINTER_PLUS_EXPR with the
1897         generic address expression comparison folding.  Remove
1898         the folding that used extract_array_ref.
1899
1900 2007-10-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1901
1902         PR target/33133
1903         * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
1904         speculation type of insn can be changed before trying to do that.
1905
1906 2007-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
1907
1908         * dse.c (struct insn_info): Add 'frame_read' field.
1909         (scan_insn): For the call to a const function, set frame_read if
1910         reload has been run.
1911         If the insn reads the frame, kill the frame related stores.
1912         (scan_reads_nospill): Likewise.
1913
1914 2007-10-14  Jason Merrill  <jason@redhat.com>
1915
1916         * tree-eh.c (optimize_double_finally): Don't assume that the
1917         cleanup we're duplicating is only one statement.
1918
1919 2007-10-14  Kazu Hirata  <kazu@codesourcery.com>
1920
1921         * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
1922         config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
1923         modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
1924         tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
1925         tree-vect-transform.c: Fix comment typos.
1926         * doc/extend.texi: Fix a typo.
1927
1928         * c-common.h: Remove the prototype for c_expand_body.
1929         * c-tree.h: Remove the prototype for c_disregard_inline_limits.
1930         * tree.h: Remove the prototype for fold_build_call_expr.
1931
1932         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
1933         Remove.
1934         * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.
1935
1936 2007-10-13  David Edelsohn  <edelsohn@gnu.org>
1937
1938         * config/rs6000/aix53.h: New file.
1939         * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
1940         (TARGET_ALTIVEC_ABI): Same.
1941         * config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
1942         (TARGET_ALTIVEC_ABI): Delete.
1943         * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2.  Add new
1944         stanza defaulting to aix5.3.
1945
1946 2007-10-12  Nathan Froyd  <froydnj@codesourcery.com>
1947
1948         * config/i386/i386.md (SI_REG, DI_REG): New constants.
1949         (strmov): Use defined constants.
1950         (cmpstrnsi): Likewise.
1951         * config/i386/i386.c (decide_alg): Use defined constants.
1952         (ix86_expand_strlen): Likewise.
1953
1954 2007-10-12  Richard Sandiford  <rsandifo@nildram.co.uk>
1955
1956         * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
1957         * var-tracking.c (micro_operation_def): Update comment on u.loc.
1958         (mode_for_reg_attrs, var_lowpart): New functions.
1959         (add_uses): Consider recording a lowpart of LOC for MO_USE.
1960         (add_stores): Likewise MO_SET and MO_COPY.  If the source of a set
1961         or copy is known, set LOC to the SET that performs the set, instead
1962         of the destination.
1963         (find_src_status, find_src_set_src): Remove LOC parameter.
1964         Replace INSN with the source value.
1965         (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
1966         handling MO_SET and MO_COPY.  Update the calls to find_src_status
1967         and find_src_set_src.
1968
1969 2007-10-12  Nathan Froyd  <froydnj@codesourcery.com>
1970
1971         PR 11001
1972         * config/i386/i386.md (strmov): Check for esi and edi usage.
1973         * config/i386/i386.c (decide_alg): Check whether we can use a
1974         rep prefix and adjust algorithm choice accordingly.
1975         (ix86_expand_strlen): Check for eax, ecx, and edi usage.
1976
1977 2007-10-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1978
1979         * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.
1980
1981 2007-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
1982
1983         * global.c (build_insn_chain): Formatting fixes.
1984
1985 2007-10-12  Richard Guenther <rguenther@suse.de>
1986
1987         * tree-ssa-forwprop.c (forward_propagate_into_cond): For
1988         combining both operands require either both have single uses
1989         or combining to a constant.
1990
1991 2007-10-12  Richard Guenther  <rguenther@suse.de>
1992
1993         PR middle-end/26198
1994         * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
1995         a rhs with side-effects or which is a load.
1996         (forward_propagate_into_cond): Also try combining both operands.
1997
1998 2007-10-12  Uros Bizjak  <ubizjak@gmail.com>
1999
2000         PR tree-optimization/33742
2001         * tree-vect-transform.c (vectorizable_operation): Return false
2002         if get_vectype_for_scalar_type for scalar_dest can't be determined.
2003         (vectorizable_call): Same for rhs_type and lhs_type.
2004
2005 2007-10-12  Jakub Jelinek  <jakub@redhat.com>
2006
2007         PR tree-optimization/33645
2008         * tree-ssa-live.c (mark_all_vars_used): Add data argument,
2009         pass it to walk_tree.
2010         (mark_all_vars_used_1): Pass data through to mark_all_vars_used.
2011         When calling set_is_used on a VAR_DECL, if data is not NULL and
2012         its DECL_UID is in the bitmap, call mark_all_vars_used on its
2013         DECL_INITIAL after clearing the bit in bitmap.
2014         (remove_unused_locals): Adjust mark_all_vars_used callers.
2015         Instead of removing unused global vars from unexpanded_var_list
2016         immediately record them in bitmap, call mark_all_vars_used on
2017         all used global vars from unexpanded_var_list and only purge
2018         global vars that weren't found used even during that step.
2019  
2020 2007-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2021
2022         * gthr-posix.h (__gthread_active_init): Create detached instead of
2023         joinable thread when testing whether threads are active on hppa-hpux.
2024         * gthr-posix95.h (__gthread_active_init): Likewise.
2025
2026 2007-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2027
2028         PR middle-end/33676
2029         * global.c (build_insn_chain): Include insn that occur between
2030         basic blocks.
2031         
2032 2007-10-11  Tom Tromey  <tromey@redhat.com>
2033
2034         * gengtype-yacc.y: Delete.
2035
2036 2007-10-11  Uros Bizjak  <ubizjak@gmail.com>
2037
2038         * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
2039         * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
2040         function_value_32, function_value_64, function_value_ms_64,
2041         setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
2042         legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
2043         Use new constants.
2044
2045 2007-10-11  Richard Guenther  <rguenther@suse.de>
2046
2047         * gcse.c (hash_scan_set): If the next nonnote insn is in
2048         a different basic block insert the set.
2049
2050 2007-10-11  Richard Guenther  <rguenther@suse.de>
2051
2052         PR middle-end/33724
2053         * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
2054         (verify_gimple_expr): Use it to verify pointer-to types for
2055         ADDR_EXPRs.
2056
2057 2007-10-11  Richard Guenther  <rguenther@suse.de>
2058
2059         PR c/33726
2060         * c-typeck.c (build_array_ref): Do not strip qualifiers from
2061         the array element type.
2062
2063 2007-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2064
2065         PR rtl-optimization/33638
2066         * dse.c (struct insn_info): Remove 'stack_read' field,
2067         add 'stack_pointer_based' field.
2068         (record_store): For a store with non-constant base, record
2069         whether it is stack pointer based.
2070         (scan_insn): For the call to a const function, remove stack
2071         pointer based stores from the list of local active stores.
2072         (scan_reads_nospill): Delete code dealing with const functions.
2073
2074 2007-10-10  Peter Bergner  <bergner@vnet.ibm.com>
2075
2076         * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
2077         to HOST_WIDE_INT.
2078         (conflict_p, set_conflict, set_conflicts): Likewise.
2079         * global.c (global_alloc): Likewise.
2080         * ra.h: Update prototypes.
2081
2082 2007-10-10  Wolfgang Gellerich  <gellerich@de.ibm.com>
2083
2084         * opth-gen.awk: Fixed generation of comment stating the origin
2085           of options.h
2086
2087 2007-10-10  Kazu Hirata  <kazu@codesourcery.com>
2088
2089         Revert:
2090         2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
2091         * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
2092         and '%}', respectively.
2093
2094         Revert:
2095         2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
2096         * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
2097         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
2098         and '}'.
2099         * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
2100         meant to be output.
2101
2102         Revert:
2103         2007-10-07  Kazu Hirata  <kazu@codesourcery.com>
2104         * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
2105         syntax for ASSEMBLER_DIALECT.
2106         * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
2107
2108 2007-10-10  Revital Eres  <eres@il.ibm.com>
2109
2110         * modulo-sched.c (check_nodes_order): Dump the final order of
2111         the nodes.
2112         (get_sched_window): Add dump info.
2113         (calculate_order_params): Dump order params of the nodes.
2114
2115 2007-10-09  Kenneth Zadeck <zadeck@naturalbridge.com>
2116
2117         PR middle-end/33669
2118         * ra-conflict.c (record_one_conflict_between_regnos, 
2119         set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
2120         (global_conflicts): Enhanced incorrect check.
2121         
2122 2007-10-09  Geoffrey Keating  <geoffk@apple.com>
2123
2124         * dwarf2out.c (output_call_frame_info): FDEs are always emitted
2125         if flag_exceptions is not set.
2126         * config/darwin.c (darwin_emit_unwind_label): Rewrite to use
2127         assemble_name rather than incorrectly emulating it.
2128
2129         * doc/extend.texi (Deprecated Features): Mention that <? and >? and
2130         friends are removed from G++.
2131
2132 2007-10-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2133
2134         * c-opts.c (c_common_handle_option): -Wnontemplate-friend,
2135         -Wwrite-strings and -Wmultichar are enabled by default, so Wall
2136         enabling them is redundant. Don't check two times for
2137         c_dialect_cxx.
2138         
2139 2007-10-09  H.J. Lu  <hongjiu.lu@intel.com>
2140
2141         * ra-conflict.c (record_one_conflict_between_regnos): Revert
2142         the last change.
2143         (set_conflicts_for_earlyclobber): Likewise.
2144         (global_conflicts): Likewise.
2145
2146 2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
2147
2148         * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
2149         and '%}', respectively.
2150
2151 2007-10-09  Kazu Hirata  <kazu@codesourcery.com>
2152
2153         * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
2154         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
2155         and '}'.
2156         * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
2157         meant to be output.
2158
2159 2007-10-09  Richard Guenther  <rguenther@suse.de>
2160
2161         PR middle-end/33692
2162         * gimplify.c (canonicalize_component_ref): Honor qualifiers
2163         of referenced structure and component.
2164
2165 2007-10-09  Kenneth Zadeck <zadeck@naturalbridge.com>
2166
2167         PR middle-end/33669
2168         * ra-conflict.c (record_one_conflict_between_regnos,
2169         set_conflicts_for_earlyclobber, global_conflicts): Improved
2170         logging.
2171         (global_conflicts): Removed incorrect check.
2172
2173 2007-10-09  Richard Sandiford  <rsandifo@nildram.co.uk>
2174
2175         PR tree-optimization/33615
2176         * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
2177         if the statement might throw.  Fix formatting.
2178
2179 2007-10-09  Richard Sandiford  <rsandifo@nildram.co.uk>
2180
2181         PR tree-optimization/33615
2182         * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
2183         if the rhs might throw.
2184
2185 2007-10-09  Jan Hubicka  <jh@suse.cz>
2186
2187         * invoke.texi (align-threshold, align-loop-iterations): Document.
2188         * final.c: Include cfgloop.h, params.h
2189         (compute_alignments): Dump decisions and compare them with loop
2190         structure; honor given parameters.
2191         (pass_compute_alignments): New dump file.
2192         * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
2193         * Makefile.in (final.o): Add dependency on cfgloop.h and params.h
2194
2195 2007-10-09  James E. Wilson  <wilson@specifix.com>
2196
2197         PR tree-optimization/33655
2198         PR middle-end/22156
2199         * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
2200         convert it to bitsizetype before size_binop call.
2201
2202 2007-10-09  Alexandre Oliva  <aoliva@redhat.com>
2203
2204         PR tree-optimization/33572
2205         * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
2206         the absence of a corresponding edge from the exit block.
2207
2208 2007-10-09  Alexandre Oliva  <aoliva@redhat.com>
2209
2210         PR middle-end/22156
2211         * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
2212         bit-field layout.
2213         (sra_build_assignment): Likewise.  Set up mask depending on
2214         precision, not type.
2215         (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN.  Don't overflow
2216         computing bit masks.
2217         (sra_build_elt_assignment): Don't view-convert from signed to
2218         unsigned.
2219         (sra_explode_bitfield_assignment): Use bit-field type if
2220         possible.  Use BYTES_BIG_ENDIAN.
2221
2222 2007-10-08  Alexandre Oliva  <aoliva@redhat.com>
2223
2224         PR middle-end/22156
2225         * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
2226         the original stmt can throw.
2227         (sra_build_bf_assignment): Fix type mismatch when applying negated
2228         mask.
2229
2230 2007-10-08  Geoffrey Keating  <geoffk@apple.com>
2231
2232         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
2233         '#pragma mark' to be executed at preprocessing time.
2234
2235 2007-10-08  Ollie Wild  <aaw@google.com>
2236
2237         * varasm.c (compare_constant): Removed call to
2238         lang_hooks.expand_constant.
2239         (copy_constants): Removed call to lang_hooks.expand_constant.
2240         (compute_reloc_for_constant): Removed call to
2241         lang_hooks.expand_constant.
2242         (output_addressed_constants): Removed call to
2243         lang_hooks.expand_constant.
2244         (constructor_static_from_elts_p): Removed call to
2245         lang_hooks.expand_constant.
2246         (output_constant): Removed calls to lang_hooks.expand_constant.
2247         * langhooks.h (struct lang_hooks): Removed field expand_constant.
2248         * langhooks-def.h (lhd_return_tree): Removed.
2249         (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2250         (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2251         * langhooks.c (lhd_return_tree): Removed.
2252
2253 2007-10-08  Mark Shinwell  <shinwell@codesourcery.com>
2254
2255         * combine.c (setup_incoming_promotions): Ensure that
2256         arguments that have not undergone mode promotions do not
2257         incorrectly get marked as being sign- or zero-extended.
2258
2259 2007-10-08  Richard Guenther  <rguenther@suse.de>
2260
2261         PR middle-end/33693
2262         PR middle-end/33695
2263         PR middle-end/33697
2264         * fold-const.c (fold_binary): Use correct types in folding
2265         of a * (1 << b) to (a << b).  Likewise for ~A & ~B to ~(A | B)
2266         and building of RROTATE_EXPR.
2267
2268 2007-10-08  Richard Guenther  <rguenther@suse.de>
2269
2270         PR middle-end/33691
2271         PR middle-end/33694
2272         PR middle-end/33696
2273         * fold-const.c (fold_binary): Use the correct types when
2274         folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
2275         (fold_binary): Use the correct types when folding
2276         (-A) - B to (-B) - A.
2277         (fold_unary): Use the correct types when folding ~(X).
2278
2279 2007-10-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2280
2281         * doc/invoke.texi (Wall): fix formatting issues.
2282         
2283 2007-10-07  Richard Sandiford  <rsandifo@nildram.co.uk>
2284
2285         * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
2286         truncated shift counts.
2287
2288 2007-10-07  Kazu Hirata  <kazu@codesourcery.com>
2289
2290         * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
2291         syntax for ASSEMBLER_DIALECT.
2292         * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
2293
2294 2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2295             Nathan Froyd  <froydnj@codesourcery.com>
2296
2297         * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
2298         when determining whether to record INCOMING_RETURN_ADDR_RTX.
2299
2300 2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2301
2302         Revert:
2303         2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
2304
2305         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
2306         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
2307         the function, temporarily point the debug interface to the null one.
2308
2309 2007-10-06  Alexandre Oliva  <aoliva@redhat.com>
2310
2311         PR tree-optimization/33655
2312         PR middle-end/22156
2313         * tree-sra.c (bitfield_overlaps_p): Handle array and complex
2314         elements.
2315
2316 2007-10-06  Alexandre Oliva  <aoliva@redhat.com>
2317
2318         PR tree-optimization/33572
2319         * tree-cfg.c (verify_stmts): Check for missing PHI defs.
2320         * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
2321         (update_ssa_across_abnormal_edges): ... this.  Set slots in the
2322         return PHI node.
2323         (copy_edges_for_bb): Handle nonlocal label edges.
2324         (make_nonlocal_label_edges): Deleted.
2325         (optimize_inline_calls): Don't call it.
2326
2327 2007-10-05  Hans-Peter Nilsson  <hp@axis.com>
2328
2329         * gthr-single.h: Revert last change.
2330
2331 2007-10-05  Michael Matz  <matz@suse.de>
2332
2333         PR middle-end/33667
2334         * lower-subreg.c (decompose_multiword_subregs): Use
2335         validate_unshare_change().
2336
2337 2007-10-05  Peter Bergner  <bergner@vnet.ibm.com>
2338
2339         * ra-conflict.c: Include "sparseset.h".
2340         (conflicts): Change to HOST_WIDEST_FAST_INT.
2341         (allocnos_live): Redefine variable as a sparseset.
2342         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE):
2343         Delete macros.
2344         (allocno_row_words): Removed global variable.
2345         (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
2346         (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
2347         (conflict_p, set_conflict_p, set_conflicts_p): New functions.
2348         (record_one_conflict_between_regnos): Cache allocno values and reuse.
2349         Use set_conflict_p.
2350         (record_one_conflict): Update uses of allocnos_live to use
2351         the sparseset routines.  Use set_conflicts_p.
2352         (mark_reg_store): Likewise.
2353         (set_reg_in_live): Likewise.
2354         (global_conflicts): Update uses of allocnos_live.
2355         Use the new adjacency list to visit an allocno's neighbors
2356         rather than iterating over all possible allocnos.
2357         Call set_conflicts_p to setup conflicts rather than adding
2358         them manually.
2359         * global.c: Comments updated.  
2360         (CONFLICTP): Delete define.
2361         (regno_compare): New function.  Add prototype.
2362         (global_alloc): Sort the allocno to regno mapping according to
2363         which basic blocks the regnos are referenced in.  Modify the
2364         conflict bit matrix to a compressed triangular bitmatrix.
2365         Only allocate the conflict bit matrix and adjacency lists if
2366         we are actually going to allocate something.
2367         (expand_preferences): Use conflict_p.  Update uses of allocnos_live.
2368         (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
2369         allocno's neighbors rather than iterating over all possible allocnos.
2370         (mirror_conflicts): Removed function.
2371         (dump_conflicts): Iterate over regnos rather than allocnos so
2372         that all dump output will be sorted by regno number.
2373         Use the FOR_EACH_CONFLICT macro.
2374         * ra.h: Comments updated.
2375         (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
2376         (partial_bitnum, max_bitnum, adjacency, adjacency_pool):
2377         Add prototypes.
2378         (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
2379         (adjacency_list_d, adjacency_iterator_d): New types.
2380         (add_neighbor, adjacency_iter_init, adjacency_iter_done,
2381         adjacency_iter_next, regno_basic_block): New static inline functions.
2382         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
2383         (conflict_p): Add function prototype.
2384         * sparseset.h, sparseset.c: New files.
2385         * Makefile.in (OBJS-common): Add sparseset.o.
2386         (sparseset.o): New rule.
2387
2388 2007-10-05  Richard Guenther  <rguenther@suse.de>
2389
2390         PR middle-end/33666
2391         * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
2392         to (long long)ptr.
2393
2394 2007-10-05  Michael Matz  <matz@suse.de>
2395
2396         PR inline-asm/33600
2397         * function.c (match_asm_constraints_1): Check for input
2398         being used in the outputs.
2399
2400 2007-10-05  Richard Guenther  <rguenther@suse.de>
2401
2402         * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
2403
2404 2007-10-05  Richard Sandiford  <rsandifo@nildram.co.uk>
2405
2406         PR target/33635
2407         * config/mips/mips.c (mips_register_move_cost): Rewrite to use
2408         subset checks.  Make the cost of FPR -> FPR moves depend on
2409         mips_mode_ok_for_mov_fmt_p.
2410
2411 2007-10-04  Doug Kwan  <dougkwan@google.com>
2412
2413         * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
2414         __gthread_cond_wait_recursive): Add to extend interface for POSIX
2415         conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
2416         support of conditional variables.
2417         * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
2418         __gthread_cond_wait_recursive): Add to extend interface for POSIX
2419         conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
2420         support of conditional variables.
2421         * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
2422         __gthread_cond_wait_recursive): Add to extend interface for POSIX
2423         conditional variables.
2424         * gthr.h: Update comments to document new interface.
2425
2426 2007-10-04  Geoffrey Keating  <geoffk@apple.com>
2427
2428         * cgraphunit.c (cgraph_build_static_cdtor): Don't set
2429         DECL_IGNORED_P.
2430
2431 2007-10-04  Anatoly Sokolov <aesok@post.ru>
2432
2433         * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
2434
2435 2007-10-04  Richard Guenther  <rguenther@suse.de>
2436
2437         PR middle-end/33641
2438         * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
2439         does not need to be of INTEGER_TYPE.
2440         (verify_gimple_2): New function split out from ...
2441         (verify_gimple_1): ... here.  ICE if there was an error during
2442         verification.
2443
2444 2007-10-04  Michael Matz  <matz@suse.de>
2445
2446         PR rtl-optimization/33653
2447         * dce.c (deletable_insn_p_1): Use volatile_refs_p().
2448         * dse.c (scan_insn): Same.
2449
2450 2007-10-04  Kazu Hirata  <kazu@codesourcery.com>
2451
2452         * config.gcc: Remove USE_GAS for m68k targets.
2453
2454 2007-10-04  Richard Guenther  <rguenther@suse.de>
2455
2456         PR tree-optimization/33627
2457         * tree-gimple.h (canonicalize_cond_expr_cond): Declare.
2458         * tree-gimple.c (canonicalize_cond_expr_cond): New function,
2459         split out from ...
2460         * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
2461         * tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
2462
2463 2007-10-04  Anatoly Sokolov <aesok@post.ru>
2464
2465         * config/avr/avr.c (commands_in_file, commands_in_prologues, 
2466         commands_in_epilogues): Remove variables.
2467         (avr_file_start): Remove unneded initializations of commands_in_file,
2468         commands_in_prologues and commands_in_epilogues variables.
2469         (avr_file_end): Remove dead code.
2470
2471 2007-10-04  Kazu Hirata  <kazu@codesourcery.com>
2472
2473         * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
2474         MOTOROLA is to true.
2475
2476 2007-10-03  Richard Sandiford  <rsandifo@nildram.co.uk>
2477
2478         PR target/33635
2479         * config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
2480         (mips_split_doubleword_move): ...this.
2481         * config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
2482         use natural endianness for multi-format FPR values.
2483         (mips_split_64bit_move): Rename to...
2484         (mips_split_doubleword_move): ...this and extend to 64-bit words.
2485         Use move_doubleword_fpr* patterns for moves involving FPRs.
2486         (mips_save_reg): Update the call to mips_split_64bit_move.
2487         (mips_secondary_reload_class): Return NO_REGS for any reload of a
2488         nonzero constant into an FPR if the constant can be forced to memory.
2489         * config/mips/mips.md: Update the splitter calls to
2490         mips_split_64bit_move.
2491         (UNSPEC_LOAD_DF_LOW): Rename to...
2492         (UNSPEC_LOAD_LOW): ...this.
2493         (UNSPEC_LOAD_DF_HIGH): Rename to...
2494         (UNSPEC_LOAD_HIGH): ...this.
2495         (UNSPEC_STORE_DF_HIGH): Rename to...
2496         (UNSPEC_STORE_WORD): ...this.
2497         (SPLITF): New mode iterator.
2498         (HALFMODE): New mode attribute.
2499         (movtf): New expander.
2500         (*movtf_internal): New define_insn_and_split.
2501         (move_doubleword_fpr<mode>): New expander.
2502         (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
2503         with...
2504         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
2505         (mfhc1<mode>): ...these more general patterns.
2506
2507 2007-10-03  Alexandre Oliva  <aoliva@redhat.com>
2508
2509         * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.
2510
2511 2007-10-03  Alexandre Oliva  <aoliva@redhat.com>
2512
2513         * gcse.c (hash_scan_set): Insert set in insn before note at
2514         the end of basic block.
2515
2516 2007-10-03  Sebastian Pop  <sebastian.pop@amd.com>
2517
2518         PR tree-optimization/33576
2519         * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
2520         * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
2521         * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
2522         (remove_iv): Declared.
2523         * lambda-code.c (remove_iv): Not static.
2524         (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
2525         Don't remove ivs there, save ivs in the buffer.
2526
2527 2007-10-03  Jason Merrill  <jason@redhat.com>
2528
2529         PR c++/15764
2530         * tree-eh.c (same_handler_p): New fn.
2531         (optimize_double_finally): New fn.
2532         (refactor_eh_r): New fn.
2533         (refactor_eh): New fn.
2534         (pass_refactor_eh): New pass.
2535         * tree-pass.h: Declare it.
2536         * passes.c (init_optimization_passes): Add it.
2537
2538 2007-10-03  Doug Kwan  <dougkwan@google.com>
2539         Richard Guenther  <rguenther@suse.de>
2540
2541         PR debug/31899
2542         * dwarf2out.c (reference_to_unused): Disable sanity checking,
2543         be conservative instead.
2544
2545 2007-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2546
2547         PR fortran/26682
2548         * doc/invoke.texi (-fwhole-program): Document that Fortran
2549         doesn't support this option.
2550
2551 2007-10-02  Richard Sandiford  <rsandifo@nildram.co.uk>
2552
2553         PR middle-end/33617
2554         * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to
2555         expand_expr.
2556
2557 2007-10-02  David Daney  <ddaney@avtrex.com>
2558
2559         * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
2560         against constant zero.
2561         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP):  Handle constant zero
2562         operand.
2563
2564 2007-09-02  Kenneth Zadeck <zadeck@naturalbridge.com>
2565
2566         * ra-conflict.c: New file.
2567         * ra.h: New file.
2568         * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
2569         usage to DF_LIVE usage.
2570         (reload): Remove reference to df_get_live_top.
2571         * rtlanal.c (subreg_nregs_with_regno): New function.  
2572         * df-scan.c (df_def_record_1, df_uses_record): Add code to set
2573         DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
2574         (df_has_eh_preds): Removed.
2575         (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
2576         df_exit_block_uses_collect): Changed call from df_has_eh_preds to
2577         bb_has_eh_pred.
2578         * global.c (allocno, max_allocno, conflicts, allocno_row_words,
2579         reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
2580         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
2581         (regs_set, record_one_conflict, record_conflicts, mark_reg_store,
2582         mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
2583         (global_alloc): Turn off rescanning insns after call to
2584         global_conflicts and added call to set_preferences.
2585         (global_conflicts): Moved to ra-alloc.c.
2586         (set_preferences_1, set_preferences): New function.
2587         (mirror_conflicts): Changed types for various variables.
2588         (mark_elimination): Change DF_RA_LIVE
2589         usage to DF_LIVE usage.
2590         (build_insn_chain): Rewritten from scratch and made local.
2591         (print_insn_chain, print_insn_chains): New functions.
2592         (dump_conflicts): Do not print conflicts for fixed_regs.
2593         (rest_of_handle_global_alloc): Turn off insn rescanning.
2594         * hard-reg-set.h: Fixed comment.
2595         * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
2596         usage to DF_LIVE usage and delete refs to TOP sets.
2597         (block_alloc): Mark regs as live if they are in the artificial
2598         defs at top of block.
2599         (find_stack_regs): New function.
2600         (rest_of_handle_local_alloc): Changed urec problem to live
2601         problem and do not turn off df rescanning.
2602         * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
2603         DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
2604         df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
2605         (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
2606         (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
2607         fields in df_ref_flags.  The rest have been renumbered.  
2608         * init-regs.c (initialize_uninitialized_regs): Enhanced debugging
2609         at -O1.
2610         * rtl.h (subreg_nregs_with_regno): New function.
2611         * df-problems.c: (df_get_live_out, df_get_live_in,
2612         df_get_live_top): Removed reference to DF_RA_LIVE.
2613         (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
2614         df_live_alloc, df_live_reset, df_live_local_finalize,
2615         df_live_free): Make top set only if different from in set.
2616         (df_lr_top_dump, df_live_top_dump): Only print top set if
2617         different from in set.
2618         (df_lr_bb_local_compute): Removed unnecessary check.
2619         (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info, 
2620         df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass, 
2621         df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
2622         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
2623         df_urec_local_compute, df_urec_init, df_urec_local_finalize, 
2624         df_urec_confluence_n, df_urec_transfer_function, df_urec_free, 
2625         df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
2626         df_urec_add_problem): Removed.
2627         (df_simulate_fixup_sets): Changed call from df_has_eh_preds to
2628         bb_has_eh_pred. 
2629         * Makefile.in (ra-conflict.o, ra.h): New dependencies.
2630         * basic_block.h (bb_has_abnormal_pred): New function.
2631         * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
2632         usage to DF_LIVE usage.
2633         
2634 2007-10-02  Revital Eres  <eres@il.ibm.com>
2635
2636         * config/rs6000/predicates.md (easy_vector_constant): Return false
2637         for 750CL paired vectors.
2638         * config/rs6000/paired.md (movv2sf_paired): Fix move of easy
2639         vector constant.
2640         (vec_initv2sf): Add new description.
2641         (vconcatsf): Likewise.
2642         * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
2643         * config/rs6000/rs6000.c (paired_expand_vector_init): New function.
2644
2645 2007-10-01  Alexandre Oliva  <aoliva@redhat.com>
2646
2647         * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
2648         sinking the last stmt in a BB.
2649
2650 2007-10-01  Alexandre Oliva  <aoliva@redhat.com>
2651
2652         PR middle-end/22156
2653         * tree-sra.c (struct sra_elt): Add in_bitfld_block.
2654         (sra_hash_tree): Handle BIT_FIELD_REFs.
2655         (sra_elt_hash): Don't hash bitfld blocks.
2656         (sra_elt_eq): Skip them in parent compares as well.  Handle
2657         BIT_FIELD_REFs.
2658         (build_element_name_1): Handle BIT_FIELD_REFs.
2659         (instantiate_element): Propagate nowarn from parents.  Create
2660         BIT_FIELD_REF for variables that are widened by scalarization.
2661         Gimple-zero-initialize all bit-field variables that are not
2662         part of parameters that are going to be scalarized on entry.
2663         (instantiate_missing_elements_1): Return the sra_elt.
2664         (canon_type_for_field): New.
2665         (try_instantiate_multiple_fields): New.  Infer widest possible
2666         access mode from decl or member type, but clip it at word
2667         size, and only widen it if a field crosses an alignment
2668         boundary.
2669         (instantiate_missing_elements): Use them.
2670         (generate_one_element_ref): Handle BIT_FIELD_REFs.
2671         (scalar_bitfield_p): New.
2672         (sra_build_assignment): Optimize assignments from scalarizable
2673         BIT_FIELD_REFs.  Use BITS_BIG_ENDIAN to determine shift
2674         counts.
2675         (REPLDUP): New.
2676         (sra_build_bf_assignment): New.  Optimize assignments to
2677         scalarizable BIT_FIELD_REFs.
2678         (sra_build_elt_assignment): New.  Optimize BIT_FIELD_REF
2679         assignments to full variables.
2680         (generate_copy_inout): Use the new macros and functions.
2681         (generate_element_copy): Likewise.  Handle bitfld differences.
2682         (generate_element_zero): Don't recurse for blocks.  Use
2683         sra_build_elt_assignment.
2684         (generate_one_element_init): Take elt instead of var.  Use
2685         sra_build_elt_assignment.
2686         (generate_element_init_1): Adjust.
2687         (bitfield_overlap_info): New struct.
2688         (bitfield_overlaps_p): New.
2689         (sra_explode_bitfield_assignment): New.  Adjust widened
2690         variables to account for endianness.
2691         (sra_sync_for_bitfield_assignment): New.
2692         (scalarize_use): Re-expand assignment to/from scalarized
2693         BIT_FIELD_REFs.  Explode or sync needed members for
2694         BIT_FIELD_REFs accesses or assignments.  Use REPLDUP.
2695         (scalarize_copy): Use REPLDUP.
2696         (scalarize_ldst): Move assert before dereference.  Adjust EH
2697         handling.
2698         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
2699
2700 2007-10-01  Paolo Bonzini  <bonzini@gnu.org>
2701
2702         * simplify-rtx.c (comparison_result, simplify_relational_operation_1):
2703         Rename CR_* constants to CMP_*.  Fix spacing.
2704
2705 2007-10-01  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2706
2707         PR other/33585
2708         * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs
2709         to be processed with the special script doc/install.texi2html.
2710         
2711 2007-09-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2712
2713         * doc/invoke.texi (Wall): List the options enabled by Wall.
2714         (Wstrict-aliasing): Add missing @option.
2715         
2716 2007-09-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2717
2718         * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset
2719         rather than gen_lowpart to change a register from DImode to DFmode.
2720         (mips_cannot_change_mode_class): Only allow FPRs to change mode if
2721         both FROM and TO are integer modes that are no bigger than 4 bytes.
2722         (mips_mode_ok_for_mov_fmt_p): New function.
2723         (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P.
2724         (mips_secondary_reload_class): Tweak formatting and comments.
2725         Use reg_class_subset_p instead of direct comparisons with
2726         classes.  Only allow direct FPR<->FPR moves for modes that
2727         satisfy mips_mode_ok_for_mov_fmt_p.  Only allow loads and stores
2728         for 4- and 8-byte types.  Handle reloads in which X is an FPR.
2729         * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative.
2730         (*movdi_64bit): Likewise.
2731         (*movsi_internal): Likewise.
2732         (*movhi_internal): Likewise.
2733         (*movqi_internal): Likewise.
2734
2735 2007-09-30  Diego Novillo  <dnovillo@google.com>
2736
2737         PR 33593
2738         * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may
2739         throw an exception.
2740
2741 2007-09-30  Uros Bizjak  <ubizjak@gmail.com>
2742
2743         PR tree-optimization/33597
2744         * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler
2745         for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode.
2746
2747 2007-09-28  Uros Bizjak  <ubizjak@gmail.com>
2748
2749         * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p ()
2750         instead of variants of (!reload_in_progress && !reload_completed).
2751         (x86_expand_vector_move): Ditto.
2752
2753 2007-09-28  Ollie Wild  <aaw@google.com>
2754
2755         Revert
2756         2007-09-27  Ollie Wild  <aaw@google.com>
2757
2758         * varasm.c (compare_constant): Removed call to
2759         lang_hooks.expand_constant.
2760         (copy_constants): Removed call to lang_hooks.expand_constant.
2761         (compute_reloc_for_constant): Removed call to
2762         lang_hooks.expand_constant.
2763         (output_addressed_constants): Removed call to
2764         lang_hooks.expand_constant.
2765         (constructor_static_from_elts_p): Removed call to
2766         lang_hooks.expand_constant.
2767         (output_constant): Removed calls to lang_hooks.expand_constant.
2768         * langhooks.h (struct lang_hooks): Removed field expand_constant.
2769         * langhooks-def.h (lhd_return_tree): Removed.
2770         (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2771         (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2772         * langhooks.c (lhd_return_tree): Removed.
2773
2774 2007-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2775
2776         PR target/33347
2777         * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second
2778         argument to gen_selb.
2779
2780 2007-09-28  Chao-ying Fu  <fu@mips.com>
2781
2782         * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.
2783         * doc/libgcc.texi (Fixed-point fractional library routines):
2784         Fix typos for neg and cmp functions.
2785
2786 2007-09-28  Michael Matz  <matz@suse.de>
2787
2788         PR rtl-optimization/33552
2789         * function.c (match_asm_constraints_1): Check for overlap in
2790         inputs and replace all occurences.
2791
2792 2007-09-28  Richard Sandiford  <rsandifo@nildram.co.uk>
2793
2794         * config/mips/mips.c (override_options): Fix comment typo.
2795
2796 2007-09-28  Jie Zhang  <jie.zhang@analog.com>
2797
2798         * config.gcc (bfin*-linux-uclibc*): Set extra_parts
2799         to "crtbegin.o crtbeginS.o crtend.o crtendS.o".
2800         * config/bfin/t-bfin-linux (crti.o): Don't build.
2801         (crtn.o): Likewise.
2802         (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
2803         * config/bfin/t-bfin-uclinux (crti.o): Don't build.
2804         (crtn.o): Likewise.
2805         (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
2806
2807 2007-09-27  Ollie Wild  <aaw@google.com>
2808
2809         * varasm.c (compare_constant): Removed call to
2810         lang_hooks.expand_constant.
2811         (copy_constants): Removed call to lang_hooks.expand_constant.
2812         (compute_reloc_for_constant): Removed call to
2813         lang_hooks.expand_constant.
2814         (output_addressed_constants): Removed call to
2815         lang_hooks.expand_constant.
2816         (constructor_static_from_elts_p): Removed call to
2817         lang_hooks.expand_constant.
2818         (output_constant): Removed calls to lang_hooks.expand_constant.
2819         * langhooks.h (struct lang_hooks): Removed field expand_constant.
2820         * langhooks-def.h (lhd_return_tree): Removed.
2821         (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2822         (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
2823         * langhooks.c (lhd_return_tree): Removed.
2824
2825 2007-09-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2826
2827         PR middle-end/33436
2828         * expr.c (emit_group_load_1): Split constant double when destination
2829         length is half source length.
2830
2831 2007-09-27  Richard Sandiford  <rsandifo@nildram.co.uk>
2832
2833         * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
2834         (mips_cpu_info): Add tune_flags.
2835         (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
2836         * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
2837         Remove end marker.
2838         (override_options): Remove deprecation code.  Use branch-likely
2839         instructions for optimize_size or if the tuning flags do not
2840         suggest otherwise.  Tweak warning.
2841         (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.
2842
2843 2007-09-27  Matthias Klose  <doko@ubuntu.com>
2844
2845         * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
2846         multilib osdirname if it exists.
2847         * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
2848
2849 2007-09-27  Ian Lance Taylor  <iant@google.com>
2850
2851         PR tree-optimization/33565
2852         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
2853         assignments of comparisons.
2854         * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
2855         parameter.  Change caller.  Defer overflow warnings around call to
2856         fold_binary.
2857         * fold-const.c (fold_undefer_overflow_warnings): Don't warn if
2858         TREE_NO_WARNING is set on the statement.
2859         * tree-ssa-forwprop.c
2860         (tree_ssa_forward_propagate_single_use_vars): Don't test
2861         TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
2862         * tree-cfg.c (fold_cond_expr_cond): Likewise.
2863
2864 2007-09-27  Joseph Myers  <joseph@codesourcery.com>
2865
2866         * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
2867         reduce offset by units of 0x10000 for SPE vector modes or modes
2868         used with E500 double instructions.
2869
2870 2007-09-04  Paolo Bonzini  <bonzini@gnu.org>
2871
2872         * simplify-rtx.c (comparison_result): New.
2873         (simplify_const_relational_operation): Use it instead of the five
2874         "equal|op[01]ltu?" variables; consequently remove redundant "else"s.
2875         Improve bounds-checking optimizations; remove subsumed POPCOUNT
2876         optimizations.  Extract nonzero_address_p optimizations into a
2877         separate "if" together with optimizations where op1 is const0_rtx.
2878         Optimize comparing an IOR with zero.  Simplify op0 RELOP op0 for
2879         floating-point arguments too when appropriate.  Hoist test for ABS
2880         outside the final switch statement.
2881         * cse.c (fold_rtx): Don't look for an IOR equivalent of
2882         folded_arg0 if we found a constant equivalent.  Remove
2883         transformations done in simplify-rtx.c for "op0 RELOP op0".
2884
2885 2007-09-27  Jakub Jelinek  <jakub@redhat.com>
2886
2887         * builtins.c (expand_builtin, expand_builtin_object_size,
2888         expand_builtin_memory_chk, maybe_emit_chk_warning,
2889         maybe_emit_sprintf_chk_warning): Use new %K format string specifier
2890         for diagnostics.
2891         * expr.c (expand_expr_real_1): Likewise.
2892         * langhooks-def.h (struct diagnostic_info): Add forward decl.
2893         (lhd_print_error_function): Add third argument.
2894         * langhooks.h (struct diagnostic_info): Add forward decl.
2895         (struct lang_hooks): Add third argument to print_error_function.
2896         * diagnostic.h (diagnostic_info): Add abstract_origin field.
2897         (diagnostic_last_function_changed, diagnostic_set_last_function): Add
2898         second argument.
2899         (diagnostic_report_current_function): Likewise.
2900         * toplev.c (announce_function): Pass NULL as second argument to
2901         diagnostic_set_last_function.
2902         * diagnostic.c (diagnostic_report_current_function): Add second
2903         argument, pass it as third argument to lang_hooks.print_error_function.
2904         (default_diagnostic_starter): Pass DIAGNOSTIC as second argument
2905         to diagnostic_report_current_function.
2906         (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin
2907         and message.abstract_origin.
2908         (verbatim): Initialize abstract_origin.
2909         * pretty-print.h (text_info): Add abstract_origin field.
2910         * pretty-print.c (pp_base_format): Handle %K.
2911         * langhooks.c (lhd_print_error_function): Add third argument.  If
2912         diagnostic->abstract_origin, print virtual backtrace.
2913         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2914         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K.
2915         (init_dynamic_diag_info): Likewise.
2916
2917 2007-09-26  David Daney  <ddaney@avtrex.com>
2918
2919         PR target/33479
2920         * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>,
2921         sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>,
2922         sync_old_nand<mode>, sync_new_nand<mode>,
2923         sync_lock_test_and_set<mode>): Fix '&' constraint modifiers.
2924         Update length attributes.
2925         (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>,
2926         sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update
2927         length attributes.
2928         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP,
2929         MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND,
2930         MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add
2931         post-loop sync.
2932
2933 2007-09-26  Richard Guenther  <rguenther@suse.de>
2934
2935         PR tree-optimization/33563
2936         * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ...
2937         (get_kill_of_stmt_lhs): ... this.  Re-structure.  Handle
2938         aggregate stores.
2939         (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of
2940         get_use_of_stmt_lhs.
2941
2942 2007-09-26  Joseph Myers  <joseph@codesourcery.com>
2943
2944         PR c/25309
2945         * c-common.c (complete_array_type): Diagnose too-large arrays and
2946         set type to error_mark_node.
2947
2948 2007-09-26  Richard Guenther  <rguenther@suse.de>
2949
2950         PR tree-optimization/30375
2951         PR tree-optimization/33560
2952         * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
2953         with calls.
2954
2955         Revert
2956         2006-05-22  Aldy Hernandez  <aldyh@redhat.com>
2957
2958         * tree-ssa-dse.c (aggregate_vardecl_d): New.
2959         (dse_global_data): Add aggregate_vardecl field.
2960         (dse_possible_dead_store_p): New.
2961         Add prev_defvar variable.
2962         Allow immediate uses and previous immediate uses to differ
2963         if they are setting different parts of the whole.
2964         (get_aggregate_vardecl): New.
2965         (dse_record_partial_aggregate_store): New.
2966         (dse_whole_aggregate_clobbered_p): New.
2967         (dse_partial_kill_p): New.
2968         Call dse_maybe_record_aggregate_store().
2969         When checking whether a STMT and its USE_STMT refer to the
2970         same memory address, check also for partial kills that clobber
2971         the whole.
2972         Move some variable definitions to the block where they are used.
2973         (aggregate_vardecl_hash): New.
2974         (aggregate_vardecl_eq): New.
2975         (aggregate_vardecl_free): New.
2976         (aggregate_whole_store_p): New.
2977         (tree_ssa_dse): Initialize and free aggregate_vardecl.
2978         Mark which aggregate stores we care about.
2979
2980 2007-09-25  DJ Delorie  <dj@redhat.com>
2981
2982         PR target/33551
2983         * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of
2984         XINT.
2985
2986 2007-09-25  Michael Meissner  <michael.meissner@amd.com>
2987
2988         PR target/33524
2989         * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call
2990         gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di
2991         for vector int32 -> int64 conversions.  Don't write beyond the end
2992         of the allocated vector for int32 -> int64 conversions.
2993
2994 2007-09-25  Revital Eres  <eres@il.ibm.com>
2995
2996         * config/rs6000/paired.h (paired_sel): New.
2997         * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4.
2998         (rs6000_expand_ternop_builtin): Pass zero const_double operand
2999         when expanding selv2sf.
3000         * config/rs6000/rs6000.h (rs6000_builtins): Add
3001         PAIRED_BUILTIN_SELV2SF4.
3002
3003 2007-09-25  Joseph Myers  <joseph@codesourcery.com>
3004
3005         PR c/32295
3006         * c-typeck.c (default_conversion): Call require_complete_type
3007         before perform_integral_promotions.
3008         (build_unary_op): Call require_complete_type except for ADDR_EXPR.
3009         (build_c_cast): Call require_complete_type except for casts to
3010         void types.
3011         (convert_for_assignment): Call require_complete_type.
3012
3013 2007-09-25  Revital Eres  <eres@il.ibm.com>
3014
3015         * config/spu/spu.md: Fix doloop pattern.
3016
3017 2007-09-25  Bernd Schmidt  <bernd.schmidt@analog.com>
3018
3019         * config/bfin/bfin.c (expand_prologue_reg_save,
3020         expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs
3021         and ASTAT moved here...
3022         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
3023         ... from here.  New argument ALL; callers changed.
3024         (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions.
3025         (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that
3026         have the "saveall" attribute.
3027
3028 2007-09-25  Hans-Peter Nilsson  <hp@bitrange.com>
3029
3030         * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define
3031         bogus target macro.
3032         (INCOMING_REGNO, OUTGOING_REGNO): Define.
3033         * config/mmix/mmix.c (mmix_opposite_regno): New function.
3034         * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype.
3035
3036         * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
3037         with REG_P tests before REGNO access.
3038
3039 2007-09-24  DJ Delorie  <dj@redhat.com>
3040
3041         PR target/31482
3042         * config/m32c/cond.md (stzx_reversed_<mode>): Add an output
3043         constraint.
3044         (movqicc_<code>_<mode>): Likewise.
3045         (movhicc_<code>_<mode>): Likewise.
3046
3047 2007-09-24  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3048
3049         PR target/33184
3050         * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address
3051         register for reload.
3052
3053 2007-09-24  Danny Smith  <dannysmith@user.sourceforge.net>
3054
3055         PR c++/14688
3056         * config/i386/i386.c (ix86_comp_type_attributes): Check
3057         METHOD_TYPE too.
3058
3059 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
3060
3061         * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
3062         "move.l %a4,%a4" to produce nops.
3063         * config/m68k/m68k.c (override_options): Reset align options,
3064         if neccessary align macro isn't avaible.
3065
3066 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
3067
3068         config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New.
3069
3070 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
3071
3072         * config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave
3073         the basic block.
3074         * config/m68k/m68k.md (movsi_m68k): Allow certain constant when
3075         reload is completed.
3076         (peephole pattern): Convert most of them to RTL peephole pattern.
3077
3078 2007-09-24  Roman Zippel <zippel@linux-m68k.org> 
3079
3080         * config/m68k/m68k.c (notice_update_cc): Recognize fp compare
3081         (moved from fp compare patterns).
3082         * config/m68k/m68k.md (cmp<mode>, cmp<mode>_68881, cmp<mode>_cf):
3083         Cleanup predicates to relieve reload.
3084         (conditional_trap): Reject conditional trap with fp condition.
3085         * gcc/config/m68k/predicates.md (fp_src_operand): New, reject
3086         certain constants early.
3087
3088 2007-09-24  Roman Zippel <zippel@linux-m68k.org>
3089
3090         * gcc/final.c (final_scan_insn): Remove accidentally duplicated code.
3091
3092 2007-09-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3093
3094         * config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU.
3095         Allow --with-tune=cell and --with-cpu=cell.
3096
3097 2007-09-24  David Edelsohn  <edelsohn@gnu.org>
3098
3099         * config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare.
3100         * config/rs6000/rs6000.opt (swdiv): Change option to ...
3101         (recip): this.
3102         * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New
3103         function.
3104         (TARGET_BUILTIN_RECIPROCAL): Use it.
3105         (rs6000_builtin_expand): Expand recip, recipf, and rsqrtf.
3106         (rs6000_init_builtins): Initialize recip, recipf, and rsqrtf.
3107         (rs6000_emit_swrsqrtsf): New.
3108         * config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and
3109         rsqrtf. 
3110         * config/rs6000/rs6000.md (UNSPEC_RSQRT): Define.
3111         (divsf3): Remove swdiv support.
3112         (recipsf3): New.
3113         (rsqrtsf2): New.
3114         (rsqrt_internal1): New.
3115         (divdf3): Remove swdiv support.
3116         (reciptdf3): New.
3117
3118 2007-09-24  Jakub Jelinek  <jakub@redhat.com>
3119
3120         PR c++/33506
3121         * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq
3122         field.
3123         * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define.
3124         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ.
3125         * tree.c (type_hash_eq): For FUNCTION_TYPE use
3126         lang_hooks.type.type_hash_eq in addition to generic tests.
3127
3128 2007-09-24  Pranav Bhandarkar  <pranav.bhandarkar@celunite.com>
3129         Ramana Radhakrishnan  <ramana@hercules.pun.celunite.com>
3130
3131         * tree-inline.h (eni_weights): Add field target_builtin_cost to
3132         reflect the cost per call to a target specific builtin.
3133         * tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a
3134         call to a target specific builtin, then use target_builtin_call_cost.
3135         (init_inline_once): Initialize target_builtin_call_cost field.
3136
3137 2007-09-24  Kai Tietz  <kai.tietz@onevision.com>
3138
3139         PR middle-end/33472
3140         * config/i386/i386.c (return_in_memory_ms_64): Handle return types for
3141         complex types.
3142
3143 2007-09-23  H.J. Lu  <hongjiu.lu@intel.com>
3144
3145         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
3146         * configure: Regenerated.
3147
3148 2007-09-23  Ollie Wild  <aaw@google.com>
3149
3150         * fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer
3151         operand.
3152         (get_pointer_modulus_and_residue): New function.
3153
3154 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
3155
3156         * config/mips/mips.c (build_mips16_call_stub): On 64-bit targets,
3157         combine an SC return value into a single register.
3158
3159 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
3160
3161         * opth-gen.awk (target_flags_explicit): Declare.
3162         * toplev.h (target_flags_explicit): Delete declaration.
3163         * toplev.c (target_flags): Likewise.
3164         * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete.
3165         (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags.
3166         Never return true for TARGET_MIPS16.
3167         * config/mips/mips.c (mips_llsc): Delete.
3168         (mips_handle_option): Remove -mllsc handling.
3169         (mips_strip_unspec_address): Tweak comment.
3170         * config/mips/mips.opt (mllsc): Use a target mask.
3171
3172 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
3173
3174         * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to
3175         word_mode as well as Pmode.
3176
3177 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
3178
3179         * function.c (assign_parm_setup_block): Explicitly convert BLKmode
3180         parameters from word_mode to the subword type if such a truncation
3181         is not a no-op.
3182
3183 2007-09-23  Jakub Jelinek  <jakub@redhat.com>
3184
3185         * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
3186         * configure: Regenerated.
3187
3188 2007-09-23  Jan Hubicka  <jh@suse.cz>
3189
3190         * params.def (INLINE_CALL_COST): Set to 12.
3191         * invoke.texi (inline-call-cost): Update default value.
3192
3193 2007-09-23  Eric Botcazou  <ebotcazou@adacore.com>
3194
3195         * config/alpha/alpha.md (movti): Use operand_subword for the split.
3196
3197 2007-09-23  Ayal Zaks  <zaks@il.ibm.com>
3198             Revital Eres  <eres@il.ibm.com>
3199
3200         * modulo-sched.c (doloop_register_get): Rewrite the loop which
3201         checks whether the count_reg is found outside the control part.
3202
3203 2007-09-23  Jakub Jelinek  <jakub@redhat.com>
3204
3205         * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl
3206         instead of checking CALL_EXPR_FN directly to test for builtins.
3207         If error or warning attributes are present, print
3208         error resp. warning.
3209         * c-common.c (handle_error_attribute): New function.
3210         (c_common_attribute_table): Add error and warning
3211         attributes.
3212         * doc/extend.texi: Document error and warning attributes.
3213
3214         * tree.h (block_nonartificial_location): New prototype.
3215         * tree.c (block_nonartificial_location): New function.
3216         * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial
3217         if artificial attribute is present on abstract inline decl.
3218         * c-common.c (handle_artificial_attribute): New function.
3219         (c_common_attribute_table): Add artificial attribute.
3220         * final.c (override_filename, override_linenum): New variables.
3221         (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename
3222         and override_linenum if inside of a block inlined from
3223         __attribute__((__artificial__)) function.
3224         (notice_source_line): Honor override_filename and override_linenum.
3225         * doc/extend.texi: Document __attribute__((__artificial__)).
3226         * config/i386/emmintrin.h: Add __artificial__ attribute to
3227         all __always_inline__ functions.
3228         * config/i386/mmintrin.h: Likewise.
3229         * config/i386/tmmintrin.h: Likewise.
3230         * config/i386/mm3dnow.h: Likewise.
3231         * config/i386/pmmintrin.h: Likewise.
3232         * config/i386/ammintrin.h: Likewise.
3233         * config/i386/xmmintrin.h: Likewise.
3234         * config/i386/smmintrin.h: Likewise.
3235         * config/i386/bmmintrin.h: Likewise.
3236         * config/i386/mmintrin-common.h: Likewise.
3237
3238         PR middle-end/28755
3239         * expr.c (expand_constructor): New function.
3240         (expand_expr_real_1) <case CONSTRUCTOR>: Call it.
3241         (expand_expr_real_1) <case ARRAY_REF>: Call it if VALUE is
3242         CONSTRUCTOR.
3243
3244 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
3245
3246         * config/mips/mips.c (dump_constants_1): Generalize to include
3247         fractional and accumulator modes.
3248
3249 2007-09-23  Richard Sandiford  <rsandifo@nildram.co.uk>
3250
3251         * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros.
3252         * config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP
3253         flags for MIPS16.
3254         (override_options): Check TARGET_HARD_FLOAT_ABI instead of
3255         TARGET_HARD_FLOAT when testing whether -mpaired-single is
3256         supported.
3257         (mips_conditional_register_usage): Check ISA_HAS_DSP instead of
3258         TARGET_DSP.
3259         * config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of
3260         TARGET_DSPR2.
3261         * config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF.
3262         (mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require
3263         TARGET_HARD_FLOAT.
3264         (<u>mulsidi3_32bit_internal, <u>msubsidi4, <u>maddsidi4): Check
3265         ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2.
3266         * config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP
3267         throughout.
3268         * config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and
3269         TARGET_HAS_DSPR2.
3270         * config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2
3271         instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2.
3272         * config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns.
3273
3274 2007-09-22  Jason Merrill  <jason@redhat.com>
3275
3276         PR c++/19407
3277         * attribs.c (lookup_attribute_spec): Split out...
3278         (decl_attributes): From here.
3279         * tree.h: Declare it.
3280
3281 2007-09-22  Richard Sandiford  <rsandifo@nildram.co.uk>
3282
3283         * doc/sourcebuild.texi: Document dg-add-options mips16_attribute.
3284
3285 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
3286
3287         * tree-inline.c (remap_type_1): Correctly chain variants.
3288
3289 2007-09-22  Richard Guenther  <rguenther@suse.de>
3290
3291         PR tree-optimization/33146
3292         * fold-const.c (fold_binary): Use the original tree
3293         for negating.
3294         * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer
3295         also changes "sign".
3296
3297 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
3298
3299         PR target/32325
3300         * except.c (finish_eh_generation): Call commit_edge_insertions if
3301         there are insns queued on the entry edge.
3302         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on
3303         the entry edge.
3304
3305 2007-09-22  Richard Sandiford  <rsandifo@nildram.co.uk>
3306
3307         * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document.
3308
3309 2007-09-19  Michael Meissner  <michael.meissner@amd.com>
3310
3311         * gcc/config/i386/i386.c: Delete trailing whitespace.
3312         * gcc/config/i386/i386.h: Ditto.
3313         * gcc/config/i386/bmmintrin.h: Ditto.
3314         * gcc/config/i386/sync.md: Ditto.
3315         * gcc/config/i386/ppro.md: Ditto.
3316         * gcc/config/i386/mmx.md: Ditto.
3317         * gcc/config/i386/constraints.md: Ditto.
3318         * gcc/config/i386/sse.md: Ditto.
3319         * gcc/config/i386/athlon.md: Ditto.
3320         * gcc/config/i386/i386.md: Ditto.
3321
3322 2007-09-21  Richard Guenther  <rguenther@suse.de>
3323
3324         PR tree-optimization/33508
3325         * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid
3326         quadratic loop by keeping a bitmap of variables we have
3327         to clobber all subvariables for.
3328         (set_initial_properties): Likewise.
3329
3330 2007-09-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3331
3332         * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete.
3333
3334 2007-09-20  Nigel Stephens  <nigel@mips.com>
3335             Chao-ying Fu  <fu@mips.com>
3336
3337         * c-decl.c (finish_declspecs): When _Sat is used without
3338         _Fract or _Accum, set the default type to cts_fract.
3339         This avoids a warning of "type defaults to int".
3340
3341 2007-09-20  Joseph Myers  <joseph@codesourcery.com>
3342
3343         * c-decl.c (check_bitfield_type_and_width): Don't allow _Bool
3344         bit-fields wider than one bit.
3345
3346 2007-09-20  Jakub Jelinek  <jakub@redhat.com>
3347
3348         PR debug/33316
3349         * dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL
3350         DECL_NAME.
3351         * dbxout.c (dbxout_type): Likewise.
3352
3353         PR c/33238
3354         PR c/27301
3355         * gimplify.c (gimplify_vla_decl): New function.
3356         (gimplify_decl_expr): Move VLA decl handling to gimplify_vla_decl.
3357         Call it.
3358         (gimplify_target_expr): Handle variable length TARGET_EXPRs.
3359
3360 2007-09-20  Richard Sandiford  <rsandifo@nildram.co.uk>
3361
3362         * doc/invoke.texi (-minterlink-mips16): Document.
3363         * config/mips/mips.opt (minterlink-mips16): New option.
3364         * config/mips/mips.c (mips_function_ok_for_sibcall): Handle
3365         -minterlink-mips16
3366
3367 2007-09-20  Joseph Myers  <joseph@codesourcery.com>
3368
3369         * doc/extend.texi (Attribute Syntax): Remove old speculative
3370         future direction.
3371
3372 2007-09-20  Mark Shinwell  <shinwell@codesourcery.com>
3373
3374         * combine.c: Include cgraph.h.
3375         (setup_incoming_promotions): Rework to allow more aggressive
3376         elimination of sign extensions when all call sites of the
3377         current function are known to lie within the current unit.
3378
3379 2007-09-20  Richard Sandiford  <rsandifo@nildram.co.uk>
3380
3381         * dse.c (find_shift_sequence): No-op rework of control flow.
3382
3383 2007-09-19  Richard Sandiford  <rsandifo@nildram.co.uk>
3384
3385         * config/mips/mips.c (build_mips16_call_stub): Tidy.  Fix second
3386         GPR for DCmode on 64-bit targets.  Remove redundant fallback.
3387
3388 2007-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3389
3390         * cfgexpand.c (dump_stack_var_partition): Use the correct
3391         index for the offset.
3392
3393 2007-09-19  Joseph Myers  <joseph@codesourcery.com>
3394
3395         * config/mips/sde.h: Switch to GPLv3.
3396
3397 2007-09-19  Eric Botcazou  <ebotcazou@adacore.com>
3398
3399         * tree-sra.c (decide_block_copy): Decide if there are groups.
3400
3401 2007-09-19  Roman Zippel <zippel@linux-m68k.org>
3402
3403         * config/m68k/m68k.c (output_move_himode): Remove jump table
3404         recognition.
3405         config/m68k/m68k.md (lea): Likewise.
3406         * config/m68k/m68k.c (print_operand_address): Use simple pc
3407         relative addressing.
3408
3409 2007-09-19  Bernd Schmidt  <bernd.schmidt@analog.com>
3410
3411         * doc/tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument.
3412         * final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide two-argument
3413         default definition.
3414         (asm_insn_count): Pass template as second argument to it.
3415         * config/avr/avr.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
3416         * config/pa/pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
3417         * config/stormy16/stormy16.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
3418         * config/cris/cris.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
3419         * config/sh/sh.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
3420         (sh_insn_length_adjustment): Pass template as second argument to it.
3421         * config/bfin/bfin.h (IS_ASM_LOGICAL_LINE_SEPARATOR): New macro.
3422
3423         * config/bfin/bfin.md (define_asm_attributes): New.
3424
3425 2007-09-19  Jie Zhang  <jie.zhang@analog.com>
3426
3427         * config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h
3428         to tm_file.
3429         * config/bfin/print-sysroot-suffix.sh: New.
3430         * config/bfin/t-bfin-elf (EXTRA_PARTS): Remove.
3431         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
3432         MULTILIB_EXCEPTIONS): Redefine with new multilibs.
3433         * config/bfin/t-bfin-uclinux (EXTRA_PARTS): Remove.
3434         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
3435         MULTILIB_EXCEPTIONS): Redefine with new multilibs.
3436         * config/bfin/t-bfin-linux (EXTRA_PARTS): Remove.
3437         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
3438         MULTILIB_EXCEPTIONS): Redefine with new multilibs.
3439         (linux-sysroot-suffix.h): New target.
3440         * config/bfin/bfin.opt (mcsync-anomaly): Use Var instead of Mask.
3441         (mspecld-anomaly): Likewise.
3442         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Renamed from
3443         (enum bfin_cpu): ... this. Add BFIN_CPU_BF522, BFIN_CPU_BF525,
3444         BFIN_CPU_BF527, BFIN_CPU_BF538, BFIN_CPU_BF539, BFIN_CPU_BF542,
3445         BFIN_CPU_BF544, BFIN_CPU_BF548, and BFIN_CPU_BF549.
3446         (bfin_si_revision): Declare.
3447         (bfin_workarounds): Declare.
3448         (WA_SPECULATIVE_LOADS): Define.
3449         (ENABLE_WA_SPECULATIVE_LOADS): Define.
3450         (WA_SPECULATIVE_SYNCS): Define.
3451         (ENABLE_WA_SPECULATIVE_SYNCS): Define.
3452         * config/bfin/elf.h (STARTFILE_SPEC): Rename crt532.o to basiccrt.o.
3453         (LIB_SPEC): Add %s to the linker scripts.
3454         Use proper linker script for bf522, bf525, bf527,
3455         bf538, bf539, bf542, bf544, bf548, and bf549.
3456         * config/bfin/bfin.c (bfin_si_revision): Define.
3457         (bfin_workarounds): Define.
3458         (struct bfin_cpu): New.
3459         (bfin_cpus): New.
3460         (bfin_handle_option): Handle silicon revision part of -mcpu option.
3461         (override_options): Set bfin_workarounds.
3462         (length_for_loop): Replace TARGET_CSYNC_ANOMALY with
3463         ENABLE_WA_SPECULATIVE_SYNCS, TARGET_SPECLD_ANOMALY with
3464         ENABLE_WA_SPECULATIVE_LOADS.
3465         (bfin_reorg): Likewise.
3466         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
3467         macros for bf522, bf525, bf527, bf538, bf539,
3468         bf542, bf544, bf548, and bf549.
3469         Define __SILICON_REVISION__ and __WORKAROUND_* macros if needed.
3470         Don't define __ID_SHARED_LIB__ when -msep-data.
3471         (TARGET_DEFAULT): Define as 0.
3472         (DRIVER_SELF_SPECS): Add -mcpu=bf532 if no -mcpu option.
3473         * doc/invoke.texi (Blackfin Options): Document silicon
3474         revision part of -mcpu option and it now accepts bf522, bf525,
3475         bf527, bf538, bf539, bf542, bf544, bf548, and bf549.
3476
3477 2007-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3478
3479         * alias.c (memory_modified_1): Deconstify.
3480         (memory_modified_in_insn_p): Don't use const_note_stores.
3481         * rtl.h (const_note_stores): Delete.
3482         * rtlanal.c (const_note_stores): Likewise.
3483
3484 2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3485
3486         * dse.c (find_shift_sequence): Temporarily revert to forbidding
3487         word shifts.
3488
3489 2007-09-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3490
3491         PR target/33388
3492         PR target/33397
3493         * config/fr30/fr30.md (addsi3): Check REG_P() before calling REGNO().
3494         (addsi_small_int): Likewise.
3495         (addsi_big_int): Use rtx_equal_p() instead of REGNO() comparison.
3496         (one_cmplsi2): Likewise.
3497         (negsi2): Delete.
3498         (enter_func): Expand insn using hard_frame_pointer_rtx and
3499         stack_pointer_rtx.
3500         (*enter_func): New.
3501         * config/fr30/fr30.c (fr30_expand_prologue): Check for
3502         hard_frame_pointer_rtx instead of using REGNO() check.
3503         Properly sign extend GEN_INT() argument.
3504
3505 2007-09-18  Roman Zippel <zippel@linux-m68k.org>
3506
3507         * config/m68k/m68k.c (override_options): Remove USE_GAS,
3508         use %. syntax.
3509         (output_dbcc_and_branch, output_scc_di): Replace all jbcc
3510         alternatives with just jcc.
3511         * config/m68k/m68k.md (addsi_lshrsi_31, beq0_di, bne0_di,
3512         bge0_di, blt0_di, bgtu, bltu, bgeu, bleu, bgtu_rev,
3513         bltu_rev, bgeu_rev, bleu_rev, jump, dbne_hi, dbne_si,
3514         dbge_hi, dbge_si): Likewise.
3515
3516 2007-09-18  Roman Zippel <zippel@linux-m68k.org>
3517
3518         * config/m68k/m68k.md (beq, bne, bgt, blt, bge, ble, bordered,
3519         bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, beq_rev,
3520         bne_rev, bgt_rev, blt_rev, bge_rev, ble_rev, bordered_rev,
3521         bunordered_rev, buneq_rev, bunge_rev, bungt_rev, bunle_rev,
3522         bunlt_rev, bltgt_rev): Replace all fbcc with fjcc.
3523
3524 2007-09-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3525
3526         * config/m68k/m68k-devices.def (51qe): New device.
3527         * config/m68k/m68k.c (FL_FOR_isa_c): Remove division unit.  Add it
3528         to all uses of FL_FOR_isa_c for compatibility.
3529         (all_microarchs): Add cfv1 microarchitecture.
3530         (m68k_handle_option): Handle m51qe option.
3531         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Handle 51QE.
3532         (TUNE_CFV1): New macro.
3533         (enum uarch_type): Add ucfv1.
3534         * doc/invoke.texi: Document 51qe device and cfv1 microarchitecture.
3535         
3536 2007-09-18  Richard Guenther  <rguenther@suse.de>
3537
3538         PR tree-optimization/31863
3539         * tree-ssa-structalias.c (create_variable_info_for): Always
3540         free the fieldstack.
3541
3542 2007-09-18  Dorit Nuzman  <dorit@il.ibm.com>
3543
3544         * opts.c (decode_options): Enable vectorization under -O3.
3545
3546 2007-09-18  Richard Guenther  <rguenther@suse.de>
3547
3548         PR tree-optimization/33340
3549         * tree-ssa-sccvn.c (set_ssa_val_to): Do not set values to
3550         SSA_NAMEs that occur in abnormal PHI nodes.
3551
3552 2007-09-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3553
3554         * tree-cfg.c (is_ctrl_altering_stmt, tree_block_ends_with_call_p):
3555         Don't use const_get_call_expr_in.
3556         * tree-gimple.c (const_get_call_expr_in): Delete.
3557         * tree-gimple.h (const_get_call_expr_in): Likewise.
3558
3559 2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3560
3561         * df-scan.c (df_notes_rescan): Do nothing if the instruction does
3562         not yet have a basic block.
3563         * dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN.
3564
3565 2007-09-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3566
3567         * config/mips/mips.c (mips_file_start): Add ".previous" directives
3568         to both ".section"s.
3569
3570 2007-09-17  Richard Sandiford  <rsandifo@nildram.co.uk>
3571
3572         * config/mips/mips.c (mips_output_mi_thunk): Use
3573         mips_function_ok_for_sibcall and const_call_insn_operand
3574         to determine if a direct sibcall is allowed.  Use
3575         mips_classify_symbol to determine a global pointer is needed.
3576
3577 2007-09-17  Richard Sandiford  <rsandifo@nildram.co.uk>
3578
3579         * config/mips/mips.md (*clear_upper32): Use "W" as the memory operand.
3580
3581 2007-09-17  Chao-ying Fu  <fu@mips.com>
3582             Nigel Stephens  <nigel@mips.com>
3583
3584         * config/fixed-bit.h: New file.
3585         * config/fixed-bit.c: New file.
3586         * doc/libgcc.texi (Fixed-point fractional library routines): New node.
3587
3588 2007-09-18  Jakub Jelinek  <jakub@redhat.com>
3589
3590         * c-format.h (format_kind_info): Add alloc_char field.
3591         * c-format.c (scanf_flag_specs): Add 'm'.
3592         (scanf_flag_pairs): Add 'a', 'm' pair.
3593         (scan_char_table): Allow 'm' modifier for c, s, [, C and S.
3594         (format_types_orig): Add alloc_char fields.
3595         (check_format_info_main): Rename aflag to alloc_flag.
3596         Handle fki->alloc_char. modifier after width and before length
3597         modifiers.  Move FMT_FLAG_SCANF_A_KLUDGE handling before
3598         length modifiers as well.
3599         * config/sol2-c.c (solaris_format_types): Add alloc_char field.
3600
3601         PR middle-end/33423
3602         * builtins.c (expand_builtin_memory_chk): Handle COMPOUND_EXPRs
3603         returned by build_call_expr.
3604
3605 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
3606
3607         * tree-sra.c (maybe_lookup_element_for_expr) <COMPONENT_REF>: Return
3608         NULL for variable-sized records too.
3609         (sra_walk_expr) <COMPONENT_REF>: Stop at variable-sized records too.
3610
3611 2007-09-17  Tom Tromey  <tromey@redhat.com>
3612
3613         * c-decl.c (pushdecl): Don't set DECL_LANG_SPECIFIC.
3614         (c_builtin_function): Likewise.
3615         (grokdeclarator): Likewise.
3616
3617 2007-09-17  Zdenek Dvorak  <ook@ucw.cz>
3618
3619         PR rtl-optimization/26449
3620         * loop-invariant.c (move_invariant_reg): Do not use force_operand.
3621         (seq_insns_valid_p): Removed.
3622
3623 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
3624
3625         * tree-nomudflap.c (gate_mudflap): New static function.
3626         (pass_mudflap_1): Use it as gate function.
3627         (pass_mudflap_2): Likewise.
3628
3629 2007-09-17  Jan Hubicka  <jh@suse.cz>
3630
3631         PR middle-end/33348
3632         PR target/33406
3633         * loop-invariant.c (move_invariant_reg): Unshare sequence.
3634
3635 2007-09-17  Victor Kaplansky  <victork@il.ibm.com>
3636
3637         PR tree-optimization/33319
3638         * tree-vect-analyze.c (vect_same_range_drs): New.
3639         (vect_vfa_range_equal): New.
3640         (vect_is_duplicate_ddr): Removed.
3641         (vect_mark_for_runtime_alias_test): Do not perform marking when
3642         optimizing for size or max_param for alias checking is zero.
3643         Move the function before vect_analyze_data_ref_dependence.
3644         (vect_analyze_data_ref_dependence): Add call to
3645         vect_mark_for_runtime_alias_test in two cases when dependence
3646         is not clear.
3647         (vect_analyze_data_ref_dependences): Do not call to
3648         vect_mark_for_runtime_alias_test.
3649         (vect_prune_runtime_alias_test_list): New.
3650         (vect_analyze_loop): Add call to vect_prune_runtime_alias_test_list.
3651         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
3652         Update vec_outside_cost.
3653         (vect_vfa_segment_size): More compact code, use TYPE_SIZE_UNIT.
3654         (vect_create_cond_for_alias_checks): Build the base address of data
3655         reference from DR_GROUP_FIRST_DR.
3656         (vect_loop_versioning): New.
3657         (vect_transform_loop): Add a call to vect_loop_versioning.
3658         Remove factored out code.
3659
3660 2007-09-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3661
3662         PR middle-end/33273
3663         * expr.c (store_expr): Call adjust_address to change mode of dest_mem
3664         to BLKmode.
3665
3666 2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>
3667
3668         * dse.c (find_shift_sequence): Allow word as well as subword shifts.
3669         Do the tentative shift expansion with the DF_NO_INSN_RESCAN flag set.
3670         Fix the call to insn_rtx_cost.  Skip access sizes that require a
3671         real truncation of the store register.  Use convert_move instead
3672         of gen_lowpart when narrowing the result.
3673         (replace_read): Use convert_move instead of gen_lowpart when
3674         narrowing the store rhs.
3675
3676 2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>
3677
3678         * config/mips/mips.md (SHORT): Fix long line.
3679         (SUBDI): New mode iterator.  Extend the shift-and-truncate insns
3680         to QImode and HImode.
3681
3682 2007-09-16  Richard Sandiford  <rsandifo@nildram.co.uk>
3683
3684         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Define.
3685
3686 2007-09-15  Zdenek Dvorak  <ook@ucw.cz>
3687
3688         * tree-parloops.c: New file.
3689         * tree-ssa-operands.h (free_stmt_operands): Declare.
3690         * tree-ssa-loop-manip.c (split_loop_exit_edge): Return the new basic
3691         block.
3692         * tree-pass.h (pass_parallelize_loops): Declare.
3693         * omp-low.c (expand_omp_parallel, expand_omp_for): Update SSA form for
3694         virtual operands.
3695         (build_omp_regions_1): Allow analysing just a single OMP region and
3696         its subregions.
3697         ( build_omp_regions_root, omp_expand_local): New functions.
3698         (build_omp_regions): Add argument to build_omp_regions_1 call.
3699         * builtins.def (DEF_GOMP_BUILTIN): Initialize OMP builtins when
3700         autoparallelization is run.
3701         * timevar.def (TV_TREE_PARALLELIZE_LOOPS): New.
3702         * tree-ssa-loop.c (gate_tree_parallelize_loops, tree_parallelize_loops,
3703         pass_parallelize_loops): New.
3704         * common.opt (ftree-parallelize-loops): New.
3705         * tree-flow.h (omp_expand_local, tree_duplicate_sese_tail,
3706         parallelize_loops): Declare.
3707         (add_phi_args_after_copy, split_loop_exit_edge): Declaration changed.
3708         * Makefile.in (tree-parloops.o): Added.
3709         * tree-cfg.c (add_phi_args_after_copy_edge, tree_duplicate_sese_tail):
3710         New functions.
3711         (add_phi_args_after_copy_bb): Use add_phi_args_after_copy_edge.
3712         (add_phi_args_after_copy): Call add_phi_args_after_copy_edge for
3713         one extra edge as well.
3714         (tree_duplicate_sese_region): Add argument to add_phi_args_after_copy.
3715         Use VEC_free to free doms vector.
3716         (move_block_to_fn): Update loop info. Remove phi nodes for virtual
3717         operands.  Recompute operand caches in the new function.
3718         (move_sese_region_to_fn): Update loop info.
3719         * passes.c (init_optimization_passes): Add pass_parallelize_loops.
3720         * tree-ssa-operands.c (free_stmt_operands): New function.
3721
3722         * doc/passes.texi: Document autoparallelization.
3723         * doc/invoke.texi (-ftree-parallelize-loops): New option.
3724
3725 2007-09-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3726
3727         PR target/33062
3728         * pa.c (function_value): Use GET_MODE_BITSIZE instead of
3729         TYPE_PRECISION.
3730
3731 2007-09-15  Dorit Nuzman  <dorit@il.ibm.com>
3732
3733         * tree-vect-transform.c (vect_get_vec_defs_for_stmt_copy): check if 
3734         the VEC is not NULL.
3735         (vectorizable_type_demotion, vectorizable_type_promotion): Check that 
3736         get_vectype_for_scalar_type succeeded.
3737         (vectorizable_conversion): Likewise.
3738
3739 2007-09-14  Jan Hubicka  <jh@suse.cz>
3740
3741         * config/i386/i386.md (*floatdi<mode>2_i387): Guard against
3742         TARGET_64BIT.
3743
3744 2007-09-14  Uros Bizjak  <ubizjak@gmail.com>
3745
3746         PR target/33438
3747         * config/i386/i386.md (fmodxf3): Copy operands[2] to temporary
3748         register when operands[2] equals operands[1].
3749         (remainderxf3): Ditto.
3750
3751 2007-09-14  Sandra Loosemore  <sandra@codesourcery.com>
3752             Nigel Stephens  <nigel@mips.com>
3753
3754         * doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document.
3755         * unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
3756         (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to
3757         declaration.
3758         (_Unwind_ForcedUnwind): Likewise.
3759         (_Unwind_Resume): Likewise.
3760         (_Unwind_Resume_or_Rethrow): Likewise.
3761         (_Unwind_Backtrace): Likewise.
3762         (_Unwind_SjLj_RaiseException): Likewise.
3763         (_Unwind_SjLj_ForcedUnwind): Likewise.
3764         (_Unwind_SjLj_Resume): Likewise.
3765         (_Unwind_SjLj_Resume_or_Rethrow): Likewise.
3766         * unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE
3767         to definition.
3768         (_Unwind_ForcedUnwind): Likewise.
3769         (_Unwind_Resume): Likewise.
3770         (_Unwind_Resume_or_Rethrow): Likewise.
3771         (_Unwind_Backtrace): Likewise.
3772         * unwind-compat.c (_Unwind_Backtrace): Likewise.
3773         (_Unwind_ForcedUnwind): Likewise.
3774         (_Unwind_RaiseException): Likewise.
3775         (_Unwind_Resume): Likewise.
3776         (_Unwind_Resume_or_Rethrow): Likewise.
3777
3778         * config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force
3779         nomips16 mode when IN_LIBGCC2 with hard float.
3780
3781 2007-09-14  Richard Sandiford  <rsandifo@nildram.co.uk>
3782
3783         * config/mips/sdemtk.opt: Update to GPLv3.
3784         * config/mips/sdemtk.h: Likewise.
3785
3786 2007-09-14  Nigel Stephens  <nigel@mips.com>
3787
3788         * config.gcc (mips*-*-linux*): Recognise mipsisa32r2 and set
3789         MIPS_ISA_DEFAULT appropriately.  Don't make soft-float the default
3790         for mipsisa32-*-linux*.
3791
3792 2007-09-14  Nigel Stephens  <nigel@mips.com>
3793             David Ung  <davidu@mips.com>
3794             Thiemo Seufer  <ths@mips.com>
3795             Richard Sandiford  <richard@codesourcery.com>
3796
3797         * config.gcc (mips*-sde-elf*): Add support for the SDE C libraries.
3798         * configure.ac: Add a mipssde threading type.
3799         * configure: Regenerate.
3800         * config/mips/sdemtk.h: New file.
3801         * config/mips/t-sdemtk: Likewise.
3802         * config/mips/sdemtk.opt: Likewise.
3803         * gthr-mipssde.h: Likewise.
3804         * config/mips/sde.h (FUNCTION_PROFILER): Move to config/mips/sdemtk.h.
3805         * config/mips/mips.h (MIPS_SAVE_REG_FOR_PROFILING_P): New macro.
3806         (MIPS_ICACHE_SYNC): New macro, split from ...
3807         * config/mips/mips.md (clear_cache): ...here.
3808         * config/mips/mips.c (mips_save_reg_p): Check
3809         MIPS_SAVE_REG_FOR_PROFILING_P on profiled functions.
3810         (build_mips16_function_stub): Use targetm.strip_name_encoding.
3811         (build_mips16_call_stub): Likewise.
3812
3813 2007-09-14  Richard Sandiford  <richard@codesourcery.com>
3814
3815         * Makefile.in (stmp-int-hdrs): Depend on fixinc_list.
3816
3817 2007-09-14  Jakub Jelinek  <jakub@redhat.com>
3818
3819         PR target/32337
3820         * config/ia64/ia64.c (find_gr_spill): Don't decrement
3821         current_frame_info.n_local_regs.  Don't return emitted local
3822         regs.
3823         (ia64_compute_frame_size): Improve unwind hack to put
3824         RP, PFS, FP in that order by allowing some of the registers
3825         been already emitted, as long as they are emitted to the
3826         desired register.
3827
3828 2007-09-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3829
3830         * config/spu/vmx2spu.h (vec_extract, vec_insert, vec_lvlx,
3831         vec_lvlxl, vec_lvrx, vec_lvrxl, vec_promote, vec_splats,
3832         vec_stvlx, vec_stvlxl, vec_stvrx, vec_stvrxl): New intrinsics.
3833
3834 2007-09-13  Eric Christopher  <echristo@apple.com>
3835             Kenneth Zadeck <zadeck@naturalbridge.com>
3836
3837         * dse.c (find_shift_sequence): New function.
3838         (replace_read): Add case to remove read if it requires shift.
3839         * config/i386/i386.c (ix86_expand_prologue): Fixed typo in comment.
3840         
3841 2007-09-13  Tom Tromey  <tromey@redhat.com>
3842
3843         * c-common.c (fname_as_string): Update.
3844         * c-parser.c (c_parser) <lex_untranslated_string>: New field.
3845         (c_lex_one_token): Update.  Add 'parser' argument.
3846         (c_parser_simple_asm_expr): Update.
3847         (c_parser_attributes): Update.
3848         (c_parser_asm_statement): Update.
3849         (c_parser_asm_operands): Update.
3850         (c_parser_peek_token): Update.
3851         (c_parser_peek_2nd_token): Update.
3852         * c-lex.c (c_lex_string_translate): Remove.
3853         (c_lex_return_raw_strings): Likewise.
3854         (c_lex_with_flags): Added 'lex_flags' argument.
3855         (lex_string): Added 'translate' argument.
3856         * c-pragma.h (c_lex_with_flags): Update.
3857         (c_lex_string_translate, c_lex_return_raw_strings): Remove.
3858         (C_LEX_STRING_NO_TRANSLATE): New define.
3859         (C_LEX_RAW_STRINGS): Likewise.
3860
3861 2007-09-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3862
3863         From Jie Zhang:
3864         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_ONES,
3865         BFIN_BUILTIN_CPLX_MUL_16_S40, BFIN_BUILTIN_CPLX_MAC_16_S40,
3866         BFIN_BUILTIN_CPLX_MSU_16_S40, and BFIN_BUILTIN_CPLX_SQU.
3867         (bfin_init_builtins): Initialize __builtin_bfin_ones,
3868         __builtin_bfin_min_fr1x16, __builtin_bfin_max_fr1x16,
3869         __builtin_bfin_min_fr1x32, __builtin_bfin_max_fr1x32,
3870         __builtin_bfin_cmplx_add, __builtin_bfin_cmplx_sub,
3871         __builtin_bfin_cmplx_mul_s40, __builtin_bfin_cmplx_mac_s40,
3872         __builtin_bfin_cmplx_msu_s40 and __builtin_bfin_csqu_fr16.
3873         (bdesc_1arg): Add __builtin_bfin_ones.
3874         (bfin_expand_builtin): Expand __builtin_bfin_cmplx_mul_s40,
3875         __builtin_bfin_cmplx_mac_s40, __builtin_bfin_cmplx_msu_s40,
3876         and __builtin_bfin_csqu_fr16.
3877         * config/bfin/bfin.md (UNSPEC_ONES): New constant.
3878         (ones): New define_insn.
3879         (ssaddhi3_parts): New define_insn.
3880         (sssubhi3_parts): New define_insn.
3881         (flag_mulhi_parts): New define_insn.
3882
3883 2007-09-13  Seongbae Park <seongbae.park@gmail.com>
3884
3885         * common.opt (femit-class-debug-always): Turn off by default.
3886
3887 2007-09-13  Bernd Schmidt  <bernd.schmidt@analog.com>
3888
3889         * config/bfin/bfin.md (reload_outpdi, reload_inpdi): New patterns.
3890         * config/bfin/bfin.c (bfin_secondary_reload): Make sure we use them.
3891
3892 2007-09-13  James E. Wilson  <wilson@specifix.com>
3893
3894         PR tree-optimization/33389
3895         * tree-ssa-operands.c (append_vuse): If ann->in_vdef_list true,
3896         then set build_loads before returning.
3897
3898 2007-09-13  Sandra Loosemore  <sandra@codesourcery.com>
3899             David Ung  <davidu@mips.com>
3900
3901         * config/mips/mips.h (ASM_OUTPUT_REG_PUSH): Replace {d}subu with
3902         {d}addiu and a negative immediate such that it works with MIPS16
3903         instructions.
3904         
3905 2007-09-13  H.J. Lu  <hongjiu.lu@intel.com>
3906
3907         PR bootstrap/33418
3908         * configure.ac (ld_vers): Support Linux linker.
3909         * configure: Regenerated.
3910
3911 2007-09-13  Richard Sandiford  <richard@codesourcery.com>
3912             Sandra Loosemore <sandra@codesourcery.com>
3913
3914         * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Delete.
3915         (SYMBOL_REF_MIPS16_FUNC_P): Delete.
3916         * config/mips/mips.c (mips_attribute_table): Turn mips16 and
3917         nomips16 into decl attributes.
3918         (TARGET_INSERT_ATTRIBUTES): Override.
3919         (TARGET_MERGE_DECL_ATTRIBUTES): Likewise.
3920         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Always return true.
3921         (mips_mips16_type_p, mips_nomips16_type_p): Delete in favor of...
3922         (mips_mips16_decl_p, mips_nomips16_decl_p): ...these new functions.
3923         (mips_comp_type_attributes): Remove mips16 and nomips16 handling.
3924         (mips_use_mips16_mode_p): Reimplement as a function that takes
3925         a decl and considers only decl attributes.  If the decl is nested
3926         function, use its parent attributes.
3927         (mips_function_ok_for_sibcall): Use mips_use_mips16_mode_p
3928         instead of SYMBOL_REF_MIPS16_FUNC_P.
3929         (mips_set_mips16_mode): Move call to sorry here from old
3930         mips_use_mips16_mode_p.
3931         (mflip_mips16_entry): New structure.
3932         (mflip_mips16_htab): New variable.
3933         (mflip_mips16_htab_hash, mflip_mips16_htab_eq): New functions.
3934         (mflip_mips16_use_mips16_p, mips_insert_attributes): Likewise.
3935         (mips_merge_decl_attributes): New function.
3936         (mips_set_current_function): Reinstate call to mips_set_mips16_mode.
3937         Use mips_use_mips16_mode_p.
3938         (mips_output_mi_thunk): Use mips_use_mips16_mode_p instead of
3939         SYMBOL_REF_MIPS16_FUNC_P.
3940         (mips_encode_section_info): Don't set SYMBOL_FLAG_MIPS16_FUNC.
3941
3942 2007-09-13  Richard Sandiford  <richard@codesourcery.com>
3943
3944         * c-parser.c (c_parser_struct_declaration): Check for a null return.
3945
3946 2007-09-13  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3947
3948         PR driver/33309
3949         * gcc.c (xputenv): Make argument const, and use CONST_CAST.
3950
3951 2007-09-12  Michael Meissner  <michael.meissner@amd.com>
3952             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3953             Tony Linthicum  <tony.linthicum@amd.com>
3954
3955         * tree.h (function_args_iterator): New type to iterate over
3956         function arguments.
3957         (FOREACH_FUNCTION_ARGS_PTR): Iterator macros for iterating over
3958         function arguments providing a pointer to the argument.
3959         (FOREACH_FUNCTION_ARGS): Iterator macros for iterating over
3960         function arguments providing the argument.
3961         (function_args_iter_init): Inline function to initialize
3962         function_args_iterator.
3963         (function_args_iter_cond_ptr): Inline function to return the next
3964         pointer to hold the argument.
3965         (function_args_iter_cond): Inline function to return the next
3966         argument.
3967         (function_args_iter_cond_next): Advance the function args
3968         iterator.
3969         (stdarg_p): New function, return true if variable argument
3970         function.
3971         (prototype_p): New function, return true if function is
3972         prototyped.
3973         (function_args_count): New function, count the number of arguments
3974         of a function.
3975
3976         * tree.c (stdarg_p): New function, return true if variable
3977         argument function.
3978         (prototype_p): New function, return true if function is
3979         prototyped.
3980
3981         * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
3982         (TARGET_ROUND): New macro for the round/ptest instructions which
3983         are shared between SSE4.1 and SSE5.
3984         (OPTION_MASK_ISA_ROUND): Ditto.
3985         (OPTION_ISA_ROUND): Ditto.
3986         (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
3987         (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
3988
3989         * config/i386/i386.opt (-msse5): New switch for SSE5 support.
3990         (-mfused-madd): New switch to give users control over whether the
3991         compiler optimizes to use the multiply/add SSE5 instructions.
3992
3993         * config/i386/i386.c (m_AMD_MULTIPLE): Rename from
3994         m_ATHLON_K8_AMDFAM10, and change all uses.
3995         (enum pta_flags): Add PTA_SSE5.
3996         (ix86_handle_option): Turn off 3dnow if -msse5.
3997         (override_options): Add SSE5 support.
3998         (print_operand): %Y prints comparison codes for SSE5 com/pcom
3999         instructions.
4000         (ix86_expand_sse_movcc): Add SSE5 support.
4001