OSDN Git Service

gcc/ChangeLog:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
2
3         PR target/37033
4         * dwarf2out.c (saved_do_cfi_asm): New.
5         (dwarf2out_do_frame): Take it into account.
6         (dwarf2out_d_cfi_asm): Likewise.  Set it when appropriate.
7
8 2008-12-10  Alexandre Oliva  <aoliva@redhat.com>
9
10         PR middle-end/38271
11         * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
12         variables initialized from SRAed bit fields.
13
14 2008-12-10  Martin Guy <martinwguy@yahoo.it>
15
16         PR target/37668
17         * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
18         result will be in an FPU register.
19
20 2008-12-10  Eric Botcazou  <ebotcazou@adacore.com>
21
22         PR target/37170
23         PR target/38448
24         * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external
25         on the associated SYMBOL_REF_DECL node, if any.
26
27 2008-12-09 David Daney <ddaney@caviumnetworks.com>
28
29         * config/mips/sync.md (sync_<optab>_12): Replace
30         MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND.
31         (sync_old_<optab>_12): Remove third paramater to
32         MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP
33         with MIPS_SYNC_OLD_OP_12_AND.
34         (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP
35         with MIPS_SYNC_NEW_OP_12_AND.
36         (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with
37         MIPS_SYNC_OP_12_XOR, reduce length attribute to 40.
38         (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12
39         macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with
40         MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40.
41         (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with
42         MIPS_SYNC_NEW_OP_12_XOR.
43         * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
44         MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP,
45         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12,
46         MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT,
47         MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten
48         to implement new __sync_nand semantics.
49         (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and
50         remove third parameter.
51         (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
52         MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed.
53         (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND.
54         (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR.
55         (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND.
56         (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR.
57         (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND.
58         (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR
59
60 2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>
61
62         * graphite.c (graphite_transform_loops): Always call find_transform ()
63         in ENABLE_CHECKING.  So we test these code paths, even if we do not
64         generate code.
65
66 2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>
67
68         * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
69
70 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
71
72         PR middle-end/38454
73         * function.h (struct function): Add always_inline_functions_inlined.
74         * ipa-inline.c (cgraph_early_inlining): Set it to true.
75         * tree-optimize.c (execute_fixup_cfg): Likewise.
76         * builtins.c (avoid_folding_inline_builtin): New function.
77         (fold_call_expr): Don't optimize always_inline builtins before
78         inlining.
79         (fold_call_stmt): Likewise.
80         (fold_builtin_call_array): Likewise.  Don't call
81         fold_builtin_varargs for BUILT_IN_MD builtins.
82
83         PR tree-optimization/37416
84         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR.
85
86 2008-12-09  Janis Johnson  <janis187@us.ibm.com>
87
88         * doc/sourcebuild.texi (Test Directives): Fix formatting.
89
90 2008-12-09  Vladimir Makarov  <vmakarov@redhat.com>
91
92         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
93
94         * doc/invoke.texi (-fira-region): Describe new option.
95         (-fira-algorithm): Change the values.
96
97         * ira-conflicts.c (build_conflict_bit_table,
98         build_allocno_conflicts): Use ira_reg_classes_intersect_p.
99         (ira_build_conflicts): Use flag flag_ira_region instead of
100         flag_ira_algorithm.  Prohibit usage of callee-saved likely spilled
101         base registers for allocnos crossing calls.
102
103         * flags.h (enum ira_algorithm): Redefine.
104         (enum ira_region): New.
105         (flag_ira_region): New.
106
107         * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
108         instead of flag_ira_algorithm.
109
110         * toplev.c (flag_ira_algorithm): Change the initial value.
111         (flag_ira_region): New.
112
113         * ira-int.h (ira_reg_classes_intersect_p,
114         ira_reg_class_super_classes): New.
115
116         * ira-color.c (update_copy_costs): Use
117         ira_reg_classes_intersect_p.  Use right class to find hard reg
118         index.
119         (update_conflict_hard_regno_costs): Ditto.  Add a new parameter.
120         (assign_hard_reg): Ditto.  Pass additional argument to
121         update_conflict_hard_regno_costs.  Do not uncoalesce for priority
122         coloring.
123         (allocno_priorities, setup_allocno_priorities,
124         allocno_priority_compare_func): Move before color_allocnos.
125         (color_allocnos): Add priority coloring.  Use flag flag_ira_region
126         instead of flag_ira_algorithm.
127         (move_spill_restore): Check classes of the same reg allocno from
128         different regions.
129         (update_curr_costs): Use ira_reg_classes_intersect_p.
130         (ira_reassign_conflict_allocnos): Ditto.
131
132         * opts.c (decode_options): Always set up flag_ira.  Set up
133         flag_ira_algorithm.  Warn CB can not be used for architecture.
134         (common_handle_option): Modify code for -fira-algorithm.  Add code
135         to process -fira-region.
136
137         * ira-lives.c (update_allocno_pressure_excess_length): Process
138         superclasses too.
139         (set_allocno_live, clear_allocno_live, mark_reg_live,
140         mark_reg_dead, process_bb_node_lives): Ditto.
141
142         * ira-emit.c (ira_emit): Fix insn codes.
143         
144         * ira-build.c (propagate_allocno_info): Use flag flag_ira_region
145         instead of flag_ira_algorithm.
146         (allocno_range_compare_func): Ignore classes for priority
147         coloring.
148         (setup_min_max_conflict_allocno_ids): Ditto.
149         (ira_flattening): Use ira_reg_classes_intersect_p.
150
151         * genpreds.c (write_enum_constraint_num): Output
152         CONSTRAINT__LIMIT.
153         
154         * common.opt (fira-algorithm): Modify.
155         (fira-region): New.
156
157         * ira.c (setup_class_hard_regs): Initialize.
158         (setup_cover_and_important_classes): Modify code setting class
159         related info for priority coloring.
160         (setup_class_translate): Ditto.
161         (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
162         (setup_reg_class_intersect_union): Rename to
163         setup_reg_class_relations.  Add code for setting up new variables.
164         (find_reg_class_closure): Do not check targetm.ira_cover_classes.
165         (ira): Use flag flag_ira_region instead of flag_ira_algorithm.
166
167         * ira-costs.c (common_classes): New.
168         (print_costs): Use flag flag_ira_region instead of
169         flag_ira_algorithm.
170         (find_allocno_class_costs): Ditto.  Use common_classes.  Translate
171         alt_class.
172         (ira_costs): Allocate/deallocate common_classes.
173         
174         * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
175         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
176         R02A_REGS.
177
178         * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
179         smallest_mode_for_size.
180         
181 2008-12-10  Ben Elliston  <bje@au.ibm.com>
182
183         * config/rs6000/linux-unwind.h (get_regs): Constify casts.
184
185 2008-12-09  Jan Hubicka  <jh@suse.cz>
186
187         * predict.c (estimate_bb_frequencies): Fix test if profile is present.
188
189 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
190
191         PR tree-optimization/35468
192         * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant
193         string on LHS.
194
195 2008-12-09  Richard Guenther  <rguenther@suse.de>
196
197         PR tree-optimization/38445
198         * tree-ssa-structalias.c (emit_pointer_definition): Only visit
199         names once.
200         (emit_alias_warning): Adjust.
201
202 2008-12-09  Andrew Haley  <aph@redhat.com>
203
204         * fixed-value.c (do_fixed_add): Add comment.
205         * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
206         * builtins.c (fold_builtin_sqrt): Likewise.
207
208 2008-12-09  Kai Tietz  <kai.tietz@onevision.com>
209
210         PR/38366
211         * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
212         case.
213         * calls.c (nitialize_argument_information): Add fntype argument 
214         and use it for calls.promote_function_args.
215         (expand_call): Pass fntype to aggregate_value_p if no fndecl
216         available and pass additional fntype to
217         initialize_argument_information.
218         * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
219         to get function abi type.
220         (init_cumulative_args): Use for abi kind detection fntype, when no
221         fndecl is available.
222
223 2008-12-09  Andreas Krebbel  <krebbel1@de.ibm.com>
224
225         * config/s390/s390.md (movti, movdi_64, movdi_31,
226           *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31,
227           *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove
228           Q->Q alternative.
229           (Integer->BLKmode splitter): Removed.
230
231 2008-12-08  Uros Bizjak  <ubizjak@gmail.com>
232
233         * config/alpha/alpha.c (alpha_set_memflags): Process memory
234         references in full insn sequence.
235
236 2008-12-09  Jason Merrill  <jason@redhat.com>
237
238         * gimplify.c (gimplify_init_constructor): Revert to using < rather
239         than <= for sparseness test.
240
241         PR c++/38410
242         * gimplify.c (gimplify_init_constructor): Don't write out a static
243         copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse
244         initializers.
245
246 2008-12-09 Tobias Grosser  <grosser@fim.uni-passau.de>
247
248         PR middle-end/38084
249         Fix testsuite/gfortran.dg/graphite/id-3.f90.
250         * graphite.c (scopdet_basic_block_info): Fix bug that found some
251         regions more than once.
252         * testsuite/gfortran.dg/graphite/id-3.f90: New.
253         * gcc/testsuite/gcc.dg/graphite/pr38084.c: New.
254
255 2008-12-09  Ben Elliston  <bje@au.ibm.com>
256
257         * emutls.c (__emutls_get_address): Prototype.
258         (__emutls_register_common): Likewise.
259
260         * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast.
261
262 2008-12-09  Ben Elliston  <bje@au.ibm.com>
263
264         * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v.
265
266 2008-12-08  Steve Ellcey  <sje@cup.hp.com>
267
268         * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant.
269         (nonlocal_goto_receiver): New instruction.
270
271 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
272
273         PR c/35443
274         * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR.
275
276         PR c/35442
277         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
278         VIEW_CONVERT_EXPR the same as CASE_CONVERT.
279
280 2008-12-08  Richard Henderson  <rth@redhat.com>
281
282         PR 38240
283         * tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
284         (SET_TYPE_MODE): New.
285         * c-decl.c (parser_xref_tag): Use it.
286         (finish_enum): Likewise.
287         * tree.c (build_pointer_type_for_mode): Likewise.
288         (build_reference_type_for_mode, build_index_type): Likewise.
289         (build_range_type, make_vector_type): Likewise.
290         (build_common_tree_nodes_2): Likewise.
291         * stor-layout.c (compute_record_mode): Likewise.
292         (finalize_type_size, layout_type, make_fract_type): Likewise.
293         (make_accum_type, initialize_sizetypes): Likewise.
294         (vector_type_mode): New.
295         * function.c (allocate_struct_function): Call
296         invoke_set_current_function_hook before querying anything else.
297
298         * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
299
300 2008-12-08  Luis Machado  <luisgpm@br.ibm.com>
301
302         * alias.c (find_base_term): Synch LO_SUM handling with what
303         find_base_value does.
304
305 2008-12-08  Andrew Haley  <aph@redhat.com>
306             Kamaraju Kusumanchi <raju.mailinglists@gmail.com>
307
308         * gimple.h (gimple_build_try): Fix declaration.
309
310         * builtins.c (fold_builtin_sqrt): Don't use a conditional operator.
311         * fixed-value.c (do_fixed_add): Likewise.
312         * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise.
313
314 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
315
316         PR middle-end/36802
317         * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl
318         on parallel and task contexts.
319
320 2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>
321
322         * gimple.c (recalculate_side_effects) <tcc_constant>: New case.
323
324 2008-12-07  Richard Guenther  <rguenther@suse.de>
325
326         PR tree-optimization/38405
327         * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to
328         not sign-extend truth values.
329
330 2008-12-07  Eric Botcazou  <ebotcazou@adacore.com>
331
332         * tree-sra.c (scalarize_use): Create another temporary with the proper
333         type for signed types in the use_all && !is_output bitfield case.
334
335 2008-12-06  Steven Bosscher  <steven@gcc.gnu.org>
336
337         PR rtl-optimization/36365
338         * df-core.c (df_worklist_dataflow_overeager): Remove.
339         (df_worklist_dataflow): Don't call it, use double-queue only.
340         * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove.
341
342 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
343
344         PR middle-end/38428
345         * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
346         gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
347
348 2008-12-07  Ben Elliston  <bje@au.ibm.com>
349
350         * gthr-single.h (__gthread_once): Adjust prototype to match all
351         other gthreads models.
352
353 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
354
355         * config/i386/i386.c (override_options): Use CPU_AMDFAM10
356         instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
357
358         PR middle-end/38422
359         * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
360         operands to mult_type if it isn't narrower than op0's type.
361
362 2008-12-06  Jan Hubicka  <jh@suse.cz>
363             Jakub Jelinek <jakub@redhat.com>
364
365         PR tree-optimization/38074
366         * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
367         entry frequency.
368         * predict.c (combine_predictions_for_bb): Ignore predictor predicting
369         in both dirrection for first match heuristics.
370         (tree_bb_level_predictions): Disable noreturn heuristic when there
371         is no returning path.
372
373 2008-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
374
375         PR rtl-optimization/38272
376         * reload1.c (choose_reload_regs): Keep reload_spill_index correct
377         in all cases.
378
379 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
380
381         PR c++/35336
382         * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
383         (pp_c_expression): Likewise.
384
385 2008-12-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
386
387         PR c/38416
388         * c-parser.c (struct c_token): Make pragma_kind 8 bits.
389
390 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
391
392         PR middle-end/37248
393         * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
394         arguments to HOST_WIDE_INT.  If type has different signedness
395         than unsignedp or different precision from bitsize, create
396         the right type for BIT_FIELD_REF and cast to type.
397         (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
398
399         Revert:
400         2008-03-05  Richard Guenther  <rguenther@suse.de>
401         PR c++/35336
402         * fold-const.c (fold_truthop): Remove code generating
403         BIT_FIELD_REFs of structure bases.
404         (fold_binary): Likewise.
405         (make_bit_field_ref): Remove.
406         (optimize_bit_field_compare): Remove.
407         (all_ones_mask_p): Remove.
408
409 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
410
411         * tree-sra.c (sra_explode_bitfield_assignment): Always
412         call unsigned_type_for, if the precision is higher than
413         needed, call build_nonstandard_integer_type.
414
415         PR debug/38367
416         * function.c (assign_parm_find_stack_rtl): If promoted_mode
417         is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
418         big endian.
419
420         PR middle-end/38338
421         * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
422         only if internal_arg_pointer is a non-virtual pseudo.
423
424 2008-12-05  Joseph Myers  <joseph@codesourcery.com>
425
426         * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
427         TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
428         * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
429
430 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
431
432         PR tree-optimization/37716
433         * gimplify.c (gimplify_expr): Allow COND_EXPR if
434         gimplify_ctxp->allow_rhs_cond_expr.
435
436 2008-12-05  Uros Bizjak  <ubizjak@gmail.com>
437
438         * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
439         VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
440
441         (alpha_emit_conditional_branch): Do not generate direct branch
442         for UNORDERED comparisons.
443
444 2008-12-05  Andreas Schwab  <schwab@suse.de>
445
446         * config/rs6000/linux-unwind.h (frob_update_context): Check for
447         NULL lr.
448
449 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
450
451         PR c/38408
452         * fold-const.c (fold_checksum_tree): Change buf type to union
453         tree_node.
454
455 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
456
457         PR bootstrap/38262
458         * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
459         (BACKENDLIBS): New.
460         (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
461
462 2008-12-05  Ben Elliston  <bje@au.ibm.com>
463
464         * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
465         comma_loc.
466         (c_parser_initelt): Initialise des_loc and ellipsis_loc.
467
468 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
469             Gary Funck  <gary@intrepid.com>
470
471         * cse.c (lookup_as_function): Delete mode frobbing code.
472         (equiv_constant): Re-implement it there for SUBREGs.
473
474 2008-12-04  Richard Guenther  <rguenther@suse.de>
475
476         PR middle-end/36509
477         * Makefile.in (tree-ssa-alias-warnings.o): Remove.
478         (tree-ssa-structalias.o): Remove errors.h dependency.
479         (tree-ssa-reassoc.o): Likewise.
480         * tree-ssa-reassoc.c: Do not include errors.h.
481         * tree-ssa-alias-warnings.c: Remove.
482         * tree-ssa-alias.c (compute_may_aliases): Remove call to
483         strict_aliasing_warning_backend.
484         * tree-ssa-structalias.c (emit_pointer_definition): New function.
485         (emit_alias_warning): Likewise.
486         (set_uids_in_ptset): Warn for clear cases of type-punning.
487         * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
488         on INDIRECT_REFs.
489
490 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
491
492         * cse.c (equiv_constant): Fix pasto.
493
494 2008-12-04  Nick Clifton  <nickc@redhat.com>
495
496         * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
497         * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
498         formatting of quotes.
499
500 2008-12-04  Jakub Jelinek  <jakub@redhat.com>
501
502         PR middle-end/38371
503         * fold-const.c (fold_checksum_tree): Allow modification of
504         TYPE_NEXT_VARIANT.
505
506 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
507
508         PR middle-end/38360
509         * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
510         have the right number of arguments.
511
512 2008-12-03  Richard Guenther  <rguenther@suse.de>
513
514         PR middle-end/36326
515         * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
516         non-BLKmode types.
517
518 2008-12-03  Tomas Bily  <tbily@suse.cz>
519
520         PR middle-end/38250
521         * tree-loop-distribution.c (build_size_arg): New function.
522         (generate_memset_zero): Checks if dr_analyze_innermost succeed.
523         Reorganized generating of stmts.
524         * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
525         * tree-data-ref.c (dr_analyze_innermost): Returns bool.
526         Indicate if analysis succeed.
527         * tree-data-ref.h (dr_analyze_innermost): Returns bool.
528         * tree-predcom.c (valid_initializer_p, find_looparound_phi):
529         Uses new definition of dr_analyze_innermost.
530
531 2008-12-03  Ben Elliston  <bje@au.ibm.com>
532
533         * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
534
535 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
536
537         PR tree-optimization/37716
538         * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
539         all the needed operations as trees and gimplify_assign it to dst.
540
541         PR target/37610
542         * configure.ac (gcc_cv_readelf): Look for readelf.
543         (gcc_cv_as_cfi_advance_working): Check for working
544         cfi advances with code alignment factor > 1.
545         (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
546         don't work properly.
547         * configure: Regenerated.
548
549 2008-12-03  Eric Botcazou  <ebotcazou@adacore.com>
550             Jakub Jelinek  <jakub@redhat.com>
551             Andrew Pinski  <andrew_pinski@playstation.sony.com>
552
553         PR rtl-optimization/38281
554         * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
555         set it to NULL_RTX afterwards.
556
557         * emit-rtl.c (set_insn_deleted): Fix formatting.
558
559 2008-12-02  Richard Sandiford  <rdsandiford@googlemail.com>
560
561         * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
562         error return value.
563         * config/mips/mips.md (IMOVE32): New mode iterator.
564         (movsi): Generalize with IMOVE32.
565         (*movsi_internal): Likewise.
566         (*mov<mode>_mips16): Likewise.
567         (*lwxs): Likewise.
568
569 2008-12-02  Nathan Sidwell  <nathan@codesourcery.com>
570             Maxim Kuvyrkov  <maxim@codesourcery.com>
571
572         * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
573         PC-relative addressing when compiling for uclinux PIC.
574         (__cmpdf_internal, __cmpsf_internal): Hide.
575         (__cmpdf, __cmpsf): Use PIC call sequence.
576
577 2008-12-02  Andreas Tobler  <a.tobler@schweiz.org>
578             Jack Howarth <howarth@bromo.med.uc.edu>
579
580         * config/i386/t-darwin64: Add m32 multilib support.
581
582 2008-12-02  Jack Howarth  <howarth@bromo.med.uc.edu>
583
584         * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
585
586 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
587
588         PR middle-end/38343
589         * builtins.c (fold_builtin_memory_op): Convert len to sizetype
590         before using it in POINTER_PLUS_EXPR.
591
592 2008-12-02  Richard Guenther  <rguenther@suse.de>
593
594         PR tree-optimization/38359
595         * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
596         non-negative x.
597
598 2008-12-02  Martin Jambor  <mjambor@suse.cz>
599
600         PR middle-end/37861
601         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
602         for INDIRECT_REFs.
603         (forward_propagate_addr_into_variable_array_index): Check that the
604         offset is not computed from a MULT_EXPR, use is_gimple_assign rather
605         than the gimple code directly.
606
607 2008-12-02  Ben Elliston  <bje@au.ibm.com>
608
609         * config/spu/float_disf.c (__floatdisf): Prototype.
610         * config/spu/float_unsdisf.c (__float_undisf): Likewise.
611         * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
612         * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
613
614 2008-12-02  DJ Delorie  <dj@redhat.com>
615
616         * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
617         (DWARF_CIE_DATA_ALIGNMENT): Define.
618
619         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
620         Invert add/sub for INCOMING_FRAME_SP_OFFSET.
621         (xstormy16_expand_prologue): Likewise.
622         (xstormy16_expand_builtin_va_start): Likewise.
623         (xstormy16_gimplify_va_arg_expr): Likewise.
624
625 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
626
627         PR middle-end/38343
628         * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
629         potentially returned from folding memcpy.
630         (expand_builtin_stpcpy_args): Similarly for folding strcpy.
631         (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
632
633 2008-12-02  Danny Smith  <dannysmith@users.sourceforge.net>
634
635         PR target/38054
636         * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
637         decoration of function RTL names here on Ada language.
638
639 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
640
641         PR rtl-optimization/38280
642         * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
643         ira_rebuild_regno_allocno_list): New functions.
644         (regno_allocnos): New static variable.
645         (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
646         Call ira_rebuild_regno_allocno_list.
647
648 2008-12-01  David Daney  <ddaney@caviumnetworks.com>
649             Adam Nemet  <anemet@caviumnetworks.com>
650
651         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
652         LINUX_DRIVER_SELF_SPECS.
653
654 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
655
656         PR rtl-optimization/37514
657         * reload1.c (reload_as_needed): Invalidate reg_last_reload
658         from previous insns.
659
660 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
661
662         PR c++/38348
663         * c-omp.c (c_finish_omp_for): Only transform pointer
664         ++ or -- into MODIFY_EXPR if second argument is non-NULL.
665
666         PR rtl-optimization/38245
667         * tree-vrp.c (abs_extent_range): New function.
668         (extract_range_from_binary_expr): Compute range
669         for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
670         or includes zero or if vr1 is VR_RANGE and op0 has some
671         other range.
672
673 2008-12-01  Uros Bizjak  <ubizjak@gmail.com>
674
675         PR middle-end/37908
676         * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
677         case by calculating ~(new_reg & val) instead of (~new_reg & val).
678         * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
679         to (not:I48MODE (and:I48MODE (...))).
680         (sync_old_nand<mode>): Ditto.
681         (sync_new_nand<mode>): Ditto.
682
683 2008-12-01  Nick Clifton  <nickc@redhat.com>
684
685         * config/stormy16/stormy16.md (CARRY_REG): New constant.
686         Replace uses of the "y" register class with direct references to
687         the CARRY_REG register.
688         * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
689         register with clobbers of the carry register.
690         (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
691         (xstormy16_split_cbranch): Remove redundant carry parameter.
692         (xstormy16_expand_arith): Likewise.
693         * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
694         (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
695         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
696         (CARRY_REGNUM): Define.
697         * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
698         Update prototype.
699         (xstormy16_expand_arith): Likewise.
700
701 2008-12-01  Chen Liqin  <liqin.chen@sunplusct.com>
702
703         * config/score/score.h (IRA_COVER_CLASSES): Define.
704
705 2008-11-30  Eric Botcazou  <ebotcazou@adacore.com>
706
707         PR target/38287
708         * config/sparc/sparc.md (divsi3 expander): Remove constraints.
709         (divsi3_sp32): Add new alternative with 'K' for operand #2.
710         (cmp_sdiv_cc_set): Factor common string.
711         (udivsi3_sp32): Add new alternative with 'K' for operand #2.
712         Add TARGET_V9 case.
713         (cmp_udiv_cc_set): Factor common string.
714
715 2008-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
716
717         PR middle-end/38283
718         * varasm.c (emutls_finish): Fix common registration.
719
720 2008-11-29  Jakub Jelinek  <jakub@redhat.com>
721
722         PR target/29987
723         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
724
725 2008-11-29  David Edelsohn  <edelsohn@gnu.org>
726
727         * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
728         operand wrapped in NOT.  Emit NAND as (ior (not X) (not Y)).
729         (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
730         * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
731         Call rs6000_emit_sync with CODE=NOT and unmodified operands.
732         Ignore sub-word case for now.
733         (sync_nand<mode>_internal): Represent NAND in RTL.
734         (sync_old_nand<mode): Same.
735         (sync_old_name<mode>_internal): Same.
736         (sync_new_nand<mode>): Same.
737         (sync_new_nand<mode>_internal): Same.
738         (sync_boolcshort_internal): Expect NAND.
739
740 2008-11-28  Richard Guenther  <rguenther@suse.de>
741
742         PR tree-optimization/37955
743         PR tree-optimization/37742
744         * tree-vect-transform.c (vectorizable_store): Remove assert for
745         compatible aliases.
746         (vectorizable_load): Likewise.
747
748 2008-11-27  Richard Guenther  <rguenther@suse.de>
749
750         * tree-ssa-structalias.c (intra_create_variable_infos): Make
751         a constraint for the static chain parameter.
752
753 2008-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>
754
755         * config/bfin/bfin.opt (micplb): New option.
756         * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
757         * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
758         ENABLE_WA_INDIRECT_CALLS): New macros.
759         * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
760         all 54x CPUs.
761         (indirect_call_p): New function.
762         (workaround_speculation): Handle anomaly 05-00-0426 when
763         ENABLE_WA_INDIRECT_CALLS is true.
764         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
765         __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
766         * doc/invoke.texi (Blackfin Options): Document -micplb.
767
768 2008-11-26  DJ Delorie  <dj@redhat.com>
769
770         * config/m32c/mov.md ("extendhipsi2"): New.
771
772         * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
773
774         * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
775         * config/m32c/mov.md (zero_extendqihi2): Likewise.
776
777 2008-11-26  Adam Nemet  <anemet@caviumnetworks.com>
778
779         * config/mips/mips.md (clear_hazard): Rename to
780         clear_hazard_<mode>.  Use mode-specific addition.
781         (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
782         or gen_clear_hazard_di depending on the size of Pmode.
783
784 2008-11-26  DJ Delorie  <dj@redhat.com>
785
786         * configure.ac: Test m32c-elf-gas for .loc.
787         * configure: Likewise.
788
789 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
790
791         PR testsuite/28870
792         * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
793         dg-timeout-factor.
794
795 2008-11-26  Uros Bizjak  <ubizjak@gmail.com>
796
797         * config/i386/sync.md (memory_barrier_nosse): Disable also for
798         TARGET_64BIT.  Remove special asm template for TARGET_64BIT case.
799         (memory_barrier): Do not generate memory_barrier_nosse instruction
800         for TARGET_64BIT.
801         * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
802
803 2008-11-26  Fredrik Unger  <fred@tree.se>
804
805         * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
806         function name from __floatundisf.
807         * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
808         DFtype.
809
810 2008-11-25  Daniel Berlin  <dberlin@dberlin.org>
811             Richard Guenther  <rguenther@suse.de>
812
813         PR tree-optimization/37869
814         * tree-ssa-structalias.c (struct constraint_graph): Remove
815         pt_used and number_incoming members.
816         (build_pred_graph): Do not allocate them.
817         (condense_visit): Do not use them.
818         (label_visit): Likewise.
819         (free_var_substitution_info): Do not free them.
820
821 2008-11-25  Vladimir Makarov  <vmakarov@redhat.com>
822
823         * doc/invoke.texi (ira-max-loops-num): Change semantics.
824
825         * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
826
827         * ira-color.c (allocno_spill_priority): New function.
828         (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
829         Print more info about the spilled allocno.
830         (push_allocnos_to_stack): Use allocno_spill_priority.  Add more
831         checks on bad spill.
832
833         * ira-build.c (loop_node_to_be_removed_p): Remove.
834         (loop_compare_func, mark_loops_for_removal): New functions.
835         (remove_uneccesary_loop_nodes_from_loop_t): Use member
836         to_remove_p.
837         (remove_unnecessary_allocnos): Call mark_loops_for_removal.
838
839         * ira.c (ira): Don't change flag_ira_algorithm.
840
841         * params.def (ira-max-loops-num): Change the value.
842
843 2008-11-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
844
845         * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
846         Disable unsupported alternative for ColdFire,
847         add new alternative that ColdFire can handle.
848
849 2008-11-25  Eric Botcazou  <ebotcazou@adacore.com>
850
851         * regrename.c (merge_overlapping_regs): Add registers artificially
852         defined at the top of the basic block to the set of live ones just
853         before the first insn.
854
855 2008-11-25  H.J. Lu  <hongjiu.lu@intel.com>
856             Joey Ye  <joey.ye@intel.com>
857
858         PR middle-end/37843
859         * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
860         false if we need to align the outgoing stack.
861         (ix86_update_stack_boundary): Check parm_stack_boundary.
862
863 2008-11-25  Richard Guenther  <rguenther@suse.de>
864
865         PR middle-end/38151
866         PR middle-end/38236
867         * tree-ssa-alias.c (struct alias_info): Remove written_vars.
868         Remove dereferenced_ptrs_store and dereferenced_ptrs_load
869         in favor of dereferenced_ptrs.
870         (init_alias_info): Adjust.
871         (delete_alias_info): Likewise.
872         (compute_flow_insensitive_aliasing): Properly
873         include all aliased variables.
874         (update_alias_info_1): Use dereferenced_ptrs.
875         (setup_pointers_and_addressables): Likewise.
876         (get_smt_for): Honor ref-all pointers and pointers with known alias
877         set properly.
878         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
879
880 2008-11-25  Uros Bizjak  <ubizjak@gmail.com>
881
882         PR target/38254
883         * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
884         (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
885
886 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
887
888         * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
889
890 2008-11-24  Richard Sandiford  <rdsandiford@googlemail.com>
891
892         * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
893
894 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
895
896         PR target/35018
897         * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
898         (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
899
900 2008-11-24  Uros Bizjak  <ubizjak@gmail.com>
901
902         * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
903         UNSPECV_CMPXCHG_[12].
904         * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
905         UNSPECV_CMPXCHG_[12].
906
907         PR target/36793
908         * config/i386/sync.md (memory_barrier): New expander.
909
910 2008-11-24  Jakub Jelinek  <jakub@redhat.com>
911
912         PR middle-end/37135
913         * dse.c (find_shift_sequence): Optimize extraction from a constant.
914
915 2008-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
916
917         * pa.c (function_arg): Revert 2008-10-26 change.
918
919 2008-11-23  Helge Deller  <deller@gmx.de>
920
921         * pa/linux-atomic.c (EBUSY): Define if not _LP64.
922         (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
923         succeeded and lws_ret is not equal to oldval.
924
925 2008-11-23  Kaz Kojima  <kkojima@gcc.gnu.org>
926
927         * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
928
929 2008-11-22  Andreas Schwab  <schwab@suse.de>
930
931         * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
932         -dA and -dP.
933
934 2008-11-22  Adam Nemet  <anemet@caviumnetworks.com>
935
936         * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
937         Use constant 1 as the operand.
938         * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
939         Rename gen_rdhwr to gen_rdhwr_synci_step_si or
940         gen_rdhwr_synci_step_di depending on the size of Pmode.
941
942 2008-11-22  Uros Bizjak  <ubizjak@gmail.com>
943
944         PR target/38222
945         * config/i386/i386.md (SWI248): New mode iterator.
946         (SWI32): Remove mode iterator.
947         (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
948         popcounthi2 insn patterns. Macroize pattern using SWI248 mode
949         iterator.  Generate popcnt mnemonic without mode extensions
950         for Darwin x86 targets.
951         (*popcount<mode>2_cmp): Ditto.
952         (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
953         extensions for Darwin x86 targets.
954
955 2008-11-22  Eric Botcazou  <ebotcazou@adacore.com>
956
957         * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
958         only if HAVE_AS_SPARC_UA_PCREL is defined.
959
960 2008-11-22  Richard Sandiford  <rdsandiford@googlemail.com>
961
962         * ira-costs.c (find_allocno_class_costs): Work out the maximum
963         allocno_costs value of the classees with the lowest total_costs
964         value.  Use this to set ALLOCNO_COVER_CLASS_COST here...
965         (setup_allocno_cover_class_and_costs): ...rather than here.
966         Use the ALLOCNO_COVER_CLASS_COST for all registers in the
967         preferred class.
968
969 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
970
971         PR middle-end/37323
972         * builtins.c (expand_builtin_apply_args): Emit sequence before
973         parm_birth_insn instead of after entry_of_function's first insn.
974
975         PR middle-end/37316
976         * function.c (assign_parm_remove_parallels): Pass
977         data->passed_type as third argument to emit_group_store.
978
979         PR target/37170
980         * final.c (mark_symbol_refs_as_used): New function.
981         * output.h (mark_symbol_refs_as_used): New prototype.
982         * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
983         (s390_output_pool_entry): Use mark_symbol_refs_as_used.
984         * config/arm/arm.md (consttable_4): Likewise.
985
986         PR target/37880
987         * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
988
989 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
990
991         PR middle-end/38200
992         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
993         propagate x = &a into *x = b if conversion from b to a's type is
994         useless.
995
996 2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
997
998         * caller-save.c (insert_one_insn): Take into account REG_INC notes
999         for the liveness computation of the new insn.
1000
1001 2008-11-21  DJ Delorie  <dj@redhat.com>
1002
1003         * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
1004         Moves to/from below100 space (W) can only use r0-r7.
1005
1006 2008-11-21  Paolo Carlini  <paolo.carlini@oracle.com>
1007
1008         PR other/38214
1009         * doc/invoke.texi (Optimization Options): Fix typo.
1010
1011 2008-11-21  H.J. Lu  <hongjiu.lu@intel.com>
1012             Xuepeng Guo  <xuepeng.guo@intel.com>
1013
1014         * config.gcc (extra_headers): For x86 and x86-64, remove
1015         gmmintrin.h, add immintrin.h and avxintrin.h.
1016
1017         * config/i386/gmmintrin.h: Renamed to ...
1018         * config/i386/avxintrin.h: This.  Issue an error if
1019         _IMMINTRIN_H_INCLUDED is undedined.
1020
1021         * config/i386/immintrin.h: New.
1022
1023 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
1024
1025         PR target/38208
1026         * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
1027         mode of PLUS, not mode of the eliminated register.
1028
1029 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
1030
1031         * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
1032         * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
1033         (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
1034         (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
1035         (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
1036         (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
1037         (*nand<mode>3): Rename to *andnot<mode>3.
1038         (*nandtf3): rename to *andnottf3.
1039         * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
1040         Use CODE_FOR_mmx_andnotv2si3.
1041         [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
1042         [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
1043         [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
1044         [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
1045         [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
1046
1047 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
1048
1049         PR middle-end/37908
1050         * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
1051         case by calculating ~(new_reg & val) instead of (~new_reg & val).
1052         * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
1053         to (not:IMODE (and:IMODE (...))).
1054         (sync_old_nand<mode>): Ditto.
1055         (sync_new_nand<mode>): Ditto.
1056
1057 2008-11-20  Joseph Myers  <joseph@codesourcery.com>
1058
1059         * config/arm/thumb2.md (thumb2_casesi_internal,
1060         thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
1061
1062 2008-11-20  Andreas Krebbel  <krebbel1@de.ibm.com>
1063
1064         * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
1065         nand to the changed 4.4 semantic.
1066
1067 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
1068
1069         PR middle-end/29215
1070         * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
1071         (fold_builtin_memory_op): Handle even the case where just one
1072         of src and dest is an address of a var decl component, using
1073         TYPE_REF_CAN_ALIAS_ALL pointers.  Remove is_gimple_min_invariant
1074         and readonly_data_expr src check.
1075         * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
1076         up warnings.
1077
1078         PR rtl-optimization/36998
1079         * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
1080         arguments.  Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
1081         (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
1082         stack_adjust_offset callers.
1083         (dwarf2out_stack_adjust): Likewise.  Handle insns in annulled
1084         branches properly.
1085         (compute_barrier_args_size): Handle insns in annulled branches
1086         properly.
1087
1088 2008-11-20  Uros Bizjak  <ubizjak@gmail.com>
1089
1090         PR target/38151
1091         * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
1092         Handle cases when integer argument crosses argument register boundary.
1093
1094 2008-11-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1095
1096         PR bootstrap/33100
1097         * config.gcc (i[34567]86-*-solaris2*): Don't include
1098         i386/t-crtstuff here.
1099         Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
1100         * config/i386/t-sol2: Move to libgcc/config/i386.
1101
1102 2008-11-20  Samuel Thibault  <samuel.thibault@ens-lyon.org>
1103
1104         PR driver/21706
1105         * tlink.c: Include "libiberty.h".
1106         (initial_cwd): Change type into char *.
1107         (tlink_init): Call getpwd instead of getcwd.
1108
1109 2008-11-19  Zdenek Dvorak  <ook@ucw.cz>
1110
1111         PR rtl-optimization/32283
1112         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
1113         of the induction variable to decide whether it may wrap.
1114         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
1115         initialization of the bound before the loop.
1116         * simplify-rtx.c (simplify_binary_operation_1): Add two
1117         simplifications regarding AND.
1118         (simplify_plus_minus): Only fail if no simplification is possible.
1119         * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
1120
1121 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
1122
1123         PR c++/36631
1124         * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
1125         checking until GIMPLE lowering.
1126         * gimple-low.c (check_call_args): New function.
1127         (lower_stmt) <case GIMPLE_CALL>: Call it.
1128
1129 2008-11-19  Adam Nemet  <anemet@caviumnetworks.com>
1130
1131         * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
1132         with the same type as the first operand of the AND expression.
1133
1134 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
1135
1136         PR bootstrap/37859
1137         * ira-int.h (struct ira_loop_tree_node): New member
1138         entered_from_non_parent_p.
1139
1140         * ira-color.c (print_loop_title): Print loop bbs.
1141
1142         * ira-emit.c (entered_from_non_parent_p,
1143         setup_entered_from_non_parent_p): New functions.
1144         (not_modified_p): Rename to store_can_be_removed_p.  Check there
1145         is no side entries.
1146         (generate_edge_moves): Use store_can_be_removed_p instead of
1147         not_modified_p.
1148         (ira_emit): Call setup_entered_from_non_parent_p.
1149
1150         * ira-build.c (copy_info_to_removed_store_destinations):
1151         Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
1152         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
1153         (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
1154         update all accumulated attributes.
1155
1156 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
1157
1158         PR bootstrap/37790
1159         * ira-int.h (ira_copy_allocno_live_range_list,
1160         ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
1161         ira_finish_allocno_live_range_list): New prototypes.
1162         (ira_allocno_live_ranges_intersect_p,
1163         ira_pseudo_live_ranges_intersect_p): Remove.
1164
1165         * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
1166         ira_pseudo_live_ranges_intersect_p): Rename to
1167         allocnos_have_intersected_live_ranges_p and
1168         pseudos_have_intersected_live_ranges_p.  Move them from here to ...
1169
1170         * ira-color.c: ... here
1171         (coalesced_allocno_conflict_p): Use
1172         allocnos_have_intersected_live_ranges_p.
1173         (coalesced_allocnos_living_at_program_points,
1174         coalesced_allocnos_live_at_points_p,
1175         set_coalesced_allocnos_live_points): Remove.
1176         (slot_coalesced_allocnos_live_ranges,
1177         slot_coalesced_allocno_live_ranges_intersect_p,
1178         setup_slot_coalesced_allocno_live_ranges): New.
1179         (coalesce_spill_slots): Use ranges of coalesced allocnos.
1180         (ira_sort_regnos_for_alter_reg): Use
1181         allocnos_have_intersected_live_ranges_p.
1182         (ira_reuse_stack_slot): Use
1183         pseudos_have_intersected_live_ranges_p.
1184
1185         * global.c (pseudo_for_reload_consideration_p): Check
1186         flag_ira_share_spill_slots too.
1187
1188         * ira-build.c (copy_allocno_live_range_list): Rename to
1189         ira_copy_allocno_live_range_list.  Make it external.
1190         (merge_ranges): Rename to ira_merge_allocno_live_ranges.  Make it
1191         external.
1192         (ira_allocno_live_ranges_intersect_p): New.
1193         (ira_finish_allocno_live_range_list): New.
1194         (finish_allocno): Use it.
1195         (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
1196         (copy_info_to_removed_store_destinations): Ditto.  Use
1197         ira_copy_allocno_live_range_list.
1198         (ira_flattening): Use ira_merge_allocno_live_ranges.
1199
1200         * ira.c (too_high_register_pressure_p): New function.
1201         (ira): Switch off sharing spill slots if the pressure is too high.
1202
1203 2008-11-19  Richard Guenther  <rguenther@suse.de>
1204
1205         * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
1206         non-sizetype offsets if their precision matches that of the pointer.
1207         * expr.c (expand_expr_real_1): Always sign-extend the offset
1208         operand of a POINTER_PLUS_EXPR.
1209
1210 2008-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1211
1212         * config.gcc: Unobsolete mips-sgi-irix[56]*.
1213         (mips-sgi-irix[56]*): No need to use fixproto.
1214
1215 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1216             Paul Brook  <paul@codesourcery.com>
1217
1218         * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
1219         executable stack.
1220
1221 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
1222
1223         * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
1224
1225 2008-11-19  Razya Ladelsky  <razya@il.ibm.com>
1226
1227         PR target/38156
1228         * tree-parloops.c (loop_parallel_p): NULL vect_dump.
1229         (separate_decls_in_region): Create shared struct even when there
1230         are only reductions.
1231
1232 2008-11-19  Hariharan Sandanagobalane <hariharan@picochip.com>
1233
1234         * config/picochip/picochip.c (headers): Remove an unnecessary
1235         header file.
1236
1237 2008-11-19  Andrew Stubbs  <ams@codesourcery.com>
1238
1239         PR target/36133
1240         * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
1241         * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
1242         shift instructions.
1243         * config/m68k/m68k.md: Adjust all conditional branches that use the
1244         carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
1245
1246 2008-11-18  Uros Bizjak  <ubizjak@gmail.com>
1247
1248         PR target/37362
1249         * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
1250         is a register or zero operand in the correct mode before generating
1251         mtch1 insn or a register operand in the correct mode before generating
1252         mfch1 insn.
1253         (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
1254
1255 2008-11-18  Adam Nemet  <anemet@caviumnetworks.com>
1256
1257         * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
1258         (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
1259         mipsisa*-*-elf*.  Handle mipsisa64r2*.
1260         * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
1261         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1262         mips64r2.
1263         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
1264         * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1265         mips64r2.
1266         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.  Add mips64r2/mips16.
1267         Fix mips16 if mips64 or mips64r2 are multilib defaults.
1268         * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
1269         mips64r2.
1270
1271 2008-11-18  Jakub Jelinek  <jakub@redhat.com>
1272
1273         PR target/38130
1274         * config/i386/i386.md (allocate_stack_worker_32,
1275         allocate_stack_worker_64): Don't use match_dup between input and
1276         output operand.
1277         (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
1278         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1279
1280 2008-11-18  Kai Tietz  <kai.tietz@onevision.com>
1281
1282         * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
1283         is forced when trying to do a symbol link for it.
1284
1285 2008-11-17  Adam Nemet  <anemet@caviumnetworks.com>
1286
1287         * expmed.c (extract_bit_field_1): Also use a temporary and
1288         convert_extracted_bit_field when the conversion from ext_mode to
1289         the target mode requires explicit truncation.
1290
1291 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
1292
1293         * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
1294         Tweak formatting.
1295         * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
1296         registers when not optimizing.
1297
1298 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
1299
1300         * config/mips/mips.md (*mul_acc_si): Remove middle alternative
1301         and its associated define_split.  Expose the all-d alternative
1302         to the register allocator, but mark it with "?".  Mark the first
1303         alternative with "*?*?".
1304         (*mul_sub_si): Likewise.
1305         (*mul_acc_si_r3900): New pattern.
1306
1307 2008-11-17  Jakub Jelinek  <jakub@redhat.com>
1308
1309         PR middle-end/38140
1310         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
1311         propagating x = &a into *x = b, add a cast if not useless
1312         type conversion or don't optimize if another stmt would be
1313         needed.
1314
1315 2008-11-17  Uros Bizjak  <ubizjak@gmail.com>
1316
1317         PR middle-end/37908
1318         * optabs.c (expand_sync_operation): Properly handle NAND case
1319         by calculating ~(t1 & val) instead of (~t1 & val).
1320         * builtins.c (expand_builtin_sync_operation): Warn for changed
1321         semantics in NAND builtins.
1322         * c.opt (Wsync-nand): New warning option.  Describe -Wsync-nand.
1323
1324         * doc/invoke.texi (Warning options): Add Wsync-nand.
1325         * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
1326         __sync_fetch_and_nand builtin operation in the example.  Add a note
1327         about changed semantics in GCC 4.4.
1328         [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
1329         operation in the example.  Add a note about changed semantics in
1330         GCC 4.4.
1331
1332 2008-11-16  Jan Hubicka  <jh@suse.cz>
1333
1334         * cgraph.c (cgraph_function_body_availability): Fix test of externally
1335         visible.
1336
1337 2008-11-16  Joshua Kinard  <kumba@gentoo.org>
1338
1339         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
1340         to -mips4.
1341
1342 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
1343
1344         PR target/38052
1345         * config/mips/mips.c (mips_cfun_call_saved_reg_p)
1346         (mips_cfun_might_clobber_call_saved_reg_p): New functions,
1347         split out from...
1348         (mips_save_reg_p): ...here.  Always consult TARGET_CALL_SAVED_GP
1349         rather than call_really_used_regs when handling $gp.
1350
1351 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
1352
1353         PR target/38052
1354         * config/mips/mips.c (machine_function): Update the comment
1355         above global_pointer.
1356         (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
1357         that a function doesn't need a global pointer.
1358         (mips_current_loadgp_style): Update accordingly.
1359         (mips_restore_gp): Likewise.
1360         (mips_output_cplocal): Likewise.
1361         (mips_expand_prologue): Likewise.
1362
1363 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1364
1365         * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
1366         parameter.  Use DImode for computing the number of registers.
1367         (function_arg): Adjust for above change.
1368         (function_value): Likewise.
1369
1370 2008-11-15  Zdenek Dvorak  <ook@ucw.cz>
1371
1372         PR tree-optimization/37950
1373         * tree-flow-inline.h (memory_partition): Return NULL when aliases were
1374         not computed for the current function.
1375
1376 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
1377
1378         PR target/38123
1379         * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
1380         gpr and other COMPONENT_REFs.
1381
1382 2008-11-15  Richard Guenther  <rguenther@suse.de>
1383
1384         PR tree-optimization/38051
1385         * tree-ssa-alias.c (update_alias_info_1): Manually find
1386         written variables.
1387
1388 2008-11-15  Joshua Kinard  <kumba@gentoo.org>
1389
1390         * doc/invoke.texi (-mfix-r10000): Document.
1391         * config/mips/mips.opt (mfix-r10000): New option.
1392         * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
1393         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
1394         (MIPS_COMPARE_AND_SWAP_12): Likewise.
1395         (MIPS_SYNC_OP): Likewise.
1396         (MIPS_SYNC_OP_12): Likewise.
1397         (MIPS_SYNC_OLD_OP_12): Likewise.
1398         (MIPS_SYNC_NEW_OP_12): Likewise.
1399         (MIPS_SYNC_OLD_OP): Likewise.
1400         (MIPS_SYNC_NAND): Likewise.
1401         (MIPS_SYNC_OLD_NAND): Likewise.
1402         (MIPS_SYNC_EXCHANGE): Likewise.
1403         (MIPS_SYNC_EXCHANGE_12): Likewise.
1404         (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
1405         delay slots.
1406         (MIPS_SYNC_NEW_NAND): Likewise.
1407         * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
1408         (mips_init_print_operand_punct): Treat '~' as a punctuation character.
1409         (mips_output_sync_loop): New function.
1410         (mips_override_options): Make -march=r10000 imply -mfix-r10000.
1411         Make -mfix-r10000 require branch-likely instructions.
1412         * config/mips/sync.md (sync_compare_and_swap<mode>): Use
1413         mips_output_sync_loop.
1414         (compare_and_swap_12): Likewise.
1415         (sync_add<mode>): Likewise.
1416         (sync_<optab>_12): Likewise.
1417         (sync_old_<optab>_12): Likewise.
1418         (sync_new_<optab>_12): Likewise.
1419         (sync_nand_12): Likewise.
1420         (sync_old_nand_12): Likewise.
1421         (sync_new_nand_12): Likewise.
1422         (sync_sub<mode>): Likewise.
1423         (sync_old_add<mode>): Likewise.
1424         (sync_old_sub<mode>): Likewise.
1425         (sync_new_add<mode>): Likewise.
1426         (sync_new_sub<mode>): Likewise.
1427         (sync_<optab><mode>): Likewise.
1428         (sync_old_<optab><mode>): Likewise.
1429         (sync_new_<optab><mode>): Likewise.
1430         (sync_nand<mode>): Likewise.
1431         (sync_old_nand<mode>): Likewise.
1432         (sync_new_nand<mode>): Likewise.
1433         (sync_lock_test_and_set<mode>): Likewise.
1434         (test_and_set_12): Likewise.
1435
1436 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
1437
1438         * gcc.c (cc1_options): Fix comment.
1439
1440 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
1441
1442         PR c++/37561
1443         * c-typeck.c (build_unary_op): Don't call get_unwidened.  Use
1444         argtype instead of result_type.
1445
1446 2008-11-14  Adam Nemet  <anemet@caviumnetworks.com>
1447
1448         * ira-int.h (struct ira_loop_tree_node): Improve comments for
1449         subloop_next/next and subloops/childen fields.
1450
1451 2008-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1452
1453         * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
1454         (STANDARD_INCLUDE_DIR): Redefine to "/include".
1455         (LOCAL_INCLUDE_DIR): Undefine.
1456         * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
1457
1458 2008-11-14  Vladimir Makarov  <vmakarov@redhat.com>
1459
1460         PR rtl-optimization/37397
1461         * ira-int.h (struct ira_allocno): New member bad_spill_p.
1462         (ALLOCNO_BAD_SPILL_P): New macro.
1463
1464         * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
1465
1466         * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
1467         (create_cap_allocno, propagate_allocno_info,
1468         remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
1469         (update_bad_spill_attribute): New function.
1470         (ira_build): Call it.
1471
1472         * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
1473
1474 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
1475
1476         PR tree-optimization/38104
1477         * gimplify.c (gimple_regimplify_operands): Add referenced vars
1478         before calling mark_symbols_for_renaming, not after it.
1479
1480 2008-11-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1481
1482         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
1483         (OVERRIDE_OPTIONS): Likewise.
1484
1485 2008-11-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
1486             Andrew Stubbs  <ams@codesourcery.com>
1487             Gunnar Von Boehn  <gunnar@genesi-usa.com>
1488
1489         PR target/36134
1490         * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
1491         the shorter LEA insn over ADD.L where possible.
1492
1493 2008-11-14  Thomas Schwinge  <tschwinge@gnu.org>
1494
1495         * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
1496         systems, which are assumend to always provide SSP-support in glibc.
1497         Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
1498         case.
1499         * configure: Regenerate.
1500
1501 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
1502
1503         PR middle-end/36125
1504         * function.c (gimplify_parameters): For callee copies parameters,
1505         move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
1506
1507 2008-11-13  Thomas Schwinge  <tschwinge@gnu.org>
1508
1509         PR target/28102
1510         * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
1511         x86 parts into the `i[34567]86-*-linux*' and parts that are
1512         independent of the processor architecture into the `*-*-linux*' cases.
1513         (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
1514         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
1515         (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
1516         [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
1517         * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
1518         (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
1519         (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
1520
1521 2008-11-13  Ruan Beihong  <ruanbeihong@gmail.com>
1522
1523         * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
1524         * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
1525         (ls2_idiv): Likewise idiv3.
1526         (ls2_prefetch): New reservation.
1527         * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
1528         * config/mips/mips.md (type): Add imul3nc and idiv3.
1529         (length): Handle idiv3.
1530         (any_mod): New code_iterator.
1531         (u): Handle MOD and UMOD.
1532         (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
1533         (prefetch): Handle TARGET_LOONGSON_2EF.
1534
1535 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
1536
1537         PR c++/27017
1538         * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
1539         (prune_unused_types_walk): Call it for non-perennial local classes.
1540         Set die_mark to 2 if recursing on children.  If die_mark is 1 on
1541         entry, just set it to 2 and recurse on children, don't walk attributes
1542         again.
1543
1544 2008-11-13  Martin Michlmayr  <tbm@cyrius.com>
1545
1546         * c-common.c (warn_about_parentheses): Add missing whitespace
1547         in warning.
1548
1549 2008-11-13  Paul Brook  <paul@codesourcery.com>
1550
1551         * doc/invoke.texi: Document --fix-cortex-m3.
1552         * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
1553         Cortex-M3 cpu is selected.
1554         (output_move_double): Avoid overlapping base register and first
1555         destination register when fix_cm3_ldrd.
1556         * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
1557
1558 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
1559
1560         PR bootstrap/38100
1561         * gimple.h (gimple_range_check_failed): Remove prototype.
1562         * gimple.c (gimple_check_failed): Don't check GCC_VERSION
1563         in guarding #if.
1564         (gimple_range_check_failed): Removed.
1565
1566 2008-11-13  Andrew Haley  <aph@redhat.com>
1567
1568         PR bootstrap/38088
1569         * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
1570         __LONG_LONG_MAX__.
1571
1572 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1573
1574         PR c++/36478
1575         Revert:
1576         2007-05-07  Mike Stump  <mrs@apple.com>
1577         * doc/invoke.texi (Warning Options): Document that -Wempty-body
1578         also checks for and while statements in C++.
1579
1580 2008-11-12  Dodji Seketeli  <dodji@redhat.com>
1581
1582         PR debug/27574
1583         * cgraph.h: New abstract_and_needed member to struct cgraph_node.
1584         * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
1585         - which clones are reachable - as "abstract and needed".
1586         * cgraph.c (cgraph_release_function_body):  If a node is
1587         "abstract and needed", do not release its DECL_INITIAL() content
1588         that will be needed to emit debug info.
1589
1590 2008-11-12  Steve Ellcey  <sje@cup.hp.com>
1591
1592         PR target/27880
1593         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
1594         to set HAVE_GETIPINFO.
1595         * aclocal.m4: Include ../config/unwind_ipinfo.m4.
1596         * configure: Regenerate.
1597         * config.in: Regenerate.
1598
1599 2008-11-12  Jack Howarth  <howarth@bromo.med.uc.edu>
1600
1601         PR bootstrap/38010
1602         * gcc/config.gcc: Use darwin9.h on darwin10 as well.
1603
1604 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1605
1606         Revert:
1607         2008-10-21  Jakub Jelinek  <jakub@redhat.com>
1608         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
1609
1610 2008-11-12  Jason Merrill  <jason@redhat.com>
1611
1612         PR c++/38007
1613         * c-common.c (c_common_signed_or_unsigned_type): Remove C++
1614         special casing.
1615
1616 2008-11-12  Anatoly Sokolov  <aesok@post.ru>
1617
1618         * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
1619         atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
1620         atmega32u6 devices.
1621         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1622         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1623
1624 2008-11-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1625
1626         * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
1627         packed-stack special handling.
1628         (FRAME_ADDR_RTX): Add definition.
1629
1630 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1631
1632         PR target/35366
1633         * fold-const.c (native_encode_string): New function.
1634         (native_encode_expr): Use it for STRING_CST.
1635
1636 2008-11-12  DJ Delorie  <dj@redhat.com>
1637
1638         * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
1639         insns if the intermediate value will be used later.
1640
1641 2008-11-12  Andreas Schwab  <schwab@suse.de>
1642
1643         * config/m68k/m68k.c (print_operand): Mask off extra extension
1644         bits when writing out the representation of real values.
1645
1646 2008-11-12  Ira Rosen  <irar@il.ibm.com>
1647
1648         PR tree-optimization/38079
1649         * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
1650         with vect_dump.
1651
1652 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1653
1654         PR c++/35334
1655         * c-pretty-print.c (pp_c_complex_expr): New function.
1656         (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
1657
1658         PR target/35366
1659         * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
1660         than INNER and INNER is a constant, forcibly align INNER as much
1661         as needed.
1662
1663 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
1664
1665         * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
1666
1667 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
1668
1669         PR rtl-optimization/37363
1670         * simplify-rtx.c (simplify_plus_minus): Don't create
1671         (const (minus ...)) expresisons.
1672
1673 2008-11-11  Eric Botcazou  <ebotcazou@adacore.com>
1674
1675         * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
1676         handling.
1677
1678 2008-11-10  Catherine Moore  <clm@codesourcery.com>
1679
1680         * config.gcc (mips64vrel-*-elf*): Include the tm_file
1681         prior to vr.h.
1682         * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
1683         (BASE_DRIVER_SELF_SPECS): Remove.
1684         (DRIVER_SELF_SPECS): New definition.
1685         * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
1686         BASE_DRIVER_SELF_SPECS.
1687         * config/mips/sde.h: Likewise.
1688         * config/mips/iris6.h: Likewise.
1689         * config/mips/vr.h: Likewise.
1690         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
1691
1692 2008-11-10  Vladimir Makarov  <vmakarov@redhat.com>
1693
1694         PR rtl-optimizations/37948
1695         * ira-int.h (struct ira_allocno_copy): New member constraint_p.
1696         (ira_create_copy, ira_add_allocno_copy): New parameter.
1697
1698         * ira-conflicts.c (process_regs_for_copy): New parameter.  Pass it
1699         to ira_add_allocno_copy.
1700         (process_reg_shuffles, add_insn_allocno_copies): Pass a new
1701         parameter to process_regs_for_copy.
1702         (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
1703         Fix typo in passing second allocno to ira_add_allocno_copy.
1704
1705         * ira-color.c (update_conflict_hard_regno_costs): Use head of
1706         coalesced allocnos list.
1707         (assign_hard_reg): Ditto.  Check that assigned allocnos are not in
1708         the graph.
1709         (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
1710         (add_ira_allocno_to_ordered_bucket): Rename to
1711         add_allocno_to_ordered_bucket.
1712         (push_ira_allocno_to_stack): Rename to push_allocno_to_stack.  Use
1713         head of coalesced allocnos list.
1714         (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
1715         Check that it is aready calculated.
1716         (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
1717         (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
1718         list.
1719         (coalesce_allocnos): Do extended coalescing too.
1720
1721         * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
1722         parameter to ira_add_allocno_copy.
1723
1724         * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
1725         parameter.
1726         (print_copy): Print copy origination too.
1727
1728         * ira-costs.c (scan_one_insn): Use alloc_pref for load from
1729         equivalent memory.
1730
1731 2008-11-10  Kaz Kojima  <kkojima@gcc.gnu.org>
1732
1733         PR rtl-optimization/37514
1734         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
1735         flag_ira_share_spill_slots to 2 if it's already non-zero.
1736         (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
1737         flag_ira_share_spill_slots is 2.
1738
1739 2008-11-10  Kevin Buettner  <kevinb@redhat.com>
1740
1741         * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
1742         (prologue_enter_32): Set FB to SP - 4.
1743
1744 2008-11-10  DJ Delorie  <dj@redhat.com>
1745
1746         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
1747         constraint for single-bit-clear in lower byte of HI constant, vs
1748         Imb which just ignores the upper byte.
1749         * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
1750         * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
1751         (iorhi3_16): Check for single bit set, not single bit clear.
1752
1753 2008-11-10  Janis Johnson  <janis187@us.ibm.com>
1754
1755         * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
1756
1757         * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
1758
1759 2008-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1760
1761         * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
1762         values living in memory and use more precise alignment information.
1763
1764 2008-11-10  Jakub Jelinek  <jakub@redhat.com>
1765
1766         PR middle-end/35314
1767         * tree-mudflap.c (mf_build_check_statement_for): Split then_block
1768         after __mf_check call if the call must end a bb.
1769
1770 2008-11-10  Ralph Loader  <suckfish@ihug.co.nz>
1771
1772         PR middle-end/37807
1773         PR middle-end/37809
1774         * combine.c (force_to_mode): Do not process vector types.
1775
1776         * rtlanal.c (nonzero_bits1): Do not process vector types.
1777         (num_sign_bit_copies1): Likewise.
1778
1779 2008-11-09  Thomas Schwinge  <tschwinge@gnu.org>
1780
1781         * config/i386/gnu.h: Add copyright and licensing header.
1782         * config/gnu.h: Likewise.
1783
1784 2008-11-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1785
1786         * fwprop.c (fwprop_done): Call df_remove_problem.
1787
1788 2008-11-07  Sebastian Pop  <sebastian.pop@amd.com>
1789
1790         PR middle-end/37379
1791         * tree-scalar-evolution.c (instantiate_scev_1): Return
1792         chrec_dont_know for VL_EXP_CLASS_P.
1793
1794 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
1795
1796         * reg-stack.c (reg_to_stack): Add missing braces in memset
1797         size calculation.
1798
1799 2008-11-06  Andrew Stubbs  <ams@codesourcery.com>
1800
1801         * config/arm/bpabi.h (PROFILE_HOOK): New undef.
1802         (NO_PROFILE_COUNTERS): New define.
1803
1804 2008-11-06  David Edelsohn  <edelsohn@gnu.org>
1805
1806         PR target/26397
1807         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
1808
1809 2008-11-06  Kazu Hirata  <kazu@codesourcery.com>
1810
1811         PR target/35574
1812         * config/sparc/constraints.md (D): New.
1813         * config/sparc/predicates.md (const_double_or_vector_operand): New.
1814         * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
1815         'D' constraint.
1816         * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
1817         Use the 'D' constraint in addition to 'F' in some alternatives.
1818         (DF splitter): Generalize for V64mode.
1819         * doc/md.texi (SPARC): Document the 'D' constraint.
1820
1821 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
1822
1823         * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
1824
1825 2008-11-06  Ben Elliston  <bje@au.ibm.com>
1826
1827         * gcc.c: Remove ancient comment about a bug in Sun cc.
1828
1829 2008-11-05  Janis Johnson  <janis187@us.ibm.com>
1830
1831         * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
1832
1833 2008-11-06  Ben Elliston  <bje@au.ibm.com>
1834
1835         * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
1836
1837 2008-11-06  Ben Elliston  <bje@au.ibm.com>
1838
1839         * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
1840         description.
1841
1842 2008-11-05  Hans-Peter Nilsson  <hp@axis.com>
1843
1844         PR target/38016
1845         * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
1846         just MEM_P.
1847
1848 2008-11-05  Martin Jambor  <mjambor@suse.cz>
1849
1850         PR middle-end/37861
1851         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
1852         pointer arithmetics into array_ref if the array is accessed
1853         through an indirect_ref.
1854
1855 2008-11-05  Richard Guenther  <rguenther@suse.de>
1856
1857         PR middle-end/37742
1858         * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
1859         qualified pointer conversion before stripping qualifiers.
1860         * gimplify.c (create_tmp_from_val): Use correctly qualified type.
1861         * tree-flow.h (may_propagate_address_into_dereference): Declare.
1862         * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
1863         function.
1864         (ccp_fold): Use it.
1865         * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
1866         properly canonicalize binary ops.
1867         (forward_propagate_addr_expr_1): Use
1868         may_propagate_address_into_dereference.
1869
1870 2008-11-05  Uros Bizjak  <ubizjak@gmail.com>
1871
1872         PR middle-end/37286
1873         * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
1874         Initialize uninitialized input registers with a NaN.
1875
1876 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
1877
1878         PR middle-end/37833
1879
1880         * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
1881
1882 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
1883
1884         PR middle-end/37943
1885
1886         * graphite.c (scopdet_basic_block_info): Fix loops with multiple
1887         exits and conditions.
1888         * testsuite/gcc.dg/graphite/pr37943.c: New.
1889
1890 2008-11-04  Jakub Jelinek  <jakub@redhat.com>
1891             Andrew Pinski  <andrew_pinski@playstation.sony.com>
1892
1893         PR c/35430
1894         * c-common.c (warn_for_sign_compare): For complex result_type
1895         use component's type.
1896
1897 2008-11-04  Jakub Jelinek  <jakuB@redhat.com>
1898
1899         * print-tree.c (print_node): Use code instead of TREE_CODE (node).
1900
1901         * print-tree.c (print_node): Don't print DECL_INITIAL
1902         for PARM_DECL.
1903
1904         PR c/37106
1905         * c-common.c (parse_optimize_options): Save and restore
1906         flag_strict_aliasing around decode_options call.
1907
1908 2008-11-04  Uros Bizjak  <ubizjak@gmail.com>
1909
1910         * config/i386/driver-i386.c (enum vendor_signatures): New enum.
1911         (host_detect_local_cpu): Use it instead of casted strings to
1912         compare vendor signatures.
1913
1914 2008-11-03  Mikael Pettersson  <mikpe@it.uu.se>
1915
1916         PR target/37989
1917         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
1918         or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
1919
1920 2008-11-03  Catherine Moore  <clm@codesourcery.com>
1921
1922         * config/mips.c (mips_conditional_register_usage):  Handle the
1923         DSP control register.
1924         * doc/extend.texi: Document the DSP control register.
1925
1926 2008-11-03  Steve Ellcey <sje@cup.hp.com>
1927             Jakub Jelinek  <jakub@redhat.com>
1928
1929         * omp-low.c (expand_omp_for_generic): If iter_type has different
1930         precision than type and type is a pointer type, cast n1 and n2
1931         first to an integer type with the same precision as pointers
1932         and only afterwards to iter_type.
1933
1934 2008-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
1935
1936         * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
1937         (UNSPEC_GOTSYM_OFF): New unspec.
1938         (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
1939         (pic_add_dot_plus_eight): Likewise.
1940         (tls_load_dot_plus_eight): Likewise.  Update peephole2.
1941         * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
1942         UNSPEC_PIC_BASE operands.
1943         * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
1944         (arm_output_addr_const_extra): Handle it.
1945
1946 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
1947
1948         * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
1949         integer class to full integer class if the offset is not word-aligned.
1950
1951 2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1952
1953         PR rtl-opt/37782
1954         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
1955         mode count is in.
1956         (doloop_optimize): Update call to doloop_modify.
1957
1958 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
1959
1960         * tree-sra.c (bitfield_overlaps_p): Fix oversight.
1961
1962 2008-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1963
1964         PR other/37463
1965         * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
1966         gcc_cv_as_cfi_directive.
1967         (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
1968         merging read-only and read-write sections or assembler emits
1969         read-write .eh_frame sections.
1970         * configure: Regenerate.
1971
1972 2008-11-03  Nathan Froyd  <froydnj@codesourcery.com>
1973
1974         Revert:
1975         2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
1976
1977         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
1978         problem.
1979         (rs6000_emit_prologue): Invert logic.
1980         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
1981         (reg:P 11) instead of match_operand.
1982         (*save_fpregs_<mode>): Likewise.
1983         (*restore_gpregs_<mode>): Likewise.
1984         (*return_and_restore_gpregs_<mode>): Likewise.
1985         (*return_and_restore_fpregs_<mode>): Likewise.
1986         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
1987         (reg:P 11) insted of match_operand.
1988         (*restore_gpregs_spe): Likewise.
1989         (*return_and_restore_gpregs_spe): Likewise.
1990
1991 2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>
1992
1993         PR tree-optimization/37684
1994         * gcc.dg/graphite/pr37684.c: New.
1995         * graphite.c (exclude_component_ref): New.
1996         (is_simple_operand): Call exclude_component_ref.
1997
1998 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
1999
2000         PR tree-optimization/36908
2001         * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
2002         * tree-loop-distribution.c (number_of_rw_in_rdg): New.
2003         (number_of_rw_in_partition): New.
2004         (partition_contains_all_rw): New.
2005         (ldist_gen): Do not distribute when one of the partitions
2006         contains all the memory operations.
2007
2008 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
2009
2010         * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
2011         EDGE_IRREDUCIBLE_LOOP.
2012
2013 2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>
2014
2015         * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
2016         where we have one entry point in the loop which isn't the head.
2017
2018 2008-11-03  Richard Guenther  <rguenther@suse.de>
2019
2020         PR middle-end/37573
2021         * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
2022
2023 2008-11-03  Jakub Jelinek  <jakub@redhat.com>
2024
2025         PR middle-end/37858
2026         * passes.c (execute_one_pass): Don't look at cfun->curr_properties
2027         for ipa and simple ipa passes.
2028
2029 2008-11-02  Richard Guenther  <rguenther@suse.de>
2030
2031         PR tree-optimization/37542
2032         * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
2033         * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
2034         (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
2035         (vn_nary_op_insert_stmt): Likewise.
2036         (visit_use): Likewise.
2037
2038 2008-11-02  Anatoly Sokolov  <aesok@post.ru>
2039
2040         * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
2041         (*swap): Remove.
2042         (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
2043         rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
2044         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
2045         ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
2046         lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
2047         peephole2's): Replace unspec with rotate.
2048         * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
2049
2050 2008-11-02  Richard Guenther  <rguenther@suse.de>
2051
2052         PR tree-optimization/37991
2053         * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
2054         * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
2055         (set_ssa_val_to): Print if the value changed.
2056         (simplify_binary_expression): Strip useless conversions.
2057
2058 2008-11-01  Hans-Peter Nilsson  <hp@axis.com>
2059
2060         PR target/37939
2061         * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
2062         operand.
2063
2064 2008-11-01  Richard Guenther  <rguenther@suse.de>
2065
2066         PR middle-end/37976
2067         * builtins.c (fold_builtin_strspn): Return a size_t.
2068         (fold_builtin_strcspn): Likewise.
2069
2070 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2071
2072         * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
2073         attribute for struct return convention.
2074
2075 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2076
2077         * config/rs6000/crtsavres.asm: Really, really delete.
2078
2079 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
2080
2081         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
2082         problem.
2083         (rs6000_emit_prologue): Invert logic.
2084         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
2085         (reg:P 11) instead of match_operand.
2086         (*save_fpregs_<mode>): Likewise.
2087         (*restore_gpregs_<mode>): Likewise.
2088         (*return_and_restore_gpregs_<mode>): Likewise.
2089         (*return_and_restore_fpregs_<mode>): Likewise.
2090         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
2091         (reg:P 11) insted of match_operand.
2092         (*restore_gpregs_spe): Likewise.
2093         (*return_and_restore_gpregs_spe): Likewise.
2094
2095 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
2096
2097         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
2098         list of word switches that take args.
2099
2100 2008-10-30  Jakub Jelinek  <jakub@redhat.com>
2101
2102         * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
2103         (s390_output_pool_entry): Call it through for_each_rtx.
2104
2105         PR middle-end/37730
2106         * expr.c (store_constructor): For vectors, if target is a MEM, use
2107         target's MEM_ALIAS_SET instead of elttype alias set.
2108
2109 2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2110
2111         PR target/37909
2112         * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
2113         no address.
2114
2115 2008-10-29  David Edelsohn  <edelsohn@gnu.org>
2116
2117         PR target/37878
2118         * config/rs6000/predicates.md (word_offset_memref_operand):
2119         Restructure code and look inside auto-inc/dec addresses.
2120
2121 2008-10-29  Steve Ellcey  <sje@cup.hp.com>
2122
2123         PR target/32277
2124         * libgcov.c ( __gcov_indirect_call_profiler): Check
2125         TARGET_VTABLE_USES_DESCRIPTORS.
2126
2127 2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>
2128
2129         * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
2130         (INITIAL_FRAME_POINTER_OFFSET): Remove.
2131         * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
2132         offset if eliminating soft frame pointer.
2133         * config/spu/spu.md (stack_protect_set, stack_protect_test)
2134         (stack_protect_test_si): Add initial machine description
2135         for Stack Smashing Protector
2136
2137 2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2138
2139         PR 11492
2140         * c-common.c (min_precision): Move to...
2141         * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
2142         * tree.h (tree_int_cst_min_precision): Declare.
2143         * c-common.h (min_precision): Delete declaration.
2144         * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
2145         multiplication of non-negative integer constants.
2146         * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
2147         tree_int_cst_min_precision.
2148         (finish_enum): Likewise.
2149
2150 2008-10-29  Joseph Myers  <joseph@codesourcery.com>
2151
2152         PR middle-end/36578
2153         * convert.c (convert_to_real): Do not optimize conversions of
2154         binary arithmetic operations between binary and decimal
2155         floating-point types.  Consider mode of target type in determining
2156         decimal type for arithmetic.  Unless
2157         flag_unsafe_math_optimizations, do not optimize binary conversions
2158         where this may change rounding behavior.
2159         * real.c (real_can_shorten_arithmetic): New.
2160         * real.h (real_can_shorten_arithmetic): Declare.
2161
2162 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2163
2164         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
2165         ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
2166         * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
2167         appropriate.
2168         (must_save_p): For some workarounds, interrupts need to clobber a
2169         P register.
2170         (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
2171         and LC1 for WA_05000257.
2172         (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
2173         WA_05000283 and WA_05000315.
2174         * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
2175         (movbi): Add alternative to set CC to 1; improve code for setting
2176         CC to 0.
2177         (dummy_load): New pattern.
2178
2179 2008-10-29  Jakub Jelinek  <jakub@redhat.com>
2180
2181         PR middle-end/37870
2182         * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
2183         BLKmode for non-memory, convert using a wider MODE_INT mode
2184         or through memory.
2185
2186         PR middle-end/37913
2187         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
2188         that haven't been removed yet.
2189
2190 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2191
2192         * config/bfin/bfin.c (struct machine_function): New member
2193         has_loopreg_clobber.
2194         (bfin_expand_movmem): Set it when generating memcpy insns.
2195         (n_regs_saved_by_prologue, expand_prologue_reg_save,
2196         expand_epilogue_reg_restore): If we have hardware loops,
2197         memcpy insns (indicated by has_loopreg_clobber) or function
2198         calls, we need to save the loop registers.
2199
2200 2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>
2201
2202         * config/i386/i386.c (core2_cost): Fix typos in comments.
2203
2204 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2205
2206         PR c/37924
2207         * combine.c (make_compound_operation): Don't call make_extraction with
2208         non-positive length.
2209         (simplify_shift_const_1): Canonicalize count even if complement_p.
2210
2211 2008-10-28  Joseph Myers  <joseph@codesourcery.com>
2212
2213         * convert.c (strip_float_extensions): Do not remove or introduce
2214         conversions between binary and decimal floating-point types.
2215
2216 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
2217
2218         PR middle-end/37931
2219         * fold-const.c (distribute_bit_expr): Convert common, left and
2220         right arguments to type.
2221
2222 2008-10-28  Nick Clifton  <nickc@redhat.com>
2223
2224         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
2225         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
2226         call_really_used_regs array rather than the call_used_regs array.
2227         (mn10300_get_live_callee_saved_regs, expand_prologue,
2228         expand_epilogue, output_tst): Likewise.
2229
2230 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
2231
2232         PR target/37378
2233         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
2234         (df_get_entry_block_def_set): Neither here.
2235         (df_get_regular_block_artificial_uses): Add EH_USES registers.
2236
2237         PR tree-optimization/37879
2238         * predict.c (tree_estimate_probability): Check if last_stmt is
2239         non-NULL before dereferencing it.
2240
2241 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2242
2243         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
2244         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
2245         (ira_fast_allocation): Remove the prototype.
2246
2247         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
2248         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
2249         (color_pass): Modify the updated costs.
2250         (ira_color): Rename to color.  Make it static.
2251         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
2252         (ira_color): New function.
2253
2254         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
2255         change.
2256
2257         * ira-lives.c (last_call_num, allocno_saved_at_call): New
2258         variables.
2259         (set_allocno_live, clear_allocno_live, mark_ref_live,
2260         mark_ref_dead): Invalidate corresponding element of
2261         allocno_saved_at_call.
2262         (process_bb_node_lives): Increment last_call_num.  Setup
2263         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
2264         allocno was already saved.
2265         (ira_create_allocno_live_ranges): Initiate last_call_num and
2266         allocno_saved_at_call.
2267
2268         * ira-build.c (ira_create_allocno): Initiate
2269         ALLOCNO_UPDATED_COVER_CLASS_COST.
2270         (create_cap_allocno, propagate_allocno_info,
2271         remove_unnecessary_allocnos): Remove setting updated costs.
2272         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
2273
2274         * ira.c (ira):  Don't call ira_fast_allocation.
2275
2276         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
2277         updated costs.
2278
2279 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2280
2281         PR middle-end/37813
2282         * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
2283
2284         * ira-int.h (ira_hard_regno_cover_class): New.
2285
2286         * ira-lives.c (mark_reg_live, mark_reg_dead,
2287         process_bb_node_lives): Use ira_hard_regno_cover_class.
2288
2289         * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
2290         (setup_hard_regno_cover_class): New function.
2291         (ira_init): Call setup_hard_regno_cover_class.
2292
2293         * ira-costs.c (cost_class_nums): Add comment.
2294         (find_allocno_class_costs): Initiate cost_class_nums.
2295         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
2296
2297 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
2298
2299         PR middle-end/37884
2300         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
2301         Rename to copy_info_to_removed_store_destinations.  Propagate
2302         conflict hard regs and register stack attribute.
2303
2304 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2305
2306         PR middle-end/37316
2307         * pa.c (function_arg_padding):  Pad complex and vector types
2308         upward in 64-bit runtime.
2309         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
2310
2311 2008-10-26  Matthias Klose  <doko@ubuntu.com>
2312
2313         * doc/install.texi: Document requirements on antlr.
2314
2315 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
2316
2317         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
2318         first.
2319
2320 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2321
2322         PR target/37841
2323         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
2324         is defined, use it to modify the constant offset.
2325
2326         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
2327
2328         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
2329         and short arguments to the correct location as mandated by the ABI.
2330
2331 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2332
2333         PR rtl-optimization/37769
2334         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
2335
2336 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2337
2338         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
2339         unwind-dw2-Os-4-200.o.
2340
2341 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
2342
2343         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
2344         (convert_for_assignment): Remove ic_argpass_nonproto cases.
2345
2346 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
2347
2348         PR tree-optimization/36038
2349         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
2350         add sizetype IV with initial value zero instead of pointer type.
2351
2352 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2353
2354         PR c/7543
2355         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
2356         around bit operation.
2357         * profile.c (is_edge_inconsistent): Likewise.
2358         * fold-const.c (truth_value_p): Move from here...
2359         * tree.h (truth_value_p): ... to here.
2360         * c-tree.h (c_expr): Update description of original_code.
2361         * c-typeck.c (parser_build_unary_op): Set original_code.
2362         (parser_build_binary_op): Update call to warn_about_parentheses.
2363         * c-common.c (warn_about_parentheses): Take two additional
2364         arguments of the operands. Use a switch. Quote operators
2365         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
2366         Add warning about !x | y and !x & y.
2367         * c-common.h (warn_about_parentheses): Update declaration.
2368
2369 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
2370
2371         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
2372         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
2373         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
2374         New variables.
2375         (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
2376         (check-%): For test targets listed in lang_checks_parallelized
2377         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
2378         run the testing in multiple make goals, possibly parallel, and
2379         afterwards run dg-extract-results.sh to merge the sum and log files.
2380
2381 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
2382
2383         * config/mips/mips.c (mips_canonicalize_move_class): New function.
2384         (mips_move_to_gpr_cost): Likewise.
2385         (mips_move_from_gpr_cost): Likewise.
2386         (mips_register_move_cost): Make more fine-grained.
2387
2388 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
2389
2390         * graphite.c (graphite_apply_transformations): Check for
2391         -fgraphite-identity.
2392         * toplev.c (process_options): Add graphite_identity.
2393         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
2394
2395 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
2396
2397         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
2398         mulhisihl and mulhisihh builtins.
2399
2400         From Jie Zhang  <jie.zhang@analog.com>
2401         * config/bfin/bfin.md (composev2hi): Put operands into vector
2402         with correct order.
2403
2404 2008-10-22  Chao-ying Fu  <fu@mips.com>
2405
2406         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
2407
2408 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
2409
2410         From Mike Frysinger  <michael.frysinger@analog.com>
2411         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
2412         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
2413         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
2414         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
2415         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
2416         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
2417         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
2418         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
2419         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
2420         __ADSPBF51x__ for all of them.
2421         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
2422         -mcpu bf512, bf514, bf516, and bf518.
2423         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2424         bf512-none, bf514-none, bf516-none, and bf518-none.
2425         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2426         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2427         * doc/invoke.texi (Blackfin Options): Document that
2428         -mcpu now accepts bf512, bf514, bf516, and bf518.
2429
2430 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
2431
2432         PR middle-end/37882
2433         * fold-const.c (build_range_type): For 1 .. signed_max
2434         range call build_nonstandard_inter_type if signed_type_for
2435         returned a type with bigger precision.
2436
2437 2008-10-22  Richard Guenther  <rguenther@suse.de>
2438
2439         * tree.def (COMPLEX_TYPE): Constrain element type.
2440         * tree.c (build_complex_type): Assert that.
2441         * tree-ssa-structalias.c (could_have_pointers): Complex types
2442         cannot have pointers.
2443
2444 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2445
2446         PR c/30949
2447         * c-typeck.c (convert_for_assignment): Do not give declaration's
2448         location for builtins. Spell out which type was expected and which
2449         was given.
2450
2451 2008-10-22  Nick Clifton  <nickc@redhat.com>
2452
2453         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
2454         the fdpic register to be a target when running in fdpic mode.
2455
2456 2008-10-22 Rafael Espindola  <espindola@google.com>
2457
2458         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
2459         newly created statements.
2460
2461 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2462
2463         PR target/37633
2464         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
2465         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
2466         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
2467
2468 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
2469
2470         PR target/37880
2471         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
2472         Adjust -mcmodel=medium description for 2005-07-31 changes.
2473
2474 2008-10-22  Jan Hubicka  <jh@suse.cz>
2475             Jakub Jelinek  <jakub@redhat.com>
2476
2477         PR middle-end/35853
2478         * doc/invoke.texi: Remove references to obsoleted -d dumps.
2479
2480 2008-10-21  Richard Henderson  <rth@redhat.com>
2481
2482         PR 37815
2483         * emit-rtl.c (get_spill_slot_decl): Export.
2484         * emit-rtl.h (get_spill_slot_decl): Declare.
2485         * var-tracking.c (vt_add_function_parameters): Relax assertion
2486         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
2487
2488 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
2489
2490         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
2491         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
2492         of from insn.
2493
2494 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
2495
2496         PR middle-end/37669
2497         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
2498         processed by get_maxval_strlen.
2499
2500 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
2501
2502         PR target/35485
2503         * tree.c (get_file_function_name): Copy first_global_object_name.
2504         Centralize call to clean_symbol_name.
2505
2506 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
2507
2508         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
2509         * config/svr4.h (SVR4_ASM_SPEC): New.
2510         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2511         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2512
2513         * doc/invoke.texi (Option Summary): Add -T to linker options.
2514         (Link Options): Document -T.
2515
2516 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
2517
2518         * tree-inline.c (tree_inlinable_function_p): Remove tuples
2519         debugging hack.
2520
2521         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2522
2523         PR debug/37020
2524         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
2525
2526 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
2527
2528         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
2529         part of expression.
2530
2531 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
2532
2533         * doc/install.texi: Fix typos in previous patch.
2534
2535 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
2536
2537         * doc/install.texi: Document in-tree building of gcc and mpfr.
2538
2539 2008-10-19  Richard Guenther  <rguenther@suse.de>
2540
2541         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
2542
2543 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2544
2545         PR c/30260
2546         * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
2547         (build_enumerator): Convert enumerators that fit in integer to
2548         integer type.
2549
2550 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
2551
2552         * config/i386/i386.md (unnamed peephole2): Do not force memory
2553         operands of arith or logical instructions into registers for
2554         non-TARGET_READ_MODIFY targets.
2555
2556         (ffs_cmove): Change operand 0 predicate to register_operand.
2557         Change operand 1 predicate to nonimmediate_operand.
2558         (ffsdi2): Ditto.
2559         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
2560
2561 2008-10-18  Richard Guenther  <rguenther@suse.de>
2562
2563         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
2564         VIEW_CONVERT_EXPR case against invalid gimple.
2565
2566 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2567
2568         * c-parser.c (c_parser_binary_expression): Silence the
2569         uninitialized variable warning emitted for binary_loc.
2570
2571 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
2572
2573         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
2574         translation cache.
2575
2576 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
2577
2578         PR c/33192
2579         * c-typeck.c (build_unary_op): Use omit_one_operand for
2580         IMAGPART_EXPR of real argument.
2581
2582 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
2583
2584         PR tree-optimization/37664
2585         * fold-const.c (fold_binary): When optimizing comparison with
2586         highest or lowest type's value, don't consider TREE_OVERFLOW.
2587
2588 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
2589
2590         PR target/35483
2591         * Makefile.in (coverage.o): Depend on $(TM_P_H).
2592         * coverage.c: Include tm_p.h.
2593         * config/rs6000/x-aix (jc1): Override LDFLAGS.
2594         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
2595         dollar signs from PREFIX.
2596         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
2597         instead of manual strip_name_encoding.
2598
2599 2008-10-16  Richard Guenther  <rguenther@suse.de>
2600
2601         PR middle-end/37418
2602         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
2603         volatile qualified functions or methods as relevant.
2604
2605 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
2606
2607         PR tree-optimization/37525
2608         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
2609         sizetype unsigned constants, both in the case of C and bounds.
2610
2611 2008-10-15  Jan Hubicka  <jh@suse.cz>
2612
2613         * ira-emit.c (change_regs): Return false when replacing reg by itself.
2614
2615 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
2616
2617         PR target/37633
2618         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
2619         HARD_REGNO_CALL_PART_CLOBBERED.
2620
2621 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
2622
2623         PR middle-end/37535
2624         * ira-lives.c (mark_early_clobbers): Remove.
2625         (make_pseudo_conflict, check_and_make_def_use_conflicts,
2626         check_and_make_def_conflicts,
2627         make_early_clobber_and_input_conflicts,
2628         mark_hard_reg_early_clobbers): New functions.
2629         (process_bb_node_lives): Call
2630         make_early_clobber_and_input_conflicts and
2631         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
2632
2633         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
2634         early clobbers of pseudo-registers.
2635
2636 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
2637
2638         PR middle-end/37674
2639         * ira-build.c (ira_flattening): Recalculate
2640         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
2641         from the scratch instead of the propagation.
2642
2643 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
2644
2645         * doc/rtl.texi (const_double): Remove the "addr" operand.
2646         Describe CONST_DOUBLE_* macros under const_double rather
2647         than const_vector.
2648         (const_fixed): Fix the operand description.
2649         (const): Add an @findex directive.
2650         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
2651         after the constant rtl table.
2652         (fix): Combine floating-point and fixed-point descriptions.
2653         Fix hyphenation.
2654         * sched-deps.c (sched_analyze_2): Remove reference to
2655         CONST_DOUBLE_CHAIN.
2656
2657 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
2658
2659         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
2660         UNSPEC_GOTSYM_OFFs.
2661         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
2662         for UNSPEC_GOTSYM_OFFs.
2663         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
2664         (add_GOT_to_pic_reg): Use it.
2665         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
2666
2667 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
2668             Harsha Jagasia  <harsha.jagasia@amd.com>
2669
2670         PR tree-optimization/37485
2671         * graphite.c (gmp_cst_to_tree): Moved.
2672         (iv_stack_entry_is_constant): New.
2673         (iv_stack_entry_is_iv): New.
2674         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
2675         (loop_iv_stack_insert_constant): New.
2676         (loop_iv_stack_pop): Use new datatpype.
2677         (loop_iv_stack_get_iv): Same.
2678         (loop_iv_stack_get_iv_from_name): Same.
2679         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
2680         (loop_iv_stack_patch_for_consts): New.
2681         (loop_iv_stack_remove_constants): New.
2682         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
2683         (translate_clast): Call loop_iv_stack_patch_for_consts and
2684         loop_iv_stack_remove_constants.
2685         (gloog): Use new datatype.  Redirect construction edge to end
2686         block to avoid accidental deletion.
2687         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
2688         iv stack entry.
2689         (union iv_stack_entry_data): New.  Data in iv stack entry.
2690         (struct iv_stack_entry): New.  Datatype for iv stack entries.
2691
2692 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
2693
2694         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
2695         * graphite.c (free_scop): Same.
2696         (build_scops): Same.
2697         (free_scattering): New.
2698         (build_cloog_prog): Call free_scattering.
2699         (patch_phis_for_virtual_defs): Fix memleak.
2700         (graphite_trans_bb_strip_mine): Same.
2701         (limit_scops): Same.
2702
2703 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
2704             Harsha Jagasia  <harsha.jagasia@amd.com>
2705
2706         PR tree-optimization/37828
2707         * graphite.c (graphite_trans_loop_block): Do not loop block
2708         single nested loops.
2709
2710 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
2711
2712         PR tree-optimization/37686
2713         * tree-loop-linear.c (linear_transform_loops): Build a
2714         loop nest vector.  Pass it to lambda_compute_access_matrices.
2715         * tree-data-ref.h (struct access_matrix): Store the loop nest
2716         relative to which it encodes the information.
2717         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
2718         (am_vector_index_for_loop): Reimplemented: iterate over the
2719         loop nest for finding the loop index in the access matrix.
2720         (lambda_compute_access_matrices): Update declaration.
2721         * lambda-code.c (build_access_matrix): Pass the loop nest and
2722         record it.
2723         (lambda_compute_access_matrices): Same.
2724
2725 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
2726
2727         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
2728         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
2729         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
2730         already implies hard float.  Also fix several insn condition
2731         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
2732
2733 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
2734
2735         PR target/35483
2736         Based on patches by Laurent Vivier.
2737         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
2738         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
2739         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
2740         dollar sign to underscore.
2741         (ASM_OUTPUT_EXTERNAL): Same.
2742         (ASM_OUTPUT_LABELREF): New.
2743         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
2744
2745         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
2746         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
2747         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
2748         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
2749
2750 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
2751
2752         PR tree-optimization/36881
2753         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
2754         that each value doesn't need runtime relocations, for !flag_pic
2755         check that each value is just a valid initializer constant.
2756
2757 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
2758
2759         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
2760         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
2761         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
2762         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
2763         GR_AND_ACC_REGS.
2764         (REG_CLASS_NAMES): Update accordingly.
2765         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
2766         rather than an unpredictable descriptive string.
2767         * config/mips/mips.c (mips_register_move_cost): Remove comment.
2768         (mips_register_move_cost): Check for specific COP*_REGS classes,
2769         instead of ALL_COP_AND_GR_REGS.
2770         (mips_ira_cover_classes): New function.
2771         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
2772         (TARGET_IRA_COVER_CLASSES): Define.
2773
2774 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
2775
2776         PR c++/37553
2777         * tree.c (build_type_attribute_qual_variant): Hash on the
2778         unqualified type, and don't overwrite an existing
2779         (type_hash_eq): Make the TYPE_NAME of the types significant, to
2780         allow distinguishing between wchar_t and its underlying type. This
2781         also means that we'll retain a little more typedef information.
2782
2783 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
2784             Dmitry Melnik  <dm@ispras.ru>
2785             Dmitry Zhurikhin  <zhur@ispras.ru>
2786             Alexander Monakov  <amonakov@ispras.ru>
2787             Maxim Kuvyrkov  <maxim@codesourcery.com>
2788
2789         * target.h (struct gcc_target): Update prototypes of needs_block_p
2790         and gen_spec_check.
2791         * haifa-sched.c (create_check_block_twin): Update calls to the above.
2792         * sel-sched.c (create_speculation_check): Likewise.
2793         * doc/tm.texi: Provide documentation for new target hooks.
2794
2795         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
2796         (ia64_gen_spec_insn): Removed.
2797         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
2798         ia64_gen_spec_check): New static functions.
2799         (ia64_alloc_sched_context, ia64_init_sched_context,
2800         ia64_set_sched_context, ia64_clear_sched_context,
2801         ia64_free_sched_context, ia64_get_insn_spec_ds,
2802         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
2803         (ia64_needs_block_p): Change prototype.
2804         (ia64_gen_check): Rename to ia64_gen_spec_check.
2805         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
2806         into declaration, add special memory dependencies handling.
2807         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
2808         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
2809         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
2810         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
2811         Define new target hooks.
2812         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
2813         (ia64_optimization_options): Turn on selective scheduling with -O3,
2814         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
2815         default with selective scheduling.
2816         (ia64_override_options): Initialize align_loops and align_functions
2817         to 32 and 64, respectively.  Set global selective scheduling flags
2818         according to target-dependent flags.
2819         (rtx_needs_barrier): Support UNSPEC_LDS_A.
2820         (group_barrier_needed): Use new mstop-bit-before-check flag.
2821         Add heuristic.
2822         (dfa_state_size): Make global.
2823         (spec_check_no, max_uid): Remove.
2824         (mem_ops_in_group, current_cycle): New variables.
2825         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
2826         Initialize new variables.
2827         (is_load_p, record_memory_reference): New functions.
2828         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
2829         reached.
2830         (ia64_variable_issue): Change use of current_sched_info to
2831         sched_deps_info.  Update comment.  Note if a load or a store is issued.
2832         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
2833         advance if maximal number of loads or stores was issued on current
2834         cycle.
2835         (scheduled_good_insn): New static helper function.
2836         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
2837         a group barrier is needed.  Fix vertical spacing.  Guard the code
2838         doing state transition with last_scheduled_insn check.
2839         Mark that a stop bit should be before current insn if there was a
2840         cycle advance.  Update current_cycle and mem_ops_in_group.
2841         (ia64_h_i_d_extended): Change use of current_sched_info to
2842         sched_deps_info. Reallocate stops_p by larger chunks.
2843         (struct _ia64_sched_context): New structure.
2844         (ia64_sched_context_t): New typedef.
2845         (ia64_alloc_sched_context, ia64_init_sched_context,
2846         ia64_set_sched_context, ia64_clear_sched_context,
2847         ia64_free_sched_context): New static functions.
2848         (gen_func_t): New typedef.
2849         (get_spec_load_gen_function): New function.
2850         (SPEC_GEN_EXTEND_OFFSET): Declare.
2851         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
2852         (get_mode_no_for_insn): Change the condition that prevents use of
2853         special hardware registers so it can now handle pseudos.
2854         (get_spec_unspec_code): New function.
2855         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
2856         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
2857         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
2858         during selective scheduling.
2859         (ia64_speculate_insn): Use ds_get_speculation_types when
2860         determining whether we need to change the pattern.
2861         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
2862         (ia64_spec_check_src_p): Support new speculation/check codes.
2863         (struct bundle_state): New field.
2864         (issue_nops_and_insn): Initialize it.
2865         (insert_bundle_state): Minimize mid-bundle stop bits.
2866         (important_for_bundling_p): New function.
2867         (get_next_important_insn): Use important_for_bundling_p.
2868         (bundling): When shifting TImode from unimportant insns, ignore
2869         also group barriers.  Assert that best state is found before
2870         the backward bundling pass.  Print number of mid-bundle stop bits.
2871         Minimize mid-bundle stop bits.  Check correct calculation of
2872         mid-bundle stop bits.
2873         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
2874         (final_emit_insn_group_barriers): Emit stop bits before insns starting
2875         a new cycle.
2876         (sel2_run): New variable.
2877         (ia64_reorg): When flag_selective_scheduling2 is set, run the
2878         selective scheduling pass instead of schedule_ebbs.
2879
2880         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
2881         (UNSPEC_LDS_A): New UNSPEC.
2882         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
2883         movti_internal, movsf_internal, movdf_internal,
2884         movxf_internal): Make visible.  Add speculable* attributes.
2885         (output_c_nc): New mode attribute.
2886         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
2887         mov<mode>_nc, zero_extend<mode>di2_nc,
2888         advanced_load_check_nc_<mode>): New insns.
2889         (zero_extend*): Add speculable* attributes.
2890
2891         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
2892         (msched-stop-bits-after-every-cycle): Likewise.
2893         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
2894         Likewise.
2895         (msched-spec-verbose): Remove.
2896         (msched-prefer-non-data-spec-insns,
2897         msched-prefer-non-control-spec-insns,
2898         msched-count-spec-in-critical-path,
2899         msel-sched-dont-check-control-spec): Use Target  Report Var
2900         instead of Common Report Var.
2901
2902         * config/ia64/itanium2.md: Remove incorrect bypass.
2903
2904         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
2905
2906 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
2907
2908         PR middle-end/37805
2909         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
2910         and -fhelp=separate.
2911
2912 2008-10-14  Ben Elliston  <bje@au.ibm.com>
2913
2914         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
2915
2916 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
2917
2918         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
2919         non-integer modes.
2920
2921 2008-10-13  Matthias Klose  <doko@ubuntu.com>
2922
2923         * config/pa/linux-atomic.c: Work around missing header file
2924         for hppa64-linux-gnu targets.
2925
2926 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2927             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
2928             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
2929             Grace Cao  <grace_cao@playstation.sony.com>
2930
2931         * doc/invoke.texi (-mgen-cell-microcode): Document.
2932         (-mwarn-cell-microcode): Document.
2933         * cfglayout.c (locator_location): Export.
2934         * rtl.h (locator_location): Define prototype.
2935         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
2936         New predicate.
2937         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
2938         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
2939         (mwarn-cell-microcode): New option.
2940         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
2941         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
2942         cell and not already set.
2943         Turn off string instructions if not generating cell microcode.
2944         (rs6000_final_prescan_insn): New function that warns about microcoded
2945         instructions.
2946         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
2947         * config/rs6000/rs6000.md
2948         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
2949         the instruction would have been microcoded on the Cell.  Set
2950         cell_micro to always on unnamed patterns for the string instructions.
2951         (cell_micro): Update definition, remove load/store conditional
2952         microcoded.
2953         (sign_extend:DI): Define new pattern for non microcoded version.
2954         (sign_extend:SI): Likewise.
2955         (compare (div:P)): Set cell_micro to not.
2956         (andsi3): Define as an expand.
2957         (andsi3_mc): New pattern.
2958         (andsi3_nomc): New pattern.
2959         (andsi3_internal0_nomc): New pattern.
2960         (andsi3_internal2): Rename to ...
2961         (andsi3_internal2_mc): this and enable iff generating microcode.
2962         (andsi3_internal3): Rename to ...
2963         (andsi3_internal3_mc): this and enable iff generating microcode.
2964         (andsi3_internal4): Enable iif generating microcode.
2965         (andsi3_internal5): Rename to ..
2966         (andsi3_internal5_mc): this and enable iff generating microcode.
2967         (andsi3_internal5_nomc): New pattern.
2968         (extzvdi_internal1): Enable iff generating microcode.
2969         (extzvdi_internal2): Likewise.
2970         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
2971         (anddi3): Change to expand.
2972         (anddi3_mc): Rename from anddi3.
2973         (anddi3_no_mc): New pattern.
2974         (anddi3_internal2): Rename to ..
2975         (anddi3_internal2_mc): this and enable iff generating microcode.
2976         (anddi3_internal2_nomc): New pattern.
2977         (anddi3_internal3): Rename to ..
2978         (anddi3_internal3_mc): this and enable iff generating microcode.
2979         (anddi3_internal3_nomc): New pattern.
2980         (movti_string): Set cell_micro to always if TARGET_STRING.
2981         (stmsi8): Set cell_micro to always.
2982         (stmsi7): Likewise.
2983         (stmsi6): Likewise.
2984         (stmsi5): Likewise.
2985         (stmsi4): Likewise.
2986         (stmsi3): Likewise.
2987         (stmsi8_power): Likewise.
2988         (stmsi7_power): Likewise.
2989         (stmsi6_power): Likewise.
2990         (stmsi5_power): Likewise.
2991         (stmsi4_power): Likewise.
2992         (stmsi3_power): Likewise.
2993         (movsi_update2): Enable iff generating microcode.
2994         (movhi_update3): Likewise.
2995         (lmw): Set cell_micro to always.
2996
2997 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
2998
2999         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
3000         * config/s390/s390.c (machine_function): Remove
3001         decomposed_literal_pool_addresses_ok_p.
3002         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
3003         the difference of two labels.
3004         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
3005         (s390_pool_offset): New function.
3006         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
3007         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
3008
3009 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
3010
3011         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
3012         (powerpc*-*-linux-gnu*): Describe.
3013         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
3014         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
3015         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
3016         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
3017         config/rs6000/e500crtres32gpr.asm,
3018         config/rs6000/e500crtres64gpr.asm,
3019         config/rs6000/e500crtres64gprctr.asm,
3020         config/rs6000/e500crtrest32gpr.asm,
3021         config/rs6000/e500crtrest64gpr.asm,
3022         config/rs6000/e500crtresx32gpr.asm,
3023         config/rs6000/e500crtresx64gpr.asm,
3024         config/rs6000/e500crtsav32gpr.asm,
3025         config/rs6000/e500crtsav64gpr.asm,
3026         config/rs6000/e500crtsav64gprctr.asm,
3027         config/rs6000/e500crtsavg32gpr.asm,
3028         config/rs6000/e500crtsavg64gpr.asm,
3029         config/rs6000/e500crtsavg64gprctr.asm: Use it.
3030         * config/rs6000/crtsavres.asm: Really remove.
3031
3032 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
3033
3034         Fix PR/25502
3035         * c-format.c (convert_format_name_to_system_name): Use
3036         TARGET_OVERRIDES_FORMAT_INIT.
3037         * config.gcc (extra_options): Add for mingw targets mingw.opt.
3038         * config/i386/mingw.opt: New.
3039         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
3040         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
3041         (ms_printf_length_specs): Removed const specifier.
3042         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
3043         * doc/invoke.texi (Wno-pedantic-ms-format): New.
3044
3045 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3046
3047         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
3048         * doc/install.texi: Bump recommended MPFR to 2.3.2.
3049
3050 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
3051
3052         PR middle-end/37808
3053         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
3054         sure that ref has valid bb.
3055
3056 2008-10-12  Richard Henderson  <rth@redhat.com>
3057
3058         PR middle-end/37447
3059         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
3060         * alias.c (value_addr_p, stack_addr_p): Remove.
3061         (nonoverlapping_memrefs_p): Remove IRA special case.
3062         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
3063         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
3064         * reload1.c (alter_reg): Use it.
3065
3066 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
3067
3068         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
3069         of registers instead of eax, ebx, ecx and edx.  Use for loop
3070         and check register for non-zero value before the call
3071         to decode_caches_intel.
3072
3073 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
3074
3075         PR rtl-optimization/37448
3076         * df.h: (df_ref_class): New enum.
3077         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
3078         (struct df_ref): Replaced with union df_ref_d.
3079         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
3080         New members of df_ref_d union.
3081         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
3082         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
3083         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
3084         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
3085         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3086         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
3087         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
3088         (df_scan_bb_info, df_bb_regno_first_def_find,
3089         df_bb_regno_last_def_find, df_find_def, df_find_use,
3090         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3091         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
3092         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
3093         df_get_artificial_defs, df_get_artificial_uses, union_defs)
3094         Replaced struct df_ref * with df_ref.
3095         * df-scan.c (df_collection_rec, df_null_ref_rec,
3096         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
3097         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
3098         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
3099         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
3100         df_reorganize_refs_by_reg_by_reg,
3101         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
3102         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
3103         df_sort_and_compress_refs, df_install_ref, df_install_refs,
3104         df_ref_record, df_get_conditional_uses, df_get_call_refs,
3105         df_bb_refs_record, df_exit_block_uses_collect,
3106         df_record_exit_block_uses, df_reg_chain_mark,
3107         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
3108         df_ref * with df_ref.
3109         (df_ref_record, df_uses_record, df_ref_create_structure): Added
3110         df_ref_class parameter.
3111         (df_scan_problem_data): Added new pools for different types of refs.
3112         (df_scan_free_internal, df_scan_alloc, df_free_ref,
3113         df_ref_create_structure): Processed new ref pools.
3114         (df_scan_start_dump): Added counts of refs and insns.
3115         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
3116         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3117         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
3118         code to pass df_ref_class down to ref creation functions.
3119         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
3120         df_reg_chain_mark): Use macros to hide references to df_refs.
3121         (df_ref_chain_change_bb): Removed.
3122         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
3123         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3124         Enhanced to understand df_ref union structure.
3125         * fwprop.c (local_ref_killed_between_p, use_killed_between,
3126         all_uses_available_at, update_df, try_fwprop_subst,
3127         forward_propagate_subreg, forward_propagate_and_simplify,
3128         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
3129         df_ref * with df_ref.
3130         (use_killed_between, all_uses_available_at): Use macros to hide
3131         references to df_refs.
3132         * regstat.c (regstat_bb_compute_ri,
3133         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
3134         df_ref.
3135         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
3136         see_handle_relevant_refs, see_analyze_one_def,
3137         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
3138         struct df_ref * with df_ref.
3139         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
3140         global_conflicts): Replaced struct df_ref * with df_ref.
3141         * ddg.c (create_ddg_dep_from_intra_loop_link,
3142         add_cross_iteration_register_deps, build_inter_loop_deps):
3143         Replaced struct df_ref * with df_ref.
3144         (create_ddg_dep_from_intra_loop_link,
3145         add_cross_iteration_register_deps): Use macros to hide references
3146         to df_refs.
3147         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
3148         df_ref * with df_ref.
3149         * df-core.c (df_bb_regno_first_def_find,
3150         df_bb_regno_last_def_find, df_find_def, df_find_use,
3151         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
3152         debug_df_ref): Replaced struct df_ref * with df_ref.
3153         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
3154         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
3155         df_ref.
3156         * web.c (union_defs, entry_register, replace_ref, web_main):
3157         Replaced struct df_ref * with df_ref.
3158         (union_defs, replace_ref): Use macros to hide references to df_refs.
3159         * global.c (compute_regs_asm_clobbered, build_insn_chain):
3160         Replaced struct df_ref * with df_ref.
3161         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
3162         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
3163         Replaced struct df_ref * with df_ref.
3164         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
3165         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
3166         with df_ref.
3167         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
3168         * df-byte-scan.c (df_compute_accessed_bytes_extract,
3169         df_compute_accessed_bytes_strict_low_part,
3170         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
3171         Replaced struct df_ref * with df_ref.
3172         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
3173         * init-regs.c (initialize_uninitialized_regs): Replaced struct
3174         df_ref * with df_ref.
3175         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
3176         check_dependency, check_dependencies, record_uses): Replaced
3177         struct df_ref * with df_ref.
3178         (invariant_for_use, check_dependency): Use macros to hide
3179         references to df_refs.
3180         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
3181         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
3182         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
3183         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
3184         references to df_refs.
3185         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
3186         with df_ref.
3187         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
3188         * df-problems.c (df_rd_bb_local_compute_process_def,
3189         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
3190         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
3191         df_chain_remove_problem, df_chain_create_bb_process_use,
3192         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
3193         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
3194         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
3195         df_byte_lr_simulate_artificial_refs_at_top,
3196         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
3197         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
3198         df_simulate_uses, df_simulate_artificial_refs_at_end,
3199         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
3200         df_ref.
3201         (df_chain_dump): Use macros to hide references to df_refs.
3202         * config/mips/mips.c (r10k_simplify_address): Replaced struct
3203         df_ref * with df_ref.
3204         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
3205         mark_artificial_uses, mark_reg_dependencies,
3206         byte_dce_process_block): Replaced struct df_ref * with df_ref.
3207
3208 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
3209
3210         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
3211         head comment.
3212         (array_ref_element_size): Likewise.
3213         (array_ref_low_bound): Likewise.
3214         (array_ref_up_bound): Likewise.
3215         * expr.c (contains_packed_reference): Likewise.
3216         (array_ref_element_size): Likewise.
3217         (array_ref_low_bound): Likewise.
3218         (array_ref_up_bound): Likewise.
3219         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
3220         with ARRAY_RANGE_REF.
3221         (idx_find_step): Likewise.
3222         (idx_record_use): Likewise.
3223         (strip_offset_1): Likewise.
3224         (idx_remove_ssa_names): Likewise.
3225
3226 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
3227             Andi Kleen  <ak@linux.intel.com>
3228
3229         * config/i386/cpuid.h (__cpuid_count): New defines.
3230         * config/i386/driver-i386.c (struct cache_desc): New structure.
3231         (describe_cache): Use struct cache_desc to pass cache descriptions.
3232         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
3233         (detect_caches_amd): Use struct cache_desc to describe caches.
3234         (decode_caches_intel): Use struct cache_desc to pass cache
3235         descriptions.  Update descriptions to match latest (rev -032,
3236         December 2007) CPUID documentation.  Do not check valid bit here.
3237         Check for Xeon MP value 0x49 problems.
3238         (detect_caches_cpuid2): New function, split from detect_caches_intel.
3239         Check valid bit before calling decode_caches_intel.  Detect number
3240         of times to repeat CPUID instruction.
3241         (detect_caches_cpuid4): New function.
3242         (detect_caches_intel): Depending on max_level, call
3243         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
3244         only when other methods fail to provide valid L2 cache description.
3245
3246 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3247
3248         PR middle-end/37608
3249         * pa.md (call, call_value): Generate an rtx for register r4 and pass
3250         it to PIC call patterns.
3251         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
3252         code generation and attributes from pattern.  Change peephole2 to
3253         split for noreturn case.  Revise split pattern for non noreturn case.
3254         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
3255         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
3256         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
3257         asserts.
3258
3259 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
3260
3261         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
3262         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
3263         and fp_type.
3264         (divdf3): Reformat long line.
3265
3266 2008-10-11  Michael J. Eager  <eager@eagercon.com>
3267
3268         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
3269         -mfpu options.
3270         (rs6000_handle_option): Process -mfpu options.
3271         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
3272         (enum fpu_type_t): New.
3273         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
3274         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
3275         fp_type.
3276         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
3277         (floatdidf2): Add TARGET_SINGLE_FPU condition.
3278         * config/rs6000/rs6000.opt (-mfpu): New.
3279         (-mxilinx-fpu): New.
3280         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
3281         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
3282         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
3283         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
3284         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
3285
3286 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
3287
3288         PR target/35760
3289         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
3290         LO_SUM on Darwin if mode has just one unit.
3291
3292 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
3293
3294         PR debug/37002
3295         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
3296         has been optimized out.
3297
3298 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
3299
3300         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
3301         instead of PIC_DIRECT_ADDR_P.
3302         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3303         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
3304         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
3305         (PIC_OFFSET_P): Rename to...
3306         (PCREL_SYMOFF_P): ...this.
3307         (PIC_DIRECT_ADDR_P): Delete.
3308         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
3309         PIC_OFFSET_P.
3310         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
3311         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
3312         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
3313         * config/sh/sh.c (print_operand): Remove CONST handling.
3314         (unspec_caller_rtx_p): Rewrite to use split_const and check
3315         the operands of UNSPEC bases.
3316         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
3317         with (unspec [A B] UNSPEC_SYMOFF).
3318         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
3319         UNSPEC_PCREL_SYMOFF.
3320         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
3321         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
3322         (UNSPEC_EXTRACT_U16): Likewise.
3323         (UNSPEC_SYMOFF): Likewise.
3324         (UNSPEC_PCREL_SYMOFF): Likewise.
3325         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
3326         of constants.
3327         (movsi_const_16bit): Likewise.
3328         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
3329         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
3330         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
3331         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
3332         with (unspec [A B] UNSPEC_SYMOFF).
3333         (symPLT_label2reg): Replace (minus A (minus B pc)) with
3334          (unspec [A B] PCREL_UNSPEC_SYMOFF).
3335         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
3336         (Csu): Likewise UNSPEC_EXTRACT_U16.
3337         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
3338         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
3339
3340 2008-10-10  Stepan Kasal  <skasal@redhat.com>
3341
3342         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
3343         for loop strip mining and loop blocking.
3344
3345 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
3346
3347         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
3348         vary types depending on debug info.
3349
3350 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
3351
3352         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
3353         before ensuring it's already computed.
3354
3355 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
3356
3357         * rtl.h (locator_eq): New decl.
3358         * cfglayout.c (locator_scope): New function.
3359         (insn_scope): Use it.
3360         (locator_eq): New function.
3361         (fixup_reorder_chain): Search for last insn in src bb
3362         that has locator set or first insn in dest bb.  Use
3363         locator_eq instead of == to compare locators.
3364         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
3365         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
3366         == to compare locators.
3367
3368         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
3369         as used.
3370         * gimple-low.c (lower_function_body, lower_gimple_return,
3371         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
3372         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
3373         goto_block on edges if goto_locus is known.
3374
3375         PR middle-end/37774
3376         * tree.h (get_object_alignment): Declare.
3377         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
3378         get_object_alignment if needed.
3379         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
3380         handling to ...
3381         (get_object_alignment): ... here.  New function.  Try harder to
3382         determine alignment from get_inner_reference returned offset.
3383
3384 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
3385
3386         * graphite.c (gloog): Don't call find_unreachable_blocks
3387         before delte_unreachable_blocks.
3388
3389         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
3390         goto_locus of true_edge into RTL locator.
3391
3392 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
3393
3394         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
3395         (*jcc_btdi_mask_rex64): Ditto.
3396         (*jcc_btsi): Ditto.
3397         (*jcc_btsi_mask): Ditto.
3398         (*jcc_btsi_1): Ditto.
3399         (*jcc_btsi_mask_1): Ditto.
3400
3401 2008-10-08  Paul Brook  <paul@codesourcery.com>
3402
3403         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
3404         compatible profiler (__gnu_mcount_nc).
3405         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
3406
3407 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
3408
3409         * config/i386/i386.c (initial_ix86_tune_features): Add
3410         X86_TUNE_USE_VECTOR_FP_CONVERTS.
3411         * config/i386/i386.h (ix86_tune_indices): Likewise.
3412         (TARGET_USE_VECTOR_FP_CONVERTS): New.
3413
3414         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
3415         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
3416         for FP to FP splitters.
3417
3418 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
3419
3420         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
3421         splitter.
3422
3423 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
3424
3425         PR target/36635
3426         PR target/37290
3427         PR rtl-optimization/37341
3428         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
3429         to ORIG_BB, pass through ORIG_BB recursively.
3430         (cse_condition_code_reg): Adjust caller.
3431
3432 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
3433
3434         * sdbout.c (sdbout_one_type): Treat the value type
3435         CONST_DECL for enumerals.
3436
3437 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
3438
3439         * config/i386/i386.md: Remove trailing white spaces.
3440
3441 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
3442
3443         PR rtl-optimization/37448
3444         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
3445         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
3446         Make unsigned long.
3447         (struct output_info) [count]: Renamed total_created and made
3448         unsigned long.
3449         (struct output_info) [size]: Renamed total_allocated and made
3450         unsigned long.
3451         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
3452         Properly keep track of desc->size.
3453         (print_statistics, dump_alloc_pool_statistics): Enhance the
3454         printing of statistics to print the number of elements and to use
3455         unsigned longs.
3456
3457 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
3458
3459         PR middle-end/37576
3460         * opts.h (CL_SAVE): Move up to flags range.
3461         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
3462         CL_COMMON): Renumber.
3463         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
3464         * opts.c (common_handle_option): Revert last change.
3465
3466 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
3467
3468         * config/i386/i386-protos.h (ix86_schedule): New.
3469
3470         * config/i386/i386.c (ix86_schedule): New.
3471         (override_options): Add schedule to processor_alias_table.  Set
3472         ix86_schedule from the schedule field in processor_alias_tabl