OSDN Git Service

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