OSDN Git Service

2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
2
3         * graphite.c (graphite_apply_transformations): Check for
4         -fgraphite-identity.
5         * toplev.c (process_options): Add graphite_identity.
6         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
7
8 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
9
10         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
11         mulhisihl and mulhisihh builtins.
12
13         From Jie Zhang  <jie.zhang@analog.com>
14         * config/bfin/bfin.md (composev2hi): Put operands into vector
15         with correct order.
16         
17 2008-10-22  Chao-ying Fu  <fu@mips.com>
18
19         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
20
21 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
22
23         From Mike Frysinger  <michael.frysinger@analog.com>
24         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
25         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
26         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
27         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
28         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
29         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
30         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
31         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
32         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
33         __ADSPBF51x__ for all of them.
34         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
35         -mcpu bf512, bf514, bf516, and bf518.
36         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
37         bf512-none, bf514-none, bf516-none, and bf518-none.
38         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
39         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
40         * doc/invoke.texi (Blackfin Options): Document that
41         -mcpu now accepts bf512, bf514, bf516, and bf518.
42
43 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
44
45         PR middle-end/37882
46         * fold-const.c (build_range_type): For 1 .. signed_max
47         range call build_nonstandard_inter_type if signed_type_for
48         returned a type with bigger precision.
49
50 2008-10-22  Richard Guenther  <rguenther@suse.de>
51
52         * tree.def (COMPLEX_TYPE): Constrain element type.
53         * tree.c (build_complex_type): Assert that.
54         * tree-ssa-structalias.c (could_have_pointers): Complex types
55         cannot have pointers.
56
57 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
58
59         PR c/30949
60         * c-typeck.c (convert_for_assignment): Do not give declaration's
61         location for builtins. Spell out which type was expected and which
62         was given.
63
64 2008-10-22  Nick Clifton  <nickc@redhat.com>
65
66         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
67         the fdpic register to be a target when running in fdpic mode.
68
69 2008-10-22 Rafael Espindola  <espindola@google.com>
70
71         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
72         newly created statements.
73
74 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
75
76         PR target/37633
77         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
78         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
79         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
80
81 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
82
83         PR target/37880
84         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
85         Adjust -mcmodel=medium description for 2005-07-31 changes.
86
87 2008-10-22  Jan Hubicka  <jh@suse.cz>
88             Jakub Jelinek  <jakub@redhat.com>
89
90         PR middle-end/35853
91         * doc/invoke.texi: Remove references to obsoleted -d dumps.
92
93 2008-10-21  Richard Henderson  <rth@redhat.com>
94
95         PR 37815
96         * emit-rtl.c (get_spill_slot_decl): Export.
97         * emit-rtl.h (get_spill_slot_decl): Declare.
98         * var-tracking.c (vt_add_function_parameters): Relax assertion
99         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
100
101 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
102
103         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
104         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
105         of from insn.
106
107 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
108
109         PR middle-end/37669
110         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
111         processed by get_maxval_strlen.
112
113 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
114
115         PR target/35485
116         * tree.c (get_file_function_name): Copy first_global_object_name.
117         Centralize call to clean_symbol_name.
118
119 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
120
121         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
122         * config/svr4.h (SVR4_ASM_SPEC): New.
123         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
124         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
125
126         * doc/invoke.texi (Option Summary): Add -T to linker options.
127         (Link Options): Document -T.
128         
129 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
130
131         * tree-inline.c (tree_inlinable_function_p): Remove tuples
132         debugging hack.
133
134         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
135         INTEGER_CSTs.
136
137         PR debug/37020
138         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
139
140 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
141
142         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
143         part of expression.
144
145 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
146
147         * doc/install.texi: Fix typos in previous patch.
148
149 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
150
151         * doc/install.texi: Document in-tree building of gcc and mpfr.
152
153 2008-10-19  Richard Guenther  <rguenther@suse.de>
154
155         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
156
157 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
158
159         PR c/30260
160         * c-decl.c (finish_enum): Convert non-integer enumerators to enum
161         type.
162         (build_enumerator): Convert enumerators that fit in integer to
163         integer type.
164
165 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
166
167         * config/i386/i386.md (unnamed peephole2): Do not force memory
168         operands of arith or logical instructions into registers for
169         non-TARGET_READ_MODIFY targets.
170
171         (ffs_cmove): Change operand 0 predicate to register_operand.
172         Change operand 1 predicate to nonimmediate_operand.
173         (ffsdi2): Ditto.
174         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
175
176 2008-10-18  Richard Guenther  <rguenther@suse.de>
177
178         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
179         VIEW_CONVERT_EXPR case against invalid gimple.
180
181 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
182
183         * c-parser.c (c_parser_binary_expression): Silence the
184         uninitialized variable warning emitted for binary_loc.
185
186 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
187
188         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
189         translation cache.
190
191 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
192
193         PR c/33192
194         * c-typeck.c (build_unary_op): Use omit_one_operand for
195         IMAGPART_EXPR of real argument.
196
197 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
198
199         PR tree-optimization/37664
200         * fold-const.c (fold_binary): When optimizing comparison with
201         highest or lowest type's value, don't consider TREE_OVERFLOW.
202
203 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
204
205         PR target/35483
206         * Makefile.in (coverage.o): Depend on $(TM_P_H).
207         * coverage.c: Include tm_p.h.
208         * config/rs6000/x-aix (jc1): Override LDFLAGS.
209         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
210         dollar signs from PREFIX.
211         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
212         instead of manual strip_name_encoding.
213
214 2008-10-16  Richard Guenther  <rguenther@suse.de>
215
216         PR middle-end/37418
217         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
218         volatile qualified functions or methods as relevant.
219
220 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
221
222         PR tree-optimization/37525
223         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
224         sizetype unsigned constants, both in the case of C and bounds.
225
226 2008-10-15  Jan Hubicka  <jh@suse.cz>
227
228         * ira-emit.c (change_regs): Return false when replacing reg by
229         itself.
230
231 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
232
233         PR target/37633
234         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
235         HARD_REGNO_CALL_PART_CLOBBERED.
236
237 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
238
239         PR middle-end/37535
240         * ira-lives.c (mark_early_clobbers): Remove.
241         (make_pseudo_conflict, check_and_make_def_use_conflicts,
242         check_and_make_def_conflicts,
243         make_early_clobber_and_input_conflicts,
244         mark_hard_reg_early_clobbers): New functions.
245         (process_bb_node_lives): Call
246         make_early_clobber_and_input_conflicts and
247         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
248
249         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
250         early clobbers of pseudo-registers.
251         
252 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
253
254         PR middle-end/37674
255         * ira-build.c (ira_flattening): Recalculate
256         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
257         from the scratch instead of the propagation.
258         
259 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
260
261         * doc/rtl.texi (const_double): Remove the "addr" operand.
262         Describe CONST_DOUBLE_* macros under const_double rather
263         than const_vector.
264         (const_fixed): Fix the operand description.
265         (const): Add an @findex directive.
266         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
267         after the constant rtl table.
268         (fix): Combine floating-point and fixed-point descriptions.
269         Fix hyphenation.
270         * sched-deps.c (sched_analyze_2): Remove reference to
271         CONST_DOUBLE_CHAIN.
272
273 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
274
275         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
276         UNSPEC_GOTSYM_OFFs.
277         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
278         for UNSPEC_GOTSYM_OFFs.
279         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
280         (add_GOT_to_pic_reg): Use it.
281         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
282
283 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
284             Harsha Jagasia  <harsha.jagasia@amd.com>
285
286         PR tree-optimization/37485
287         * graphite.c (gmp_cst_to_tree): Moved.
288         (iv_stack_entry_is_constant): New.
289         (iv_stack_entry_is_iv): New.
290         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
291         (loop_iv_stack_insert_constant): New.
292         (loop_iv_stack_pop): Use new datatpype.
293         (loop_iv_stack_get_iv): Same.
294         (loop_iv_stack_get_iv_from_name): Same.
295         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
296         (loop_iv_stack_patch_for_consts): New.
297         (loop_iv_stack_remove_constants): New.
298         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
299         (translate_clast): Call loop_iv_stack_patch_for_consts and
300         loop_iv_stack_remove_constants.
301         (gloog): Use new datatype.  Redirect construction edge to end
302         block to avoid accidental deletion.
303         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
304         iv stack entry.
305         (union iv_stack_entry_data): New.  Data in iv stack entry.
306         (struct iv_stack_entry): New.  Datatype for iv stack entries.
307
308 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
309
310         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
311         * graphite.c (free_scop): Same.
312         (build_scops): Same.
313         (free_scattering): New.
314         (build_cloog_prog): Call free_scattering.
315         (patch_phis_for_virtual_defs): Fix memleak.
316         (graphite_trans_bb_strip_mine): Same.
317         (limit_scops): Same.
318
319 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
320             Harsha Jagasia  <harsha.jagasia@amd.com>
321
322         PR tree-optimization/37828
323         * graphite.c (graphite_trans_loop_block): Do not loop block
324         single nested loops.
325
326 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
327
328         PR tree-optimization/37686
329         * tree-loop-linear.c (linear_transform_loops): Build a
330         loop nest vector.  Pass it to lambda_compute_access_matrices.
331         * tree-data-ref.h (struct access_matrix): Store the loop nest
332         relative to which it encodes the information.
333         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
334         (am_vector_index_for_loop): Reimplemented: iterate over the
335         loop nest for finding the loop index in the access matrix.
336         (lambda_compute_access_matrices): Update declaration.
337         * lambda-code.c (build_access_matrix): Pass the loop nest and
338         record it.
339         (lambda_compute_access_matrices): Same.
340
341 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
342
343         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
344         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
345         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
346         already implies hard float.  Also fix several insn condition
347         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
348
349 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
350
351         PR target/35483
352         Based on patches by Laurent Vivier.
353         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
354         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
355         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
356         dollar sign to underscore.
357         (ASM_OUTPUT_EXTERNAL): Same.
358         (ASM_OUTPUT_LABELREF): New.
359         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
360
361         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
362         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
363         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
364         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
365
366 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
367
368         PR tree-optimization/36881
369         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
370         that each value doesn't need runtime relocations, for !flag_pic
371         check that each value is just a valid initializer constant.
372
373 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
374
375         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
376         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
377         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
378         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
379         GR_AND_ACC_REGS.
380         (REG_CLASS_NAMES): Update accordingly.
381         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
382         rather than an unpredictable descriptive string.
383         * config/mips/mips.c (mips_register_move_cost): Remove comment.
384         (mips_register_move_cost): Check for specific COP*_REGS classes,
385         instead of ALL_COP_AND_GR_REGS.
386         (mips_ira_cover_classes): New function.
387         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
388         (TARGET_IRA_COVER_CLASSES): Define.
389
390 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
391
392         PR c++/37553
393         * tree.c (build_type_attribute_qual_variant): Hash on the
394         unqualified type, and don't overwrite an existing
395         (type_hash_eq): Make the TYPE_NAME of the types significant, to
396         allow distinguishing between wchar_t and its underlying type. This
397         also means that we'll retain a little more typedef information.
398
399 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
400             Dmitry Melnik  <dm@ispras.ru>
401             Dmitry Zhurikhin  <zhur@ispras.ru>
402             Alexander Monakov  <amonakov@ispras.ru>
403             Maxim Kuvyrkov  <maxim@codesourcery.com>
404
405         * target.h (struct gcc_target): Update prototypes of needs_block_p
406         and gen_spec_check.
407         * haifa-sched.c (create_check_block_twin): Update calls to the above.
408         * sel-sched.c (create_speculation_check): Likewise.
409         * doc/tm.texi: Provide documentation for new target hooks.
410                 
411         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
412         (ia64_gen_spec_insn): Removed.
413         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
414         ia64_gen_spec_check): New static functions.
415         (ia64_alloc_sched_context, ia64_init_sched_context,
416         ia64_set_sched_context, ia64_clear_sched_context,
417         ia64_free_sched_context, ia64_get_insn_spec_ds,
418         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
419         (ia64_needs_block_p): Change prototype.
420         (ia64_gen_check): Rename to ia64_gen_spec_check.
421         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
422         into declaration, add special memory dependencies handling.
423         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
424         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
425         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
426         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
427         Define new target hooks.
428         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
429         (ia64_optimization_options): Turn on selective scheduling with -O3,
430         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
431         with selective scheduling.
432         (ia64_override_options): Initialize align_loops and align_functions
433         to 32 and 64, respectively.  Set global selective scheduling flags
434         according to target-dependent flags.
435         (rtx_needs_barrier): Support UNSPEC_LDS_A.
436         (group_barrier_needed): Use new mstop-bit-before-check flag.
437         Add heuristic.
438         (dfa_state_size): Make global.
439         (spec_check_no, max_uid): Remove.
440         (mem_ops_in_group, current_cycle): New variables.
441         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
442         Initialize new variables.
443         (is_load_p, record_memory_reference): New functions.
444         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
445         reached.
446         (ia64_variable_issue): Change use of current_sched_info to
447         sched_deps_info.  Update comment.  Note if a load or a store is issued.
448         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
449         advance if maximal number of loads or stores was issued on current
450         cycle.
451         (scheduled_good_insn): New static helper function.
452         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
453         a group barrier is needed.  Fix vertical spacing.  Guard the code
454         doing state transition with last_scheduled_insn check.
455         Mark that a stop bit should be before current insn if there was a 
456         cycle advance.  Update current_cycle and mem_ops_in_group.
457         (ia64_h_i_d_extended): Change use of current_sched_info to
458         sched_deps_info. Reallocate stops_p by larger chunks.
459         (struct _ia64_sched_context): New structure.
460         (ia64_sched_context_t): New typedef.
461         (ia64_alloc_sched_context, ia64_init_sched_context,
462         ia64_set_sched_context, ia64_clear_sched_context,
463         ia64_free_sched_context): New static functions.
464         (gen_func_t): New typedef.
465         (get_spec_load_gen_function): New function.
466         (SPEC_GEN_EXTEND_OFFSET): Declare.      
467         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
468         (get_mode_no_for_insn): Change the condition that prevents use of
469         special hardware registers so it can now handle pseudos.
470         (get_spec_unspec_code): New function.
471         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
472         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
473         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
474         during selective scheduling.
475         (ia64_speculate_insn): Use ds_get_speculation_types when
476         determining whether we need to change the pattern.
477         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
478         (ia64_spec_check_src_p): Support new speculation/check codes.
479         (struct bundle_state): New field.
480         (issue_nops_and_insn): Initialize it.
481         (insert_bundle_state): Minimize mid-bundle stop bits.
482         (important_for_bundling_p): New function.
483         (get_next_important_insn): Use important_for_bundling_p.
484         (bundling): When shifting TImode from unimportant insns, ignore
485         also group barriers.  Assert that best state is found before
486         the backward bundling pass.  Print number of mid-bundle stop bits.
487         Minimize mid-bundle stop bits.  Check correct calculation of
488         mid-bundle stop bits.
489         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
490         (final_emit_insn_group_barriers): Emit stop bits before insns starting
491         a new cycle.
492         (sel2_run): New variable.
493         (ia64_reorg): When flag_selective_scheduling2 is set, run the selective
494         scheduling pass instead of schedule_ebbs.
495         
496         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
497         (UNSPEC_LDS_A): New UNSPEC.
498         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
499         movti_internal, movsf_internal, movdf_internal,
500         movxf_internal): Make visible.  Add speculable* attributes.
501         (output_c_nc): New mode attribute.
502         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
503         mov<mode>_nc, zero_extend<mode>di2_nc,
504         advanced_load_check_nc_<mode>): New insns.
505         (zero_extend*): Add speculable* attributes.
506
507         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
508         (msched-stop-bits-after-every-cycle): Likewise.
509         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
510         Likewise.
511         (msched-spec-verbose): Remove.
512         (msched-prefer-non-data-spec-insns,
513         msched-prefer-non-control-spec-insns,
514         msched-count-spec-in-critical-path,
515         msel-sched-dont-check-control-spec): Use Target  Report Var
516         instead of Common Report Var.
517
518         * config/ia64/itanium2.md: Remove incorrect bypass.
519         
520         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
521
522 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
523
524         PR middle-end/37805
525         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
526         and -fhelp=separate.
527
528 2008-10-14  Ben Elliston  <bje@au.ibm.com>
529
530         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
531
532 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
533
534         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
535         non-integer modes.
536
537 2008-10-13  Matthias Klose  <doko@ubuntu.com>
538
539         * config/pa/linux-atomic.c: Work around missing header file
540         for hppa64-linux-gnu targets.
541
542 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
543             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
544             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
545             Grace Cao  <grace_cao@playstation.sony.com>
546
547         * doc/invoke.texi (-mgen-cell-microcode): Document.
548         (-mwarn-cell-microcode): Document.
549         * cfglayout.c (locator_location): Export.
550         * rtl.h (locator_location): Define prototype.
551         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
552         New predicate.
553         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
554         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
555         (mwarn-cell-microcode): New option.
556         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
557         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
558         cell and not already set.
559         Turn off string instructions if not generating cell microcode.
560         (rs6000_final_prescan_insn): New function that warns about microcoded
561         instructions.
562         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
563         * config/rs6000/rs6000.md
564         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
565         the instruction would have been microcoded on the Cell.  Set cell_micro
566         to always on unnamed patterns for the string instructions.
567         (cell_micro): Update definition, remove load/store conditional
568         microcoded.
569         (sign_extend:DI): Define new pattern for non microcoded version.
570         (sign_extend:SI): Likewise.
571         (compare (div:P)): Set cell_micro to not.
572         (andsi3): Define as an expand.
573         (andsi3_mc): New pattern.
574         (andsi3_nomc): New pattern.
575         (andsi3_internal0_nomc): New pattern.
576         (andsi3_internal2): Rename to ...
577         (andsi3_internal2_mc): this and enable iff generating microcode.
578         (andsi3_internal3): Rename to ...
579         (andsi3_internal3_mc): this and enable iff generating microcode.
580         (andsi3_internal4): Enable iif generating microcode.
581         (andsi3_internal5): Rename to ..
582         (andsi3_internal5_mc): this and enable iff generating microcode.
583         (andsi3_internal5_nomc): New pattern.
584         (extzvdi_internal1): Enable iff generating microcode.
585         (extzvdi_internal2): Likewise.
586         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
587         (anddi3): Change to expand.
588         (anddi3_mc): Rename from anddi3.
589         (anddi3_no_mc): New pattern.
590         (anddi3_internal2): Rename to ..
591         (anddi3_internal2_mc): this and enable iff generating microcode.
592         (anddi3_internal2_nomc): New pattern.
593         (anddi3_internal3): Rename to ..
594         (anddi3_internal3_mc): this and enable iff generating microcode.
595         (anddi3_internal3_nomc): New pattern.
596         (movti_string): Set cell_micro to always if TARGET_STRING.
597         (stmsi8): Set cell_micro to always.
598         (stmsi7): Likewise.
599         (stmsi6): Likewise.
600         (stmsi5): Likewise.
601         (stmsi4): Likewise.
602         (stmsi3): Likewise.
603         (stmsi8_power): Likewise.
604         (stmsi7_power): Likewise.
605         (stmsi6_power): Likewise.
606         (stmsi5_power): Likewise.
607         (stmsi4_power): Likewise.
608         (stmsi3_power): Likewise.
609         (movsi_update2): Enable iff generating microcode.
610         (movhi_update3): Likewise.
611         (lmw): Set cell_micro to always.
612
613 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
614
615         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
616         * config/s390/s390.c (machine_function): Remove
617         decomposed_literal_pool_addresses_ok_p.
618         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
619         the difference of two labels.
620         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
621         (s390_pool_offset): New function.
622         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
623         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
624
625 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
626
627         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
628         (powerpc*-*-linux-gnu*): Describe.
629         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
630         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
631         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
632         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
633         config/rs6000/e500crtres32gpr.asm,
634         config/rs6000/e500crtres64gpr.asm,
635         config/rs6000/e500crtres64gprctr.asm,
636         config/rs6000/e500crtrest32gpr.asm,
637         config/rs6000/e500crtrest64gpr.asm,
638         config/rs6000/e500crtresx32gpr.asm,
639         config/rs6000/e500crtresx64gpr.asm,
640         config/rs6000/e500crtsav32gpr.asm,
641         config/rs6000/e500crtsav64gpr.asm,
642         config/rs6000/e500crtsav64gprctr.asm,
643         config/rs6000/e500crtsavg32gpr.asm,
644         config/rs6000/e500crtsavg64gpr.asm,
645         config/rs6000/e500crtsavg64gprctr.asm: Use it.
646         * config/rs6000/crtsavres.asm: Really remove.
647
648 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
649
650         Fix PR/25502
651         * c-format.c (convert_format_name_to_system_name): Use
652         TARGET_OVERRIDES_FORMAT_INIT.
653         * config.gcc (extra_options): Add for mingw targets mingw.opt.
654         * config/i386/mingw.opt: New.
655         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
656         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
657         (ms_printf_length_specs): Removed const specifier.
658         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
659         * doc/invoke.texi (Wno-pedantic-ms-format): New.
660
661 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
662
663         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
664         * doc/install.texi: Bump recommended MPFR to 2.3.2.
665
666 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
667
668         PR middle-end/37808
669         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
670         sure that ref has valid bb.
671         
672 2008-10-12  Richard Henderson  <rth@redhat.com>
673
674         PR middle-end/37447
675         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
676         * alias.c (value_addr_p, stack_addr_p): Remove.
677         (nonoverlapping_memrefs_p): Remove IRA special case.
678         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
679         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
680         * reload1.c (alter_reg): Use it.
681
682 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
683
684         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
685         of registers instead of eax, ebx, ecx and edx.  Use for loop
686         and check register for non-zero value before the call
687         to decode_caches_intel.
688
689 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
690
691         PR rtl-optimization/37448
692         * df.h: (df_ref_class): New enum.
693         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
694         (struct df_ref): Replaced with union df_ref_d.
695         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
696         New members of df_ref_d union.
697         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
698         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
699         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
700         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
701         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
702         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
703         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
704         (df_scan_bb_info, df_bb_regno_first_def_find,
705         df_bb_regno_last_def_find, df_find_def, df_find_use,
706         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
707         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
708         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
709         df_get_artificial_defs, df_get_artificial_uses, union_defs)
710         Replaced struct df_ref * with df_ref.
711         * df-scan.c (df_collection_rec, df_null_ref_rec,
712         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
713         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
714         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
715         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
716         df_reorganize_refs_by_reg_by_reg,
717         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
718         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
719         df_sort_and_compress_refs, df_install_ref, df_install_refs,
720         df_ref_record, df_get_conditional_uses, df_get_call_refs,
721         df_bb_refs_record, df_exit_block_uses_collect,
722         df_record_exit_block_uses, df_reg_chain_mark,
723         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
724         df_ref * with df_ref.
725         (df_ref_record, df_uses_record, df_ref_create_structure): Added
726         df_ref_class parameter.
727         (df_scan_problem_data): Added new pools for different types of refs.
728         (df_scan_free_internal, df_scan_alloc, df_free_ref,
729         df_ref_create_structure): Processed new ref pools.
730         (df_scan_start_dump): Added counts of refs and insns.
731         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
732         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
733         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
734         code to pass df_ref_class down to ref creation functions.
735         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
736         df_reg_chain_mark): Use macros to hide references to df_refs.
737         (df_ref_chain_change_bb): Removed.
738         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
739         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
740         Enhanced to understand df_ref union structure.
741         * fwprop.c (local_ref_killed_between_p, use_killed_between,
742         all_uses_available_at, update_df, try_fwprop_subst,
743         forward_propagate_subreg, forward_propagate_and_simplify,
744         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
745         df_ref * with df_ref.
746         (use_killed_between, all_uses_available_at): Use macros to hide
747         references to df_refs.
748         * regstat.c (regstat_bb_compute_ri,
749         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
750         df_ref.
751         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
752         see_handle_relevant_refs, see_analyze_one_def,
753         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
754         struct df_ref * with df_ref.
755         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
756         global_conflicts): Replaced struct df_ref * with df_ref.
757         * ddg.c (create_ddg_dep_from_intra_loop_link,
758         add_cross_iteration_register_deps, build_inter_loop_deps):
759         Replaced struct df_ref * with df_ref.
760         (create_ddg_dep_from_intra_loop_link,
761         add_cross_iteration_register_deps): Use macros to hide references
762         to df_refs.
763         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
764         df_ref * with df_ref.
765         * df-core.c (df_bb_regno_first_def_find,
766         df_bb_regno_last_def_find, df_find_def, df_find_use,
767         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
768         debug_df_ref): Replaced struct df_ref * with df_ref.
769         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
770         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
771         df_ref.
772         * web.c (union_defs, entry_register, replace_ref, web_main):
773         Replaced struct df_ref * with df_ref.
774         (union_defs, replace_ref): Use macros to hide references to df_refs.
775         * global.c (compute_regs_asm_clobbered, build_insn_chain):
776         Replaced struct df_ref * with df_ref.
777         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
778         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
779         Replaced struct df_ref * with df_ref.
780         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
781         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
782         with df_ref.
783         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
784         * df-byte-scan.c (df_compute_accessed_bytes_extract,
785         df_compute_accessed_bytes_strict_low_part,
786         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
787         Replaced struct df_ref * with df_ref.
788         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
789         * init-regs.c (initialize_uninitialized_regs): Replaced struct
790         df_ref * with df_ref.
791         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
792         check_dependency, check_dependencies, record_uses): Replaced
793         struct df_ref * with df_ref.
794         (invariant_for_use, check_dependency): Use macros to hide
795         references to df_refs.
796         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
797         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
798         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
799         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
800         references to df_refs.
801         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
802         with df_ref.
803         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
804         * df-problems.c (df_rd_bb_local_compute_process_def,
805         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
806         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
807         df_chain_remove_problem, df_chain_create_bb_process_use,
808         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
809         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
810         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
811         df_byte_lr_simulate_artificial_refs_at_top,
812         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
813         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
814         df_simulate_uses, df_simulate_artificial_refs_at_end,
815         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
816         df_ref.
817         (df_chain_dump): Use macros to hide references to df_refs.
818         * config/mips/mips.c (r10k_simplify_address): Replaced struct
819         df_ref * with df_ref.
820         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
821         mark_artificial_uses, mark_reg_dependencies,
822         byte_dce_process_block): Replaced struct df_ref * with df_ref.
823
824 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
825
826         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
827         head comment.
828         (array_ref_element_size): Likewise.
829         (array_ref_low_bound): Likewise.
830         (array_ref_up_bound): Likewise.
831         * expr.c (contains_packed_reference): Likewise.
832         (array_ref_element_size): Likewise.
833         (array_ref_low_bound): Likewise.
834         (array_ref_up_bound): Likewise.
835         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
836         with ARRAY_RANGE_REF.
837         (idx_find_step): Likewise.
838         (idx_record_use): Likewise.
839         (strip_offset_1): Likewise.
840         (idx_remove_ssa_names): Likewise.
841
842 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
843             Andi Kleen  <ak@linux.intel.com>
844
845         * config/i386/cpuid.h (__cpuid_count): New defines.
846         * config/i386/driver-i386.c (struct cache_desc): New structure.
847         (describe_cache): Use struct cache_desc to pass cache descriptions.
848         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
849         (detect_caches_amd): Use struct cache_desc to describe caches.
850         (decode_caches_intel): Use struct cache_desc to pass cache
851         descriptions.  Update descriptions to match latest (rev -032,
852         December 2007) CPUID documentation.  Do not check valid bit here.
853         Check for Xeon MP value 0x49 problems.
854         (detect_caches_cpuid2): New function, split from detect_caches_intel.
855         Check valid bit before calling decode_caches_intel.  Detect number
856         of times to repeat CPUID instruction.
857         (detect_caches_cpuid4): New function.
858         (detect_caches_intel): Depending on max_level, call
859         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
860         only when other methods fail to provide valid L2 cache description.
861
862 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
863
864         PR middle-end/37608
865         * pa.md (call, call_value): Generate an rtx for register r4 and pass
866         it to PIC call patterns.
867         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
868         code generation and attributes from pattern.  Change peephole2 to split
869         for noreturn case.  Revise split pattern for non noreturn case.
870         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
871         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
872         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
873         asserts.
874
875 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
876
877         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
878         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
879         and fp_type.
880         (divdf3): Reformat long line.
881
882 2008-10-11  Michael J. Eager  <eager@eagercon.com>
883
884         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
885         -mfpu options.
886         (rs6000_handle_option): Process -mfpu options.
887         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
888         (enum fpu_type_t): New.
889         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
890         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
891         fp_type.
892         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
893         (floatdidf2): Add TARGET_SINGLE_FPU condition.
894         * config/rs6000/rs6000.opt (-mfpu): New.
895         (-mxilinx-fpu): New.
896         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
897         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
898         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
899         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
900         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
901
902 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
903
904         PR target/35760
905         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
906         LO_SUM on Darwin if mode has just one unit.
907
908 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
909
910         PR debug/37002
911         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
912         has been optimized out.
913
914 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
915
916         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
917         instead of PIC_DIRECT_ADDR_P.
918         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
919         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
920         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
921         (PIC_OFFSET_P): Rename to...
922         (PCREL_SYMOFF_P): ...this.
923         (PIC_DIRECT_ADDR_P): Delete.
924         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
925         PIC_OFFSET_P.
926         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
927         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
928         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
929         * config/sh/sh.c (print_operand): Remove CONST handling.
930         (unspec_caller_rtx_p): Rewrite to use split_const and check
931         the operands of UNSPEC bases.
932         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
933         with (unspec [A B] UNSPEC_SYMOFF).
934         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
935         UNSPEC_PCREL_SYMOFF.
936         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
937         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
938         (UNSPEC_EXTRACT_U16): Likewise.
939         (UNSPEC_SYMOFF): Likewise.
940         (UNSPEC_PCREL_SYMOFF): Likewise.
941         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
942         of constants.
943         (movsi_const_16bit): Likewise.
944         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
945         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
946         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
947         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
948         with (unspec [A B] UNSPEC_SYMOFF).
949         (symPLT_label2reg): Replace (minus A (minus B pc)) with
950          (unspec [A B] PCREL_UNSPEC_SYMOFF).
951         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
952         (Csu): Likewise UNSPEC_EXTRACT_U16.
953         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
954         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
955
956 2008-10-10  Stepan Kasal  <skasal@redhat.com>
957
958         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
959         for loop strip mining and loop blocking.
960
961 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
962
963         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
964         vary types depending on debug info.
965
966 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
967
968         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
969         before ensuring it's already computed.
970
971 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
972
973         * rtl.h (locator_eq): New decl.
974         * cfglayout.c (locator_scope): New function.
975         (insn_scope): Use it.
976         (locator_eq): New function.
977         (fixup_reorder_chain): Search for last insn in src bb
978         that has locator set or first insn in dest bb.  Use
979         locator_eq instead of == to compare locators.
980         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
981         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
982         == to compare locators.
983
984         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
985         as used.
986         * gimple-low.c (lower_function_body, lower_gimple_return,
987         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
988         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
989         goto_block on edges if goto_locus is known.
990
991         PR middle-end/37774
992         * tree.h (get_object_alignment): Declare.
993         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
994         get_object_alignment if needed.
995         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
996         to ...
997         (get_object_alignment): ... here.  New function.  Try harder to
998         determine alignment from get_inner_reference returned offset.
999
1000 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1001
1002         * graphite.c (gloog): Don't call find_unreachable_blocks
1003         before delte_unreachable_blocks.
1004
1005         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1006         goto_locus of true_edge into RTL locator.
1007
1008 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
1009
1010         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1011         (*jcc_btdi_mask_rex64): Ditto.
1012         (*jcc_btsi): Ditto.
1013         (*jcc_btsi_mask): Ditto.
1014         (*jcc_btsi_1): Ditto.
1015         (*jcc_btsi_mask_1): Ditto.
1016
1017 2008-10-08  Paul Brook  <paul@codesourcery.com>
1018
1019         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1020         compatible profiler (__gnu_mcount_nc).
1021         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1022
1023 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1024
1025         * config/i386/i386.c (initial_ix86_tune_features): Add
1026         X86_TUNE_USE_VECTOR_FP_CONVERTS.
1027         * config/i386/i386.h (ix86_tune_indices): Likewise.
1028         (TARGET_USE_VECTOR_FP_CONVERTS): New.
1029
1030         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1031         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1032         for FP to FP splitters.
1033
1034 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1035
1036         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1037         splitter.
1038
1039 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1040
1041         PR target/36635
1042         PR target/37290
1043         PR rtl-optimization/37341
1044         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1045         to ORIG_BB, pass through ORIG_BB recursively.
1046         (cse_condition_code_reg): Adjust caller.
1047
1048 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
1049
1050         * sdbout.c (sdbout_one_type): Treat the value type
1051         CONST_DECL for enumerals.
1052
1053 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1054
1055         * config/i386/i386.md: Remove trailing white spaces.
1056
1057 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1058
1059         PR rtl-optimization/37448
1060         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1061         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1062         Make unsigned long.
1063         (struct output_info) [count]: Renamed total_created and made
1064         unsigned long.
1065         (struct output_info) [size]: Renamed total_allocated and made
1066         unsigned long.
1067         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1068         Properly keep track of desc->size.
1069         (print_statistics, dump_alloc_pool_statistics): Enhance the
1070         printing of statistics to print the number of elements and to use
1071         unsigned longs.
1072         
1073 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1074
1075         PR middle-end/37576
1076         * opts.h (CL_SAVE): Move up to flags range.
1077         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1078         CL_COMMON): Renumber.
1079         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1080         * opts.c (common_handle_option): Revert last change.
1081
1082 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1083
1084         * config/i386/i386-protos.h (ix86_schedule): New.
1085
1086         * config/i386/i386.c (ix86_schedule): New.
1087         (override_options): Add schedule to processor_alias_table.  Set
1088         ix86_schedule from the schedule field in processor_alias_table.
1089         (ix86_function_specific_save): Save ix86_schedule.
1090         (ix86_function_specific_restore): Restore ix86_schedule.
1091
1092         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1093         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
1094         and generic32.
1095
1096         * config/i386/i386.opt: Add schedule.
1097
1098         * config/i386/ppro.md: Remove generic32.
1099
1100 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
1101
1102         PR c/35437
1103         * expr.c (count_type_elements): Handle ERROR_MARK.
1104
1105 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1106
1107         PR debug/29609
1108         PR debug/36690
1109         PR debug/37616
1110         * basic-block.h (struct edge_def): Add goto_block field.
1111         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1112         one insn with locus corresponding to edge's goto_locus if !optimize.
1113         * profile.c (branch_prob): Copy edge's goto_block.
1114         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1115         emitted jumps.
1116         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1117         locator in between the merged basic blocks if !optimize and needed.
1118         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1119         goto_locus into RTL locator.  For unconditional jump use that
1120         locator for the jump insn.
1121         (expand_gimple_cond): Convert goto_block and goto_locus into
1122         RTL locator for all remaining edges.  For unconditional jump
1123         use that locator for the jump insn.
1124         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1125         there is more than one edge or insn locator along the forwarding
1126         edges and !optimize.  If there is just one, set e->goto_locus.
1127         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1128         edge's goto_block.
1129         (move_block_to_fn): Adjust edge's goto_block.
1130
1131 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1132
1133         PR middle-end/37731
1134         * expmed.c (expand_mult): Properly check DImode constant in
1135         CONST_DOUBLE.
1136
1137 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1138
1139         PR debug/37738
1140         * dwarf2out.c (common_block_die_table): New variable.
1141         (common_block_die_table_hash, common_block_die_table_eq): New
1142         functions.
1143         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1144         COMMON block in the current scope rather than globally.  Optimize
1145         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1146         DW_OP_addr SYMBOL_REF+off.
1147
1148 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
1149
1150         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1151         Return true for non-addressable GIMPLE operands.
1152
1153 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1154
1155         PR target/24765
1156         * config/i386/i386.c (initial_ix86_tune_features): Remove
1157         X86_TUNE_USE_BIT_TEST.
1158         * config/i386/i386.h (ix86_tune_indices): Likewise.
1159         (TARGET_USE_BIT_TEST): Removed.
1160
1161 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1162
1163         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1164
1165 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
1166
1167         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1168         (mul<mode>3_mul3): ... into this new template.
1169
1170 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1171
1172         * gimplify.c (gimplify_arg): Add location argument.  Use it.
1173         (gimplify_call_expr): Pass location to gimplify_arg.
1174         (gimplify_modify_expr_to_memcpy): Same.
1175         (gimplify_modify_expr_to_memset): Same.
1176
1177 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1178
1179         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1180         Update calls to build_unary_op and build_indirect_ref for location
1181         changes.
1182
1183 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
1184
1185         build_modify_expr.
1186         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1187         * c-typeck.c (array_to_pointer_conversion): Pass location to
1188         build_unary_op.
1189         (function_to_pointer_conversion): Use error_at and warning_at.
1190         (build_indirect_ref): Same.
1191         (build_array_ref): Pass location to build_binary_op.
1192         (parser_build_unary_op): Do not set location after calling
1193         build_unary_op.
1194         (build_unary_op): Add location argument.  Use it throughout.  Set
1195         EXPR_LOCATION before returning new tree.
1196         (build_modify_expr): Same.
1197         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
1198         returning node.
1199         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1200         build_indirect_ref, build_modify_expr.
1201         (c_finish_omp_for): Same.  Use error_at instead of error.
1202         * c-common.c (c_common_truthvalue_conversion): Pass location to
1203         build_unary_op.
1204         (warn_for_div_by_zero): Add location argument.
1205         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1206         build_unary_op, warn_for_div_by_zero.
1207         * c-parser.c (c_parser_typeof_specifier): Use
1208         protected_set_expr_location.
1209         (c_parser_statement_after_labels): Same.
1210         (c_parser_condition): Same.
1211         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1212         (c_parser_conditional_expression): Use protected_set_expr_location.
1213         (c_parser_unary_expression): Pass location to build_indirect_ref.
1214         (c_parser_postfix_expression_after_primary): Pass location to
1215         build_indirect_ref, build_unary_op.
1216         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1217
1218 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
1219
1220         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1221         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1222         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1223         r14000 and r16000.
1224         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1225         (mips_issue_rate): Handle PROCESSOR_R10000.
1226         * config/mips/mips.md (cpu): Add r10000.
1227         Include r10000.md.
1228         * config/mips/10000.md: New file.
1229
1230 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1231
1232         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1233         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1234         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1235
1236 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1237
1238         * config/darwin-protos.h (machopic_function_base_name): Delete.
1239         (machopic_function_base_sym): Likewise.
1240         (machopic_gen_offset): Declare.
1241         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1242         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1243         * config/darwin.c (machopic_function_base_name): Delete.
1244         (machopic_function_base_sym): Likewise.
1245         (gen_pic_offset): Rename to...
1246         (machopic_gen_offset): ...this and remove the pic_base argument.
1247         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1248         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1249         crtl->uses_pic_offset_table.
1250         (machopic_indirect_data_reference): Use new machopic_gen_offset
1251         interface.
1252         (machopic_legitimize_pic_address): Likewise.
1253         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1254
1255         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1256         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1257         * config/i386/i386.c (output_set_got): Likewise.
1258         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1259         instead of a MINUS.
1260         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1261         (legitimate_address_p): Likewise.
1262         (output_pic_addr_const): Likewise.
1263         (output_addr_const_extra): Likewise.
1264         (ix86_delegitimize_address): Expect darwin_local_data_pic to
1265         match an UNSPEC rather than a MINUS.
1266         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1267         (builtin_setjmp_receiver): Use machopic_gen_offset.
1268         * config/i386/predicates.md (pic_symbolic_operand): Handle
1269         UNSPEC_MACHOPIC_OFFSET.
1270
1271         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1272         Use machopic_gen_offset and machopic_operand_p.
1273         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1274         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1275         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1276         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1277         Set crtl->uses_pic_offset_table.
1278
1279 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
1280
1281         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1282         Declare.
1283         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1284         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1285         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1286         (constant_pool_expr_p): Use split_const and check the base.
1287         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1288         instead of a MINUS.
1289         (legitimate_constant_pool_address_p): Check toc_relative_p
1290         instead of constant_pool_expr_p.
1291         (print_operand_address): Always use output_addr_const for
1292         constant pool addresses.
1293         (rs6000_output_addr_const_extra): New function.
1294         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
1295
1296 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
1297
1298         PR middle-end/37535
1299
1300         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1301         (mark_ref_live, mark_ref_dead): Use them.
1302         (def_conflicts_with_inputs_p): Remove.
1303         (mark_early_clobbers): New function.
1304         (process_bb_node_lives): Call preprocess_constraints and
1305         mark_early_clobbers.
1306
1307         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1308
1309 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
1310
1311         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1312         lib with -mthread switch.
1313
1314 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
1315
1316         PR c++/37410
1317         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1318         function in two, making it call a new and reusable
1319         dwarf2out_imported_module_or_decl() that takes the containing
1320         BLOCK of the declaration in argument.
1321         (dwarf2out_imported_module_or_decl_real): New function.
1322         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1323         IMPORTED_DECL in account.
1324         * tree.def: Added IMPORTED_DECL node type.
1325         * tree.h: Added accessors for IMPORTED_DECL nodes.
1326         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1327
1328 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1329
1330         * doc/gimple.texi: Fix some typos, wrap some long lines,
1331         fix some broken wraps with continuations.
1332         * tree-ssa-reassoc.c: Fix comment typos.
1333
1334 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1335
1336         PR target/37603
1337         * pa.c (legitimize_pic_address): Force function labels to memory in
1338         word mode.
1339
1340 2008-10-04  Anton Blanchard  <anton@samba.org>
1341
1342         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1343         (rs6000_split_atomic_op): Same.
1344         (rs6000_split_compare_and_swap): Same.
1345         (rs6000_split_compare_and_swapqhi): Same.
1346
1347 2008-10-04  Richard Guenther  <rguenther@suse.de>
1348
1349         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1350         instead of pointer equality.
1351         (vn_nary_op_eq): Likewise.
1352
1353 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1354
1355         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 
1356         condition.
1357         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1358         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1359
1360 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
1361
1362         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1363         Revert previous change.
1364
1365 2008-10-03  Tom Tromey  <tromey@redhat.com>
1366
1367         * stringpool.c (ggc_alloc_string): Terminate string.
1368
1369 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
1370
1371         * gimplify.c (gimplify_function_tree): For -finstrument-functions
1372         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1373         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1374
1375         PR debug/37726
1376         * gimplify.c (declare_vars): Use gimple_bind_block instead of
1377         gimple_block.
1378
1379 2008-10-03  Pascal Obry  <obry@adacore.com>
1380
1381         * gcov.c (create_file_names): Properly handle UNIX and DOS
1382         directory separators.
1383         (make_gcov_file_name): Likewise + convert the ':' DOS drive
1384         separator to '~' to ensure clean filenames on Windows.
1385
1386 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
1387
1388         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1389         Add a null terminator to the stripped name.
1390
1391 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
1392
1393         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1394         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1395         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1396         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
1397         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1398         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1399         TARGET_SINGLE_FLOAT.
1400
1401 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
1402
1403         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1404
1405 2008-10-02  Richard Guenther  <rguenther@suse.de>
1406
1407         PR middle-end/37713
1408         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1409         and VECTOR_TYPE recurse with useless_type_conversion_p which
1410         properly handles void pointer conversion.
1411
1412 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>  
1413
1414         PR target/37528
1415         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1416         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
1417
1418 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1419
1420         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1421         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1422         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1423         they translate to non builtins.
1424         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1425         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
1426         __builtin_vec_promote, __builtin_vec_extract, and
1427         __builtin_vec_insert.
1428         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1429         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1430         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1431         * config/rs6000/altivec.h (vec_extract): Define
1432         (vec_insert): Define.
1433         (vec_splats): Define.
1434         (vec_promote): Define.
1435
1436 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1437             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
1438             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
1439
1440         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1441         Altivec intrinsics.
1442         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1443         prototype.  Add new parameter, blk.
1444         Use BLKmode for the MEM if blk is true.
1445         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1446         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1447         ALTIVEC_BUILTIN_STVRXL.
1448         Update usage of altivec_expand_lv_builtin.
1449         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1450         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1451         (altivec_init_builtins): If compiling for the Cell, also define the
1452         cell VMX builtins.
1453         * config/rs6000/rs6000.h (rs6000_builtins): Define
1454         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1455         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1456         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1457         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1458         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1459         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1460         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1461         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1462         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1463         UNSPEC_STVRX, and UNSPEC_STVRXL.
1464         (altivec_lvlx): New pattern.
1465         (altivec_lvlxl): New pattern.
1466         (altivec_lvrx): New pattern.
1467         (altivec_lvrxl): New pattern.
1468         (altivec_stvlx): New pattern.
1469         (altivec_stvlxl): New pattern.
1470         (altivec_stvrx): New pattern.
1471         (altivec_stvrxl): New pattern.
1472         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1473         (vec_lvlxl): Likewise.
1474         (vec_lvrx): Define if PPU is defined.
1475         (vec_lvrxl): Likewise.
1476         (vec_stvlx): Define if PPU is defined.
1477         (vec_stvlxl): Likewise.
1478         (vec_stvrx): Define if PPU is defined.
1479         (vec_stvrxl): Likewise.
1480
1481 2008-10-01  Geert Bosch  <bosch@adacore.com>
1482
1483         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1484
1485 2008-10-01  Richard Guenther  <rguenther@suse.de>
1486
1487         PR tree-optimization/37617
1488         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1489         do not add to the NEW_SETS.
1490
1491 2008-10-01  Richard Guenther  <rguenther@suse.de>
1492
1493         PR middle-end/37285
1494         * tree-vrp.c (execute_vrp): If we optimized away the default
1495         case make sure to promote the label that got in place of it
1496         to a default case label.
1497
1498 2008-10-01  Richard Henderson  <rth@redhat.com>
1499
1500         PR tree-opt/35737
1501         * tree-complex.c (set_component_ssa_name): Don't optimize
1502         is_gimple_min_invariant values with ssa_names in abnormal phis.
1503
1504 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
1505
1506         PR tree-optimization/37662
1507         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1508         commutative binary operation if they are in the wrong order and
1509         fold_build2 produces non-GIMPLE.
1510
1511 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
1512
1513         PR tree-optimization/37662
1514         PR tree-optimization/37663
1515         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1516         get_value_range with non-SSA_NAME.  Don't assert operands have been
1517         folded, instead just bail out.
1518
1519 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1520
1521         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1522
1523 2008-09-30  Richard Guenther  <rguenther@suse.de>
1524
1525         PR middle-end/37491
1526         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1527         build restrict-qualified pointers.
1528         (vectorizable_store): Move alias check later.
1529         (vectorizable_load): Likewise.
1530
1531 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
1532
1533         * c-common.c (empty_if_body_warning): Remove.
1534         * c-common.h (empty_if_body_warning): Remove.
1535         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1536         here the -Wempty-body warning for `if' and `else' statements.
1537         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1538
1539 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
1540
1541         * config/i386/i386.opt: Add msse2avx.
1542
1543         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
1544         * config/i386/linux64.h (ASM_SPEC): Likewise.
1545
1546         * doc/invoke.texi: Document -msse2avx.
1547
1548 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1549
1550         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1551
1552 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
1553
1554         * ifcvt.c (noce_emit_store_flag): If using condition from original
1555         jump, reverse it if if_info->cond was reversed.
1556
1557 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1558
1559         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1560         non-constant memory if it cannot be forced to constant memory.
1561         Overhaul surrounding code and factor out common condition.
1562
1563 2008-09-29  Jeff Law <law@redhat.com>
1564
1565         * reload1.c (alter_reg): Add missing curly braces.
1566
1567 2008-09-29  Michael J. Eager  <eager@eagercon.com>
1568
1569         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1570         are easy.
1571         * config/rs6000/rs6000.c (rs6000_override_options): Move
1572         rs6000_init_hard_regno_mode_ok after all options changed.
1573         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1574         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1575         -msimple-fpu flags.  Add warning messages if single FP not configured.
1576         (rs6000_file_start): Output gnu_attribute for single-float.
1577         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1578         (rs6000_legitimize_address): Likewise.
1579         (rs6000_legitimize_reload_address): Likewise.
1580         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1581         TARGET_SINGLE_FLOAT.
1582         (function_arg_advance): Likewise (partial conversion).
1583         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1584         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1585         TARGET_SINGLE_FLOAT.
1586         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1587         (rs6000_emit_prologue): Likewise.
1588         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1589         TARGET_SINGLE_FLOAT.
1590         (rs6000_libcall_value): Likewise.
1591         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1592         (TARGET_DOUBLE_FLOAT): New default to 1
1593         (TARGET_SIMPLE_FPU): New default to 0
1594         (TARGET_SINGLE_FPU): New default to 0
1595         (TARGET_SINGLE_FLOAT_MODE): New.
1596         (TARGET_DOUBLE_FLOAT_MODE): New.
1597         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1598         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1599         UNITS_PER_FP_WORD
1600         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1601         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1602         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1603         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1604         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1605         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1606         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1607         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1608         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1609         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1610         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1611         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1612         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1613         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1614         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1615         cmptf_internal1, *cmptf_internal2): Condition on
1616         TARGET_DOUBLE_FLOAT.
1617         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1618         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1619         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1620         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1621         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1622         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1623         TARGET_SINGLE_FLOAT.
1624         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1625         * config/rs6000/rs6000.opt (-msingle-float): New.
1626         (-mdouble-float): New.
1627         (-msimple-fpu): New.
1628         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1629         -msingle-float, -mdouble-float, -msimple-fpu options.
1630         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1631         _SOFT_DOUBLE for -msingle-float.
1632         * config.gcc: New config for target=powerpc-xilinx-eabi.
1633
1634 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
1635
1636         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
1637         have exit and entry.
1638         (new_scop): Take entry and exit edge to define new SCoP.
1639         (sd_region_p): New structure used during SCoP detection.
1640         (move_scops): Delete.
1641         (move_sd_regions): New.
1642         (scopdet_info): Change the definition from edges back to basic_blocks.
1643         (scopdet_edge_info):  Work on basic_blocks and rename to
1644         scopdet_basic_block_info.
1645         (split_difficult_bb): At the moment removed. We should later
1646         add it at another place.
1647         (build_scops_1): Work on basic_blocks.
1648         (bb_in_sd_region): New.
1649         (find_single_entry_edge): New.
1650         (find_single_exit_edge): New.
1651         (create_single_entry_edge): New.
1652         (sd_region_without_exit): New.
1653         (create_single_exit_edge): New.
1654         (unmark_exit_edges): New.
1655         (mark_exit_edges): New.
1656         (create_sese_edges): New.
1657         (build_graphite_scops): New.
1658         (build_scops): Make SCoPs SESE.
1659         (limit_scops): Use the new functions.
1660
1661 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
1662
1663         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
1664
1665 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1666
1667         PR target/37640
1668         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
1669         address to a register before taking the lower part.
1670
1671 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1672
1673         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
1674         for SHmedia.
1675
1676 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1677             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
1678
1679         PR tree-opt/36891
1680         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
1681         the newly created variable.
1682         Create a VECTOR_CST of all 1s for vector types.
1683
1684 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1685
1686         PR middle-end/36575
1687         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
1688
1689 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1690
1691         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
1692         order to convert between modes.
1693         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
1694
1695 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1696
1697         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
1698         if needed.
1699
1700 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
1701
1702         Revert:
1703         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1704         * ira-lives.c:...
1705         * doc/rtl.texi:...
1706
1707 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
1708
1709         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
1710         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
1711         them to yield false with MIPS16.
1712
1713 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
1714
1715         PR middle-end/37275
1716         * dwarf2out.c (tls_mem_loc_descriptor): New function.
1717         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
1718         mem_loc_descriptor failed.  Accept UNSPEC.
1719         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
1720         fail if one of the loc_descriptor calls for pieces failed.
1721         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
1722         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
1723         if loc_descriptor_from_tree_1 on offset failed.
1724
1725         PR middle-end/37576
1726         * opts.c (common_handle_option): Don't call print_specific_help with
1727         CL_SAVE as first argument.
1728
1729 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
1730             Steve Ellcey  <sje@cup.hp.com>
1731
1732         * configure: Regenerate for new libtool.
1733         * aclocal.m4: Ditto.
1734
1735 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
1736
1737         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
1738         alias set on MEM when saving stack pointer.
1739         * config/rs6000/rs6000.md (allocate_stack): Likewise
1740
1741 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
1742
1743         PR tree-optimization/37574
1744         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
1745         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
1746         instead of vector_type for constants. Take computation out of loop.
1747         (vect_get_vec_def_for_operand): Use only vectype for constant case,
1748         and use only vector_type for invariant case.
1749         (get_initial_def_for_reduction): Use vectype instead of vector_type.
1750
1751 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
1752
1753         PR c/37645
1754         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
1755         the decl is a VAR_DECL or FUNCTION_DECL.
1756
1757 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1758
1759         PR middle-end/37535
1760         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1761         (mark_ref_live, mark_ref_dead): Use them.
1762         (def_conflicts_with_inputs_p): Remove.
1763         (mark_early_clobbers): New function.
1764         (process_bb_node_lives): Call preprocess_constraints and
1765         mark_early_clobbers.
1766
1767         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
1768
1769 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1770
1771         PR middle-end/37448
1772         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
1773         (ira_compress_allocno_live_ranges): New prototype.
1774
1775         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
1776         (coalesced_allocnos_living_at_program_points): New.
1777         (coalesced_allocnos_live_at_points_p,
1778         set_coalesced_allocnos_live_points): New functions.
1779         (coalesce_spill_slots): Rewrite.
1780         
1781         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
1782         ira_compress_allocno_live_ranges): New functions.
1783
1784         * ira-build.c (ira_flattening): Call
1785         ira_compress_allocno_live_ranges.
1786         (ira_build): Ditto.
1787
1788 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
1789
1790         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
1791         optimization.
1792
1793 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
1794
1795         * combine.c (make_compound_operation): Handle the 'E' format.
1796         (count_rtxs): Likewise.
1797         (update_table_tick): Likewise.
1798         (get_last_value_validate): Likewise.
1799
1800 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
1801
1802         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
1803
1804 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
1805
1806         * matrix-reorg.c (transform_allocation_sites): Initializers 
1807         added to avoid the warning.
1808
1809 2008-09-25  Martin Jambor  <mjambor@suse.cz>
1810
1811         * cgraph.c (free_nodes): New variable.
1812         (NEXT_FREE_NODE): New macro.
1813         (cgraph_create_node): Reuse nodes from the free list.  Do not
1814         update uid if doing so.
1815         (cgraph_remove_node): Add the node to the free list.
1816
1817 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
1818
1819         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1820
1821 2008-09-24  Richard Henderson  <rth@redhat.com>
1822
1823         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
1824         * unwind-dw2.c (execute_stack_op): Handle it.
1825
1826 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
1827
1828         Revert:
1829         2008-09-24  Michael J. Eager  <eager@eagercon.com>
1830
1831 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
1832
1833         * c-common.c (fname_decl): New location argument.
1834         * c-common.h (fname_decl): Same.
1835         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
1836         {warning,error}.
1837         (c_parser_typeof_specifier): Same.
1838         (c_parser_parms_list_declarator): Same.
1839         (c_parser_asm_string_literal): Same.
1840         (c_parser_compound_statement_nostart): Same.
1841         (c_parser_label): Same.
1842         (c_parser_do_statement): Same.
1843         (c_parser_asm_statement): Same.
1844         (c_parser_unary_expression): Same.
1845         (c_parser_sizeof_expression): Same.
1846         (c_parser_postfix_expression): Same.
1847         (c_parser_pragma): Same.
1848         (c_parser_omp_clause_collapse): Same.
1849         (c_parser_omp_clause_num_threads): Same.
1850         (c_parser_omp_clause_schedule): Same.
1851         (c_parser_omp_all_clauses): Same.
1852         (c_parser_omp_sections_scope): Same.
1853         (c_parser_omp_for_loop): Same.  Pass condition's location to
1854         c_objc_common_truthvalue_conversion.
1855         (c_parser_enum_specifier): Remove comment.
1856
1857 2008-09-24  Michael J. Eager  <eager@eagercon.com>
1858
1859         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1860         are easy.
1861         * config/rs6000/rs6000.c (rs6000_override_options): Move
1862         rs6000_init_hard_regno_mode_ok after all options changed.
1863         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1864         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1865         -msimple-fpu flags.  Add warning messages if single FP not configured.
1866         (rs6000_file_start): Output gnu_attribute for single-float.
1867         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1868         (rs6000_legitimize_address): Likewise.
1869         (rs6000_legitimize_reload_address): Likewise.
1870         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1871         TARGET_SINGLE_FLOAT.
1872         (function_arg_advance): Likewise.
1873         (function_arg): Likewise.
1874         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1875         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1876         TARGET_SINGLE_FLOAT.
1877         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1878         (rs6000_emit_prologue): Likewise.
1879         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1880         TARGET_SINGLE_FLOAT.
1881         (rs6000_libcall_value): Likewise.
1882         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1883         (TARGET_DOUBLE_FLOAT): New default to 1
1884         (TARGET_SIMPLE_FPU): New default to 0
1885         (TARGET_SINGLE_FPU): New default to 0
1886         (TARGET_SINGLE_FLOAT_MODE): New.
1887         (TARGET_DOUBLE_FLOAT_MODE): New.
1888         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1889         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1890         UNITS_PER_FP_WORD
1891         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1892         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1893         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1894         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1895         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1896         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1897         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1898         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1899         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1900         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1901         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1902         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1903         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1904         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1905         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1906         cmptf_internal1, *cmptf_internal2): Condition on
1907         TARGET_DOUBLE_FLOAT.
1908         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1909         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1910         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1911         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1912         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1913         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1914         TARGET_SINGLE_FLOAT.
1915         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1916         * config/rs6000/rs6000.opt (-msingle-float): New.
1917         (-mdouble-float): New.
1918         (-msimple-fpu): New.
1919         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1920         -msingle-float, -mdouble-float, -msimple-fpu options.
1921         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1922         _SOFT_DOUBLE for -msingle-float.
1923         * config.gcc: New config for target=powerpc-xilinx-eabi.
1924
1925 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1926
1927         * config/sparc/constraints.md: New file.
1928         * config/sparc/sparc.md: Include it.
1929         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
1930         (sparc_extra_constraint_check): Delete.
1931         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
1932         (memory_ok_for_ldd): New predicate.
1933         (sparc_extra_constraint_check): Delete.
1934         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
1935         (CONST_OK_FOR_LETTER_P): Likewise.
1936         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1937         (EXTRA_CONSTRAINT): Likewise.
1938
1939 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
1940
1941         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
1942
1943 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1944
1945         * alias.c (find_base_value): Use FIND_BASE_TERM.
1946         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
1947
1948 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1949
1950         * config/i386/i386.c: Include cselib.h.
1951         (ix86_pic_register_p): New function.
1952         (ix86_delegitimize_address): Use it to check for the PIC register.
1953
1954 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1955
1956         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
1957         * config/i386/i386.c (ix86_find_base_term): Don't check for
1958         SYMBOL_REF and LABEL_REF.
1959
1960 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1961
1962         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
1963         constant PLUS in a CONST.
1964
1965 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
1966
1967         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
1968         check for sibcall support for w64.
1969
1970 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1971
1972         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
1973
1974 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
1975
1976         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
1977         parser_build_binary_op.
1978         * c-decl.c (build_enumerator): Pass location to build_binary_op.
1979         * c-typeck.c (build_array_ref): Same.
1980         (parser_build_unary_op): New location argument.
1981         (pointer_diff): Pass location to build_binary_op,
1982         c_objc_common_truthvalue_conversion.
1983         (build_modify_expr): Same.
1984         (build_unary_op): New location argument.
1985         (build_binary_op): New location argument.
1986         (c_objc_common_truthvalue_conversion): Pass location to
1987         c_*common_truthvalue_conversion.
1988         * c-convert.c (convert): Same.
1989         * c-common.c (binary_op_error): New location argument.
1990         (pointer_int_sum): Pass location to build_binary_op.
1991         (c_common_truthvalue_conversion): New location argument.
1992         (warn_for_sign_compare): Same.
1993         * c-common.h: Add location argument to c_common_truthvalue_conversion,
1994         binary_op_error, build_binary_op, warn_for_sign_compare.
1995         * c-parser.c (c_parser_condition): Pass location to
1996         c_*common_truthvalue_conversion.
1997         (c_parser_conditional_expression): Save condition's location and pass
1998         it on down.
1999         (c_parser_binary_expression): Same, but for the binary operator's
2000         location.
2001         (c_parser_omp_for_loop): Pass location to
2002         c_objc_common_truthvalue_conversion.
2003
2004 2008-09-23  Martin Jambor  <mjambor@suse.cz>
2005
2006         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2007         (cgraph_node_remove_callees): New temporary f.  Hold the next item
2008         in f when looping.
2009         (cgraph_node_remove_callers): Likewise.
2010
2011         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2012         (ipa_node_removal_hook): Likewise.
2013
2014         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2015         gimple_call_copy_skip_args and moved to the gimple_call section.
2016         * gimple.c (gimple_copy_call_skip_args): Renamed to
2017         gimple_call_copy_skip_args.  Changed al users.
2018
2019 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
2020
2021         * ira-color.c (start_allocno_priorities): Rename to
2022         setup_allocno_priorities.  Use costs and
2023         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2024         range lengths.  Get rid off doubles.
2025         (ira_fast_allocations): Call start_allocno_priorities.
2026         
2027 2008-09-22  David Daney  <ddaney@avtrex.com>
2028
2029         PR target/37593
2030         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2031         register if TARGET_LONG_CALLS.
2032
2033 2008-09-22  Richard Guenther  <rguenther@suse.de>
2034
2035         PR tree-optimization/37145
2036         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2037         value-numbering union accesses with their offset and size only.
2038         (visit_reference_op_load): Fix simplification of inserted conversions.
2039         * tree-ssa-pre.c (find_or_generate_expression): Do not
2040         recursively generate expressions if running FRE.
2041
2042 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
2043
2044         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2045         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2046         New patterns.
2047
2048 2008-09-22  Richard Guenther  <rguenther@suse.de>
2049
2050         PR tree-optimization/37145
2051         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2052         (phi_translate_1): Constant fold references.
2053
2054 2008-09-22  Ira Rosen  <irar@il.ibm.com>
2055
2056         PR tree-optimization/37482
2057         * tree-vectorizer.h (struct _slp_instance): Add new field.
2058         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2059         (get_earlier_stmt): New function.
2060         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2061         function.
2062         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2063         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2064         asserts that GSI points to the scalar statement being vectorized.
2065         Set new statement location according to GSI.
2066         (vect_schedule_slp_instance): Use GSI of
2067         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2068
2069 2008-09-21  Jan Hubicka  <jh@suse.cz>
2070
2071         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2072         (ipcp_insert_stage): Update dead_nodes bitmap.
2073
2074 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
2075
2076         PR target/37528 
2077         * config/i386/t-cygming (SHLIB_LC): Remove.
2078         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2079         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2080
2081 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
2082
2083         PR middle-end/37170
2084         PR middle-end/37280
2085         * final.c (mark_symbol_ref_as_used): New helper function.
2086         (output_operand): Instead of just looking inside MEMs for
2087         SYMBOL_REFs, use new helper function and for_each_rtx.
2088         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2089         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
2090         Make head comment more general.
2091         * config/darwin.c (machopic_output_indirection): Handle weak
2092         references here, like in assemble_external.
2093
2094 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
2095
2096         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2097         (sparc_emit_float_lib_cmp): Change return type.
2098         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2099         (gen_compare_operator): New function.
2100         (sparc_emit_float_lib_cmp): Return the new operator to be used in
2101         the comparison sequence.  Minor tweaks.
2102         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2103         that the final operator and the result of sparc_emit_float_lib_cmp
2104         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2105         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2106         buneq, bunge, bunle, bltgt): Assert that the final operator and the
2107         result of sparc_emit_float_lib_cmp match for software TFmode.
2108         (movqicc, movhicc, movsicc, movdicc): Merge into...
2109         (mov<I:mode>cc): ...this.
2110         (movsfcc, movdfcc, movtfcc): Merge into...
2111         (mov<F:mode>cc): ...this.
2112         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2113         into...
2114         (mov<I:mode>_cc_v9): ...this.
2115         (movdi_cc_sp64_trunc): Delete.
2116         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2117         movdi_cc_reg_sp64): Merge into...
2118         (mov<I:mode>_cc_reg_sp64): ...this.
2119         (movsf_cc_sp64): Rename into...
2120         (movsf_cc_v9): ...this.
2121         (movdf_cc_sp64): Rename into...
2122         (movdf_cc_v9): ...this.
2123         (movtf_cc_hq_sp64): Rename into...
2124         (movtf_cc_hq_v9): ...this.
2125         (movtf_cc_sp64): Rename into...
2126         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
2127
2128 2008-09-21  Diego Novillo  <dnovillo@google.com>
2129
2130         * doc/gccint.texi: Include generic.texi and gimple.texi.
2131         Re-order index.
2132         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2133         (GIMPLE): Move to gimple.texi.
2134         (Annotations): Remove references to to stmt_ann_t and
2135         ssa_name_ann_t.
2136         (SSA Operands): Rename from 'Statement Operands'.
2137         * doc/generic.texi: New.
2138         * doc/gimple.texi: New.
2139         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
2140         * Makefile.in (TEXI_GCCINT_FILES):
2141         * gimple.c (gimple_copy_call_skip_args): Rename from
2142         giple_copy_call_skip_args.  Update all users.
2143         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2144
2145 2008-09-21  Ira Rosen  <irar@il.ibm.com>
2146
2147         PR tree-optimization/37539
2148         * tree-vect-transform.c (vect_transform_strided_load): Save vector
2149         statement in related statement field only for the first load of the
2150         group of loads with the same data reference.
2151
2152 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
2153
2154         * config/mips/mips.h (TUNE_OCTEON): New macro.
2155         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2156         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2157         * config/mips/octeon.md: New file.
2158         * config/mips/mips.md: Include octeon.md.  Restore
2159         semi-alphabetical order of include files.
2160
2161 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
2162
2163         PR target/37571
2164         * config/i386/i386.md (*jcc_fused_1): Removed.
2165         (*jcc_fused_2): Likewise.
2166         (*jcc_fused_3): Likewise.
2167         (*jcc_fused_4): Likewise.
2168
2169 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
2170
2171         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2172         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2173         * target.h (gcc_target): Add ira_cover_classes.
2174         * ira.c: Remove IRA_COVER_CLASSES guards.
2175         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2176         instead of IRA_COVER_CLASSES.
2177         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2178         (setup_class_translate): Likewise.
2179         (setup_reg_class_intersect_union): Likewise.
2180         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2181         test of targetm.ira_cover_classes.
2182         * opts.c (decode_options): Use targetm.ira_cover_classes instead
2183         of IRA_COVER_CLASSES.
2184         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2185         (TARGET_INITIALIZER): Include it.
2186         * targhooks.h (default_ira_cover_classes): Declare.
2187         * targhooks.c (default_ira_cover_classes): New function.
2188
2189 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
2190         
2191         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2192         
2193 2008-09-19  Ian Lance Taylor  <iant@google.com>
2194
2195         * varasm.c (narrowing_initializer_constant_valid_p): Return
2196         NULL_TREE if ENDTYPE is not an integer.
2197
2198 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2199
2200         PR tree-opt/30930
2201         * tree-ssa.c (execute_update_addresses_taken): Also update
2202         DECL_GIMPLE_REG_P for vector and complex types.
2203
2204 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
2205             Jan Hubicka  <jh@suse.cz>
2206
2207         PR middle-end/37567
2208         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2209         empty before freeing them.
2210         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2211
2212 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
2213
2214         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2215         * config/xtensa/predicates.md (tls_symbol_operand): New.
2216         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2217         (TARGET_CANNOT_FORCE_MEM): Define.
2218         (xtensa_tls_symbol_p): New.
2219         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2220         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2221         (xtensa_tls_module_base): New.
2222         (xtensa_call_tls_desc): New.
2223         (xtensa_legitimize_tls_address): New.
2224         (xtensa_legitimize_address): Handle TLS symbols.
2225         (xtensa_tls_referenced_p_1): New.
2226         (xtensa_tls_referenced_p): New.
2227         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2228         UNSPEC_DTPOFF.
2229         (XTENSA_BUILTIN_THREAD_POINTER): New.
2230         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
2231         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2232         builtin.  Add declarations for __builtin_thread_pointer and
2233         __builtin_set_thread_pointer.
2234         (xtensa_fold_builtin): Recognize new builtins.
2235         (xtensa_expand_builtin): Expand new builtins.
2236         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2237         (TARGET_THREADPTR): Define.
2238         (HAVE_AS_TLS): Define default value.
2239         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2240         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2241         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2242         (UNSPECV_SET_TP): New.
2243         (sym_TPOFF, sym_DTPOFF): New.
2244         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2245         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2246         * configure: Regenerated.
2247         
2248 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
2249
2250         PR target/37394
2251         * config/ia64/ia64.c (ia64_optimization_options): Move
2252         checking and setting flag_schedule_insns_after_reload and
2253         ia64_flag_schedule_insns2 back to ...
2254         (ia64_override_options): Here.
2255
2256 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2257
2258         PR rtl-opt/37451
2259         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2260         zero extend count after the correction to it is done.
2261         (doloop_optimize): Update call to doloop_modify, don't zero extend
2262         count before call.
2263
2264 2008-09-18  Martin Jambor  <mjambor@suse.cz>
2265
2266         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2267
2268         * ipa-prop.c: Correct comments.
2269         * ipa-prop.h: Likewise.
2270
2271 2008-09-18  Jan Hubicka  <jh@suse.cz>
2272
2273         PR middle-end/37448
2274         * ipa-reference.c (ipa_reference_local_vars_info_d,
2275         ipa_reference_global_vars_info_d,
2276         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2277         ipa_reference_vars_info_t): Move here from ipa-reference.h
2278         (node_duplication_hook_holder, node_removal_hook_holder): New.
2279         (get_reference_vars_info_from_cgraph): Rename to ...
2280         (get_reference_vars_info): ... this one, use cgraph uids.
2281         (get_local_reference_vars_info, get_global_reference_vars_info):
2282         Use cgraph instead of decl.
2283         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2284         Remove.
2285         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
2286         ipa_reference_get_written_global,
2287         ipa_reference_get_not_written_global): Use cgraph argument.
2288         (check_call): Simplify avail check.
2289         (scan_stmt_for_static_refs): Update.
2290         (propagate_bits): Update.
2291         (merge_callee_local_info): Remove.
2292         (init_function_info): Use cgraph nodes.
2293         (clean_function_local_data): Break out from ...
2294         (clean_function): ... here.
2295         (copy_local_bitmap, copy_global_bitmap): New functions.
2296         (duplicate_node_data, remove_node_data): New functions.
2297         (generate_summary): Register hooks; use visibility instead of
2298         master clones.
2299         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2300         * ipa-reference.h (ipa_reference_local_vars_info_d,
2301         ipa_reference_global_vars_info_d,
2302         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2303         ipa_reference_vars_info_t): Move to ipa-reference.c
2304         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2305         Remove.
2306         (ipa_reference_get_read_global, ipa_reference_get_written_global,
2307         ipa_reference_get_not_read_global,
2308         ipa_reference_get_not_written_global): Update prototype.
2309         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2310         (init_state): Remove.
2311         (node_duplication_hook_holder, node_removal_hook_holder): New.
2312         (get_function_state, set_function_state): Use VECtor.
2313         (analyze_function): Check body availability.
2314         (add_new_function): Likewise.
2315         (duplicate_node_data, remove_node_data): New.
2316         (generate_summary): Register hooks; do not care about clones.
2317         (propafate): Do not care about clones; recursive functions are
2318         not looping.
2319         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2320         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2321         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2322         static.
2323         * tree-flow.h (function_ann_d): Remove reference_vars_info.
2324         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2325         Update call of ipa-reference accesors.
2326
2327 2008-09-18  Simon Baldwin  <simonb@google.com>
2328
2329         * c-opts.c (c_common_handle_option): Add handling for
2330         -Wbuiltin-macro-redefined command line option.
2331         * c.opt: Added builtin-macro-redefined option.
2332         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2333         documentation.
2334
2335 2008-09-18  Richard Guenther  <rguenther@suse.de>
2336
2337         PR tree-optimization/37258
2338         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2339         and signedness for integral types.
2340         (vn_phi_eq): Require compatible types.
2341
2342 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
2343
2344         PR debug/34037
2345         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2346         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2347         VAR_DECL.
2348         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2349         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2350         ggc_free other TREE_LIST nodes from that chain.
2351         * function.c (instantiate_decls): Instantiate also DECL_RTL
2352         of vars in cfun->local_decls, free that list afterwards.
2353
2354 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2355
2356         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2357         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2358
2359 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2360
2361         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2362         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2363
2364 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2365
2366         PR tree-optimization/37102
2367         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2368         from a node. Check to see if another PHI is dead.
2369         (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
2370         remove real PHIs which have no uses.
2371         (rewrite_out_of_ssa): Call eliminate_useless_phis.
2372
2373 2008-09-18  Richard Guenther  <rguenther@suse.de>
2374
2375         PR middle-end/37284
2376         * tree-cfg.c (remove_useless_stmts_1): Remove
2377         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2378
2379 2008-09-18  Nick Clifton  <nickc@redhat.com>
2380
2381         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2382         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2383         to frv_secondary_reload_class.
2384         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2385         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2386         (frv_secondary_reload_class): Omit unused parameter.
2387         (frv_secondary_reload): New function.  Handle the case when
2388         secondary_reload_class() is called before the reload_(in|out)
2389         _optabs have been initialised.
2390         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2391         unused parameter.
2392         * config/frv/frv.md: Define an exclusion set between fr550_m0
2393         and fr550_f0.
2394
2395 2008-09-18  Richard Guenther  <rguenther@suse.de>
2396
2397         PR tree-optimization/37456
2398         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2399         want to insert after ends a BB insert on the single fallthru
2400         outgoing edge.
2401
2402 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2403
2404         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2405         Mention -march=z9-109, z9-ec and z10.
2406
2407 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
2408
2409         PR rtl-optimization/37544
2410         * regrename.c (maybe_mode_change): Exit early when copy_mode
2411         is narrower than orig_mode and narrower than new_mode.
2412
2413 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
2414
2415         PR middle-end/37499
2416         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
2417
2418         * sched-rgn.c (ref_counts): Remove.
2419         (insn_referenced): New static variable.
2420         (INSN_REF_COUNT): Remove.
2421         (sched_run_compute_dependencies): Use insn_referenced instead of
2422         INSN_REF_COUNT.
2423         (add_branch_dependences): Likewise.  Delete dead assignment.
2424
2425 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
2426
2427         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2428         consumer is an asm.  Add comment why this is important.
2429         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
2430         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
2431
2432 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
2433
2434         * expr.c (emit_group_store): Do not shift before moving via a
2435         stack slot.
2436
2437 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2438
2439         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2440         from aggregate to non-aggregate type if the bit pattern is not fully
2441         preserved afterwards.
2442
2443 2008-09-17  Richard Guenther  <rguenther@suse.de>
2444
2445         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2446         (verify_gimple_assign): ... this.  Split into ...
2447         (verify_gimple_assign_unary): ... this,
2448         (verify_gimple_assign_binary): ... that,
2449         (verify_gimple_assign_single): ... and this.
2450         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2451         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2452         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2453         (verify_types_in_gimple_reference): Be forgiving with
2454         VIEW_CONVERT_EXPRs.
2455         (verify_gimple_phi): Deal with virtual operands.
2456
2457         * tree.def (PREDICT_EXPR): Change to tcc_expression.
2458
2459 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2460
2461         * tree.c (get_callee_fndecl): Don't call the language hook.
2462         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2463         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2464         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2465
2466 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
2467
2468         * tree.c (protected_set_expr_location): Don't unnecessarily
2469         check for error_mark_node.
2470
2471 2008-09-17  Art Haas  <ahaas@impactweather.com>
2472
2473         * ipa-reference.c (analyze_function): Declare step only if
2474         ENABLE_CHECKING is defined.
2475
2476 2008-09-17  Jan Hubicka  <jh@suse.cz>
2477
2478         PR c++/18071
2479         * tree.h (DECL_INLINE): remove.
2480         (DECL_DECLARED_INLINE_P): Update docs.
2481         (DECL_NO_INLINE_WARNING_P): new.
2482         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2483         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2484
2485 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
2486             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2487
2488         PR bootstrap/37441
2489         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2490         false.
2491
2492 2008-09-17  Jan Hubicka  <jh@suse.cz>
2493
2494         * ipa-reference.c (ipa_obstack): Remove.
2495         (local_info_obstack, global_info_obstack): New.
2496         (add_static_var): We now handle variables only.
2497         (mark_address_taken, mark_load, mark_store): New functions based on ...
2498         (check_operand): ... remove.
2499         (get_asm_stmt_operands): Rename to ...
2500         (check_asm_memory_clobber): ... this. Look only for memory clobber.
2501         (scan_stmt_for_static_refs): Rewrite.
2502         (scan_op_for_static_refs): Rename to ...
2503         (scan_initializer_for_static_refs): do not look for VAR_DECL
2504         initializers; stop recursion on types and decls.
2505         (ipa_init): Use proper obstacks.
2506         (analyze_variable): Use scan_initializer_for_static_refs.
2507         (init_function_info): Use local obstack.
2508         (analyze_function): Simplify.
2509         (add_new_function): We don't need visited_nodes obstack.
2510         (generate_summary): Use proper obstacks; cleanup after propagation.
2511
2512 2008-09-17  Richard Guenther  <rguenther@suse.de>
2513
2514         PR middle-end/37385
2515         PR tree-optimization/37491
2516         * alias.c (get_alias_set): Use the canonical type.
2517         * tree-vect-transform.c (vectorizable_store): Use the type of
2518         the lhs for the vector type.  Adjust checking.
2519         (vectorizable_load): Adjust checking.
2520
2521 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
2522             Adam Nemet  <anemet@caviumnetworks.com>
2523
2524         PR rtl-optimization/37483
2525         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2526         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2527         Rearrange code to better match the original comment.  Check
2528         t_unconditional first.  Improve comment.
2529
2530 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
2531
2532         PR c/37529
2533         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2534         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2535
2536         PR c++/37530
2537         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2538         GIMPLE_TRY if cleanup sequence is empty.
2539
2540 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2541
2542         PR middle-end/37263
2543         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2544         eliminate IV if the cost are the same.
2545
2546 2008-09-16  Richard Guenther  <rguenther@suse.de>
2547
2548         PR middle-end/37380
2549         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2550         if not necessary.
2551
2552 2008-09-16  Richard Guenther  <rguenther@suse.de>
2553
2554         PR tree-optimization/37508
2555         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2556
2557 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2558
2559         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2560
2561 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2562
2563         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2564         use gen_floatdidf2 directly.
2565         (floatunssidf2): Likewise.
2566         (floatsidf_ppc64_mfpgpr): Remove.
2567         (floatsidf_ppc64): Remove.
2568         (floatunssidf_ppc64): Remove.
2569
2570 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
2571
2572         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2573         rather than update_cost_queue.
2574
2575         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2576         in every call starting with the second one, instead of only when
2577         alias_bitmap_obstack.elements != NULL.
2578
2579         * tree-predcom.c (filter_suitable_components): Free all refs in
2580         act->refs vector before calling release_component.
2581         (add_ref_to_chain): Free ref if not adding it to chain->refs.
2582
2583         * tree-data-ref.c (free_subscripts): Free all subscript objects.
2584
2585         * tree-loop-linear.c (linear_transform_loops): Initialize
2586         lambda_obstack only after calling perfect_loop_nest_depth.
2587         Goto free_and_continue instead of just continue for later failures.
2588
2589         PR middle-end/37479
2590         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2591
2592         PR libmudflap/36397
2593         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2594
2595 2008-09-14  Andreas Schwab  <schwab@suse.de>
2596
2597         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2598
2599 2008-09-14  Jan Hubicka  <jh@suse.cz>
2600
2601         * invoke.texi (-fconserve-stack): Document.
2602         * opts.c (decode_options): Handle conserve_stack.
2603         * common.opt (fconvserve_stack): New.
2604
2605 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
2606
2607         * config.host: Add x-aix to host_xmake_file.
2608         * config/rs6000/t-aix52: Do not override LDFLAGS.
2609         * config/rs6000/x-aix: New file.
2610
2611 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
2612
2613         PR target/19636
2614         PR target/24894
2615         PR target/31644
2616         PR target/31786
2617         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
2618         is not recognized as a valid register usage. Allow REG_X to be used
2619         as a base pointer.
2620         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
2621         forces a reload when using a base register.
2622
2623 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
2624
2625         * config/i386/cygming-crtend.c (register_frame_ctor): If
2626         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
2627         directly with atexit.
2628         (deregister_frame_ctor): Rename to ...
2629         (deregister_frame_dtor): Use to call __gcc_deregister_frame
2630         if !DEFAULT_USE_CXA_ATEXIT.
2631
2632 2008-09-13  Jan Hubicka  <jh@suse.cz>
2633
2634         * cgraph.c: Include value-prof.h
2635         * Makefile.in (cgraph.o): Add value-prof.h dependency.
2636
2637 2008-09-13  Jan Hubicka  <jh@suse.cz>
2638
2639         PR middle-end/32581
2640         * tree-profile.c (add_abnormal_goto_call_edges): New function.
2641         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2642         tree_gen_one_value_profiler, tree_gen_average_profiler,
2643         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
2644
2645 2008-09-13  Jan Hubicka  <jh@suse.cz>
2646
2647         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
2648         too many bytes on misalligned blocks.
2649
2650 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2651
2652         * doc/cfg.texi: Fix some typos.
2653         * doc/extend.texi: Likewise.
2654         * doc/install.texi: Likewise.
2655         * doc/invoke.texi: Likewise.
2656         * doc/rtl.texi: Likewise.
2657         * doc/tree-ssa.texi: Likewise.
2658
2659 2008-09-13  Richard Guenther  <rguenther@suse.de>
2660
2661         PR middle-end/30141
2662         * tree-nested.c (finalize_nesting_tree_1): Generate valid
2663         gimple stores for memory rhs.
2664
2665 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
2666
2667         PR rtl-optimization/37489
2668         * cse.c (fold_rtx): Don't return const_true_rtx for float
2669         compare if FLOAT_STORE_FLAG_VALUE is undefined.
2670
2671 2008-09-13  Jan Hubicka  <jh@suse.cz>
2672
2673         PR tree-optimization/37392
2674         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
2675
2676 2008-09-13  Martin Jambor  <mjambor@suse.cz>
2677             Jan Hubicka  <jh@suse.cz>
2678
2679         * cgraph.c (free_edges): New variable.
2680         (NEXT_FREE_EDGE): New macro.
2681         (cgraph_free_edge): New function.
2682         (cgraph_remove_edge): Call cgraph_remove_edge_1.
2683         (cgraph_node_remove_callees): Likewise.
2684         (cgraph_node_remove_callers): Likewise.
2685         (cgraph_create_edge): Reuse edges from the free list.  Do not
2686         update uid if doing so.
2687         (cgraph_remove_*_hook): Add free call.
2688
2689 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2690
2691         * ira-color.c (conflict_allocno_vec): Delete.
2692         (update_cost_queue_elem): New structure.
2693         (update_cost_queue): New variable.
2694         (update_cost_queue_tail): Likewise.
2695         (update_cost_queue_elems): Likewise.
2696         (allocno_update_cost_check): Delete.
2697         (initiate_cost_update): Allocate update_cost_queue_elems
2698         instead of allocno_update_cost_check.
2699         (finish_cost_update): Update the free()s accordingly.
2700         (start_update_cost): New function.
2701         (queue_update_cost): Likewise.
2702         (get_next_update_cost): Likewise.
2703         (update_copy_costs_1): Inline into...
2704         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
2705         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
2706         once we've established they are equal.  Don't allocate update
2707         costs if there is nothing to add to them.
2708         (update_conflict_hard_regno_costs): Remove ALLOCNO and
2709         DIVISOR arguments.  Use a queue instead of recursive calls;
2710         process all the allocnos in the initial queue, rather than
2711         a single allocno.
2712         (assign_hard_reg): Use queue_update_cost instead of
2713         conflict_allocno_vec.  Queue coalesced allocnos instead
2714         of calling update_conflict_hard_regno_costs for each one.
2715         Just call update_conflict_hard_regno_costs once for the
2716         entire queue.
2717         (ira_color): Remove conflict_allocno_vec handling.
2718
2719 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
2720
2721         PR tree-optimization/37484
2722         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
2723         (save_var_name): Same.
2724         (initialize_cloog_names): Same.
2725         (initialize_cloog_names): Same.
2726
2727 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
2728
2729         * tree-scalar-evolution.c (set_instantiated_value): Set
2730         instantiated_below.
2731
2732 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
2733
2734         PR rtl-opt/37377
2735
2736         * ira-build.c (common_loop_tree_node_dominator): Remove.
2737         (copy_live_ranges_to_removed_store_destinations): New function.
2738         (regno_top_level_allocno_map): Move to top level from ...
2739         (ira_flattening): ... here.  Use
2740         copy_live_ranges_to_removed_store_destinations.
2741
2742         * ira-emit.c (generate_edge_moves): Fix a comment.
2743
2744 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
2745
2746         PR target/37466
2747         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
2748         scratch register after 'set' pattern.
2749
2750 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2751
2752         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
2753         information passed to mark_reg_pointer.
2754         * explow.c (force_reg): Likewise.
2755
2756 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2757
2758         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
2759         when building for the celledp architecture.
2760
2761 2008-09-12  Richard Guenther  <rguenther@suse.de>
2762
2763         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
2764
2765 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
2766
2767         PR rtl-optimization/37424
2768         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
2769         the regnos instead of the addresses.
2770
2771 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
2772
2773         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
2774
2775 2008-09-11  Richard Guenther  <rguenther@suse.de>
2776
2777         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
2778         entering the weaker equivalence recording.
2779
2780         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
2781
2782 2008-09-11  Jeff Law <law@redhat.com>
2783
2784         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
2785         by assign_stack_local on the IRA path for stack slot sharing
2786         as well as the non-IRA path.
2787
2788 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
2789
2790         * config/i386/i386.h: Fix whitespace issues.
2791
2792 2008-09-11  Martin Jambor  <mjambor@suse.cz>
2793
2794         * ipa-prop.h (struct ipa_param_flags): Removed.
2795         (struct ipa_param_descriptor): New structure.
2796         (struct ipa_node_params): ipcp_lattices, param_decls and
2797         param_flags moved to ipa_param_description.
2798         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
2799         descriptors.  Renamed all users.
2800         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
2801         changed to access descriptors.  Renamed all users.
2802         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
2803         to access descriptors. Renamed all users.
2804         * ipa-cp.c (ipcp_init_cloned_node): Call
2805         ipa_initialize_node_params instead of ipa_count_formal_params and
2806         ipa_create_param_decls_array.
2807         (ipcp_analyze_node): Likewise.
2808         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
2809         descriptors.  Renamed all users.
2810         (ipcp_initialize_node_lattices): Remove allocation.
2811         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2812         ipa_initialize_node_params instead of ipa_count_formal_params and
2813         ipa_create_param_decls_array.
2814         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
2815         ipa_populate_param_decls, made static, added parameter info,
2816         renamed mt to node, removed allocation, changed to use
2817         descriptors.
2818         (ipa_count_formal_params): Made static, added parameter info,
2819         renamed mt to node.
2820         (ipa_initialize_node_params): New function.
2821         (ipa_check_stmt_modifications): Changed to use descriptors.
2822         (ipa_detect_param_modifications): Removed allocation, changed to
2823         use descriptors.
2824         (ipa_note_param_call): Changed to use descriptors.
2825         (ipa_analyze_params_uses): Removed allocation.
2826         (ipa_free_node_params_substructures): Changed to use descriptors.
2827         (ipa_edge_duplication_hook): Use the unused attribute.
2828         (ipa_node_duplication_hook): Use the unused attribute, changed to
2829         use descriptors, changed to duplicate descriptors.
2830
2831         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
2832         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
2833         indirect inlining.  Made static.
2834         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
2835         functions called only once.
2836         (cgraph_decide_recursive_inlining): Don't call
2837         ipa_propagate_indirect_call_infos, pass new_edges to
2838         cgraph_mark_inline_edge instead.
2839         (cgraph_decide_inlining_of_small_functions): Don't call
2840         ipa_propagate_indirect_call_infos, pass new_edges to
2841         cgraph_mark_inline_edge instead.
2842         (cgraph_decide_inlining): Don't call
2843         ipa_propagate_indirect_call_infos.
2844         * ipa-prop.c: Check that vectors are allocated.
2845
2846         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
2847         iff a new cgraph edges have been created.
2848         (cgraph_decide_inlining): New variable redo_always_inline.
2849         Flattening and always_inlining loop until callgraph stabilizes.
2850         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
2851         true iff new cgraph edges have been created.
2852         (propagate_info_to_inlined_callees): Likewise.
2853         (ipa_propagate_indirect_call_infos): Likewise.
2854
2855 2008-09-11  Richard Guenther  <rguenther@suse.de>
2856
2857         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
2858         (set_prologue_iterations): Likewise.
2859         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
2860         Likewise.
2861         (vect_update_init_of_dr): Likewise.
2862         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
2863         type verification.
2864         * fold-const.c (fold_unary): Do not generate calculations
2865         in sub-types.
2866
2867 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
2868
2869         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
2870         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
2871         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
2872
2873         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
2874         a bool.
2875         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
2876         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
2877         before finalizing the changes.
2878         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
2879         for BIT_IOR_EXPR.
2880         (simplify_truth_ops_using_ranges): New.
2881         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
2882         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
2883         whether a simplification was made.
2884         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
2885         use a switch statement and also call simplify_truth_ops_using_ranges.
2886
2887 2008-09-11  Jan Hubicka  <jh@suse.cz>
2888
2889         * ggc-common.c (loc_array): Make static.
2890         * dce.c (rest_of_handle_ud_dce): Free worklist.
2891
2892 2008-09-11  Jan Hubicka  <jh@suse.cz>
2893
2894         * cgraph.c (cgraph_release_function_body): Plug memory leak on
2895         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
2896         function so we are sure we do not dangle it forever.
2897         * function.c (outer_function_chain, find_function_data): Remove.
2898         (function_context_stack): New.
2899         (push_function_context, pop_function_context): Update.
2900         * function.h (struct function): Remove pointer outer.
2901         (outer_function_chain, find_function_data): Remove.
2902         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
2903
2904 2008-09-11  Jan Hubicka  <jh@suse.cz>
2905
2906         PR middle-end/37448
2907         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
2908
2909 2008-09-11  Jan Hubicka  <jh@suse.cz>
2910
2911         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
2912
2913 2008-09-11  Jan Hubicka  <jh@suse.cz>
2914
2915         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
2916         (free_var_map_entry): New function.
2917         (redirect_edge_var_map_destroy): Use it.
2918
2919 2008-09-11  Jan Hubicka  <jh@suse.cz>
2920
2921         PR middle-end/37448
2922         * tree-inline.c (add_lexical_block): Replace with ...
2923         (prepend_lexical_block): ... prepend at begginig.
2924         (remap_blocks): Use it and reverse later.
2925         (expand_call_inline): Use prepend_lexical_block.
2926
2927 2008-09-11  Jan Hubicka  <jh@suse.cz>
2928
2929         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
2930
2931 2008-09-11  Jan Hubicka  <jh@suse.cz>
2932
2933         * function.c (free_after_compilation): Call insn_locators_free.
2934         * cfglayout.c (insn_locators_free): New function.
2935         * rtl.h (insn_locators_free): Declare.
2936
2937 2008-09-11  Jan Hubicka  <jh@suse.cz>
2938
2939         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
2940         vector pointer.
2941         (cond_move_process_if_block): Update call.
2942
2943 2008-09-11  Jan Hubicka  <jh@suse.cz>
2944
2945         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
2946         * vec.c: Include hashtab.h
2947         (vec_descriptor, ptr_hash_entry): New structures.
2948         (vec_desc_hash, vec_ptr_map): New static variables.
2949         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
2950         register_overhead, free_overhead, vec_heap_free): New functions.
2951         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
2952         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
2953         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
2954         New functions.
2955
2956 2008-09-11  Ira Rosen  <irar@il.ibm.com>
2957
2958         PR tree-optimization/37474
2959         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
2960         length of load permutation.
2961
2962 2008-09-11  Andreas Schwab  <schwab@suse.de>
2963
2964         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
2965
2966 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
2967
2968         PR target/37382
2969         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
2970         * dse.c (find_shift_sequence): Use extract_low_bits instead of
2971         simplify_gen_subreg.
2972
2973 2008-09-11  Ira Rosen  <irar@il.ibm.com>
2974
2975         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
2976         for alias check.
2977
2978 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2979
2980         PR middle-end/37338
2981         * gimplify.c (gimplify_body): Call default_rtl_profile.
2982
2983         PR target/36904
2984         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
2985         instead of tok->val.node if not expanding to something else.  Handle
2986         intervening CPP_PADDING tokens.
2987         (altivec_categorize_keyword): Remove unneeded comparisons.
2988
2989 2008-09-10  Richard Guenther  <rguenther@suse.de>
2990
2991         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
2992
2993 2008-09-10  Richard Guenther  <rguenther@suse.de>
2994
2995         PR middle-end/37432
2996         * tree-inline.c (insert_init_stmt): Make sure to not
2997         insert invalid gimple stores.
2998
2999 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
3000
3001         PR tree-optimization/37388
3002         * toplev.c (process_options): Fail and warn when graphite
3003         flags are used, but the compiler has not been configured
3004         with graphite libraries.
3005         * graphite.c (graphite_transform_loops): Remove printfs
3006         to dump_file for the case when graphite is not available.
3007
3008 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
3009
3010         PR target/37434:
3011         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
3012         the even element into register.
3013         (ix86_expand_vector_init_general): Don't use
3014         ix86_expand_vector_init_interleave on V16QImode and V8HImode
3015         if we can't move from GPR to SSE register directly.
3016
3017 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
3018
3019         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
3020         not lose track of the number of NOPs needed.  Number of NOPs needed
3021         for sync vs. loads workaround was switched; corrected.  Run second
3022         pass for all workarounds.  No NOPs needed after call insns.  Change
3023         second pass to use find_next_insn_start and find_load helpers in order
3024         to properly detect parallel insns.
3025         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
3026
3027 2008-09-10  Jan Hubicka  <jh@suse.cz>
3028
3029         * value-prof.c (gimple_ic): Fix tuplification bug.
3030         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
3031         var warning.
3032
3033 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
3034
3035         PR tree-optimization/37353
3036         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
3037         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
3038         calls instead of cond_dead_built_in_calls.
3039         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
3040         initalize the vector only before adding first entry.  Use VEC_safe_push
3041         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
3042         shrink_wrap_conditional_dead_built_in_calls call.
3043
3044 2008-09-10  Ira Rosen  <irar@il.ibm.com>
3045
3046         PR tree-optimization/37385
3047         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
3048         argument, and use it as a vector type if not NULL.
3049         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
3050         vectorized rhs.
3051         (vect_setup_realignment): Call vect_create_data_ref_ptr with
3052         additional argument.
3053         (vectorizable_load): Likewise.
3054
3055 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
3056
3057         * config/i386/i386.md (SWI32): New mode iterator.
3058         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
3059         of SWI.
3060
3061 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3062
3063         PR rtl-optimization/37435
3064         * caller-save.c (insert_restore, insert_save): Check the mode by
3065         reg_save_code.
3066
3067 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3068
3069         PR other/37265
3070         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
3071         splay tree lookup.
3072         (dw2_output_indirect_constant_1): Use unstripped name in symbol
3073         reference.
3074
3075 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
3076
3077         * doc/invoke.texi (ARM Options): Correct errors in discussion
3078         of -mfloat-abi, -mhard-float, and -msoft-float.
3079
3080 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
3081             Jan Hubicka  <jh@suse.cz>
3082
3083         PR middle-end/37356
3084         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
3085         calling gimple_regimplify_operands on it.  Iterate over all newly
3086         added statements, not just the last one.
3087         (insert_init_stmt): Insert stmt into seq first, then call
3088         gimple_regimplify_operands on it.  Don't create new gimplification
3089         context, nor find referenced vars.
3090
3091 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
3092
3093         PR other/37419
3094         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
3095         to pointer to vector pointer.
3096         * ipa-prop.c (ipa_propagate_indirect_call_infos,
3097         propagate_info_to_inlined_callees): Likewise.
3098         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
3099         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
3100         ipa_check_create_edge_args.
3101         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
3102         argument to pointer to vector pointer.
3103         (cgraph_decide_inlining_of_small_function): Adjust
3104         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
3105         calls.
3106
3107         PR target/37438
3108         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
3109         optimizing for size, not speed.
3110
3111         PR rtl-optimization/37408
3112         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
3113         if parm is promoted.
3114
3115 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
3116
3117         PR tree-optimization/37375
3118         * tree-scalar-evolution.c (scev_info_str): Add field
3119         instantiated_below.
3120         (new_scev_info_str, eq_scev_info, find_var_scev_info,
3121         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
3122         set_instantiated_value): Pass instantiated_below.
3123         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
3124         to above functions.
3125         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
3126         the definitions are not instantiated.
3127
3128         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
3129         (block_before_loop): New.
3130         * tree-data-ref.c (dr_analyze_indices): Update uses of
3131         instantiate_scev.
3132         * graphite.c (block_before_scop): New.
3133         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
3134         basic block, not a loop for determining the parameters.
3135         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
3136         scop.
3137         (idx_record_params, find_params_in_bb, find_scop_parameters,
3138         build_loop_iteration_domains, add_conditions_to_domain): Update calls
3139         to instantiate_scev.
3140
3141         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
3142
3143 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3144
3145         PR rtl-opt/37333
3146
3147         * ira-build.c (ira_create_allocno): Setup frequency to 0.
3148
3149         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
3150         Check zero freq and increase if necessary.
3151
3152 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
3153
3154         * ira-conflicts.c (process_regs_for_copy): Check that the hard
3155         regno is in the right range.  Add comments.
3156
3157 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3158
3159         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
3160         warnings.
3161         * mips-tfile.c (copy_object): Cast alloca result to int *.
3162         * mips-tdump.c (print_symbol): Cast xmalloc return values to
3163         proper types.
3164         Rename class to sclass.
3165         (read_tfile): Cast read_seek return values to proper types.
3166         Cast xcalloc return value to proper type.
3167
3168 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3169
3170         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
3171         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
3172         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
3173
3174 2008-09-09  Jan Hubicka  <jh@suse.cz>
3175
3176         * profile.c (is_edge_inconsistent): Add debug output; ignore
3177         negative count on fake edges.
3178         (is_inconsistent): Add debug output.
3179
3180 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3181
3182         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
3183         dump message.
3184         (choose_ready): When first insn is chosen from the ready list, also
3185         dump it.
3186
3187 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3188
3189         PR rtl-optimization/37360
3190         * haifa-sched.c (max_issue): Do not assert that we never issue more
3191         insns than issue_rate.  Add comment.
3192
3193 2008-09-09  Richard Guenther  <rguenther@suse.de>
3194
3195         * tree-cfg.c (verify_types_in_gimple_op): Remove.
3196         (verify_types_in_gimple_call): Rename to ...
3197         (verify_gimple_call): ... this.  Enhance.
3198         (verify_types_in_gimple_cond): Remove.
3199         (verify_gimple_comparison): New function ...
3200         (verify_types_in_gimple_assign): ... split out from here.
3201         (verify_types_in_gimple_return): Rename to ...
3202         (verify_gimple_return): ... this.  Enhance.
3203         (verify_types_in_gimple_switch): Rename to ...
3204         (verify_gimple_switch): ... this.  Enhance.
3205         (verify_gimple_goto): New function.
3206         (verify_types_in_gimple_phi): Rename to ...
3207         (verify_gimple_phi): ... this.  Enhance.
3208         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
3209         Fold in single-statement cases from verify_types_in_gimple_seq_2.
3210         (verify_types_in_gimple_seq_2): Remove cases handled in
3211         verify_types_in_gimple_stmt.
3212
3213 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
3214
3215         * config/bfin/bfin.c (n_regs_to_save): New static variable.
3216         (push_multiple_operation, pop_multiple_operation): Set it.
3217         (workaround_rts_anomaly): New function.
3218         (workaround_speculation): New function, broken out of bfin_reorg.
3219         (bfin_reorg): Call the new functions.
3220
3221 2008-09-09  Richard Guenther  <rguenther@suse.de>
3222
3223         PR middle-end/37354
3224         PR middle-end/30165
3225         * gimplify.c (gimplify_conversion): Change conversions of
3226         non-register type to VIEW_CONVERT_EXPRs.
3227         (gimplify_addr_expr): If we need to make the operand
3228         addressable make sure to use a properly initialized
3229         temporary for that so it gets a valid gimple store.
3230
3231 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
3232
3233         * function.h (struct function): Add function_start_locus.
3234         * cfgexpand.c (gimple_expand_cfg): Use it.
3235         * c-parser.c (c_parser_declaration_or_fndef): Set it.
3236
3237 2008-09-09  Richard Guenther  <rguenther@suse.de>
3238
3239         PR tree-optimization/37433
3240         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
3241         function calls.
3242
3243 2008-09-09  Richard Guenther  <rguenther@suse.de>
3244
3245         PR tree-optimization/37387
3246         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
3247         and bits to a common type.
3248
3249 2008-09-09  Nick Clifton  <nickc@redhat.com>
3250
3251         * config/v850/v850.md (return): Restore frame size restriction.
3252
3253 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
3254
3255         * c-common.c (c_expand_decl): Remove.
3256         * c-common.h (anon_aggr_type_p): Remove prototype.
3257         (DECL_ANON_UNION_ELEMS): Remove.
3258         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
3259         * c-decl.c (anon_aggr_type_p): Remove.
3260         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
3261         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
3262         * langhooks.h (struct lang_hooks): Remove expand_decl.
3263         * langhooks.c (lhd_expand_decl): Remove.
3264         * stmt.c (expand_anon_union_decl): Remove.
3265         * tree.h (expand_anon_union_decl): Remove prototype.
3266
3267 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
3268
3269         PR target/36609
3270         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
3271         zero.
3272         * config/avr/avr.md  (QISI) : Define mode iterator.
3273         (negated_tst<mode>) : Redefine as split using mode macro.
3274         (reversed_tstqi): Define insn as reversed compare with zero.
3275         (reversed_tsthi): Ditto.
3276         (reversed_tstsi): Ditto.
3277
3278 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3279
3280         PR middle-end/37393
3281         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
3282         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
3283
3284         PR middle-end/37414
3285         * predict.c (optimize_function_for_size_p): Don't segfault if
3286         FUN is NULL.
3287         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
3288         tree_swap_operands_p): Don't test cfun != NULL before calling
3289         optimize_function_for_s*_p.
3290
3291 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3292
3293         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
3294         end of the search.
3295
3296 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
3297
3298         * crx/crx.h (IRA_COVER_CLASSES): Define.
3299
3300 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3301
3302         PR middle-end/37337
3303         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3304         even when a stmt has been gimple_modified_p, but after fold_stmt is
3305         not any longer.  Remove unneeded may_have_exposed_new_symbols
3306         initializations.
3307
3308 2008-09-08  Richard Guenther  <rguenther@suse.de>
3309
3310         PR tree-optimization/37421
3311         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3312         valueize the RHS.
3313
3314 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3315
3316         PR middle-end/37415
3317         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3318
3319 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3320
3321         PR driver/37409
3322         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3323         * pa-hpux10.h (LINK_SPEC): Likewise.
3324         * pa-hpux11.h (LINK_SPEC): Likewise.
3325
3326 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3327
3328         * pa32-regs.h (IRA_COVER_CLASSES): Define.
3329         * pa64-regs.h (IRA_COVER_CLASSES): Define.
3330
3331 2008-09-07  Helge Deller  <deller@gmx.de>
3332
3333         * pa/linux-atomic.c: New file.
3334         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3335         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3336
3337 2008-09-07  Richard Guenther  <rguenther@suse.de>
3338             Ira Rosen  <irar@il.ibm.com>
3339
3340         PR tree-optimization/36630
3341         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3342         Call STRIP_NOPS before calling evolution_part_in_loop_num.
3343
3344 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
3345             Ira Rosen  <irar@il.ibm.com>
3346
3347         PR tree-optimization/35642
3348         * config/rs6000/altivec.md (mulv8hi3): Implement.
3349
3350 2008-09-06  Jeff Law <law@redhat.com>
3351
3352         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
3353
3354 2008-09-06  Jan Hubicka  <jh@suse.cz>
3355
3356         PR tree-optimization/14703
3357         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3358         declarations.
3359         * passes.c (init_optimization_passes): Recompute inline parameters.
3360
3361 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
3362
3363         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3364         DECL being null.
3365
3366 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
3367             Peter Fuerst  <post@pfrst.de>
3368
3369         * doc/invoke.texi: Document -mr10k-cache-barrier=.
3370         * doc/extend.texi: Document __builtin_mips_cache.
3371         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3372         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3373         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3374         __GCC_HAVE_BUILTIN_MIPS_CACHE.
3375         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3376         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3377         (set_push_mips_isas): New variable.
3378         (mips_r10k_cache_barrier): New variable.
3379         (cache): New availability predicate.
3380         (mips_builtins): Add an entry for __builtin_mips_cache.
3381         (mips_build_cvpointer_type): New function.
3382         (MIPS_ATYPE_CVPOINTER): New macro.
3383         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3384         mode is VOIDmode.
3385         (r10k_simplified_address_p, r10k_simplify_address)
3386         (r10k_uncached_address_p, r10k_safe_address_p)
3387         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3388         (r10k_needs_protection_p_call, r10k_needs_protection_p)
3389         (r10k_insert_cache_barriers): New functions.
3390         (mips_reorg_process_insns): Delete cache barriers after a
3391         branch-likely instruction.
3392         (mips_reorg): Call r10k_insert_cache_barriers.
3393         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3394         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3395         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3396         (mips_cache, r10k_cache_barrier): New define_insns.
3397
3398 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
3399
3400         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3401         * ira-color.c (setup_allocno_left_conflicts_num): Use
3402         hard_reg_set_equal_p instead of a comparison with
3403         ira_zero_hard_reg_set.
3404         * ira.c (setup_reg_subclasses): Likewise.
3405         (setup_cover_and_important_classes): Likewise.
3406         (setup_class_translate): Likewise.
3407         (setup_reg_class_intersect_union): Likewise.
3408         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3409         (ira_init_once): Don't initialize them.
3410
3411 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
3412
3413         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
3414
3415 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
3416
3417         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
3418
3419 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3420
3421         Improved branch hints, safe hints, and scheduling.
3422
3423         * haifa-sched.c (sched_emit_insn) : Define.
3424         * sched-int.h (sched_emit_insn) : Add prototype.
3425         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
3426         -mhint-max-distance -msafe-hints) : Document.
3427         * config/spu/spu.c (spu_flag_var_tracking): New.