OSDN Git Service

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