OSDN Git Service

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