OSDN Git Service

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