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