OSDN Git Service

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