OSDN Git Service

2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
2             Harsha Jagasia  <harsha.jagasia@amd.com>
3
4         PR tree-optimization/37485
5         * graphite.c (gmp_cst_to_tree): Moved.
6         (iv_stack_entry_is_constant): New.
7         (iv_stack_entry_is_iv): New.
8         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
9         (loop_iv_stack_insert_constant): New.
10         (loop_iv_stack_pop): Use new datatpype.
11         (loop_iv_stack_get_iv): Same.
12         (loop_iv_stack_get_iv_from_name): Same.
13         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
14         (loop_iv_stack_patch_for_consts): New.
15         (loop_iv_stack_remove_constants): New.
16         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
17         (translate_clast): Call loop_iv_stack_patch_for_consts and
18         loop_iv_stack_remove_constants.
19         (gloog): Use new datatype.  Redirect construction edge to end
20         block to avoid accidental deletion.
21         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
22         iv stack entry.
23         (union iv_stack_entry_data): New.  Data in iv stack entry.
24         (struct iv_stack_entry): New.  Datatype for iv stack entries.
25
26 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
27
28         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
29         * graphite.c (free_scop): Same.
30         (build_scops): Same.
31         (free_scattering): New.
32         (build_cloog_prog): Call free_scattering.
33         (patch_phis_for_virtual_defs): Fix memleak.
34         (graphite_trans_bb_strip_mine): Same.
35         (limit_scops): Same.
36
37 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
38             Harsha Jagasia  <harsha.jagasia@amd.com>
39
40         PR tree-optimization/37828
41         * graphite.c (graphite_trans_loop_block): Do not loop block
42         single nested loops.
43
44 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
45
46         PR tree-optimization/37686
47         * tree-loop-linear.c (linear_transform_loops): Build a
48         loop nest vector.  Pass it to lambda_compute_access_matrices.
49         * tree-data-ref.h (struct access_matrix): Store the loop nest
50         relative to which it encodes the information.
51         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
52         (am_vector_index_for_loop): Reimplemented: iterate over the
53         loop nest for finding the loop index in the access matrix.
54         (lambda_compute_access_matrices): Update declaration.
55         * lambda-code.c (build_access_matrix): Pass the loop nest and
56         record it.
57         (lambda_compute_access_matrices): Same.
58
59 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
60
61         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
62         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
63         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
64         already implies hard float.  Also fix several insn condition
65         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
66
67 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
68
69         PR tree-optimization/36881
70         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
71         that each value doesn't need runtime relocations, for !flag_pic
72         check that each value is just a valid initializer constant.
73
74 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
75
76         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
77         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
78         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
79         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
80         GR_AND_ACC_REGS.
81         (REG_CLASS_NAMES): Update accordingly.
82         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
83         rather than an unpredictable descriptive string.
84         * config/mips/mips.c (mips_register_move_cost): Remove comment.
85         (mips_register_move_cost): Check for specific COP*_REGS classes,
86         instead of ALL_COP_AND_GR_REGS.
87         (mips_ira_cover_classes): New function.
88         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
89         (TARGET_IRA_COVER_CLASSES): Define.
90
91 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
92
93        PR c++/37553
94        * tree.c (build_type_attribute_qual_variant): Hash on the
95        unqualified type, and don't overwrite an existing
96        (type_hash_eq): Make the TYPE_NAME of the types significant, to
97        allow distinguishing between wchar_t and its underlying type. This
98        also means that we'll retain a little more typedef information.
99
100 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
101             Dmitry Melnik  <dm@ispras.ru>
102             Dmitry Zhurikhin  <zhur@ispras.ru>
103             Alexander Monakov  <amonakov@ispras.ru>
104             Maxim Kuvyrkov  <maxim@codesourcery.com>
105
106         * target.h (struct gcc_target): Update prototypes of needs_block_p
107         and gen_spec_check.
108         * haifa-sched.c (create_check_block_twin): Update calls to the above.
109         * sel-sched.c (create_speculation_check): Likewise.
110         * doc/tm.texi: Provide documentation for new target hooks.
111                 
112         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
113         (ia64_gen_spec_insn): Removed.
114         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
115         ia64_gen_spec_check): New static functions.
116         (ia64_alloc_sched_context, ia64_init_sched_context, 
117         ia64_set_sched_context, ia64_clear_sched_context, 
118         ia64_free_sched_context, ia64_get_insn_spec_ds, 
119         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
120         (ia64_needs_block_p): Change prototype.
121         (ia64_gen_check): Rename to ia64_gen_spec_check.
122         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter 
123         into declaration, add special memory dependencies handling.
124         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
125         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
126         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
127         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P): 
128         Define new target hooks.
129         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
130         (ia64_optimization_options): Turn on selective scheduling with -O3, 
131         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
132         with selective scheduling.
133         (ia64_override_options): Initialize align_loops and align_functions 
134         to 32 and 64, respectively.  Set global selective scheduling flags 
135         according to target-dependent flags.
136         (rtx_needs_barrier): Support UNSPEC_LDS_A.
137         (group_barrier_needed): Use new mstop-bit-before-check flag. 
138         Add heuristic.
139         (dfa_state_size): Make global.
140         (spec_check_no, max_uid): Remove.
141         (mem_ops_in_group, current_cycle): New variables.
142         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
143         Initialize new variables.
144         (is_load_p, record_memory_reference): New functions.
145         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
146         reached.
147         (ia64_variable_issue): Change use of current_sched_info to 
148         sched_deps_info.  Update comment.  Note if a load or a store is issued.
149         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
150         advance if maximal number of loads or stores was issued on current 
151         cycle.
152         (scheduled_good_insn): New static helper function.
153         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when 
154         a group barrier is needed.  Fix vertical spacing.  Guard the code
155         doing state transition with last_scheduled_insn check.                
156         Mark that a stop bit should be before current insn if there was a 
157         cycle advance.  Update current_cycle and mem_ops_in_group.
158         (ia64_h_i_d_extended): Change use of current_sched_info to
159         sched_deps_info. Reallocate stops_p by larger chunks.
160         (struct _ia64_sched_context): New structure.
161         (ia64_sched_context_t): New typedef.
162         (ia64_alloc_sched_context, ia64_init_sched_context, 
163         ia64_set_sched_context, ia64_clear_sched_context,
164         ia64_free_sched_context): New static functions.
165         (gen_func_t): New typedef.
166         (get_spec_load_gen_function): New function.
167         (SPEC_GEN_EXTEND_OFFSET): Declare.      
168         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
169         (get_mode_no_for_insn): Change the condition that prevents use of 
170         special hardware registers so it can now handle pseudos.
171         (get_spec_unspec_code): New function.
172         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
173         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
174         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
175         during selective scheduling.
176         (ia64_speculate_insn): Use ds_get_speculation_types when 
177         determining whether we need to change the pattern.
178         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
179         (ia64_spec_check_src_p): Support new speculation/check codes.
180         (struct bundle_state): New field.
181         (issue_nops_and_insn): Initialize it.
182         (insert_bundle_state): Minimize mid-bundle stop bits.
183         (important_for_bundling_p): New function.
184         (get_next_important_insn): Use important_for_bundling_p.
185         (bundling): When shifting TImode from unimportant insns, ignore 
186         also group barriers.  Assert that best state is found before 
187         the backward bundling pass.  Print number of mid-bundle stop bits.  
188         Minimize mid-bundle stop bits.  Check correct calculation of 
189         mid-bundle stop bits.
190         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
191         (final_emit_insn_group_barriers): Emit stop bits before insns starting
192         a new cycle.
193         (sel2_run): New variable.
194         (ia64_reorg): When flag_selective_scheduling2 is set, run the selective 
195         scheduling pass instead of schedule_ebbs.  
196         
197         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
198         (UNSPEC_LDS_A): New UNSPEC.
199         (movqi_internal, movhi_internal, movsi_internal, movdi_internal, 
200         movti_internal, movsf_internal, movdf_internal, 
201         movxf_internal): Make visible.  Add speculable* attributes.
202         (output_c_nc): New mode attribute.
203         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
204         mov<mode>_nc, zero_extend<mode>di2_nc, 
205         advanced_load_check_nc_<mode>): New insns.
206         (zero_extend*): Add speculable* attributes.
207
208         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
209         (msched-stop-bits-after-every-cycle): Likewise.
210         (msched-max-memory-insns,
211         msched-max-memory-insns-hard-limit): Likewise.
212         (msched-spec-verbose): Remove.
213         (msched-prefer-non-data-spec-insns,
214         msched-prefer-non-control-spec-insns, msched-count-spec-in-critical-path,
215         msel-sched-dont-check-control-spec): Use Target 
216         Report Var instead of Common Report Var.
217
218         * config/ia64/itanium2.md: Remove incorrect bypass.
219         
220         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
221
222 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
223
224         PR middle-end/37805
225         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
226         and -fhelp=separate.
227
228 2008-10-14  Ben Elliston  <bje@au.ibm.com>
229
230         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
231
232 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
233
234         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
235         non-integer modes.
236
237 2008-10-13  Matthias Klose  <doko@ubuntu.com>
238
239         * config/pa/linux-atomic.c: Work around missing header file
240         for hppa64-linux-gnu targets.
241
242 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
243             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
244             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
245             Grace Cao  <grace_cao@playstation.sony.com>
246
247         * doc/invoke.texi (-mgen-cell-microcode): Document.
248         (-mwarn-cell-microcode): Document.
249         * cfglayout.c (locator_location): Export.
250         * rtl.h (locator_location): Define prototype.
251         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): New predicate.
252         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
253         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
254         (mwarn-cell-microcode): New option.
255         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
256         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
257         cell and not already set.
258         Turn off string instructions if not generating cell microcode.
259         (rs6000_final_prescan_insn): New function that warns about microcoded
260         instructions.
261         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
262         * config/rs6000/rs6000.md
263         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
264         the instruction would have been microcoded on the Cell.
265         Set cell_micro to always on unnamed patterns for the string instructions.
266         (cell_micro): Update definition, remove load/store conditional microcoded.
267         (sign_extend:DI): Define new pattern for non microcoded version.
268         (sign_extend:SI): Likewise.
269         (compare (div:P)): Set cell_micro to not.
270         (andsi3): Define as an expand.
271         (andsi3_mc): New pattern.
272         (andsi3_nomc): New pattern.
273         (andsi3_internal0_nomc): New pattern.
274         (andsi3_internal2): Rename to ...
275         (andsi3_internal2_mc): this and enable iff generating microcode.
276         (andsi3_internal3): Rename to ...
277         (andsi3_internal3_mc): this and enable iff generating microcode.
278         (andsi3_internal4): Enable iif generating microcode.
279         (andsi3_internal5): Rename to ..
280         (andsi3_internal5_mc): this and enable iff generating microcode.
281         (andsi3_internal5_nomc): New pattern.
282         (extzvdi_internal1): Enable iff generating microcode.
283         (extzvdi_internal2): Likewise.
284         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
285         (anddi3): Change to expand.
286         (anddi3_mc): Rename from anddi3.
287         (anddi3_no_mc): New pattern.
288         (anddi3_internal2): Rename to ..
289         (anddi3_internal2_mc): this and enable iff generating microcode.
290         (anddi3_internal2_nomc): New pattern.
291         (anddi3_internal3): Rename to ..
292         (anddi3_internal3_mc): this and enable iff generating microcode.
293         (anddi3_internal3_nomc): New pattern.
294         (movti_string): Set cell_micro to always if TARGET_STRING.
295         (stmsi8): Set cell_micro to always.
296         (stmsi7): Likewise.
297         (stmsi6): Likewise.
298         (stmsi5): Likewise.
299         (stmsi4): Likewise.
300         (stmsi3): Likewise.
301         (stmsi8_power): Likewise.
302         (stmsi7_power): Likewise.
303         (stmsi6_power): Likewise.
304         (stmsi5_power): Likewise.
305         (stmsi4_power): Likewise.
306         (stmsi3_power): Likewise.
307         (movsi_update2): Enable iff generating microcode.
308         (movhi_update3): Likewise.
309         (lmw): Set cell_micro to always.
310
311 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
312
313         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
314         * config/s390/s390.c (machine_function): Remove
315         decomposed_literal_pool_addresses_ok_p.
316         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
317         the difference of two labels.
318         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
319         (s390_pool_offset): New function.
320         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
321         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
322
323 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
324
325         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
326         (powerpc*-*-linux-gnu*): Describe.
327         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
328         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
329         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
330         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
331         config/rs6000/e500crtres32gpr.asm,
332         config/rs6000/e500crtres64gpr.asm,
333         config/rs6000/e500crtres64gprctr.asm,
334         config/rs6000/e500crtrest32gpr.asm,
335         config/rs6000/e500crtrest64gpr.asm,
336         config/rs6000/e500crtresx32gpr.asm,
337         config/rs6000/e500crtresx64gpr.asm,
338         config/rs6000/e500crtsav32gpr.asm,
339         config/rs6000/e500crtsav64gpr.asm,
340         config/rs6000/e500crtsav64gprctr.asm,
341         config/rs6000/e500crtsavg32gpr.asm,
342         config/rs6000/e500crtsavg64gpr.asm,
343         config/rs6000/e500crtsavg64gprctr.asm: Use it.
344         * config/rs6000/crtsavres.asm: Really remove.
345
346 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
347
348         Fix PR/25502
349         * c-format.c (convert_format_name_to_system_name): Use
350         TARGET_OVERRIDES_FORMAT_INIT.
351         * config.gcc (extra_options): Add for mingw targets mingw.opt.
352         * config/i386/mingw.opt: New.
353         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
354         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
355         (ms_printf_length_specs): Removed const specifier.
356         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
357         * doc/invoke.texi (Wno-pedantic-ms-format): New.
358
359 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
360
361         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
362         * doc/install.texi: Bump recommended MPFR to 2.3.2.
363
364 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
365
366         PR middle-end/37808
367         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
368         sure that ref has valid bb.
369         
370 2008-10-12  Richard Henderson  <rth@redhat.com>
371
372         PR middle-end/37447
373         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
374         * alias.c (value_addr_p, stack_addr_p): Remove.
375         (nonoverlapping_memrefs_p): Remove IRA special case.
376         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
377         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
378         * reload1.c (alter_reg): Use it.
379
380 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
381
382         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
383         of registers instead of eax, ebx, ecx and edx.  Use for loop
384         and check register for non-zero value before the call
385         to decode_caches_intel.
386
387 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
388
389         PR rtl-optimization/37448
390         * df.h: (df_ref_class): New enum.
391         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
392         (struct df_ref): Replaced with union df_ref_d.
393         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
394         New members of df_ref_d union.
395         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
396         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
397         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
398         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
399         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
400         DF_REF_EXTRACT_MODE): Replaced definition to access union
401         df_ref_d.
402         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
403         (df_scan_bb_info, df_bb_regno_first_def_find,
404         df_bb_regno_last_def_find, df_find_def, df_find_use,
405         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
406         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
407         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
408         df_get_artificial_defs, df_get_artificial_uses, union_defs)
409         Replaced struct df_ref * with df_ref.
410         * df-scan.c (df_collection_rec, df_null_ref_rec,
411         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
412         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
413         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
414         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
415         df_reorganize_refs_by_reg_by_reg,
416         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
417         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
418         df_sort_and_compress_refs, df_install_ref, df_install_refs,
419         df_ref_record, df_get_conditional_uses, df_get_call_refs,
420         df_bb_refs_record, df_exit_block_uses_collect,
421         df_record_exit_block_uses, df_reg_chain_mark,
422         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
423         df_ref * with df_ref.
424         (df_ref_record, df_uses_record, df_ref_create_structure): Added
425         df_ref_class parameter.
426         (df_scan_problem_data): Added new pools for different types of
427         refs.
428         (df_scan_free_internal, df_scan_alloc, df_free_ref,
429         df_ref_create_structure): Processed new ref pools.
430         (df_scan_start_dump): Added counts of refs and insns.
431         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
432         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
433         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
434         code to pass df_ref_class down to ref creation functions.
435         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
436         df_reg_chain_mark): Use macros to hide references to df_refs.
437         (df_ref_chain_change_bb): Removed.
438         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
439         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
440         Enhanced to understand df_ref union structure.
441         * fwprop.c (local_ref_killed_between_p, use_killed_between,
442         all_uses_available_at, update_df, try_fwprop_subst,
443         forward_propagate_subreg, forward_propagate_and_simplify,
444         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
445         df_ref * with df_ref.
446         (use_killed_between, all_uses_available_at): Use macros to hide
447         references to df_refs.
448         * regstat.c (regstat_bb_compute_ri,
449         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
450         df_ref.
451         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
452         see_handle_relevant_refs, see_analyze_one_def,
453         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
454         struct df_ref * with df_ref.
455         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
456         global_conflicts): Replaced struct df_ref * with df_ref.
457         * ddg.c (create_ddg_dep_from_intra_loop_link,
458         add_cross_iteration_register_deps, build_inter_loop_deps):
459         Replaced struct df_ref * with df_ref.
460         (create_ddg_dep_from_intra_loop_link,
461         add_cross_iteration_register_deps): Use macros to hide references
462         to df_refs.
463         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
464         df_ref * with df_ref.
465         * df-core.c (df_bb_regno_first_def_find,
466         df_bb_regno_last_def_find, df_find_def, df_find_use,
467         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
468         debug_df_ref): Replaced struct df_ref * with df_ref.
469         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
470         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
471         df_ref.
472         * web.c (union_defs, entry_register, replace_ref, web_main):
473         Replaced struct df_ref * with df_ref.
474         (union_defs, replace_ref): Use macros to hide references to df_refs.
475         * global.c (compute_regs_asm_clobbered, build_insn_chain):
476         Replaced struct df_ref * with df_ref.
477         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
478         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
479         Replaced struct df_ref * with df_ref.
480         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
481         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
482         with df_ref.
483         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
484         * df-byte-scan.c (df_compute_accessed_bytes_extract,
485         df_compute_accessed_bytes_strict_low_part,
486         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
487         Replaced struct df_ref * with df_ref.
488         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
489         * init-regs.c (initialize_uninitialized_regs): Replaced struct
490         df_ref * with df_ref.
491         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
492         check_dependency, check_dependencies, record_uses): Replaced
493         struct df_ref * with df_ref.
494         (invariant_for_use, check_dependency): Use macros to hide
495         references to df_refs.
496         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
497         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
498         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
499         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
500         references to df_refs.
501         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
502         with df_ref.
503         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
504         * df-problems.c (df_rd_bb_local_compute_process_def,
505         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
506         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
507         df_chain_remove_problem, df_chain_create_bb_process_use,
508         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
509         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
510         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
511         df_byte_lr_simulate_artificial_refs_at_top,
512         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
513         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
514         df_simulate_uses, df_simulate_artificial_refs_at_end,
515         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
516         df_ref.
517         (df_chain_dump): Use macros to hide references to df_refs.
518         * config/mips/mips.c (r10k_simplify_address): Replaced struct
519         df_ref * with df_ref.
520         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
521         mark_artificial_uses, mark_reg_dependencies,
522         byte_dce_process_block): Replaced struct df_ref * with df_ref.
523
524 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
525
526         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
527         head comment.
528         (array_ref_element_size): Likewise.
529         (array_ref_low_bound): Likewise.
530         (array_ref_up_bound): Likewise.
531         * expr.c (contains_packed_reference): Likewise.
532         (array_ref_element_size): Likewise.
533         (array_ref_low_bound): Likewise.
534         (array_ref_up_bound): Likewise.
535         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
536         with ARRAY_RANGE_REF.
537         (idx_find_step): Likewise.
538         (idx_record_use): Likewise.
539         (strip_offset_1): Likewise.
540         (idx_remove_ssa_names): Likewise.
541
542 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
543             Andi Kleen  <ak@linux.intel.com>
544
545         * config/i386/cpuid.h (__cpuid_count): New defines.
546         * config/i386/driver-i386.c (struct cache_desc): New structure.
547         (describe_cache): Use struct cache_desc to pass cache descriptions.
548         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
549         (detect_caches_amd): Use struct cache_desc to describe caches.
550         (decode_caches_intel): Use struct cache_desc to pass cache
551         descriptions.  Update descriptions to match latest (rev -032,
552         December 2007) CPUID documentation.  Do not check valid bit here.
553         Check for Xeon MP value 0x49 problems.
554         (detect_caches_cpuid2): New function, split from detect_caches_intel.
555         Check valid bit before calling decode_caches_intel.  Detect number
556         of times to repeat CPUID instruction.
557         (detect_caches_cpuid4): New function.
558         (detect_caches_intel): Depending on max_level, call
559         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
560         only when other methods fail to provide valid L2 cache description.
561
562 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
563
564         PR middle-end/37608
565         * pa.md (call, call_value): Generate an rtx for register r4 and pass
566         it to PIC call patterns.
567         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
568         code generation and attributes from pattern.  Change peephole2 to split
569         for noreturn case.  Revise split pattern for non noreturn case.
570         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
571         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
572         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
573         asserts.
574
575 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
576
577         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
578         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
579         and fp_type.
580         (divdf3): Reformat long line.
581
582 2008-10-11  Michael J. Eager  <eager@eagercon.com>
583
584         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
585         -mfpu options.
586         (rs6000_handle_option): Process -mfpu options.
587         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
588         (enum fpu_type_t): New.
589         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
590         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
591         fp_type.
592         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
593         (floatdidf2): Add TARGET_SINGLE_FPU condition.
594         * config/rs6000/rs6000.opt (-mfpu): New.
595         (-mxilinx-fpu): New.
596         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
597         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
598         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
599         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
600         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
601
602 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
603
604         PR target/35760
605         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
606         LO_SUM on Darwin if mode has just one unit.
607
608 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
609
610         PR debug/37002
611         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
612         has been optimized out.
613
614 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
615
616         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
617         instead of PIC_DIRECT_ADDR_P.
618         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
619         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
620         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
621         (PIC_OFFSET_P): Rename to...
622         (PCREL_SYMOFF_P): ...this.
623         (PIC_DIRECT_ADDR_P): Delete.
624         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
625         PIC_OFFSET_P.
626         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
627         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
628         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
629         * config/sh/sh.c (print_operand): Remove CONST handling.
630         (unspec_caller_rtx_p): Rewrite to use split_const and check
631         the operands of UNSPEC bases.
632         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
633         with (unspec [A B] UNSPEC_SYMOFF).
634         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
635         UNSPEC_PCREL_SYMOFF.
636         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
637         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
638         (UNSPEC_EXTRACT_U16): Likewise.
639         (UNSPEC_SYMOFF): Likewise.
640         (UNSPEC_PCREL_SYMOFF): Likewise.
641         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
642         of constants.
643         (movsi_const_16bit): Likewise.
644         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
645         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
646         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
647         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
648         with (unspec [A B] UNSPEC_SYMOFF).
649         (symPLT_label2reg): Replace (minus A (minus B pc)) with
650          (unspec [A B] PCREL_UNSPEC_SYMOFF).
651         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
652         (Csu): Likewise UNSPEC_EXTRACT_U16.
653         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
654         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
655
656 2008-10-10  Stepan Kasal  <skasal@redhat.com>
657
658         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
659         for loop strip mining and loop blocking.
660
661 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
662
663         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
664         vary types depending on debug info.
665
666 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
667
668         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
669         before ensuring it's already computed.
670
671 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
672
673         * rtl.h (locator_eq): New decl.
674         * cfglayout.c (locator_scope): New function.
675         (insn_scope): Use it.
676         (locator_eq): New function.
677         (fixup_reorder_chain): Search for last insn in src bb
678         that has locator set or first insn in dest bb.  Use
679         locator_eq instead of == to compare locators.
680         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
681         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
682         == to compare locators.
683
684         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
685         as used.
686         * gimple-low.c (lower_function_body, lower_gimple_return,
687         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
688         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
689         goto_block on edges if goto_locus is known.
690
691         PR middle-end/37774
692         * tree.h (get_object_alignment): Declare.
693         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
694         get_object_alignment if needed.
695         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
696         to ...
697         (get_object_alignment): ... here.  New function.  Try harder to
698         determine alignment from get_inner_reference returned offset.
699
700 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
701
702         * graphite.c (gloog): Don't call find_unreachable_blocks
703         before delte_unreachable_blocks.
704
705         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
706         goto_locus of true_edge into RTL locator.
707
708 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
709
710         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
711         (*jcc_btdi_mask_rex64): Ditto.
712         (*jcc_btsi): Ditto.
713         (*jcc_btsi_mask): Ditto.
714         (*jcc_btsi_1): Ditto.
715         (*jcc_btsi_mask_1): Ditto.
716
717 2008-10-08  Paul Brook  <paul@codesourcery.com>
718
719         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
720         compatible profiler (__gnu_mcount_nc).
721         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
722
723 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
724
725         * config/i386/i386.c (initial_ix86_tune_features): Add
726         X86_TUNE_USE_VECTOR_FP_CONVERTS.
727         * config/i386/i386.h (ix86_tune_indices): Likewise.
728         (TARGET_USE_VECTOR_FP_CONVERTS): New.
729
730         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
731         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
732         for FP to FP splitters.
733
734 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
735
736         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
737         splitter.
738
739 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
740
741         PR target/36635
742         PR target/37290
743         PR rtl-optimization/37341
744         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
745         to ORIG_BB, pass through ORIG_BB recursively.
746         (cse_condition_code_reg): Adjust caller.
747
748 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
749
750         * sdbout.c (sdbout_one_type): Treat the value type
751         CONST_DECL for enumerals.
752
753 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
754
755         * config/i386/i386.md: Remove trailing white spaces.
756
757 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
758
759         PR rtl-optimization/37448
760         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
761         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
762         Make unsigned long.
763         (struct output_info) [count]: Renamed total_created and made
764         unsigned long.
765         (struct output_info) [size]: Renamed total_allocated and made
766         unsigned long.
767         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
768         Properly keep track of desc->size.
769         (print_statistics, dump_alloc_pool_statistics): Enhance the
770         printing of statistics to print the number of elements and to use
771         unsigned longs.
772         
773 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
774
775         PR middle-end/37576
776         * opts.h (CL_SAVE): Move up to flags range.
777         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
778         CL_COMMON): Renumber.
779         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
780         * opts.c (common_handle_option): Revert last change.
781
782 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
783
784         * config/i386/i386-protos.h (ix86_schedule): New.
785
786         * config/i386/i386.c (ix86_schedule): New.
787         (override_options): Add schedule to processor_alias_table.  Set
788         ix86_schedule from the schedule field in processor_alias_table.
789         (ix86_function_specific_save): Save ix86_schedule.
790         (ix86_function_specific_restore): Restore ix86_schedule.
791
792         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
793         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
794         and generic32.
795
796         * config/i386/i386.opt: Add schedule.
797
798         * config/i386/ppro.md: Remove generic32.
799
800 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
801
802         PR c/35437
803         * expr.c (count_type_elements): Handle ERROR_MARK.
804
805 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
806
807         PR debug/29609
808         PR debug/36690
809         PR debug/37616
810         * basic-block.h (struct edge_def): Add goto_block field.
811         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
812         one insn with locus corresponding to edge's goto_locus if !optimize.
813         * profile.c (branch_prob): Copy edge's goto_block.
814         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
815         emitted jumps.
816         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
817         locator in between the merged basic blocks if !optimize and needed.
818         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
819         goto_locus into RTL locator.  For unconditional jump use that
820         locator for the jump insn.
821         (expand_gimple_cond): Convert goto_block and goto_locus into
822         RTL locator for all remaining edges.  For unconditional jump
823         use that locator for the jump insn.
824         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
825         there is more than one edge or insn locator along the forwarding
826         edges and !optimize.  If there is just one, set e->goto_locus.
827         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
828         edge's goto_block.
829         (move_block_to_fn): Adjust edge's goto_block.
830
831 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
832
833         PR middle-end/37731
834         * expmed.c (expand_mult): Properly check DImode constant in
835         CONST_DOUBLE.
836
837 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
838
839         PR debug/37738
840         * dwarf2out.c (common_block_die_table): New variable.
841         (common_block_die_table_hash, common_block_die_table_eq): New
842         functions.
843         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
844         COMMON block in the current scope rather than globally.  Optimize
845         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
846         DW_OP_addr SYMBOL_REF+off.
847
848 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
849
850         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
851         Return true for non-addressable GIMPLE operands.
852
853 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
854
855         PR target/24765
856         * config/i386/i386.c (initial_ix86_tune_features): Remove
857         X86_TUNE_USE_BIT_TEST.
858         * config/i386/i386.h (ix86_tune_indices): Likewise.
859         (TARGET_USE_BIT_TEST): Removed.
860
861 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
862
863         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
864
865 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
866
867         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
868         (mul<mode>3_mul3): ... into this new template.
869
870 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
871
872         * gimplify.c (gimplify_arg): Add location argument.  Use it.
873         (gimplify_call_expr): Pass location to gimplify_arg.
874         (gimplify_modify_expr_to_memcpy): Same.
875         (gimplify_modify_expr_to_memset): Same.
876
877 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
878
879         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
880         Update calls to build_unary_op and build_indirect_ref for location
881         changes.
882
883 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
884
885         build_modify_expr.
886         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
887         * c-typeck.c (array_to_pointer_conversion): Pass location to
888         build_unary_op.
889         (function_to_pointer_conversion): Use error_at and warning_at.
890         (build_indirect_ref): Same.
891         (build_array_ref): Pass location to build_binary_op.
892         (parser_build_unary_op): Do not set location after calling
893         build_unary_op.
894         (build_unary_op): Add location argument.  Use it throughout.  Set
895         EXPR_LOCATION before returning new tree.
896         (build_modify_expr): Same.
897         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
898         returning node.
899         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
900         build_indirect_ref, build_modify_expr.
901         (c_finish_omp_for): Same.  Use error_at instead of error.
902         * c-common.c (c_common_truthvalue_conversion): Pass location to
903         build_unary_op.
904         (warn_for_div_by_zero): Add location argument.
905         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
906         build_unary_op, warn_for_div_by_zero.
907         * c-parser.c (c_parser_typeof_specifier): Use
908         protected_set_expr_location.
909         (c_parser_statement_after_labels): Same.
910         (c_parser_condition): Same.
911         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
912         (c_parser_conditional_expression): Use protected_set_expr_location.
913         (c_parser_unary_expression): Pass location to build_indirect_ref.
914         (c_parser_postfix_expression_after_primary): Pass location to
915         build_indirect_ref, build_unary_op.
916         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
917
918 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
919
920         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
921         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
922         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
923         r14000 and r16000.
924         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
925         (mips_issue_rate): Handle PROCESSOR_R10000.
926         * config/mips/mips.md (cpu): Add r10000.
927         Include r10000.md.
928         * config/mips/10000.md: New file.
929
930 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
931
932         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
933         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
934         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
935
936 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
937
938         * config/darwin-protos.h (machopic_function_base_name): Delete.
939         (machopic_function_base_sym): Likewise.
940         (machopic_gen_offset): Declare.
941         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
942         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
943         * config/darwin.c (machopic_function_base_name): Delete.
944         (machopic_function_base_sym): Likewise.
945         (gen_pic_offset): Rename to...
946         (machopic_gen_offset): ...this and remove the pic_base argument.
947         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
948         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
949         crtl->uses_pic_offset_table.
950         (machopic_indirect_data_reference): Use new machopic_gen_offset
951         interface.
952         (machopic_legitimize_pic_address): Likewise.
953         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
954
955         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
956         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
957         * config/i386/i386.c (output_set_got): Likewise.
958         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
959         instead of a MINUS.
960         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
961         (legitimate_address_p): Likewise.
962         (output_pic_addr_const): Likewise.
963         (output_addr_const_extra): Likewise.
964         (ix86_delegitimize_address): Expect darwin_local_data_pic to
965         match an UNSPEC rather than a MINUS.
966         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
967         (builtin_setjmp_receiver): Use machopic_gen_offset.
968         * config/i386/predicates.md (pic_symbolic_operand): Handle
969         UNSPEC_MACHOPIC_OFFSET.
970
971         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
972         Use machopic_gen_offset and machopic_operand_p.
973         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
974         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
975         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
976         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
977         Set crtl->uses_pic_offset_table.
978
979 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
980
981         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
982         Declare.
983         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
984         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
985         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
986         (constant_pool_expr_p): Use split_const and check the base.
987         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
988         instead of a MINUS.
989         (legitimate_constant_pool_address_p): Check toc_relative_p
990         instead of constant_pool_expr_p.
991         (print_operand_address): Always use output_addr_const for
992         constant pool addresses.
993         (rs6000_output_addr_const_extra): New function.
994         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
995
996 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
997
998         PR middle-end/37535
999
1000         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1001         (mark_ref_live, mark_ref_dead): Use them.
1002         (def_conflicts_with_inputs_p): Remove.
1003         (mark_early_clobbers): New function.
1004         (process_bb_node_lives): Call preprocess_constraints and
1005         mark_early_clobbers.
1006
1007         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1008
1009 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
1010
1011         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1012         lib with -mthread switch.
1013
1014 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
1015
1016         PR c++/37410
1017         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1018         function in two, making it call a new and reusable
1019         dwarf2out_imported_module_or_decl() that takes the containing
1020         BLOCK of the declaration in argument.
1021         (dwarf2out_imported_module_or_decl_real): New function.
1022         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1023         IMPORTED_DECL in account.
1024         * tree.def: Added IMPORTED_DECL node type.
1025         * tree.h: Added accessors for IMPORTED_DECL nodes.
1026         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1027
1028 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1029
1030         * doc/gimple.texi: Fix some typos, wrap some long lines,
1031         fix some broken wraps with continuations.
1032         * tree-ssa-reassoc.c: Fix comment typos.
1033
1034 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1035
1036         PR target/37603
1037         * pa.c (legitimize_pic_address): Force function labels to memory in
1038         word mode.
1039
1040 2008-10-04  Anton Blanchard  <anton@samba.org>
1041
1042         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1043         (rs6000_split_atomic_op): Same.
1044         (rs6000_split_compare_and_swap): Same.
1045         (rs6000_split_compare_and_swapqhi): Same.
1046
1047 2008-10-04  Richard Guenther  <rguenther@suse.de>
1048
1049         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1050         instead of pointer equality.
1051         (vn_nary_op_eq): Likewise.
1052
1053 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1054
1055         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 
1056         condition.
1057         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1058         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1059
1060 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
1061
1062         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1063         Revert previous change.
1064
1065 2008-10-03  Tom Tromey  <tromey@redhat.com>
1066
1067         * stringpool.c (ggc_alloc_string): Terminate string.
1068
1069 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
1070
1071         * gimplify.c (gimplify_function_tree): For -finstrument-functions
1072         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1073         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1074
1075         PR debug/37726
1076         * gimplify.c (declare_vars): Use gimple_bind_block instead of
1077         gimple_block.
1078
1079 2008-10-03  Pascal Obry  <obry@adacore.com>
1080
1081         * gcov.c (create_file_names): Properly handle UNIX and DOS
1082         directory separators.
1083         (make_gcov_file_name): Likewise + convert the ':' DOS drive
1084         separator to '~' to ensure clean filenames on Windows.
1085
1086 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
1087
1088         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1089         Add a null terminator to the stripped name.
1090
1091 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
1092
1093         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1094         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1095         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
1096         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
1097         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1098         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1099         TARGET_SINGLE_FLOAT.
1100
1101 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
1102
1103         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1104
1105 2008-10-02  Richard Guenther  <rguenther@suse.de>
1106
1107         PR middle-end/37713
1108         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1109         and VECTOR_TYPE recurse with useless_type_conversion_p which
1110         properly handles void pointer conversion.
1111
1112 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>  
1113
1114         PR target/37528
1115         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1116         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
1117
1118 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1119
1120         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1121         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1122         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1123         they translate to non builtins.
1124         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1125         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
1126         __builtin_vec_promote, __builtin_vec_extract, and
1127         __builtin_vec_insert.
1128         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1129         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1130         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1131         * config/rs6000/altivec.h (vec_extract): Define
1132         (vec_insert): Define.
1133         (vec_splats): Define.
1134         (vec_promote): Define.
1135
1136 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1137             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
1138             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
1139
1140         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1141         Altivec intrinsics.
1142         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1143         prototype.  Add new parameter, blk.
1144         Use BLKmode for the MEM if blk is true.
1145         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1146         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1147         ALTIVEC_BUILTIN_STVRXL.
1148         Update usage of altivec_expand_lv_builtin.
1149         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1150         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1151         (altivec_init_builtins): If compiling for the Cell, also define the
1152         cell VMX builtins.
1153         * config/rs6000/rs6000.h (rs6000_builtins): Define
1154         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1155         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1156         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1157         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1158         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1159         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1160         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1161         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1162         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1163         UNSPEC_STVRX, and UNSPEC_STVRXL.
1164         (altivec_lvlx): New pattern.
1165         (altivec_lvlxl): New pattern.
1166         (altivec_lvrx): New pattern.
1167         (altivec_lvrxl): New pattern.
1168         (altivec_stvlx): New pattern.
1169         (altivec_stvlxl): New pattern.
1170         (altivec_stvrx): New pattern.
1171         (altivec_stvrxl): New pattern.
1172         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1173         (vec_lvlxl): Likewise.
1174         (vec_lvrx): Define if PPU is defined.
1175         (vec_lvrxl): Likewise.
1176         (vec_stvlx): Define if PPU is defined.
1177         (vec_stvlxl): Likewise.
1178         (vec_stvrx): Define if PPU is defined.
1179         (vec_stvrxl): Likewise.
1180
1181 2008-10-01  Geert Bosch  <bosch@adacore.com>
1182
1183         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1184
1185 2008-10-01  Richard Guenther  <rguenther@suse.de>
1186
1187         PR tree-optimization/37617
1188         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1189         do not add to the NEW_SETS.
1190
1191 2008-10-01  Richard Guenther  <rguenther@suse.de>
1192
1193         PR middle-end/37285
1194         * tree-vrp.c (execute_vrp): If we optimized away the default
1195         case make sure to promote the label that got in place of it
1196         to a default case label.
1197
1198 2008-10-01  Richard Henderson  <rth@redhat.com>
1199
1200         PR tree-opt/35737
1201         * tree-complex.c (set_component_ssa_name): Don't optimize
1202         is_gimple_min_invariant values with ssa_names in abnormal phis.
1203
1204 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
1205
1206         PR tree-optimization/37662
1207         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1208         commutative binary operation if they are in the wrong order and
1209         fold_build2 produces non-GIMPLE.
1210
1211 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
1212
1213         PR tree-optimization/37662
1214         PR tree-optimization/37663
1215         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1216         get_value_range with non-SSA_NAME.  Don't assert operands have been
1217         folded, instead just bail out.
1218
1219 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1220
1221         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1222
1223 2008-09-30  Richard Guenther  <rguenther@suse.de>
1224
1225         PR middle-end/37491
1226         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1227         build restrict-qualified pointers.
1228         (vectorizable_store): Move alias check later.
1229         (vectorizable_load): Likewise.
1230
1231 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
1232
1233         * c-common.c (empty_if_body_warning): Remove.
1234         * c-common.h (empty_if_body_warning): Remove.
1235         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1236         here the -Wempty-body warning for `if' and `else' statements.
1237         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1238
1239 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
1240
1241         * config/i386/i386.opt: Add msse2avx.
1242
1243         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
1244         * config/i386/linux64.h (ASM_SPEC): Likewise.
1245
1246         * doc/invoke.texi: Document -msse2avx.
1247
1248 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1249
1250         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1251
1252 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
1253
1254         * ifcvt.c (noce_emit_store_flag): If using condition from original
1255         jump, reverse it if if_info->cond was reversed.
1256
1257 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
1258
1259         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1260         non-constant memory if it cannot be forced to constant memory.
1261         Overhaul surrounding code and factor out common condition.
1262
1263 2008-09-29  Jeff Law <law@redhat.com>
1264
1265         * reload1.c (alter_reg): Add missing curly braces.
1266
1267 2008-09-29  Michael J. Eager  <eager@eagercon.com>
1268
1269         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1270         are easy.
1271         * config/rs6000/rs6000.c (rs6000_override_options): Move
1272         rs6000_init_hard_regno_mode_ok after all options changed.
1273         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1274         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1275         -msimple-fpu flags.  Add warning messages if single FP not configured.
1276         (rs6000_file_start): Output gnu_attribute for single-float.
1277         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1278         (rs6000_legitimize_address): Likewise.
1279         (rs6000_legitimize_reload_address): Likewise.
1280         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1281         TARGET_SINGLE_FLOAT.
1282         (function_arg_advance): Likewise (partial conversion).
1283         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1284         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1285         TARGET_SINGLE_FLOAT.
1286         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1287         (rs6000_emit_prologue): Likewise.
1288         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1289         TARGET_SINGLE_FLOAT.
1290         (rs6000_libcall_value): Likewise.
1291         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1292         (TARGET_DOUBLE_FLOAT): New default to 1
1293         (TARGET_SIMPLE_FPU): New default to 0
1294         (TARGET_SINGLE_FPU): New default to 0
1295         (TARGET_SINGLE_FLOAT_MODE): New.
1296         (TARGET_DOUBLE_FLOAT_MODE): New.
1297         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1298         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1299         UNITS_PER_FP_WORD
1300         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1301         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1302         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1303         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1304         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1305         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1306         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1307         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1308         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1309         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1310         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1311         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1312         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1313         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1314         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1315         cmptf_internal1, *cmptf_internal2): Condition on
1316         TARGET_DOUBLE_FLOAT.
1317         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1318         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1319         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1320         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1321         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1322         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1323         TARGET_SINGLE_FLOAT.
1324         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1325         * config/rs6000/rs6000.opt (-msingle-float): New.
1326         (-mdouble-float): New.
1327         (-msimple-fpu): New.
1328         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1329         -msingle-float, -mdouble-float, -msimple-fpu options.
1330         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1331         _SOFT_DOUBLE for -msingle-float.
1332         * config.gcc: New config for target=powerpc-xilinx-eabi.
1333
1334 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
1335
1336         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
1337         have exit and entry.
1338         (new_scop): Take entry and exit edge to define new SCoP.
1339         (sd_region_p): New structure used during SCoP detection.
1340         (move_scops): Delete.
1341         (move_sd_regions): New.
1342         (scopdet_info): Change the definition from edges back to basic_blocks.
1343         (scopdet_edge_info):  Work on basic_blocks and rename to
1344         scopdet_basic_block_info.
1345         (split_difficult_bb): At the moment removed. We should later
1346         add it at another place.
1347         (build_scops_1): Work on basic_blocks.
1348         (bb_in_sd_region): New.
1349         (find_single_entry_edge): New.
1350         (find_single_exit_edge): New.
1351         (create_single_entry_edge): New.
1352         (sd_region_without_exit): New.
1353         (create_single_exit_edge): New.
1354         (unmark_exit_edges): New.
1355         (mark_exit_edges): New.
1356         (create_sese_edges): New.
1357         (build_graphite_scops): New.
1358         (build_scops): Make SCoPs SESE.
1359         (limit_scops): Use the new functions.
1360
1361 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
1362
1363         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
1364
1365 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1366
1367         PR target/37640
1368         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
1369         address to a register before taking the lower part.
1370
1371 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1372
1373         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
1374         for SHmedia.
1375
1376 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1377             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
1378
1379         PR tree-opt/36891
1380         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
1381         the newly created variable.
1382         Create a VECTOR_CST of all 1s for vector types.
1383
1384 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1385
1386         PR middle-end/36575
1387         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
1388
1389 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
1390
1391         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
1392         order to convert between modes.
1393         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
1394
1395 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1396
1397         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
1398         if needed.
1399
1400 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
1401
1402         Revert:
1403         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1404         * ira-lives.c:...
1405         * doc/rtl.texi:...
1406
1407 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
1408
1409         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
1410         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
1411         them to yield false with MIPS16.
1412
1413 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
1414
1415         PR middle-end/37275
1416         * dwarf2out.c (tls_mem_loc_descriptor): New function.
1417         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
1418         mem_loc_descriptor failed.  Accept UNSPEC.
1419         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
1420         fail if one of the loc_descriptor calls for pieces failed.
1421         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
1422         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
1423         if loc_descriptor_from_tree_1 on offset failed.
1424
1425         PR middle-end/37576
1426         * opts.c (common_handle_option): Don't call print_specific_help with
1427         CL_SAVE as first argument.
1428
1429 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
1430             Steve Ellcey  <sje@cup.hp.com>
1431
1432         * configure: Regenerate for new libtool.
1433         * aclocal.m4: Ditto.
1434
1435 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
1436
1437         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
1438         alias set on MEM when saving stack pointer.
1439         * config/rs6000/rs6000.md (allocate_stack): Likewise
1440
1441 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
1442
1443         PR tree-optimization/37574
1444         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
1445         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
1446         instead of vector_type for constants. Take computation out of loop.
1447         (vect_get_vec_def_for_operand): Use only vectype for constant case,
1448         and use only vector_type for invariant case.
1449         (get_initial_def_for_reduction): Use vectype instead of vector_type.
1450
1451 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
1452
1453         PR c/37645
1454         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
1455         the decl is a VAR_DECL or FUNCTION_DECL.
1456
1457 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1458
1459         PR middle-end/37535
1460         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1461         (mark_ref_live, mark_ref_dead): Use them.
1462         (def_conflicts_with_inputs_p): Remove.
1463         (mark_early_clobbers): New function.
1464         (process_bb_node_lives): Call preprocess_constraints and
1465         mark_early_clobbers.
1466
1467         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
1468
1469 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
1470
1471         PR middle-end/37448
1472         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
1473         (ira_compress_allocno_live_ranges): New prototype.
1474
1475         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
1476         (coalesced_allocnos_living_at_program_points): New.
1477         (coalesced_allocnos_live_at_points_p,
1478         set_coalesced_allocnos_live_points): New functions.
1479         (coalesce_spill_slots): Rewrite.
1480         
1481         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
1482         ira_compress_allocno_live_ranges): New functions.
1483
1484         * ira-build.c (ira_flattening): Call
1485         ira_compress_allocno_live_ranges.
1486         (ira_build): Ditto.
1487
1488 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
1489
1490         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
1491         optimization.
1492
1493 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
1494
1495         * combine.c (make_compound_operation): Handle the 'E' format.
1496         (count_rtxs): Likewise.
1497         (update_table_tick): Likewise.
1498         (get_last_value_validate): Likewise.
1499
1500 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
1501
1502         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
1503
1504 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
1505
1506         * matrix-reorg.c (transform_allocation_sites): Initializers 
1507         added to avoid the warning.
1508
1509 2008-09-25  Martin Jambor  <mjambor@suse.cz>
1510
1511         * cgraph.c (free_nodes): New variable.
1512         (NEXT_FREE_NODE): New macro.
1513         (cgraph_create_node): Reuse nodes from the free list.  Do not
1514         update uid if doing so.
1515         (cgraph_remove_node): Add the node to the free list.
1516
1517 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
1518
1519         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1520
1521 2008-09-24  Richard Henderson  <rth@redhat.com>
1522
1523         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
1524         * unwind-dw2.c (execute_stack_op): Handle it.
1525
1526 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
1527
1528         Revert:
1529         2008-09-24  Michael J. Eager  <eager@eagercon.com>
1530
1531 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
1532
1533         * c-common.c (fname_decl): New location argument.
1534         * c-common.h (fname_decl): Same.
1535         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
1536         {warning,error}.
1537         (c_parser_typeof_specifier): Same.
1538         (c_parser_parms_list_declarator): Same.
1539         (c_parser_asm_string_literal): Same.
1540         (c_parser_compound_statement_nostart): Same.
1541         (c_parser_label): Same.
1542         (c_parser_do_statement): Same.
1543         (c_parser_asm_statement): Same.
1544         (c_parser_unary_expression): Same.
1545         (c_parser_sizeof_expression): Same.
1546         (c_parser_postfix_expression): Same.
1547         (c_parser_pragma): Same.
1548         (c_parser_omp_clause_collapse): Same.
1549         (c_parser_omp_clause_num_threads): Same.
1550         (c_parser_omp_clause_schedule): Same.
1551         (c_parser_omp_all_clauses): Same.
1552         (c_parser_omp_sections_scope): Same.
1553         (c_parser_omp_for_loop): Same.  Pass condition's location to
1554         c_objc_common_truthvalue_conversion.
1555         (c_parser_enum_specifier): Remove comment.
1556
1557 2008-09-24  Michael J. Eager  <eager@eagercon.com>
1558
1559         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1560         are easy.
1561         * config/rs6000/rs6000.c (rs6000_override_options): Move
1562         rs6000_init_hard_regno_mode_ok after all options changed.
1563         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1564         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1565         -msimple-fpu flags.  Add warning messages if single FP not configured.
1566         (rs6000_file_start): Output gnu_attribute for single-float.
1567         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1568         (rs6000_legitimize_address): Likewise.
1569         (rs6000_legitimize_reload_address): Likewise.
1570         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1571         TARGET_SINGLE_FLOAT.
1572         (function_arg_advance): Likewise.
1573         (function_arg): Likewise.
1574         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1575         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1576         TARGET_SINGLE_FLOAT.
1577         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1578         (rs6000_emit_prologue): Likewise.
1579         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1580         TARGET_SINGLE_FLOAT.
1581         (rs6000_libcall_value): Likewise.
1582         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1583         (TARGET_DOUBLE_FLOAT): New default to 1
1584         (TARGET_SIMPLE_FPU): New default to 0
1585         (TARGET_SINGLE_FPU): New default to 0
1586         (TARGET_SINGLE_FLOAT_MODE): New.
1587         (TARGET_DOUBLE_FLOAT_MODE): New.
1588         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1589         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1590         UNITS_PER_FP_WORD
1591         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1592         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1593         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1594         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1595         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1596         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1597         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1598         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1599         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1600         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1601         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1602         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1603         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1604         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1605         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1606         cmptf_internal1, *cmptf_internal2): Condition on
1607         TARGET_DOUBLE_FLOAT.
1608         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1609         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1610         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1611         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1612         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1613         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1614         TARGET_SINGLE_FLOAT.
1615         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1616         * config/rs6000/rs6000.opt (-msingle-float): New.
1617         (-mdouble-float): New.
1618         (-msimple-fpu): New.
1619         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1620         -msingle-float, -mdouble-float, -msimple-fpu options.
1621         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1622         _SOFT_DOUBLE for -msingle-float.
1623         * config.gcc: New config for target=powerpc-xilinx-eabi.
1624
1625 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1626
1627         * config/sparc/constraints.md: New file.
1628         * config/sparc/sparc.md: Include it.
1629         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
1630         (sparc_extra_constraint_check): Delete.
1631         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
1632         (memory_ok_for_ldd): New predicate.
1633         (sparc_extra_constraint_check): Delete.
1634         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
1635         (CONST_OK_FOR_LETTER_P): Likewise.
1636         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
1637         (EXTRA_CONSTRAINT): Likewise.
1638
1639 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
1640
1641         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
1642
1643 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1644
1645         * alias.c (find_base_value): Use FIND_BASE_TERM.
1646         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
1647
1648 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1649
1650         * config/i386/i386.c: Include cselib.h.
1651         (ix86_pic_register_p): New function.
1652         (ix86_delegitimize_address): Use it to check for the PIC register.
1653
1654 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1655
1656         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
1657         * config/i386/i386.c (ix86_find_base_term): Don't check for
1658         SYMBOL_REF and LABEL_REF.
1659
1660 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
1661
1662         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
1663         constant PLUS in a CONST.
1664
1665 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
1666
1667         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
1668         check for sibcall support for w64.
1669
1670 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1671
1672         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
1673
1674 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
1675
1676         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
1677         parser_build_binary_op.
1678         * c-decl.c (build_enumerator): Pass location to build_binary_op.
1679         * c-typeck.c (build_array_ref): Same.
1680         (parser_build_unary_op): New location argument.
1681         (pointer_diff): Pass location to build_binary_op,
1682         c_objc_common_truthvalue_conversion.
1683         (build_modify_expr): Same.
1684         (build_unary_op): New location argument.
1685         (build_binary_op): New location argument.
1686         (c_objc_common_truthvalue_conversion): Pass location to
1687         c_*common_truthvalue_conversion.
1688         * c-convert.c (convert): Same.
1689         * c-common.c (binary_op_error): New location argument.
1690         (pointer_int_sum): Pass location to build_binary_op.
1691         (c_common_truthvalue_conversion): New location argument.
1692         (warn_for_sign_compare): Same.
1693         * c-common.h: Add location argument to c_common_truthvalue_conversion,
1694         binary_op_error, build_binary_op, warn_for_sign_compare.
1695         * c-parser.c (c_parser_condition): Pass location to
1696         c_*common_truthvalue_conversion.
1697         (c_parser_conditional_expression): Save condition's location and pass
1698         it on down.
1699         (c_parser_binary_expression): Same, but for the binary operator's
1700         location.
1701         (c_parser_omp_for_loop): Pass location to
1702         c_objc_common_truthvalue_conversion.
1703
1704 2008-09-23  Martin Jambor  <mjambor@suse.cz>
1705
1706         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
1707         (cgraph_node_remove_callees): New temporary f.  Hold the next item
1708         in f when looping.
1709         (cgraph_node_remove_callers): Likewise.
1710
1711         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
1712         (ipa_node_removal_hook): Likewise.
1713
1714         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
1715         gimple_call_copy_skip_args and moved to the gimple_call section.
1716         * gimple.c (gimple_copy_call_skip_args): Renamed to
1717         gimple_call_copy_skip_args.  Changed al users.
1718
1719 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
1720
1721         * ira-color.c (start_allocno_priorities): Rename to
1722         setup_allocno_priorities.  Use costs and
1723         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
1724         range lengths.  Get rid off doubles.
1725         (ira_fast_allocations): Call start_allocno_priorities.
1726         
1727 2008-09-22  David Daney  <ddaney@avtrex.com>
1728
1729         PR target/37593
1730         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
1731         register if TARGET_LONG_CALLS.
1732
1733 2008-09-22  Richard Guenther  <rguenther@suse.de>
1734
1735         PR tree-optimization/37145
1736         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
1737         value-numbering union accesses with their offset and size only.
1738         (visit_reference_op_load): Fix simplification of inserted conversions.
1739         * tree-ssa-pre.c (find_or_generate_expression): Do not
1740         recursively generate expressions if running FRE.
1741
1742 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
1743
1744         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
1745         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
1746         New patterns.
1747
1748 2008-09-22  Richard Guenther  <rguenther@suse.de>
1749
1750         PR tree-optimization/37145
1751         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
1752         (phi_translate_1): Constant fold references.
1753
1754 2008-09-22  Ira Rosen  <irar@il.ibm.com>
1755
1756         PR tree-optimization/37482
1757         * tree-vectorizer.h (struct _slp_instance): Add new field.
1758         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
1759         (get_earlier_stmt): New function.
1760         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
1761         function.
1762         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
1763         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
1764         asserts that GSI points to the scalar statement being vectorized.
1765         Set new statement location according to GSI.
1766         (vect_schedule_slp_instance): Use GSI of
1767         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
1768
1769 2008-09-21  Jan Hubicka  <jh@suse.cz>
1770
1771         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
1772         (ipcp_insert_stage): Update dead_nodes bitmap.
1773
1774 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
1775
1776         PR target/37528 
1777         * config/i386/t-cygming (SHLIB_LC): Remove.
1778         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
1779         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
1780
1781 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
1782
1783         PR middle-end/37170
1784         PR middle-end/37280
1785         * final.c (mark_symbol_ref_as_used): New helper function.
1786         (output_operand): Instead of just looking inside MEMs for
1787         SYMBOL_REFs, use new helper function and for_each_rtx.
1788         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
1789         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
1790         Make head comment more general.
1791         * config/darwin.c (machopic_output_indirection): Handle weak
1792         references here, like in assemble_external.
1793
1794 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
1795
1796         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
1797         (sparc_emit_float_lib_cmp): Change return type.
1798         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
1799         (gen_compare_operator): New function.
1800         (sparc_emit_float_lib_cmp): Return the new operator to be used in
1801         the comparison sequence.  Minor tweaks.
1802         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
1803         that the final operator and the result of sparc_emit_float_lib_cmp
1804         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
1805         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
1806         buneq, bunge, bunle, bltgt): Assert that the final operator and the
1807         result of sparc_emit_float_lib_cmp match for software TFmode.
1808         (movqicc, movhicc, movsicc, movdicc): Merge into...
1809         (mov<I:mode>cc): ...this.
1810         (movsfcc, movdfcc, movtfcc): Merge into...
1811         (mov<F:mode>cc): ...this.
1812         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
1813         into...
1814         (mov<I:mode>_cc_v9): ...this.
1815         (movdi_cc_sp64_trunc): Delete.
1816         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
1817         movdi_cc_reg_sp64): Merge into...
1818         (mov<I:mode>_cc_reg_sp64): ...this.
1819         (movsf_cc_sp64): Rename into...
1820         (movsf_cc_v9): ...this.
1821         (movdf_cc_sp64): Rename into...
1822         (movdf_cc_v9): ...this.
1823         (movtf_cc_hq_sp64): Rename into...
1824         (movtf_cc_hq_v9): ...this.
1825         (movtf_cc_sp64): Rename into...
1826         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
1827
1828 2008-09-21  Diego Novillo  <dnovillo@google.com>
1829
1830         * doc/gccint.texi: Include generic.texi and gimple.texi.
1831         Re-order index.
1832         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
1833         (GIMPLE): Move to gimple.texi.
1834         (Annotations): Remove references to to stmt_ann_t and
1835         ssa_name_ann_t.
1836         (SSA Operands): Rename from 'Statement Operands'.
1837         * doc/generic.texi: New.
1838         * doc/gimple.texi: New.
1839         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
1840         * Makefile.in (TEXI_GCCINT_FILES):
1841         * gimple.c (gimple_copy_call_skip_args): Rename from
1842         giple_copy_call_skip_args.  Update all users.
1843         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
1844
1845 2008-09-21  Ira Rosen  <irar@il.ibm.com>
1846
1847         PR tree-optimization/37539
1848         * tree-vect-transform.c (vect_transform_strided_load): Save vector
1849         statement in related statement field only for the first load of the
1850         group of loads with the same data reference.
1851
1852 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
1853
1854         * config/mips/mips.h (TUNE_OCTEON): New macro.
1855         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
1856         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
1857         * config/mips/octeon.md: New file.
1858         * config/mips/mips.md: Include octeon.md.  Restore
1859         semi-alphabetical order of include files.
1860
1861 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
1862
1863         PR target/37571
1864         * config/i386/i386.md (*jcc_fused_1): Removed.
1865         (*jcc_fused_2): Likewise.
1866         (*jcc_fused_3): Likewise.
1867         (*jcc_fused_4): Likewise.
1868
1869 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
1870
1871         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
1872         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
1873         * target.h (gcc_target): Add ira_cover_classes.
1874         * ira.c: Remove IRA_COVER_CLASSES guards.
1875         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
1876         instead of IRA_COVER_CLASSES.
1877         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
1878         (setup_class_translate): Likewise.
1879         (setup_reg_class_intersect_union): Likewise.
1880         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
1881         test of targetm.ira_cover_classes.
1882         * opts.c (decode_options): Use targetm.ira_cover_classes instead
1883         of IRA_COVER_CLASSES.
1884         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
1885         (TARGET_INITIALIZER): Include it.
1886         * targhooks.h (default_ira_cover_classes): Declare.
1887         * targhooks.c (default_ira_cover_classes): New function.
1888
1889 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
1890         
1891         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
1892         
1893 2008-09-19  Ian Lance Taylor  <iant@google.com>
1894
1895         * varasm.c (narrowing_initializer_constant_valid_p): Return
1896         NULL_TREE if ENDTYPE is not an integer.
1897
1898 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1899
1900         PR tree-opt/30930
1901         * tree-ssa.c (execute_update_addresses_taken): Also update
1902         DECL_GIMPLE_REG_P for vector and complex types.
1903
1904 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
1905             Jan Hubicka  <jh@suse.cz>
1906
1907         PR middle-end/37567
1908         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
1909         empty before freeing them.
1910         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
1911
1912 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
1913
1914         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
1915         * config/xtensa/predicates.md (tls_symbol_operand): New.
1916         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
1917         (TARGET_CANNOT_FORCE_MEM): Define.
1918         (xtensa_tls_symbol_p): New.
1919         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
1920         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
1921         (xtensa_tls_module_base): New.
1922         (xtensa_call_tls_desc): New.
1923         (xtensa_legitimize_tls_address): New.
1924         (xtensa_legitimize_address): Handle TLS symbols.
1925         (xtensa_tls_referenced_p_1): New.
1926         (xtensa_tls_referenced_p): New.
1927         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
1928         UNSPEC_DTPOFF.
1929         (XTENSA_BUILTIN_THREAD_POINTER): New.
1930         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
1931         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
1932         builtin.  Add declarations for __builtin_thread_pointer and
1933         __builtin_set_thread_pointer.
1934         (xtensa_fold_builtin): Recognize new builtins.
1935         (xtensa_expand_builtin): Expand new builtins.
1936         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
1937         (TARGET_THREADPTR): Define.
1938         (HAVE_AS_TLS): Define default value.
1939         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
1940         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
1941         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
1942         (UNSPECV_SET_TP): New.
1943         (sym_TPOFF, sym_DTPOFF): New.
1944         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
1945         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
1946         * configure: Regenerated.
1947         
1948 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
1949
1950         PR target/37394
1951         * config/ia64/ia64.c (ia64_optimization_options): Move
1952         checking and setting flag_schedule_insns_after_reload and
1953         ia64_flag_schedule_insns2 back to ...
1954         (ia64_override_options): Here.
1955
1956 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1957
1958         PR rtl-opt/37451
1959         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
1960         zero extend count after the correction to it is done.
1961         (doloop_optimize): Update call to doloop_modify, don't zero extend
1962         count before call.
1963
1964 2008-09-18  Martin Jambor  <mjambor@suse.cz>
1965
1966         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
1967
1968         * ipa-prop.c: Correct comments.
1969         * ipa-prop.h: Likewise.
1970
1971 2008-09-18  Jan Hubicka  <jh@suse.cz>
1972
1973         PR middle-end/37448
1974         * ipa-reference.c (ipa_reference_local_vars_info_d,
1975         ipa_reference_global_vars_info_d,
1976         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
1977         ipa_reference_vars_info_t): Move here from ipa-reference.h
1978         (node_duplication_hook_holder, node_removal_hook_holder): New.
1979         (get_reference_vars_info_from_cgraph): Rename to ...
1980         (get_reference_vars_info): ... this one, use cgraph uids.
1981         (get_local_reference_vars_info, get_global_reference_vars_info):
1982         Use cgraph instead of decl.
1983         (ipa_reference_get_read_local, ipa_reference_get_written_local):
1984         Remove.
1985         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
1986         ipa_reference_get_written_global,
1987         ipa_reference_get_not_written_global): Use cgraph argument.
1988         (check_call): Simplify avail check.
1989         (scan_stmt_for_static_refs): Update.
1990         (propagate_bits): Update.
1991         (merge_callee_local_info): Remove.
1992         (init_function_info): Use cgraph nodes.
1993         (clean_function_local_data): Break out from ...
1994         (clean_function): ... here.
1995         (copy_local_bitmap, copy_global_bitmap): New functions.
1996         (duplicate_node_data, remove_node_data): New functions.
1997         (generate_summary): Register hooks; use visibility instead of
1998         master clones.
1999         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2000         * ipa-reference.h (ipa_reference_local_vars_info_d,
2001         ipa_reference_global_vars_info_d,
2002         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2003         ipa_reference_vars_info_t): Move to ipa-reference.c
2004         (ipa_reference_get_read_local, ipa_reference_get_written_local):
2005         Remove.
2006         (ipa_reference_get_read_global, ipa_reference_get_written_global,
2007         ipa_reference_get_not_read_global,
2008         ipa_reference_get_not_written_global): Update prototype.
2009         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2010         (init_state): Remove.
2011         (node_duplication_hook_holder, node_removal_hook_holder): New.
2012         (get_function_state, set_function_state): Use VECtor.
2013         (analyze_function): Check body availability.
2014         (add_new_function): Likewise.
2015         (duplicate_node_data, remove_node_data): New.
2016         (generate_summary): Register hooks; do not care about clones.
2017         (propafate): Do not care about clones; recursive functions are
2018         not looping.
2019         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2020         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2021         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2022         static.
2023         * tree-flow.h (function_ann_d): Remove reference_vars_info.
2024         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2025         Update call of ipa-reference accesors.
2026
2027 2008-09-18  Simon Baldwin  <simonb@google.com>
2028
2029         * c-opts.c (c_common_handle_option): Add handling for
2030         -Wbuiltin-macro-redefined command line option.
2031         * c.opt: Added builtin-macro-redefined option.
2032         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2033         documentation.
2034
2035 2008-09-18  Richard Guenther  <rguenther@suse.de>
2036
2037         PR tree-optimization/37258
2038         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2039         and signedness for integral types.
2040         (vn_phi_eq): Require compatible types.
2041
2042 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
2043
2044         PR debug/34037
2045         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2046         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2047         VAR_DECL.
2048         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2049         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2050         ggc_free other TREE_LIST nodes from that chain.
2051         * function.c (instantiate_decls): Instantiate also DECL_RTL
2052         of vars in cfun->local_decls, free that list afterwards.
2053
2054 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
2055
2056         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2057         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2058
2059 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2060
2061         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
2062         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2063
2064 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
2065
2066         PR tree-optimization/37102
2067         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2068         from a node. Check to see if another PHI is dead.
2069         (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
2070         remove real PHIs which have no uses.
2071         (rewrite_out_of_ssa): Call eliminate_useless_phis.
2072
2073 2008-09-18  Richard Guenther  <rguenther@suse.de>
2074
2075         PR middle-end/37284
2076         * tree-cfg.c (remove_useless_stmts_1): Remove
2077         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2078
2079 2008-09-18  Nick Clifton  <nickc@redhat.com>
2080
2081         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2082         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2083         to frv_secondary_reload_class.
2084         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2085         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2086         (frv_secondary_reload_class): Omit unused parameter.
2087         (frv_secondary_reload): New function.  Handle the case when
2088         secondary_reload_class() is called before the reload_(in|out)
2089         _optabs have been initialised.
2090         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2091         unused parameter.
2092         * config/frv/frv.md: Define an exclusion set between fr550_m0
2093         and fr550_f0.
2094
2095 2008-09-18  Richard Guenther  <rguenther@suse.de>
2096
2097         PR tree-optimization/37456
2098         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2099         want to insert after ends a BB insert on the single fallthru
2100         outgoing edge.
2101
2102 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2103
2104         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2105         Mention -march=z9-109, z9-ec and z10.
2106
2107 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
2108
2109         PR rtl-optimization/37544
2110         * regrename.c (maybe_mode_change): Exit early when copy_mode
2111         is narrower than orig_mode and narrower than new_mode.
2112
2113 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
2114
2115         PR middle-end/37499
2116         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
2117
2118         * sched-rgn.c (ref_counts): Remove.
2119         (insn_referenced): New static variable.
2120         (INSN_REF_COUNT): Remove.
2121         (sched_run_compute_dependencies): Use insn_referenced instead of
2122         INSN_REF_COUNT.
2123         (add_branch_dependences): Likewise.  Delete dead assignment.
2124
2125 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
2126
2127         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2128         consumer is an asm.  Add comment why this is important.
2129         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
2130         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
2131
2132 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
2133
2134         * expr.c (emit_group_store): Do not shift before moving via a
2135         stack slot.
2136
2137 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2138
2139         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2140         from aggregate to non-aggregate type if the bit pattern is not fully
2141         preserved afterwards.
2142
2143 2008-09-17  Richard Guenther  <rguenther@suse.de>
2144
2145         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2146         (verify_gimple_assign): ... this.  Split into ...
2147         (verify_gimple_assign_unary): ... this,
2148         (verify_gimple_assign_binary): ... that,
2149         (verify_gimple_assign_single): ... and this.
2150         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2151         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2152         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2153         (verify_types_in_gimple_reference): Be forgiving with
2154         VIEW_CONVERT_EXPRs.
2155         (verify_gimple_phi): Deal with virtual operands.
2156
2157         * tree.def (PREDICT_EXPR): Change to tcc_expression.
2158
2159 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2160
2161         * tree.c (get_callee_fndecl): Don't call the language hook.
2162         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2163         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2164         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2165
2166 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
2167
2168         * tree.c (protected_set_expr_location): Don't unnecessarily
2169         check for error_mark_node.
2170
2171 2008-09-17  Art Haas  <ahaas@impactweather.com>
2172
2173         * ipa-reference.c (analyze_function): Declare step only if
2174         ENABLE_CHECKING is defined.
2175
2176 2008-09-17  Jan Hubicka  <jh@suse.cz>
2177
2178         PR c++/18071
2179         * tree.h (DECL_INLINE): remove.
2180         (DECL_DECLARED_INLINE_P): Update docs.
2181         (DECL_NO_INLINE_WARNING_P): new.
2182         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2183         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2184
2185 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
2186             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2187
2188         PR bootstrap/37441
2189         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2190         false.
2191
2192 2008-09-17  Jan Hubicka  <jh@suse.cz>
2193
2194         * ipa-reference.c (ipa_obstack): Remove.
2195         (local_info_obstack, global_info_obstack): New.
2196         (add_static_var): We now handle variables only.
2197         (mark_address_taken, mark_load, mark_store): New functions based on ...
2198         (check_operand): ... remove.
2199         (get_asm_stmt_operands): Rename to ...
2200         (check_asm_memory_clobber): ... this. Look only for memory clobber.
2201         (scan_stmt_for_static_refs): Rewrite.
2202         (scan_op_for_static_refs): Rename to ...
2203         (scan_initializer_for_static_refs): do not look for VAR_DECL
2204         initializers; stop recursion on types and decls.
2205         (ipa_init): Use proper obstacks.
2206         (analyze_variable): Use scan_initializer_for_static_refs.
2207         (init_function_info): Use local obstack.
2208         (analyze_function): Simplify.
2209         (add_new_function): We don't need visited_nodes obstack.
2210         (generate_summary): Use proper obstacks; cleanup after propagation.
2211
2212 2008-09-17  Richard Guenther  <rguenther@suse.de>
2213
2214         PR middle-end/37385
2215         PR tree-optimization/37491
2216         * alias.c (get_alias_set): Use the canonical type.
2217         * tree-vect-transform.c (vectorizable_store): Use the type of
2218         the lhs for the vector type.  Adjust checking.
2219         (vectorizable_load): Adjust checking.
2220
2221 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
2222             Adam Nemet  <anemet@caviumnetworks.com>
2223
2224         PR rtl-optimization/37483
2225         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2226         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2227         Rearrange code to better match the original comment.  Check
2228         t_unconditional first.  Improve comment.
2229
2230 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
2231
2232         PR c/37529
2233         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2234         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2235
2236         PR c++/37530
2237         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2238         GIMPLE_TRY if cleanup sequence is empty.
2239
2240 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2241
2242         PR middle-end/37263
2243         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2244         eliminate IV if the cost are the same.
2245
2246 2008-09-16  Richard Guenther  <rguenther@suse.de>
2247
2248         PR middle-end/37380
2249         * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2250         if not necessary.
2251
2252 2008-09-16  Richard Guenther  <rguenther@suse.de>
2253
2254         PR tree-optimization/37508
2255         * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2256
2257 2008-09-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2258
2259         * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2260
2261 2008-09-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2262
2263         * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2264         use gen_floatdidf2 directly.
2265         (floatunssidf2): Likewise.
2266         (floatsidf_ppc64_mfpgpr): Remove.
2267         (floatsidf_ppc64): Remove.
2268         (floatunssidf_ppc64): Remove.
2269
2270 2008-09-15  Jakub Jelinek  <jakub@redhat.com>
2271
2272         * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2273         rather than update_cost_queue.
2274
2275         * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2276         in every call starting with the second one, instead of only when
2277         alias_bitmap_obstack.elements != NULL.
2278
2279         * tree-predcom.c (filter_suitable_components): Free all refs in
2280         act->refs vector before calling release_component.
2281         (add_ref_to_chain): Free ref if not adding it to chain->refs.
2282
2283         * tree-data-ref.c (free_subscripts): Free all subscript objects.
2284
2285         * tree-loop-linear.c (linear_transform_loops): Initialize
2286         lambda_obstack only after calling perfect_loop_nest_depth.
2287         Goto free_and_continue instead of just continue for later failures.
2288
2289         PR middle-end/37479
2290         * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2291
2292         PR libmudflap/36397
2293         * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2294
2295 2008-09-14  Andreas Schwab  <schwab@suse.de>
2296
2297         * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2298
2299 2008-09-14  Jan Hubicka  <jh@suse.cz>
2300
2301         * invoke.texi (-fconserve-stack): Document.
2302         * opts.c (decode_options): Handle conserve_stack.
2303         * common.opt (fconvserve_stack): New.
2304
2305 2008-09-14  David Edelsohn  <edelsohn@gnu.org>
2306
2307         * config.host: Add x-aix to host_xmake_file.
2308         * config/rs6000/t-aix52: Do not override LDFLAGS.
2309         * config/rs6000/x-aix: New file.
2310
2311 2008-09-14  Andy Hutchinson  <hutchinsonandy@aim.com>
2312
2313         PR target/19636
2314         PR target/24894
2315         PR target/31644
2316         PR target/31786
2317         * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
2318         is not recognized as a valid register usage. Allow REG_X to be used
2319         as a base pointer.
2320         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
2321         forces a reload when using a base register.
2322
2323 2008-09-14  Danny Smith  <dannysmith@users.sourceforge.net>
2324
2325         * config/i386/cygming-crtend.c (register_frame_ctor): If
2326         DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
2327         directly with atexit.
2328         (deregister_frame_ctor): Rename to ...
2329         (deregister_frame_dtor): Use to call __gcc_deregister_frame
2330         if !DEFAULT_USE_CXA_ATEXIT.
2331
2332 2008-09-13  Jan Hubicka  <jh@suse.cz>
2333
2334         * cgraph.c: Include value-prof.h
2335         * Makefile.in (cgraph.o): Add value-prof.h dependency.
2336
2337 2008-09-13  Jan Hubicka  <jh@suse.cz>
2338
2339         PR middle-end/32581
2340         * tree-profile.c (add_abnormal_goto_call_edges): New function.
2341         (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2342         tree_gen_one_value_profiler, tree_gen_average_profiler,
2343         tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
2344
2345 2008-09-13  Jan Hubicka  <jh@suse.cz>
2346
2347         * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
2348         too many bytes on misalligned blocks.
2349
2350 2008-09-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2351
2352         * doc/cfg.texi: Fix some typos.
2353         * doc/extend.texi: Likewise.
2354         * doc/install.texi: Likewise.
2355         * doc/invoke.texi: Likewise.
2356         * doc/rtl.texi: Likewise.
2357         * doc/tree-ssa.texi: Likewise.
2358
2359 2008-09-13  Richard Guenther  <rguenther@suse.de>
2360
2361         PR middle-end/30141
2362         * tree-nested.c (finalize_nesting_tree_1): Generate valid
2363         gimple stores for memory rhs.
2364
2365 2008-09-13  H.J. Lu  <hongjiu.lu@intel.com>
2366
2367         PR rtl-optimization/37489
2368         * cse.c (fold_rtx): Don't return const_true_rtx for float
2369         compare if FLOAT_STORE_FLAG_VALUE is undefined.
2370
2371 2008-09-13  Jan Hubicka  <jh@suse.cz>
2372
2373         PR tree-optimization/37392
2374         * tree-inline.c (remap_gimple_stmt): Do not remap return value.
2375
2376 2008-09-13  Martin Jambor  <mjambor@suse.cz>
2377             Jan Hubicka  <jh@suse.cz>
2378
2379         * cgraph.c (free_edges): New variable.
2380         (NEXT_FREE_EDGE): New macro.
2381         (cgraph_free_edge): New function.
2382         (cgraph_remove_edge): Call cgraph_remove_edge_1.
2383         (cgraph_node_remove_callees): Likewise.
2384         (cgraph_node_remove_callers): Likewise.
2385         (cgraph_create_edge): Reuse edges from the free list.  Do not
2386         update uid if doing so.
2387         (cgraph_remove_*_hook): Add free call.
2388
2389 2008-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
2390
2391         * ira-color.c (conflict_allocno_vec): Delete.
2392         (update_cost_queue_elem): New structure.
2393         (update_cost_queue): New variable.
2394         (update_cost_queue_tail): Likewise.
2395         (update_cost_queue_elems): Likewise.
2396         (allocno_update_cost_check): Delete.
2397         (initiate_cost_update): Allocate update_cost_queue_elems
2398         instead of allocno_update_cost_check.
2399         (finish_cost_update): Update the free()s accordingly.
2400         (start_update_cost): New function.
2401         (queue_update_cost): Likewise.
2402         (get_next_update_cost): Likewise.
2403         (update_copy_costs_1): Inline into...
2404         (update_copy_costs): ...here.  Use a queue instead of recursive calls.
2405         Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
2406         once we've established they are equal.  Don't allocate update
2407         costs if there is nothing to add to them.
2408         (update_conflict_hard_regno_costs): Remove ALLOCNO and
2409         DIVISOR arguments.  Use a queue instead of recursive calls;
2410         process all the allocnos in the initial queue, rather than
2411         a single allocno.
2412         (assign_hard_reg): Use queue_update_cost instead of
2413         conflict_allocno_vec.  Queue coalesced allocnos instead
2414         of calling update_conflict_hard_regno_costs for each one.
2415         Just call update_conflict_hard_regno_costs once for the
2416         entire queue.
2417         (ira_color): Remove conflict_allocno_vec handling.
2418
2419 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
2420
2421         PR tree-optimization/37484
2422         * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
2423         (save_var_name): Same.
2424         (initialize_cloog_names): Same.
2425         (initialize_cloog_names): Same.
2426
2427 2008-09-12  Sebastian Pop  <sebastian.pop@amd.com>
2428
2429         * tree-scalar-evolution.c (set_instantiated_value): Set
2430         instantiated_below.
2431
2432 2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>
2433
2434         PR rtl-opt/37377
2435
2436         * ira-build.c (common_loop_tree_node_dominator): Remove.
2437         (copy_live_ranges_to_removed_store_destinations): New function.
2438         (regno_top_level_allocno_map): Move to top level from ...
2439         (ira_flattening): ... here.  Use
2440         copy_live_ranges_to_removed_store_destinations.
2441
2442         * ira-emit.c (generate_edge_moves): Fix a comment.
2443
2444 2008-09-12  Anatoly Sokolov  <aesok@post.ru>
2445
2446         PR target/37466
2447         * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
2448         scratch register after 'set' pattern.
2449
2450 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2451
2452         * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
2453         information passed to mark_reg_pointer.
2454         * explow.c (force_reg): Likewise.
2455
2456 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2457
2458         * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
2459         when building for the celledp architecture.
2460
2461 2008-09-12  Richard Guenther  <rguenther@suse.de>
2462
2463         * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
2464
2465 2008-09-12  Eric Botcazou  <ebotcazou@adacore.com>
2466
2467         PR rtl-optimization/37424
2468         * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
2469         the regnos instead of the addresses.
2470
2471 2008-09-11  Janis Johnson  <janis187@us.ibm.com>
2472
2473         * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
2474
2475 2008-09-11  Richard Guenther  <rguenther@suse.de>
2476
2477         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
2478         entering the weaker equivalence recording.
2479
2480         * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
2481
2482 2008-09-11  Jeff Law <law@redhat.com>
2483
2484         * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
2485         by assign_stack_local on the IRA path for stack slot sharing
2486         as well as the non-IRA path.
2487
2488 2008-09-11  Uros Bizjak  <ubizjak@gmail.com>
2489
2490         * config/i386/i386.h: Fix whitespace issues.
2491
2492 2008-09-11  Martin Jambor  <mjambor@suse.cz>
2493
2494         * ipa-prop.h (struct ipa_param_flags): Removed.
2495         (struct ipa_param_descriptor): New structure.
2496         (struct ipa_node_params): ipcp_lattices, param_decls and
2497         param_flags moved to ipa_param_description.
2498         (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
2499         descriptors.  Renamed all users.
2500         (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
2501         changed to access descriptors.  Renamed all users.
2502         (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
2503         to access descriptors. Renamed all users.
2504         * ipa-cp.c (ipcp_init_cloned_node): Call
2505         ipa_initialize_node_params instead of ipa_count_formal_params and
2506         ipa_create_param_decls_array.
2507         (ipcp_analyze_node): Likewise.
2508         (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
2509         descriptors.  Renamed all users.
2510         (ipcp_initialize_node_lattices): Remove allocation.
2511         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2512         ipa_initialize_node_params instead of ipa_count_formal_params and
2513         ipa_create_param_decls_array.
2514         * ipa-prop.c (ipa_create_param_decls_array): Renamed to
2515         ipa_populate_param_decls, made static, added parameter info,
2516         renamed mt to node, removed allocation, changed to use
2517         descriptors.
2518         (ipa_count_formal_params): Made static, added parameter info,
2519         renamed mt to node.
2520         (ipa_initialize_node_params): New function.
2521         (ipa_check_stmt_modifications): Changed to use descriptors.
2522         (ipa_detect_param_modifications): Removed allocation, changed to
2523         use descriptors.
2524         (ipa_note_param_call): Changed to use descriptors.
2525         (ipa_analyze_params_uses): Removed allocation.
2526         (ipa_free_node_params_substructures): Changed to use descriptors.
2527         (ipa_edge_duplication_hook): Use the unused attribute.
2528         (ipa_node_duplication_hook): Use the unused attribute, changed to
2529         use descriptors, changed to duplicate descriptors.
2530
2531         * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
2532         changed all callers.  Call ipa_propagate_indirect_call_infos if doing
2533         indirect inlining.  Made static.
2534         (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
2535         functions called only once.
2536         (cgraph_decide_recursive_inlining): Don't call
2537         ipa_propagate_indirect_call_infos, pass new_edges to
2538         cgraph_mark_inline_edge instead.
2539         (cgraph_decide_inlining_of_small_functions): Don't call
2540         ipa_propagate_indirect_call_infos, pass new_edges to
2541         cgraph_mark_inline_edge instead.
2542         (cgraph_decide_inlining): Don't call
2543         ipa_propagate_indirect_call_infos.
2544         * ipa-prop.c: Check that vectors are allocated.
2545
2546         * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
2547         iff a new cgraph edges have been created.
2548         (cgraph_decide_inlining): New variable redo_always_inline.
2549         Flattening and always_inlining loop until callgraph stabilizes.
2550         * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
2551         true iff new cgraph edges have been created.
2552         (propagate_info_to_inlined_callees): Likewise.
2553         (ipa_propagate_indirect_call_infos): Likewise.
2554
2555 2008-09-11  Richard Guenther  <rguenther@suse.de>
2556
2557         * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
2558         (set_prologue_iterations): Likewise.
2559         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
2560         Likewise.
2561         (vect_update_init_of_dr): Likewise.
2562         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
2563         type verification.
2564         * fold-const.c (fold_unary): Do not generate calculations
2565         in sub-types.
2566
2567 2008-09-11  Paolo Bonzini  <bonzini@gnu.org>
2568
2569         * dojump.c (do_jump) [BIT_AND_EXPR]: Move below.  Fall through to
2570         TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
2571         (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
2572
2573         * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
2574         a bool.
2575         * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
2576         VRP's simplify_stmt_using_ranges.  Do simplify_stmt_using_ranges
2577         before finalizing the changes.
2578         * tree-vrp.c (extract_range_from_binary_expr): Add limited support
2579         for BIT_IOR_EXPR.
2580         (simplify_truth_ops_using_ranges): New.
2581         (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
2582         simplify_cond_using_ranges, simplify_switch_using_ranges): Return
2583         whether a simplification was made.
2584         (simplify_stmt_using_ranges): Ditto, and accept a GSI.  For GS_ASSIGN,
2585         use a switch statement and also call simplify_truth_ops_using_ranges.
2586
2587 2008-09-11  Jan Hubicka  <jh@suse.cz>
2588
2589         * ggc-common.c (loc_array): Make static.
2590         * dce.c (rest_of_handle_ud_dce): Free worklist.
2591
2592 2008-09-11  Jan Hubicka  <jh@suse.cz>
2593
2594         * cgraph.c (cgraph_release_function_body): Plug memory leak on
2595         ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
2596         function so we are sure we do not dangle it forever.
2597         * function.c (outer_function_chain, find_function_data): Remove.
2598         (function_context_stack): New.
2599         (push_function_context, pop_function_context): Update.
2600         * function.h (struct function): Remove pointer outer.
2601         (outer_function_chain, find_function_data): Remove.
2602         * stmt.c (force_label_rtx): Remove dead call of find_function_data.
2603
2604 2008-09-11  Jan Hubicka  <jh@suse.cz>
2605
2606         PR middle-end/37448
2607         * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
2608
2609 2008-09-11  Jan Hubicka  <jh@suse.cz>
2610
2611         * tree-ssa-pre.c (phi_translate_1): Fix memory leak
2612
2613 2008-09-11  Jan Hubicka  <jh@suse.cz>
2614
2615         * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
2616         (free_var_map_entry): New function.
2617         (redirect_edge_var_map_destroy): Use it.
2618
2619 2008-09-11  Jan Hubicka  <jh@suse.cz>
2620
2621         PR middle-end/37448
2622         * tree-inline.c (add_lexical_block): Replace with ...
2623         (prepend_lexical_block): ... prepend at begginig.
2624         (remap_blocks): Use it and reverse later.
2625         (expand_call_inline): Use prepend_lexical_block.
2626
2627 2008-09-11  Jan Hubicka  <jh@suse.cz>
2628
2629         * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
2630
2631 2008-09-11  Jan Hubicka  <jh@suse.cz>
2632
2633         * function.c (free_after_compilation): Call insn_locators_free.
2634         * cfglayout.c (insn_locators_free): New function.
2635         * rtl.h (insn_locators_free): Declare.
2636
2637 2008-09-11  Jan Hubicka  <jh@suse.cz>
2638
2639         * ifcvt.c (check_cond_move_block): Make regs argument pointer to
2640         vector pointer.
2641         (cond_move_process_if_block): Update call.
2642
2643 2008-09-11  Jan Hubicka  <jh@suse.cz>
2644
2645         * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
2646         * vec.c: Include hashtab.h
2647         (vec_descriptor, ptr_hash_entry): New structures.
2648         (vec_desc_hash, vec_ptr_map): New static variables.
2649         (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
2650         register_overhead, free_overhead, vec_heap_free): New functions.
2651         (vec_gc_o_reserve_1): ggc_free when resizing to 0.
2652         (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
2653         (cmp_statistic, add_statistics, dump_vec_loc_statistics):
2654         New functions.
2655
2656 2008-09-11  Ira Rosen  <irar@il.ibm.com>
2657
2658         PR tree-optimization/37474
2659         * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
2660         length of load permutation.
2661
2662 2008-09-11  Andreas Schwab  <schwab@suse.de>
2663
2664         * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
2665
2666 2008-09-11  Jakub Jelinek  <jakub@redhat.com>
2667
2668         PR target/37382
2669         * expmed.c (extract_low_bits): Avoid creating invalid subregs.
2670         * dse.c (find_shift_sequence): Use extract_low_bits instead of
2671         simplify_gen_subreg.
2672
2673 2008-09-11  Ira Rosen  <irar@il.ibm.com>
2674
2675         * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
2676         for alias check.
2677
2678 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2679
2680         PR middle-end/37338
2681         * gimplify.c (gimplify_body): Call default_rtl_profile.
2682
2683         PR target/36904
2684         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
2685         instead of tok->val.node if not expanding to something else.  Handle
2686         intervening CPP_PADDING tokens.
2687         (altivec_categorize_keyword): Remove unneeded comparisons.
2688
2689 2008-09-10  Richard Guenther  <rguenther@suse.de>
2690
2691         * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
2692
2693 2008-09-10  Richard Guenther  <rguenther@suse.de>
2694
2695         PR middle-end/37432
2696         * tree-inline.c (insert_init_stmt): Make sure to not
2697         insert invalid gimple stores.
2698
2699 2008-09-10  Sebastian Pop  <sebastian.pop@amd.com>
2700
2701         PR tree-optimization/37388
2702         * toplev.c (process_options): Fail and warn when graphite
2703         flags are used, but the compiler has not been configured
2704         with graphite libraries.
2705         * graphite.c (graphite_transform_loops): Remove printfs
2706         to dump_file for the case when graphite is not available.
2707
2708 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
2709
2710         PR target/37434:
2711         * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
2712         the even element into register.
2713         (ix86_expand_vector_init_general): Don't use
2714         ix86_expand_vector_init_interleave on V16QImode and V8HImode
2715         if we can't move from GPR to SSE register directly.
2716
2717 2008-09-10  Bernd Schmidt  <bernd.schmidt@analog.com>
2718
2719         * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
2720         not lose track of the number of NOPs needed.  Number of NOPs needed
2721         for sync vs. loads workaround was switched; corrected.  Run second
2722         pass for all workarounds.  No NOPs needed after call insns.  Change
2723         second pass to use find_next_insn_start and find_load helpers in order
2724         to properly detect parallel insns.
2725         * config/bfin/bfin.md (cbranch_with_nops): Increase length.
2726
2727 2008-09-10  Jan Hubicka  <jh@suse.cz>
2728
2729         * value-prof.c (gimple_ic): Fix tuplification bug.
2730         * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
2731         var warning.
2732
2733 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2734
2735         PR tree-optimization/37353
2736         * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
2737         (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
2738         calls instead of cond_dead_built_in_calls.
2739         (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
2740         initalize the vector only before adding first entry.  Use VEC_safe_push
2741         instead of VEC_quick_push.  Pass cond_dead_built_in_calls to
2742         shrink_wrap_conditional_dead_built_in_calls call.
2743
2744 2008-09-10  Ira Rosen  <irar@il.ibm.com>
2745
2746         PR tree-optimization/37385
2747         * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
2748         argument, and use it as a vector type if not NULL.
2749         (vectorizable_store): Call vect_create_data_ref_ptr with the type of
2750         vectorized rhs.
2751         (vect_setup_realignment): Call vect_create_data_ref_ptr with
2752         additional argument.
2753         (vectorizable_load): Likewise.
2754
2755 2008-09-10  Jakub Jelinek  <jakub@redhat.com>
2756
2757         * config/i386/i386.md (SWI32): New mode iterator.
2758         (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
2759         of SWI.
2760
2761 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2762
2763         PR rtl-optimization/37435
2764         * caller-save.c (insert_restore, insert_save): Check the mode by
2765         reg_save_code.
2766
2767 2008-09-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2768
2769         PR other/37265
2770         * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
2771         splay tree lookup.
2772         (dw2_output_indirect_constant_1): Use unstripped name in symbol
2773         reference.
2774
2775 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
2776
2777         * doc/invoke.texi (ARM Options): Correct errors in discussion
2778         of -mfloat-abi, -mhard-float, and -msoft-float.
2779
2780 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
2781             Jan Hubicka  <jh@suse.cz>
2782
2783         PR middle-end/37356
2784         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
2785         calling gimple_regimplify_operands on it.  Iterate over all newly
2786         added statements, not just the last one.
2787         (insert_init_stmt): Insert stmt into seq first, then call
2788         gimple_regimplify_operands on it.  Don't create new gimplification
2789         context, nor find referenced vars.
2790
2791 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
2792
2793         PR other/37419
2794         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
2795         to pointer to vector pointer.
2796         * ipa-prop.c (ipa_propagate_indirect_call_infos,
2797         propagate_info_to_inlined_callees): Likewise.
2798         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
2799         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
2800         ipa_check_create_edge_args.
2801         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
2802         argument to pointer to vector pointer.
2803         (cgraph_decide_inlining_of_small_function): Adjust
2804         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
2805         calls.
2806
2807         PR target/37438
2808         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
2809         optimizing for size, not speed.
2810
2811         PR rtl-optimization/37408
2812         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
2813         if parm is promoted.
2814
2815 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
2816
2817         PR tree-optimization/37375
2818         * tree-scalar-evolution.c (scev_info_str): Add field
2819         instantiated_below.
2820         (new_scev_info_str, eq_scev_info, find_var_scev_info,
2821         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
2822         set_instantiated_value): Pass instantiated_below.
2823         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
2824         to above functions.
2825         (instantiate_scev_1, instantiate_scev): Pass a basic block above which
2826         the definitions are not instantiated.
2827
2828         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
2829         (block_before_loop): New.
2830         * tree-data-ref.c (dr_analyze_indices): Update uses of
2831         instantiate_scev.
2832         * graphite.c (block_before_scop): New.
2833         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
2834         basic block, not a loop for determining the parameters.
2835         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
2836         scop.
2837         (idx_record_params, find_params_in_bb, find_scop_parameters,
2838         build_loop_iteration_domains, add_conditions_to_domain): Update calls
2839         to instantiate_scev.
2840
2841         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
2842
2843 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2844
2845         PR rtl-opt/37333
2846
2847         * ira-build.c (ira_create_allocno): Setup frequency to 0.
2848
2849         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
2850         Check zero freq and increase if necessary.
2851
2852 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
2853
2854         * ira-conflicts.c (process_regs_for_copy): Check that the hard
2855         regno is in the right range.  Add comments.
2856
2857 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2858
2859         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
2860         warnings.
2861         * mips-tfile.c (copy_object): Cast alloca result to int *.
2862         * mips-tdump.c (print_symbol): Cast xmalloc return values to
2863         proper types.
2864         Rename class to sclass.
2865         (read_tfile): Cast read_seek return values to proper types.
2866         Cast xcalloc return value to proper type.
2867
2868 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2869
2870         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
2871         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
2872         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
2873
2874 2008-09-09  Jan Hubicka  <jh@suse.cz>
2875
2876         * profile.c (is_edge_inconsistent): Add debug output; ignore
2877         negative count on fake edges.
2878         (is_inconsistent): Add debug output.
2879
2880 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
2881
2882         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
2883         dump message.
2884         (choose_ready): When first insn is chosen from the ready list, also
2885         dump it.
2886
2887 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
2888
2889         PR rtl-optimization/37360
2890         * haifa-sched.c (max_issue): Do not assert that we never issue more
2891         insns than issue_rate.  Add comment.
2892
2893 2008-09-09  Richard Guenther  <rguenther@suse.de>
2894
2895         * tree-cfg.c (verify_types_in_gimple_op): Remove.
2896         (verify_types_in_gimple_call): Rename to ...
2897         (verify_gimple_call): ... this.  Enhance.
2898         (verify_types_in_gimple_cond): Remove.
2899         (verify_gimple_comparison): New function ...
2900         (verify_types_in_gimple_assign): ... split out from here.
2901         (verify_types_in_gimple_return): Rename to ...
2902         (verify_gimple_return): ... this.  Enhance.
2903         (verify_types_in_gimple_switch): Rename to ...
2904         (verify_gimple_switch): ... this.  Enhance.
2905         (verify_gimple_goto): New function.
2906         (verify_types_in_gimple_phi): Rename to ...
2907         (verify_gimple_phi): ... this.  Enhance.
2908         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
2909         Fold in single-statement cases from verify_types_in_gimple_seq_2.
2910         (verify_types_in_gimple_seq_2): Remove cases handled in
2911         verify_types_in_gimple_stmt.
2912
2913 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2914
2915         * config/bfin/bfin.c (n_regs_to_save): New static variable.
2916         (push_multiple_operation, pop_multiple_operation): Set it.
2917         (workaround_rts_anomaly): New function.
2918         (workaround_speculation): New function, broken out of bfin_reorg.
2919         (bfin_reorg): Call the new functions.
2920
2921 2008-09-09  Richard Guenther  <rguenther@suse.de>
2922
2923         PR middle-end/37354
2924         PR middle-end/30165
2925         * gimplify.c (gimplify_conversion): Change conversions of
2926         non-register type to VIEW_CONVERT_EXPRs.
2927         (gimplify_addr_expr): If we need to make the operand
2928         addressable make sure to use a properly initialized
2929         temporary for that so it gets a valid gimple store.
2930
2931 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
2932
2933         * function.h (struct function): Add function_start_locus.
2934         * cfgexpand.c (gimple_expand_cfg): Use it.
2935         * c-parser.c (c_parser_declaration_or_fndef): Set it.
2936
2937 2008-09-09  Richard Guenther  <rguenther@suse.de>
2938
2939         PR tree-optimization/37433
2940         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
2941         function calls.
2942
2943 2008-09-09  Richard Guenther  <rguenther@suse.de>
2944
2945         PR tree-optimization/37387
2946         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
2947         and bits to a common type.
2948
2949 2008-09-09  Nick Clifton  <nickc@redhat.com>
2950
2951         * config/v850/v850.md (return): Restore frame size restriction.
2952
2953 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
2954
2955         * c-common.c (c_expand_decl): Remove.
2956         * c-common.h (anon_aggr_type_p): Remove prototype.
2957         (DECL_ANON_UNION_ELEMS): Remove.
2958         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
2959         * c-decl.c (anon_aggr_type_p): Remove.
2960         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
2961         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
2962         * langhooks.h (struct lang_hooks): Remove expand_decl.
2963         * langhooks.c (lhd_expand_decl): Remove.
2964         * stmt.c (expand_anon_union_decl): Remove.
2965         * tree.h (expand_anon_union_decl): Remove prototype.
2966
2967 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
2968
2969         PR target/36609
2970         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
2971         zero.
2972         * config/avr/avr.md  (QISI) : Define mode iterator.
2973         (negated_tst<mode>) : Redefine as split using mode macro.
2974         (reversed_tstqi): Define insn as reversed compare with zero.
2975         (reversed_tsthi): Ditto.
2976         (reversed_tstsi): Ditto.
2977
2978 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
2979
2980         PR middle-end/37393
2981         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
2982         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
2983
2984         PR middle-end/37414
2985         * predict.c (optimize_function_for_size_p): Don't segfault if
2986         FUN is NULL.
2987         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
2988         tree_swap_operands_p): Don't test cfun != NULL before calling
2989         optimize_function_for_s*_p.
2990
2991 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2992
2993         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
2994         end of the search.
2995
2996 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
2997
2998         * crx/crx.h (IRA_COVER_CLASSES): Define.
2999
3000 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3001
3002         PR middle-end/37337
3003         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3004         even when a stmt has been gimple_modified_p, but after fold_stmt is
3005         not any longer.  Remove unneeded may_have_exposed_new_symbols
3006         initializations.
3007
3008 2008-09-08  Richard Guenther  <rguenther@suse.de>
3009
3010         PR tree-optimization/37421
3011         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3012         valueize the RHS.
3013
3014 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
3015
3016         PR middle-end/37415
3017         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3018
3019 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3020
3021         PR driver/37409
3022         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3023         * pa-hpux10.h (LINK_SPEC): Likewise.
3024         * pa-hpux11.h (LINK_SPEC): Likewise.
3025
3026 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3027
3028         * pa32-regs.h (IRA_COVER_CLASSES): Define.
3029         * pa64-regs.h (IRA_COVER_CLASSES): Define.
3030
3031 2008-09-07  Helge Deller  <deller@gmx.de>
3032
3033         * pa/linux-atomic.c: New file.
3034         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3035         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3036
3037 2008-09-07  Richard Guenther  <rguenther@suse.de>
3038             Ira Rosen  <irar@il.ibm.com>
3039
3040         PR tree-optimization/36630
3041         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3042         Call STRIP_NOPS before calling evolution_part_in_loop_num.
3043
3044 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
3045             Ira Rosen  <irar@il.ibm.com>
3046
3047         PR tree-optimization/35642
3048         * config/rs6000/altivec.md (mulv8hi3): Implement.
3049
3050 2008-09-06  Jeff Law <law@redhat.com>
3051
3052         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
3053
3054 2008-09-06  Jan Hubicka  <jh@suse.cz>
3055
3056         PR tree-optimization/14703
3057         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3058         declarations.
3059         * passes.c (init_optimization_passes): Recompute inline parameters.
3060
3061 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
3062
3063         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3064         DECL being null.
3065
3066 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
3067             Peter Fuerst  <post@pfrst.de>
3068
3069         * doc/invoke.texi: Document -mr10k-cache-barrier=.
3070         * doc/extend.texi: Document __builtin_mips_cache.
3071         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3072         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3073         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3074         __GCC_HAVE_BUILTIN_MIPS_CACHE.
3075         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3076         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3077         (set_push_mips_isas): New variable.
3078         (mips_r10k_cache_barrier): New variable.
3079         (cache): New availability predicate.
3080         (mips_builtins): Add an entry for __builtin_mips_cache.
3081         (mips_build_cvpointer_type): New function.
3082         (MIPS_ATYPE_CVPOINTER): New macro.
3083         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3084         mode is VOIDmode.
3085         (r10k_simplified_address_p, r10k_simplify_address)
3086         (r10k_uncached_address_p, r10k_safe_address_p)
3087         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3088         (r10k_needs_protection_p_call, r10k_needs_protection_p)
3089         (r10k_insert_cache_barriers): New functions.
3090         (mips_reorg_process_insns): Delete cache barriers after a
3091         branch-likely instruction.
3092         (mips_reorg): Call r10k_insert_cache_barriers.
3093         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3094         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3095         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3096         (mips_cache, r10k_cache_barrier): New define_insns.
3097
3098 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
3099
3100         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3101         * ira-color.c (setup_allocno_left_conflicts_num): Use
3102         hard_reg_set_equal_p instead of a comparison with
3103         ira_zero_hard_reg_set.
3104         * ira.c (setup_reg_subclasses): Likewise.
3105         (setup_cover_and_important_classes): Likewise.
3106         (setup_class_translate): Likewise.
3107         (setup_reg_class_intersect_union): Likewise.
3108         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3109         (ira_init_once): Don't initialize them.
3110
3111 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
3112
3113         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
3114
3115 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
3116
3117         * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
3118
3119 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3120
3121         Improved branch hints, safe hints, and scheduling.
3122
3123         * haifa-sched.c (sched_emit_insn) : Define.
3124         * sched-int.h (sched_emit_insn) : Add prototype.
3125         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
3126         -mhint-max-distance -msafe-hints) : Document.
3127         * config/spu/spu.c (spu_flag_var_tracking): New.
3128         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
3129         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
3130         TARGET_ASM_FILE_START): Define.
3131         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
3132         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
3133         (spu_emit_branch_hint): Add blocks argument.
3134         (insert_branch_hints, insert_nops): Remove.
3135         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
3136         uses_ls_unit, spu_sched_init_global, spu_sched_init,
3137         spu_sched_reorder, asm_file_start): New functions.
3138         (clock_var, spu_sched_length, pipe0_clock,
3139         pipe1_clock, prev_clock_var, prev_priority,
3140         spu_ls_first, prev_ls_clock): New static variables.
3141         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
3142         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
3143         (nopn_nv): Add a non-volatile version of nop.
3144         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
3145         -mhint-max-distance, -msafe-hints): New options.
3146
3147 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
3148             Samuel Tardieu  <sam@rfc1149.net>
3149
3150         * opts.c (decode_options): Combine nested if statements.
3151
3152         PR target/37283
3153         * opts.c (decode_options): Handle more relationships among
3154         unit-at-a-time, toplevel-reorder, and section-anchors.
3155
3156 2008-09-05  David Daney  <ddaney@avtrex.com>
3157
3158         * doc/install.texi (--enable-reduced-reflection): Document new option.
3159
3160 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
3161
3162         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
3163         constantpool_mem_p.
3164         (constantpool_operand): New.
3165         (move_operand): Disallow sub-word modes for the constant pool.
3166         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
3167         (xtensa_secondary_reload_class): Replace with....
3168         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check.
3169         Set icode for sub-word reloads from the constant pool.
3170         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
3171         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3172         * config/xtensa/xtensa.md (reload<mode>_literal): New.
3173         * config/xtensa/xtensa-protos.h: Update prototypes.
3174
3175 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
3176
3177         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
3178         (REG_CLASS_NAMES): Update.
3179         (REG_CLASS_CONTENTS): Update.
3180         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
3181         of ALL_REGS for regs 77 and 78.
3182         * function.c (instantiate_virtual_regs_in_insn): Assert that
3183         return value of simplify_gen_subreg is not NULL.
3184
3185 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
3186
3187         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
3188         (gen_rtvec_v): Fix coding standards.
3189
3190 2008-09-04  Jan Hubicka  <jh@suse.cz>
3191
3192         * i386.c (decide_alg): Be more conservative about optimizing for size.
3193
3194 2008-09-04  Ian Lance Taylor  <iant@google.com>
3195
3196         * varasm.c (narrowing_initializer_constant_valid_p): New
3197         static function.
3198         (initializer_constant_valid_p): Call it.
3199
3200 2008-09-04  Jeff Law  <law@redhat.com>
3201
3202         * fold-const.c (native_encode_real): Fix computation of WORDS.
3203         (native_interpret_real): Likewise.
3204
3205 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
3206
3207         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
3208
3209 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
3210
3211         * ira-conflicts.c (process_regs_for_copy): Check insn to check
3212         that the cost is already taken into account in ira-costs.c
3213
3214         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
3215
3216         * ira-build.c (print_copy, print_copies, ira_debug_copy,
3217         ira_debug_copies): New.
3218         (ira_bulid): Call print_copies.
3219
3220         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
3221
3222 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
3223
3224         PR target/32783
3225         * config/rs6000/rs6000.c (optimization_options): Remove check of
3226         flag_toplevel_order.
3227
3228 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3229
3230         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
3231         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
3232         second operand is a reg_imm10_operand.
3233         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
3234         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
3235         (*seq_<GPR:mode><GPR2:mode>): Rename to
3236         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
3237         ISA_HAS_SEQ_SNE.
3238         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
3239         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
3240         ISA_HAS_SEQ_SNE.
3241         (*sne_<GPR:mode><GPR2:mode>): Rename to
3242         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
3243         ISA_HAS_SEQ_SNE.
3244
3245 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3246
3247         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
3248         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
3249         combining an arithmetic right shift by more than 31 and a
3250         trunction.  Don't match for out-of-range shift amounts.  Set
3251         attribute mode to <MODE>.
3252         (*lshr32_trunc<mode>): Name the pattern combining a logical right
3253         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
3254         (*<optab>_trunc<mode>_exts): New pattern for truncated right
3255         shifts by less than 32.
3256         (extv): Change predicate on first operand to accept registers.
3257         Change predicate of the other operands from immediate_operand to
3258         const_int_operand.  Expand exts when source is a register.
3259         (extzv): Change predicate of the constant operands from
3260         immediate_operand to const_int_operand.
3261         (extzv<mode>): Change predicate of the constant operands from
3262         immediate_operand to const_int_operand and no constraint. Also
3263         remove mode.
3264         (*extzv_trunc<mode>_exts): New pattern.
3265
3266 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
3267
3268         * config/mips/mips.h (ISA_HAS_CINS): New macro.
3269         * config/mips/mips-protos.h (mask_low_and_shift_p,
3270         mask_low_and_shift_len): Declare.
3271         * config/mips/mips.c (mask_low_and_shift_p,
3272         mask_low_and_shift_len): New functions.
3273         (mips_print_operand): Handle new operand prefix "m".
3274         * config/mips/mips.md (*cins<mode>): New pattern.
3275
3276 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
3277
3278         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
3279         optimizing for size.
3280
3281 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
3282
3283         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
3284         regardless of epilogue_completed.
3285
3286 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
3287
3288         PR middle-end/37359
3289         * ira-lives.c (process_bb_node_lives): Check setjmp.
3290
3291 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
3292
3293         PR middle-end/37243
3294         * ira-build.c (form_loop_tree): Reverse BB walk.
3295         (create_bb_allocnos): Likewise.
3296         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
3297         (mark_reg_store): Rename to...
3298         (mark_ref_live): ...this and take a df_ref argument instead of
3299         note_stores arguments.  Assert that we have a register.
3300         (mark_reg_clobber): Delete.
3301         (def_conflicts_with_inputs_p): New function.
3302         (mark_reg_conflicts): Delete.
3303         (mark_reg_death): Rename to...
3304         (mark_ref_dead): ...this and take a df_ref argument instead of
3305         a register.  Assert that we have a register.
3306         (process_bb_node_lives): Hoist frequency calculation out of
3307         instruction walk.  Convert from a forwards scan to a backwards scan.
3308         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
3309         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
3310         (create_allocno_live_ranges): Don't create regs_set.
3311
3312 2008-09-04  Ian Lance Taylor  <iant@google.com>
3313
3314         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
3315         or REG_LABEL_TARGET.
3316         * calls.c (emit_library_call_value_1): Use MEM_P rather than
3317         comparing MODE with MEM.
3318         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
3319         comparing with GF_PREDICT_TAKEN.
3320         (gimple_get_lhs): Change code to enum gimple_code.
3321         (gimple_set_lhs): Likewise.
3322         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
3323         * omp-low.c (find_omp_clause): Change kind parameter to enum
3324         omp_clause_code.
3325         * tree-flow.h (find_omp_clause): Update declaration.
3326         * regrename.c (clear_dead_regs): Change kind parameter to enum
3327         reg_note.
3328         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
3329         GET_MODE.
3330         * see.c (see_get_extension_data): Change return type to enum
3331         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
3332         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
3333         (see_gen_normalized_extension): Change extension_code parameter to
3334         enum entry_type.
3335         (see_seek_pre_extension_expr): Change extension_code to enum
3336         entry_type.
3337         (see_merge_one_def_extension): Likewise.
3338         (see_handle_relevant_defs): Likewise.
3339         (see_handle_relevant_uses): Likewise.
3340         (see_analyze_one_def): Likewise.
3341         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
3342         GIMPLE_ASM rather than ASM_EXPR.
3343         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
3344         GIMPLE_RETURN rather than RETURN_EXPR.
3345         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
3346         (evaluate_stmt): Likewise.
3347         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
3348         to enum vect_relevant.
3349         (vect_mark_stmts_to_be_vectorized): Change assertion to not
3350         compare gimple codes with tree codes.
3351
3352 2008-09-04  Paul Brook  <paul@codesourcery.com>
3353
3354         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
3355
3356 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
3357
3358         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
3359         pointer check lost in the recent no-unit-at-a-time patch.
3360
3361 2008-09-04  Jan Hubicka  <jh@suse.cz>
3362
3363         PR middle-end/37343
3364         * tree-switch-conversion.c (check_final_bb): Accept only IP
3365         invariants.
3366
3367 2008-09-04  Jan Hubicka  <jh@suse.cz>
3368
3369         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
3370         Break out from ...
3371         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
3372         using_ranges argument.
3373         (vrp_evaluate_conditional): Avoid bogus warning for type range.
3374         (vrp_visit_cond_stmt): Update call of
3375         vrp_evaluate_conditional_warnv_with_ops
3376
3377 2008-09-04  Jan Hubicka  <jh@suse.cz>
3378
3379         PR tree-optimization/37345
3380         PR tree-optimization/37358
3381         PR tree-optimization/37357
3382         * tree.c (build_function_type_skip_args): Build distinct type copy;
3383         set TYPE_CONTEXT.
3384         (build_function_decl_skip_args): Set type of new decl not orig decl;
3385         clear DECL_VINDEX for methods turned into functions.
3386
3387 2008-09-04  Nick Clifton  <nickc@redhat.com>
3388
3389         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
3390         * configure: Regenerate.
3391         * config.in: Regenerate.
3392         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
3393         alignment field, if it is supported.
3394
3395 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
3396
3397         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
3398         libraries.
3399
3400 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
3401
3402         * config/rs6000/rs6000.c (processor_target_table): Do not
3403         enable VMX for POWER6.
3404
3405 2008-09-03  Anton Blanchard  <anton@samba.org>
3406
3407         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
3408         emit memory barrier before operation.
3409
3410 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
3411
3412         PR testsuite/37325
3413         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
3414         default_elf_asm_output_external.
3415
3416 2008-09-03  Jeff Law  <law@redhat.com>
3417
3418         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
3419
3420 2008-09-03  Richard Henderson  <rth@redhat.com>
3421
3422         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
3423         memory barrier to below the test-and-set.
3424         (alpha_split_lock_test_and_set_12): Likewise.
3425
3426 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3427
3428         PR rtl-opt/37243
3429
3430         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
3431         all_allocnos.
3432
3433         * ira-color.c (print_loop_title): Use all_allocnos.
3434         (color_pass): Ditto.  Don't add border_allocnos.  Check that
3435         subloop allocno in the correspdoning bitmap all_allocnos.
3436
3437         * ira-emit.c (change_loop): Use all_allocnos.
3438
3439         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
3440         (ira_create_allocno): Set up all_allocnos bit for the created allocno.
3441         (create_cap_allocno): Remove setting mentioned_allocnos.
3442         (create_insn_allocnos): Ditto.
3443         (remove_unnecessary_allocnos): Use all_allocnos.
3444         (check_allocno_creation): Check that allocnos are in the
3445         corresponding bitmap all_allocnos.
3446
3447 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3448
3449         PR rtl-opt/37243
3450
3451         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
3452         (process_regs_for_copy): Process subregs.  Refine check when cost
3453         is taken into account in ira-costs.c.
3454         (process_reg_shuffles): Use REG_SUBREG_P.
3455         (add_insn_allocno_copies): Ditto.  Ignore modes.
3456
3457         * ira-color.c (conflict_allocno_vec): New.
3458         (COST_HOP_DIVISOR): New macro.
3459         (update_copy_costs_1): Use it.
3460         (update_conflict_hard_regno_costs): New function.
3461         (assign_hard_reg): Use it.
3462         (ira_color): Allocate and free conflict_allocno_vec.
3463
3464 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
3465
3466         PR rtl-opt/37296
3467
3468         * ira-int.h (ira_sort_insn_chain): Remove.
3469
3470         * ira.c (basic_block_order_nums, chain_insn_order,
3471         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
3472         (ira): Don't call ira_sort_insn_chain.
3473
3474         * reload1.c (reload): Don't call ira_sort_insn_chain.
3475
3476 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3477
3478         PR middle-end/37293
3479         * cgraphunit.c (update_call_expr): Remove eh regions from statements
3480         which become non throw.
3481         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
3482         update_call_expr after updating the flags on the decl.
3483
3484 2008-09-03  Jan Hubicka  <jh@suse.cz>
3485
3486         PR tree-optimization/37315
3487         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
3488         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
3489         (cgraph_analyze_functions): Use node->analyzed
3490         (cgraph_mark_functions_to_output): Likewise.
3491         (cgraph_expand_function): All functions can be released after
3492         expanding.
3493         (cgraph_optimize): Use gimple_has_body_p.
3494         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
3495         (cgraph_decide_inlining_incrementally): Likewise.
3496         (inline_transform): Inline transform.
3497         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
3498         copy fields needed.
3499         (inlinable_function_p): Drop gimple_body check.
3500         (expand_call_inline): Use gimple_has_body_p.
3501         * gimple.c (gimple_has_body_p): New.
3502         * gimple.h (gimple_has_body_p): Add prototype.
3503         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
3504         (dump_function_to_file): Use gimple_has_body_p check.
3505
3506 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
3507
3508         PR c++/37346
3509         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
3510         substatements.
3511         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
3512
3513 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
3514
3515         From Michael Frysinger  <michael.frysinger@analog.com>
3516         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
3517         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
3518         for bf538.
3519
3520 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
3521
3522         Add picoChip port.
3523         * doc/extend.texi: Document picoChip builtin functions.
3524         * doc/invoke.texi: Document picoChip options.
3525         * doc/contrib.texi: Add picoChip contribution.
3526         * doc/md.texi: Document picoChip constraints.
3527         * config.gcc: Add picochip-*-*.
3528         * config/picochip/: Add new port.
3529
3530 2008-09-03  Richard Guenther  <rguenther@suse.de>
3531
3532         PR tree-optimization/37328
3533         * tree-sra.c (sra_build_assignment): Gimplify properly.
3534         (generate_copy_inout): Take the correct stmt as definition,
3535         remove bogus assert.
3536
3537 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
3538
3539         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
3540         attributes.
3541
3542         From Michael Frysinger  <michael.frysinger@analog.com>
3543         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
3544
3545 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
3546
3547         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
3548         (__gthread_setspecific): Revert 2008-08-31 change to
3549         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API case.
3550
3551 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
3552
3553         * diagnostic.c (error_at): New.
3554         * toplev.h (error_at): New prototype.
3555         * c-typeck.c (build_array_ref): Call error_at instead of error.
3556         Pass location to pedwarn.
3557
3558 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
3559
3560         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
3561
3562 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
3563
3564         * dwarf2out.c (tree_add_const_value_attribute): Only handle
3565         VAR_DECL and CONST_DECL.
3566
3567 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
3568             Jakub Jelinek  <jakub@redhat.com>
3569
3570         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
3571         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
3572         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
3573         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
3574         Don't set ix86_save_varrargs_registers.
3575         (ix86_setup_incoming_varargs): Assume cum != NULL.
3576         (ix86_va_start): Check ix86_varargs_gpr_size and
3577         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
3578         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
3579         from frame pointer if ix86_varargs_gpr_size == 0.
3580         (ix86_compute_frame_layout): Updated.
3581         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
3582         (ix86_varargs_gpr_size): Define.
3583         (ix86_varargs_fpr_size): Likewise.
3584         (machine_function): Remove save_varrargs_registers.
3585         Add varargs_gpr_size and varargs_fpr_size.
3586
3587 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
3588
3589         * config/alpha/alpha.c (va_list_skip_additions,
3590         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
3591         (alpha_gimplify_va_arg): Call unshare_expr on second use of
3592         offset_field.
3593
3594         PR tree-optimization/36766
3595         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
3596         for already removed basic blocks.
3597
3598         PR target/36332
3599         * real.c (real_maxval): Clear a lower bit to make real_maxval
3600         match get_max_float for IBM long double format.
3601
3602 2008-09-02  Andreas Schwab  <schwab@suse.de>
3603
3604         * configure.ac: Use m4_quote to quote the expansion of m4_do.
3605         * configure: Regenerate.
3606
3607 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
3608
3609         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
3610         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
3611         checking for a non-VOID CONSTANT_P.
3612
3613 2008-09-02  Jan Hubicka  <jh@suse.cz>
3614
3615         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
3616         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
3617         sdiv_pow2_cheap
3618
3619 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
3620
3621         * expr.c (emit_group_store): Don't assert stack temp mode size.
3622
3623 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
3624             Tobias Grosser  <grosser@fim.uni-passau.de>
3625             Jan Sjodin  <jan.sjodin@amd.com>
3626             Harsha Jagasia  <harsha.jagasia@amd.com>
3627             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3628             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
3629             Adrien Eliche  <aeliche@isty.uvsq.fr>
3630
3631         Merge from graphite branch.
3632         * graphite.c: New.
3633         * graphite.h: New.
3634         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
3635         * doc/invoke.texi (-floop-block, -floop-interchange,
3636         -floop-strip-mine): Document new flags.
3637         * tree-into-ssa.c (gimple_vec): Moved...
3638         * tree-loop-distribution.c (rdg_component): Moved...
3639         * cfgloopmanip.c: Include tree-flow.h.
3640         (update_dominators_in_loop): New.
3641         (create_empty_if_region_on_edge): New.
3642         (create_empty_loop_on_edge): New.
3643         (loopify): Use update_dominators_in_loop.
3644         * tree-pass.h (pass_graphite_transforms): Declared.
3645         * configure: Regenerate.
3646         * tree-phinodes.c (make_phi_node): Export.
3647         (add_phi_node_to_bb): New, split from create_phi_node.
3648         * tree-chrec.c (for_each_scev_op): New.
3649         * tree-chrec.h (for_each_scev_op): Declared.
3650         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
3651         (remove_statement): Call get_phi_with_result.
3652         * config.in (HAVE_cloog): Undef.
3653         * gdbinit.in (pgg): New.
3654         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
3655         * tree-ssa-loop.c (graphite_transforms): New.
3656         (gate_graphite_transforms): New.
3657         (pass_graphite_transforms): New.
3658         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
3659         HAVE_cloog): Defined.
3660         * tree-vectorizer.c (rename_variables_in_bb): Export.
3661         * tree-data-ref.c (dr_may_alias_p): Export.
3662         (stmt_simple_memref_p): New.
3663         (find_data_references_in_stmt): Export.
3664         (find_data_references_in_loop): Export.
3665         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
3666         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
3667         (create_rdg_vertices): Export.
3668         (build_empty_rdg): New.
3669         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
3670         * tree-data-ref.h (rdg_component): ... here.
3671         (scop_p): New.
3672         (struct data_reference): Add a field scop.
3673         (DR_SCOP): New.
3674         (find_data_references_in_loop): Declared.
3675         (find_data_references_in_stmt): Declared.
3676         (create_rdg_vertices): Declared.
3677         (dr_may_alias_p): Declared.
3678         (stmt_simple_memref_p): Declared.
3679         (struct rdg_edge): Add a field ddr_p relation.
3680         (build_empty_rdg): Declared.
3681         * lambda.h (lambda_matrix): Declare a VEC of.
3682         (find_induction_var_from_exit_cond): Declared.
3683         (lambda_vector_compare): New.
3684         * common.opt (fgraphite, floop-strip-mine,
3685         floop-interchange, floop-block): New flags.
3686         * lambda-code.c (find_induction_var_from_exit_cond): Export.
3687         * cfgloop.c (is_loop_exit): New.
3688         * cfgloop.h (is_loop_exit): Declared.
3689         (create_empty_if_region_on_edge): Declared.
3690         (create_empty_loop_on_edge): Declared.
3691         * tree-flow.h (add_phi_node_to_bb): Declared.
3692         (make_phi_node): Declared.
3693         (rename_variables_in_bb): Declared.
3694         (perfect_loop_nest_depth): Declared.
3695         (graphite_transform_loops): Declared.
3696         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
3697         (graphite.o-warn): Add -Wno-error.
3698         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
3699         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
3700         (INCLUDES): Add PPLINC, CLOOGINC.
3701         (OBJS-common): Add graphite.o.
3702         (graphite.o): Add rule.
3703         * gimple.h (gimple_vec): ... here.
3704         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
3705         * passes.c (init_optimization_passes): Schedule
3706         pass_graphite_transforms.
3707
3708 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
3709
3710         PR target/37283
3711         * opts.c (decode_options): Move processing of -fno-unit-at-a-time
3712         and -fno-toplevel-reorder after handle_options.
3713
3714 2008-09-02  Paul Brook  <paul@codesourcery.com>
3715
3716         * config/arm/arm.c (arm_tune_cortex_a9): Define.
3717         (arm_override_options): Set arm_tune_cortex_a9.
3718         (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
3719         (arm_issue_rate): Handle cortexa9.
3720         * config/arm/arm.h (arm_tune_cortex_a9): Declare.
3721         * config/arm/arm-cores.def: Add cortex-a9.
3722         * config/arm/arm-tune.md: Regenerate.
3723         * config/arm/arm.md: Include cortex-a9.md.
3724         (generic_sched, generic_vfp): Add cortexa9.
3725         * config/arm/cortex-a9.md: New file.
3726
3727 2008-09-02  Richard Guenther  <rguenther@suse.de>
3728
3729         PR tree-optimization/37327
3730         * tree-vrp.c (register_new_assert_for): Make sure to not have
3731         TREE_OVERFLOW set on the bound.
3732
3733 2008-09-02  Alexander Monakov  <amonakov@ispras.ru>
3734
3735         Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
3736
3737         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
3738         * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
3739         spec_info->mask.
3740
3741 2008-09-02  Victor Kaplansky  <victork@il.ibm.com>
3742
3743         * gcc/config/spu/spu.md (divdf3): Removed.
3744
3745 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
3746
3747         PR tree-optimization/37095
3748         * cgraph.c (cgraph_node): When creating new cgraph node after
3749         assembler_name_hash has been populated, record it in the hash
3750         table.
3751
3752 2008-09-01  Paul Brook  <paul@codesourcery.com>
3753
3754         * doc/invoke.texi: Document -mword-relocations.
3755         * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3756         * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3757         * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3758         * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
3759         (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
3760         (arm_emit_movpair): New function.
3761         (arm_print_operand <c>): Handle sybolic addresses.
3762         * config/arm/arm.h (TARGET_USE_MOVT): Define.
3763         (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
3764         * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
3765         * config/arm/arm.opt: Add -mword-relocations.
3766         * config/arm/arm.md (movsi): Use arm_emit_movpair.
3767         (arm_movt, arm_movw): New.
3768
3769 2008-09-01  Paul Brook  <paul@codesourcery.com>
3770
3771         * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
3772         Allow Interworking on ARMv4 EABI based targets.
3773         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
3774         (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
3775
3776 2008-09-01  Paul Brook  <paul@codesourcery.com>
3777
3778         * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
3779         optimized LT0 test.  Remove optimization for GT.
3780
3781 2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3782
3783         * pa64-hpux.h (LIB_SPEC): Link against librt when building static
3784         openmp applications.
3785         * pa-hpux11.h (LIB_SPEC): Likewise.
3786
3787         * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
3788         is defined.
3789
3790 2008-09-01  Jan Hubicka  <jh@suse.cz>
3791
3792         * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
3793         present, use only counts; when guessed use only frequencies.
3794         (estimate_bb_frequencies): Use function_frequency.
3795         * profile.c (compute_branch_probabilities): Exit early when
3796         profile reading failed. Set profile_status.
3797         (branch_prob): Do not set profile_status.
3798
3799 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
3800
3801         * tree.c (protected_set_expr_location): New.
3802         * tree.h (protected_set_expr_location): New prototype.
3803         * c-tree.h (build_array_ref): Add argument.
3804         (parser_build_unary_op): Same.
3805         * c-typeck.c (build_indirect_ref): Handle new location argument.
3806         (build_array_ref): Same.
3807         (parser_build_unary_op): Same.
3808         * gimplify.c (gimplify_asm_expr): Set input_location before calling
3809         error.
3810         * c-omp.c (c_finish_omp_atomic): Pass location when calling
3811         build_indirect_ref.
3812         * c-common.c (finish_label_address_expr): Handle new location argument.
3813         * c-common.h (build_indirect_ref): Add argument.
3814         (finish_label_address_expr): Same.
3815         * c-parser.c (c_parser_unary_expression): Pass location to build
3816         functions.
3817         (c_parser_postfix_expression): Same.
3818
3819 2008-09-01  Paul Brook  <paul@codesourcery.com>
3820
3821         * config/arm/arm.md: Include cortex-r4f.md.
3822         (attr fpu): Update type list.
3823         (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
3824         fconstd, fcmps and fcmpd.
3825         (attr tune_cortexr4): Define.
3826         (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
3827         * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
3828         fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
3829         * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
3830         * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
3831         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
3832         cortex_a8_vfp_farith: Ditto.
3833         * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
3834         * config/arm/cortex-r4.md: Use tune_cortexr4.
3835         * config/arm/cortex-r4f.md: New file.
3836
3837 2008-09-01  Richard Guenther  <rguenther@suse.de>
3838
3839         PR tree-optimization/37305
3840         * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
3841         the result of constant conversions.
3842         (fold_gimple_assign): Likewise.
3843
3844 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
3845
3846         * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
3847         #ifdef ENABLE_CHECKING.
3848
3849 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
3850
3851         * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
3852         * sched-int.h (print_insn, print_pattern, print_value): Declare also
3853         when !INSN_SCHEDULING.
3854
3855 2008-09-01  Andreas Schwab  <schwab@suse.de>
3856
3857         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
3858
3859 2008-09-01  Paul Brook  <paul@codesourcery.com>
3860
3861         * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
3862
3863 2008-09-01  Jan Hubicka  <jh@suse.cz>
3864
3865         * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
3866
3867         * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
3868         Pass speed operand.
3869         * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
3870         * gimplify.c (gimplify_init_constructor): Add speed operand.
3871         * tree-sra.c (decide_block_copy): Likewise.
3872         * tree-inline.c (estimate_move_cost): Likewise.
3873         * config/alpha/alpha.h (MOVE_RATIO): Update.
3874         * config/frv/frv.c (MOVE_RATIO): Update.
3875         * config/spu/spu.h (MOVE_RATIO): Update.
3876         * config/sparc/sparc.h (MOVE_RATIO): Update.
3877         * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
3878         * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
3879         * config/cris/cris.h (MOVE_RATIO): Update.
3880         * config/mn10300/mn10300.h (MOVE_RATIO): Update.
3881         * config/arm/arm.h (MOVE_RATIO): Update.
3882         * config/pa/pa.md: Update uses of MOVE_RATIO
3883         * config/pa/pa.h (MOVE_RATIO): Update.
3884         * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
3885         CLEAR_RATIO, SET_RATIO): Update.
3886         * config/h8300/h8300.h (MOVE_RATIO): Update.
3887         * config/v850/v850.h (MOVE_RATIO): Update.
3888         * config/bfin/bfin.h (MOVE_RATIO): Update.
3889
3890 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
3891             Dmitry Melnik  <dm@ispras.ru>
3892             Dmitry Zhurikhin  <zhur@ispras.ru>
3893             Alexander Monakov  <amonakov@ispras.ru>
3894             Maxim Kuvyrkov  <maxim@codesourcery.com>
3895
3896         * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
3897         sel-sched-dump.c, sel-sched-ir.c: New files.
3898         * Makefile.in (OBJS-common): Add selective scheduling object files.
3899         (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
3900         (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
3901         (sched-vis.o): Add dependency on $(INSN_ATTR_H).
3902         * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
3903         * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
3904         (make_forwarder_block): Update loop latch if we have redirected
3905         the loop latch edge.
3906         * cfgloop.c (get_loop_body_in_custom_order): New function.
3907         * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
3908         (CP_FALLTHRU_PREHEADERS): Likewise.
3909         (get_loop_body_in_custom_order): Declare.
3910         * cfgloopmanip.c (has_preds_from_loop): New.
3911         (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
3912         Assert that the preheader edge will be fall thru when it is set.
3913         * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
3914         fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
3915         fsel-sched-substitution, fselective-scheduling): New flags.
3916         * cse.c (hash_rtx_cb): New.
3917         (hash_rtx): Use it.
3918         * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
3919         sel_sched_insn_cnt): New counters.
3920         * final.c (compute_alignments): Export.  Free dominance
3921         info after loop_optimizer_finalize.
3922         * genattr.c (main): Output maximal_insn_latency prototype.
3923         * genautomata.c (output_default_latencies): New.
3924         Factor its code from ...
3925         (output_internal_insn_latency_func): ... here.
3926         (output_internal_maximal_insn_latency_func): New.
3927         (output_maximal_insn_latency_func): New.
3928         * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
3929         (struct hard_reg_set_iterator): New.
3930         (hard_reg_set_iter_init, hard_reg_set_iter_set,
3931         hard_reg_set_iter_next): New functions.
3932         (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
3933         * lists.c (remove_free_INSN_LIST_node,
3934         remove_free_EXPR_LIST_node): New functions.
3935         * loop-init.c (loop_optimizer_init): When
3936         LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
3937         calling create_preheaders.
3938         (loop_optimizer_finalize): Do not verify flow info after reload.
3939         * recog.c (validate_replace_rtx_1): New parameter simplify.
3940         Default it to true.  Update all uses.  Factor out simplifying
3941         code to ...
3942         (simplify_while_replacing): ... this new function.
3943         (validate_replace_rtx_part,
3944         validate_replace_rtx_part_nosimplify): New.
3945         * recog.h (validate_replace_rtx_part,
3946         validate_replace_rtx_part_nosimplify): Declare.
3947         * rtl.c (rtx_equal_p_cb): New.
3948         (rtx_equal_p): Use it.
3949         * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
3950         (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
3951         debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
3952         * vecprim.h: Add a vector type for unsigned int.
3953         * haifa-sched.c: Include vecprim.h and cfgloop.h.
3954         (issue_rate, sched_verbose_param, note_list, dfa_state_size,
3955         ready_try, cycle_issued_insns, spec_info): Make global.
3956         (readyp): Initialize.
3957         (dfa_lookahead): New global variable.
3958         (old_max_uid, old_last_basic_block): Remove.
3959         (h_i_d): Make it a vector.
3960         (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
3961         through HID macro.
3962         (after_recovery, adding_bb_to_current_region_p):
3963         New variables to handle correct insertion of the recovery code.
3964         (struct ready_list): Move declaration to sched-int.h.
3965         (rgn_n_insns): Removed.
3966         (rtx_vec_t): Move to sched-int.h.
3967         (find_insn_reg_weight): Remove.
3968         (find_insn_reg_weight1): Rename to find_insn_reg_weight.
3969         (haifa_init_h_i_d, haifa_finish_h_i_d):
3970         New functions to initialize / finalize haifa instruction data.
3971         (extend_h_i_d, init_h_i_d): Rewrite.
3972         (unlink_other_notes): Move logic to add_to_note_list.  Handle
3973         selective scheduler.
3974         (ready_lastpos, ready_element, ready_sort, reemit_notes,
3975         find_fallthru_edge): Make global, remove static prototypes.
3976         (max_issue): Make global.  Add privileged_n and state parameters.  Use
3977         them.
3978         (extend_global, extend_all): Removed.
3979         (init_before_recovery): Add new param.  Fix the handling of the case
3980         when we insert a recovery code before the EXIT which has a predecessor
3981         with a fallthrough edge to it.
3982         (create_recovery_block): Make global.  Rename to
3983         sched_create_recovery_block.  Update.
3984         (change_pattern): Rename to sched_change_pattern.  Make global.
3985         (speculate_insn): Rename to sched_speculate_insn.  Make global.
3986         Split haifa-specific functionality into ...
3987         (haifa_change_pattern): New static function.
3988         (sched_extend_bb): New static function.
3989         (sched_init_bbs): New function.
3990         (current_sched_info): Change type to struct haifa_sched_info.
3991         (insn_cost): Adjust for selective scheduling.
3992         (dep_cost_1): New function.  Move logic from ...
3993         (dep_cost): ... here.
3994         (dep_cost): Use dep_cost_1.
3995         (contributes_to_priority_p): Use sched_deps_info instead of
3996         current_sched_info.
3997         (priority): Adjust to work with selective scheduling.  Process the
3998         corner case when all dependencies don't contribute to priority.
3999         (rank_for_schedule): Use ds_weak instead of dep_weak.
4000         (advance_state): New function.  Move logic from ...
4001         (advance_one_cycle): ... here.
4002         (add_to_note_list, concat_note_lists): New functions.
4003         (rm_other_notes): Make static.  Adjust for selective scheduling.
4004         (remove_notes, restore_other_notes): New functions.
4005         (move_insn): Add two arguments.  Update assert.  Don't call
4006         reemit_notes.
4007         (choose_ready): Remove lookahead variable, use dfa_lookahead.
4008         Remove more_issue, max_points.  Move the code to initialize
4009         max_lookahead_tries to max_issue.
4010         (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
4011         ready.  Adjust use of move_insn.  Call restore_other_notes.
4012         (luid): Remove.
4013         (sched_init, sched_finish): Move Haifa-specific initialization/
4014         finalization to ...
4015         (haifa_sched_init, haifa_sched_finish): ... respectively.
4016         New functions.
4017         (setup_sched_dump): New function.
4018         (haifa_init_only_bb): New static function.
4019         (haifa_speculate_insn): New static function.
4020         (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
4021         (extend_ready, extend_all): Remove.
4022         (sched_extend_ready_list, sched_finish_ready_list): New functions.
4023         (create_check_block_twin, add_to_speculative_block): Use
4024         haifa_insns_init instead of extend_global.  Update to use new
4025         initialization functions.  Change parameter.  Factor out code from
4026         create_check_block_twin to ...
4027         (sched_create_recovery_edges) ... this new function.
4028         (add_block): Remove.
4029         (sched_scan_info): New.
4030         (extend_bb): Use sched_scan_info.
4031         (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
4032         static functions for walking through scheduling region.
4033         (sched_luids): New vector variable to replace uid_to_luid.
4034         (luids_extend_insn): New function.
4035         (sched_max_luid): New variable.
4036         (luids_init_insn): New function.
4037         (sched_init_luids, sched_finish_luids): New functions.
4038         (insn_luid): New debug function.
4039         (sched_extend_target): New function.
4040         (haifa_init_insn): New static function.
4041         (sched_init_only_bb): New hook.
4042         (sched_split_block): New hook.
4043         (sched_split_block_1): New function.
4044         (sched_create_empty_bb): New hook.
4045         (sched_create_empty_bb_1): New function.
4046         (common_sched_info, ready): New global variables.
4047         (current_sched_info_var): Remove.
4048         (move_block_after_check): Use common_sched_info.
4049         (haifa_luid_for_non_insn): New static function.
4050         (init_before_recovery): Use haifa_init_only_bb instead of add_block.
4051         (increase_insn_priority): New.
4052         * modulo-sched.c: (issue_rate): Remove static declaration.
4053         (sms_sched_info): Change type to haifa_sched_info.
4054         (sms_sched_deps_info, sms_common_sched_info): New variables.
4055         (setup_sched_infos): New.
4056         (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
4057         Do not call regstat_free_calls_crossed.
4058         (sms_print_insn): Use const_rtx.
4059         * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
4060         PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
4061         PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
4062         PARAM_SCHED_MEM_TRUE_DEP_COST): New.
4063         * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
4064         current_sched_info to use it.
4065         (enum reg_pending_barrier_mode): Move to sched-int.h.
4066         (h_d_i_d): New variable. Initialize to NULL.
4067         ({true, output, anti, spec, forward}_dependency_cache): Initialize
4068         to NULL.
4069         (estimate_dep_weak): Remove static declaration.
4070         (sched_has_condition_p): New function.  Adjust users of
4071         sched_get_condition to use it instead.
4072         (conditions_mutex_p): Add arguments indicating which conditions are
4073         reversed.  Use them.
4074         (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
4075         argument to indicate whether returned condition is reversed.  Do not
4076         generate new rtx when condition should be reversed; indicate it by
4077         setting new argument instead.
4078         (add_dependence_list_and_free): Add deps parameter.
4079         Update all users.  Do not free dependence list when
4080         deps context is readonly.
4081         (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
4082         contexts.
4083         (remove_from_dependence_list, remove_from_both_dependence_lists): New.
4084         (remove_from_deps): New. Use the above functions.
4085         (cur_insn, can_start_lhs_rhs_p): New static variables.
4086         (add_or_update_back_dep_1): Initialize present_dep_type.
4087         (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
4088         haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
4089         haifa_note_dep): New functions implementing dependence hooks for
4090         the Haifa scheduler.
4091         (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
4092         note_dep): New functions.
4093         (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
4094         functions.
4095         (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
4096         (free_deps): Initialize deps->reg_last.
4097         (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
4098         sched_analyze_insn): Update to use dependency hooks infrastructure
4099         and readonly contexts.
4100         (deps_analyze_insn): New function.  Move part of logic from ...
4101         (sched_analyze): ... here.  Also move some logic to ...
4102         (deps_start_bb): ... here.  New function.
4103         (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
4104         sel_sched_p.
4105         (sched_deps_init): New function.  Move code from ...
4106         (init_dependency_caches): ... here.  Remove.
4107         (init_deps_data_vector): New.
4108         (sched_deps_finish): New function.  Move code from ...
4109         (free_dependency_caches): ... here.  Remove.
4110         (init_deps_global, finish_deps_global): Adjust for use with
4111         selective scheduling.
4112         (get_dep_weak): Move logic to ...
4113         (get_dep_weak_1): New function.
4114         (ds_merge): Move logic to ...
4115         (ds_merge_1): New static function.
4116         (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
4117         (ds_get_max_dep_weak): New function.
4118         * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
4119         (n_insns): Rename to rgn_n_insns.
4120         (debug_ebb_dependencies): New function.
4121         (init_ready_list): Use it.
4122         (begin_schedule_ready): Use sched_init_only_bb.
4123         (ebb_print_insn): Indicate when an insn starts a new cycle.
4124         (contributes_to_priority, compute_jump_reg_dependencies,
4125         add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
4126         (add_block1): Remove to ebb_add_block.
4127         (ebb_sched_deps_info, ebb_common_sched_info): New variables.
4128         (schedule_ebb): Initialize them.  Use remove_notes instead of
4129         rm_other_notes.  Use haifa_local_init/finish.
4130         (schedule_ebbs): Use haifa_sched_init/finish.
4131         * sched-int.h: Include vecprim.h, remove rtl.h.
4132         (struct ready_list): Delete declaration.
4133         (sched_verbose_param, enum sched_pass_id_t,
4134         bb_vec_t, insn_vec_t, rtx_vec_t): New.
4135         (struct sched_scan_info_def): New structure.
4136         (sched_scan_info, sched_scan, sched_init_bbs,
4137         sched_init_luids, sched_finish_luids, sched_extend_target,
4138         haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
4139         (struct common_sched_info_def): New.
4140         (common_sched_info, haifa_common_sched_info,
4141         sched_emulate_haifa_p): Declare.
4142         (sel_sched_p): New.
4143         (sched_luids): Declare.
4144         (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
4145         (sched_max_luid, insn_luid): Declare.
4146         (note_list, remove_notes, restore_other_notes, bb_note): Declare.
4147         (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
4148         print_insn, print_pattern, print_value, haifa_classify_insn,
4149         sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
4150         setup_sched_dump, sched_init, sched_finish,
4151         sel_insn_is_speculation_check): Export.
4152         (struct ready_list): Move from haifa-sched.c.
4153         (ready_try, ready, max_issue): Export.
4154         (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
4155         sched_init_only_bb, sched_split_block, sched_split_block_1,
4156         sched_create_empty_bb, sched_create_empty_bb_1,
4157         sched_create_recovery_block, sched_create_recovery_edges): Export.
4158         (enum reg_pending_barrier_mode): Export.
4159         (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
4160         (deps_t): New.
4161         (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
4162         print_insn field.  Move add_block and fix_recovery_cfg to
4163         common_sched_info_def.  Move compute_jump_reg_dependencies,
4164         use_cselib  ...
4165         (struct sched_deps_info_def): ... this new structure.
4166         (sched_deps_info): Declare.
4167         (struct spec_info_def): Remove weakness_cutoff, add
4168         data_weakness_cutoff and control_weakness_cutoff.
4169         (spec_info): Declare.
4170         (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
4171         dep_count field.
4172         (struct haifa_insn_data): Rename to struct _haifa_insn_data.
4173         (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
4174         (current_sched_info): Change type to struct haifa_sched_info.
4175         (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
4176         (h_d_i_d): New variable.
4177         (HDID): New accessor macro.
4178         (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
4179         (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
4180         and HDID.
4181         (IS_SPECULATION_CHECK_P): Update for selective scheduler.
4182         (enum SCHED_FLAGS): Update for selective scheduler.
4183         (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
4184         (init_dependency_caches, free_dependency_caches): Delete declarations.
4185         (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
4186         estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
4187         ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
4188         sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
4189         haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
4190         ds_to_dt): Export.
4191         (rm_other_notes): Delete declaration.
4192         (schedule_block): Remove one argument.
4193         (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
4194         ready_element, ready_lastpos, sched_extend_ready_list,
4195         sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
4196         concat_note_lists): Export.
4197         (struct region): Move from sched-rgn.h.
4198         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
4199         RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
4200         BLOCK_TO_BB, CONTAINING_RGN): Export.
4201         (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
4202         (current_nr_blocks, current_blocks, target_bb): Likewise.
4203         (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
4204         sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
4205         sched_rgn_local_init, extend_regions,
4206         rgn_make_new_region_out_of_new_block, compute_priorities,
4207         debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
4208         extend_rgns, deps_join rgn_setup_common_sched_info,
4209         rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
4210         dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
4211         (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
4212         increase_insn_priority): Likewise.
4213         * sched-rgn.c: Include sel-sched.h.
4214         (ref_counts): New static variable.  Use it ...
4215         (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
4216         (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
4217         (sched_is_disabled_for_current_region_p): Delete static declaration.
4218         (struct region): Move to sched-int.h.
4219         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
4220         ebb_head): Define and initialize.
4221         (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
4222         BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
4223         BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
4224         sched-int.h.
4225         (find_single_block_region): Add new argument to indicate that EBB
4226         regions should be constructed.
4227         (debug_live): Delete declaration.
4228         (current_nr_blocks, current_blocks, target_bb):
4229         Remove static qualifiers.
4230         (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
4231         declaration.
4232         (init_regions): Delete declaration.
4233         (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
4234         rgn_estimate_number_of_insns): New.
4235         (too_large): Use estimate_number_of_insns.
4236         (haifa_find_rgns): New. Move the code from ...
4237         (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
4238         (free_trg_info): New.
4239         (compute_trg_info): Allocate candidate tables here instead of ...
4240         (init_ready_list): ... here.
4241         (rgn_print_insn): Use const_rtx.
4242         (contributes_to_priority, extend_regions): Delete static declaration.
4243         (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
4244         (add_block1): Rename to rgn_add_block.
4245         (debug_rgn_dependencies): Delete static qualifier.
4246         (new_ready): Use sched_deps_info.  Simplify.
4247         (rgn_common_sched_info, rgn_const_sched_deps_info,
4248         rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
4249         New.
4250         (region_sched_info): Rename to rgn_const_sched_info.
4251         (deps_join): New, extracted from ...
4252         (propagate_deps): ... here.
4253         (compute_block_dependences, debug_dependencies): Update for selective
4254         scheduling.
4255         (free_rgn_deps, compute_priorities): New functions.
4256         (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
4257         sched_rgn_compute_dependencies): New functions.
4258         (schedule_region): Use them.
4259         (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
4260         rgn_setup_common_sched_info, rgn_setup_sched_infos):
4261         New functions.
4262         (schedule_insns): Call new functions that were split out.
4263         (rgn_make_new_region_out_of_new_block): New.
4264         (get_rgn_sched_max_insns_priority): New.
4265         (rest_of_handle_sched, rest_of_handle_sched2): Call selective
4266         scheduling when appropriate.
4267         * sched-vis.c: Include insn-attr.h.
4268         (print_value, print_pattern): Make global.
4269         (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
4270         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
4271         TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
4272         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
4273         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
4274         TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
4275         hooks.  Initialize them to 0.
4276         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
4277         * target.h (struct gcc_target): Add them.  Rename gen_check field to
4278         gen_spec_check.
4279         * flags.h (sel_sched_switch_set): Declare.
4280         * opts.c (sel_sched_switch_set): New variable.
4281         (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
4282         pipelining is disabled from command line.
4283         (common_handle_option): Record whether selective scheduling is
4284         requested from command line.
4285         * doc/invoke.texi: Document new flags and parameters.
4286         * doc/tm.texi: Document new target hooks.
4287         * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
4288         ia64_gen_check.
4289         (dfa_state_size): Do not declare locally.
4290         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
4291         * config/rs6000/rs6000.c (rs6000_init_sched_context,
4292         rs6000_alloc_sched_context, rs6000_set_sched_context,
4293         rs6000_free_sched_context): New functions.
4294         (struct _rs6000_sched_context): New.
4295         (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
4296         scheduling.
4297         (rs6000_sched_finish): Do not run for selective scheduling.
4298
4299 2008-08-31  Jan Hubicka  <jh@suse.cz>
4300
4301         * frv.c (frv_rtx_costs): Update forward declaration.
4302         * spu.c (spu_rtx_costs): Likewise.
4303         * pdp11.c: Include df.h
4304         (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
4305         * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
4306         (m68hc11_rtx_costs_1): Fix call of rtx_cost.
4307         * iq2000.c (iq2000_address_cost): Add speed argument.
4308         (iq2000_rtx_costs): Likewise.
4309         * mn10300.c (mn10300_address_cost_1): Remove speed argument;
4310         update call of mn10300_address_cost.
4311         * mcore.c: Include df.h
4312         (mcore_rtx_costs): Update prototype.
4313         * score3.c: Include df.h
4314         (score3_rtx_costs): Remove speed argument.
4315         * score7.c: Include df.h
4316         (score7_address_cost): Remove speed argument.
4317         * score-protos.h (score_address_cost): Update prototype.
4318         * score.c: Include df.h
4319         (score_rtx_costs): Update call of costs functions.
4320         * v850.c (v850_rtx_costs): Add bool argument.
4321
4322 2008-08-31  Hans-Peter Nilsson  <hp@axis.com>
4323
4324         * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
4325
4326 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4327
4328         * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
4329         * config/i386/gthr-win32.c (__gthread_setspecific): Same.
4330
4331 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
4332
4333         * mkmap-flat.awk: Add option pe_dll.
4334         * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
4335         * config/i386/t-cygwin (SHLIB_LC): Add.
4336         * config/i386/t-mingw32 (SHLIB_LC): Add.
4337         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
4338         (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
4339         (LINK_SPEC): Support libgcc_s.
4340         (LIBGCC_SPEC): Support libgcc_s.
4341         (LIBGCC_SONAME): New.
4342
4343 2008-08-31  Jan Hubicka  <jh@suse.cz>
4344
4345         * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
4346         mistakely had old version of patch.
4347
4348         * ipa-cp.c (ipcp_need_original_clone_p): Remove.
4349         (ipcp_estimate_growth): New.
4350         (ipcp_insert_stage): Use ipcp_estimate_growth.
4351         * profile.c (branch_prob): When reading failed, do not consider
4352         profile as read.
4353
4354 2008-08-31  Jan Hubicka  <jh@suse.cz>
4355
4356         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
4357         loop is optimized for speed.
4358
4359 2008-08-31  Richard Guenther  <rguenther@suse.de>
4360
4361         PR middle-end/37289
4362         * fold-const.c (fold_binary): Retain conversions in folding
4363         ~A + 1 to -A.
4364
4365 2008-08-31  Jan Hubicka  <jh@suse.cz>
4366
4367         * postreload-gcse.c (eliminate_partially_redundant_loads):
4368         Use optimize_bb_for_size_p.
4369         * predict.c (maybe_hot_frequency_p): Make inline.
4370         (maybe_hot_count_p): Break out from ...
4371         (maybe_hot_bb_p): ... this one.
4372         (maybe_hot_edge_p): Simplify.
4373         * basic-block.h (probably_cold_bb_p): Remove.
4374
4375 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
4376
4377         PR target/37168
4378         * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
4379         prototype.
4380         * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
4381         * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
4382         Also split V4SFmode.
4383         * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
4384         vector float modes.
4385
4386 2008-08-31  Jan Hubicka  <jh@suse.cz>
4387
4388         * predict.c (PROB_VERY_LIKELY): Make small enough so things
4389         become cold.
4390         * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
4391
4392 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
4393
4394         PR debug/37287
4395         * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
4396         add source coords.
4397
4398         * dwarf2out.c (native_encode_initializer): Subtract min_index for
4399         non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
4400
4401 2008-08-31  Jan Hubicka  <jh@suse.cz>
4402
4403         * sparc.h (BRANCH_COST): Fix macro definition.
4404         * avr.c (avr_operand_rtx_cost): Add speed argument.
4405         (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
4406
4407 2008-08-31  Richard Guenther  <rguenther@suse.de>
4408
4409         * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
4410         types instead of operands.  Re-instantiate verifying of
4411         binary expression operands.
4412
4413 2008-08-30  Jan Hubicka  <jh@suse.cz>
4414
4415         * fwprop.c (should_replace_address): Add speed attribute.
4416         (PR_OPTIMIZE_FOR_SPEED): New flag.
4417         (propagate_rtx_1): Use it.
4418         (propagate_rtx): Set it.
4419         (try_fwprop_subst): Update call of rtx_costs.
4420         (forward_propagate_and_simplify): LIkewise.
4421         * hooks.c (hook_int_rtx_bool_0): New
4422         (hook_bool_rtx_int_int_intp_false): Replace by ...
4423         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
4424         * hooks.h (hook_int_rtx_bool_0): New
4425         (hook_bool_rtx_int_int_intp_false): Replace by ...
4426         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
4427         * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
4428         (prepare_cmp_insn): UPdate call of rtx_cost.
4429         * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
4430         (reload_cse_simplify_operands): Update call of rtx_cost.
4431         (reload_cse_move2add): call of rtx_cost.
4432         * target.h (struct gcc_target): Update rtx_costs and address_costs.
4433         * rtlanal.c (rtx_cost): Add speed argument.
4434         (address_cost): Add speed argument
4435         (default_address_cost): Likewise.
4436         (insn_rtx_cost): Likewise.
4437         * cfgloopanal.c (seq_cost): Add speed argument.
4438         (target_reg_cost, target_spill_cost): Turn to array.
4439         (init_set_costs): Update for speed.
4440         (estimate_reg_pressure_cost): Add speed argument.
4441         * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
4442         * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
4443         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
4444         (seq_cost): Add speed argument.
4445         (computation_cost): Add speed arugment.
4446         (add_cost, multiply_by_const, get_address_cost): add speed argument.
4447         (force_expr_to_var_cost): Update for profile info.
4448         (force_var_cost): Likewise.
4449         (split_address_cost): Likewise.
4450         (ptr_difference_cost): Likewise.
4451         (difference_cost): Likewise.
4452         (get_computation_cost_at): Likewise.
4453         (determine_iv_cost): Likewise.
4454         (ivopts_global_cost_for_size): Likewise.
4455         (rewrite_use_address): Likewise.
4456         (tree_ssa_iv_optimize_loop): Initialize speed field.
4457         * cse.c (optimize_this_for_speed_p): New static var.
4458         (notreg_cost): Update call of rtx_cost.
4459         (cse_extended_basic_block): set optimize_this_for_speed_p.
4460         * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
4461         (noce_try_cmove_arith): Likewise.
4462         (noce_try_sign_mask): LIkewise.
4463         * expr.c (compress_float_constant): Update rtx_cost calls.
4464         * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
4465         argument.
4466         (addr_to_parts): Likewise.
4467         (create_mem_ref): Likewise.
4468         * dse.c (find_shift_sequence): Add speed argument.
4469         (replace_read): Update call.
4470         * calls.c (precompute_register_parameters): Update call of rtx_cost.
4471         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
4472         * neg_cost, shift_cost, shiftadd_cost,
4473         shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
4474         mul_highpart_cost): Increase dimension.
4475         (init_expmed): Initialize for both size and speed.
4476         (expand_shift): Use profile.
4477         (synth_mult): Use profile.
4478         (choose_mult_variant): Use profile.
4479         (expand_mult): Use profile.
4480         (expand_mult_highpart_optab): Use profile.
4481         (expand_mult_highpart): Use profile.
4482         (expand_smod_pow2): Use profile.
4483         (expand_divmod): Use profile.
4484         * simplify-rtx.c (simplify_binary_operation_1): Update call of
4485         rtx_cost.
4486         * loop-invariant.c (create_new_invariant): Use profile.
4487         (gain_for_invariant): Add speed parameter.
4488         (best_gain_for_invariant): Likewise.
4489         (find_invariants_to_move): Likewise.
4490         (move_single_loop_invariants): Set it.
4491         * target-def.h (TARGET_RTX_COSTS): Use hook.
4492         * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
4493         (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
4494         * output.h (default_address_cost): Update prototype.
4495         * combine.c (optimize_this_for_speed_p): New static var.
4496         (combine_validate_cost): Update call of rtx_cost.
4497         (combine_instructions): Set optimize_this_for_speed_p.
4498         (expand_compound_operation): Update call of rtx_cost.
4499         (make_extraction):Update call of rtx_cost.
4500         (force_to_mode):Update call of rtx_cost.
4501         (distribute_and_simplify_rtx):Update call of rtx_cost.
4502         * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
4503         (estimate_reg_pressure_cost): Update prototype.
4504         * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
4505         * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
4506         Remove.
4507         * config/alpha/alpha.c (alpha_rtx_costs): Update.
4508         (alpha_rtx_costs): Update.
4509         * config/frv/frv.c (frv_rtx_costs): Update.
4510         * config/s390/s390.c (s390_rtx_costs): Update.
4511         * config/m32c/m32c.c (m32c_memory_move_cost): Update.
4512         (m32c_rtx_costs): Update.
4513         * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
4514         (spu_rtx_costs): Update.
4515         * config/sparc/sparc.c (sparc_rtx_costs): Update.
4516         * config/m32r/m32r.c (m32r_rtx_costs): Update.
4517         * config/i386/i386.c (:ix86_address_cost): Update.
4518         (ix86_rtx_costs): Update.
4519         * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
4520         * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
4521         * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
4522         * config/crx/crx.c (crx_address_cost): Update.
4523         * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
4524         * config/stormy16/stormy16.c
4525         (xstormy16_address_cost, xstormy16_rtx_costs): Update.
4526         * config/m68hc11/m68hc11.c
4527         (m68hc11_address_cost, m68hc11_rtx_costs): Update.
4528         * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
4529         * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
4530         Update.
4531         * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
4532         Update
4533         * config/ia64/ia64.c (ia64_rtx_costs): Update.
4534         * config/m68k/m68k.c (m68k_rtx_costs): Update.
4535         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
4536         * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
4537         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
4538         (mcore_rtx_costs): update.
4539         * config/score/score3.c (score3_rtx_costs): Update.
4540         * config/score/score7.c (score7_rtx_costs): Update.
4541         * config/score/score3.h (score3_rtx_costs):Update.
4542         * config/score/score7.h (score7_rtx_costs): Update.
4543         * config/score/score.c (score_rtx_costs): Update.
4544         * config/arm/arm.c (arm_address_cost): Update.
4545         (arm_rtx_costs_1): Update.
4546         (arm_rtx_costs_1): Update.
4547         (arm_size_rtx_costs): Update.
4548         (arm_size_rtx_costs): Update.
4549         (arm_size_rtx_costs): Update.
4550         (arm_xscale_rtx_costs): Update.
4551         (arm_thumb_address_cost): Update.
4552         * config/pa/pa.c (hppa_address_cost): Update.
4553         * config/mips/mips.c (mips_rtx_costs): Update.
4554         * config/vax/vax.c (vax_address_cost): Update.
4555         * config/h8300/h8300.c (h8300_shift_costs): Update.
4556         (h8300_rtx_costs): Update.
4557         * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
4558         (v850_rtx_costs): Update.
4559         * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
4560         * config/bfin/bfin.c
4561         (bfin_address_cost): Update.
4562         (bfin_rtx_costs): Update.
4563         * stmt.c (lshift_cheap_p): Update.
4564
4565 2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4566
4567         PR middle-end/36444
4568         * expmed.c (extract_bit_field_1): Check the mode size to make
4569         sure the vector modes have the same size.
4570
4571 2008-08-29  Michael Meissner  <gnu@the-meissners.org>
4572
4573         * dojump.c (top level): Include basic-block.h to declare
4574         optimize_insn_for_speed_p
4575
4576         * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
4577
4578         * opts.h (CL_SAVE): New option class for marking options that are
4579         target specific options usable in the target attribute.
4580         (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
4581
4582         * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
4583         can easily find the target specific options that are safe to use
4584         in the attribute or pragma.
4585
4586         * attribs.c (decl_attributes): Change #pragma GCC option to
4587         #pragma GCC target, and attribute((option(...))) to
4588         attribute((target(...))).
4589
4590         * doc/extend.texi (target attribute): Change from option
4591         attribute.  Delete push/pop/reset.
4592         (#pragma GCC target): Change from #pragma GCC option.  Delete
4593         push/pop/reset.
4594         (#pragma GCC push_options): Document new pragma.
4595         (#pragma GCC pop_options): Document new pragma.
4596         (#pragma GCC reset_options): Document new pragma.
4597
4598         * targhooks.c (default_target_option_valid_attribute_p): Add
4599         warning about port not supporting target attributes.
4600         (default_target_option_pragma_parse): New function, warn about
4601         #pragma GCC target not being supported.
4602
4603         * targhooks.h (default_target_option_pragma_parse): Add
4604         declaration.
4605
4606         * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
4607         TI_CURRENT_OPTION_PRAGMA.
4608         (current_target_pragma): Rename from current_option_pragma.
4609
4610         * target.h: (struct target_option): Delete booleans for changing
4611         the optimization level on hot/cold functions.  Change signature of
4612         pragma_parse hook to take a second tree.
4613
4614         * c-tree.h (c_builtin_function_ext_scope): Add declaration.
4615
4616         * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
4617         that the declaration is done at global scope.
4618
4619         * langhooks.c (add_builtin_function_common): Move most of the code
4620         from add_builtin_function here, calling the hook passed in.
4621         (add_builtin_function): Call add_builtin_function_common with
4622         standard builtin hook.
4623         (add_builtin_function_ext_scope): New function to add builtins to
4624         global scope.
4625
4626         * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
4627         hook.
4628         (add_builtin_function_ext_scope): Add declaration.
4629
4630         * c-pragma.c (handle_pragma_target): Rename from
4631         handle_pragma_option, #pragma GCC option is now #pragma GCC
4632         target.  Move warning about port not supporting target options to
4633         default pragma parse hook.  Remove push/pop/reset from this
4634         pragma.
4635         (handle_pragma_optimize): Remove push/pop/reset from this pragma.
4636         (option_stack): Delete static variable.
4637         (optimize_stack): Ditto.
4638         (optons_stack): New stack of saved target and optimization
4639         options.
4640         (handle_pragma_push_options): New function to handle pushing both
4641         target and optimization options.
4642         (handle_pragma_pop_options): New function to handle popping both
4643         target and optimization options.
4644         (handle_pragma_reset_options): New function to handle resetting
4645         both target and optimization options to their initial state.
4646         (init_pragma): Rename handle_pragma_option to
4647         handle_pragma_target.  Add support for push_options, pop_options,
4648         and reset_options pragmas.
4649
4650         * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
4651         default_target_option_pragma_parse.
4652         (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
4653         default_target_option_valid_attribute_p.
4654         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
4655         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
4656         (TARGET_OPTION_HOOKS): Delete the fields for whether to change
4657         optimization level on hot/cold functions.
4658
4659         * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
4660         if the caller and callee have different optimization levels.
4661
4662         * c-common.c (handle_target_attribute): Rename from
4663         handle_option_attribute, attribute((option(...))) is now
4664         attribute((target(...))).  Move warning if the port does not
4665         support target attributes to the default hook.
4666         (handle_hot_attribute): Delete code to change the optimization
4667         level of hot functions.
4668         (handle_cold_attribute): Ditto.
4669
4670         * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
4671         argument that is the binary tree options to use if there are no
4672         arguments.  Call ix86_valid_target_attribute_tree instead of
4673         ix86_valid_option_attribute_tree.
4674         (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
4675         (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
4676         ix86_pragma_option_parse.
4677
4678         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
4679         Rename from ix86_valid_option_attribute_tree.
4680
4681         * config/i386/i386.c (ix86_add_new_builtins): New function to add
4682         new builtins when the ISA changes.
4683         (ix86_valid_target_attribute_tree): Rename from
4684         ix86_valid_option_attribute_tree.  Change callers.  If the
4685         function specified optimization options, use those as the starting
4686         point before setting up the target attributes.  If the
4687         optimization options were changed in the course of setting the
4688         target attributes, record the new optimization options.
4689         (ix86_valid_target_attribute_tree_inner_p): Rename from
4690         ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
4691         ix86_add_new_builtins if the ISA changed.
4692         (ix86_valid_target_attribute_p): Rename from
4693         ix86_valid_option_attribute_p.  Change callers.
4694         (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
4695         __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
4696         as delayed builtin functions.
4697         (struct builtin_isa): New structure to record builtin functions
4698         that should be delayed until the ISA for that function is used.
4699         (ix86_builtins_isa): Change from int to struct to track builtin
4700         functions we want to declare at some point.
4701         (def_builtin): If the front end can delay defining the builtin
4702         functions, don't create builtins for ISAs not part of the default
4703         options.
4704         (def_builtin_const): Ditto.
4705         (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
4706         __builtin_ia32_pcmov_v2di to be different builtin functions.
4707         (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
4708         a structure instead of an int.
4709         (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
4710         ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
4711         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
4712         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
4713
4714         * config/ia64/ia64.h
4715         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
4716         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
4717
4718         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
4719         hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
4720         (LANG_HOOKS_INITIALIZER): Add
4721         LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
4722
4723 2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
4724
4725         PR target/37270
4726         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
4727         the reload address with the index register for SFmode
4728         access with a displacement.
4729
4730 2008-08-30  Jan Hubicka  <jh@suse.cz>
4731
4732         * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
4733         * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
4734         * dojump.c (do_jump): Likewise.
4735         * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
4736         (note-if_info): Add BRANCH_COST.
4737         (noce_try_store_flag_constants, noce_try_addcc,
4738         noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
4739         noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
4740         find_if_case_2): Use computed branch cost.
4741         * expr.h (BRANCH_COST): Update default.
4742         * predict.c (predictable_edge_p): New function.
4743         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
4744         Update BRANCH_COST call.
4745         * basic-block.h (predictable_edge_p): Declare.
4746         * config/alpha/alpha.h (BRANCH_COST): Update.
4747         * config/frv/frv.h (BRANCH_COST): Update.
4748         * config/s390/s390.h (BRANCH_COST): Update.
4749         * config/spu/spu.h (BRANCH_COST): Update.
4750         * config/sparc/sparc.h (BRANCH_COST): Update.
4751         * config/m32r/m32r.h (BRANCH_COST): Update.
4752         * config/i386/i386.h (BRANCH_COST): Update.
4753         * config/i386/i386.c (ix86_expand_int_movcc): Update use of
4754         BRANCH_COST.
4755         * config/sh/sh.h (BRANCH_COST): Update.
4756         * config/pdp11/pdp11.h (BRANCH_COST): Update.
4757         * config/avr/avr.h (BRANCH_COST): Update.
4758         * config/crx/crx.h (BRANCH_COST): Update.
4759         * config/xtensa/xtensa.h (BRANCH_COST): Update.
4760         * config/stormy16/stormy16.h (BRANCH_COST): Update.
4761         * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
4762         * config/iq2000/iq2000.h (BRANCH_COST): Update.
4763         * config/ia64/ia64.h (BRANCH_COST): Update.
4764         * config/rs6000/rs6000.h (BRANCH_COST): Update.
4765         * config/arc/arc.h (BRANCH_COST): Update.
4766         * config/score/score.h (BRANCH_COST): Update.
4767         * config/arm/arm.h (BRANCH_COST): Update.
4768         * config/pa/pa.h (BRANCH_COST): Update.
4769         * config/mips/mips.h (BRANCH_COST): Update.
4770         * config/vax/vax.h (BRANCH_COST): Update.
4771         * config/h8300/h8300.h (BRANCH_COST): Update.
4772         * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
4773         * doc/invoke.texi (predictable-branch-cost-outcome): Document.
4774         * doc/tm.texi (BRANCH_COST): Update.
4775
4776 2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
4777
4778         PR target/37283
4779         * config/arm/arm.c (arm_optimization_options): Set
4780         flag_section_anchors to 2 instead of 1 to distinguish it from
4781         -fsection-anchors given explicitely on the command line.
4782
4783 2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
4784
4785         * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
4786         final insn of a split.
4787
4788 2008-08-30  Jan Hubicka  <jh@suse.cz>
4789
4790         * postreload-gcse.c (gate_handle_gcse2): Disable for functions
4791         optimized for speed.
4792         * final.c (compute_alignments): Use optimize_bb_for_size_p.
4793         * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
4794         * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
4795         flag_gcse_after_reload_set): New static vars.
4796         (common_handle_option): Enable those flags for profile-use.
4797         (decode_options): Remove optimize_size flags that are handled
4798         on higher granuality.
4799         * tree-vectorizer.c (vectorize_loops): Use
4800         optimize_loop_nest_for_speed_p.
4801         * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
4802         * tree-predcom.c (tree_predictive_commoning): Use
4803         optimize_loop_for_speed_p.
4804         * varasm.c (assemble_start_function): Use
4805         optimize_function_for_speed_p.
4806         * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
4807         * predict.c (optimize_loop_for_speed_p): Fix walk.
4808
4809 2008-08-30  Jan Hubicka  <jh@suse.cz>
4810
4811         * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
4812         functions.
4813         (cgraph_decide_inlining_of_small_function): Use edge->count to detect
4814         profile presence locally.
4815
4816 2008-08-29  Joseph Myers  <joseph@codesourcery.com>
4817
4818         PR bootstrap/37086
4819         * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
4820         versions before 4.0.
4821
4822 2008-08-29  Jan Hubicka  <jh@suse.cz>
4823
4824         * tree-inline.c (insert_init_stmt): Insert sequence even when
4825         not in SSA form.
4826
4827 2008-08-29  Jeff Law  <law@redhat.com>
4828
4829         * mn10300.c (mn10300_secondary_reload_class): We need secondary
4830         reloads for AM33-2 if IN is a pseudo with an equivalent memory
4831         location and class is an FP register.
4832
4833 2008-08-29  Jan Hubicka  <jh@suse.cz>
4834
4835         * see.c (see_merge_one_def_extension): Silence used uninitialized
4836         warning.
4837         * matrix-reorg.c (check_allocation_function): Likewise.
4838         * config/i386/driver-i386.c (detect_caches_amd): Likewise.
4839
4840 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
4841
4842         PR c/37261
4843         * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
4844         compute new & and | in type rather than TREE_TYPE (arg0).
4845
4846         * dwarf2out.c (fortran_common): Update comment.
4847         (gen_variable_die): Swap com_die and var_die variables in Fortran
4848         COMMON block handling code.
4849
4850         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
4851
4852         * dwarf2out.c (gen_const_die): New function.
4853         (size_of_die, value_format, output_die): Output larger
4854         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
4855         (native_encode_initializer): New function.
4856         (tree_add_const_value_attribute): Call it.
4857         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
4858
4859         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
4860         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
4861         TREE_THIS_VOLATILE to add_type_attribute.
4862
4863         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
4864         types.
4865         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
4866         types.
4867
4868         * dwarf2out.c (loc_by_reference): New function.
4869         (add_location_or_const_value_attribute): Use it.
4870
4871         PR fortran/23057
4872         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
4873         as DW_TAG_variable children of DW_TAG_common_block rather than
4874         DW_TAG_member children.  Put DW_AT_external to individual
4875         DW_TAG_variable DIEs, not to DW_TAG_common_block.
4876
4877         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
4878         loc_descriptor_from_tree_1.
4879
4880         PR fortran/29635
4881         PR fortran/23057
4882         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
4883         arguments to imported_module_or_decl.
4884         (debug_nothing_tree_tree): Removed.
4885         (debug_nothing_tree_tree_tree_bool): New prototype.
4886         * debug.c (do_nothing_debug_hooks): Adjust.
4887         (debug_nothing_tree_tree): Removed.
4888         (debug_nothing_tree_tree_tree_bool): New function.
4889         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
4890         (gen_variable_die): Put all common vars for the
4891         same COMMON block under one DW_TAG_common_block.
4892         (declare_in_namespace): Return new context_die, for Fortran
4893         return the module DIE instead of adding extra declarations into
4894         the namespace.
4895         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
4896         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
4897         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
4898         DW_AT_declaration.
4899         (dwarf2out_global_decl): Don't skip Fortran global vars.
4900         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
4901         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
4902         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
4903         DW_TAG_imported_declaration as child of previous
4904         DW_TAG_imported_module.
4905         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
4906         * sdbout.c (sdb_debug_hooks): Likewise.
4907         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4908
4909 2008-08-29  Jan Hubicka  <jh@suse.cz>
4910
4911         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
4912
4913         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
4914         * ipa-cp.c (n_cloning_candidates): New static variable.
4915         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
4916         (ipcp_print_all_lattices): Improve debug output.
4917         (ipcp_cloning_candidate_p): New function.
4918         (ipcp_initialize_node_lattices): Use it.
4919         (ipcp_init_stage): Do only analyzis here; prettier debug output.
4920         (ipcp_propagate_stage): Prettier debug output.
4921         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
4922         (ipcp_print_all_structures): Remove.
4923         (ipcp_need_redirect_p): Test !n_cloning_candidates.
4924         (ipcp_insert_stage): Prettier debug output; call
4925         cgraph_remove_unreachable_nodes before propagating.
4926         (pass_ipa_cp): Schedule function removal pass.
4927         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
4928         debug output.
4929         (cgraph_maybe_hot_edge_p): Move to ...
4930         * predict.c (cgraph_maybe_hot_edge_p) ... here.
4931         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
4932         (common_handle_option): Set them; enable ipa-cp when profiling.
4933         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
4934         (ipa_print_all_jump_functions): Likewise.
4935         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
4936         (ipa_print_node_params, ipa_print_all_params): New.
4937         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
4938         ipa_print_all_param_flags): Remove.
4939         (ipa_print_node_params, ipa_print_all_params): New.
4940
4941 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
4942
4943         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
4944         change from 2008-04-03.
4945         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
4946
4947 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
4948
4949         PR rtl-opt/37251
4950         * ira-color.c (push_allocnos_to_stack): Truncate
4951         removed_splay_allocno_vec.
4952
4953 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
4954
4955         PR rtl-opt/37243
4956         * ira-color (ira_fast_allocation): Don't assign hard registers to
4957         global allocnos.
4958
4959 2008-08-29  Jan Hubicka  <jh@suse.cz>
4960
4961         PR middle-end/37278
4962         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
4963         for cold internal loops.
4964
4965 2008-08-29  Richard Guenther  <rguenther@suse.de>
4966
4967         * tree-ssa-structalias.c (create_variable_info_for): Do not
4968         create fields for heap vars or vars with a noalias state.
4969         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
4970         from ESCAPED.
4971
4972 2008-08-29  Richard Guenther  <rguenther@suse.de>
4973
4974         * common.opt (ftree-store-ccp): Mark as preserved for
4975         backward compatibility.
4976         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
4977         * tree-pass.h (pass_store_ccp): Remove.
4978         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
4979         (first_vdef): Remove declaration.
4980         (get_value_loaded_by): Likewise.
4981         * tree-ssa-ccp.c (do_store_ccp): Remove.
4982         (get_default_value): Simplify as do_store_ccp is always false
4983         now.  Do not initialize mem_ref.
4984         (set_value_varying): Likewise.
4985         (canonicalize_float_value): Likewise.
4986         (set_lattice_value): Likewise.
4987         (likely_value): Likewise.
4988         (surely_varying_stmt_p): Likewise.
4989         (ccp_initialize): Likewise.
4990         (ccp_lattice_meet): Likewise.
4991         (ccp_visit_phi_node): Likewise.
4992         (ccp_fold): Likewise.
4993         (evaluate_stmt): Likewise.
4994         (visit_assignment): Likewise.
4995         (ccp_visit_stmt): Likewise.
4996         (execute_ssa_ccp): Fold into ...
4997         (do_ssa_ccp): ... this.
4998         (do_ssa_store_ccp): Remove.
4999         (gate_store_ccp): Likewise.
5000         (pass_store_ccp): Likewise.
5001         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
5002         initialize mem_ref.
5003         * tree-ssa-propagate.c (first_vdef): Remove.
5004         (get_value_loaded_by): Likewise.
5005         (replace_vuses_in): Likewise.
5006         (substitute_and_fold): Do not call replace_vuses_in.
5007         * opts.c (decode_options): Do not set flag_tree_store_ccp.
5008
5009 2008-08-29  Richard Guenther  <rguenther@suse.de>
5010
5011         PR middle-end/37236
5012         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
5013         PARAM_NOALIAS tags with is_heapvar.
5014         * tree-ssa-operands.c (access_can_touch_variable): Offset
5015         based tests do not apply for heapvars.  Fix offset test.
5016
5017 2008-08-29  Jan Hubicka  <jh@suse.cz>
5018
5019         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
5020         (-fipa-cp-clone): Enabled by default at -O3.
5021         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
5022         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
5023
5024 2008-08-29  Jan Hubicka  <jh@suse.cz>
5025
5026         * tree.c (build_function_type_skip_args,
5027         build_function_decl_skip_args): New functions.
5028         * tree.h (build_function_type_skip_args,
5029         build_function_decl_skip_args): Declare.
5030         * gimple.c (giple_copy_call_skip_args): New function.
5031         (giple_copy_call_skip_args): Declare.
5032
5033         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
5034         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
5035         (ipcp_node_modifiable_p): ... this one; use
5036         tree_versionable_function_p.
5037         (ipcp_create_replace_map): Improve debug output.
5038         (ipcp_need_redirect_p): Return false when not clonning.
5039         (ipcp_update_callgraph): Skip args.
5040         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
5041         skip args.
5042         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
5043         (save_inline_function_body): Update call of tree_function_versioning.
5044         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
5045         * tree-inline.c (copy_arguments_for_versioning): Add skip_args
5046         argument.
5047         (tree_function_versioning): Likewise.
5048         * tree-inline.h (tree_function_versioning): Update prototype.
5049
5050 2008-08-29  Jan Hubicka  <jh@suse.cz>
5051
5052         * loop-unswitch.c (unswitch_single_loop): Use
5053         optimize_loop_for_speed_p.
5054         * tree-ssa-threadupdate.c (mark_threaded_blocks):
5055         Use optimize_function_for_size_p.
5056         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
5057         * postreload-gcse.c (eliminate_partially_redundant_load):
5058         Use optimize_bb_for_size_p.
5059         * value-prof.c (gimple_divmod_fixed_value_transform,
5060         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
5061         gimple_stringops_transform): Use optimize_bb_for_size_p.
5062         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
5063         * final.c (compute_alignments): Use optimize_function_for_size_p.
5064         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
5065         (fold_builtin_strcpy, fold_builtin_fputs): Use
5066         optimize_function_for_size_p.
5067         * fold-const.c (tree_swap_operands_p): Use
5068         optimize_function_for_size_p.
5069         * recog.c (relax_delay_slots): Likewise.
5070         * tree-ssa-math-opts.c (replace_reciprocal):
5071         Use optimize_bb_for_speed_p.
5072         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
5073         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
5074         optimize_function_for_size_p.
5075         (cgraph_decide_inlining_of_small_function): Use
5076         optimize_function_for_size_p.
5077         * global.c (find_reg): Use optimize_function_for_size_p.
5078         * opts.c (decode_options): Do not clear flag_tree_ch,
5079         flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
5080         flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
5081         work it out from profile.
5082         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
5083         optimize_loop_for_speed_p.
5084         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5085         Constify argument.
5086         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
5087         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
5088         * tree-eh.c (decide_copy_try_finally): Use
5089         optimize_function_for_size_p.
5090         * local-alloc.c (block_alloc): Pass BB pointer.
5091         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
5092         * gcse.c (gcse_main): Use optimize_function_for_size_p.
5093         * loop-unroll.c (decide_unrolling_and_peeling):
5094         Use optimize_loop_for_size_p.
5095         (decide_peel_completely): Likewise.
5096         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
5097         optimize_loop_for_size_p.
5098         (vect_enhance_data_refs_alignment): Likewise.
5099         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
5100         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
5101         Update call.
5102         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
5103         (try_crossjump_bb): Use optimize_bb_for_size_p.
5104         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
5105         optimize_loop_for_speed_p.
5106         * bb-reorder.c (find_traces_1_round): Likewise.
5107         (copy_bb): Use optimize_bb_for_speed_p.
5108         (duplicate_computed_gotos): Likewise.
5109         * basic-block.h (optimize_loop_nest_for_size_p,
5110         optimize_loop_nest_for_speed_p): New.
5111         * stmt.c (expand_case): Use optimize_insn_for_size_p.
5112
5113 2008-08-29  Tristan Gingold  <gingold@adacore.com>
5114
5115         * gcov.c (main): Call expandargv.
5116
5117 2008-08-29  Jan Hubicka  <jh@suse.cz>
5118
5119         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
5120         is not cold.
5121         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5122         Constify arguments.
5123         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
5124         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5125         Constify.
5126         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
5127
5128 2008-08-29  Jan Hubicka  <jh@suse.cz>
5129
5130         * tree-pass.h (pass_strip_predict_hints): Declare.
5131         * predict.c (strip_builtin_expect): Rename to ...
5132         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
5133         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
5134         (tree_estimate_probability): Do not strip builtin_expect.
5135         (pass_strip_predict_hints): New pass.
5136         * tree-inline.c (expand_call_inline): When inlining cold function,
5137         predict it as unlikely.
5138         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
5139
5140 2008-08-29  Richard Guenther  <rguenther@suse.de>
5141
5142         PR tree-optimization/37207
5143         * tree-vrp.c (extract_range_from_binary_expr): Also try
5144         to constant fold if only one of the operands is a constant.
5145
5146 2008-08-29  Nick Clifton  <nickc@redhat.com>
5147
5148         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
5149         the same way as SYMBOL_REFs.
5150
5151 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
5152
5153         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
5154
5155 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
5156
5157         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
5158         * config/mips/mips.md (branch_likely): Remove const.  Fix
5159         comment formatting.
5160         (define_delay for type "branch"): Change to only apply for branch
5161         with likely variant.
5162         (define_delay for type "branch" and "branch_likely" no).  New delay
5163         definition.
5164         (equality_op): New code iterator.
5165         (bbv, bbinv): New code attributes.
5166         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
5167         patterns.
5168
5169 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5170             Andrew Pinski  <pinskia@gcc.gnu.org>
5171
5172         PR 18050
5173         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
5174
5175 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
5176
5177         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
5178         rule that a symbolic constant must be defined and >= 0 for the
5179         corresponding facility to be present at compile-time.
5180         * gthr-posix.c: Likewise.
5181
5182 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
5183
5184         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
5185         * config/mips/mips.md (D): New mode attribute.
5186         (mulsi3, muldi3): Merge it into ...
5187         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op patterns.
5188         (muldi3_mul3): New pattern.
5189         (mulsi3_mult3): Rename to mulsi3_mul3.
5190
5191 2008-08-28  Jan Hubicka  <jh@suse.cz>
5192
5193         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
5194         to fail.
5195         * predict.c (always_optimize_for_size_p): Rename to ...
5196         (optimize_function_for_size): ... this one; make extern.
5197         (optimize_function_for_speed_p): New.
5198         (optimize_bb_for_size_p, optimize_bb_for_size_p,
5199         optimize_edge_for_size_p,optimize_edge_for_size_p,
5200         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
5201         * basic-block.h (optimize_function_for_size_p,
5202         optimize_function_for_speed_p): Declare.
5203         * i386.md (optimize_size checks): Replace them by appropriate
5204         predicate.
5205         (standard_80387_constant_p, ix86_compute_frame_layout,
5206         ix86_expand_epilogue, ix86_decompose_address,
5207         print_operand, emit_i387_cw_initialization,
5208         inline_memory_move_cost, ix86_pad_returns,
5209         ix86_reorg): Replace optimize_size checks.
5210
5211 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
5212
5213         * rtl.h (simplify_subreg_regno): Declare.
5214         * rtlanal.c (simplify_subreg_regno): New function, split out from...
5215         * simplify-rtx.c (simplify_subreg): ...here.
5216         * reload.c (find_reloads): Use simplify_subreg_regno instead of
5217         subreg_offset_representable_p.
5218
5219 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5220
5221         PR c/30949
5222         * c-typeck.c (convert_for_assignment): Give a note describing what
5223         was passed and what was expected.
5224
5225 2008-08-28  Joey Ye  <joey.ye@intel.com>
5226
5227         * doc/extend.texi: Document AVX built-in functions.
5228         * doc/invoke.texi: Document -mavx.
5229
5230 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
5231             Joey Ye  <joey.ye@intel.com>
5232             Xuepeng Guo  <xuepeng.guo@intel.com>
5233
5234         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
5235
5236         * config/i386/cpuid.h (bit_FMA): New.
5237         (bit_XSAVE): Likewise.
5238         (bit_OSXSAVE): Likewise.
5239         (bit_AVX): Likewise.
5240
5241         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
5242         define.  Use ASM_OUTPUT_AVX_PREFIX.
5243
5244         * config/i386/gmmintrin.h: New.
5245
5246         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
5247         (OPTION_MASK_ISA_AVX_SET): New.
5248         (OPTION_MASK_ISA_FMA_SET): Likewise.
5249         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
5250         (OPTION_MASK_ISA_FMA_SET): Likewise.
5251         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
5252         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
5253         (pta_flags): Add PTA_AVX and PTA_FMA.
5254         (override_options): Handle PTA_AVX and PTA_FMA.
5255         (init_cumulative_args): Handle warn_avx.
5256         (classify_argument): Return 0 for COImode and OImode.  Return
5257         1 and X86_64_AVX_CLASS for 256bit vector types.
5258         (examine_argument): Handle X86_64_AVX_CLASS.
5259         (construct_container): Likewise.
5260         (function_arg_advance_32): Pass OImode and 256bit vector types
5261         in AVX register.
5262         (function_arg_advance_64): Take a new argument to indicate if a
5263         parameter is named.  Handle 256bit vector types.  Return
5264         immediately for unnamed 256bit vector mode parameters.
5265         (function_arg_advance): Updated.
5266         (function_arg_32): Add comments for TImode.  Handle OImode
5267         and 256bit vector types.
5268         (function_arg_64): Take a new argument to indicate if a
5269         parameter is named.  Handle 256bit vector types.  Return NULL
5270         for unnamed 256bit vector mode parameters.
5271         (function_arg): Updated.
5272         (setup_incoming_varargs_64): Support
5273         AVX encoding for *sse_prologue_save_insn.
5274         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
5275         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
5276         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
5277         enabled, otherwise return -3.
5278         (standard_sse_constant_opcode): Handle AVX and 256bit vector
5279         modes.
5280         (print_reg): Support AVX registers.  Handle 'x' and 't'.
5281         Handle 'd' to duplicate the operand.
5282         (print_operand): Likewise.  Also support AVX vector compare
5283         instructions.
5284         (output_387_binary_op): Support AVX.
5285         (output_fp_compare): Likewise.
5286         (ix86_expand_vector_move_misalign): Likewise.
5287         (ix86_attr_length_vex_default): New.
5288         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
5289         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
5290         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
5291         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
5292         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
5293         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
5294         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
5295         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
5296         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
5297         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
5298         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
5299         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
5300         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
5301         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
5302         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
5303         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
5304         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
5305         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
5306         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
5307         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
5308         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
5309         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
5310         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
5311         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
5312         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
5313         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
5314         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
5315         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
5316         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
5317         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
5318         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
5319         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
5320         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
5321         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
5322         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
5323         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
5324         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
5325         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
5326         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
5327         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
5328         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
5329         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
5330         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
5331         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
5332         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
5333         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
5334         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
5335         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
5336         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
5337         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
5338         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
5339         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
5340         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
5341         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
5342         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
5343         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
5344         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
5345         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
5346         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
5347         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
5348         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
5349         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
5350         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
5351         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
5352         and IX86_BUILTIN_MOVMSKPS256,
5353         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
5354         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
5355         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
5356         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
5357         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
5358         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
5359         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
5360         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
5361         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
5362         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
5363         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
5364         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
5365         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
5366         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
5367         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
5368         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
5369         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
5370         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
5371         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
5372         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
5373         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
5374         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
5375         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
5376         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
5377         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
5378         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
5379         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
5380         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
5381         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
5382         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
5383         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
5384         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
5385         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
5386         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
5387         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
5388         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
5389         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
5390         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
5391         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
5392         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
5393         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
5394         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
5395         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
5396         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
5397         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
5398         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
5399         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
5400         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
5401         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
5402         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
5403         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
5404         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
5405         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
5406         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
5407         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
5408         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
5409         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
5410         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
5411         IX86_BUILTIN_CMPPS,
5412         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
5413         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
5414         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
5415         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
5416         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
5417         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
5418         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
5419         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
5420         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
5421         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
5422         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
5423         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
5424         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
5425         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
5426         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
5427         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
5428         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
5429         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
5430         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
5431         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
5432         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
5433         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
5434         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
5435         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
5436         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
5437         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
5438         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
5439         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
5440         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
5441         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
5442         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
5443         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
5444         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
5445         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
5446         IX86_BUILTIN_MOVMSKPS256.
5447         (ix86_init_mmx_sse_builtins): Support AVX builtins.
5448         (ix86_expand_args_builtin): Likewise.
5449         (ix86_expand_special_args_builtin): Likewise.
5450         (ix86_hard_regno_mode_ok): Handle AVX modes.
5451         (ix86_expand_vector_init_duplicate): Likewise.
5452         (ix86_expand_vector_init_one_nonzero): Likewise.
5453         (ix86_expand_vector_init_one_var): Likewise.
5454         (ix86_expand_vector_init_concat): Likewise.
5455         (ix86_expand_vector_init_general): Likewise.
5456         (ix86_expand_vector_set): Likewise.
5457         (ix86_vector_mode_supported_p): Likewise.
5458         (x86_extended_reg_mentioned_p): Check INSN_P before using
5459         PATTERN.
5460
5461         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
5462         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
5463
5464         * config/i386/i386.h (TARGET_AVX): New.
5465         (TARGET_FMA): Likewise.
5466         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
5467         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
5468         (VALID_AVX256_REG_MODE): New.
5469         (AVX256_VEC_FLOAT_MODE_P): Likewise.
5470         (AVX_FLOAT_MODE_P): Likewise.
5471         (AVX128_VEC_FLOAT_MODE_P): Likewise.
5472         (AVX256_VEC_FLOAT_MODE_P): Likewise.
5473         (AVX_VEC_FLOAT_MODE_P): Likewise.
5474         (ASM_OUTPUT_AVX_PREFIX): Likewise.
5475         (ASM_OUTPUT_OPCODE): Likewise.
5476         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
5477         support.
5478         (SSE_REG_MODE_P): Allow 256bit vector modes.
5479         (ix86_args): Add a warn_avx field.
5480
5481         * config/i386/i386.md (UNSPEC_PCMP): New.
5482         (UNSPEC_VPERMIL): Likewise.
5483         (UNSPEC_VPERMIL2): Likewise.
5484         (UNSPEC_VPERMIL2F128): Likewise.
5485         (UNSPEC_MASKLOAD): Likewise.
5486         (UNSPEC_MASKSTORE): Likewise.
5487         (UNSPEC_CAST): Likewise.
5488         (UNSPEC_VTESTP): Likewise.
5489         (UNSPECV_VZEROALL): Likewise.
5490         (UNSPECV_VZEROUPPER): Likewise.
5491         (XMM0_REG): Likewise.
5492         (XMM1_REG): Likewise.
5493         (XMM2_REG): Likewise.
5494         (XMM3_REG): Likewise.
5495         (XMM4_REG): Likewise.
5496         (XMM5_REG): Likewise.
5497         (XMM6_REG): Likewise.
5498         (XMM8_REG): Likewise.
5499         (XMM9_REG): Likewise.
5500         (XMM10_REG): Likewise.
5501         (XMM11_REG): Likewise.
5502         (XMM12_REG): Likewise.
5503         (XMM13_REG): Likewise.
5504         (XMM14_REG): Likewise.
5505         (XMM15_REG): Likewise.
5506         (prefix): Likewise.
5507         (prefix_vex_imm8): Likewise.
5508         (prefix_vex_w): Likewise.
5509         (length_vex): Likewise.
5510         (maxmin): Likewise.
5511         (movoi): Likewise.
5512         (*avx_ashlti3): Likewise.
5513         (*avx_lshrti3): Likewise.
5514         (*avx_setcc<mode>): Likewise.
5515         (*fop_<mode>_comm_mixed_avx): Likewise.
5516         (*fop_<mode>_comm_avx): Likewise.
5517         (*fop_<mode>_1_mixed_avx): Likewise.
5518         (*fop_<mode>_1_avx): Likewise.
5519         (*avx_<code><mode>3): Likewise.
5520         (*avx_ieee_smin<mode>3): Likewise.
5521         (*avx_ieee_smax<mode>3): Likewise.
5522         (mode): Add OI, V8SF and V4DF.
5523         (length): Support VEX prefix.
5524         (*cmpfp_i_mixed): Set prefix attribute.
5525         (*cmpfp_i_sse): Likewise.
5526         (*cmpfp_iu_mixed): Likewise.
5527         (*cmpfp_iu_sse): Likewise.
5528         (*movsi_1): Support AVX.
5529         (*movdi_2): Likewise.
5530         (*movdi_1_rex64): Likewise.
5531         (*movti_internal): Likewise.
5532         (*movti_rex64): Likewise.
5533         (*movsf_1): Likewise.
5534         (*movdf_nointeger): Likewise.
5535         (*movdf_integer_rex64): Likewise.
5536         (*movtf_internal): Likewise.
5537         (zero_extendsidi2_32): Likewise.
5538         (zero_extendsidi2_rex64): Likewise.
5539         (*extendsfdf2_mixed): Likewise.
5540         (*extendsfdf2_sse): Likewise.
5541         (*truncdfsf_fast_mixed): Likewise.
5542         (*truncdfsf_fast_sse): Likewise.
5543         (*truncdfsf_mixed): Likewise.
5544         (fix_trunc<mode>di_sse): Likewise.
5545         (fix_trunc<mode>si_sse): Likewise.
5546         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
5547         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
5548         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
5549         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
5550         (*rcpsf2_sse): Likewise.
5551         (*rsqrtsf2_sse): Likewise.
5552         (*sqrt<mode>2_sse): Likewise.
5553         (sse4_1_round<mode>2): Likewise.
5554         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
5555         Support AVX.  Set length attribute properly for AVX.
5556
5557         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
5558         (VECTOR_MODES (FLOAT, 32)): Likewise.
5559         (VECTOR_MODE (INT, DI, 8)): Likewise.
5560         (VECTOR_MODE (INT, HI, 32)): Likewise.
5561         (VECTOR_MODE (INT, QI, 64)): Likewise.
5562         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
5563         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
5564         (VECTOR_MODE (INT, DI, 4)): Removed.
5565         (VECTOR_MODE (INT, SI, 8)): Likewise.
5566         (VECTOR_MODE (INT, HI, 16)): Likewise.
5567         (VECTOR_MODE (INT, QI, 32)): Likewise.
5568         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
5569         (INT_MODE (OI, 32)): Likewise.
5570
5571         * config/i386/i386.opt (mavx): New.
5572         (mfma): Likewise.
5573
5574         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
5575
5576         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
5577         (*mov<mode>_internal_avx): New.
5578         (*movv2sf_internal_rex64_avx): Likewise.
5579         (*movv2sf_internal_avx): Likewise.
5580
5581         * config/i386/predicates.md (const_4_to_5_operand): New.
5582         (const_6_to_7_operand): Likewise.
5583         (const_8_to_11_operand): Likewise.
5584         (const_12_to_15_operand): Likewise.
5585         (avx_comparison_float_operator): Likewise.
5586
5587         * config/i386/sse.md (AVX256MODEI): New.
5588         (AVX256MODE): Likewise.
5589         (AVXMODEQI): Likewise.
5590         (AVXMODE): Likewise.
5591         (AVX256MODEF2P): Likewise.
5592         (AVX256MODE2P): Likewise.
5593         (AVX256MODE4P): Likewise.
5594         (AVX256MODE8P): Likewise.
5595         (AVXMODEF2P): Likewise.
5596         (AVXMODEF4P): Likewise.
5597         (AVXMODEDCVTDQ2PS): Likewise.
5598         (AVXMODEDCVTPS2DQ): Likewise.
5599         (avxvecmode): Likewise.
5600         (avxvecpsmode): Likewise.
5601         (avxhalfvecmode): Likewise.
5602         (avxscalarmode): Likewise.
5603         (avxcvtvecmode): Likewise.
5604         (avxpermvecmode): Likewise.
5605         (avxmodesuffixf2c): Likewise.
5606         (avxmodesuffixp): Likewise.
5607         (avxmodesuffixs): Likewise.
5608         (avxmodesuffix): Likewise.
5609         (vpermilbits): Likewise.
5610         (pinsrbits): Likewise.
5611         (mov<mode>): Likewise.
5612         (*mov<mode>_internal): Likewise.
5613         (push<mode>1): Likewise.
5614         (movmisalign<mode>): Likewise.
5615         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5616         (avx_movdqu<avxmodesuffix>): Likewise.
5617         (avx_lddqu<avxmodesuffix>): Likewise.
5618         (<plusminus_insn><mode>3): Likewise.
5619         (*avx_<plusminus_insn><mode>3): Likewise.
5620         (*avx_vm<plusminus_insn><mode>3): Likewise.
5621         (mul<mode>3): Likewise.
5622         (*avx_mul<mode>3): Likewise.
5623         (*avx_vmmul<mode>3): Likewise.
5624         (divv8sf3): Likewise.
5625         (divv4df3): Likewise.
5626         (avx_div<mode>3): Likewise.
5627         (*avx_div<mode>3): Likewise.
5628         (*avx_vmdiv<mode>3): Likewise.
5629         (avx_rcpv8sf2): Likewise.
5630         (*avx_vmrcpv4sf2): Likewise.
5631         (sqrtv8sf2): Likewise.
5632         (avx_sqrtv8sf2): Likewise.
5633         (*avx_vmsqrt<mode>2): Likewise.
5634         (rsqrtv8sf2): Likewise.
5635         (avx_rsqrtv8sf2): Likewise.
5636         (*avx_vmrsqrtv4sf2): Likewise.
5637         (<code><mode>3): Likewise.
5638         (*avx_<code><mode>3_finite): Likewise.
5639         (*avx_<code><mode>3): Likewise.
5640         (*avx_vm<code><mode>3): Likewise.
5641         (*avx_ieee_smin<mode>3): Likewise.
5642         (*avx_ieee_smax<mode>3): Likewise.
5643         (avx_addsubv8sf3): Likewise.
5644         (avx_addsubv4df3): Likewise.
5645         (*avx_addsubv4sf3): Likewise.
5646         (*avx_addsubv2df3): Likewise.
5647         (avx_h<plusminus_insn>v4df3): Likewise.
5648         (avx_h<plusminus_insn>v8sf3): Likewise.
5649         (*avx_h<plusminus_insn>v4sf3): Likewise.
5650         (*avx_h<plusminus_insn>v2df3): Likewise.
5651         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
5652         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
5653         (*avx_maskcmp<mode>3): Likewise.
5654         (avx_nand<mode>3): Likewise.
5655         (*avx_<code><mode>3): Likewise.
5656         (*avx_nand<mode>3): Likewise.
5657         (*avx_<code><mode>3): Likewise.
5658         (*avx_cvtsi2ss): Likewise.
5659         (*avx_cvtsi2ssq): Likewise.
5660         (*avx_cvtsi2sd): Likewise.
5661         (*avx_cvtsi2sdq): Likewise.
5662         (*avx_cvtsd2ss): Likewise.
5663         (avx_cvtss2sd): Likewise.
5664         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
5665         (avx_cvtps2dq<avxmodesuffix>): Likewise.
5666         (avx_cvttps2dq<avxmodesuffix>): Likewise.
5667         (*avx_cvtsi2sd): Likewise.
5668         (*avx_cvtsi2sdq): Likewise.
5669         (avx_cvtdq2pd256): Likewise.
5670         (avx_cvtpd2dq256): Likewise.
5671         (avx_cvttpd2dq256): Likewise.
5672         (*avx_cvtsd2ss): Likewise.
5673         (*avx_cvtss2sd): Likewise.
5674         (avx_cvtpd2ps256): Likewise.
5675         (avx_cvtps2pd256): Likewise.
5676         (*avx_movhlps): Likewise.
5677         (*avx_movlhps): Likewise.
5678         (avx_unpckhps256): Likewise.
5679         (*avx_unpckhps): Likewise.
5680         (avx_unpcklps256): Likewise.
5681         (*avx_unpcklps): Likewise.
5682         (avx_movshdup256): Likewise.
5683         (avx_movsldup256): Likewise.
5684         (avx_shufps256): Likewise.
5685         (avx_shufps256_1): Likewise.
5686         (*avx_shufps_<mode>): Likewise.
5687         (*avx_loadhps): Likewise.
5688         (*avx_storelps): Likewise.
5689         (*avx_loadlps): Likewise.
5690         (*avx_movss): Likewise.
5691         (*vec_dupv4sf_avx): Likewise.
5692         (*vec_concatv2sf_avx): Likewise.
5693         (*vec_concatv4sf_avx): Likewise.
5694         (*vec_setv4sf_0_avx): Likewise.
5695         (*vec_setv4sf_avx): Likewise.
5696         (*avx_insertps): Likewise.
5697         (avx_vextractf128<mode>): Likewise.
5698         (vec_extract_lo_<mode>): Likewise.
5699         (vec_extract_hi_<mode>): Likewise.
5700         (vec_extract_lo_<mode>): Likewise.
5701         (vec_extract_hi_<mode>): Likewise.
5702         (vec_extract_lo_v16hi): Likewise.
5703         (vec_extract_hi_v16hi): Likewise.
5704         (vec_extract_lo_v32qi): Likewise.
5705         (vec_extract_hi_v32qi): Likewise.
5706         (avx_unpckhpd256): Likewise.
5707         (*avx_unpckhpd): Likewise.
5708         (avx_movddup256): Likewise.
5709         (*avx_movddup): Likewise.
5710         (avx_unpcklpd256): Likewise.
5711         (*avx_unpcklpd): Likewise.
5712         (avx_shufpd256): Likewise.
5713         (avx_shufpd256_1): Likewise.
5714         (*avx_punpckhqdq): Likewise.
5715         (*avx_punpcklqdq): Likewise.
5716         (*avx_shufpd_<mode>): Likewise.
5717         (*avx_storehpd): Likewise.
5718         (*avx_loadhpd): Likewise.
5719         (*avx_loadlpd): Likewise.
5720         (*avx_movsd): Likewise.
5721         (*vec_concatv2df_avx): Likewise.
5722         (*avx_<plusminus_insn><mode>3): Likewise.
5723         (*avx_<plusminus_insn><mode>3): Likewise.
5724         (*avx_mulv8hi3): Likewise.
5725         (*avxv8hi3_highpart): Likewise.
5726         (*avx_umulv8hi3_highpart): Likewise.
5727         (*avx_umulv2siv2di3): Likewise.
5728         (*avx_mulv2siv2di3): Likewise.
5729         (*avx_pmaddwd): Likewise.
5730         (*avx_mulv4si3): Likewise.
5731         (*avx_ashr<mode>3): Likewise.
5732         (*avx_lshr<mode>3): Likewise.
5733         (*avx_ashl<mode>3): Likewise.
5734         (*avx_<code><mode>3): Likewise.
5735         (*avx_eq<mode>3): Likewise.
5736         (*avx_gt<mode>3): Likewise.
5737         (*avx_nand<mode>3): Likewise.
5738         (*avx_nand<mode>3): Likewise.
5739         (*avx_<code><mode>3): Likewise.
5740         (*avx_<code><mode>3): Likewise.
5741         (*avx_packsswb): Likewise.
5742         (*avx_packssdw): Likewise.
5743         (*avx_packuswb): Likewise.
5744         (*avx_punpckhbw): Likewise.
5745         (*avx_punpcklbw): Likewise.
5746         (*avx_punpckhwd): Likewise.
5747         (*avx_punpcklwd): Likewise.
5748         (*avx_punpckhdq): Likewise.
5749         (*avx_punpckldq): Likewise.
5750         (*avx_pinsr<avxmodesuffixs>): Likewise.
5751         (*avx_pinsrq): Likewise.
5752         (*avx_loadld): Likewise.
5753         (*vec_extractv2di_1_rex64_avx): Likewise.
5754         (*vec_extractv2di_1_avx): Likewise.
5755         (*vec_dupv2di_avx): Likewise.
5756         (*vec_concatv2si_avx): Likewise.
5757         (*vec_concatv4si_1_avx): Likewise.
5758         (*vec_concatv2di_avx): Likewise.
5759         (*vec_concatv2di_rex64_avx): Likewise.
5760         (*avx_uavgv16qi3): Likewise.
5761         (*avx_uavgv8hi3): Likewise.
5762         (*avx_psadbw): Likewise.
5763         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
5764         (*avx_phaddwv8hi3): Likewise.
5765         (*avx_phadddv4si3): Likewise.
5766         (*avx_phaddswv8hi3): Likewise.
5767         (*avx_phsubwv8hi3): Likewise.
5768         (*avx_phsubdv4si3): Likewise.
5769         (*avx_phsubswv8hi3): Likewise.
5770         (*avx_pmaddubsw128): Likewise.
5771         (*avx_pmulhrswv8hi3): Likewise.
5772         (*avx_pshufbv16qi3): Likewise.
5773         (*avx_psign<mode>3): Likewise.
5774         (*avx_palignrti): Likewise.
5775         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5776         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5777         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5778         (*avx_mpsadbw): Likewise.
5779         (*avx_packusdw): Likewise.
5780         (*avx_pblendvb): Likewise.
5781         (*avx_pblendw): Likewise.
5782         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5783         (avx_ptest256): Likewise.
5784         (avx_roundp<avxmodesuffixf2c>256): Likewise.
5785         (*avx_rounds<ssemodesuffixf2c>): Likewise.
5786         (*avx_aesenc): Likewise.
5787         (*avx_aesenclast): Likewise.
5788         (*avx_aesdec): Likewise.
5789         (*avx_aesdeclast): Likewise.
5790         (avx_vzeroupper): Likewise.
5791         (avx_vzeroupper_rex64): Likewise.
5792         (avx_vpermil<mode>): Likewise.
5793         (avx_vpermilvar<mode>3): Likewise.
5794         (avx_vpermil2<mode>3): Likewise.
5795         (avx_vperm2f128<mode>3): Likewise.
5796         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5797         (avx_vbroadcastss256): Likewise.
5798         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
5799         (avx_vinsertf128<mode>): Likewise.
5800         (vec_set_lo_<mode>): Likewise.
5801         (vec_set_hi_<mode>): Likewise.
5802         (vec_set_lo_<mode>): Likewise.
5803         (vec_set_hi_<mode>): Likewise.
5804         (vec_set_lo_v16hi): Likewise.
5805         (vec_set_hi_v16hi): Likewise.
5806         (vec_set_lo_v32qi): Likewise.
5807         (vec_set_hi_v32qi): Likewise.
5808         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5809         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
5810         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
5811         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
5812         (vec_init<mode>): Likewise.
5813         (*vec_concat<mode>_avx): Likewise.
5814         (blendbits): Support V8SF and V4DF.
5815         (sse2_movq128): Support AVX.
5816         (<sse>_movnt<mode>): Likewise.
5817         (sse2_movntv2di): Likewise.
5818         (sse_rcpv4sf2): Likewise.
5819         (sse_sqrtv4sf2): Likewise.
5820         (sse_rsqrtv4sf2): Likewise.
5821         (<sse>_comi): Likewise.
5822         (<sse>_ucomi): Likewise.
5823         (sse_cvtss2si): Likewise.
5824         (sse_cvtss2si_2): Likewise.
5825         (sse_cvtss2siq): Likewise.
5826         (sse_cvtss2siq_2): Likewise.
5827         (sse_cvttss2si): Likewise.
5828         (sse_cvttss2siq): Likewise.
5829         (sse2_cvtsd2si): Likewise.
5830         (sse2_cvtsd2si_2): Likewise.
5831         (sse2_cvtsd2siq): Likewise.
5832         (sse2_cvtsd2siq_2): Likewise.
5833         (sse2_cvttsd2si): Likewise.
5834         (sse2_cvttsd2siq): Likewise.
5835         (sse2_cvtdq2pd): Likewise.
5836         (*sse2_cvtpd2dq): Likewise.
5837         (*sse2_cvttpd2dq): Likewise.
5838         (*sse2_cvtpd2ps): Likewise.
5839         (sse2_cvtps2pd): Likewise.
5840         (sse3_movshdup): Likewise.
5841         (sse3_movsldup): Likewise.
5842         (sse_storehps): Likewise.
5843         (*sse4_1_extractps): Likewise.
5844         (sse2_storelpd): Likewise.
5845         (vec_dupv2df_sse3): Likewise.
5846         (*vec_concatv2df_sse3): Likewise.
5847         (*sse4_1_pextrb): Likewise.
5848         (*sse4_1_pextrb_memory): Likewise.
5849         (*sse2_pextrw): Likewise.
5850         (*sse4_1_pextrw_memory): Likewise.
5851         (*sse4_1_pextrd): Likewise.
5852         (*sse4_1_pextrq): Likewise.
5853         (sse2_pshufd_1): Likewise.
5854         (sse2_pshuflw_1): Likewise.
5855         (sse2_pshufhw_1): Likewise.
5856         (*sse2_storeq_rex64): Likewise.
5857         (*vec_dupv4si): Likewise.
5858         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
5859         (sse2_pmovmskb): Likewise.
5860         (*sse2_maskmovdqu): Likewise.
5861         (*sse2_maskmovdqu_rex64): Likewise.
5862         (sse_ldmxcsr): Likewise.
5863         (sse_stmxcsr): Likewise.
5864         (abs<mode>2): Likewise.
5865         (sse4_1_movntdqa): Likewise.
5866         (sse4_1_phminposuw): Likewise.
5867         (sse4_1_extendv8qiv8hi2): Likewise.
5868         (*sse4_1_extendv8qiv8hi2): Likewise.
5869         (sse4_1_extendv4qiv4si2): Likewise.
5870         (*sse4_1_extendv4qiv4si2): Likewise.
5871         (sse4_1_extendv2qiv2di2): Likewise.
5872         (*sse4_1_extendv2qiv2di2): Likewise.
5873         (sse4_1_extendv4hiv4si2): Likewise.
5874         (*sse4_1_extendv4hiv4si2): Likewise.
5875         (sse4_1_extendv2hiv2di2): Likewise.
5876         (*sse4_1_extendv2hiv2di2): Likewise.
5877         (sse4_1_extendv2siv2di2): Likewise.
5878         (*sse4_1_extendv2siv2di2): Likewise.
5879         (sse4_1_zero_extendv8qiv8hi2): Likewise.
5880         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
5881         (sse4_1_zero_extendv4qiv4si2): Likewise.
5882         (*sse4_1_zero_extendv4qiv4si2): Likewise.
5883         (sse4_1_zero_extendv2qiv2di2): Likewise.
5884         (*sse4_1_zero_extendv2qiv2di2): Likewise.
5885         (sse4_1_zero_extendv4hiv4si2): Likewise.
5886         (*sse4_1_zero_extendv4hiv4si2): Likewise.
5887         (sse4_1_zero_extendv2hiv2di2): Likewise.
5888         (*sse4_1_zero_extendv2hiv2di2): Likewise.
5889         (sse4_1_zero_extendv2siv2di2): Likewise.
5890         (*sse4_1_zero_extendv2siv2di2): Likewise.
5891         (sse4_1_ptest): Likewise.
5892         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
5893         (sse4_2_pcmpestri): Likewise.
5894         (sse4_2_pcmpestrm): Likewise.
5895         (sse4_2_pcmpistri): Likewise.
5896         (sse4_2_pcmpistrm): Likewise.
5897         (aesimc): Likewise.
5898         (aeskeygenassist): Likewise.
5899
5900 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
5901
5902         * config/i386/predicates.md (vzeroall_operation): New.
5903
5904         * config/i386/sse.md (avx_vzeroall): New.
5905         (*avx_vzeroall): Likewise.
5906
5907 2008-08-28  Paul Brook  <paul@codesourcery.com>
5908             Mark Shinwell  <shinwell@codesourcery.com>
5909             Richard Earnshaw  <richard.earnshaw@arm.com>
5910
5911         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
5912         (TARGET_MIN_ANCHOR_OFFSET): New.
5913         (arm_override_options): Set correct anchor ranges for Thumb-1
5914         and Thumb-2 if required.
5915         (legitimize_pic_address): Handle case involving a TLS symbol
5916         reference with an addend.
5917         (arm_optimization_options): Enable section anchors at -O1 and
5918         above.
5919         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
5920         * config/arm/arm-protos.h (arm_optimization_options): New.
5921
5922 2008-08-28  Nick Clifton  <nickc@redhat.com>
5923
5924         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
5925         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
5926         attribute.
5927
5928         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
5929         * config/v850/v850.md (return): Remove frame size restriction.
5930
5931         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
5932
5933         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
5934
5935         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
5936
5937         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
5938
5939 2008-08-28  Paul Brook  <paul@codesourcery.com>
5940
5941         * config/arm/vfp11.md: Update license notice.
5942         * config/arm/cortex-r4.md: Ditto.
5943
5944 2008-08-28  Richard Guenther  <rguenther@suse.de>
5945
5946         PR tree-optimization/37207
5947         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
5948         tuplification bug.
5949
5950 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
5951
5952         PR c++/36741
5953         * tree.c (int_fits_type_p): Don't forget unsigned integers
5954           of type sizetype which higher end word equals -1.
5955
5956 2008-08-28  Ira Rosen  <irar@il.ibm.com>
5957
5958         * target.h (struct vectorize): Add new target builtin.
5959         * tree-vectorizer.c (destroy_loop_vec_info): Call
5960         vect_free_slp_instance instead of vect_free_slp_node.
5961         * tree-vectorizer.h (enum slp_load_perm_type): New.
5962         (struct _slp_instance): Add new fields.
5963         (SLP_INSTANCE_LOAD_PERMUTATION): New.
5964         (SLP_INSTANCE_LOADS): New.
5965         (vect_free_slp_tree): Remove.
5966         (vect_free_slp_instance): Declare.
5967         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
5968         (vectorizable_load): Add argument.
5969         (vect_transform_slp_perm_load): New.
5970         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
5971         vectorizable_load.
5972         (vect_get_place_in_interleaving_chain): New function.
5973         (vect_free_slp_tree): Make static.
5974         (vect_free_slp_instance): New function.
5975         (vect_build_slp_tree): Add new arguments. Allow load permutations and
5976         collect the load location in the interleaving chain.
5977         (vect_supported_slp_permutation_p): New function.
5978         (vect_supported_load_permutation_p): Likewise.
5979         (vect_analyze_slp_instance): In case of loads permutation, call
5980         vect_supported_load_permutation_p to check that the permutation is
5981         supported.
5982         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
5983         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
5984         (vect_create_mask_and_perm): New function.
5985         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
5986         (vectorizable_load): Add an argument. Don't keep the created vectors
5987         statements in the node if permutation is required. Call
5988         vect_transform_slp_perm_load to generate the permutation.
5989         (vect_transform_stmt): Add new argument. Call vectorizable_load with
5990         additional argument.
5991         (vect_schedule_slp_instance): In case of loads permutation, allocate
5992         vectorized statements structure for all the related SLP nodes. Call
5993         vect_transform_stmt with addditional argument.
5994         (vect_transform_loop): Call vect_transform_stmt with correct arguments.
5995         * config/spu/spu.c (spu_builtin_vec_perm): New.
5996         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
5997         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
5998         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
5999         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
6000
6001 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
6002
6003         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
6004         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
6005         __gthread_cond_signal, __gthread_cond_timedwait,
6006         __gthread_cond_timedwait_recursive): New functions.
6007         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
6008         Likewise.
6009         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
6010         thread interfaces.
6011
6012 2008-08-28  Richard Guenther  <rguenther@suse.de>
6013
6014         PR middle-end/37005
6015         * fold-const.c (maybe_canonicalize_comparison_1): Require
6016         undefined overflow only for canonicalizing A +- CST cmp CST.
6017         Make sure to not generate new constants that are not inside
6018         their TYPE_MIN/MAX_VALUE range.
6019         (maybe_canonicalize_comparison): Remove undefined overflow
6020         checking from here.
6021         (fold_binary): Remove now duplicate folding.
6022
6023 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
6024
6025         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
6026         use not updated in the last change.
6027
6028 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
6029
6030         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
6031         (IRA_COVER_CLASSES): Add FPUL_REGS.
6032
6033 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6034
6035         PR 37217
6036         * c-common.c (conversion_warning): Check for null operands.
6037
6038 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6039
6040         PR c/31673
6041         * c-decl.c (check_for_loop_decls): Improve error message. Give
6042         hint.
6043
6044 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6045
6046         PR c/37186
6047         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
6048         (convert_for_assignment): Pass corrent OPT_W* parameter to
6049         WARN_FOR_ASSIGNMENT.
6050
6051 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
6052
6053         PR c++/35321
6054         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
6055
6056 2008-08-27  Paul Brook  <paul@codesourcery.com>
6057
6058         * config.gcc: Loosen checks for arm uclinux eabi targets.
6059
6060 2008-08-27  Paul Brook  <paul@codesourcery.com>
6061
6062         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
6063         _clzsi2.
6064         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
6065
6066 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
6067
6068         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
6069         the enumerators of an ENUMERAL_TYPE.
6070         * dbxout.c (dbxout_type): Ditto.
6071
6072 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6073
6074         PR rtl-opt/37219
6075         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
6076         (fwprop_addr): Check that the loop_father is not the outer loop.
6077
6078 2008-08-26  Paul Brook  <paul@codesourcery.com>
6079
6080         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
6081         Remove documentation entry for fmul type.
6082         Use fmuls to annotate single-precision multiplication patterns,
6083         fmuld to annotate double-precision multiplication patterns,
6084         fmacs to annotate single-precision multiply-accumulate patterns
6085         and fmacd to annotate double-precision multiply-accumulate patterns.
6086         * config/arm/vfp11.md: Update reservations accordingly.
6087         * config/arm/arm.md: Note that certain values of the "type"
6088         attribute are documented in vfp.md.
6089         * config/arm/arm1020e.md: Remove out of date duplicate comment.
6090         (v10_cvt): Use new fmul types.
6091
6092 2008-08-26  Paul Brook  <paul@codesourcery.com>
6093
6094         * config/arm/vfp.md: Move pipeline description for VFP11 to...
6095         * config/arm/vfp11.md: ...here.  New.
6096         * config/arm/arm.md: Include vfp11.md.
6097
6098 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
6099
6100         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
6101         parameter to inform call.
6102
6103 2008-08-26  Jeff Law  <law@redhat.com>
6104
6105         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
6106         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
6107         preferred class when copying a constant into a partial word register.
6108
6109 2008-08-26  Ben Elliston  <bje@au.ibm.com>
6110
6111         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
6112         * cp/typeck.c: Likewise.
6113         * cp/tree.c: Likewise.
6114         * gimple-low.c: Likewise.
6115         * jump.c: Likewise.
6116
6117 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
6118
6119         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
6120         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
6121
6122         * doc/passes.texi: Describe IRA.
6123
6124         * doc/tm.texi (IRA_COVER_CLASSES,
6125         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
6126
6127         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
6128         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
6129         -fira-propagate-cost, -fno-ira-share-save-slots,
6130         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
6131
6132         * flags.h (ira_algorithm): New enumeration.
6133         (flag_ira_algorithm, flag_ira_verbose): New external variable
6134         declarations.
6135
6136         * postreload.c (gate_handle_postreload): Don't do post reload
6137         optimizations unless the reload is completed.
6138
6139         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
6140         IRA.
6141
6142         * tree-pass.h (pass_ira): New external variable declaration.
6143
6144         * reload.h: Add 2008 to the Copyright.
6145
6146         * cfgloopanal.c: Include params.h.
6147         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
6148         mode.
6149
6150         * params.h (IRA_MAX_LOOPS_NUM): New macro.
6151
6152         * toplev.c (ira.h): New include.
6153         (flag_ira_algorithm, flag_ira_verbose): New external variables.
6154         (backend_init_target): Call ira_init.
6155         (backend_init): Call ira_init_once.
6156         (finalize): Call finish_ira_once.
6157
6158         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
6159         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
6160         external variables.
6161
6162         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
6163         may_move_out_cost): New external variable declarations.
6164         (move_table): New typedef.
6165
6166         * caller-save.c: Include headers output.h and ira.h.
6167         (no_caller_save_reg_set): New global variable.
6168         (save_slots_num, save_slots): New variables.
6169         (reg_save_code, reg_restore_code, add_stored_regs): Add
6170         prototypes.
6171         (init_caller_save): Set up no_caller_save_reg_set.
6172         (init_save_areas): Reset save_slots_num.
6173         (saved_hard_reg): New structure.
6174         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
6175         (initiate_saved_hard_regs, new_saved_hard_reg,
6176         finish_saved_hard_regs, saved_hard_reg_compare_func): New
6177         functions.
6178         (setup_save_areas): Add code for sharing stack slots.
6179         (all_blocks): New variable.
6180         (save_call_clobbered_regs): Process pseudo-register too.
6181         (mark_set_regs): Process pseudo-register too.
6182         (insert_one_insn): Put the insn after bb note in a empty basic
6183         block.  Add insn check.
6184
6185         * global.c (eliminable_regset): Make it external.
6186         (mark_elimination): Use DF_LR_IN for IRA.
6187         (pseudo_for_reload_consideration_p): New.
6188         (build_insn_chain): Make it external.  Don't ignore spilled
6189         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
6190         (gate_handle_global_alloc): New function.
6191         (pass_global_alloc): Add the gate function.
6192
6193         * opts.c (decode_options): Set up flag_ira.  Print the warning for
6194         -fira.
6195         (common_handle_option): Process -fira-algorithm and -fira-verbose.
6196
6197         * timevar.def (TV_IRA, TV_RELOAD): New passes.
6198
6199         * regmove.c (regmove_optimize): Don't do replacement of output for
6200         IRA.
6201
6202         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
6203         New external variable declarations.
6204
6205         * local-alloc.c (update_equiv_regs): Make it external.  Return
6206         true if jump label rebuilding should be done.  Rescan new_insn for
6207         notes.
6208         (gate_handle_local_alloc): New function.
6209         (pass_local_alloc): Add the gate function.
6210
6211         * alias.c (value_addr_p, stack_addr_p): New functions.
6212         (nonoverlapping_memrefs_p): Use them for IRA.
6213
6214         * common.opt (fira, fira-algorithm, fira-coalesce,
6215         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
6216         fira-verbose): New options.
6217
6218         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
6219         move_cost, may_move_in_cost, may_move_out_cost): Make the
6220         variables external.
6221         (move_table): Remove typedef.
6222         (init_move_cost): Make it external.
6223         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
6224         functions.
6225
6226         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
6227         setup_reg_classes): New function prototypes.
6228         (eliminable_regset): New external variable declaration.
6229         (build_insn_chain, update_equiv_regs): New function prototypes.
6230
6231         * Makefile.in (IRA_INT_H): New definition.
6232         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
6233         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
6234         (reload1.o, toplev.o): Add dependence on ira.h.
6235         (cfgloopanal.o): Add PARAMS_H.
6236         (caller-save.o): Add dependence on output.h and ira.h.
6237         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
6238         ira-emit.o, ira-lives.o): New entries.
6239
6240         * passes.c (pass_ira): New pass.
6241
6242         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
6243
6244         * reload1.c (ira.h): Include the header.
6245         (changed_allocation_pseudos): New bitmap.
6246         (init_reload): Initiate the bitmap.
6247         (compute_use_by_pseudos): Permits spilled registers in FROM.
6248         (temp_pseudo_reg_arr): New variable.
6249         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
6250         IRA.  Call alter_reg with the additional parameter.  Don't clear
6251         spilled_pseudos for IRA.  Restore original insn chain for IRA.
6252         Clear changed_allocation_pseudos at the end of reload.
6253         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
6254         (hard_regno_to_pseudo_regno): New variable.
6255         (count_pseudo): Check spilled pseudos.  Set up
6256         hard_regno_to_pseudo_regno.
6257         (count_spilled_pseudo): Check spilled pseudos. Update
6258         hard_regno_to_pseudo_regno.
6259         (find_reg): Use better_spill_reload_regno_p.  Check
6260         hard_regno_to_pseudo_regno.
6261         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
6262         code for IRA.
6263         (eliminate_regs_1): Use additional parameter for alter_reg.
6264         (finish_spills): Set up pseudo_previous_regs only for spilled
6265         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
6266         more arguments.  Don't clear live_throughout and dead_or_set for
6267         spilled pseudos.  Use additional parameter for alter_reg.  Call
6268         mark_allocation_change.  Set up changed_allocation_pseudos.
6269         Remove sanity check.
6270         (emit_input_reload_insns, delete_output_reload): Use additional
6271         parameter for alter_reg.  Call mark_allocation_change.
6272         (substitute, gen_reload_chain_without_interm_reg_p): New
6273         functions.
6274         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
6275
6276         * testsuite/gcc.dg/20080410-1.c: New file.
6277
6278         * config/s390/s390.h (IRA_COVER_CLASSES,
6279         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
6280
6281         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
6282
6283         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
6284
6285         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
6286
6287         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
6288
6289         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
6290
6291         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
6292
6293         2008-08-24  Jeff Law  <law@redhat.com>
6294         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
6295         when ignoring unavailable registers.
6296
6297         2008-08-24  Jeff Law  <law@redhat.com>
6298         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
6299         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
6300         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
6301         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
6302
6303         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
6304         * ira-build.c (allocno_range_compare_func): Stabilize sort.
6305
6306         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
6307         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
6308         * reload1.c (find_reg): Process registers in register allocation order.
6309
6310         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
6311         * toplev.c (backend_init_target): Move ira_init call from
6312         here...
6313         (lang_dependent_init_target): ...to here.
6314
6315         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
6316         * ira.c (setup_class_subset_and_memory_move_costs): Don't
6317         calculate memory move costs for NO_REGS.
6318
6319         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
6320         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
6321         STACK_REGS is defined.
6322
6323         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
6324         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
6325
6326         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
6327         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
6328
6329         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
6330         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
6331         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
6332         barrier.
6333
6334 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
6335             Dorit Nuzman  <dorit@il.ibm.com>
6336
6337         * gcc/config/spu/spu.md (vec_extract_evenv4si,
6338         vec_extract_evenv4sf, vec_extract_evenv8hi,
6339         vec_extract_evenv16qi, vec_extract_oddv4si,
6340         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
6341         vec_interleave_highv4sf, vec_interleave_lowv4sf,
6342         vec_interleave_highv4si, vec_interleave_lowv4si,
6343         vec_interleave_highv8hi, vec_interleave_lowv8hi,
6344         vec_interleave_highv16qi, vec_interleave_lowv16qi,
6345         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
6346
6347 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
6348
6349         PR target/36756
6350         * config/rs6000/rs6000.c (optimization_options): Don't default to
6351         section anchors without toplevel reorder.
6352
6353 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6354
6355         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
6356         (mfc_end_critical_section): Likewise.
6357
6358 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6359
6360         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
6361         all type qualifiers from element type to vector type.
6362
6363 2008-08-25  David Daney  <ddaney@avtrex.com>
6364
6365         * config/mips/mips.md (immediate_insn): Move up in file, fix
6366         comment typo, reformat.
6367         (fetchop_bit, atomic_hiqi_op memory_barrier,
6368         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
6369         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
6370         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
6371         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
6372         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
6373         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
6374         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
6375         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
6376         sync_old_nand<mode>, sync_new_nand<mode>,
6377         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
6378         test_and_set_12): Moved to sync.md.
6379         (sync.md): Include.
6380         * config/mips/sync.md: New file.
6381
6382 2008-08-25  Richard Henderson  <rth@redhat.com>
6383
6384         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
6385         (regsave): Likewise.
6386         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
6387         (output_cfi_directive): Likewise.
6388         (div_data_align): New.
6389         (output_cfi): Use it.
6390
6391 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
6392
6393         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
6394         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
6395         (TARGET_OCTEON): New macro.
6396         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
6397         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
6398         (ISA_HAS_POP): New macro.
6399         * config/mips/driver-native.c (host_detect_local_cpu): Handle
6400         Octeon.
6401         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
6402         Handle Octeon.
6403         * config/mips/mips.md (cpu): Add octeon.
6404         (type): Add pop attribute value.
6405         (popcount<mode>2): New pattern.
6406         * doc/invoke.texi (-march=@var{arch}): Add octeon.
6407
6408 2008-08-24  Jan Hubicka  <jh@suse.cz>
6409
6410         * doc/invoke.texi (-fipa-cp-clone): New option.
6411         (-fipa-cp): Update docs.
6412         (--param ipcp-unit-growth):New.
6413         * ipa-cp.c: Include fibheap.h, params.h
6414         (ipcp_initialize_node_lattices): When not cloning, all externally
6415         visible functions are bottom.
6416         (ipcp_need_redirect_p): Accept clones.
6417         (ipcp_insert_stage): Use cost driven heuristics.
6418         (max_count, dead_nodes): New static vars.
6419         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
6420         ipcp_const_param_count): New functions.
6421         * common.opt (ipa-cp-clone): New command line option.
6422         * params.def (ipcp-unit-growth): New.
6423
6424 2008-08-24  Jan Hubicka  <jh@suse.cz>
6425
6426         * tree-inline.c (tree_function_versioning): Look harder
6427         for referenced vars.
6428
6429 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
6430
6431         PR tree-optimization/37185
6432         * matrix-reorg.c (transform_access_sites): Update changed stmt.
6433
6434 2008-08-23  Jan Hubicka  <jh@suse.cz>
6435
6436         * ipa-cp.c (ipcp_analyze_node): New function.
6437         (ipcp_update_cloned_node): Use it.
6438         (ipcp_init_stage): Likewise.
6439         * ipa-inline.c (function_insertion_hook_holder): New static var.
6440         (analyze_function): Break out from ....
6441         (inline_generate_summary): Here; register insertion hook.
6442         (cgraph_decide_inlining): Remove hook.
6443         (add_new_function): New function.
6444
6445 2008-08-23  Jan Hubicka  <jh@suse.cz>
6446
6447         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
6448
6449 2008-08-23  Jan Hubicka  <jh@suse.cz>
6450
6451         * ipa-cp.c (constant_val_insert): Remove.
6452         (ipcp_propagate_one_const): Remove.
6453         (ipcp_create_replace_map): Always insert replacements to the map.
6454         (ipcp_insert_stage): Do not try to insert statements by hand.
6455         * tree-inline.c (insert_init_stmt): Break out from ...
6456         (setup_one_parameter): ... here; allow NULL BB pointer.
6457         (tree_function_versioning): Use setup_one_parameter to process
6458         replacement map.
6459
6460 2008-08-23  Jan Hubicka  <jh@suse.cz>
6461
6462         * tree.c (decl_address_ip_invariant_p): New function.
6463         * tree.h (decl_address_ip_invariant_p): Declare.
6464         * gimple.c (strip_invariant_refs): Break out from ...
6465         (is_gimple_invariant_address): ... here
6466         (is_gimple_ip_invariant_address): New function.
6467         (is_gimple_ip_invariant): New function.
6468         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
6469         Declare.
6470
6471         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
6472         (ipcp_lat_is_insertable): All constants are insertable.
6473         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
6474         IPA_CONST_VALUE_REF.
6475         (ipcp_initialize_node_lattices): Propagate all types of operands.
6476         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
6477         (ipcp_create_replace_map): Reformat.
6478         (ipcp_need_redirect_p): Simplify.
6479         (ipcp_insert_stage): Check that argument is used before clonning.
6480         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
6481         IPA_CONST_REF.
6482         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
6483         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
6484         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
6485         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
6486         (jump_func_type): Remove IPA_CONST_VALUE_REF.
6487         * tree-inline.c (tree_function_versioning): Add variables referenced
6488         by replacing trees.
6489
6490 2008-08-23  Jan Hubicka  <jh@suse.cz>
6491
6492         PR target/37094
6493         * i386.c (standard_80387_constant_p): Use optimize_size.
6494
6495 2008-08-23  Ira Rosen  <irar@il.ibm.com>
6496
6497         PR tree-optimization/37161
6498         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
6499         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
6500         (vect_determine_vectorization_factor): Move the scalar type
6501         retrieval to vect_get_smallest_scalar_type.
6502         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
6503         scalar type. Remove redundant computation.
6504         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
6505         (vect_get_slp_defs): Take the type of RHS into account if
6506         necessary by calling vect_get_smallest_scalar_type. Call
6507         vect_get_constant_vectors with additional argument.
6508
6509 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6510
6511         PR 35648
6512         * doc/invoke.texi (Wwrite-strings): Clarify description.
6513
6514 2008-08-23  Ira Rosen  <irar@il.ibm.com>
6515
6516         PR tree-optimization/37174
6517         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
6518         def stmt is a part of the loop before accessing its stmt_vec_info.
6519
6520 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
6521
6522         PR target/11259
6523         * config/avr/avr.md (UNSPEC_SWAP): New constants.
6524         (*swap): New insn pattern.
6525         (*ashlqi3): Rename from ashlqi3 insn pattern.
6526         (ashlqi3): New expanders.
6527         (*lshrqi3): Rename from lshrqi3 insn pattern.
6528         (lshrqi3): New expanders.
6529         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
6530         lshrqi3_const5, lshrqi3_const6): New splitters.
6531         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
6532         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
6533         peephole2 patterns.
6534
6535 2008-08-22  Richard Guenther  <rguenther@suse.de>
6536
6537         PR tree-optimization/37078
6538         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
6539         [+INF, +INF] ranges.
6540
6541 2008-08-22  Richard Guenther  <rguenther@suse.de>
6542
6543         PR tree-optimization/37143
6544         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
6545         a conversion statement instead of a copy.
6546
6547 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
6548
6549         PR target/37184
6550         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
6551         CCCmode, CCOmode and CCSmode destination modes.
6552
6553         PR target/37191
6554         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
6555         from different units in a single alternative.
6556         (*vec_extractv2sf_1): Ditto.
6557         (*vec_extractv2si_0): Ditto.
6558         (*vec_extractv2si_1): Ditto.
6559         * config/i386/sse.md (sse2_storehpd): Ditto.
6560         (sse2_storelpd): Ditto.
6561         (sse2_loadhpd): Ditto.
6562         (sse2_loadlpd): Ditto.
6563
6564         PR target/37197
6565         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
6566         (popcountsi2): Ditto.
6567         (clzdi2_abm): Ditto.
6568         (popcountdi2): Ditto.
6569         (clzhi2_abm): Ditto.
6570         (popcounthi2): Ditto.
6571
6572 2008-08-22  Richard Guenther  <rguenther@suse.de>
6573
6574         PR middle-end/36548
6575         PR middle-end/37125
6576         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
6577         if the multiplication does not overflow.
6578
6579 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
6580
6581         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
6582
6583 2008-08-21  Richard Henderson  <rth@redhat.com>
6584
6585         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
6586         spurrious comma from test.
6587         * configure: Rebuild.
6588
6589 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6590
6591         PR 30457
6592         * builtins.c (fold_builtin_next_arg): Add warning about undefined
6593         behaviour.
6594
6595 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
6596
6597         * c-tree.h (grokfield): New argument.
6598         * c-decl.c (grokfield): Handle new location argument.
6599         * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
6600
6601 2008-08-21  Richard Guenther  <rguenther@suse.de>
6602
6603         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
6604
6605 2008-08-21  Jan Hubicka  <jh@suse.cz>
6606
6607         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
6608         (cgraph_add_function_insertion_hook,
6609         cgraph_remove_function_insertion_hook,
6610         cgraph_call_function_insertion_hooks): New functions.
6611         * cgraph.h (cgraph_add_function_insertion_hook,
6612         cgraph_remove_function_insertion_hook,
6613         cgraph_call_function_insertion_hooks): Declare.
6614         * ipa-reference.c (function_insertion_hook_holder): New variable.
6615         (check_operand, look_for_address_of): When checking late, do not care
6616         about module bitmaps.
6617         (add_new_function): New function.
6618         (generate_summary): Register hooks; zero module bitmaps.
6619         (propagate): Unregister hooks.
6620         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
6621         (add_new_function): New function.
6622         (generate_summary): Register hook.
6623         (propagate): Remove hook.
6624
6625         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
6626
6627         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
6628         * ipa-cp.c (ipcp_update_cloned_node): New function.
6629         (build_const_val): Handle functions correctly; bring type logic
6630         into sync with tree-inline.c
6631         (ipcp_init_stage):  Take care of computing stuff needed by
6632         indirect inlining; update clones.
6633         (ipcp_generate_summary): Break out of ipcp_driver.
6634         (ipcp_driver): Do only execution and transformation.
6635         (pass_ipa_cp): Make IPA_PASS.
6636         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
6637         offset to address.
6638         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
6639         ipcp, some info is already available.
6640         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
6641         * tree-inline.c (remap_ssa_name): Unshare expression.
6642
6643 2008-08-21  Richard Guenther  <rguenther@suse.de>
6644
6645         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
6646         a PHI ask VN if it is already available.
6647         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
6648         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
6649
6650 2008-08-21  Richard Guenther  <rguenther@suse.de>
6651
6652         PR middle-end/36817
6653         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
6654         makes sure to produce a result of the correct type.
6655
6656 2008-08-21  Jan Hubicka  <jh@suse.cz>
6657         Backport from LTO branch:
6658
6659         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
6660                     Jan Hubicka  <jh@suse.cz>
6661
6662         * ipa-pure-const.c
6663         (init_state, finish_state, set_function_state, generate_summary):
6664         New functions.
6665         (scan_stmt): Renamed from scan_function.  Changed to keep state in
6666         local static vars rather than cgraph aux field.
6667         (propagate): Renamed from static_execute. Changed to keep state in
6668         local static vars rather than cgraph aux field.
6669         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
6670         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
6671
6672         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
6673
6674         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
6675         * ipa-reference.c (init_function_info, generate_summary,
6676         propagate): New functions.
6677         (analyze_function):  Call init_function_info.
6678         (static_execute): Stripped into generate_summary and propagate.
6679         (pass_ipa_reference): Made into ipa_opt_pass.
6680
6681 2008-08-21  Richard Guenther  <rguenther@suse.de>
6682
6683         PR tree-optimization/37181
6684         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
6685         folding result.
6686         (extract_range_from_unary_expr): Likewise.
6687
6688 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6689
6690         * diagnostic.c (pedwarn_at): Rename as pedwarn.
6691         (pedwarn): Delete.
6692         * toplev.h (pedwarn_at): Likewise.
6693         * builtins.c: Update all calls to pedwarn.
6694         * c-lex.c: Likewise.
6695         * toplev.c: Likewise.
6696         * c-tree.h: Likewise.
6697         * c-decl.c: Likewise.
6698         * c-errors.c: Likewise.
6699         * c-typeck.c: Likewise.
6700         * c-common.c: Likewise.
6701         * c-parser.c: Likewise.
6702
6703 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
6704
6705         PR target/31070
6706         * config/sparc/sparc.c (function_arg_slotno): Handle structure
6707         with MODE_VECTOR_INT mode.
6708
6709 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6710
6711         PR middle-end/179
6712         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
6713         initialized outside the current module.
6714         (warn_uninitialized_var): Ignore left-hand side when walking the
6715         trees. Ignore address expressions. Examine VUSE operands in gimple
6716         statements with a variable declaration on the right-hand side.
6717
6718 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
6719
6720         PR bootstrap/37155
6721         * rtlanal.c (subreg_offset_representable_p): Revert last change.
6722
6723 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6724
6725         PR 35701
6726         * c-common.c (conversion_warning): Do not warn if applying bit-and
6727         operator to unsigned constant that fits in the target type.
6728
6729 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6730
6731         PR c++/35602
6732         * c-common.c (conversion_warning): Do not warn for artificial
6733         expressions.
6734
6735 2008-08-20  Richard Guenther  <rguenther@suse.de>
6736
6737         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
6738         (extract_range_from_binary_expr): Fall back to constant propagation.
6739         (extract_range_from_unary_expr): Likewise.
6740
6741 2008-08-20  Richard Guenther  <rguenther@suse.de>
6742
6743         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
6744         with TREE_THIS_VOLATILE on shared nodes.
6745         (fold_stmt_r): Likewise.
6746
6747 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
6748
6749         PR c/37171
6750         * c-parser.c (c_parser_attributes): For keywords use canonical
6751         spelling for attr_name.
6752
6753 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6754
6755         * value-prof.c (check_counter): Revert wrong call to error.
6756
6757 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6758
6759         * profile.c: Update calls to inform.
6760         * value-prof.c: Update calls to inform.
6761
6762 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6763
6764         * diagnostic.c (inform): Add an explicit location_t parameter.
6765         * toplev.h (inform): Update declaration.
6766         * builtins.c: Update all calls to inform.
6767         * c-common.c: Likewise.
6768         * c-decl.c: Likewise.
6769         * c-opts.c: Likewise.
6770         * c-pch.c: Likewise.
6771         * c-pragma.c: Likewise.
6772         * c-typeck.c: Likewise.
6773         * coverage.c: Likewise.
6774         * opts.c: Likewise.
6775         * toplev.c: Likewise.
6776         * tree-cfg.c: Likewise.
6777         * tree-ssa.c: Likewise.
6778
6779 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
6780
6781         PR target/37169
6782         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
6783         V2DI mode, for SSE4.1, use movq instead of vector set if the
6784         second element is zero and inter-unit moves are OK.
6785
6786 2008-08-20  Richard Guenther  <rguenther@suse.de>
6787
6788         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
6789         properly handle conversion/copy chains after tuplification.
6790
6791 2008-08-20  Richard Guenther  <rguenther@suse.de>
6792
6793         * passes.c (init_optimization_passes): Move the second
6794         forwprop pass before alias computation.  Remove the second
6795         DCE pass.  Remove the first dominator and phi copy/const
6796         prop passes.
6797
6798 2008-08-20  Nick Clifton  <nickc@redhat.com>
6799
6800         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
6801         support of this feature.  Do not assume that a sufficiently new
6802         assembler will support the feature regardless of the target type.
6803         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
6804         * configure: Regenerate.
6805
6806 2008-08-20  Richard Guenther  <rguenther@suse.de>
6807
6808         * tree-vrp.c (found_in_subgraph): Remove.
6809         (live): New global static.
6810         (live_on_edge): New function.
6811         (blocks_visited): Remove.
6812         (register_edge_assert_for_2): Use live_on_edge.
6813         (find_conditional_asserts): Remove code dealing with
6814         found_in_subgraph.  Do not walk the CFG.
6815         (find_switch_asserts): Likewise.
6816         (find_assert_locations_1): Renamed from find_assert_locations.
6817         Move finding assert locations for conditional and switch
6818         statements first.  Update live bitmap.  Do not walk the CFG.
6819         (find_assert_locations): New function.
6820         (insert_range_assertions): Remove entry of CFG walk.
6821         Adjust call to find_assert_locations.
6822         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
6823         that only can appear because of fake exit edges but assert we
6824         never try to insert on those.
6825         (fini_pre): Do not remove fake exit edges here...
6826         (execute_pre): ...but here, before committing edge inserts.
6827
6828 2008-08-19  Richard Guenther  <rguenther@suse.de>
6829
6830         * passes.c (init_optimization_passes): Exchange store-ccp
6831         with a ccp pass.
6832
6833 2008-08-19  Rafael Espíndola  <espindola@google.com>
6834
6835         * varasm.c (weak_decls): Move earlier in the file.
6836         (assemble_external): Add weak decls to the weak_decls list.
6837         (declare_weak): Don't add decls to the weak_decls list.
6838
6839 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
6840
6841         PR target/37157
6842         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
6843         before (sse2_shufpd_<mode>).
6844
6845 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
6846
6847         PR debug/37156
6848         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
6849         * tree.c (block_nonartificial_location): Likewise.
6850
6851 2008-08-19  Richard Guenther  <rguenther@suse.de>
6852
6853         PR tree-optimization/35972
6854         PR tree-optimization/23094
6855         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
6856         parameter.
6857         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
6858         handle MISALIGNED_INDIRECT_REF.
6859         (get_ref_from_reference_ops): New helper.
6860         (vn_reference_lookup_pieces): Walk the use-def chain using the
6861         alias-oracle if requested.
6862         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
6863         walking the use-def chain.
6864         (compute_avail): But not here.
6865         (create_component_ref_by_pieces_1): Properly handle
6866         MISALIGNED_INDIRECT_REF.
6867         (do_regular_insertion): Handle fully redundant
6868         expressions after PHI-translation also for SSA_NAME values, not
6869         only constants.  Correctly use edoubleprime for that.
6870
6871 2008-08-19  Ira Rosen  <irar@il.ibm.com>
6872
6873         * tree-vectorizer.c (supportable_widening_operation): Support
6874         multi-step conversion, return the number of steps in such conversion
6875         and the required intermediate types.
6876         (supportable_narrowing_operation): Likewise.
6877         * tree-vectorizer.h (vect_pow2): New function.
6878         (supportable_widening_operation): Change argument types.
6879         (supportable_narrowing_operation): Likewise.
6880         (vectorizable_type_promotion): Add an argument.
6881         (vectorizable_type_demotion): Likewise.
6882         * tree-vect-analyze.c (vect_analyze_operations): Call
6883         vectorizable_type_promotion and vectorizable_type_demotion with
6884         additional argument.
6885         (vect_get_and_check_slp_defs): Detect patterns.
6886         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
6887         types.
6888         (vect_analyze_slp_instance): Don't fail in case of multiple types.
6889         Call vect_build_slp_tree with correct arguments. Calculate unrolling
6890         factor according to the smallest type in the loop.
6891         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
6892         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
6893         supportable_widening_operation with correct arguments.
6894         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
6895         operands lists according to the number of vector statements in left
6896         or right node, if exists.
6897         (vect_gen_widened_results_half): Remove unused argument.
6898         (vectorizable_conversion): Call supportable_widening_operation,
6899         supportable_narrowing_operation, and vect_gen_widened_results_half
6900         with correct arguments.
6901         (vectorizable_assignment): Change documentation, support multiple
6902         types in SLP.
6903         (vectorizable_operation): Likewise.
6904         (vect_get_loop_based_defs): New function.
6905         (vect_create_vectorized_demotion_stmts): Likewise.
6906         (vectorizable_type_demotion): Support loop-aware SLP and general
6907         multi-step conversion. Call vect_get_loop_based_defs and
6908         vect_create_vectorized_demotion_stmts for transformation.
6909         (vect_create_vectorized_promotion_stmts): New function.
6910         (vectorizable_type_promotion): Support loop-aware SLP and general
6911         multi-step conversion. Call vect_create_vectorized_promotion_stmts
6912         for transformation.
6913         (vectorizable_store): Change documentation, support multiple
6914         types in SLP.
6915         (vectorizable_load): Likewise.
6916         (vect_transform_stmt): Pass SLP_NODE to
6917         vectorizable_type_promotion and vectorizable_type_demotion.
6918         (vect_schedule_slp_instance): Move here the calculation of number
6919         of vectorized statements for each node from...
6920         (vect_schedule_slp): ... here.
6921         (vect_transform_loop): Call vect_schedule_slp without the last
6922         argument.
6923
6924 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
6925
6926         PR bootstrap/37152
6927         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
6928         to == in assert statement.
6929         (vectorizable_reduction): Fix typo.
6930
6931 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
6932
6933         PR bootstrap/37153
6934         * value-prof.c (check_counter): Dereference pointer to overall
6935         count when printing it.
6936
6937 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
6938
6939         * profile.h: Really add it.
6940
6941 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
6942
6943         * mcf.c: Really add it.
6944
6945 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
6946             Vinodha Ramasamy  <vinodha@google.com>
6947
6948         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
6949         count_scale.
6950         * value-prof.c (check_counter): Fix the counter if
6951         flag_profile_correction is true.
6952         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
6953         tree_mod_subtract_transform):
6954         Follow check_counter parameter change.
6955         * common.opt (fprofile-correction): New option.
6956         * mcf.c: New file.
6957         * profile.h: Likewise.
6958         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
6959         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
6960         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
6961         functions.
6962         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
6963         flag_profile_correction is set.
6964
6965 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
6966
6967         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
6968
6969 2008-08-18  Tomas Bily  <tbily@suse.cz>
6970
6971         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
6972         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
6973         CONVERT_EXPR_P.
6974         * tree-data-ref.c (split_constant_offset_1): Likewise.
6975         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
6976         * tree-sra.c (sra_walk_expr): Likewise.
6977         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
6978         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
6979         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
6980         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
6981         Likewise.
6982         * gimple.c (gimple_assign_unary_nop_p): Likewise.
6983         * tree-vect-transform.c (vectorizable_type_demotion)
6984         (vectorizable_type_promotion): Likewise.
6985         * tree-inline.c (expand_call_inline):
6986         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
6987         (forward_propagate_addr_expr_1, forward_propagate_comparison)
6988         (tree_ssa_forward_propagate_single_use_vars): Likewise.
6989         * expr.c (expand_expr_real_1): Likewise.
6990         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
6991         (gimple_assign_unary_useless_conversion_p): Likewise.
6992         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6993         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
6994         * fold-const.c (fold_unary): Likewise.
6995         * tree.h (CONVERT_EXPR_P): Likewise.
6996         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
6997         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
6998         * tree-vrp.c:
6999         (register_edge_assert_for_2, extract_range_from_unary_expr)
7000         (register_edge_assert_for_1): Likewise.
7001
7002 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7003
7004         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
7005         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
7006         (enum real_value_const): Delete.
7007         (get_real_const): Delete.
7008         * real.c (get_real_const): Delete.
7009         (dconst_e_ptr): Define.
7010         (dconst_third_ptr): Define.
7011         (dconst_sqrt2_ptr): Define.
7012         * builtins.c: Update all callers.
7013
7014 2008-08-18  Richard Guenther  <rguenther@suse.de>
7015
7016         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
7017         statement iterator after statement removal.
7018
7019 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
7020
7021         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
7022         (detect_processor_freebsd): Likewise.
7023         (host_detect_local_cpu): Call newly added functions for FreeBSD.
7024
7025 2008-08-18  Richard Guenther  <rguenther@suse.de>
7026
7027         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
7028         and loads have the correct types.
7029
7030 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7031
7032         PR cpp/7263
7033         * c-opts.c (cpp_opts): Remove static.
7034         * c-parser.c (cpp_opts): Declare it extern.
7035         (disable_extension_diagnostics): Handle cpp options.
7036         (enable_extension_diagnostics): Likewise.
7037
7038 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7039
7040         * diagnostics.c (permerror_at): Rename as permerror.
7041         (permerror): Delete.
7042         * toplev.h: Likewise.
7043
7044 2008-08-18  Richard Guenther  <rguenther@suse.de>
7045
7046         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
7047         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
7048         Move call_cdce before build_alias.  Move copyrename2,
7049         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
7050         right after final inlining.
7051         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
7052         (pass_build_cfg): But instead via TODO_dump_func.
7053
7054 2008-08-18  Richard Guenther  <rguenther@suse.de>
7055
7056         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
7057         element index.
7058         (scalarize_init): If we failed to generate some initializers
7059         do not generate zeros for not instantiated members.  Instead
7060         rely on the copy out.
7061         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
7062         about missing flow-sensitive alias info only if we have
7063         aliases computed.
7064
7065 2008-08-17  Nick Clifton  <nickc@redhat.com>
7066
7067         * doc/extend.texi (Function Attributes): Fix typo in description
7068         if hot function attribute.
7069
7070 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
7071             Richard Sandiford  <rdsandiford@googlemail.com>
7072
7073         * doc/install.texi (--with-mips-plt): Document.
7074         * doc/invoke.texi (-mplt, -mno-plt): Document.
7075         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
7076         and handle ${with_mips_plt}.
7077         * config/mips/mips.opt (mplt): New option.
7078         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
7079         (TARGET_ABICALLS_PIC2): Likewise.
7080         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
7081         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
7082         (ASM_SPEC): Use !mabi=* instead of !mabi*.
7083         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
7084         to decide whether to output ".option picX" directives.
7085         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
7086         Pass -call_nonpic rather than -KPIC for -mplt.
7087         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
7088         on the command line.  Also remove it when -mabi=64 is used without
7089         -msym32.
7090         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
7091         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
7092         TARGET_ABICALLS_PIC0.
7093         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
7094         TARGET_ABICALLS.
7095         (mips16_build_function_stub): Only output ".option pic" directives
7096         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
7097         (mips16_build_call_stub): Fix comment and remove redundant
7098         ".set at"/"set .noat" directives.
7099         (mips_function_rodata_section): Use the default behaviour for
7100         TARGET_ABSOLUTE_ABICALLS.
7101         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
7102         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
7103         (mips_restore_gp): Do nothing if the current function doesn't use
7104         a global pointer.
7105         (mips_expand_prologue): Only save $gp if the current function uses it.
7106         Use a normal move for TARGET_ABICALLS_PIC0.
7107         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
7108
7109 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
7110
7111         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
7112         of function when handling GLOBAL_POINTER_REGNUM.
7113
7114 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
7115
7116         PR ada/20548
7117         * common.opt (-fstack-check): Do not declare the variable here.
7118         (-fstack-check=): New option variant.
7119         * doc/invoke.texi (Code Gen Options): Document it.
7120         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
7121         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
7122         (STACK_CHECK_STATIC_BUILTIN): New macro.
7123         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
7124         * opts.c: Include expr.h.
7125         (common_handle_option) <OPT_fold_stack_check_>: New case.
7126         <OPT_fstack_check>: Likewise.
7127         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
7128         consistently in the test for variable-sized types.  Adjust for
7129         new behaviour of flag_stack_check.
7130         * explow.c: Include except.h.
7131         (allocate_dynamic_stack_space): Do not take into account
7132         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
7133         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
7134         for variable-sized parameters.  Treat all parameters whose size is
7135         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
7136         stack checking is enabled.
7137         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
7138         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
7139         if generic stack checking is enabled.
7140         (expand_function_end): Adjust for new behaviour of flag_stack_check.
7141         * reload1.c (reload): Likewise.
7142         * stmt.c (expand_decl): Assert that all automatic variables have
7143         fixed size at this point and remove dead code.
7144         * flags.h (stack_check_type): New enumeration type.
7145         (flag_stack_check): Declare.
7146         * toplev.c (flag_stack_check): New global variable.
7147         * Makefile.in (opts.o): Add dependency on EXPR_H.
7148         (explow.o): Add dependency on except.h.
7149
7150 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
7151
7152         * config/avr/avr.c (avr_override_options): Reduce value of
7153         PARAM_INLINE_CALL_COST.
7154
7155 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
7156
7157         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
7158         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
7159         lieu of TYPE_MODE (type) throughout.
7160
7161 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
7162
7163         * config/arm/arm.c (add_minipool_backward_ref): Check for
7164         8-byte-aligned entries in second case of forcing insertion after a
7165         particular entry.  Change third case to avoid inserting
7166         non-8-byte-aligned entries before 8-byte-aligned ones.
7167
7168 2008-08-15  Richard Guenther  <rguenther@suse.de>
7169
7170         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
7171         strip components for unknown size accesses.
7172
7173 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
7174
7175         * config/s390/2097.md New file.
7176         * config/s390/s390.md ("z10prop" attribute): Define none,
7177         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
7178         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
7179         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
7180         possible values and apply them to insns as appropriate.
7181         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
7182         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
7183         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
7184         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
7185         ("bfp" mode attribute): Removed.  Every occurence replaced
7186         with <mode>.
7187         * config/s390/s390.c (struct "z10_cost"): Updated entries.
7188         * config/s390/2084.md (insn_reservation "x_itof"): Updated
7189         type attribute.
7190
7191 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7192
7193         PR c/28152
7194         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
7195         for keywords.
7196
7197 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
7198
7199         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
7200         additional argument. Support reduction when duplication is needed due
7201         to data-types of different sizes in the loop.
7202         (get_initial_def_for_induction): Fix printout.
7203         (vect_get_vec_def_for_stmt_copy): Support case where the
7204         vec_stmt_for_operand is a phi node.
7205         (vectorizable_reduction): Support reduction when duplication is needed
7206         due to data-types of different sizes in the loop.
7207         (vectorizable_call): Remove restriction to not vectorize in case we
7208         have data-types of different sizes in the loop.
7209         (vectorizable_conversion): Likewise.
7210         (vectorizable_operation): Likewise.
7211         (vectorizable_type_demotion): Likewise.
7212         (vectorizable_type_promotion): Likewise.
7213         (vectorizable_induction): Add restriction to not vectorize in case
7214         we have data-types of different sizes in the loop.
7215
7216 2008-08-14  Christophe Saout  <christophe@saout.de>
7217             Uros Bizjak  <ubizjak@gmail.com>
7218
7219         PR target/37101
7220         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
7221         (*vec_concatv2di_rex64_sse4_1): Ditto.
7222         (*vec_concatv2di_rex64_sse): Ditto.
7223
7224 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
7225
7226         PR middle-end/37103
7227         * fold-const.c (fold_widened_comparison): Do not allow
7228         sign changes that change the result even if shorter type
7229         is wider than arg1_unw's type.
7230
7231 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
7232
7233         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
7234         Skip if the multilib testing specifies -march that does not
7235         agree with the one specified in the testcase.
7236
7237 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
7238
7239         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
7240         zero extend SImode values being converted to TFmode before passing
7241         to libcalls.
7242
7243 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7244
7245         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
7246         __PPU__ when targeting the Cell/B.E. PPU processor.
7247
7248 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
7249
7250         * gimple.h (gimple_call_set_chain): Accept SSA variables.
7251         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
7252         Rematerialize the static chain, if any.
7253         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
7254         static chain.
7255
7256 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
7257
7258         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
7259         (new_loc_descr): Likewise.
7260         (add_loc_descr): Likewise.
7261         (size_of_loc_descr): Likewise.
7262         (size_of_locs): Likewise.
7263         (output_loc_operands): Likewise.
7264         (output_loc_sequence): Likewise.
7265         (new_reg_loc_descr): New.
7266         (build_cfa_loc): Use it.
7267         (build_cfa_aligned_loc): Likewise.
7268         (one_reg_loc_descriptor): Likewise.
7269         (based_loc_descr): Likewise.
7270
7271 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7272
7273         PR 30551
7274         * doc/invoke.texi (Wmain): Update.
7275         * c-decl.c (start_decl): warn_main is only 0 or 1.
7276         (start_function): Likewise. Fix formatting.
7277         (finish_function): Delete redundant warning.
7278         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
7279         * c-opts (c_common_handle_option): -Wall only has effect if
7280         warn_main is uninitialized. OPT_Wmain is automatically
7281         handled. -pedantic also enables Wmain.
7282         (c_common_post_options): Handle all logic for Wmain here.
7283         * c-common.c (warn_main): Delete.
7284         (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
7285         * c-common.h (warn_main): Delete.
7286
7287 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
7288
7289         PR middle-end/36701
7290         * expr.c (emit_group_store): Allocate stack temp with the
7291         largest alignment when copying from register to stack.
7292
7293 2008-08-13  Richard Guenther  <rguenther@suse.de>
7294
7295         * tree.h (maybe_fold_offset_to_address): Declare.
7296         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
7297         (ccp_fold): Handle pointer conversions the same as fold_stmt.
7298         Likewise for POINTER_PLUS_EXPR.
7299         (maybe_fold_offset_to_reference): Enable disabled code.
7300         (maybe_fold_offset_to_address): New function.
7301         (fold_stmt_r): Use it.
7302         (fold_gimple_assign): Likewise.
7303         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
7304         (gimplify_expr): Likewise.
7305
7306 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7307
7308         * toplev.h (pedwarn_at): Fix declaration.
7309
7310 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
7311
7312         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
7313         LINK_SPEC): Use %R in -Y P argument.
7314
7315 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7316
7317         PR c/15236
7318         * diagnostic.c (pedwarn_at): New.
7319         * toplev.h (pedwarn_at): Declare.
7320         * c-tree.h (build_enumerator): Update declaration.
7321         * c-decl.c (finish_enum): Update comment.
7322         (build_enumerator): Take a location parameter. Give a pedwarn but do
7323         not perform any conversion.
7324         * c-parser.c (c_parser_enum_specifier): Set correct location for
7325         enumerator.
7326
7327 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7328
7329         PR 35635
7330         * c-common.c (conversion_warning): Use a switch. Ignore boolean
7331         expressions except for conversions to signed:1 bitfields. Handle
7332         COND_EXPR with constant operands.
7333
7334 2008-08-13  Richard Guenther  <rguenther@suse.de>
7335
7336         PR tree-optimization/15255
7337         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
7338         (struct oecount_s): New struct and VEC types.
7339         (cvec): New global.
7340         (oecount_hash): New function.
7341         (oecount_eq): Likewise.
7342         (oecount_cmp): Likewise.
7343         (zero_one_operation): New function.
7344         (build_and_add_sum): Likewise.
7345         (undistribute_ops_list): Perform un-distribution of multiplication
7346         and division on the chain of summands.
7347         (should_break_up_subtract): Also break up subtracts for factors.
7348         (reassociate_bb): Delete dead visited statements.
7349         Call undistribute_ops_list.  Re-sort and optimize if it did something.
7350         * passes.c (init_optimization_passes): Move DSE before
7351         reassociation.
7352         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
7353         PHI nodes.
7354
7355 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
7356
7357         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
7358
7359         * doc/invoke.texi: Revert unintended checkin.
7360
7361 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
7362
7363         PR libgomp/26165
7364         * gcc.c (include_spec_function): Tweak call to find_a_file.
7365
7366 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
7367
7368         PR middle-end/37014
7369         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
7370         and TRUTH_ORIF_EXPR.
7371         * dojump.c (do_jump): Likewise.
7372
7373         PR tree-optimization/37084
7374         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
7375         if id->regimplify, don't assume stmt is a cast assignment.
7376
7377 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
7378
7379         * final.c (final_scan_insn): Use app_enable/app_disable functions.
7380
7381 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7382
7383         PR bootstrap/37097
7384         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
7385         by last change.
7386
7387 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7388
7389         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
7390         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
7391
7392         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
7393         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
7394         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
7395         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
7396         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
7397
7398         * doc/tm.texi (Storage Layout): Remove documentation for
7399         TARGET_FLOAT_FORMAT.
7400
7401         * simplify-rtx.c (simplify_binary_operation_1): Replace
7402         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
7403
7404 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7405
7406         * real.h (struct real_format): New member has_sign_dependent_rounding.
7407         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
7408         spu_single_format, ieee_double_format, mips_double_format,
7409         motorola_double_format, ieee_extended_motorola_format,
7410         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
7411         ieee_extended_intel_96_round_53_format, ibm_extended_format,
7412         mips_extended_format, ieee_quad_format, mips_quad_format,
7413         vax_f_format, vax_d_format, vax_g_format): Initialize it.
7414         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
7415
7416         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
7417         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
7418         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
7419         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
7420         (ROUND_TOWARDS_ZERO): Likewise.
7421
7422         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
7423         (FLOAT_MODE_FORMAT): New macro.
7424         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
7425         (MODE_COMPOSITE_P): ... this new macro.
7426         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
7427         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
7428         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
7429
7430         * flags.h: Include "real.h".
7431
7432         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
7433         REAL_MODE_FORMAT_COMPOSITE_P.
7434         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
7435
7436         * doc/tm.texi (Storage Layout): Remove documentation of
7437         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
7438         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
7439         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
7440         they only apply to libgcc2.a.
7441
7442 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7443
7444         * config/spu/float_disf.c: New file.
7445         * config/spu/float_unsdisf.c: New file.
7446         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
7447         (LIB2FUNCS_EXCLUDE): Define.
7448
7449 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7450             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
7451
7452         * real.h (struct real_format): New member round_towards_zero.
7453         * real.c (round_for_format): Respect fmt->round_towards_zero.
7454         (ieee_single_format, mips_single_format, motorola_single_format,
7455         spu_single_format, ieee_double_format, mips_double_format,
7456         motorola_double_format, ieee_extended_motorola_format,
7457         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
7458         ieee_extended_intel_96_round_53_format, ibm_extended_format,
7459         mips_extended_format, ieee_quad_format, mips_quad_format,
7460         vax_f_format, vax_d_format, vax_g_format): Initialize it.
7461         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
7462
7463         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
7464         real_format to choose rounding mode when calling MPFR functions.
7465         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
7466         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
7467
7468         * real.h (real_to_decimal_for_mode): Add prototype.
7469         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
7470         Respect target rounding mode when generating decimal representation.
7471         (real_to_decimal): New stub for backwards compatibility.
7472         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
7473         real_to_decimal_for_mode instead of real_to_decimal.
7474
7475         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
7476
7477 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7478             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
7479
7480         * real.c (spu_single_format): New variable.
7481         * real.h (spu_single_format): Declare.
7482
7483         * config/spu/spu.c (spu_override_options): Install SFmode format.
7484         (spu_split_immediate): Use integer mode to operate on pieces of
7485         floating-point values in all cases.
7486
7487         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
7488         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
7489         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
7490
7491 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7492
7493         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
7494
7495 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7496
7497         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
7498
7499 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
7500
7501         PR c++/36688
7502         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
7503         on the VAR_DECL instead of TYPE_READONLY on its type.
7504
7505 2008-08-12  Ira Rosen  <irar@il.ibm.com>
7506
7507         * tree-vectorizer.c: Depend on langhooks.h.
7508         (supportable_widening_operation): Add two arguments. Support double
7509         type conversions.
7510         (supportable_narrowing_operation): Likewise.
7511         * tree-vectorizer.h (supportable_widening_operation): Add two
7512         arguments.
7513         (supportable_narrowing_operation): Likewise.
7514         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
7515         supportable_widening_operation with correct arguments.
7516         * tree-vect-transform.c (vectorizable_conversion): Likewise.
7517         (vectorizable_type_demotion): Support double type conversions.
7518         (vectorizable_type_promotion): Likewise.
7519         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
7520
7521 2008-08-11  Michael Matz  <matz@suse.de>
7522
7523         * i386/i386.c (override_options): Move initialisation from
7524         flag_schedule_insns_after_reload to here from ...
7525         (optimization_options): ... here.
7526
7527 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
7528
7529         PR rtl-optimization/36998
7530         * dwarf2out.c (compute_barrier_args_size_1,
7531         compute_barrier_args_size): Temporarily remove assertions.
7532
7533 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7534
7535         PR middle-end/20644
7536         * tree-ssa.c (struct walk_data): Add new flag
7537         warn_possibly_uninitialized.
7538         (warn_uninitialized_var): Use it.
7539         (warn_uninitialized_vars): New.
7540         (execute_early_warn_uninitialized): Call it.
7541         (execute_late_warn_uninitialized): Likewise.
7542
7543 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7544
7545         PR middle-end/36238
7546         * reload1.c (gen_reload): Guard calls to get_secondary_mem
7547         for memory subregs.
7548
7549 2008-08-09  Jan Hubicka  <jh@suse.cz>
7550
7551         PR target/37055
7552         * optabs.c (maybe_emit_unop_insn): Remove produced code if
7553         expansion failed.
7554         (expand_fix): Be prepared for expansion to fail.
7555         (expand_sfix_optab): Remove instructions if expansion failed.
7556
7557 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
7558
7559         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
7560         avr31 architecture.
7561         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
7562         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7563
7564 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
7565
7566         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
7567         mips/t-libgcc-mips16 to tmake_file.
7568         * config/mips/mips-protos.h (mips_call_type): New enum.
7569         (mips_pic_base_register, mips_got_load): Declare.
7570         (mips_restore_gp): Take an rtx argument.
7571         (mips_use_pic_fn_addr_reg_p): Declare.
7572         (mips_expand_call): Replace the sibcall_p argument with
7573         a mips_call_type argument.  Add a lazy_p parameter.
7574         (mips_split_call): Declare.
7575         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
7576         (MIPS16_PIC_TEMP): Likewise.
7577         (reg_class): Delete M16_NA_REGS.
7578         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
7579         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
7580         (mips_split_hi_p): Declare.
7581         * config/mips/mips.c (mips_split_hi_p): New array.
7582         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
7583         (mips_got_symbol_type_p): New function.
7584         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
7585         (mips16_stub_function_p): New function.
7586         (mips16_local_function_p): Likewise.
7587         (mips_use_pic_fn_addr_reg_p): Likewise.
7588         (mips_cannot_force_const_mem): Return false for HIGHs.
7589         Extend CONST_INT and symbolic handling to MIPS16, using
7590         mips_symbol_insns to check that the base symbol type is a
7591         legitimate constant.  Reject GOT-based constants if
7592         TARGET_MIPS16_PCREL_LOADS.
7593         (mips_const_insns): Check targetm.cannot_force_const_mem when
7594         decomposing a symbolic base and a large offset.
7595         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
7596         When calling a function that needs $25 from MIPS16 code,
7597         move the target address into $25 separately and add a USE
7598         to the call insn.
7599         (mips16_gp_pseudo_reg): Insert the initializer immediately
7600         before the first real insn.
7601         (mips_pic_base_register, mips_got_load): New functions.
7602         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
7603         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
7604         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
7605         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
7606         (mips_call_tls_get_addr): Update the call to mips_expand_call,
7607         also passing NULL_RTX rather than const0_rtx as the aux argument.
7608         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
7609         instead of TARGET_EXPLICIT_RELOCS.
7610         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
7611         (mips_load_call_address): Replace the sibcall_p argument with
7612         a mips_call_type argument.  Use mips_got_load.
7613         (mips16_local_alias): New structure.
7614         (mips16_local_aliases): New variable.
7615         (mips16_local_aliases_hash): New function.
7616         (mips16_local_aliases_eq): Likewise.
7617         (mips16_local_alias): Likewise.
7618         (mips16_stub_function): Likewise.
7619         (mips16_build_function_stub): Create a local alias for the target
7620         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
7621         .cpload directive and an R_MIPS_NONE relocation for the target
7622         function, then load the alias rather than the function itself.
7623         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
7624         (mips16_copy_fpr_return_value): Use mips16_stub_function and
7625         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
7626         (mips16_build_call_stub): Replace the FN parameter with an
7627         FN_PTR parameter.  Force the address into a register if it
7628         isn't a call_insn_operand; don't rely on the caller to do this.
7629         If a call to a locally-defined and locally-binding MIPS16
7630         function must be made indirectly, redirect the call to the
7631         function's local alias.  Use mips16_stub_function_p,
7632         mips16_stub_function, mips_expand_call and use_reg.
7633         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
7634         Use explicit %hi and %lo accesses where possible.
7635         Use MIPS_CALL to generate the correct code form of a
7636         jal instruction.  Add clobbers of $18 instead of uses.
7637         Update the call to mips_emit_call_insn.
7638         (mips_expand_call): Replace the SIBCALL_P argument with a
7639         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
7640         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
7641         allowing it to modify the call address.  Update the calls to
7642         mips_load_call_address and mips_emit_call_insn.
7643         (mips_split_call): New function.
7644         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
7645         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
7646         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
7647         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
7648         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
7649         if TARGET_MIPS16.
7650         (mips_cprestore_slot): New function.
7651         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
7652         and use mips_cprestore_slot.
7653         (mips_output_function_prologue): Handle TARGET_MIPS16 for
7654         LOADGP_OLDABI.
7655         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
7656         then use a copygp_mips16 instruction to set up $28.
7657         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
7658         (mips16_lay_out_constants): Call split_all_insns_noflow.
7659         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
7660         false if TARGET_MIPS16.
7661         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
7662         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
7663         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
7664         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
7665         MIPS16 code.  Allow MIPS16 o32 PIC.
7666         (mips_override_options): Allow MIPS16 o32 PIC.
7667         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
7668         after reload if TARGET_USE_GOT.
7669         (UNSPEC_COPYGP): New constant.
7670         (length): Use a default length of 8 for MIPS16 GOT loads.
7671         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
7672         (*got_page<mode>): Check mips_split_hi_p.
7673         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
7674         (unspec_got<mode>, unspec_call<mode>): New expanders.
7675         (load_got<mode>, load_call<mode>): Remove the length attributes.
7676         Use a got attribute instead of a type attribute.
7677         (copygp_mips16): New insn.
7678         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
7679         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
7680         (sibcall, sibcall_value, call, call_value): Update the calls
7681         to mips_expand_call.
7682         (call_internal, call_value_internal): Use mips_split_call.
7683         (call_value_multiple_internal): Likewise.
7684         (call_split): Move after call_internal (the insn it is split from).
7685         (call_internal_direct, call_value_internal_direct): Turn into
7686         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
7687         (call_direct_split, call_value_direct_split): New patterns.
7688         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
7689         and use M16_REGS instead of M16_NA_REGS.
7690         * config/mips/predicates.md (const_call_insn_operand): Replace
7691         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
7692         mips_use_pic_fn_addr_reg_p check.
7693         (move_operand): Reject HIGHs if mips_split_hi_p.
7694         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
7695         (__mips16_floatunsisf): Inline __mips16_floatsisf.
7696         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
7697         * config/mips/libgcc-mips16.ver: New file.
7698         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
7699         $(srcdir)/config/mips/libgcc-mips16.ver.
7700
7701 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
7702
7703         * config/mips/mips.c (mips_unspec_address_offset): Move earlier
7704         in file.
7705         (mips_unspec_address, mips_unspec_offset_high): Likewise.
7706         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
7707         (mips16_cfun_returns_in_fpr_p): Likewise.
7708
7709 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
7710
7711         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
7712         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
7713         rather than 4 to PC.
7714
7715 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
7716
7717         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
7718         (FUNCTION_PROFILER): Save the static chain pointer into $2
7719         beforehand and restore it aftewards.
7720         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
7721         address directly into $25 and call the function through $25;
7722         do not clobber $3.  Pad the DImode version to cover the space
7723         left by the deleted $25 <- $3 move.
7724         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
7725         the removal of the $25 <- $3 move.
7726         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
7727         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
7728
7729 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
7730             Daniel Jacobowitz  <dan@codesourcery.com>
7731
7732         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
7733         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
7734         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
7735         * config/mips/mips.c (mips_start_function_definition): New function.
7736         (mips_end_function_definition): Likewise.
7737         (mips_output_function_prologue): Use mips_start_function_definition.
7738         (mips_output_function_epilogue): Use mips_end_function_definition.
7739         (build_mips16_function_stub): Use mips_start_function_definition
7740         and mips_end_function_definition.
7741         (build_mips16_call_stub): Likewise.
7742
7743 2008-08-09  Richard Guenther  <rguenther@suse.de>
7744
7745         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
7746         * gimple.h (gimple_call_fn): Adjust comment.
7747         (gimple_call_set_fndecl): New function.
7748         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
7749         longer having bare FUNCTION_DECL operand.
7750         (gimple_call_return_type): Likewise.
7751         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
7752
7753         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
7754         (gimple_mod_pow2): Likewise.
7755         (gimple_mod_subtract): Likewise.
7756         (gimple_ic): Likewise.
7757         (gimple_stringop_fixed_value): Likewise.
7758         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
7759         longer having bare FUNCTION_DECL operand.
7760         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
7761         * omp-low.c (optimize_omp_library_calls): Likewise.
7762         * cgraphunit.c (update_call_expr): Likewise.
7763         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
7764         (execute_convert_to_rsqrt): Likewise.
7765         * cfgexpand.c (gimple_to_tree): Simplify.
7766         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
7767         bare FUNCTION_DECL operand.
7768         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
7769         (convert_gimple_call): Use gimple_call_fndecl.
7770         * c-common.c (c_warn_unused_result): Likewise.
7771
7772 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7773
7774         PR c/17880
7775         * c-typeck.c (digest_init): Call verify_sequence_points from here.
7776         (c_finish_return): Likewise.
7777         (c_start_case): Likewise.
7778         * c-common.c (warn_for_collisions_1): Use explicit location in warning.
7779         * c-parser.c (c_parser_condition): New. Call
7780         verify_sequence_points.
7781         (c_parser_paren_condition): Call c_parser_condition.
7782         (c_parser_for_statement): Call c_parser_condition.
7783
7784 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7785
7786         PR 36901
7787         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
7788         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
7789         Moved from diagnostic.h
7790         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
7791         DK_PERMERROR.
7792         (emit_diagnostic): New.
7793         (warning0, pedwarn0): Delete.
7794         (warning, warning_at, pedwarn, permerror): Return bool.
7795         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
7796         Moved to diagnostic.c.
7797         (struct diagnostic_context): Use correct type for
7798         classify_diagnostic.
7799         (diagnostic_report_diagnostic): Update declaration.
7800         (emit_diagnostic): Declare.
7801         * errors.c (warning): Return bool.
7802         * errors.h (warning): Update declaration.
7803         * toplev.h (warning0, pedwarn0): Delete.
7804         (warning, warning_at, pedwarn, permerror): Return bool.
7805         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
7806         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
7807         inform. Update all calls.
7808         (diagnose_mismatched_decls): Check return value of warning/pedwarn
7809         before giving informative note.
7810         (implicit_decl_warning): Likewise.
7811         * c-typeck.c (build_function_call): Likewise.
7812         * tree-sssa.c (warn_uninit): Likewise.
7813         * builtins.c (gimplify_va_arg_expr): Likewise.
7814
7815 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7816
7817         PR 7651
7818         * doc/invoke.texi (-Wextra): Move warning from here...
7819         (-Wuninitialized): ... to here.
7820
7821 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7822
7823         PR 28875
7824         * flags.h (set_Wunused): Delete
7825         * toplev.c (process_options): Handle Wunused flags here.
7826         * opts.c (maybe_warn_unused_parameter): Delete.
7827         (common_handle_option): Replace set_Wunused by warn_unused.
7828         (set_Wextra): Do not handle Wunused-parameter here.
7829         (set_Wunused): Delete.
7830         * c-opts.c (c_common_handle_option): Replace set_Wunused by
7831         warn_unused.
7832         * common.opt (Wunused): Add Var and Init.
7833         (Wunused-function): Likewise.
7834         (Wunused-label): Likewise.
7835         (Wunused-parameter): Likewise.
7836         (Wunused-value): Likewise.
7837         (Wunused-variable): Likewise.
7838
7839 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
7840
7841         * doc/invoke.texi: Add cpu_type power7.
7842         * config.in (HAVE_AS_VSX): New.
7843         * config.gcc: Add cpu_type power7.
7844         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
7845         VSX instructions.
7846         * configure: Regenerate.
7847         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
7848         power5.
7849         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
7850         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
7851         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
7852
7853 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
7854
7855         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
7856         type to vectorize.builtin_conversion.
7857         (vectorizable_conversion): Likewise.
7858         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
7859         integral type as input.
7860         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
7861         FIX_TRUNC_EXPR.
7862         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
7863         and ALTIVEC_BUILTIN_VCTSXS.
7864         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
7865         formatting.
7866
7867 2008-08-08  Richard Guenther  <rguenther@suse.de>
7868
7869         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
7870         (surely_varying_stmt_p): Calls are varying only if they are
7871         non-builtin and not indirect or have no result.
7872         (ccp_fold): Re-instantiate code before the tuples merge.
7873
7874 2008-08-08  Richard Guenther  <rguenther@suse.de>
7875
7876         PR tree-optimization/37056
7877         * gimple.h (gimple_assign_rhs_class): New helper function.
7878         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
7879         unary operations properly.
7880
7881 2008-08-07  Jan Hubicka  <jh@suse.cz>
7882
7883         * i386.h (ix86_size_cost): Declare.
7884         (ix86_cur_cost): New function macro.
7885         * i386.md (peepholes expanding size and splitters): Predicate by
7886         optimize_insn_for_speed_p.
7887         (peepholes reduce size and splitters): Predicate by
7888         optimize_insn_for_size_p.
7889         * i386.c (ix86_size_cost): Rename from ...
7890         (size_cost): This one.
7891         (override_options): Update.
7892         (decide_alg): Likewise.
7893         (ix86_expand_clear): Use RTL profile.
7894         (ix86_pad_returns): Use RTL profile.
7895
7896 2008-08-07  Jan Hubicka  <jh@suse.cz>
7897
7898         * recog.c (split_all_insns): Set RTL profile
7899         (peephole2_optimize): Likewise.
7900         * function.c (thread_prologue_and_epilogue_insns): Likewise.
7901         * combine.c (combine_instructions): Likewise.
7902
7903 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7904
7905         * c-common.c (c_common_reswords): Also warn about keyword "bool".
7906
7907 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
7908
7909         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
7910         value in a6 after the set_frame_ptr insn.
7911
7912 2008-08-07  Richard Henderson  <rth@redhat.com>
7913
7914         PR debug/37033
7915         * gcc.c (cpp_options): Pass along -g*.
7916
7917 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
7918
7919         * config/arm/arm.c (output_move_neon): Update comment describing
7920         big-endian vector layout.
7921         (arm_assemble_integer): Do not handle big-endian NEON vectors
7922         specially.
7923         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
7924         neon_vget_lane<mode>_sext_internal,
7925         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
7926         element indices for big-endian.
7927
7928 2008-08-07  Richard Henderson  <rth@redhat.com>
7929
7930         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
7931         * configure, config.in: Rebuild.
7932         * debug.h (dwarf2out_do_cfi_asm): Declare.
7933         * c-cppbuiltin.c (c_cpp_builtins): Use it.
7934         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
7935         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
7936         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
7937
7938 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
7939
7940         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
7941         movv2si_internal): Combine into mov<mode>_internal.
7942         (movv2si_internal_2): Remove.
7943
7944 2008-08-07  Jan Hubicka  <jh@suse.cz>
7945
7946         PR target/37048
7947         * i386.md (single stringop patterns): Enable unconditionally.
7948
7949 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
7950
7951         PR target/36992
7952         * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
7953
7954         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
7955         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
7956
7957         * config/i386/sse.md (sse2_movq128): New.
7958
7959         * doc/extend.texi: Document __builtin_ia32_movq128.
7960
7961 2008-08-07  Richard Guenther  <rguenther@suse.de>
7962
7963         PR middle-end/37042
7964         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
7965         pointers can access anything.
7966
7967 2008-08-06  Jan Hubicka  <jh@suse.cz>
7968
7969         * optabs.c (emit_unop_insn): Break out to ...
7970         (maybe_emit_unop_insn): ... this one.
7971         (expand_sfix_optab): Use maybe variant.
7972         * optabs.h (maybe_emit_unop_insn): Declare.
7973
7974         * i386.md (mov0 patterns): Enable by default.
7975         (FP conversion expanders): Disable expansion of code expanding
7976         sequences when instruction should be optimized for size.
7977         (single strinop patterns): Enable when optimizing for size.
7978         (string expanders): Disable expanding of code expanding sequences
7979         when optimizning instruction for size.
7980         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
7981         per BB basis.
7982         (ix86_fp_comparison_sahf_cost): Likewise.
7983         (ix86_expand_branch): Likewise.
7984         (ix86_expand_ashl_const): Likewise.
7985         (ix86_split_ashl): Likewise.
7986         (ix86_expand_strlen): Likewise.
7987         (ix86_emit_fp_unordered_jump): Likewie.
7988
7989 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7990
7991         * c-common.c: Fix typo.
7992         (c_common_reswords): Activate more C++ keyword warnings.
7993
7994         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
7995
7996 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7997
7998         PR 26785
7999         * diagnostic.c (permerror_at): New.
8000         * toplev.h (permerror_at): Declare.
8001
8002 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
8003             Ira Rosen  <irar@il.ibm.com>
8004
8005         * tree-vect-transform.c (vect_model_simple_cost): Return
8006         immediately if stmt is pure SLP.
8007         (vect_model_store_cost): Ditto.
8008         (vect_model_load_cost): Ditto.
8009         (vectorizable_store): Remove PURE_SLP check before call
8010         to vect_model_store_cost.
8011         (vect_model_store_cost): When checking whether stmt describe
8012         strided access, add a check that it is not slp_node.
8013
8014 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8015
8016         PR 8715
8017         * c-common.c (warn_for_sign_compare): New. Handle separately the
8018         case that 'constant' is zero.
8019         * c-typeck.c (build_binary_op): Move code to c-common.c
8020
8021 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8022
8023         * config/alpha/alpha.c (alpha_preferred_reload_class,
8024         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
8025         alpha_output_mi_thunk_osf): Avoid C++ keywords.
8026         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
8027         * config/arm/arm.md: Likewise.
8028         * config/avr/avr-protos.h (preferred_reload_class,
8029         test_hard_reg_class, avr_simplify_comparison_p,
8030         out_shift_with_cnt, class_max_nregs): Likewise.
8031         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
8032         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
8033         preferred_reload_class, test_hard_reg_class): Likewise.
8034         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
8035         bfin_memory_move_cost, bfin_secondary_reload,
8036         bfin_output_mi_thunk): Likewise.
8037         * config/crx/crx.c (crx_secondary_reload_class,
8038         crx_memory_move_cost): Likewise.
8039         * config/frv/frv-protos.h (frv_secondary_reload_class,
8040         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
8041         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
8042         frv_secondary_reload_class, frv_class_likely_spilled_p,
8043         frv_class_max_nregs): Likewise.
8044         * config/h8300/h8300.c (h8300_classify_operand,
8045         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
8046         Likewise.
8047         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
8048         * config/ia64/ia64.c (ia64_preferred_reload_class,
8049         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
8050         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
8051         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
8052         Likewise.
8053         * config/m68hc11/m68hc11.c (preferred_reload_class,
8054         m68hc11_memory_move_cost): Likewise.
8055         * config/mcore/mcore.c (mcore_secondary_reload_class,
8056         mcore_reload_class): Likewise.
8057         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
8058         mips_class_max_nregs, mips_cannot_change_mode_class,
8059         mips_preferred_reload_class, mips_secondary_reload_class,
8060         mips_output_mi_thunk): Likewise.
8061         * config/mmix/mmix.c (mmix_preferred_reload_class,
8062         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
8063         Likewise.
8064         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8065         Likewise.
8066         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
8067         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
8068         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8069         * config/rs6000/rs6000.c (paired_expand_vector_init,
8070         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
8071         compare_section_name, rs6000_memory_move_cost): Likewise.
8072         * config/s390/s390.c (s390_emit_compare_and_swap,
8073         s390_preferred_reload_class, s390_secondary_reload,
8074         legitimize_pic_address, legitimize_tls_address,
8075         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
8076         s390_class_max_nregs): Likewise.
8077         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8078         * config/s390/s390.md: Likewise.
8079         * config/score/score-protos.h (score_secondary_reload_class,
8080         score_preferred_reload_class): Likewise.
8081         * config/score/score.c (score_preferred_reload_class,
8082         score_secondary_reload_class): Likewise.
8083         * config/score/score3.c (score3_output_mi_thunk,
8084         score3_preferred_reload_class, score3_secondary_reload_class,
8085         score3_hard_regno_mode_ok): Likewise.
8086         * config/score/score3.h (score3_preferred_reload_class,
8087         score3_secondary_reload_class): Likewise.
8088         * config/score/score7.c (score7_output_mi_thunk,
8089         score7_preferred_reload_class, score7_secondary_reload_class,
8090         score7_hard_regno_mode_ok): Likewise.
8091         * config/score/score7.h (score7_preferred_reload_class,
8092         score7_secondary_reload_class): Likewise.
8093         * config/sh/sh.c (prepare_move_operands, output_far_jump,
8094         output_branchy_insn, add_constant, gen_block_redirect,
8095         sh_insn_length_adjustment, sh_cannot_change_mode_class,
8096         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
8097         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
8098         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
8099         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
8100         xstormy16_preferred_reload_class): Likewise.
8101         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
8102         xtensa_expand_atomic, override_options,
8103         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
8104         Likewise.
8105         * reorg.c (try_merge_delay_insns): Likewise.
8106         * tree.c (merge_dllimport_decl_attributes): Likewise.
8107
8108         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
8109
8110 2008-08-06  Michael Matz  <matz@suse.de>
8111
8112         * Makefile.in (write_entries_to_file): Quote words.
8113         * gengtype.c: (read_input_line): Skip over leading white-space.
8114
8115 2008-08-06  Marc Gauthier  <marc@tensilica.com>
8116
8117         * config.gcc: Match more processor names for Xtensa.
8118         * configure.ac: Likewise.
8119         * doc/install.texi (Specific): Likewise.
8120         * configure: Regenerate.
8121
8122 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8123
8124         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
8125         * calls.c (avoid_likely_spilled_reg): Likewise.
8126         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
8127         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
8128         * config/i386/i386.c (ix86_expand_special_args_builtin,
8129         ix86_secondary_reload): Likewise.
8130         * except.c (struct eh_region, gen_eh_region_catch,
8131         remove_unreachable_regions, duplicate_eh_regions,
8132         assign_filter_values, build_post_landing_pads,
8133         sjlj_find_directly_reachable_regions, remove_eh_handler,
8134         reachable_next_level, foreach_reachable_handler,
8135         can_throw_internal_1, can_throw_external_1,
8136         collect_one_action_chain): Likewise.
8137         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
8138         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
8139         * function.c (update_temp_slot_address, instantiate_new_reg,
8140         instantiate_virtual_regs_in_rtx,
8141         instantiate_virtual_regs_in_insn): Likewise.
8142         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
8143         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
8144         gimplify_cleanup_point_expr): Likewise.
8145         * ipa-cp.c (ipcp_lattice_changed): Likewise.
8146         * passes.c (next_pass_1): Likewise.
8147         * print-tree.c (print_node_brief, print_node): Likewise.
8148         * profile.c (branch_prob): Likewise.
8149         * tree-dump.c (dump_register): Likewise.
8150         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
8151         Likewise.
8152         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
8153         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
8154         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
8155         copy_arguments_for_versioning, copy_static_chain): Likewise.
8156         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
8157         add_new_name_mapping, register_new_name_mapping): Likewise.
8158         * tree-mudflap.c (mf_xform_derefs): Likewise.
8159         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
8160         get_init_expr, combine_chains): Likewise.
8161         * tree-pretty-print.c (dump_generic_node): Likewise.
8162         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
8163         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
8164         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
8165         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
8166
8167 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
8168
8169         PR middle-end/37010
8170         * calls.c (expand_call): Use the biggest preferred stack
8171         boundary.
8172
8173 2008-08-06  Michael Matz  <matz@suse.de>
8174
8175         PR target/36613
8176         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
8177         for reused reload, instead of overwriting them.
8178
8179 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
8180
8181         PR middle-end/37009
8182         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
8183         for incoming stack boundary.
8184
8185         * function.c (assign_parm_find_entry_rtl): Update
8186         parm_stack_boundary.
8187
8188         * function.h (rtl_data): Add parm_stack_boundary.
8189
8190         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
8191         parm_stack_boundary for incoming stack boundary.
8192
8193 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
8194
8195         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
8196         for unrepresentable subregs or treat them as equal to other regs
8197         or subregs with the same register number.
8198
8199 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
8200
8201         PR middle-end/35432
8202         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
8203         if want_value.
8204
8205 2008-08-06  Jan Hubicka  <jh@suse.cz>
8206
8207         * predict.c (maybe_hot_frequency_p): When profile is absent, all
8208         frequencies might be hot.
8209
8210 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
8211
8212         * reload.c (find_reloads): Force constants into literal pool
8213         also if they are wrapped in a SUBREG.
8214
8215 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8216
8217         PR target/35659
8218         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
8219         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
8220         Don't allow predicated instructions for data speculation.
8221         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
8222         declaration.
8223
8224 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8225
8226         * haifa-sched.c (extend_global): Split to extend_global_data and
8227         extend_region_data.  Update all uses.
8228         (extend_all): Rename to extend_block_data.
8229
8230 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
8231
8232         * sched-rgn.c (new_ready): Check if instruction can be
8233         speculatively scheduled before attempting speculation.
8234         (debug_rgn_dependencies): Remove wrongful assert.
8235
8236 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
8237
8238         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
8239
8240 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
8241
8242         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
8243         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
8244         va_size, and type_size.
8245
8246 2008-08-04  Jason Merrill  <jason@redhat.com>
8247
8248         PR c++/37016
8249         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
8250         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
8251
8252 2008-08-05  Richard Henderson  <rth@redhat.com>
8253
8254         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
8255         * configure: Rebuild.
8256
8257 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8258
8259         PR tree-opt/37024
8260         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
8261         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
8262         is a conversion.
8263
8264 2008-08-05  Richard Henderson  <rth@redhat.com>
8265
8266         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
8267         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
8268         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
8269         * common.opt (fdwarf2-cfi-asm): New.
8270         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
8271         * config.in, configure: Rebuild.
8272         * dwarf2asm.c (dw2_asm_output_data_raw): New.
8273         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
8274         New.
8275         (dw2_force_const_mem): Externalize.
8276         * dwarf2asm.h: Update.
8277         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
8278         generate a real label.
8279         (output_cfi_directive): New.
8280         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
8281         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
8282         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
8283         and .cfi_lsda.
8284         (dwarf2out_end_epilogue): Emit .cfi_endproc.
8285         (output_loc_operands_raw, output_loc_sequence_raw): New.
8286         (output_cfa_loc_raw): New.
8287
8288 2008-08-05  Paul Brook  <paul@codesourcery.com>
8289
8290         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
8291         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
8292         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
8293         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
8294         * config/arm/arm.h (TARGET_VFPD32): Define.
8295         (TARGET_VFP3): Use TARGET_VFPD32.
8296         (fputype): Add FPUTYPE_VFP3D16.
8297         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
8298         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
8299         * config/arm/arm-cores.def: Add cortex-r4f.
8300         * config/arm/arm-tune.md: Regenerate.
8301
8302 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8303
8304         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
8305         Reword some comments throughout the file.
8306
8307         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
8308         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
8309         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
8310         MFC_MIN_DMA_LIST_ELEMENTS.
8311         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
8312         MFC_MAX_DMA_LIST_ELEMENTS.
8313
8314         (MFC_START_ENABLE): Remove PPU-only define.
8315         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
8316         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
8317
8318         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
8319         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
8320         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
8321         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
8322         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
8323         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
8324         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
8325
8326         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
8327         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
8328         (mfc_sdcrt, mfc_sdcrtst): Likewise.
8329         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
8330
8331         (spu_read_machine_status): Fix typo.
8332
8333 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8334
8335         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
8336         SUBREG of multi-word hard register.
8337         * config/spu/spu.c (valid_subreg): Likewise.
8338         (adjust_operand): Handle SUBREGs of multi-word hard registers.
8339
8340 2008-08-04  Richard Guenther  <rguenther@suse.de>
8341
8342         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
8343         the candidate with the stripped base if that base is different
8344         from the original base even for offset zero.
8345
8346 2008-08-04  Richard Guenther  <rguenther@suse.de>
8347
8348         PR middle-end/36691
8349         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
8350         check for no_overflow.
8351
8352 2008-08-04  Richard Guenther  <rguenther@suse.de>
8353
8354         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
8355
8356 2008-08-04  Paul Brook  <paul@codesourcery.com>
8357
8358         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
8359         (arm_order_regs_for_local_alloc): New function.
8360         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
8361         prototype.
8362         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
8363
8364 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
8365
8366         PR target/37012
8367         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
8368         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
8369         (ix86_expand_epilogue): Likewise.
8370
8371 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
8372
8373         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
8374         in comments.
8375
8376 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
8377
8378         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
8379         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
8380         (*movv2sf_internal_rex64): Ditto.
8381
8382 2008-08-03  Jan Hubicka  <jh@suse.cz>
8383
8384         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
8385         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
8386         * expmed.c (expand_smod_pow2): Likewise.
8387
8388 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
8389
8390         PR target/36992
8391         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
8392         alternative 0 of operand 1.
8393         (*vec_concatv2di_rex64_sse): Ditto.
8394         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
8395         of operand 1.
8396         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
8397         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
8398         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
8399         (*movv2sf_internal_rex64): Ditto.
8400
8401 2008-08-02  Richard Guenther  <rguenther@suse.de>
8402
8403         PR target/35252
8404         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
8405         (ssedoublesizemode): New mode attribute.
8406         (sse_shufps): Call gen_sse_shufps_v4sf.
8407         (sse_shufps_1): Macroize.
8408         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
8409         (sse2_shufpd_1): Macroize.
8410         (vec_extract_odd, vec_extract_even): New expanders.
8411         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
8412         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
8413         * i386.c (ix86_expand_vector_init_one_nonzero): Call
8414         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
8415         (ix86_expand_vector_set): Likewise.
8416         (ix86_expand_reduc_v4sf): Likewise.
8417
8418 2008-08-01  Doug Kwan  <dougkwan@google.com>
8419
8420         * matrix-reorg.c: Re-enable all code.
8421         (struct malloc_call_data): Change CALL_STMT to gimple type.
8422         (collect_data_for_malloc_call): Tuplify.
8423         (struct access_site_info): Change STMT to gimple type.
8424         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
8425         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
8426         (struct free_info): Change STMT to gimple type.
8427         (struct matrix_access_phi_node):  Change PHI to gimple type.
8428         (get_inner_of_cast_expr): Remove.
8429         (may_flatten_matrices_1): Tuplify.
8430         (may_flatten_matrices): Ditto.
8431         (mark_min_matrix_escape_level): Ditto.
8432         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
8433         (ssa_accessed_in_call_rhs): New
8434         (ssa_accessed_in_assign_rhs): New
8435         (record_access_alloc_site_info): Tuplify.
8436         (add_allocation_site): Ditto.
8437         (analyze_matrix_allocation_site): Ditto.
8438         (analyze_transpose): Ditto.
8439         (get_index_from_offset): Ditto.
8440         (update_type_size): Ditto.
8441         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
8442         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
8443         (analyze_accesses_for_phi_node): Tuplify.
8444         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
8445         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
8446         (analyze_matrix_accesses): Tuplify.
8447         (check_var_data): New call-back type for check_var_notmodified_p.
8448         (check_var_notmodified_p): Tuplify and use call-back struct to
8449         return statement found.
8450         (can_calculate_expr_before_stmt): Factor out statement related code
8451         into ...
8452         (can_calculate_stmt_before_stmt): New.
8453         (check_allocation_function): Tuplify.
8454         (find_sites_in_func): Ditto.
8455         (record_all_accesses_in_func): Ditto.
8456         (transform_access_sites): Ditto.
8457         (transform_allocation_sites): Ditto.
8458         (matrix_reorg): Re-enable.
8459         (gate_matrix_reorg): Re-enable.
8460
8461 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
8462
8463         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
8464         for labels for which it hasn't been set yet.  If it has been set,
8465         stop walking insns and continue with next worklist item.
8466         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
8467         if the only BARRIER is at the very end of a function.
8468
8469 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
8470
8471         * cfgexpand.c (expand_stack_alignment): Assert that
8472         stack_realign_drap and drap_rtx must match.
8473
8474         * function.c (instantiate_new_reg): If DRAP is used to realign
8475         stack, replace virtual_incoming_args_rtx with internal arg
8476         pointer.
8477
8478 2008-08-01  Richard Guenther  <rguenther@suse.de>
8479
8480         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
8481         loop information only if we initialized it.
8482         (execute_pre): Call fini_pre with in_fre.
8483         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
8484         if we do not unroll because we hit max-completely-peeled-insns.
8485         Use our estimation for consistency, do allow shrinking.
8486
8487 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
8488
8489         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
8490         with MIN_STACK_BOUNDARY.
8491         (ix86_update_stack_boundary): Likewise.
8492         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
8493         STACK_BOUNDARY.
8494
8495         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
8496         (MIN_STACK_BOUNDARY): This.
8497
8498 2008-08-01  Richard Guenther  <rguenther@suse.de>
8499
8500         PR middle-end/36997
8501         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
8502
8503 2008-08-01  Richard Guenther  <rguenther@suse.de>
8504
8505         PR tree-optimization/36988
8506         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
8507         do not matter if that doesn't change volatile qualification.
8508
8509 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
8510
8511         * configure.ac: Do not generate libada-mk.  Do not subst
8512         host_cc_for_libada.
8513         * libada-mk.in: Remove.
8514         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
8515         * configure: Regenerate.
8516
8517 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
8518
8519         * tree-pass.h: Added comment about not dumping passes with name
8520         starting with star in struct opt_pass.
8521         * passes.c (register_dump_files_1): Don't do dump for a pass with
8522         name starting with star.
8523         * doc/passes.texi (Pass manager): Mention pass names and special
8524         meaning of star prefix to avoid dump.
8525
8526 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
8527
8528         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
8529         to MIPS64r2.
8530         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
8531         (ISA_MIPS64R2): New macro.
8532         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
8533         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
8534         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
8535         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
8536         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
8537         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
8538         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
8539         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
8540         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
8541         Move up to keep list alphabetically sorted.
8542         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
8543         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
8544         processor.
8545         * doc/invoke.texi (MIPS Options): Add -mips64r2.
8546         (-march=@var{arch}): Add mips64r2.
8547
8548 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
8549
8550         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
8551
8552 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
8553
8554         * expr.c (expand_assignment): Check for complete type.
8555
8556 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
8557
8558         PR debug/36977
8559         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
8560
8561         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
8562         for stack alignment.
8563
8564         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
8565
8566 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
8567
8568         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
8569         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
8570
8571 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
8572
8573         PR rtl-optimization/36419
8574         * dwarf2out.c (barrier_args_size): New variable.
8575         (compute_barrier_args_size, compute_barrier_args_size_1): New
8576         functions.
8577         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
8578         if not called yet in the current function, use barrier_args_size
8579         array to find the new args_size value.
8580         (dwarf2out_frame_debug): Free and clear barrier_args_size.
8581
8582 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
8583
8584         PR debug/36980
8585         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
8586         rule 19.
8587
8588 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
8589
8590         PR debug/36976
8591         * dwarf2out.c (dwarf2out_args_size_adjust): New.
8592         (dwarf2out_stack_adjust): Use it.
8593         (dwarf2out_frame_debug_expr): Likewise.
8594
8595 2008-07-31  Richard Guenther  <rguenther@suse.de>
8596
8597         PR tree-optimization/36978
8598         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
8599         the generated condition.
8600
8601 2008-07-31  Richard Guenther  <rguenther@suse.de>
8602
8603         * passes.c (init_optimization_passes): Always call
8604         pass_early_warn_uninitialized.
8605         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
8606         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
8607         * doc/passes.texi (Warn for uninitialized variables): Adjust.
8608
8609 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
8610
8611         PR c/36970
8612         * builtins.c (maybe_emit_free_warning): New function.
8613         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
8614         maybe_emit_free_warning for BUILT_IN_FREE.
8615
8616         PR debug/36278
8617         * dwarf2out.c (get_context_die): New function.
8618         (force_decl_die, force_type_die): Use it.
8619         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
8620         returns NULL, force generation of DW_TAG_typedef and put that into
8621         DW_AT_import.
8622
8623         PR preprocessor/36649
8624         * c-pch.c (c_common_read_pch): Save and restore
8625         line_table->trace_includes across PCH restore.
8626
8627 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
8628
8629         PR ada/36554
8630         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
8631
8632 2008-07-30  Rafael Ãƒvila de Espíndola  <espindola@google.com>
8633
8634         PR 36974
8635         * final.c (call_from_call_insn): Handle COND_EXEC.
8636
8637 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
8638
8639         * builtins.c (std_gimplify_va_arg_expr): Replace
8640         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
8641         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
8642
8643 2008-07-30  Joey Ye  <joey.ye@intel.com>
8644             H.J. Lu  <hongjiu.lu@intel.com>
8645
8646         * builtins.c (expand_builtin_setjmp_receiver): Replace
8647         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
8648         (expand_builtin_apply_args_1): Likewise.
8649         (expand_builtin_longjmp): Need DRAP for stack alignment.
8650         (expand_builtin_apply): Likewise.
8651
8652         * caller-save.c (setup_save_areas): Call assign_stack_local_1
8653         instead of assign_stack_local to allow alignment reduction.
8654
8655         * calls.c (emit_call_1): Need DRAP for stack alignment if
8656         return pops.
8657         (expand_call): Replace virtual_incoming_args_rtx with
8658         crtl->args.internal_arg_pointer.
8659         * stmt.c (expand_nl_goto_receiver): Likewise.
8660
8661         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
8662         alignment and store to stack_alignment_estimated and
8663         max_used_stack_slot_alignment.
8664         (expand_one_var): Likewise.
8665         (expand_stack_alignment): New function.
8666         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
8667         and stack_alignment_estimated fields in rtl_data.  Call
8668         expand_stack_alignment at end.
8669
8670         * defaults.h (INCOMING_STACK_BOUNDARY): New.
8671         (MAX_STACK_ALIGNMENT): Likewise.
8672         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
8673         (SUPPORTS_STACK_ALIGNMENT): Likewise.
8674
8675         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
8676         stack alignment when generating virtual registers.
8677
8678         * function.c (assign_stack_local): Renamed to ...
8679         (assign_stack_local_1): This.  Add a parameter to indicate
8680         if it is OK to reduce alignment.
8681         (assign_stack_local): Use it.
8682         (instantiate_new_reg): Instantiate virtual incoming args rtx
8683         to vDRAP if stack realignment and DRAP is needed.
8684         (assign_parms): Collect parameter/return type alignment and
8685         contribute to stack_alignment_estimated.
8686         (locate_and_pad_parm): Likewise.
8687         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
8688         with crtl->args.internal_arg_pointer.
8689
8690         * function.h (rtl_data): Add new field drap_reg,
8691         max_used_stack_slot_alignment, stack_alignment_estimated,
8692         stack_realign_needed, need_drap, stack_realign_processed and
8693         stack_realign_finalized.
8694         (stack_realign_fp): New macro.
8695         (stack_realign_drap): Likewise.
8696
8697         * global.c (compute_regsets): Frame pointer is needed when
8698         stack is realigned.  Can eliminate frame pointer when stack is
8699         realigned and dynamic realigned argument pointer isn't used.
8700
8701         * reload1.c (update_eliminables):  Frame pointer is needed
8702         when stack is realigned.
8703         (init_elim_table): Can eliminate frame pointer when stack is
8704         realigned and dynamic realigned argument pointer isn't used.
8705
8706         * rtl.h (assign_stack_local_1): Declare new funtion.
8707
8708         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
8709         (TARGET_GET_DRAP_RTX): Likewise.
8710         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
8711         TARGET_GET_DRAP_RTX.
8712
8713         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
8714
8715         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
8716         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
8717
8718 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
8719             H.J. Lu  <hongjiu.lu@intel.com>
8720
8721         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
8722         vdrap_reg, stack_realign and drap_reg_saved.
8723         (add_cfi): Don't allow redefining CFA when DRAP is used.
8724         (reg_save): Handle stack alignment.
8725         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
8726         alignment.  Don't generate DWARF information for (set fp sp)
8727         when DRAP is used.
8728         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
8729         to INVALID_REGNUM.
8730         (int_loc_descriptor): Move prototype forward.  Also define if
8731         DWARF2_UNWIND_INFO is true.
8732         (output_cfa_loc): Handle DW_CFA_expression.
8733         (build_cfa_aligned_loc): New.
8734         (based_loc_descr): Update assert for stack realign.  For local
8735         variables, use sp+offset when stack is aligned without drap and
8736         fp+offset when stack is aligned with drap.  For arguments, use
8737         cfa+offset when drap is used to align stack.
8738
8739 2008-07-30  Joey Ye  <joey.ye@intel.com>
8740             H.J. Lu  <hongjiu.lu@intel.com>
8741
8742         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
8743         Break long line.
8744         (ix86_gen_andsp): New.
8745         (ix86_user_incoming_stack_boundary): Likewise.
8746         (ix86_default_incoming_stack_boundary): Likewise.
8747         (ix86_incoming_stack_boundary): Likewise.
8748         (ix86_can_eliminate): Likewise.
8749         (find_drap_reg): Likewise.
8750         (ix86_update_stack_boundary): Likewise.
8751         (ix86_get_drap_rtx): Likewise.
8752         (ix86_finalize_stack_realign_flags): Likewise.
8753         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
8754         (TARGET_GET_DRAP_RTX): Likewise.
8755         (override_options): Overide option value for new options.
8756         (ix86_function_ok_for_sibcall): Remove check for
8757         force_align_arg_pointer.
8758         (ix86_handle_cconv_attribute): Likewise.
8759         (ix86_function_regparm): Likewise.
8760         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
8761         (ix86_va_start): Replace virtual_incoming_args_rtx with
8762         crtl->args.internal_arg_pointer.
8763         (ix86_select_alt_pic_regnum): Check DRAP register.
8764         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
8765         (ix86_compute_frame_layout): Compute frame layout wrt stack
8766         realignment.
8767         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
8768         (ix86_expand_prologue): Decide if stack realignment is needed
8769         and generate prologue code accordingly.
8770         (ix86_expand_epilogue): Generate epilogue code wrt stack
8771         realignment is really needed or not.
8772
8773         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
8774         (ABI_STACK_BOUNDARY): Likewise.
8775         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
8776         (STACK_REALIGN_DEFAULT): Likewise.
8777         (INCOMING_STACK_BOUNDARY): Likewise.
8778         (MAX_STACK_ALIGNMENT): Likewise.
8779         (ix86_incoming_stack_boundary): Likewise.
8780         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
8781         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
8782         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
8783         (machine_function): Remove force_align_arg_pointer.
8784
8785         * config/i386/i386.md (BX_REG): New.
8786         (R13_REG): Likewise.
8787
8788         * config/i386/i386.opt (mforce_drap): New.
8789         (mincoming-stack-boundary): Likewise.
8790         (mstackrealign): Add Init(-1).
8791
8792         * config/i386/i386-protos.h (ix86_can_eliminate): New
8793
8794 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
8795
8796         * doc/extend.texi: Update force_align_arg_pointer.
8797
8798         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
8799         -mstackrealign.
8800
8801         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
8802         (INCOMING_STACK_BOUNDARY): Likewise.
8803         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
8804         (TARGET_GET_DRAP_RTX): Likewise.
8805
8806 2008-07-30  Andreas Schwab  <schwab@suse.de>
8807
8808         PR rtl-optimization/36929
8809         * dse.c (replace_inc_dec): Use emit_insn_before instead of
8810         add_insn_before and fix argument order.
8811         (replace_inc_dec_mem): Handle NULL rtx.
8812
8813 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
8814
8815         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
8816         function.
8817         (arm_compute_initial_elimination_offset): Use it.
8818         (arm_compute_save_reg_mask): Include static chain save slot when
8819         calculating alignment.
8820         (arm_get_frame_offsets): Ditto.
8821         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
8822         that we can use to decrement the stack when the stack decrement
8823         could be too big for an immediate value in a single insn.
8824         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
8825
8826 2008-07-30  Richard Guenther  <rguenther@suse.de>
8827
8828         PR tree-optimization/36967
8829         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
8830         Release defs of statements we remove.
8831
8832 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
8833
8834         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
8835         instead of NULL_RTVEC.
8836
8837 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
8838
8839         PR target/35866
8840
8841         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
8842         vector modes.
8843
8844 2008-07-30  Rafael Ãƒvila de Espíndola  <espindola@google.com>
8845
8846         * final.c (call_from_call_insn): New.
8847         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
8848
8849 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
8850
8851         * configure.ac: Substitute ADA_CFLAGS.
8852         * configure: Regenerate.
8853         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
8854         * Makefile.in: Remove mention of X_* variables.
8855         * config/pa/x-ada-hpux10: Remove.
8856         * config/pa/x-ada: Remove.
8857
8858         * doc/fragments.texi: Update.
8859
8860 2008-07-30  Olivier Hainque  <hainque@adacore.com>
8861
8862         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
8863         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
8864         __dso_handle explicitly here.
8865
8866 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8867
8868         PR 34389
8869         * c-typeck.c (build_binary_op): Encapsulate code into...
8870         * c-common.c (shorten_binary_op): ...this new function.
8871         (conversion_warning): Use the new function. Handle non-negative
8872         constant in bitwise-and.
8873         * c-common.h (shorten_binary_op): Declare.
8874
8875 2008-07-30  Olivier Hainque  <hainque@adacore.com>
8876
8877         * scan.c (make_sstring_space): Add explicit conversions of
8878         allocator's return value.
8879         * fix-header.c (recognized_function): Likewise.
8880
8881 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8882
8883         * doc/cpp.texi: Update to GFDL 1.2.
8884         * doc/gcc.texi: Do not list GPL as Invariant Section.
8885         * doc/gccint.texi: Likewise.  Update copyright years.
8886         * doc/install.texi: Update copyright years.
8887
8888 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
8889
8890         PR target/36955
8891         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
8892         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
8893
8894 2008-07-29  Jan Hubicka  <jh@suse.cz>
8895
8896         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
8897         (grokdeclarator): Likewise.
8898         * langhooks.c (lhd_warn_unused_global_decl): Use
8899         DECL_DECLARED_INLINE_P.
8900         * print-tree.c (print_node): Remove DECL_INLINE check.
8901
8902 2008-07-29  Richard Guenther  <rguenther@suse.de>
8903
8904         PR tree-optimization/36945
8905         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
8906         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
8907         Record invariant addresses un-decomposed.
8908         (copy_reference_ops_from_call): Record reference call
8909         arguments properly.  Simplify.
8910         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
8911         helper split out from ...
8912         (create_component_ref_by_pieces): ... here.  Simplify.
8913         Prepare for recursive invocation for call arguments.
8914         (create_expression_by_pieces): Adjust call to
8915         create_component_ref_by_pieces.
8916         (compute_avail): Process operand 2 of reference ops.
8917
8918 2008-07-29  Richard Guenther  <rguenther@suse.de>
8919
8920         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
8921
8922 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
8923
8924         * c-format.c (check_format_types): Revert unwanted checkin.
8925
8926 2008-07-29  Jan Hubicka  <jh@suse.cz>
8927
8928         * flags.h (flag_really_no_inline): Remove.
8929         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
8930         * toplev.c (flag_really_no_inline): Remove.
8931         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
8932         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
8933         (cgraph_decide_inlining_incrementally): Likewise.
8934         (compute_inline_parameters): Likewise.
8935         * opts.c (decode_options): Simplify.
8936         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
8937         * common.opt (finline): Initialize to 1.
8938         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
8939
8940 2008-07-29  Jan Hubicka  <jh@suse.cz>
8941
8942         * predict.c (always_optimize_for_size_p): New function.
8943         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
8944         optimize_edge_for_size_p, optimize_edge_for_speed_p,
8945         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
8946         functions.
8947         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
8948         * function.c (prepare_function_start): Set default profile.
8949         * function.h (rtl_data): Add maybe_hot_insn_p.
8950         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
8951         (construct_exit_block): Likewise.
8952         (tree_expand_cfg): Likewise.
8953         * basic-block.h
8954         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
8955         optimize_edge_for_size_p, optimize_edge_for_speed_p,
8956         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
8957         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
8958         Declare.
8959
8960 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8961
8962         PR 34985
8963         * c-decl.c (merge_decls): Merge USED flags.
8964
8965 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
8966
8967         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
8968         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
8969         next_stack, lab_false and lab_over trees.
8970
8971 2008-07-28  Richard Guenther  <rguenther@suse.de>
8972
8973         PR tree-optimization/36957
8974         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
8975         (useless_type_conversion_p): Remove.
8976         (types_compatible_p): Remove.
8977         * gimple.h (tree_ssa_useless_type_conversion): Declare.
8978         (useless_type_conversion_p): Declare.
8979         (types_compatible_p): Declare.
8980         (gimple_expr_type): Return the base type only if it is
8981         trivially convertible to the subtype.
8982
8983 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
8984
8985         * configure.ac: Use the m4_do macro to concatenate the warnings into
8986         one string in ACX_PROG_CC_WARNING_OPTS,
8987         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
8988         ACX_PROG_CC_WARNINGS_ARE_ERRORS.
8989         * configure: Regenerate.
8990
8991 2008-07-28  Richard Guenther  <rguenther@suse.de>
8992
8993         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
8994         (insert_fake_stores): Remove.
8995         (realify_fake_stores): Likewise.
8996         (execute_pre): Remove dead code.
8997         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
8998         (find_func_aliases): Deal with it here instead.
8999         Re-enable gcc_unreachable call.
9000
9001 2008-07-28  Richard Guenther  <rguenther@suse.de>
9002
9003         Merge from gimple-tuples-branch.
9004
9005         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
9006         * gimple.def: New file.
9007         * gsstruct.def: Likewise.
9008         * gimple-iterator.c: Likewise.
9009         * gimple-pretty-print.c: Likewise.
9010         * tree-gimple.c: Removed.  Merged into ...
9011         * gimple.c: ... here.  New file.
9012         * tree-gimple.h: Removed.  Merged into ...
9013         * gimple.h: ... here.  New file.
9014
9015         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
9016         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
9017         --enable-checking=gimple flag.
9018         * config.in: Likewise.
9019         * configure: Regenerated.
9020
9021         * tree-ssa-operands.h: Tuplified.
9022         * tree-vrp.c: Likewise.
9023         * tree-loop-linear.c: Likewise.
9024         * tree-into-ssa.c: Likewise.
9025         * tree-ssa-loop-im.c: Likewise.
9026         * tree-dump.c: Likewise.
9027         * tree-complex.c: Likewise.
9028         * cgraphbuild.c: Likewise.
9029         * tree-ssa-threadupdate.c: Likewise.
9030         * tree-ssa-loop-niter.c: Likewise.
9031         * tree-pretty-print.c: Likewise.
9032         * tracer.c: Likewise.
9033         * gengtype.c: Likewise.
9034         * tree-loop-distribution.c: Likewise.
9035         * tree-ssa-loop-unswitch.c: Likewise.
9036         * cgraph.c: Likewise.
9037         * cgraph.h: Likewise.
9038         * tree-ssa-loop-manip.c: Likewise.
9039         * value-prof.c: Likewise.
9040         * tree-ssa-loop-ch.c: Likewise.
9041         * tree-tailcall.c: Likewise.
9042         * value-prof.h: Likewise.
9043         * tree.c: Likewise.
9044         * tree.h: Likewise.
9045         * tree-pass.h: Likewise.
9046         * ipa-cp.c: Likewise.
9047         * tree-scalar-evolution.c: Likewise.
9048         * tree-scalar-evolution.h: Likewise.
9049         * target.h: Likewise.
9050         * lambda-mat.c: Likewise.
9051         * tree-phinodes.c: Likewise.
9052         * diagnostic.h: Likewise.
9053         * builtins.c: Likewise.
9054         * tree-ssa-alias-warnings.c: Likewise.
9055         * cfghooks.c: Likewise.
9056         * fold-const.c: Likewise.
9057         * cfghooks.h: Likewise.
9058         * omp-low.c: Likewise.
9059         * tree-ssa-dse.c: Likewise.
9060         * ipa-reference.c: Likewise.
9061         * tree-ssa-uncprop.c: Likewise.
9062         * toplev.c: Likewise.
9063         * tree-gimple.c: Likewise.
9064         * tree-gimple.h: Likewise.
9065         * tree-chrec.c: Likewise.
9066         * tree-chrec.h: Likewise.
9067         * tree-ssa-sccvn.c: Likewise.
9068         * tree-ssa-sccvn.h: Likewise.
9069         * cgraphunit.c: Likewise.
9070         * tree-ssa-copyrename.c: Likewise.
9071         * tree-ssa-ccp.c: Likewise.
9072         * tree-ssa-loop-ivopts.c: Likewise.
9073         * tree-nomudflap.c: Likewise.
9074         * tree-call-cdce.c: Likewise.
9075         * ipa-pure-const.c: Likewise.
9076         * c-format.c: Likewise.
9077         * tree-stdarg.c: Likewise.
9078         * tree-ssa-math-opts.c: Likewise.
9079         * tree-ssa-dom.c: Likewise.
9080         * tree-nrv.c: Likewise.
9081         * tree-ssa-propagate.c: Likewise.
9082         * ipa-utils.c: Likewise.
9083         * tree-ssa-propagate.h: Likewise.
9084         * tree-ssa-alias.c: Likewise.
9085         * gimple-low.c: Likewise.
9086         * tree-ssa-sink.c: Likewise.
9087         * ipa-inline.c: Likewise.
9088         * c-semantics.c: Likewise.
9089         * dwarf2out.c: Likewise.
9090         * expr.c: Likewise.
9091         * tree-ssa-loop-ivcanon.c: Likewise.
9092         * predict.c: Likewise.
9093         * tree-ssa-loop.c: Likewise.
9094         * tree-parloops.c: Likewise.
9095         * tree-ssa-address.c: Likewise.
9096         * tree-ssa-ifcombine.c: Likewise.
9097         * matrix-reorg.c: Likewise.
9098         * c-decl.c: Likewise.
9099         * tree-eh.c: Likewise.
9100         * c-pretty-print.c: Likewise.
9101         * lambda-trans.c: Likewise.
9102         * function.c: Likewise.
9103         * langhooks.c: Likewise.
9104         * ebitmap.h: Likewise.
9105         * tree-vectorizer.c: Likewise.
9106         * function.h: Likewise.
9107         * langhooks.h: Likewise.
9108         * tree-vectorizer.h: Likewise.
9109         * ipa-type-escape.c: Likewise.
9110         * ipa-type-escape.h: Likewise.
9111         * domwalk.c: Likewise.
9112         * tree-if-conv.c: Likewise.
9113         * profile.c: Likewise.
9114         * domwalk.h: Likewise.
9115         * tree-data-ref.c: Likewise.
9116         * tree-data-ref.h: Likewise.
9117         * tree-flow-inline.h: Likewise.
9118         * tree-affine.c: Likewise.
9119         * tree-vect-analyze.c: Likewise.
9120         * c-typeck.c: Likewise.
9121         * gimplify.c: Likewise.
9122         * coretypes.h: Likewise.
9123         * tree-ssa-phiopt.c: Likewise.
9124         * calls.c: Likewise.
9125         * tree-ssa-coalesce.c: Likewise.
9126         * tree.def: Likewise.
9127         * tree-dfa.c: Likewise.
9128         * except.c: Likewise.
9129         * except.h: Likewise.
9130         * cfgexpand.c: Likewise.
9131         * tree-cfgcleanup.c: Likewise.
9132         * tree-ssa-pre.c: Likewise.
9133         * tree-ssa-live.c: Likewise.
9134         * tree-sra.c: Likewise.
9135         * tree-ssa-live.h: Likewise.
9136         * tree-predcom.c: Likewise.
9137         * lambda.h: Likewise.
9138         * tree-mudflap.c: Likewise.
9139         * ipa-prop.c: Likewise.
9140         * print-tree.c: Likewise.
9141         * tree-ssa-copy.c: Likewise.
9142         * ipa-prop.h: Likewise.
9143         * tree-ssa-forwprop.c: Likewise.
9144         * ggc-page.c: Likewise.
9145         * c-omp.c: Likewise.
9146         * tree-ssa-dce.c: Likewise.
9147         * tree-vect-patterns.c: Likewise.
9148         * tree-ssa-ter.c: Likewise.
9149         * tree-nested.c: Likewise.
9150         * tree-ssa.c: Likewise.
9151         * lambda-code.c: Likewise.
9152         * tree-ssa-loop-prefetch.c: Likewise.
9153         * tree-inline.c: Likewise.
9154         * tree-inline.h: Likewise.
9155         * tree-iterator.c: Likewise.
9156         * tree-optimize.c: Likewise.
9157         * tree-ssa-phiprop.c: Likewise.
9158         * tree-vect-transform.c: Likewise.
9159         * tree-object-size.c: Likewise.
9160         * tree-outof-ssa.c: Likewise.
9161         * cfgloop.c: Likewise.
9162         * system.h: Likewise.
9163         * tree-profile.c: Likewise.
9164         * cfgloop.h: Likewise.
9165         * c-gimplify.c: Likewise.
9166         * c-common.c: Likewise.
9167         * tree-vect-generic.c: Likewise.
9168         * tree-flow.h: Likewise.
9169         * c-common.h: Likewise.
9170         * basic-block.h: Likewise.
9171         * tree-ssa-structalias.c: Likewise.
9172         * tree-switch-conversion.c: Likewise.
9173         * tree-ssa-structalias.h: Likewise.
9174         * tree-cfg.c: Likewise.
9175         * passes.c: Likewise.
9176         * ipa-struct-reorg.c: Likewise.
9177         * ipa-struct-reorg.h: Likewise.
9178         * tree-ssa-reassoc.c: Likewise.
9179         * cfgrtl.c: Likewise.
9180         * varpool.c: Likewise.
9181         * stmt.c: Likewise.
9182         * tree-ssanames.c: Likewise.
9183         * tree-ssa-threadedge.c: Likewise.
9184         * langhooks-def.h: Likewise.
9185         * tree-ssa-operands.c: Likewise.
9186         * config/alpha/alpha.c: Likewise.
9187         * config/frv/frv.c: Likewise.
9188         * config/s390/s390.c: Likewise.
9189         * config/m32c/m32c.c: Likewise.
9190         * config/m32c/m32c-protos.h: Likewise.
9191         * config/spu/spu.c: Likewise.
9192         * config/sparc/sparc.c: Likewise.
9193         * config/i386/i386.c: Likewise.
9194         * config/sh/sh.c: Likewise.
9195         * config/xtensa/xtensa.c: Likewise.
9196         * config/stormy16/stormy16.c: Likewise.
9197         * config/ia64/ia64.c: Likewise.
9198         * config/rs6000/rs6000.c: Likewise.
9199         * config/pa/pa.c: Likewise.
9200         * config/mips/mips.c: Likewise.
9201
9202 2008-07-28  Simon Baldwin  <simonb@google.com>
9203
9204         * c-pragma.c (handle_pragma_message): New function.
9205         (init_pragma): Register handle_pragma_message.
9206         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
9207         documentation.
9208
9209 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
9210
9211         PR tree-optimization/35252
9212         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
9213         REALPART_EXPR to be considered as same load operation.
9214
9215 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
9216
9217         PR tree-optimization/36830
9218         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
9219         (expressions_equal_p): Return false if only one operand is null.
9220
9221 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
9222
9223         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
9224         version requirements.
9225
9226 2008-07-26  Olivier Hainque  <hainque@adacore.com>
9227
9228         * collect2.c (symkind): New enum.  Symbol kinds we care about.
9229         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
9230         code and head comment accordingly.
9231         (scan_prog_file): Use symkind names instead of bare integers.
9232
9233 2008-07-25  Jan Hubicka  <jh@suse.cz>
9234
9235         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
9236         DECL_INLINE.
9237         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
9238         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
9239         * dojump.c (clear_pending_stack_adjust): Likewise.
9240         * print-tree.c (print_node): Ignore DECL_INLINE.
9241         * tree-inline.c (inlinable_function_p): Likewise.
9242
9243 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
9244
9245         * doc/extend.texi (hot attribute): Document that the hot attribute
9246         turns on -O3 for some ports.
9247         (cold attribute): Document that the cold attribute turns on -Os
9248         for some ports
9249
9250         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
9251         reflect function specific option support.
9252
9253         * target.h (struct target_option_hooks): Add fields to say whether
9254         the cold attribute implies -Os and the hot attribute implies -O3.
9255
9256         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
9257         By default, do not turn on -Os for cold functions.
9258         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
9259         not turn on -O3 for hot functions.
9260
9261         * c-common.c (handle_hot_attribute): Use target hook to determine
9262         if hot functions should enable -O3.
9263         (handle_cold_attribute): Use target hook to determine if cold
9264         functions should enable -Os.
9265
9266         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
9267         (override_options): Move disable scheduling to
9268         optimization_options.
9269         (optimization_options): Disable scheduling here, not
9270         override_options.
9271         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9272         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9273
9274         * config/ia64/ia64.c (ia64_override_options): Move setting
9275         scheduling flags to ia64_optimization_options.
9276         (ia64_optimization_options): Disable scheduling options here, and
9277         not in ia64_override_options.
9278         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9279         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9280
9281 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
9282
9283         PR target/36936
9284         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
9285
9286 2008-07-25  Martin Jambor  <mjambor@suse.cz>
9287
9288         PR tree-optimization/36926
9289         * ipa-prop.c (ipa_analyze_call_uses): Call
9290         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
9291
9292 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
9293
9294         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
9295         movv2si_internal): Add mem = reg alternative.
9296
9297 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
9298
9299         PR bootstrap/36918
9300         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
9301         DEFAULT_PCC_STRUCT_RETURN to 127.
9302
9303 2008-07-24  Jan Hubicka  <jh@suse.cz>
9304
9305         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
9306         (build_cgraph_edges): Likewise.
9307         * cgraph.c (cgraph_node): Do not update assembler hash.
9308         (cgraph_remove_node): Drop non-unit-at-a-time code.
9309         * tree-pass.h (pass_O0_always_inline): Remove.
9310         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
9311         * toplev.c (process_options): Flag unit-at-a-time does not imply
9312         no section anchors.
9313         * cgraphunit.c: Update comments.
9314         (decide_is_function_needed): Drop non-unit-at-a-time mode.
9315         (cgraph_assemble_pending_functions): Remove.
9316         (cgraph_reset_node): Drop non-unit-at-a-time code.
9317         (cgraph_finalize_function): Likewise.
9318         (cgraph_analyze_function): Likewise.
9319         (cgraph_finalize_compilation_unit): Likewise.
9320         (cgraph_expand_function): Likewise.
9321         (cgraph_optimize): Likesise.
9322         (save_inline_function_body): Likewise.
9323         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
9324         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
9325         * ipa-inline.c: Update comments.
9326         (enum inlining_mode): remove INLINE_SPEED.
9327         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
9328         (cgraph_mark_inline_edge): Likewise.
9329         (try_inline): Likewise.
9330         (cgraph_decide_inlining_incrementally): Likewise.
9331         (cgraph_gate_inlining): Remove.
9332         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
9333         (cgraph_gate_early_inlining): Likewise.
9334         (gate_inline_passes): Remove.
9335         (pass_inline_parameters, pass_ipa_inline): Remove gates.
9336         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
9337         pass_O0_always_inline): Remove.
9338         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
9339         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
9340         * opts.c (no_unit_at_a_time_default): Remove.
9341         (decode_options): Remove flag_unit_at_a_time reset and warning.
9342         * opts.h (no_unit_at_a_time_default): Remove.
9343         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
9344         early in GNU dialect.
9345         (merge_decls): Update comment; drop unit-at-a-time check.
9346         (finish_decl): Likewise.
9347         (grok_declaration): Remove flag_inline_trees code.
9348         (finish_functions): Return on function returning non-void on all
9349         statics.
9350         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
9351         * cfgexpand.c (expand_one_static_var): Remove.
9352         (expand_one_var): Remove expand_one_static_var call.
9353         (expand_used_vars_for_block): Remove flag_unit_a_time check.
9354         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
9355         and flag_unit_at_a-time compatibility checks.
9356         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
9357         * tree-inline.c (flag_inline_trees): Remove.
9358         (inlinable_function_p): Don't check it.
9359         (expand_call_inline): Remove non-unit-at-a-time code.
9360         * tree-inline.h (flag_inline_trees): Remove.
9361         * tree-optimize.c (execute_early_local_optimizations): Remove
9362         unit-at-a-time checks.
9363         (tree_rest_of_compilation): Likewise.
9364         * combine.c (setup_incoming_promotions): Likewise.
9365         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
9366         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
9367         * passes.c (pass_inline_parameters): Update comments; remove
9368         O0_alwaysinline pass.
9369         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
9370         (execute_one_pass): Likewise.
9371         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
9372         (ix86_function_sseregparm): Likewise.
9373         * arm.c (arm_function_in_section_p): Likewise.
9374         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
9375         * varpool.c: Update comments.
9376         (decide_is_variable_needed): Remove unit-at-a-time checks.
9377         (varpool_finalize_decl): Likewise.
9378
9379 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
9380
9381         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
9382         to 2 instead of -1.
9383         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
9384
9385 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
9386
9387         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
9388         imp symbol extension.
9389
9390         2008-07-23  Ian Lance Taylor  <iant@google.com>
9391
9392         * tree-vrp.c (infer_value_range): Ignore asm statements when
9393         looking for memory accesses for -fdelete-null-pointer-checks.
9394
9395 2008-07-24  Ben Elliston  <bje@au.ibm.com>
9396
9397         * config/spu/spu-c.c (__vector_keyword): New variable.
9398         (vector_keyword): Likewise.
9399         (spu_categorize_keyword): New function.
9400         (spu_macro_to_expand): Likewise.
9401         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
9402         compiling an ISO C dialect.
9403
9404 2008-07-24  Ben Elliston  <bje@au.ibm.com>
9405
9406         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
9407         conventional usage.
9408
9409 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9410
9411         * configure: Regenerate.
9412         * configure.ac: Require texinfo 4.7.
9413         * doc/install.texi: Document texinfo 4.7 requirement.
9414
9415 2008-07-23  Martin Jambor  <mjambor@suse.cz>
9416
9417         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
9418         rather than for DECL_SAVED_TREE.
9419         * ipa-prop.c: Include diagnostic.h.
9420         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
9421         thoroughly.
9422         (ipa_detect_param_modifications): Function rewritten from scratch.
9423         (ipa_compute_jump_functions): Changed accesses to modification flags.
9424         (ipa_free_node_params_substructures): Update flags destruction.
9425         (ipa_node_duplication_hook): Update flags duplication.
9426         (ipa_print_all_params_modified): Updated flag access.
9427         * ipa-prop.h (struct ipa_param_flags): New structure.
9428         (struct ipa_node_params): New field modification_analysis_done,
9429         modified_flags changed into param_flags.
9430         (ipa_is_ith_param_modified): Changed to use new flags.
9431         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
9432
9433         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
9434         ipa-cp.c and split into two functions.
9435         (ipa_print_node_jump_functions): New function.
9436         (compute_scalar_jump_functions): New function.
9437         (type_like_member_ptr_p): New function.
9438         (compute_pass_through_member_ptrs): New function.
9439         (fill_member_ptr_cst_jump_function): New function.
9440         (determine_cst_member_ptr): New function.
9441         (compute_cst_member_ptr_arguments): New function.
9442         (ipa_compute_jump_functions): Complete rewrite.
9443         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
9444         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
9445         (struct ipa_member_ptr_cst): New structure.
9446         (union jump_func_value): New field member_cst.
9447         * ipa-cp.c (ipcp_lat_is_insertable): New function.
9448         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
9449         jump function types.
9450         (ipcp_print_all_lattices): Slight fprintf rearrangement.
9451         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
9452         instead of ipcp_print_all_jump_functions.
9453         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
9454         only for replacable scalars.
9455
9456         * doc/invoke.texi (Optimize options): Add description of
9457         -findirect-inlining.
9458         * common.opt (flag_indirect_inlining): New flag.
9459         * opts.c (decode_options): Set flag_indirect_inlining when
9460         optimize >= 3.
9461
9462         * ipa-inline.c: Include ipa-prop.h.
9463         (inline_indirect_intraprocedural_analysis): New function.
9464         (inline_generate_summary): Allocate parameter and argument info
9465         structures, call inline_indirect_intraprocedural_analysis on each
9466         node when doing indirect inlining and deallocate indirect inlining
9467         data structures in the end.
9468         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
9469         (free_all_ipa_structures_after_iinln): New function.
9470         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
9471         done.
9472         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
9473
9474         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
9475         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
9476         of computing the frequency separately.
9477         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
9478         of computing the frequency separately.
9479         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
9480         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
9481         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
9482         (ipa_get_stmt_member_ptr_load_param): New function.
9483         (ipa_is_ssa_with_stmt_def): New function.
9484         (ipa_note_param_call): New function.
9485         (ipa_analyze_call_uses): New function.
9486         (ipa_analyze_stmt_uses): New function.
9487         (ipa_analyze_params_uses): New function.
9488         (ipa_free_node_params_substructures): Also free the param_calls linked
9489         list.
9490         (ipa_node_duplication_hook): Also duplicate the param_calls
9491         linked list.
9492         (ipa_print_node_param_flags): New function.
9493         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
9494         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
9495         * ipa-prop.h (struct ipa_param_flags): New field called.
9496         (struct ipa_param_call_note): New structure.
9497         (struct ipa_node_params): New fields param_calls and
9498         uses_analysis_done.
9499         (ipa_is_ith_param_called): New function.
9500         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
9501         ipa_analyze_params_uses and dump parameter flags.
9502
9503         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
9504         ipa_propagate_indirect_call_infos if performing indirect inlining,
9505         pass a new parameter new_edges to it.
9506         (add_new_edges_to_heap): New fucntion.
9507         (cgraph_decide_inlining_of_small_functions): New vector
9508         new_indirect_edges for newly found indirect edges , call
9509         ipa_propagate_indirect_call_infos after inlining.
9510         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
9511         inlining if performing indirect inlining.  Call
9512         free_all_ipa_structures_after_iinln when doing so too.
9513         (inline_generate_summary): Do not call
9514         free_all_ipa_structures_after_iinln here.
9515         * ipa-prop.c (update_jump_functions_after_inlining): New function.
9516         (print_edge_addition_message): New function.
9517         (update_call_notes_after_inlining): New function.
9518         (propagate_info_to_inlined_callees): New function.
9519         (ipa_propagate_indirect_call_infos): New function.
9520         * ipa-prop.h: Include cgraph.h
9521         (struct ipa_param_call_note): Fields reordered, new field processed.
9522         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
9523         flag indirect_call.
9524         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
9525         rediscovered call statements.
9526         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
9527         (dump_cgraph_node): Dump also the indirect_call flag.
9528         (cgraph_clone_edge): Copy also the indirect_call flag.
9529         * tree-inline.c (copy_bb): Do not check for fndecls from call
9530         expressions, check for edge availability when moving clones.
9531         (get_indirect_callee_fndecl): New function.
9532         (expand_call_inline): If callee declaration is not apprent from
9533         the statement, try calling get_indirect_callee_fndecl.  Do not
9534         issue warnings or call sorry when not inlinings an indirect edge.
9535         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
9536
9537         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
9538         bit more frandly to matching.
9539         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
9540         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
9541         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
9542
9543 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
9544
9545         PR 36907
9546         * opth-gen.awk: Suppress function specific features when building
9547         target libraries.
9548         * optc-gen.awk: Ditto.
9549
9550 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9551
9552         PR 35058
9553         * diagnostic.c (pedwarn): Add opt parameter.
9554         (pedwarn0): New.
9555         * c-tree.h (pedwarn_init): Add opt parameter.
9556         (pedwarn_c90): Likewise.
9557         (pedwarn_c99): Likewise.
9558         * c-errors.c (pedwarn_c99): Likewise.
9559         (pedwarn_c90): Likewise.
9560         * toplev.h (pedwarn): Update declaration.
9561         (pedwarn0): Declare.
9562         * c-lex.c: All calls to pedwarn changed.
9563         * builtins.c: All calls to pedwarn changed.
9564         * toplev.c: All calls to pedwarn changed.
9565         * c-decl.c: All calls to pedwarn changed.
9566         * c-typeck.c: All calls to pedwarn changed.
9567         * c-common.c: All calls to pedwarn changed.
9568         * c-parser.c: All calls to pedwarn changed.
9569
9570 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
9571             Karthik Kumar  <karthikkumar@gmail.com>
9572
9573         * attribs.c (file scope): Include c-common.h.
9574         (decl_attributes): Add support for #pragma GCC optimize and
9575         #pragma GCC option.
9576
9577         * targhooks.c (default_can_inline_p): New function that is the
9578         default for the TARGET_CAN_INLINE_P target hook.
9579
9580         * targhooks.h (default_can_inline_p): Add declaration.
9581
9582         * tree.c (cl_optimization_node): New static tree for building
9583         OPTIMIZATION_NODE tree.
9584         (cl_target_option_node): New static tree for building
9585         TARGET_OPTION_NODE tree.
9586         (cl_option_hash_table): New hash table for hashing
9587         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
9588         (cl_option_hash_hash): New function to provide the hash value for
9589         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
9590         (cl_option_hash_eq): New function to provide an equality test for
9591         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
9592         (tree_code_size): Add support for OPTIMIZATION_NODE and
9593         TARGET_OPTION_NODE trees.
9594         (tree_code_structure): Add support for OPTIMIZATION_NODE and
9595         TARGET_OPTION_NODE trees.
9596         (build_optimization_node): Build a tree that has all of the
9597         current optimization options.
9598         (build_target_option_node): Build a tree that has the target
9599         options that might be changed on a per function basis.
9600
9601         * tree.h (file scope): Include options.h.
9602         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
9603         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
9604         (TREE_OPTIMIZATION): Ditto.
9605         (TREE_TARGET_SPECIFIC): Ditto.
9606         (struct tree_function_decl): Add fields for remembering the
9607         current optimization options and target specific options.
9608         (struct tree_optimization_option): New tree variant that remembers
9609         the optimization options.
9610         (struct tree_target_option): New tree variant that remembers the
9611         target specific flags that might change for compiling a particular
9612         function.
9613         (union tree_node): Include tree_optimization_option and
9614         tree_target_option fields.
9615         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
9616         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
9617         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
9618         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
9619         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
9620         optimization and target options.
9621         (optimization_default_node): New macro to refer to global_trees
9622         field.
9623         (optimization_current_node): Ditto.
9624         (optimization_cold_node): Ditto.
9625         (optimization_hot_node): Ditto.
9626         (target_option_default_node): Ditto.
9627         (target_option_current_node): Ditto.
9628         (current_option_pragma): Ditto.
9629         (current_optimize_pragma): Ditto.
9630
9631         * target.h (struct gcc_target): Add valid_option_attribute_p,
9632         target_option_save, target_option_restore, target_option_print,
9633         target_option_pragma_parse, and can_inline_p hooks.
9634
9635         * toplev.h (parse_optimize_options): Add declaration.
9636         (fast_math_flags_struct_set_p): Ditto.
9637
9638         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
9639         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
9640         optimize is used.
9641
9642         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
9643         tree_can_inline_p hook to see if one function can inline another.
9644         (cgraph_decide_inlining): Ditto.
9645         (cgraph_decide_inlining_incrementally): Ditto.
9646
9647         * opts.c (decode_options): Add support for running multiple times
9648         to allow functions with different target or optimization options
9649         than was specified on the command line.
9650         (fast_math_flags_struct_set_p): New function that is similar to
9651         fast_math_flags_set_p, except it uses the values in the
9652         cl_optimization structure instead of global variables.
9653
9654         * optc-gen.awk: Add support for TargetSave to allow a back end to
9655         declare new fields that need to be saved when using function
9656         specific options.  Include flags.h and target.h in the options.c
9657         source.  Add support for Save to indicate which options can be set
9658         for individual functions.  Generate cl_optimize_save,
9659         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
9660         cl_target_option_restore, cl_target_option_print functions to
9661         allow functions to use different optimization or target options.
9662
9663         * opt-functions.awk (var_type_struct): Return the type used for
9664         storing the field in a structure.
9665
9666         * opth-gen.awk: Add support for TargetSave to allow a back end to
9667         declare new fields that need to be saved when using function
9668         specific options.  Add support for Save to indicate which options
9669         can be set for individual functions.  Only generate one extern for
9670         Mask fields.  Generate cl_optimization and cl_target_option
9671         structures to remember optimization and target options.
9672
9673         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
9674         collecting new tree nodes.
9675         (TS_TARGET_OPTION): Ditto.
9676
9677         * c-decl.c (merge_decls): Merge function specific target and
9678         optimization options.
9679
9680         * function.c (invoke_set_current_function_hook): If the function
9681         uses different optimization options, change the global variables
9682         to reflect this.
9683
9684         * coretypes.h (struct cl_optimization): Add forward reference.
9685         (struct cl_target_option): Ditto.
9686
9687         * c-pragma.c (option_stack): New static vector to remember the
9688         current #pragma GCC option stack.
9689         (handle_pragma_option): New function to support #pragma GCC option
9690         to change target options.
9691         (optimize_stack): New static vector to remember the current
9692         #pragma GCC optimize stack.
9693         (handle_pragma_optimize): New function to support #pragma GCC
9694         optimize to change optimization options.
9695         (init_pragma): Add support for #pragma GCC optimize and #pragma
9696         GCC option.
9697
9698         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
9699         optimization options.
9700         (TARGET_OPTION_NODE): New tree code for remembering certain target
9701         options.
9702
9703         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
9704         TARGET_OPTION_NODE trees.
9705
9706         * common.opt (-O): Add Optimization flag.
9707         (-Os): Ditto.
9708         (-fmath-errno): Ditto.
9709         (-falign-functions): Add UInteger flag to make sure flag gets full
9710         int in cl_optimization structure.
9711         (-falign-jumps): Ditto.
9712         (-falign-labels): Ditto.
9713         (-falign-loops): Ditto.
9714         (-fsched-stalled-insns): Ditto.
9715         (-fsched-stalled-insns-dep): Ditto.
9716
9717         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
9718         definition.
9719         (TARGET_OPTION_SAVE): Ditto.
9720         (TARGET_OPTION_RESTORE): Ditto.
9721         (TARGET_OPTION_PRINT): Ditto.
9722         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
9723         (TARGET_CAN_INLINE_P): Ditto.
9724         (TARGET_INITIALIZER): Add new hooks.
9725
9726         * tree-inline.c (tree_can_inline_p): New function to determine
9727         whether one function can inline another.  Check if the functions
9728         use compatible optimization options, and also call the backend
9729         can_inline_p hook.
9730
9731         * tree-inline.h (tree_can_inline_p): Add declaration.
9732
9733         * c-common.c (c_common_attribute): Add support for option and
9734         optimize attributes.
9735         (handle_option_attribute): Add support for the option attribute to
9736         allow the user to specify different target options for compiling a
9737         specific function.
9738         (handle_optimize_attribute): Add support for the optimize
9739         attribute to allow the user to specify different optimization
9740         options for compiling a specific function.
9741         (handle_hot_attribute): Turn on -O3 optimization for this one
9742         function if it isn't the default optimization level.
9743         (handle_cold_attribute): Turn on -Os optimization for this one
9744         function if it insn't the default optimization.
9745         (const_char_p): New const char * typedef.
9746         (optimize_args): New static vector to remember the optimization
9747         arguments.
9748         (parse_optimize_options): New function to set up the optimization
9749         arguments from either the optimize attribute or #pragma GCC optimize.
9750
9751         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
9752         (builtin_define_std): Ditto.
9753
9754         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
9755         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
9756         (x86_64-*-*): Ditto.
9757
9758         * Makefile.in (TREE_H): Add options.h.
9759         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
9760
9761         * doc/extend.texi (option attribute): Document new attribute.
9762         (optimize attribute): Ditto.
9763         (hot attribute): Document hot attribute sets -O3.
9764         (cold attribute): Document cold attribute sets -Os.
9765         (#pragma GCC option): Document new pragma.
9766         (#pragma GCC optimize): Ditto.
9767
9768         * doc/options.texi (TargetSave): Document TargetSave syntax.
9769         (UInteger): Document UInteger must be used for certain flags.
9770         (Save): Document Save option to create target specific options
9771         that can be saved/restored on a function specific context.
9772
9773         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
9774         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
9775
9776         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
9777         (TARGET_OPTION_SAVE): Ditto.
9778         (TARGET_OPTION_RESTORE): Ditto.
9779         (TARGET_OPTION_PRINT): Ditto.
9780         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
9781         (TARGET_CAN_INLINE_P): Ditto.
9782
9783         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
9784         -mfpmath=sse,387.
9785         (-mfpmath=both): Ditto.
9786
9787 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
9788             Karthik Kumar  <karthikkumar@gmail.com>
9789
9790         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
9791         (TARGET_POPCNT): Ditto.
9792         (TARGET_SAHF): Ditto.
9793         (TARGET_AES): Ditto.
9794         (TARGET_PCLMUL): Ditto.
9795         (TARGET_CMPXCHG16B): Ditto.
9796         (TARGET_RECIP): Move switch into target_flags.
9797         (TARGET_FUSED_MADD): Ditto.
9798         (ix86_arch_features): Make an unsigned char type.
9799         (ix86_tune_features): Ditto.
9800         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
9801         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
9802         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
9803
9804         * config/i386/i386.opt (arch): New TargetSave field to define
9805         fields that need to be saved for function specific option support.
9806         (tune): Ditto.
9807         (fpmath): Ditto.
9808         (branch_cost): Ditto.
9809         (ix86_isa_flags_explicit): Ditto.
9810         (tune_defaulted): Ditto.
9811         (arch_specified): Ditto.
9812         (-m128-long-double): Add Save flag to save option for target
9813         specific option support.
9814         (-m80387): Ditto.
9815         (-maccumulate-outgoing-args): Ditto.
9816         (-malign-double): Ditto.
9817         (-malign-stringops): Ditto.
9818         (-mfancy-math-387): Ditto.
9819         (-mhard-float): Ditto.
9820         (-mieee-fp): Ditto.
9821         (-minline-all-stringops): Ditto.
9822         (-minline-stringops-dynamically): Ditto.
9823         (-mms-bitfields): Ditto.
9824         (-mno-align-stringops): Ditto.
9825         (-mno-fancy-math-387): Ditto.
9826         (-mno-push-args): Ditto.
9827         (-mno-red-zone): Ditto.
9828         (-mpush-args): Ditto.
9829         (-mred-zone): Ditto.
9830         (-mrtd): Ditto.
9831         (-msseregparm): Ditto.
9832         (-mstack-arg-probe): Ditto.
9833         (-m32): Ditto.
9834         (-m64): Ditto.
9835         (-mmmx): Ditto.
9836         (-m3dnow): Ditto.
9837         (-m3dnowa): Ditto.
9838         (-msse): Ditto.
9839         (-msse2): Ditto.
9840         (-msse3): Ditto.
9841         (-msse4.1): Ditto.
9842         (-msse4.2): Ditto.
9843         (-msse4): Ditto.
9844         (-mno-sse4): Ditto.
9845         (-msse4a): Ditto.
9846         (-msse5): Ditto.
9847         (-mrecip): Move flag into target_flags.
9848         (-mcld): Ditto.
9849         (-mno-fused-madd): Ditto.
9850         (-mfused-madd): Ditto.
9851         (-mabm): Move flag into ix86_isa_flags.
9852         (-mcx16): Ditto.
9853         (-mpopcnt): Ditto.
9854         (-msahf): Ditto.
9855         (-maes): Ditto.
9856         (-mpclmul): Ditto.
9857
9858         * config/i386/i386-c.c: New file for #pragma support.
9859         (ix86_target_macros_internal): New function to #define or #undef
9860         target macros based when the user uses the #pragma GCC option to
9861         change target options.
9862         (ix86_pragma_option_parse): New function to add #pragma GCC option
9863         support.
9864         (ix86_target_macros): Move defining the target macros here from
9865         TARGET_CPU_CPP_BUILTINS in i386.h.
9866         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
9867         defined, initialize any subtarget #pragmas.
9868
9869         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
9870         REGISTER_TARGET_PRAGMAS.
9871
9872         * config/i386/t-i386: New file for x86 dependencies.
9873         (i386.o): Make dependencies mirror the include files used.
9874         (i386-c.o): New file, add dependencies.
9875
9876         * config/i386/i386-protos.h (override_options): Add bool argument.
9877         (ix86_valid_option_attribute_tree): Add declaration.
9878         (ix86_target_macros): Ditto.
9879         (ix86_register_macros): Ditto.
9880
9881         * config/i386/i386.c (ix86_tune_features): Move initialization of
9882         the target masks to initial_ix86_tune_features to allow functions
9883         to have different target options.  Make type unsigned char,
9884         instead of unsigned int.
9885         (initial_ix86_tune_features): New static vector to hold processor
9886         masks for the tune variables.
9887         (ix86_arch_features): Move initialization of the target masks to
9888         initial_ix86_arch_features to allow functions to have different
9889         target options.  Make type unsigned char, instead of unsigned int.
9890         (initial_ix86_arch_features): New static vector to hold processor
9891         masks for the arch variables.
9892         (enum ix86_function_specific_strings): New enum to describe the
9893         string options used for attribute((option(...))).
9894         (ix86_target_string): New function to return a string that
9895         describes the target options.
9896         (ix86_debug_options): New function to print the current options in
9897         the debugger.
9898         (ix86_function_specific_save): New function hook to save the
9899         function specific global variables in the cl_target_option structure.
9900         (ix86_function_specific_restore): New function hook to restore the
9901         function specific variables from the cl_target_option structure to
9902         the global variables.
9903         (ix86_function_specific_print): New function hook to print the
9904         target specific options in the cl_target_option structure.
9905         (ix86_valid_option_attribute_p): New function hook to validate
9906         attribute((option(...))) arguments.
9907         (ix86_valid_option_attribute_tree): New function that is common
9908         code between attribute((option(...))) and #pragma GCC option
9909         support that parses the options and returns a tree holding the options.
9910         (ix86_valid_option_attribute_inner_p): New helper function for
9911         ix86_valid_option_attribute_tree.
9912         (ix86_can_inline_p): New function hook to decide if one function
9913         can inline another on a target specific basis.
9914         (ix86_set_current_function); New function hook to switch target
9915         options if the user used attribute((option(...))) or #pragma GCC
9916         option.
9917         (ix86_tune_defaulted): Move to static file scope from
9918         override_options.
9919         (ix86_arch_specified): Ditto.
9920         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
9921         ix86_isa_flags.
9922         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
9923         (OPTION_MASK_ISA_ABM_SET): Ditto.
9924         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
9925         (OPTION_MASK_ISA_CX16_SET): Ditto.
9926         (OPTION_MASK_ISA_SAHF_SET): Ditto.
9927         (OPTION_MASK_ISA_AES_UNSET): Ditto.
9928         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
9929         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
9930         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
9931         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
9932         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
9933         (struct ptt): Move to static file scope from override_options.
9934         (processor_target_table): Ditto.
9935         (cpu_names): Ditto.
9936         (ix86_handle_option): Add support for options that are now isa options.
9937         (override_options): Add support for declaring functions that
9938         support different target options than were specified on the
9939         command line.  Move struct ptt, processor_target_table, cpu_names,
9940         ix86_tune_defaulted, ix86_arch_specified to static file scope.
9941         Add bool argument.  Fix up error messages so the appropriate error
9942         is given for either command line or attribute.
9943         (ix86_previous_fndecl): New static to remember previous function
9944         declaration to see if we need to change target options.
9945         (ix86_builtins_isa): New array to record the ISA of each builtin
9946         function.
9947         (def_builtin): Always create the builtin function, even if the
9948         current ISA doesn't support it.
9949         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
9950         tests for those builtins.
9951         (ix86_init_builtins): Remove TARGET_MMX test for calling
9952         ix86_init_mmx_sse_builtins.
9953         (ix86_expand_builtin): If the current ISA doesn't support a given
9954         builtin, signal an error.
9955         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
9956         (TARGET_SET_CURRENT_FUNCTION): Ditto.
9957         (TARGET_OPTION_SAVE): Ditto.
9958         (TARGET_OPTION_RESTORE): Ditto.
9959         (TARGET_OPTION_PRINT): Ditto.
9960         (TARGET_CAN_INLINE_P): Ditto.
9961
9962 2008-07-22  Rafael Ãƒvila de Espíndola  <espindola@google.com>
9963
9964         * c-typeck.c (build_external_ref): Don't call assemble_external.
9965         * final.c (output_operand): Call assemble_external.
9966
9967 2008-07-21  DJ Delorie  <dj@redhat.com>
9968
9969         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
9970         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
9971
9972 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9973
9974         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
9975         original insn and splitter contents into ...
9976         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
9977         flag_unsafe_math_optimizations.  Add dummy scratch register.
9978         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
9979         !flag_unsafe_math_optimizations.  Returns number with next
9980         highest magnitude if this is still less or equal to the true
9981         quotient in magnitude.
9982
9983 2008-07-21  Rafael Ãƒvila de Espíndola  <espindola@google.com>
9984
9985         * Makefile.in: Replace toplev.h with TOPLEV_H.
9986         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
9987         * c-lex.c (fe_file_change): Don't set in_system_header.
9988         * c-parser.c (c_token): Remove in_system_header.
9989         (c_lex_one_token): Don't set in_system_header.
9990         (c_parser_set_source_position_from_token): Don't set in_system_header.
9991         * diagnostic.c (diagnostic_report_diagnostic): Use location from
9992         diagnostic_info.
9993         (warning_at): New.
9994         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
9995         * flags.h (in_system_header): Remove.
9996         * function.c (saved_in_system_header): Remove.
9997         (push_cfun): Don't set in_system_header.
9998         (pop_cfun): Don't set in_system_header.
9999         (push_struct_function): Don't set in_system_header.
10000         * input.h (expanded_location): Add sysp.
10001         (in_system_header_at): New.
10002         (in_system_header): New.
10003         * toplev.c (in_system_header): Remove.
10004         * toplev.h: Include input.h
10005         (warning_at): New.
10006         * tree-cfg.c (execute_warn_function_return): Call warning_at.
10007         * tree-ssa.c (warn_uninit): Call warning_at.
10008         (warn_uninitialized_var): Update calls to warn_uninit.
10009         (warn_uninitialized_phi): Update calls to warn_uninit.
10010         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
10011         (expand_location): Initialize xloc.sysp.
10012         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
10013         (tree_decl_with_vis): Remove in_system_header_flag.
10014
10015 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
10016
10017         PR target/36822
10018         * recog.c (asm_operand_ok): Change the order of the extra
10019         memory constraint checks.
10020
10021 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10022
10023         PR tree-opt/36879
10024         * tree-switch-conversion.c (build_one_array): Call
10025         varpool_mark_needed_node and varpool_finalize_decl
10026         instead of assemble_variable.
10027
10028 2008-07-19  Jan Hubicka  <jh@suse.cz>
10029
10030         * cgraph.c (cgraph_add_new_function): Do early local passes.
10031         * tree-nrv.c (gate_pass_return_slot): New gate.
10032         (pass_nrv): Add the gate.
10033         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
10034         functions.
10035         (coalesce_ssa_name): Coalesce SSA names.
10036         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
10037         not optimizing so unused user vars remains visible.
10038         * common.opt (flag_tree_ter): Always enable by default.
10039         * tree-ssa-ter.c: Include flags.h
10040         (is_replaceable_p): Check that locations match; when aliasing
10041         is missing be conservative about loads.
10042         * tree-optimize.c (gate_init_datastructures): Remove.
10043         (pass_init_datastructures): New.
10044         * passes.c: Reorder passes so we always go into SSA.
10045
10046 2008-07-19  Jan Hubicka  <jh@suse.cz>
10047
10048         * doc/extend.texi (flatten attribute): Remove note about
10049         unit-at-a-time.
10050         * doc/invoke.texi (--combine): Likewise.
10051         (-finline-functions-called-once): Update levels when enabled.
10052         (-funit-at-a-time): Document new behaviour.
10053         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
10054         -fno-section-anchors when disabled explicitly.
10055         (inline params): They are not ignored now.
10056         (precompiled headers): Remove unit-at-a-time as being incompatible.
10057         * opts.c (decode_options): Handle unit-at-a-time as alias;
10058         imply -fno-section-anchors when toplevel reorder is disabled
10059         explicitly.
10060         * common.opt (ftoplevel-reorder): Set default value to 2.
10061         (funit-at-a-time): Set default value to 1.
10062         * config/rs6000/rs6000.c (optimization_options): Set section anchors
10063         to 2.
10064
10065 2008-07-19  Jan Hubicka  <jh@suse.cz>
10066
10067         * builtins.c (expand_builtin_int_roundingfn,
10068         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
10069         it is not useful.
10070
10071 2008-07-19  Richard Guenther  <rguenther@suse.de>
10072
10073         PR bootstrap/36864
10074         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
10075         * tree-ssa-sccvn.c (get_constant_value_id): New function.
10076         * tree-ssa-pre.c (get_expr_value_id): For newly created
10077         constant value-ids make sure to add the expression to its
10078         expression-set.
10079
10080 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
10081
10082         PR middle-end/36877
10083         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
10084         return value of the builtin is ignored.
10085
10086 2008-07-19  Olivier Hainque  <hainque@adacore.com>
10087
10088         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
10089         bits, a C conformant malloc implementation has to provide.
10090         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
10091
10092 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
10093
10094         PR target/36780
10095         PR target/36827
10096         * reload.c (find_reloads_subreg_address): Only reload address if
10097         reloaded == 0, not for reloaded != 1.
10098
10099         Revert:
10100         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
10101         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
10102         (m32c_legitimate_address_p): Handle "++rii" addresses created by
10103         m32c_legitimize_reload_address.
10104
10105         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10106         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
10107         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
10108
10109 2008-07-19  Olivier Hainque  <hainque@adacore.com>
10110
10111         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
10112         argument, saying whether nested array are to be collapsed
10113         into a single array type DIE with multiple subscripts.
10114         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
10115         issues, centralize the nested array types collapsing control and
10116         disable the transformation for Ada.
10117
10118 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
10119
10120         PR target/36786
10121         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
10122         x86_64_shift_adj.
10123         (x86_64_shift_adj_2): New expander.
10124         (x86_64_shift_adj_3): Ditto.
10125         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
10126         to split TImode operands.
10127         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
10128         (ix86_split_lshr): Ditto.
10129
10130 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
10131
10132         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
10133         and __CHAR32_TYPE__.
10134         * c-typeck.c (digest_init): Support char16_t and char32_t.
10135         (set_nonincremental_init_from_string): Idem.
10136
10137 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
10138
10139         PR middle-end/36859
10140         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
10141         PREFERRED_STACK_BOUNDARY.
10142         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
10143
10144 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
10145
10146         PR middle-end/36858
10147         * function.c (locate_and_pad_parm): Cap boundary earlier.
10148
10149 2008-07-17  Julian Brown  <julian@codesourcery.com>
10150
10151         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
10152         no-op for targets which don't use DLLs.
10153
10154 2008-07-17  Martin Jambor  <mjambor@suse.cz>
10155
10156         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
10157         that nodes are relevant by examining the node->analyzed flag.
10158         (ipcp_init_stage): Check which nodes are relevant, assert that the
10159         relevant ones are also required.
10160         (ipcp_propagate_stage): Check on the side arrays are properly
10161         allocated.
10162         (ipcp_print_all_jump_functions): Make sure not to touch any node
10163         that is not analyzed or an edge that does not have a corresponding
10164         entry in the on-the-side vectors.
10165         (ipcp_function_scale_print): Likewise.
10166         (ipcp_update_callgraph): Check that the node is relevant.
10167         (ipcp_insert_stage): Check that the node is relevant.  Check there is
10168         an info for every node and edge.
10169         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
10170         (ipa_print_all_tree_maps): Likewise and a new variable info.
10171         (ipa_print_all_params_modified): Likewise.
10172         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
10173
10174 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
10175
10176         PR target/25343
10177         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
10178
10179 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
10180
10181         PR rtl-optimization/36753
10182         * fwprop.c (use_killed_between): Don't shortcut
10183         single-definition global registers.
10184
10185 2008-07-16  Jan Hubicka  <jh@suse.cz>
10186
10187         * cgraph.h (varpool_empty_needed_queue): Declare.
10188         * cgraphunit.c (output_in_order): Mark all variables as needed;
10189         empty the queue.
10190         * varpool.c (varpool_assemble_node): Update debug queue.
10191         (varpool_assemble_pending_decls): Don't do it here.
10192         (varpool_empty_needed_queue):  New function.
10193
10194 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10195
10196         * recog.c (peephole2_optimize): Fix formatting.
10197
10198 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10199
10200         * c-pch.c (get_ident): Avoid C++ keywords.
10201         * combine-stack-adj.c (single_set_for_csa): Likewise.
10202         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
10203         output_asm_insn): Likewise.
10204         * reload.c (push_secondary_reload, find_reusable_reload,
10205         push_reload, combine_reloads, find_reloads,
10206         debug_reload_to_stream): Likewise.
10207         * reload.h (struct reload): Likewise.
10208         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
10209         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
10210         emit_output_reload_insns): Likewise.
10211         * targhooks.c (default_secondary_reload): Likewise.
10212         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
10213
10214 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10215
10216         * recog.c (validate_change_1, validate_change,
10217         validate_unshare_change, validate_replace_rtx_1, struct
10218         funny_match, constrain_operands, peephole2_optimize): Avoid C++
10219         keywords.
10220         * reload.c (push_secondary_reload, secondary_reload_class,
10221         scratch_reload_class, find_valid_class, find_reusable_reload,
10222         push_reload, find_dummy_reload, find_reloads_address_1,
10223         find_reloads_address_part, find_equiv_reg): Likewise.
10224         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
10225         choose_reload_regs): Likewise.
10226         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
10227         Likewise.
10228         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
10229         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
10230         * sched-rgn.c (concat_INSN_LIST): Likewise.
10231         * stor-layout.c (mode_for_size, mode_for_size_tree,
10232         smallest_mode_for_size): Likewise.
10233
10234 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10235
10236         * cfg.c (dump_reg_info): Avoid C++ keywords.
10237         * dwarf2asm.c (dw2_force_const_mem,
10238         dw2_asm_output_encoded_addr_rtx): Likewise.
10239         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
10240         * expmed.c (expand_shift): Likewise.
10241         * global.c (find_reg): Likewise.
10242         * graph.c (draw_edge): Likewise.
10243         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
10244         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
10245         widen_clz, widen_bswap, expand_parity, expand_unop,
10246         emit_cmp_and_jump_insn_1): Likewise.
10247         * postreload.c (reload_cse_simplify_operands): Likewise.
10248         * ra.h (add_neighbor): Likewise.
10249         * reg-stack.c (remove_regno_note, change_stack): Likewise.
10250         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
10251         record_reg_classes, copy_cost, record_address_regs,
10252         invalid_mode_change_p): Likewise.
10253         * regrename.c (regrename_optimize, scan_rtx_reg,
10254         dump_def_use_chain, find_oldest_value_reg,
10255         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
10256
10257 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
10258
10259         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
10260         MASK_POWERPC64 for power4 in previous commit.
10261
10262 2008-07-16  Olivier Hainque  <hainque@adacore.com>
10263
10264         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
10265         instead of bare conversion to cast const-ness away.
10266
10267 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
10268
10269         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
10270         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
10271         * config/xtensa/xtensa.c (xtensa_function_value): New function.
10272         (TARGET_FUNCTION_VALUE): Define.
10273
10274 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
10275
10276         * config/rs6000/rs6000.c (processor_target_table): Add
10277         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
10278
10279 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
10280
10281         PR target/36827
10282         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
10283         (m32c_legitimate_address_p): Handle "++rii" addresses created by
10284         m32c_legitimize_reload_address.
10285
10286 2007-07-16  Rafael Ãƒvila de Espíndola  <espindola@google.com>
10287
10288         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
10289         DECL_IN_SYSTEM_HEADER in sync.
10290
10291 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
10292
10293         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
10294         * tree-ssa-pre.c (pre_expr_eq): Ditto
10295         (get_constant_for_value_id): Take a type as an argument.
10296         (fully_constant_expression): Pass in type.
10297         (find_or_generate_expression): Short circuit constant case.
10298         (create_expression_by_pieces): Remove special casing of
10299         pointer_plus.
10300         (do_regular_insertion): Short circuit constant case.
10301         (do_partial_partial_insertion): Ditto.
10302
10303 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10304
10305         PR target/36782
10306         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
10307
10308 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
10309
10310         * config/xtensa/libgcc-xtensa.ver: New file.
10311         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
10312
10313 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10314
10315         * df-problems.c (df_set_note): Avoid C++ keywords.
10316         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
10317         * dse.c (record_store, remove_useless_values): Likewise.
10318         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
10319         gen_reg_rtx_offset, operand_subword, change_address_1,
10320         change_address, adjust_address_1, offset_address,
10321         widen_memory_access, emit_copy_of_insn_after): Likewise.
10322         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
10323         * fwprop.c (should_replace_address, propagate_rtx_1,
10324         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
10325         Likewise.
10326         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
10327         gcse_emit_move_after, update_ld_motion_stores): Likewise.
10328         * lcm.c (compute_insert_delete, pre_edge_lcm,
10329         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
10330         * lower-subreg.c (resolve_reg_notes): Likewise.
10331         * mode-switching.c (optimize_mode_switching): Likewise.
10332
10333 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10334
10335         * bt-load.c (add_btr_def, migrate_btr_def,
10336         branch_target_load_optimize): Avoid C++ keywords.
10337         * caller-save.c (insert_restore, insert_save, insert_one_insn):
10338         Likewise.
10339         * combine.c (subst, simplify_set, make_extraction,
10340         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
10341         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
10342         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
10343
10344 2008-07-15  Richard Guenther  <rguenther@suse.de>
10345
10346         PR middle-end/36369
10347         * c-common.c (strict_aliasing_warning): Do not warn for
10348         TYPE_REF_CAN_ALIAS_ALL pointers.
10349         (c_common_get_alias_set): may_alias types are not special.
10350         * tree.c (build_pointer_type_for_mode): Look up the may_alias
10351         attribute and set can_ref_all accordingly.
10352         (build_reference_type_for_mode): Likewise.
10353         * doc/extend.texi (may_alias): Clarify.
10354
10355 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10356
10357         PR target/36780
10358         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
10359         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
10360
10361 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10362
10363         PR target/31568
10364         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
10365         gcc_assert, instead call output_operand_lossage.
10366
10367 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
10368
10369         * builtins.c (std_canonical_va_list): Treat structure based
10370         va_list types.
10371
10372 2008-07-15  Ben Elliston  <bje@au.ibm.com>
10373
10374         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
10375
10376 2007-07-14  Rafael Ãƒvila de Espíndola  <espindola@google.com>
10377
10378         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
10379         is set.
10380
10381 2008-07-14  Jan Hubicka  <jh@suse.cz>
10382
10383         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
10384         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
10385         fix predicates and constraints.
10386         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
10387         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
10388
10389 2008-07-14  Doug Kwan  <dougkwan@google.com>
10390
10391         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
10392         additional option file arm/eabi.opt.
10393         * config/arm/eabi.h (File): New configuration file for EABI targets.
10394         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
10395         SUBSUBTARGET_EXTRA_SPECS.
10396         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
10397         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
10398         from STARTFILE_SPEC so that it can be referenced in an override.
10399         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
10400         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
10401         can be referenced in an override.
10402         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
10403         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
10404         so that it can be referenced in an override.
10405         (LINK_SPEC): Use BPABI_LINK_SPEC.
10406         * config/arm/eabi.opt (File): New.
10407
10408 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10409
10410         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
10411         (FIXED_VALUE_H): New variable.
10412         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
10413         input.h, fixed-value.h.
10414         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
10415         (BASIC_BLOCK_H): Use $(BITMAP_H).
10416         (FUNCTION_H): Add varray.h.
10417         (IPA_REFERENCE_H): Use $(BITMAP_H).
10418         (CGRAPH_H): Add $(BASIC_BLOCK_H).
10419         (DF_H): Use $(BITMAP_H).
10420         (GGC_H): Add statistics.h.
10421         (INSN_ADDR_H): New.
10422         (INSN_ATTR_H): Use it.
10423         (SYSTEM_H): Add safe-ctype.h, filenames.h.
10424         (INPUT_H): New.
10425         (SYMTAB_H): Add $(OBSTACK_H).
10426         (CPP_INTERNAL_H): New.
10427         (TREE_DUMP_H): Add tree-pass.h.
10428         (TREE_FLOW_H): Use $(BITMAP_H)
10429         (PRETTY_PRINT_H): Use $(INPUT_H).
10430         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
10431         (GSTAB_H): New.
10432         (BITMAP_H): New.
10433         (many object files): Fix lots of header dependencies throughout.
10434
10435 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10436
10437         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
10438         New macros.
10439         (s-gtyp-input): Use them to write tmp-gi.list.
10440         (echo_to_gi.list): Remove.
10441
10442 2008-07-14  Richard Guenther  <rguenther@suse.de>
10443
10444         * tree-ssa-sccvn.c (pre_info): Remove.
10445         (switch_to_PRE_table): Likewise.
10446         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
10447         (set_hashtable_value_ids): Do not create value-ids for the
10448         optimistic tables.
10449         (run_scc_vn): Remove double test.  Remove bogus special-case
10450         in value-number printing.
10451         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
10452         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
10453         SSA_NAME_VALUE.
10454         * tree-flow-inline.h (get_value_handle): Remove.
10455         * tree-flow.h (get_value_handle): Remove.
10456
10457 2008-07-14  Martin Jambor  <mjambor@suse.cz>
10458
10459         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
10460         in which we generate arithmetics is not a subrange.
10461
10462 2008-07-14  Martin Jambor  <mjambor@suse.cz>
10463
10464         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
10465
10466 2008-07-14  Richard Guenther  <rguenther@suse.de>
10467
10468         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
10469
10470 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10471
10472         PR target/36745
10473         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
10474         reload for symbol refs moved to r0 with -fPIC.
10475         (legitimize_pic_address): Use the target register as temporary
10476         reg if possible.
10477         (emit_symbolic_move): Adjust comment.
10478         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
10479         New expanders.
10480
10481 2008-07-14  Ben Elliston  <bje@au.ibm.com>
10482
10483         * c-common.h (C_CPP_HASHNODE): New macro.
10484         * coretypes.h (struct cpp_token): Forward declare.
10485         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
10486         the context-sensitive keyword method.
10487         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
10488         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
10489         expand_bool_pixel): New.
10490         (altivec_categorize_keyword): New function.
10491         (init_vector_keywords): New function.
10492         (rs6000_macro_to_expand): Likewise.
10493         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
10494         compiling an ISO C dialect.
10495
10496 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
10497
10498         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
10499         (create_expression_by_pieces): Fix typo.
10500         (do_regular_insertion): Use debug counter here too.
10501
10502 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
10503
10504         PR target/35492.
10505         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
10506         CONST_OK_FOR_LETTER_P.  All port-local users changed.
10507         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
10508         implement Kp matching power-of-two.
10509         (CONSTRAINT_LEN): Define to match.
10510         * config/cris/cris.md: Replace all use of constraint K with Kc.
10511         ("*btst*): Use Kp for operand 0 of last alternative.
10512
10513 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10514
10515         PR testsuite/36440
10516         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
10517         and quad formats.
10518
10519 2008-07-13  Jan Hubicka  <jh@suse.cz>
10520
10521         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
10522         to be mangled too.
10523
10524 2008-07-13  Richard Guenther  <rguenther@suse.de>
10525
10526         PR middle-end/36811
10527         * langhooks.c (lhd_print_error_function): Deal with recursive
10528         BLOCK trees.
10529
10530 2008-07-12  Jan Hubicka  <jh@suse.cz>
10531
10532         * cgraph.c (assembler_name_hash): New static var.
10533         (hash_node_by_assembler_name, eq_assembler_name): New.
10534         (cgraph_node_for_asm): Use hashtable.
10535         (cgraph_remove_node): Maintain hashtable.
10536         (change_decl_assembler_name): Sanity check that names are not changing
10537         after aliasing was processed.
10538         * cgraph.h (varpoon_node): Add next GGC marker.
10539         * tree.c (decl_assembler_name_equal): Constify.
10540         (decl_assembler_name_hash): New.
10541         * tree.h (decl_assembler_name_equal): Constify.
10542         (decl_assembler_name_hash): Update.
10543
10544 2008-07-12  David Daney  <ddaney@avtrex.com>
10545
10546         * config/mips/driver-native.c (host_detect_local_cpu): Handle
10547         sb1 and r5000 cpus.
10548
10549 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
10550
10551         * doc/md.texi: Document the MIPS "v" constraint.
10552         * config/mips/mips.h (reg_class): Revert last change.
10553         (REG_CLASS_NAMES): Likewise.
10554         (REG_CLASS_CONTENTS): Likewise.
10555         * config/mips/mips.c (mips_regno_to_class): Likewise.
10556         * config/mips/constraints.md (v): Likewise, but add documentation.
10557         Add a comment to say that this constraint should not be used in
10558         gcc code.
10559
10560 2008-07-11  DJ Delorie  <dj@redhat.com>
10561
10562         * config/h8300/h8300.md (length): Fix branch offset limit.
10563
10564 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
10565
10566         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
10567         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
10568         (avr_hard_regno_scratch_ok): New function.
10569         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
10570         * config/avr/avr.md (all peepholes that request a scratch register):
10571         Remove avr_peep2_scratch_safe use.
10572
10573 2008-07-11  Tom Tromey  <tromey@redhat.com>
10574             Ian Lance Taylor  <iant@google.com>
10575
10576         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
10577         (struct c_common_resword): Define.
10578         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
10579         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
10580         (c_common_reswords, num_c_common_reswords): Declare.
10581         * c-common.c (c_common_reswords): New global const array.
10582         (num_c_common_reswords): New const int.
10583         * c-parser.c (struct resword, reswords): Don't define.
10584         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
10585         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
10586         than reswords.  If warning about C++ keywords, give them a special
10587         RID code.
10588         (c_lex_one_token): Warn about C++ keywords.  Call
10589         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
10590         (c_parser_external_declaration): Look for RID_xxx rather than
10591         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
10592         (c_parser_statement_after_labels): Likewise.
10593         (c_parser_objc_class_instance_variables): Likewise.
10594         (c_parser_objc_class_declaration): Likewise.
10595         (c_parser_objc_try_catch_statement): Likewise.
10596         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
10597         (declspecs_add_type): Likewise.
10598
10599 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
10600
10601         * ggc-page.c (alloc_page):
10602         Substituting xmalloc, xcalloc with
10603         XNEWVEC and XCNEWVAR macros which add the
10604         needed casts.
10605
10606 2008-07-11  Richard Guenther  <rguenther@suse.de>
10607
10608         PR tree-optimization/36765
10609         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
10610         aliases from HEAP vars to SMTs.
10611
10612 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10613
10614         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
10615         * configure.ac (loose_warn): Move -Wc++-compat from here...
10616         (strict_warn): ...to here.
10617         * configure: Regenerate.
10618
10619 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
10620
10621         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
10622         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
10623         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
10624         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
10625         excluding more specific h8300-*-* and sh-*-* targets.
10626
10627 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
10628
10629         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
10630         (eliminate): Ditto.
10631         (execute_pre): Call loop_optimizer_finalize in early exit.
10632
10633 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
10634
10635         PR middle-end/36790
10636         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
10637         uids in the bitmap, not just VAR_DECL uids.
10638
10639         PR rtl-optimization/36419
10640         * combine-stack-adj.c (adjust_frame_related_expr): New function.
10641         (combine_stack_adjustments_for_block): Call it if needed.  Delete
10642         correct insn.
10643         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
10644         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
10645         prologue sp adjustment.
10646
10647 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
10648
10649         PR other/28322
10650         * opts.c (print_ignored_options): Report postponed diagnostics for
10651         unknown -Wno-* options as warnings, not errors.
10652         (postpone_unknown_option_error): Renamed to...
10653         (postpone_unknown_option_warning): ... this.
10654
10655 2008-07-09  Doug Kwan  <dougkwan@google.com>
10656
10657         Revert:
10658         2008-07-08  Doug Kwan  <dougkwan@google.com>
10659
10660         * config/arm/arm.opt (mandroid): New option.
10661         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
10662         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
10663         (CC1_SPEC): Same.
10664         (CC1PLUS_SPEC): Same.
10665         (LIB_SPEC): Same.
10666         (STARTFILE_SPEC): Same.
10667         (ENDFILE_SPEC): Same.
10668         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
10669         used.
10670
10671 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
10672
10673         PR target/35802
10674         * config/mips/mips.h (reg_class): Remove V1_REG.
10675         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
10676         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
10677         instead of V1_REGS.
10678         (mips_get_tp): New function.
10679         (mips_legitimize_tls_address): Use it.
10680         * config/mips/constraints.md (v): Delete.
10681         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
10682         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
10683         After reload, split into a move and ...
10684         (*tls_get_tp_<mode>_split): ...this new instruction.
10685
10686 2008-07-09  David Daney  <ddaney@avtrex.com>
10687
10688         * config/mips/driver-native.c: Include coretypes.h and tm.h.
10689
10690 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
10691
10692         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
10693         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
10694         Add c argument.
10695         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
10696         htab_delete should be called.  Don't free c.
10697         (lookup_tmp_var): Create temp_htab lazily.
10698         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
10699         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
10700         callers.
10701         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
10702         lower_omp_ordered, lower_omp_critical, lower_omp_for,
10703         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
10704         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
10705         * tree-sra.c (generate_element_init): Likewise.
10706         * tree-mudflap.c (execute_mudflap_function_ops,
10707         execute_mudflap_function_decls): Likewise.
10708         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
10709         * tree-gimple.h (struct gimplify_ctx): New type.
10710         (push_gimplify_context): Adjust prototype.
10711
10712 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
10713
10714         * tree-ssa-pre.c (phi_translate_1): Update placement of
10715         add_to_value calls.
10716
10717 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
10718
10719         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
10720         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
10721         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
10722         * targhooks.c (default_hard_regno_scratch_ok): New function.
10723         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
10724         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
10725         * recog.c:  Include "target.h".
10726         (peep2_find_free_register): Add check for global regs. Add target
10727         specific check.
10728         * Makefile.in (recog.o): Depend on target.h.
10729
10730 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
10731
10732         * config/sh/sh.c (sh_canonical_va_list_type): New.
10733         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
10734
10735 2008-07-09  Raksit Ashok <raksit@google.com>
10736
10737         * doc/invoke.texi (Option Summary): Mention new option
10738         -Wdisallowed-function-list=...
10739         (Warning Options): Document -Wdisallowed-function-list=...
10740         * common.opt (Wdisallowed-function-list=): New flag.
10741         * flags.h (warn_disallowed_functions): External definition of new
10742         boolean warning flag.
10743         (warn_if_disallowed_function_p): Declare new function.
10744         * opts.c (warning_disallowed_functions): New static variable.
10745         (warn_disallowed_functions): New boolean warning flag.
10746         (warn_if_disallowed_function_p): New function.
10747         (add_comma_separated_to_vector): Rename
10748         add_instrument_functions_exclude_list to this.
10749         (common_handle_option): Handle new option. Rename calls to
10750         add_instrument_functions_exclude_list into calls to
10751         add_comma_separated_to_vector.
10752         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
10753         based on flag warn_disallowed_functions.
10754
10755 2008-07-09  Christian Bruel  <christian.bruel@st.com>
10756
10757         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
10758          instead of get_attr_length.
10759
10760 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10761
10762         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
10763         keywords.
10764         * genemit.c (gen_insn): Likewise.
10765         * gengtype.c (note_def_vec): Likewise.
10766         * gengtype.h (note_def_vec): Likewise.
10767         * genoutput.c (struct data, output_insn_data, process_template,
10768         gen_expand, gen_split, note_constraint): Likewise.
10769         * genrecog.c (new_decision, add_to_sequence, factor_tests,
10770         make_insn_sequence): Likewise.
10771         * gensupport.c (record_insn_name): Likewise.
10772
10773 2008-07-08  Doug Kwan  <dougkwan@google.com>
10774
10775         * config/arm/arm.opt (mandroid): New option.
10776         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
10777         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
10778         (CC1_SPEC): Same.
10779         (CC1PLUS_SPEC): Same.
10780         (LIB_SPEC): Same.
10781         (STARTFILE_SPEC): Same.
10782         (ENDFILE_SPEC): Same.
10783         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
10784         used.
10785
10786 2008-07-08  Raksit Ashok  <raksit@google.com>
10787
10788         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
10789         (set_storage_via_setmem): Fix expected_align parameter.
10790         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
10791         missing from the list.
10792         * doc/md.texi (movmem): Explicitly state that expected alignment is
10793         to be expressed in bytes.
10794         (setmem): Explicitly state that expected alignment is to be expressed
10795         in bytes.
10796
10797 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
10798
10799         * reload.c (find_reloads_subreg_address): Do not require validity
10800         of address in original mode before reloading address.
10801
10802 2008-07-07  Tianwei Sheng  <tianweis@google.com>
10803
10804         * df-core.c (df_remove_problem): Adjust the access to avoid out of
10805         bounds array access.
10806
10807 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
10808
10809         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
10810
10811 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
10812
10813         Fix PR tree-optimization/23455
10814         Fix PR tree-optimization/35286
10815         Fix PR tree-optimization/35287
10816         * Makefile.in (OBJS-common): Remove tree-vn.o.
10817         (tree-vn.o): Remove.
10818         * dbgcnt.def: Add treepre_insert debug counter.
10819         * gcc/tree-flow.h (add_to_value): Updated for other changes.
10820         (debug_value_expressions): Ditto.
10821         (print_value_expressions): Ditto.
10822         * tree-pretty-print.c (dump_generic_node): Updated for
10823         VALUE_HANDLE removal.
10824         * tree-ssa-dom.c (record_equality): Ditto.
10825         (cprop_operand): Ditto.
10826         (lookup_avail_expr): Ditto.
10827         * tree-ssa-threadedge.c
10828         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
10829         (simplify_control_stmt_condition): Ditto.
10830         * tree.c (tree_code_size): Ditto.
10831         (tree_node_structure): Ditto.
10832         (iterative_hash_expr): Ditto.
10833         * tree.def: Ditto.
10834         * tree.h (VALUE_HANDLE_ID): Ditto.
10835         (VALUE_HANDLE_EXPR_SET): Ditto.
10836         (struct tree_value_handle): Ditto.
10837         (union tree_node): Ditto.
10838         * treestruct.def: Ditto.
10839         * tree-vn.c: Removed.
10840         * tree-ssa-pre.c: Rewritten entirely.
10841         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
10842         (constant_value_ids): Ditto.
10843         (vn_nary_op_t): Moved to header.
10844         (vn_phi_t): Ditto.
10845         (vn_reference_op_t): Ditto
10846         (vn_reference_t): Ditto.
10847         (next_value_id): New variable.
10848         (VN_INFO): Add an assert.
10849         (vn_constant_eq): New function.
10850         (vn_constant_hash): Ditto.
10851         (get_or_alloc_constant_value_id): Ditto.
10852         (value_id_constant_p): Ditto.
10853         (vn_reference_compute_hash): De-staticify.
10854         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
10855         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
10856         (valueize_refs): Update opcode if it changes from ssa name to constant.
10857         (vn_reference_lookup_1): Add new argument.
10858         (vn_reference_lookup):  Ditto.
10859         (vn_reference_lookup_pieces): New function.
10860         (vn_reference_insert): Add return type. Modify to deal with value ids.
10861         (vn_reference_insert_pieces):  New function.
10862         (vn_nary_op_compute_hash): De-staticify.
10863         (vn_nary_op_eq): Ditto.
10864         (vn_nary_op_lookup_pieces): New function.
10865         (vn_nary_op_lookup): Add new argument.
10866         (vn_nary_op_insert_pieces): New function.
10867         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
10868         (vn_phi_insert): Ditto.
10869         (visit_unary_op): Update for callee changes.
10870         (visit_binary_op): Ditto.
10871         (visit_reference_op_load): Ditto.
10872         (visit_reference_op_store): Ditto.
10873         (init_scc_vn): Init next_value_id, constant_to_value_id and
10874         constant_value_ids.
10875         (free_scc_vn): Free them.
10876         (set_hashtable_value_ids): New function.
10877         (run_scc_vn): Use it.
10878         (get_max_value_id): New function.
10879         (get_next_value_id): Ditto.
10880         (expressions_equal_p): Moved from tree-vn.c
10881         (sort_vuses): Ditto.
10882         (sort_vuses_heap): Ditto.
10883         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
10884         above).
10885         * tree.c (iterative_hash_hashval_t): Made non-static
10886         * tree.h (iterative_hash_hashval_t): Declare it.
10887
10888 2008-07-08  Martin Jambor  <mjambor@suse.cz>
10889
10890         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
10891         instead of ipa_create_node_params.
10892         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
10893         ipa_check_create_edge_args, free them with
10894         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
10895
10896         * ipa-prop.c: Include flags.h and tree-inline.h.
10897         (ipa_node_params_vector): New variable.
10898         (ipa_edge_args_vector): New variable.
10899         (edge_removal_hook_holder): New variable.
10900         (node_removal_hook_holder): New variable.
10901         (edge_duplication_hook_holder): New variable.
10902         (node_duplication_hook_holder): New variable.
10903         (ipa_detect_param_modifications): Check for presence of modified flags.
10904         (ipa_compute_jump_functions): Check for presence of jump functions.
10905         (ipa_free_edge_args_substructures): New function.
10906         (ipa_create_node_params): Removed.
10907         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
10908         (ipa_free_node_params_substructures): New function.
10909         (ipa_free_all_node_params): Changed to deallocate the on-the-side
10910         vector.
10911         (ipa_edge_removal_hook): New function.
10912         (ipa_node_removal_hook): New function.
10913         (duplicate_array): New function.
10914         (ipa_edge_duplication_hook): New function.
10915         (ipa_node_duplication_hook): New function.
10916         (ipa_register_cgraph_hooks): New function.
10917         (ipa_unregister_cgraph_hooks): New function.
10918         (free_all_ipa_structures_after_ipa_cp): New function.
10919
10920         * ipa-prop.h: Include vec.h.
10921         (ipa_node_params_t): New typedef with vector types for it.
10922         (ipa_edge_args_t):  New typedef with vector types for it.
10923         (IPA_NODE_REF): Changed to access an on-the-side vector.
10924         (IPA_EDGE_REF): Changed to access an on-the-side vector.
10925         (ipa_check_create_node_params): New function.
10926         (ipa_check_create_edge_args): New function.
10927
10928         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
10929         all users.
10930
10931 2008-07-07  Tom Tromey  <tromey@redhat.com>
10932
10933         * configure, config.in: Rebuilt.
10934         * configure.ac: Don't check for scandir or alphasort.
10935
10936 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
10937
10938         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
10939         types immediately after creating them.
10940
10941 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
10942
10943         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
10944
10945 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
10946
10947         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
10948         dump_constraint_graph.
10949         (dump_constraint_edge): New function.
10950         (dump_constraint_graph): New function.
10951         (debug_constraint_graph): New function.
10952         (dump_constraint): Removed useless comparison.
10953         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
10954         (dump_constraint_graph): Declare.
10955         (debug_constraint_graph): Declare.
10956         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
10957
10958 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
10959
10960         * config/i386/i386.c (is_va_list_char_pointer): New.
10961         (ix86_va_start): Replace compare with ms_va_list_type_node
10962         by is_va_list_char_pointer.
10963         (ix86_gimplify_va_arg): Likewise.
10964
10965 2008-07-07  Martin Jambor  <mjambor@suse.cz>
10966
10967         * cgraph.c (cgraph_edge_max_uid): New variable.
10968         (struct cgraph_edge_hook_list): New type.
10969         (struct cgraph_node_hook_list): New type.
10970         (struct cgraph_2edge_hook_list): New type.
10971         (struct cgraph_2node_hook_list): New type.
10972         (first_cgraph_edge_removal_hook): New variable.
10973         (first_cgraph_node_removal_hook): New variable.
10974         (first_cgraph_edge_duplicated_hook): New variable.
10975         (first_cgraph_node_duplicated_hook): New variable.
10976         (cgraph_add_edge_removal_hook): New function.
10977         (cgraph_remove_edge_removal_hook): New function.
10978         (cgraph_call_edge_removal_hooks):  New function.
10979         (cgraph_add_node_removal_hook):  New function.
10980         (cgraph_remove_node_removal_hook):  New function.
10981         (cgraph_call_node_removal_hooks):  New function.
10982         (cgraph_add_edge_duplication_hook):  New function.
10983         (cgraph_remove_edge_duplication_hook):  New function.
10984         (cgraph_call_edge_duplication_hooks):  New function.
10985         (cgraph_add_node_duplication_hook):  New function.
10986         (cgraph_remove_node_duplication_hook):  New function.
10987         (cgraph_call_node_duplication_hooks):  New function.
10988         (cgraph_create_edge): Assign to edge uid.
10989         (cgraph_remove_edge): Call edge removal hooks.
10990         (cgraph_node_remove_callees): Call edge removal hooks.
10991         (cgraph_node_remove_callers): Call edge removal hooks.
10992         (cgraph_remove_node): Call node removal hooks.
10993         (cgraph_clone_edge): Call edge duplication hooks.
10994         (cgraph_clone_node): Call node duplication hooks.
10995
10996         * cgraph.h (cgraph_edge): New field uid.
10997         (cgraph_edge_hook): New type.
10998         (cgraph_node_hook): New type.
10999         (cgraph_2edge_hook): New type.
11000         (cgraph_2node_hook): New type.
11001
11002 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
11003
11004         * config.in: Regenerate.
11005
11006 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
11007
11008         * gcc.c (print_sysroot): New.
11009         (option_map, display_help, process_command): Handle the
11010         -print-sysroot option.
11011         (main): Print the sysroot if requested.
11012         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
11013
11014 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11015
11016         PR target/34780
11017         * unwind-pe.h (size_of_encoded_value): add attribute unused.
11018
11019 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
11020
11021         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
11022         (assign_parm_setup_block_p): Also check mode of entry_parm.
11023
11024 2008-07-07  Richard Guenther  <rguenther@suse.de>
11025
11026         * tree-ssa-structalias.h (set_used_smts): Remove.
11027         * tree-ssa-structalias.c (used_smts): Likewise.
11028         (set_used_smts): Likewise.
11029         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
11030         call to set_used_smts.
11031
11032 2008-07-07  Richard Guenther  <rguenther@suse.de>
11033
11034         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
11035         (new_var_info): Set it to false.
11036         (solution_set_add): Correctly handle pointers outside a var and
11037         inside a field.
11038         (type_safe): Treat variables with is_full_var properly.
11039         (do_sd_constraint): Likewise.
11040         (do_ds_constraint): Likewise.
11041         (process_constraint): Remove zeroing offset for !use_field_sensitive.
11042         (get_constraint_for_ptr_offset): New function.
11043         (get_constraint_for_component_ref): For addresses at least include
11044         the last field of the variable.  Handle is_full_vars properly.
11045         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
11046         (handle_ptr_arith): Remove.
11047         (find_func_aliases): Simplify assignment handling.
11048         (create_function_info_for): For parameter and result varinfos set
11049         is_full_var flag.
11050         (create_variable_info_for): Set is_full_var flag whenever we
11051         just created a single varinfo for a decl.
11052         (init_alias_vars): Initialize use_field_sensitive from
11053         max-fields-for-field-sensitive parameter.
11054
11055 2008-07-07  Richard Guenther  <rguenther@suse.de>
11056
11057         PR tree-optimization/36713
11058         * tree-flow-inline.h (is_call_used): New function.
11059         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
11060         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
11061         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
11062
11063 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
11064
11065         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
11066
11067 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
11068
11069         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
11070
11071 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
11072             Nathan Sidwell  <nathan@codesourcery.com>
11073
11074         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
11075         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
11076         tmake_file.
11077         * config/m68k/t-linux: New.
11078         * doc/install.texi: Document m68k-*-linux is now multilibbed by
11079         default.
11080
11081 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
11082
11083         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
11084         * config/m68k/m68k-devices.def: Remove multilibs that only differ
11085         by MAC/EMAC.
11086
11087 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11088
11089         * gcc.c (execute): Fix -Wc++-compat warning.
11090
11091 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
11092
11093         PR target/36720
11094         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
11095         constant for little endian.
11096
11097 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
11098
11099         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
11100         mips_base_mips16 instead of TARGET_MIPS16.
11101         (mips_base_mips16): Declare.
11102         * config/mips/mips.c (mips_base_mips16): Make global.
11103         (was_mips16_p): Remove GTY marker.
11104         (was_mips16_pch_p): New variable.
11105         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
11106         (mips_override_options): Force to non-MIPS16 mode initially.
11107         Do not complain about MIPS16 PIC incompatibilities here.
11108         Only allow -mgpopt if -mexplicit-relocs is in force for
11109         non-MIPS16 code.
11110
11111 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
11112
11113         * configure.ac: Check for caddr_t, define to char * if not defined.
11114         * configure: Regenerate.
11115         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
11116         (mmap_gt_pch_use_address): Likewise.
11117         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
11118
11119 2008-07-06  Richard Guenther  <rguenther@suse.de>
11120
11121         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
11122         (new_var_info): Deal with it.
11123         (solution_set_add): Likewise.
11124         (bitpos_of_field): Make signed, fix.
11125         (struct fieldoff): Remove type and decl fields.  Make size field
11126         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
11127         flags.
11128         (fieldoff_compare): Deal with it.
11129         (push_fields_onto_fieldstack): Remove has_union argument, glob
11130         adjacent non-pointer fields together.
11131         (create_function_info_for): Do not set has_union.
11132         (create_variable_info_for): Simplify.
11133
11134 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
11135
11136         * config.gcc (extra_headers): Add cross-stdarg.h for target
11137         x86_64-*-* and i?86-*-*.
11138         * config/i386/cross-stdarg.h: New.
11139         * builtins.c (std_fn_abi_va_list): New.
11140         (std_canonical_va_list_type): New.
11141         (stabilize_va_list): Replace va_list_type_node use by
11142         mtarget.canonical_va_list_type.
11143         (gimplify_va_arg_expr): Likewise.
11144         (expand_builtin_va_copy): Replace va_list_type_node use by
11145         mtarget.fn_abi_va_list.
11146         * tree-sra.c (is_va_list_type): New helper.
11147         (decl_can_be_decomposed_p): Replace
11148         va_list_type_node use by is_va_list_type.
11149         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
11150         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
11151         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
11152         * config/i386/i386-protos.h (ix86_get_valist_type): New.
11153         (ix86_enum_va_list): New.
11154         * config/i386/i386.c (sysv_va_list_type_node): New.
11155         (ms_va_list_type_node): New.
11156         (ix86_function_type_abi): Remove sorry.
11157         (ix86_build_builtin_va_list_abi): New.
11158         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
11159         for 64-bit targets.
11160         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
11161         (ix86_init_builtins_va_builtins_abi): New.
11162         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
11163         for 64-bit targets.
11164         (ix86_handle_abi_attribute): New.
11165         (attribute_spec): Add sysv_abi and ms_abi.
11166         (ix86_fn_abi_va_list): New.
11167         (ix86_canonical_va_list_type): New.
11168         (ix86_enum_va_list): New.
11169         (TARGET_FN_ABI_VA_LIST): New.
11170         (TARGET_CANONICAL_VA_LIST_TYPE): New.
11171         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
11172         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
11173         (TARGET_CANONICAL_VA_LIST_TYPE): New.
11174         (TARGET_ENUM_VA_LIST): New.
11175         * expr.h (std_fn_abi_va_list): New.
11176         (std_canonical_va_list_type): New.
11177         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
11178         (TARGET_CANONICAL_VA_LIST_TYPE): New.
11179         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
11180         TARGET_CANONICAL_VA_LIST_TYPE.
11181         * target.h (struct gcc_target): Add fn_abi_va_list hook
11182         and canonical_va_list_type hook.
11183
11184 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11185
11186         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
11187         integral and pointer types.
11188
11189 2008-07-04  Roger Sayle  <roger@eyesopen.com>
11190
11191         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
11192         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
11193
11194 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
11195
11196         PR target/36684
11197         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
11198
11199 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
11200
11201         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
11202         build_gimple_modify_stmt.
11203         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
11204         gimple operand.  Use fold_build* instead of build*.
11205
11206 2008-07-04  Richard Guenther  <rguenther@suse.de>
11207
11208         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
11209         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
11210         properly to compute the reachability set if we do field-sensitive PTA.
11211         * invoke.texi (max-fields-for-field-sensitive): Document default.
11212         * opts.c (decode_options): Set max-fields-for-field-sensitive to
11213         100 for optimize >= 2.
11214
11215 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11216
11217         * ggc-zone.c (lookup_page_table_if_allocated,
11218         set_page_table_entry, zone_find_object_size, alloc_small_page,
11219         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
11220         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
11221         -Wc++-compat and/or -Wcast-qual warnings.
11222
11223 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
11224
11225         PR target/36634
11226         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
11227         pic_offset_table_rtx to be marked as used here.
11228         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
11229         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
11230         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
11231         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
11232         !TARGET_SECURE_PLT.
11233
11234 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11235
11236         * alloc-pool.c (hash_descriptor, eq_descriptor,
11237         alloc_pool_descriptor): Fix -Wc++-compat warnings.
11238         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
11239         Likewise.
11240         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
11241         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
11242         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
11243         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
11244         Likewise.
11245
11246 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
11247
11248         * tree-flow.h (loop_only_exit_p): Declare.
11249         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
11250         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
11251         the number of iterations if it is constant.  Otherwise, if this is the
11252         only possible exit of the loop, use the conservative estimate on the
11253         number of iterations of the entire loop if available.
11254
11255 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
11256
11257         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
11258         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
11259         Add synchronization functions.
11260         * config/sync.c: New file.
11261         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
11262         (LIBGCC_SYNC_CFLAGS): Likewise.
11263
11264 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
11265
11266         PR target/36710
11267         * config/i386/i386.md (mode): Add TF to "mode" attribute.
11268         (*pushtf_sse): New insn pattern.
11269         (pushtf splitters): New splitters.
11270
11271 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
11272
11273         PR middle-end/35736
11274         * predict.c (build_predict_expr): Use void_type_node for the tree
11275         type, instead of NULL_TREE.
11276
11277 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
11278
11279         * config/i386/i386.c (contains_aligned_value_p): Return true
11280         for TCmode.
11281         (ix86_data_alignment): Align TCmode to 128bits.
11282         (ix86_local_alignment): Likewise.
11283
11284 2008-07-03  Andrew Haley  <aph@redhat.com>
11285
11286         PR bootstrap/33304
11287         * vec.h (VEC_TA): New.
11288         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
11289         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
11290         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
11291         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
11292         (C_COMMON_FIXED_TYPES): Remove first arg.
11293         (C_COMMON_FIXED_MODE_TYPES): Likewise.
11294         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
11295         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
11296         not to use empty macro arguments.
11297
11298 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
11299
11300         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
11301         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
11302         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
11303         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
11304         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
11305         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
11306         config/ia64/crtn.asm, config/m68hc11/larith.asm,
11307         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
11308         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
11309         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
11310         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
11311         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
11312         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
11313         config/rs6000/e500crtres64gpr.asm,
11314         config/rs6000/e500crtres64gprctr.asm,
11315         config/rs6000/e500crtrest32gpr.asm,
11316         config/rs6000/e500crtrest64gpr.asm,
11317         config/rs6000/e500crtresx32gpr.asm,
11318         config/rs6000/e500crtresx64gpr.asm,
11319         config/rs6000/e500crtsav32gpr.asm,
11320         config/rs6000/e500crtsav64gpr.asm,
11321         config/rs6000/e500crtsav64gprctr.asm,
11322         config/rs6000/e500crtsavg32gpr.asm,
11323         config/rs6000/e500crtsavg64gpr.asm,
11324         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
11325         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
11326         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
11327         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
11328         config/sparc/sol2-cn.asm: Remove .file directives.
11329
11330 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
11331
11332         * resource.c (mark_referenced_resources): Look inside
11333         UNSPEC_VOLATILEs and ASM_INPUTs.
11334
11335 2008-07-02  Ian Lance Taylor  <iant@google.com>
11336
11337         * rtlanal.c (add_reg_note): New function.
11338         * rtl.h (add_reg_note): Declare.
11339         * auto-inc-dec.c (attempt_change): Use add_reg_note.
11340         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
11341         * builtins.c (expand_builtin_longjmp): Likewise.
11342         (expand_builtin_nonlocal_goto): Likewise.
11343         * calls.c (emit_call_1, expand_call): Likewise.
11344         * cfgexpand.c (add_reg_br_prob_note): Likewise.
11345         * cfglayout.c (fixup_reorder_chain): Likewise.
11346         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
11347         (commit_one_edge_insertion): Likewise.
11348         * combine.c (move_deaths, distribute_notes): Likewise.
11349         * df-problems.c (df_set_note): Likewise.
11350         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
11351         (set_unique_reg_note): Likewise.
11352         (emit_copy_of_insn_after): Likewise.
11353         * expr.c (expand_expr_real): Likewise.
11354         * gcse.c (add_label_notes): Likewise.
11355         * haifa-sched.c (create_check_block_twin): Likewise.
11356         * jump.c (mark_jump_label_1): Likewise.
11357         * loop-doloop.c (add_test, doloop_modify): Likewise.
11358         * loop-unswitch.c (compare_and_jump_seq): Likewise.
11359         * lower-subreg.c (move_eh_region_note): Likewise.
11360         * optabs.c (emit_libcall_block): Likewise.
11361         * predict.c (predict_insn): Likewise.
11362         (combine_predictions_for_insn): Likewise.
11363         * recog.c (peephole2_optimize): Likewise.
11364         * regmove.c (try_auto_increment): Likewise.
11365         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
11366         * reload.c (find_reloads): Likewise.
11367         * reload1.c (fixup_eh_region_note): Likewise.
11368         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
11369         * reorg.c (delete_prior_computation): Likewise.
11370         (delete_computation, dbr_schedule): Likewise.
11371         * config/pa/pa.c (legitimize_pic_address): Likewise.
11372         * config/sh/sh.c (sh_reorg): Likewise.
11373
11374 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
11375
11376         PR target/36669
11377         * config/libgcc-glibc.ver: Add %exclude.
11378         * config/m32r/libgcc-glibc.ver: Likwise.
11379         * config/s390/libgcc-glibc.ver: Likwise.
11380         * config/sh/libgcc-glibc.ver: Likwise.
11381         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
11382
11383         * config/i386/libgcc-glibc.ver: New.
11384
11385         * config/i386/libgcc-x86_64-glibc.ver: Removed.
11386
11387 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
11388
11389         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
11390         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
11391         i[34567]86-*-linux*, x86_64-*-linux*.  Add
11392         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
11393         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
11394         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
11395         i[34567]86-*-linux*, x86_64-*-linux*.
11396
11397         * libgcc-std.ver: Add empty GCC_4.4.0.
11398
11399         * mkmap-symver.awk: Support multiple versions per symbol.
11400
11401         * config/i386/i386.c (ix86_init_builtins): Always define
11402         __builtin_fabsq and __builtin_copysignq with fallbacks.
11403         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
11404         and __builtin_copysignq if SSE2 isn't available.
11405
11406         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
11407         (LIBGCC2_TF_CEXT): Likwise.
11408         (TF_SIZE): Likwise.
11409
11410         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
11411
11412         * config/i386/sfp-machine.h: Moved to libgcc.
11413
11414         * config/i386/sfp-machine.h: New.
11415         * config/i386/t-linux: Likwise.
11416
11417         * config/i386/t-darwin: Remove softfp_wrap_start and
11418         softfp_wrap_end.
11419         * config/i386/t-darwin64: Likewise.
11420
11421         * config/i386/t-fprules-softfp64: Renamed to ...
11422         * config/i386/t-fprules-softfp: This.
11423
11424         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
11425         and softfp_wrap_end.
11426
11427 2008-07-02  Jason Merrill  <jason@redhat.com>
11428
11429         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
11430
11431         * tree.c (ctor_to_list): New fn.
11432         * tree.h: Declare it.
11433         (CONSTRUCTOR_ELT): New macro.
11434         (CONSTRUCTOR_NELTS): New macro.
11435
11436 2008-07-02  Richard Guenther  <rguenther@suse.de>
11437
11438         * tree-ssa-structalias.c (struct variable_info): Reorder
11439         to fill padding on 64bit hosts.  Make collapsed_to an int.
11440         (get_varinfo_fc): Deal with that.
11441         (new_var_info): Likewise.
11442         (collapse_rest_of_var): Likewise.
11443
11444 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
11445
11446         * doc/install.texi (--enable-java-home): Document.
11447         (--enable-aot-compile-rpm): Likewise.
11448         (--with-arch-directory): Likewise.
11449         (--with-os-directory): Likewise.
11450         (--with-origin-name): Likewise.
11451         (--with-arch-suffix): Likewise.
11452         (--with-jvm-root-dir): Likewise.
11453         (--with-jvm-jar-dir): Likewise.
11454         (--with-python-dir): Likewise.
11455
11456 2008-07-02  Richard Guenther  <rguenther@suse.de>
11457
11458         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
11459         from decls explicitly.  Merge operand checking from tuples.
11460
11461 2008-07-02  Martin Jambor  <mjambor@suse.cz>
11462
11463         * tree-switch-conversion.c: Included timevar.h which I forgot before.
11464
11465 2008-07-02  Martin Jambor  <mjambor@suse.cz>
11466
11467         * tree-switch-conversion.c: Included timevar.h
11468         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
11469
11470         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
11471
11472 2008-07-02  Martin Jambor  <mjambor@suse.cz>
11473
11474         * tree-switch-conversion.c: Corrected various comments and
11475         whitespace issues
11476         (build_constructors): Fixed minor formatting mistakes.
11477
11478         * invoke.texi (Optimize Options): Corrected the
11479         switch-conversion-max-branch-ratio parameter.
11480
11481 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
11482
11483         * final.c (asm_insn_count): Return zero for an empty asm body.
11484
11485 2008-07-02  Richard Guenther  <rguenther@suse.de>
11486
11487         * bitmap.h (bitmap_set_bit): Return bool.
11488         (bitmap_clear_bit): Likewise.
11489         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
11490         write to the bitmap if it would.
11491         (bitmap_clear_bit): Likewise.
11492         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
11493         bitmap_set_bit return value.
11494         (add_pred_graph_edge): Likewise.
11495         (add_graph_edge): Likewise.
11496         (do_sd_constraint): Likewise.
11497         (do_ds_constraint): Likewise.
11498
11499 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11500
11501         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
11502         Fix -Wc++-compat and/or -Wcast-qual warnings.
11503         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
11504         gen_regparm_prefix): Likewise.
11505         * vmsdbgout.c (write_modbeg, lookup_filename,
11506         vmsdbgout_source_line, vmsdbgout_init): Likewise.
11507
11508 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
11509
11510         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
11511         defaults.h definition apply.
11512
11513 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
11514
11515         * function.c (assign_parm_remove_parallels): New.
11516         (assign_parm_setup_block_p): Do not return true for non-BLKmode
11517         PARALLELs.
11518         (assign_parm_setup_block): Do not handle them.
11519         (assign_parm_setup_reg, assign_parm_setup_stack): Call
11520         assign_parm_remove_parallels.
11521
11522 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
11523
11524         * c-typeck.c (convert_for_assignment): Use
11525         vector_targets_convertible_p.
11526         * c-common.c (vector_targets_convertible_p): New.
11527         * c-common.h (vector_targets_convertible_p): New prototype.
11528         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
11529         opaque_p_V2SI_type_node.
11530
11531 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
11532
11533         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
11534         RFmode constants.
11535
11536 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
11537
11538         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
11539         TFmode constants via two element DImode vector for hosts with
11540         HOST_BITS_PER_WIDE_INT < 64.
11541         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
11542         also for HOST_BITS_PER_WIDE_INT < 64.
11543
11544 2008-07-01  Richard Guenther  <rguenther@suse.de>
11545
11546         PR tree-optimization/36666
11547         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
11548         (get_constraint_exp_from_ssa_var): Split into ...
11549         (get_constraint_exp_for_temp): ... this ...
11550         (get_constraint_for_ssa_var): ... and that.
11551         Return constraint expressions for all touched sub-fields
11552         if the results address is not taken.
11553         (process_constraint): Remove assertion that aggregate
11554         assignments do not happen at this place.
11555         (get_constraint_for_component_ref): Add address_p argument.
11556         Return constraint expressions for all touched sub-fields
11557         if the results address is not taken.
11558         (do_deref): Use get_constraint_exp_for_temp.
11559         (get_constraint_for_1): Rename from ...
11560         (get_constraint_for): ... this.  Add the old function as wrapper.
11561         (do_structure_copy): Use get_constraint_for_1.
11562
11563 2008-07-01  Martin Jambor  <mjambor@suse.cz>
11564
11565         * Makefile.in (tree-switch-conversion.o): Add.
11566         (OBJS-common): Add tree-swtch-conversion.o.
11567         * passes.c (init_optimization_passes): Add pass_convert_switch.
11568         * tree-pass.h: (pass_convert_switch): Add.
11569         * tree-switch-conversion.c: New file.
11570         * gcc.dg/tree-ssa/cswtch.c: New testcase.
11571         * common.opt (ftree-cswtch): New option.
11572         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
11573         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
11574         * opts.c (decode_options): Set flag_tree_switch_conversion when
11575         optimization level is >= 2.
11576         * doc/invoke.texi (Optimize Options): Added description of
11577         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
11578
11579 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11580
11581         * config/darwin-driver.c (darwin_default_min_version): Fix
11582         -Wc++-compat warnings.
11583
11584 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
11585
11586         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
11587         of operand 0.
11588
11589 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
11590
11591         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
11592
11593 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
11594
11595         PR rtl-optimization/34744
11596         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
11597         (df_scan_free_internal): Free data structures not
11598         allocated in storage pools.
11599         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
11600         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
11601         df_scan_free_mws_vec.
11602         * dse.c (dse_step6): Free offset_map_p and offset_map_n
11603         unconditionally.
11604
11605 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
11606
11607         * config/i386/i386.c (contains_aligned_value_p): Return true
11608         for __float128.
11609         (ix86_function_arg_boundary): Return its natural boundary
11610         for __float128.
11611         (return_in_memory_32): Don't check TDmode.
11612         (ix86_split_to_parts): Support splitting into 4 parts and
11613         support TFmode for 32bit target.
11614         (ix86_split_long_move): Support splitting into 4 parts.
11615         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
11616         for SSE2.
11617         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
11618         (ix86_init_builtins): Here.
11619         (ix86_scalar_mode_supported_p): Always return true for TFmode.
11620         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
11621         'q' and 'w', respectively.
11622
11623         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
11624         TARGET_64BIT.
11625         (movtf_internal): Likewise.
11626         (<code>tf2): Likewise.
11627         (*absnegtf2_sse): Likewise.
11628         (copysign<mode>3): Likewise.
11629         (copysign<mode>3_const): Likewise.
11630         (copysign<mode>3_var): Likewise.
11631         (define_split UNSPEC_COPYSIGN): Likewise.
11632         * config/i386/sse.md (*nandtf3): Likewise.
11633         (<code>tf3): Likewise.
11634         (*<code>tf3): Likewise.
11635
11636 2008-06-30  Joey Ye  <joey.ye@intel.com>
11637             H.J. Lu  <hongjiu.lu@intel.com>
11638
11639         * global.c (compute_regsets): Set frame_pointer_needed here.
11640         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
11641
11642 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
11643
11644         * doc/install.texi (specific): Expand Windows build notes.
11645
11646 2008-06-30  Ira Rosen  <irar@il.ibm.com>
11647
11648         PR tree-optimization/36648
11649         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
11650         number of prolog iterations by step. Fix the comment.
11651
11652 2008-06-30  Richard Guenther  <rguenther@suse.de>
11653
11654         PR middle-end/36671
11655         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
11656         handle calls from ECF_MALLOC functions.
11657         (handle_pure_call): ECF_MALLOC functions do not return
11658         call-used memory.
11659         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
11660
11661 2008-06-29  Andreas Schwab  <schwab@suse.de>
11662
11663         * config/m68k/m68k.c (print_operand): Always print a float
11664         constant in hex.
11665         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
11666         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
11667         Remove macros.
11668
11669         * config/rs6000/x-linux64: Remove never used file.
11670
11671 2008-06-29  Richard Guenther  <rguenther@suse.de>
11672
11673         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
11674         prototype.
11675         (struct alias_info): Move ...
11676         * tree-ssa-alias.c: ... here.
11677         (update_alias_info): Declare.
11678         (compute_may_aliases): Call it.
11679         (update_alias_info): New function.
11680         * tree-ssa-structalias.c (update_alias_info): Move ...
11681         * tree-ssa-alias.c (update_alias_info_1): ... here.
11682         * tree-ssa-structalias.c (process_constraint_1): Remove
11683         unused from_call argument.  Rename to ...
11684         (process_constraint): ... this.  Delete old wrapper.
11685         (make_constraint_to): Adjust callers.
11686         (handle_const_call): Likewise.
11687         (handle_pure_call): Likewise.
11688         (init_base_vars): Likewise.
11689         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
11690         (find_func_aliases): We don't need structure copies for
11691         complex types.
11692         (make_constraint_from_anything): Remove.
11693         (create_variable_info_for): For globals make constraints
11694         from escaped, not from anything.
11695         (compute_points_to_sets): Do not call update_alias_info.
11696         (ipa_pta_execute): Use make_constraint_from.
11697
11698 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11699
11700         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
11701         (bitmap.o-warn, dominance.o-warn): New.
11702         * configure.ac (cxx_compat_warn): Delete.
11703         (loose_warn): Add -Wcast-qual and -Wc++-compat.
11704         * system.h: Remove #pragma diagnostic for -Wcast-qual and
11705         -Wc++-compat.
11706         * configure: Regenerate.
11707
11708         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
11709         warnings.
11710
11711 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11712
11713         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
11714         * df-scan.c (df_notes_rescan): Likewise.
11715         * ggc-page.c (set_page_table_entry): Likewise.
11716         * intl.c (gcc_gettext_width): Likewise.
11717         * varasm.c (get_unnamed_section, get_noswitch_section,
11718         get_section): Likewise.
11719
11720 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
11721
11722         * regrename.c (build_def_use): Don't copy RTX.
11723
11724 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
11725
11726         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
11727         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
11728         punctuation.  Use @ref instead of @xref.
11729         (Function Names): Remove stray @display/@end display.
11730         (C++ Attributes): Use @ref instead of @xref.
11731         (Deprecated Features): Fix punctuation around @xref.
11732         (Backwards Compatibility): Likewise.
11733         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
11734
11735 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
11736
11737         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
11738         constants for E500 double.
11739
11740 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11741
11742         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
11743         element type of const_vector.
11744
11745 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
11746
11747         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
11748         Remove FLAGS_REG clobber from expander pattern.
11749         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
11750         (anddi3, andsi3, andhi3, andqi3): Ditto.
11751         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
11752         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
11753         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
11754         (ashlsi3, ashlhi3, ashlqi3): Ditto.
11755         (ashrsi3, ashrhi3, ashrqi3): Ditto.
11756         (lshrsi3, lshrhi3, lshrqi3): Ditto.
11757         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
11758         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
11759
11760 2008-06-28  Richard Guenther  <rguenther@suse.de>
11761
11762         * tree-ssa-structalias.c (callused_id, var_callused,
11763         callused_tree): Add.
11764         (handle_pure_call): New function.
11765         (find_func_aliases): Call it.
11766         (find_what_p_points_to): Handle the call-used set.
11767         (clobber_what_escaped): Likewise.
11768         (compute_call_used_vars): New function.
11769         (init_base_vars): Init the call-used variable.
11770         (do_sd_constraint): Do not propagate the solution from CALLUSED
11771         but use CALLUSED as a placeholder.
11772         (solve_graph): Likewise.
11773         * tree-flow-inline.h (gimple_call_used_vars): New function.
11774         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
11775         (compute_call_used_vars): Declare.
11776         * tree-ssa-alias.c (set_initial_properties): Call
11777         compute_call_used_vars.
11778         (reset_alias_info): Clear call-used variables.
11779         (add_call_clobber_ops): Assert we are not called for const/pure
11780         functions.  Remove handling of them.
11781         (add_call_read_ops): Handle pure functions by adding the
11782         call-used set of variables as VUSEs.
11783         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
11784         (delete_tree_ssa): Free it.
11785         * tree-dfa.c (remove_referenced_var): Clear the var from the
11786         call-used bitmap.
11787
11788 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
11789
11790         * tree.c (build_varargs_function_type_list): New.
11791         (build_function_type_list_1): New.
11792         (build_function_type_list): Use build_function_type_list_1.
11793         * tree.h (build_varargs_function_type_list): New.
11794
11795 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11796
11797         PR target/34856
11798         * config/spu/spu.c (spu_builtin_splats): Do not generate
11799         invalid CONST_VECTOR expressions.
11800         (spu_expand_vector_init): Likewise.
11801
11802 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
11803
11804         * optabs.c (libfunc_decls): New variable.
11805         (libfunc_decl_hash, libfunc_decl_eq): New functions.
11806         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
11807         for the same function twice.
11808
11809 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
11810
11811         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
11812         ix86_expand_binary_operator directly.
11813         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
11814         for operand 2.
11815         (*ashrti3_1): Ditto.
11816         (*lshrti3_1): Ditto.
11817         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
11818         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
11819         using only one splitter.  Conditionaly execute splitter before or
11820         after peephole2 pass.
11821         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
11822         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
11823         Use only one alternative in asm template.
11824         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
11825         in asm template.
11826         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
11827         "J" operand constraint for operand 2.
11828         (*ashldi3_cconly_rex64): Ditto.
11829         (*ashrdi3_cmp_rex64): Ditto.
11830         (*ashrdi3_cconly_rex64): Ditto.
11831         (*lshrdi3_cmp_rex64): Ditto.
11832         (*lshrdi3_cconly_rex64): Ditto.
11833         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
11834         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
11835         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
11836         gen_x86_shrd_1.
11837
11838 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
11839
11840         * gimplify.c (omp_is_private): Don't return true if decl is not
11841         already private on #pragma omp for or #pragma omp parallel for.
11842
11843         PR debug/36617
11844         * tree-cfg.c (struct move_stmt_d): Replace block field with
11845         orig_block and new_block fields.
11846         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
11847         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
11848         (move_block_to_fn): Replace vars_map and new_label_map arguments
11849         with struct move_stmt_d pointer.
11850         (replace_block_vars_by_duplicates): New function.
11851         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
11852         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
11853         all subblocks of ORIG_BLOCK to the new function.  Call
11854         replace_block_vars_by_duplicates.
11855         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
11856         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
11857         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
11858         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
11859         (expand_omp): Temporarily set input_location to the location of
11860         region's controlling stmt.
11861         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
11862         BIND_EXPR, push ctx->block_vars and gimplification vars into
11863         the BIND_EXPR and its block's BLOCK_VARS instead of directly
11864         into dest function.
11865         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
11866         there are any BLOCK_VARS.
11867         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
11868         OMP_PARALLEL or OMP_TASK stmt.
11869         (lower_omp): Save and restore input_location around the lower_omp_1
11870         call.
11871
11872 2008-06-27  Richard Guenther  <rguenther@suse.de>
11873
11874         PR tree-optimization/36400
11875         PR tree-optimization/36373
11876         PR tree-optimization/36344
11877         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
11878         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
11879         (update_alias_info): Remove call clobbering code.
11880         (make_constraint_to): New helper function.
11881         (make_escape_constraint): Likewise.
11882         (handle_rhs_call): Use it on all pointer containing arguments.
11883         Also mark the static chain escaped.
11884         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
11885         instead of ANYTHING.
11886         (make_constraint_from): New helper split out from ...
11887         (make_constraint_from_anything): ... here.
11888         (find_func_aliases): Add constraints for escape sites.
11889         (intra_create_variable_infos): Make constraints from NONLOCAL
11890         for parameters.
11891         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
11892         as ANYTHING.
11893         (clobber_what_p_points_to): Remove.
11894         (clobber_what_escaped): New function.
11895         (init_base_vars): Init NONLOCAL and ESCAPED.
11896         (do_sd_constraint): Do not propagate the solution from ESCAPED
11897         but use ESCAPED as a placeholder.
11898         (solve_graph): Likewise.
11899         * tree-flow.h (clobber_what_p_points_to): Remove.
11900         (clobber_what_escaped): Declare.
11901         * tree-ssa-alias.c (set_initial_properties): Call it.
11902         Remove code clobbering escaped pointers.
11903
11904 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
11905
11906         * function.c (allocate_struct_function): Only allocate a unique
11907         funcdef_no if the decl is nonzero.
11908
11909 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
11910
11911         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
11912         * config/mips/mips.c (mips_split_const_insns): New function.
11913         * config/mips/mips.md (move_type): New attribute.
11914         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
11915         (dword_mode): New attribute.
11916         (type): Avoid long line.  Map "move_type"s to "type"s,
11917         choosing "multi" for doubleword moves if appropriate.
11918         Swap MTC/MFC comments to match their declaration order.
11919         (extended_mips16): Default to "yes" if "move_type" is "sll0",
11920         "type" is "branch" or "jal" is "direct".
11921         (length): Handle "extended_mips16" first.  Make the default
11922         "0" for "ghost" instructions.  Set the length from "move_type".
11923         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
11924         of "type", with "sll0" for the register alternative.  Remove the
11925         "extended_mips16" attribute.
11926         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
11927         of "type", with "shift_shift" for the register alternative.
11928         Remove the "length" attribute.
11929         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
11930         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
11931         of "type", with "andi" for the register alternative.
11932         (*zero_extendqihi2): Likewise.
11933         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
11934         of "andi" instead of a "type" of "arith".
11935         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
11936         instead of "type".
11937         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
11938         (mov_<store>r, *mov<mode>_ra): Likewise.
11939         (extendsidi2): Use "move_type" instead of "type", with "move"
11940         for the register alternative.
11941         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
11942         of "type", with "signext" for the register alternative.
11943         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
11944         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
11945         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
11946         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
11947         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
11948         (unnamed branch insn): Likewise.
11949         (*movdi_gp32_fp64): Fold into...
11950         (*movdi_32bit): ...here.
11951         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
11952         (*movdf_hardfloat): ...this new pattern.
11953         (*movdf_softfloat): Remove redundant FPR alternatives.
11954         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
11955         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
11956         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
11957         the "move" attribute.
11958         (*movdi_32bit): Use "move_type" instead of "type" and remove the
11959         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
11960         and "store" for COP loads and stores.
11961         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
11962         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
11963         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
11964         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
11965         (*movtf_mips16, *movv2sf): Likewise.
11966         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
11967         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
11968         (mfhc1<mode>): Use "move_type" instead of "move".
11969         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
11970         (loadgp_blockage): Remove the "length" attribute.
11971         (blockage, set_got_version, update_got_version): Likewise.
11972         (call_internal): Remove the "extended_mips16" attribute.
11973         (call_value_internal, call_value_multiple_internal): Likewise.
11974         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
11975         instead of "move".
11976         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
11977         the "length" attribute.
11978
11979 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11980
11981         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
11982         -Wcast-qual warnings.
11983         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
11984         handle_pragma_pop_macro): Likewise.
11985         * collect2.c (resolve_lib_name): Likewise.
11986         * config/arc/arc.c (arc_init): Likewise.
11987         * config/arm/arm.c (neon_builtin_compare,
11988         locate_neon_builtin_icode): Likewise.
11989         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
11990         * config/bfin/bfin.c (bfin_init_machine_status,
11991         bfin_optimize_loop): Likewise.
11992         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
11993         * config/cris/cris.c (cris_init_expanders): Likewise.
11994         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
11995         * config/darwin.c (machopic_indirection_eq,
11996         machopic_indirection_name, machopic_output_indirection): Likewise.
11997         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
11998         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
11999         frv_optimize_membar): Likewise.
12000         * config/i386/cygwin.h (mingw_scan,
12001         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
12002         * config/i386/cygwin1.c (mingw_scan): Likewise.
12003         * config/i386/i386.c (machopic_output_stub): Likewise.
12004         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
12005         i386_pe_unique_section): Likewise.
12006         * config/ia64/ia64.c (ia64_init_machine_status,
12007         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
12008         Likewise.
12009         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
12010         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
12011         * config/m68k/m68k.c (m68k_handle_option,
12012         m68k_sched_md_init_global): Likewise.
12013         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
12014         mcore_unique_section): Likewise.
12015         * config/mips/mips.c (mips_block_move_straight,
12016         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
12017         Likewise.
12018         * config/mmix/mmix.c (mmix_init_machine_status,
12019         mmix_encode_section_info): Likewise.
12020         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
12021         * config/rs6000/rs6000.c (rs6000_init_machine_status,
12022         print_operand_address, output_toc, redefine_groups,
12023         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
12024         * config/s390/s390.c (s390_init_machine_status): Likewise.
12025         * config/score/score.c (score_block_move_straight,
12026         score_block_move_loop_body): Likewise.
12027         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
12028         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
12029         * emit-rtl.c (find_auto_inc): Likewise.
12030         * gcc.c (translate_options, process_command): Likewise.
12031         * reorg.c (dbr_schedule): Likewise.
12032         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
12033         * xcoffout.c (xcoffout_declare_function): Likewise.
12034
12035 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
12036
12037         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
12038         ipa-pta working again.
12039
12040 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
12041
12042         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
12043         genautomata.
12044
12045 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
12046
12047         * config.gcc (powerpc*-*-*): Add new core e500mc.
12048         * config/rs6000/e500mc.md: New file.
12049         * config/rs6000/rs6000.c (processor_costs): Add new costs for
12050         e500mc.
12051         (rs6000_override_options): Add e500mc case to
12052         processor_target_table. Altivec and Spe options not allowed
12053         with e500mc. Add isel instruction to e500mc by
12054         default. Initialize rs6000_cost for e500mc.
12055         (rs6000_issue_rate): Set issue rate for e500mc.
12056         * config/rs6000/rs6000.h (processor_type): Add
12057         PROCESSOR_PPCE500MC.
12058         (ASM_CPU_SPEC): Add e500mc.
12059         Set TARGET_ISEL to rs6000_isel.
12060         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
12061         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
12062         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
12063         Include e500mc.md.
12064         * doc/invoke.texi: Add e500mc to list of cpus.
12065
12066 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12067
12068         PR c/34867
12069         * c-lex.c (lex_charconst): Initialize unsignedp.
12070
12071 2008-06-27  Olivier Hainque  <hainque@adacore.com>
12072
12073         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
12074         documented assumptions.
12075
12076 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
12077
12078         * dwarf2out.c: Remove trailing white spaces.  Break long line
12079         in comments.
12080
12081 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
12082
12083         * libfuncs.h (LTI_synchronize): New libfunc_index.
12084         (synchronize_libfunc): Declare.
12085         * builtins.c (expand_builtin_synchronize): Consider using
12086         synchronize_libfunc before falling back on an asm blockage.
12087         * config/mips/mips.c: Include libfuncs.h
12088         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
12089
12090 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
12091
12092         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
12093         parameter.  Copy stack_reg to r11 where appropriate.
12094         (no_global_regs_above): Add gpr parameter.
12095         (rs6000_stack_info): Only add padding for SPE save area if we
12096         are saving SPE GPRs and CR.
12097         (saveres_routine_syms): New variable.
12098         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
12099         Define.
12100         (rs6000_savres_routine_sym): New function.
12101         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
12102         split out of...
12103         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
12104         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
12105         Tweak FPR out-of-line saving.
12106         (rs6000_make_savres_rtx): New function.
12107         (rs6000_use_multiple_p): New function.
12108         (rs6000_savres_strategy): New function.
12109         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
12110         out-of-line if appropriate.
12111         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
12112         if we are optimizing for size.
12113         (GP_SAVE_INLINE): Define.
12114         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
12115         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
12116         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
12117         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
12118         (*save_fpregs_<mode>): Add use of r11.
12119         (*restore_gpregs_<mode>): New insn.
12120         (*return_and_restore_gpregs_<mode>): New insn.
12121         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
12122         use r11.
12123         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
12124         (*restore_gpregs_spe): New insn.
12125         (*return_and_restore_gpregs_spe): New insn.
12126         * config/rs6000/predicates.md (save_world_operation): Fix check.
12127
12128 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
12129
12130         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
12131         this point, so assert that.
12132
12133 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
12134
12135         * cfganal.c: Include vec.h and vecprim.h.
12136         (compute_idf): Import from...
12137         * tree-into-ssa (compute_idf): ...here.
12138         * basic-block.h (compute_idf): Export.
12139
12140 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
12141
12142         * c-decl.c (merge_decls): Use !current_function_decl to check for
12143         extern declaration of C99 inline function being at file scope.
12144
12145 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
12146
12147         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
12148
12149 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12150
12151         * alias.c (record_alias_subset, init_alias_analysis): Fix
12152         -Wc++-compat and/or -Wcast-qual warnings.
12153         * attribs.c (lookup_attribute_spec): Likewise.
12154         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
12155         copy_bb, connect_traces,
12156         find_rarely_executed_basic_blocks_and_cr): Likewise.
12157         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
12158         note_btr_set, migrate_btr_defs): Likewise.
12159         * builtins.c (result_vector, expand_builtin_memcpy,
12160         expand_builtin_mempcpy_args, expand_builtin_strncpy,
12161         builtin_memset_read_str, expand_builtin_printf,
12162         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
12163         Likewise.
12164         * caller-save.c (mark_set_regs): Likewise.
12165         * calls.c (expand_call, emit_library_call_value_1): Likewise.
12166         * cgraph.c (cgraph_edge): Likewise.
12167         * combine.c (likely_spilled_retval_1): Likewise.
12168         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
12169         htab_counts_entry_del, get_coverage_counts): Likewise.
12170         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
12171         new_cselib_val): Likewise.
12172         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
12173         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
12174         Likewise.
12175         * df-core.c (df_compact_blocks): Likewise.
12176         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
12177         * df-scan.c (df_grow_reg_info, df_ref_create,
12178         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
12179         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
12180         df_record_entry_block_defs, df_record_exit_block_uses,
12181         df_bb_verify): Likewise.
12182         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
12183         DF_REF_EXTRACT_MODE_CONST): New.
12184         * dominance.c (get_immediate_dominator, get_dominated_by,
12185         nearest_common_dominator, root_of_dom_tree,
12186         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
12187         -Wc++-compat and/or -Wcast-qual warnings.
12188         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
12189         record_store, replace_read, check_mem_read_rtx, scan_insn,
12190         dse_step1, dse_record_singleton_alias_set): Likewise.
12191         * dwarf2asm.c (dw2_force_const_mem): Likewise.
12192
12193 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12194
12195         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
12196         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
12197         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
12198         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
12199         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
12200         add_ranges_num, add_ranges_by_labels, file_info_cmp,
12201         file_name_acquire, output_file_names, add_const_value_attribute,
12202         premark_used_types_helper, file_table_eq, file_table_hash,
12203         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
12204         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
12205         -Wcast-qual warnings.
12206         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
12207         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
12208         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
12209         gen_reg_rtx, start_sequence, init_emit): Likewise.
12210         * et-forest.c (et_new_occ, et_new_tree): Likewise.
12211         * except.c (init_eh_for_function, gen_eh_region,
12212         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
12213         arh_to_landing_pad, arh_to_label, add_action_record,
12214         add_call_site, switch_to_exception_section): Likewise.
12215         * expmed.c (synth_mult): Likewise.
12216         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
12217         store_expr): Likewise.
12218         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
12219         Likewise.
12220         * function.c (assign_stack_temp_for_type,
12221         allocate_struct_function, match_asm_constraints_1): Likewise.
12222         * gcov-io.c (gcov_allocate): Likewise.
12223         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
12224         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
12225         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
12226         record_one_set, insert_expr_in_table, insert_set_in_table,
12227         dump_hash_table, compute_hash_table_work, alloc_hash_table,
12228         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
12229         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
12230         -Wcast-qual warnings.
12231
12232 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12233
12234         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
12235         -Wcast-qual warnings.
12236         * gcc.c (process_command): Likewise.
12237         * genattrtab.c (oballoc): Use XOBNEW.
12238         (oballocvec): Define.
12239         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
12240         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
12241         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
12242         -Wc++-compat and/or -Wcast-qual warnings.
12243         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
12244         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
12245         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
12246         gen_presence_absence_set, gen_automaton, gen_regexp_el,
12247         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
12248         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
12249         add_excls, process_presence_absence_names,
12250         process_presence_absence_patterns, add_presence_absence,
12251         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
12252         get_free_state, add_arc, get_free_automata_list_el,
12253         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
12254         transform_3, cache_presence, create_ainsns, create_automata,
12255         create_state_ainsn_table, dfa_insn_code_enlarge,
12256         output_trans_func, output_min_issue_delay_func,
12257         output_dead_lock_func, output_reset_func,
12258         output_get_cpu_unit_code_func, output_dfa_start_func,
12259         expand_automata): Likewise.
12260         * genextract.c (gen_insn): Likewise.
12261         * gengtype-lex.l: Likewise.
12262         * gengtype.c (read_input_list, adjust_field_type,
12263         process_gc_options): Likewise.
12264         * genoutput.c (note_constraint): Likewise.
12265         * genpreds.c (mangle, add_constraint): Likewise.
12266         * genrecog.c (process_define_predicate, new_decision,
12267         add_to_sequence): Likewise.
12268         * gensupport.c (record_insn_name): Likewise.
12269
12270 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12271
12272         * config/i386/driver-i386.c (detect_caches_amd,
12273         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
12274         and/or -Wcast-qual warnings.
12275         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
12276         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
12277         gt_pch_save): Likewise.
12278         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
12279         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
12280         * global.c (compute_regsets): Likewise.
12281         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
12282         finish_graph_dump_file): Likewise.
12283         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
12284         unlink_bb_notes): Likewise.
12285         * integrate.c (get_hard_reg_initial_val): Likewise.
12286         * ipa-prop.c (ipa_push_func_to_list): Likewise.
12287         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
12288         * local-alloc.c (update_equiv_regs): Likewise.
12289         * loop-invariant.c (check_invariant_table_size,
12290         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
12291         Likewise.
12292         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
12293         altered_reg_used, mark_altered): Likewise.
12294         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
12295         insert_var_expansion_initialization,
12296         combine_var_copies_in_loop_exit, apply_opt_in_copies,
12297         release_var_copies): Likewise.
12298         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
12299         analyze_matrix_decl, add_allocation_site, analyze_transpose,
12300         analyze_accesses_for_phi_node, check_var_notmodified_p,
12301         check_allocation_function, find_sites_in_func,
12302         record_all_accesses_in_func, transform_access_sites,
12303         transform_allocation_sites): Likewise.
12304         * omp-low.c (new_omp_region, create_omp_child_function_name,
12305         check_omp_nesting_restrictions, check_combined_parallel,
12306         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
12307         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
12308         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
12309         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
12310         Likewise.
12311         * opts-common.c (prune_options): Likewise.
12312         * opts.c (add_input_filename, print_filtered_help,
12313         get_option_state): Likewise.
12314         * params.c (add_params): Likewise.
12315         * passes.c (set_pass_for_id, next_pass_1,
12316         do_per_function_toporder, pass_fini_dump_file): Likewise.
12317         * postreload.c (reload_cse_simplify_operands): Likewise.
12318         * predict.c (tree_predicted_by_p, tree_predict_edge,
12319         clear_bb_predictions, combine_predictions_for_bb): Likewise.
12320
12321 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12322
12323         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
12324         warnings.
12325         * recog.c (check_asm_operands, validate_change_1): Likewise.
12326         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
12327         subst_asm_stack_regs): Likewise.
12328         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
12329         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
12330         * regmove.c (reg_is_remote_constant_p): Likewise.
12331         * regrename.c (regrename_optimize, scan_rtx_reg,
12332         kill_clobbered_value, kill_set_value, kill_autoinc_value):
12333         Likewise.
12334         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
12335         regstat_compute_calls_crossed): Likewise.
12336         * reload1.c (init_reload, new_insn_chain,
12337         has_nonexceptional_receiver, reload, copy_reloads,
12338         calculate_needs_all_insns, init_elim_table): Likewise.
12339         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
12340         * rtl.c (shallow_copy_rtx_stat): Likewise.
12341         * rtlanal.c (parms_set): Likewise.
12342         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
12343         sbitmap_resize, sbitmap_vector_alloc): Likewise.
12344         * sched-ebb.c (earliest_block_with_similiar_load,
12345         add_deps_for_risky_insns): Likewise.
12346         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
12347         schedule_region): Likewise.
12348         * see.c (eq_descriptor_pre_extension,
12349         hash_descriptor_pre_extension, hash_del_pre_extension,
12350         eq_descriptor_properties, hash_descriptor_properties,
12351         hash_del_properties, see_seek_pre_extension_expr,
12352         see_initialize_data_structures, see_print_register_properties,
12353         see_print_pre_extension_expr, see_delete_merged_def_extension,
12354         see_delete_unmerged_def_extension, see_emit_use_extension,
12355         see_pre_delete_extension, see_map_extension, see_commit_changes,
12356         see_analyze_merged_def_local_prop,
12357         see_analyze_merged_def_local_prop,
12358         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
12359         see_set_prop_merged_def, see_set_prop_unmerged_def,
12360         see_set_prop_unmerged_use, see_print_one_extension,
12361         see_merge_one_use_extension, see_merge_one_def_extension,
12362         see_store_reference_and_extension, see_update_uses_relevancy,
12363         see_update_defs_relevancy): Likewise.
12364         * statistics.c (hash_statistics_hash, hash_statistics_eq,
12365         hash_statistics_free, curr_statistics_hash): Likewise.
12366         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
12367         expand_asm_operands, expand_return, case_bit_test_cmp,
12368         expand_case): Likewise.
12369         * stor-layout.c (start_record_layout): Likewise.
12370         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
12371         gt_pch_save_stringpool): Likewise.
12372         * tree-data-ref.c (hash_stmt_vertex_info,
12373         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
12374         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
12375
12376 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
12377
12378         PR target/36627
12379         * config/i386/i386.md : Change constraints of HImode and QImode
12380         immediate operands from "i" to "n".  Change SImode "ni" constraint to
12381         "i" and SImode "rmi" constraint to "g".  Remove all constraints
12382         from const0_operand and const1_operand predicated operands.
12383         (i): Change QImode and HImode attribute from "i" to "n".
12384         (*subqi_2): Change HImode operands to QImode.
12385         (*subqi_3): Ditto.
12386
12387 2008-06-25  Olivier Hainque  <hainque@adacore.com>
12388
12389         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
12390         sed substitutions.
12391
12392 2008-06-25  Richard Guenther  <rguenther@suse.de>
12393
12394         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
12395         not overflow the result type.
12396
12397 2008-06-25  Richard Guenther  <rguenther@suse.de>
12398
12399         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
12400         (vn_lookup): Likewise.
12401
12402 2008-06-25  Richard Guenther  <rguenther@suse.de>
12403
12404         PR tree-optimization/35518
12405         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
12406         * tree-sra.c (instantiate_element): Use fold_build3 to build
12407         BIT_FIELD_REFs.
12408         (try_instantiate_multiple_fields): Likewise.
12409
12410 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12411
12412         * config/rs6000/rs6000.md: Change all string instruction's clobber to
12413         be early clobbers.
12414
12415 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12416
12417         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
12418         use_backchain_to_restore_sp to true
12419         if the offset of the link register save area would go over the 32k - 1
12420         offset limit of the load
12421         instructions.
12422
12423 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
12424
12425         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
12426         anchor for the type-punning blurb.  Cross-reference "Structures
12427         unions enumerations and bit-fields implementation".  Provide a
12428         cast-through-pointer example.  Make final sentence self-contained.
12429         * doc/implement-c.texi (Structures unions enumerations and
12430         bit-fields implementation): Cross-reference the type-punning blurb
12431         in the -fstrict-aliasing documentation.
12432
12433 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12434
12435         PR middle-end/36594
12436         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
12437         the memory instead of the memory itself for the save area.
12438
12439 2008-06-24  Olivier Hainque  <hainque@adacore.com>
12440             Nicolas Roche  <roche@adacore.com>
12441
12442         * gengtype.c (srcdir_len): size_t instead of int.
12443         (get_file_realbasename): New function.  For F a filename, the real
12444         basename of F, with all the path components stripped.
12445         (get_file_srcdir_relative_path): New function.  For F a filename, the
12446         relative path to F from $(srcdir).
12447         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
12448         get_file_realbasename.  Adjust the head comment.
12449         (get_prefix_langdir_index): New function. For F a filename, return the
12450         lang_dir_names[] relative index of the language directory that is
12451         a prefix in F.
12452         (get_file_langdir): For F a filename, return the name of the language
12453         directory where F is located.
12454         (get_file_gtfilename): New function. The gt- output file name for an
12455         input filename F.
12456         (get_output_file_with_visibility): Replace in-line computations with
12457         uses of get_file_gtfilename and get_prefix_langdir_index.
12458         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
12459
12460 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
12461
12462         PR tree-optimization/36504
12463         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
12464         references without base address.
12465
12466 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
12467
12468         PR middle-end/36584
12469         * calls.c (expand_call): Increase alignment for recursive functions.
12470
12471 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
12472
12473         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
12474         (TARGET_FUNCTION_VALUE): New define.
12475         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
12476         * config/avr/avr.h (FUNCTION_VALUE): Remove.
12477
12478 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
12479
12480         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
12481         (fmod<mode>3): Ditto.
12482         (remainderxf3): Ditto.
12483         (remainder<mode>3): Ditto.
12484
12485 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
12486
12487         PR target/36533
12488         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
12489         REG is a hard register.
12490
12491         PR tree-optimization/36508
12492         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
12493         499, don't check it at all in release compilers.
12494
12495 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
12496
12497         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
12498         together with SSE_TARGET_MATH to disable insn pattern.
12499         (*fop_<MODEF:mode>_2_i387): Ditto.
12500         (*fop_<MODEF:mode>_3_i387): Ditto.
12501
12502 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
12503
12504         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
12505
12506 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12507
12508         PR middle-end/34906
12509         * gimplify.c (gimplify_asm_expr): Check the return code of
12510         parse_output_constraint call, set function return and is_inout
12511         value if it failed.
12512
12513 2008-06-22  Ian Lance Taylor  <iant@google.com>
12514
12515         * c-lex.c (narrowest_unsigned_type): Change itk to int.
12516         (narrowest_signed_type): Likewise.
12517         * c-typeck.c (c_common_type): Change local variable mclass to enum
12518         mode_class, twice.
12519         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
12520         tcc_comparison, not the tree code itself.
12521         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
12522         (c_expand_expr): Cast modifier to enum expand_modifier.
12523         * c-common.h (C_RID_CODE): Add casts.
12524         (C_SET_RID_CODE): Define.
12525         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
12526         (c_lex_one_token): Add cast to avoid warning.
12527         (c_parser_objc_type_name): Rename local typename to type_name.
12528         (check_no_duplicate_clause): Change code parameter to enum
12529         omp_clause_code.
12530         (c_parser_omp_var_list_parens): Change kind parameter to enum
12531         omp_clause_code.
12532         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
12533         c_parser_omp_list_var_parens.
12534         (c_parser_omp_threadprivate): Likewise.
12535         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
12536         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
12537         * c-format.c (NO_FMT): Define.
12538         (printf_length_specs): Use NO_FMT.
12539         (asm_fprintf_length_specs): Likewise.
12540         (gcc_diag_length_specs): Likewise.
12541         (scanf_length_specs): Likewise.
12542         (strfmon_length_specs): Likewise.
12543         (gcc_gfc_length_specs): Likewise.
12544         (printf_flag_specs): Change 0 to STD_C89.
12545         (asm_fprintf_flag_specs): Likewise.
12546         (gcc_diag_flag_specs): Likewise.
12547         (gcc_cxxdiag_flag_specs): Likewise.
12548         (scanf_flag_specs): Likewise.
12549         (strftime_flag_specs): Likewise.
12550         (strfmon_flag_specs): Likewise.
12551         (print_char_table): Likewise.
12552         (asm_fprintf_char_table): Likewise.
12553         (gcc_diag_char_table): Likewise.
12554         (gcc_tdiag_char_table): Likewise.
12555         (gcc_cdiag_char_table): Likewise.
12556         (gcc_cxxdiag_char_table): Likewise.
12557         (gcc_gfc_char_table): Likewise.
12558         (scan_char_table): Likewise.
12559         (time_char_table): Likewis.
12560         (monetary_char_table): Likewise.
12561         * c-format.h (BADLEN): Likewise.
12562
12563 2008-06-21  Ian Lance Taylor  <iant@google.com>
12564
12565         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
12566         Define END_OF_BASE_TREE_CODES around inclusion.
12567         * tree.c (tree_code_type): New global array.
12568         (tree_code_length, tree_code_name): Likewise.
12569         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
12570         $(lang_tree_files).
12571         (all-tree.def, s-alltree): New targets.
12572         (gencheck.h, s-gencheck): Remove.
12573         (tree.o): Depend upon all-tree.def.
12574         (build/gencheck.o): Remove gencheck.h dependency.
12575         (mostlyclean): Don't remove gencheck.h.
12576         * c-common.h (enum c_tree_code): Remove.
12577         * c-lang.c (tree_code_type): Remove.
12578         (tree_code_length, tree_code_name): Remove.
12579         * gencheck.c (tree_codes): Include all-tree.def, rather than
12580         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
12581         after it is used.
12582         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
12583         than tree.def.
12584         * cp/cp-tree.h (enum cplus_tree_code): Remove.
12585         (operator_name_info): Size to MAX_TREE_CODES.
12586         (assignment_operator_name_info): Likewise.
12587         * cp/cp-lang.c (tree_code_type): Remove.
12588         (tree_code_length, tree_code_name): Remove.
12589         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
12590         (assignment_operator_name_info): Likewise.
12591         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
12592         MAX_TREE_CODES.
12593         * cp/mangle.c (write_expression): Likewise.
12594         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
12595         * fortran/f95-lang.c (tree_code_type): Remove.
12596         (tree_code_length, tree_code_name): Remove.
12597         * java/java-tree.h (enum java_tree_code): Remove.
12598         * java/lang.c (tree_code_type): Remove.
12599         (tree_code_length, tree_code_name): Remove.
12600         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
12601         * objc/objc-act.h (enum objc_tree_code): Remove.
12602         * objc/objc-lang.c (tree_code_type): Remove.
12603         (tree_code_length, tree_code_name): Remove.
12604         * objcp/objcp-lang.c (tree_code_type): Remove.
12605         (tree_code_length, tree_code_name): Remove.
12606         * ada/ada-tree.h (enum gnat_tree_code): Remove.
12607         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
12608         * ada/misc.c (tree_code_type): Remove.
12609         (tree_code_length, tree_code_name): Remove.
12610
12611 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
12612
12613         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
12614         the grand_bitmap_obstack.
12615
12616 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12617
12618         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
12619         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
12620         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
12621         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
12622         move_stmt_r, new_label_mapper): Likewise.
12623         * tree-complex.c (cvc_lookup): Likewise.
12624         * tree-dfa.c (create_function_ann): Likewise.
12625         * tree-dump.c (dump_register): Likewise.
12626         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
12627         find_phi_replacement_condition): Likewise.
12628         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
12629         tree_function_versioning): Likewise.
12630         * tree-into-ssa.c (cmp_dfsnum): Likewise.
12631         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
12632         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
12633         get_nonlocal_debug_decl, convert_nonlocal_reference,
12634         convert_nonlocal_omp_clauses, get_local_debug_decl,
12635         convert_local_reference, convert_local_omp_clauses,
12636         convert_nl_goto_reference, convert_nl_goto_receiver,
12637         convert_tramp_reference, convert_call_expr): Likewise.
12638         * tree-outof-ssa.c (contains_tree_r): Likewise.
12639         * tree-parloops.c (reduction_phi, initialize_reductions,
12640         eliminate_local_variables_1, add_field_for_reduction,
12641         add_field_for_name, create_phi_for_local_result,
12642         create_call_for_reduction_1, create_loads_for_reductions,
12643         create_stores_for_reduction, create_loads_and_stores_for_name):
12644         Likewise.
12645         * tree-phinodes.c (allocate_phi_node): Likewise.
12646         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
12647         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
12648         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
12649         * tree-ssa-coalesce.c (compare_pairs): Likewise.
12650         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
12651         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
12652         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
12653         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
12654         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
12655         vn_nary_op_insert): Likewise.
12656         * tree-ssa.c (redirect_edge_var_map_add,
12657         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
12658         * tree-vectorizer.c (vectorize_loops): Likewise.
12659         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
12660         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
12661         tree_cons_stat, build1_stat, build_variant_type_copy,
12662         decl_init_priority_lookup, decl_fini_priority_lookup,
12663         decl_priority_info, decl_restrict_base_lookup,
12664         decl_restrict_base_insert, decl_debug_expr_lookup,
12665         decl_debug_expr_insert, decl_value_expr_lookup,
12666         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
12667         type_hash_add, get_file_function_name, tree_check_failed,
12668         tree_not_check_failed, tree_range_check_failed,
12669         omp_clause_range_check_failed, build_omp_clause,
12670         build_vl_exp_stat): Likewise.
12671         * value-prof.c (gimple_histogram_value,
12672         gimple_duplicate_stmt_histograms): Likewise.
12673         * var-tracking.c (attrs_list_insert, attrs_list_copy,
12674         unshare_variable, variable_union_info_cmp_pos, variable_union,
12675         dataflow_set_different_1, dataflow_set_different_2,
12676         vt_find_locations, variable_was_changed, set_variable_part,
12677         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
12678         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
12679         section_entry_hash, object_block_entry_eq,
12680         object_block_entry_hash, create_block_symbol,
12681         initialize_cold_section_name, default_function_rodata_section,
12682         strip_reg_name, set_user_assembler_name, const_desc_eq,
12683         build_constant_desc, output_constant_def, lookup_constant_def,
12684         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
12685         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
12686         default_internal_label): Likewise.
12687         * varray.c (varray_init, varray_grow): Likewise.
12688         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
12689
12690 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
12691
12692         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
12693         operators for "test" insn.  Macroize insn using SWI mode macro.
12694         (*jcc_fused_2): Ditto.
12695         (*jcc_fused_3): Macroize insn using SWI mode macro.
12696         (*jcc_fused_4): Ditto.
12697
12698 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
12699
12700         * tree-ssa-pre.c: Fix typo in comment.
12701         (init_antic, fini_antic): Add explicit funtions for
12702         initializing and deinitializing ANTIC and AVAIL sets.
12703         (create_expression_by_pieces): Fix typo in comment.
12704         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
12705         (execute_pre): Eventually dump details about ANTIC_IN.
12706
12707 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12708
12709         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
12710         * gcc.c (translate_options, init_spec, store_arg, read_specs,
12711         add_to_obstack, file_at_path, find_a_file, execute,
12712         add_preprocessor_option, add_assembler_option, add_linker_option,
12713         process_command, insert_wrapper, do_option_spec, do_self_spec,
12714         spec_path, do_spec_1, is_directory, main, used_arg,
12715         getenv_spec_function): Likewise.
12716         * tlink.c (symbol_hash_lookup, file_hash_lookup,
12717         demangled_hash_lookup, symbol_push, file_push, frob_extension):
12718         Likewise.
12719
12720 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
12721
12722         * doc/rtl.texi: Updated subreg section.
12723
12724 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
12725
12726         PR c++/36523
12727         * cgraphunit.c (cgraph_process_new_functions): Don't clear
12728         node->needed and node->reachable.
12729         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
12730         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
12731         (expand_task_call): Don't call expand_task_copyfn.
12732         (expand_task_copyfn): Renamed to...
12733         (finalize_task_copyfn): ... this.
12734
12735 2008-06-19  Jan Hubicka  <jh@suse.cz>
12736
12737         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
12738         clobbering framepointer.
12739
12740 2008-06-19  Jan Hubicka  <jh@suse.cz>
12741
12742         * tree-optimize.c (execute_early_local_optimizations): Set
12743         cgraph_state only at first invocation.
12744
12745 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12746
12747         * system.h (-Wc++-compat): Activate as a warning, no an error.
12748
12749 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
12750
12751         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
12752         instead of "#" in insn asm template.
12753         (*jcc_fused_2): Ditto.
12754
12755 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
12756
12757         * config/i386/i386.h (ix86_tune_indices)
12758         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
12759         (TARGET_FUSE_CMP_AND_BRANCH): New define.
12760         * config/i386/i386.md (*jcc_fused_1): New insn pattern
12761         (*jcc_fused_2): Ditto.
12762         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
12763         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
12764         (print operand): Handle 'E' and 'e' code.
12765
12766 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
12767
12768         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
12769         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12770         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12771
12772 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
12773
12774         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
12775         node->decl.
12776         (cgraph_expand_function): Use local copy of decl.
12777         (cgraph_expand_all_functions): Remove redundant initialization of
12778         order_pos.
12779         (cgraph_optimize): Reword internal_error message.
12780
12781 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
12782
12783         * arm-protos.h (arm_return_in_memory): Remove public
12784         arm_return_in_memory() prototype.
12785         * arm.c (arm_return_in_memory): Add static prototype, add target
12786         hook macro, change definition and comments.
12787         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
12788
12789 2008-06-19  Ben Elliston  <bje@au.ibm.com>
12790
12791         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
12792         real.c: Remove references to IEEE 754R.
12793         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
12794         * doc/libgcc.texi (Decimal float library routines): Likewise.
12795
12796 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12797
12798         * targhooks.h (struct gcc_target): New member unwind_word_mode.
12799         (default_unwind_word_mode): Add prototype.
12800         * targhooks.c (default_unwind_word_mode): New function.
12801         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
12802         instead of word_mode.
12803         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
12804         (TARGET_INITIALIZER): Use it.
12805
12806         * c-common.c (handle_mode_attribute): Support "unwind_word"
12807         mode attribute.
12808         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
12809
12810         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
12811         word_mode to access SjLj_Function_Context member "data".
12812         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
12813         conversion from targetm.eh_return_filter_mode () to
12814         targetm.unwind_word_mode () if they differ.
12815
12816         * builtin-types.def (BT_UNWINDWORD): New primitive type.
12817         (BT_FN_UNWINDWORD_PTR): New function type.
12818         (BT_FN_WORD_PTR): Remove.
12819         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
12820         * except.c (expand_builtin_extend_pointer): Convert pointer to
12821         targetm.unwind_word_mode () instead of word_mode.
12822
12823         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
12824         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
12825         (spu_unwind_word_mode): New function.
12826         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
12827         (TARGET_UNWIND_WORD_MODE): Define.
12828         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
12829
12830 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12831
12832         * config/spu/spu.c (reg_align): Remove.
12833         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
12834         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
12835         (spu_split_store): Likewise.
12836
12837 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
12838
12839         * gcc/tree-vn.c: Fix typo in comment.
12840
12841 2008-06-18  Jan Hubicka  <jh@suse.cz>
12842
12843         * cgraphunit.c (cgraph_optimize): Output debug info when doing
12844         toplevel reorder too.
12845
12846 2008-06-18  Jan Hubicka  <jh@suse.cz>
12847
12848         * c-opts.c (c_common_post_options): PCH is not compatible with
12849         no-unit-at-a-time.
12850         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
12851         -fno-toplevel-reorder by default now.
12852
12853 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12854
12855         PR documentation/30739
12856         * doc/install.texi (Prerequisites): Document dependency on awk.
12857
12858 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
12859             Ian Lance Taylor  <iant@google.com>
12860
12861         PR rtl-optimization/35604
12862         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
12863         only want to change jump destinations, not eventual label comparisons.
12864
12865 2008-06-16  Jan Hubicka  <jh@suse.cz>
12866
12867         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
12868         syntax errors.
12869         (cgraph_analyze_function): Likewise.
12870
12871 2008-06-16  Jan Hubicka  <jh@suse.cz>
12872
12873         * cgraph.h (cgraph_mark_if_needed): New function.
12874         * cgraphunit.c (cgraph_mark_if_needed): New function.
12875         * c-decl.c (duplicate_decl): Use it.
12876
12877 2008-06-16  Jan Hubicka  <jh@suse.cz>
12878
12879         * cgraph.c (cgraph_add_new_function): When in expansion state, do
12880         lowering.
12881
12882 2008-06-16  Jan Hubicka  <jh@suse.cz>
12883
12884         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
12885
12886 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
12887             Kazu Hirata  <kazu@codesourcery.com>
12888             Maxim Kuvyrkov  <maxim@codesourcery.com
12889
12890         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
12891         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
12892         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
12893         EXTRA_SPEC_FUNCTIONS.
12894         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
12895         (DRIVER_SELF_SPECS): Adjust.
12896         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
12897         * config/mips/st.h, config/mips/t-st: New.
12898         * config/mips/driver-native.c, config/mips/x-native: New.
12899         * doc/invoke.texi (MIPS): Document 'native' value for -march and
12900         -mtune options.
12901
12902 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
12903
12904         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
12905         from it.
12906         (ISA_HAS_FP_CONDMOVE): New macro.
12907         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
12908         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
12909         (ISA_HAS_NMADD3_NMSUB3): New macro.
12910         * config/mips/mips.c (mips_rtx_costs): Update.
12911         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
12912         compiling for ST Loongson 2E/2F.
12913         (madd<mode>): Rename to madd4<mode>.  Update.
12914         (madd3<mode>): New pattern.
12915         (msub<mode>): Rename to msub4<mode>.  Update.
12916         (msub3<mode>): New pattern.
12917         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
12918         (nmadd3<mode>): New pattern.
12919         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
12920         (nmadd3<mode>_fastmath): New pattern.
12921         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
12922         (nmsub3<mode>): New pattern.
12923         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
12924         (nmsub3<mode>_fastmath): New pattern.
12925         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
12926
12927 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
12928
12929         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
12930         (DF_REF_INSN_INFO): New.
12931         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
12932         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
12933         with a NULL DF_REF_INSN_INFO.
12934         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
12935         DF_INSN_SET.
12936         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
12937         DF_INSN_INFO_EQ_USES): New.
12938         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
12939         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
12940         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
12941         * df-core.c: Update comment for above changes.
12942         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
12943         DF_INSN_UID_* macros.
12944         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
12945         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
12946         insn rtx.  Update all callers.
12947         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
12948         df_ref_create_structure, df_insn_refs_collect): Likewise.
12949         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
12950         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
12951         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
12952         macros to access the insn refs.
12953         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
12954         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
12955         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
12956         for accessing the refs.
12957         (try_fwprop_subst): Likewise.
12958         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
12959         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
12960         for accessing the refs.
12961         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
12962         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
12963         to look at the insn refs.
12964         (record_uses): Likewise.
12965         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
12966         function anymore.
12967         (mark_artificial_uses): Don't mark_insn for artificial refs.
12968         (mark_reg_rependencies): Likewise.
12969
12970         * doc/rtl.texi: Remove documentation of ADDRESSOF.
12971
12972 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12973
12974         * configure: Regenerate.
12975
12976 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
12977
12978         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
12979         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
12980         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
12981
12982 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
12983
12984         * config/avr/avr.c (avr_mcu_t): Add attiny167.
12985         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
12986         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
12987
12988 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
12989
12990         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
12991         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
12992         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
12993
12994 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
12995
12996         * tree-ssa-sccvn.c: Fix format of comments.
12997
12998 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
12999
13000         * cgraph.c: Remove unneeded forward declarations of eq_node()
13001         and hash_node().
13002
13003 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
13004
13005         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
13006         REG_RETVAL notes.
13007         (see_update_relevancy): Likewise.
13008         * fwprop.c (try_fwprop_subst): Likewise.
13009         * rtlanal.c (noop_move_p): Likewise.
13010         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
13011         notes to non-existing libcall blocks.
13012         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
13013         Remove orig_set.
13014         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
13015         (dead_libcall_p): Remove.
13016         (delete_trivially_dead_insns): Don't use it.
13017         * web.c (union_defs): Remove comment about keeping nops.
13018         * gcse.c (hash_scan_insn): Don't take libcall pointers.
13019         (compute_hash_table_work): Don't track libcall notes.
13020         (do_local_cprop): Don't take libcall pointers.  Don't update
13021         libcall notes.
13022         (adjust_libcall_notes): Deleted.
13023         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
13024         ever have existed in the first place).
13025         (replace_store_insn): Don't try to remove libcall notes.
13026         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
13027         (resolve_reg_notes): Don't call them.
13028         (resolve_simple_move): Likewise.
13029         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
13030         Don't remove REG_RETVAL notes.
13031         * emit-rtl.c (try_split): Don't update libcall notes.
13032         (emit_copy_of_insn_after): Dito.
13033         * cselib.c (cselib_current_insn_in_libcall): Remove.
13034         (cselib_process_insn): Don't set/clear it.
13035         (new_elt_loc_list): Don't record it.
13036         (cselib_init): Don't initialize it.
13037         * cselib.c (struct elt_loc_list): Remove in_libcall field.
13038         * loop-invariant.c (find_invariant_insn): Don't look for libcall
13039         notes.
13040         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
13041         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
13042         (init_deps): Don't initialize it.
13043         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
13044         * combine.c (delete_noop_moves): Don't update libcall notes.
13045         (can_combine_p): Remove now pointless #if 0 block.
13046         (try_combine): Remove another obsolete #if 0 block.
13047         (distribute_notes): Don't distribute libcall notes.
13048         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
13049         * dce.c (libcall_dead_p): Remove.
13050         (delete_unmarked_insns): Don't handle libcall blocks.
13051         (preserve_libcall_for_dce): Remove.
13052         (prescan_insns_for_dce): Don't special-case libcall block insns.
13053         * reload1 (reload): Don't handle libcall notes.
13054         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
13055         documentation.
13056
13057 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
13058
13059         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
13060         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13061         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13062
13063 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
13064
13065         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
13066         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13067         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13068
13069 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13070
13071         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
13072
13073 2008-06-16  Ira Rosen  <irar@il.ibm.com>
13074
13075         PR tree-optimization/36493
13076         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
13077         the arguments list. Use VECTYPE to create vector pointer.
13078         (vectorizable_store): Fail if accesses through a pointer to vectype
13079         do not alias the original memory reference operands.
13080         Call vect_create_data_ref_ptr without the removed argument.
13081         (vectorizable_load): Likewise.
13082         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
13083         removed argument.
13084
13085 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
13086
13087         PR target/36336
13088         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
13089         reg_equiv_constant.
13090
13091 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
13092
13093         * config/mips/loongson2ef.md: New file.
13094         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
13095         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
13096         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
13097         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
13098         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
13099         and loongson_2f.
13100         (loongson2ef.md): New include.
13101         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
13102         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
13103         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
13104         (loongson_gt_<mode>, loongson_extract_halfword)
13105         (loongson_insert_halfword_0, loongson_insert_halfword_2)
13106         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
13107         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
13108         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
13109         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
13110         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
13111         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
13112         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
13113         (vec_interleave_low<mode>): Define type attribute.
13114         * config/mips/mips.c (mips_ls2): New static variable.
13115         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
13116         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
13117         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
13118         Implement target scheduling hooks.
13119         (mips_multipass_dfa_lookahead): Update to handle tuning for
13120         Loongson 2E/2F.
13121         (mips_sched_init): Initialize data for Loongson scheduling.
13122         (mips_ls2_variable_issue): New static function.
13123         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
13124         Add sanity check.
13125         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
13126         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
13127         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
13128         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
13129         Handle ST Loongson 2E/2F cores.
13130         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
13131
13132 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13133
13134         * omp-low.c (extract_omp_for_data): Fix comment typo.
13135         * c.opt: Fix typo.
13136
13137 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13138
13139         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
13140         FIXME note about gcc/config.guess.
13141         * doc/options.texi (Option file format): Remove non-ASCII bytes.
13142         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
13143         * doc/cppopts.texi: Likewise.
13144         * doc/extend.texi: Likewise.
13145         * doc/gcc.texi: Likewise.
13146         * doc/gccint.texi: Likewise.
13147         * doc/gcov.texi: Likewise.
13148         * doc/gty.texi: Likewise.
13149         * doc/hostconfig.texi: Likewise.
13150         * doc/install.texi: Likewise.
13151         * doc/invoke.texi: Likewise.
13152         * doc/loop.texi: Likewise.
13153         * doc/makefile.texi: Likewise.
13154         * doc/md.texi: Likewise.
13155         * doc/passes.texi: Likewise.
13156         * doc/tm.texi: Likewise.
13157         * doc/tree-ssa.texi: Likewise.
13158         * doc/trouble.texi: Likewise.
13159
13160 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
13161             Nathan Sidwell  <nathan@codesourcery.com>
13162             Maxim Kuvyrkov  <maxim@codesourcery.com>
13163             Richard Sandiford  <rdsandiford@googlemail.com>
13164
13165         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
13166         * config/mips/mips-protos.h (mips_expand_vector_init): New.
13167         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
13168         builtins.
13169         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
13170         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
13171         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
13172         V8QImode cases.
13173         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
13174         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
13175         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
13176         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
13177         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
13178         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
13179         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
13180         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
13181         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
13182         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
13183         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
13184         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
13185         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
13186         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
13187         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
13188         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
13189         (mips_builtins): Add Loongson builtins.
13190         (mips_loongson_2ef_bdesc): New.
13191         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
13192         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
13193         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
13194         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
13195         New.
13196         (mips_expand_vector_init): New.
13197         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
13198         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
13199         if appropriate.
13200         * config/mips/mips.md: Add unspec numbers for Loongson
13201         builtins.  Include loongson.md.
13202         (MOVE64): Include Loongson vector modes.
13203         (SPLITF): Include Loongson vector modes.
13204         (HALFMODE): Handle Loongson vector modes.
13205         * config/mips/loongson.md: New.
13206         * config/mips/loongson.h: New.
13207         * config.gcc: Add loongson.h header for mips*-*-* targets.
13208         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
13209
13210 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
13211
13212         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
13213         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
13214         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
13215         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
13216         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
13217         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
13218         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
13219         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
13220         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
13221         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
13222         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
13223         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
13224         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
13225         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
13226         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
13227         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
13228         Remove use_fixproto=yes.
13229         (ia64*-*-hpux*): Remove comment about using fixproto.
13230         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
13231
13232 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13233
13234         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
13235         library rebuilds.
13236         * configure: Regenerate.
13237
13238 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
13239
13240         PR middle-end/36520
13241         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
13242         before evaluating it.
13243
13244 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
13245
13246         PR c/36507
13247         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
13248         nested inline functions.
13249         (start_decl, start_function): Don't invert DECL_EXTERNAL
13250         for nested inline functions.
13251
13252 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
13253
13254         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
13255         splits that must be made for correctness.
13256
13257 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
13258
13259         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
13260         (AVAIL_NON_MIPS16): Likewise.
13261         (mips_builtin_description): Replace target_flags with a predicate.
13262         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
13263         (dspr2_32): New availability predicates.
13264         (MIPS_BUILTIN): New macro.
13265         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
13266         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
13267         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
13268         Replace the TARGET_FLAGS parameters with AVAIL parameters.
13269         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
13270         (mips_dsp_32only_bdesc): Merge into...
13271         (mips_builtins): ...this new array.
13272         (mips_bdesc_map, mips_bdesc_arrays): Delete.
13273         (mips_init_builtins): Update after above changes.
13274         (mips_expand_builtin_1): Merge into...
13275         (mips_expand_builtin): ...here and update after above changes.
13276
13277 2008-06-12  Paul Brook  <paul@codesourcery.com>
13278
13279         * longlong.h (__arm__): Define count_leading_zeros.
13280         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
13281         (clzsi2, clzdi2): New functions.
13282         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
13283         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
13284         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
13285         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
13286         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
13287         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
13288         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
13289         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
13290         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
13291         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
13292
13293 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
13294
13295         * config/m68k/m68k.c (m68k_tune_flags): New.
13296         (override_options): Compute m68k_tune_flags.
13297         (MULL_COST, MULW_COST): Update for various variants of CFV2.
13298         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
13299
13300 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
13301
13302         PR middle-end/36506
13303         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
13304
13305 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
13306
13307         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
13308         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
13309
13310 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
13311
13312         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
13313         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
13314
13315 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
13316
13317         PR middle-end/36506
13318         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
13319         reductions.
13320
13321 2008-06-12  Richard Guenther  <rguenther@suse.de>
13322
13323         PR tree-optimization/36345
13324         * tree-flow.h (struct ptr_info_def): Align escape_mask,
13325         add memory_tag_needed flag.
13326         (may_alias_p): Declare.
13327         * tree-ssa-alias.c (may_alias_p): Export.
13328         (set_initial_properties): Use memory_tag_needed flag.
13329         (update_reference_counts): Likewise.
13330         (reset_alias_info): Reset memory_tag_needed flag.
13331         (create_name_tags): Check memory_tag_needed flag.
13332         (dump_points_to_info_for): Dump it.
13333         * tree-ssa-structalias.c (struct variable_info): Remove
13334         directly_dereferenced flag.
13335         (new_var_info): Do not initialize it.
13336         (process_constraint_1): Do not set it.
13337         (update_alias_info): Set is_dereferenced flag.
13338         (set_uids_in_ptset): Use may_alias_p.
13339         (set_used_smts): Check memory_tag_needed flag.
13340         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
13341         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
13342         memory_tag_needed flag.
13343         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
13344         from broken design.
13345
13346 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
13347
13348         * config/i386/i386.c (ix86_compute_frame_layout): Disable
13349         red zone for w64 abi.
13350         (ix86_expand_prologue): Likewise.
13351         (ix86_force_to_memory): Likewise.
13352         (ix86_free_from_memory): Likewise.
13353
13354 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
13355
13356         PR target/36425
13357         * config/rs6000/rs6000.c (rs6000_override_options): Set
13358         rs6000_isel conditionally to the absence of comand line override.
13359         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
13360         Remove duplicate rs6000_isel setting.
13361         * config/rs6000/eabispe.h: Ditto.
13362
13363 2008-06-11  Richard Guenther  <rguenther@suse.de>
13364
13365         * alias.c (get_alias_set): Use the element alias-set for arrays.
13366         (record_component_aliases): For arrays and vectors do nothing.
13367         * c-common.c (strict_aliasing_warning): Handle the cases
13368         of alias set zero explicitly.
13369         * Makefile.in (dfp.o-warn): Add -Wno-error.
13370
13371 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
13372
13373         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
13374         tune_32 tune_64.
13375         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
13376         tune_32 tune_64 to supported_defaults.  Allow values not
13377         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
13378         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
13379         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
13380         with_cpu_64 to generic for 64-bit-supporting configurations, not
13381         with_cpu.  Remove FIXMEs.
13382         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
13383         --with-arch-64, --with-tune-32, --with-tune-64): Document.
13384         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
13385         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
13386         arch_32 and arch_64.
13387
13388 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
13389             Olivier Hainque  <hainque@adacore.com>
13390
13391         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
13392         Use DECL_SIZE_UNIT to retrieve the size of the field.
13393
13394 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
13395
13396         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
13397         with function calls after declarations.  Lay out
13398         neon_float_type_node before further use.
13399
13400 2008-06-11  Richard Guenther  <rguenther@suse.de>
13401
13402         * tree-flow.h (may_point_to_global_var): Declare.
13403         * tree-ssa-alias.c (may_point_to_global_var): New function.
13404         * tree-ssa-sink.c (is_hidden_global_store): Use it.
13405
13406 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
13407
13408         * configure.ac: Teach that fido supports .debug_line.
13409         * configure: Regenerate.
13410
13411 2008-06-10  Tom Tromey  <tromey@redhat.com>
13412
13413         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
13414         debug hook.
13415
13416 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
13417
13418         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
13419         (encode_decimal64, decode_decimal64, encode_decimal128,
13420         decode_decimal128): Reverse order of 32-bit parts of value if host
13421         and target endianness differ.
13422
13423 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
13424
13425         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
13426         Avoid division by 0.
13427         (tree_mod_pow2_value_transform): Likewise.
13428         (tree_ic_transform): Likewise.
13429         (tree_stringops_transform): Likewise.
13430         (tree_mod_subtract_transform): Likewise.
13431         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
13432         (copy_edges_for_bb): Likewise.
13433         (initialize_cfun): Likewise.
13434
13435 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
13436
13437         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
13438         nonmemory_operand. Add "N" operand constraint.
13439         (*btsi): Ditto.
13440         (*jcc_btdi_mask_rex64): New instruction and split pattern.
13441         (*jcc_btsi_mask): Ditto.
13442         (*jcc_btsi_mask_1): Ditto.
13443
13444 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
13445
13446         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
13447         TYPE_CANONICAL for copied element type.
13448
13449 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
13450
13451         PR target/36473
13452         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
13453         Add m_CORE2 and m_GENERIC.
13454         * config/i386/predicates.md (bt_comparison_operator): New predicate.
13455         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
13456         (*btsi): Ditto.
13457         (*jcc_btdi_rex64): New instruction and split pattern.
13458         (*jcc_btsi): Ditto.
13459         (*jcc_btsi_1): Ditto.
13460         (*btsq): Fix Intel asm dialect operand order.
13461         (*btrq): Ditto.
13462         (*btcq): Ditto.
13463
13464 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
13465
13466         PR middle-end/36447
13467         * simplify-rtx.c (simplify_subreg): Add check for shift count
13468         greater than size.
13469
13470 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
13471
13472         * doc/md.texi: Synchronize with later constraints.md change.
13473         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
13474         with a C implementation.
13475         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
13476         MFLO handling.
13477         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
13478         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
13479         when moving to and from MD_REGNUM.
13480         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
13481         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
13482         Handle byte and halfword moves.
13483         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
13484         separately.
13485         * config/mips/constraints.md (h): Turn into NO_REGS.
13486         (l, x): Update documentation.
13487         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
13488         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
13489         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
13490         (HILO): New mode iterator.
13491         (MOVE128): Add TI.
13492         (any_div): New code iterator.
13493         (u): Extend code attribute to div and udiv.
13494         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
13495         d_operand in the splitters.  Remove redundant CONST_INT checks.
13496         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
13497         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
13498         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
13499         accordingly, using normal moves instead of unspecs to move LO into
13500         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
13501         (<u>mulsidi3): Handle expansion in C code.
13502         (<u>mulsidi3_32bit_internal): Rename to...
13503         (<u>mulsidi3_32bit): ...this.
13504         (<u>mulsidi3_32bit_r4000): Fix insn separator.
13505         (*<u>mulsidi3_64bit): Rename to...
13506         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
13507         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
13508         to set LO and HI to the multiplication result.  Use a normal move
13509         for MFLO and an unspec for MFHI.
13510         (*<u>mulsidi3_64bit_parts): Replace with...
13511         (<u>mulsidi3_64bit_hilo): ...this new instruction.
13512         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
13513         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
13514         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
13515         instead of HI.  Split the instruction into a separate multiplication
13516         and MFHI if !TARGET_FIX_R4000.
13517         (<su>muldi3_highpart): Likewise.
13518         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
13519         and the "=h" clobber.
13520         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
13521         (<u>mulditi3): New expander.
13522         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
13523         (madsi): Remove "=h" clobber.
13524         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
13525         Force the modulus result to be a GPR and split the instruction into
13526         a division followed by an MFHI after reload.
13527         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
13528         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
13529         the MIPS16 HIGH define_split.
13530         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
13531         of acc<->gpr moves to "multi".
13532         (*movdi_64bit): Replace the single "x" alternative with
13533         alternatives for moving into and out of "a".
13534         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
13535         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
13536         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
13537         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
13538         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
13539         (movti): New expander.
13540         (*movti, *movti_mips16): New insns.
13541         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
13542         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
13543         (mthi<GPR:mode>_<HILO:mode>): Likewise.
13544         * config/mips/predicates.md (fpr_operand): Delete.
13545         (d_operand): New predicate.
13546
13547 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
13548
13549         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
13550         failure on some Bourne shells.
13551         (x86_64-*-*): Ditto.
13552
13553 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
13554
13555         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
13556
13557 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13558
13559         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
13560         (sparc-sun-solaris2*): Likewise.
13561
13562 2008-06-09  Arnaud Charlet  <charlet@adacore.com
13563
13564         * doc/install.texi: Update requirements to build the Ada compiler.
13565
13566 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
13567
13568         * df-scan.c (struct df_scan_problem_data): Remove the
13569         mw_link_pool alloc pool.
13570         (df_scan_free_internal): Don't free it.
13571         (df_scan_alloc): Don't allocate it.
13572         * df.h (struct df_link): Update comment.
13573
13574 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
13575
13576         * except.h: Correct checks for when SJLJ exceptions must be used.
13577
13578 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13579
13580         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
13581         default.
13582
13583 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
13584
13585         PR tree-optimization/36218
13586         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
13587         configure for the build system.
13588         (BUILD_LDFLAGS): Define.
13589         * configure: Regenerate.
13590         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
13591
13592 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
13593
13594         PR target/36424
13595         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
13596         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
13597         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
13598
13599 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
13600
13601         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
13602
13603 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
13604
13605         * config.gcc (Obsolete configurations): Remove list of
13606         configurations.
13607         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
13608         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
13609         targets matched by those patterns.
13610         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
13611         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
13612         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
13613         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
13614         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
13615         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
13616         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
13617         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
13618         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
13619         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
13620         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
13621         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
13622         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
13623         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
13624         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
13625         Make code for Solaris 7 and greater unconditional for Solaris.
13626         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
13627         Remove --with-* handling.
13628         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
13629         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
13630         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
13631         LINK_OS_WINDISS_SPEC): Remove.
13632         * config/rs6000/sysv4.opt (mwindiss): Remove.
13633         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
13634         * configure: Regenerate.
13635         * doc/cpp.texi: Don't mention BeOS.
13636         * doc/extend.texi (interrupt): Don't mention MS1.
13637         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
13638         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
13639         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
13640         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
13641         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
13642         Remove.
13643         * doc/invoke.texi (MT Options): Remove.
13644         (-mwindiss): Remove.
13645         (CRIS Options): Remove cris-axis-aout references.
13646         (HPPA Options): Don't mention hppa1.1-*-pro.
13647         * doc/md.texi: (MorphoTech family): Remove.
13648         * libgcc2.c: Don't handle UWIN.
13649         * config/alpha/t-unicosmk: Remove.
13650         * config/alpha/unicosmk.h: Remove.
13651         * config/arm/kaos-arm.h: Remove.
13652         * config/arm/kaos-strongarm.h: Remove.
13653         * config/arm/strongarm-coff.h: Remove.
13654         * config/arm/strongarm-elf.h: Remove.
13655         * config/arm/strongarm-pe.h: Remove.
13656         * config/arm/t-strongarm-pe: Remove.
13657         * config/arm/t-xscale-coff: Remove.
13658         * config/arm/t-xscale-elf: Remove.
13659         * config/arm/xscale-coff.h: Remove.
13660         * config/arm/xscale-elf.h: Remove.
13661         * config/chorus.h: Remove.
13662         * config/cris/aout.h: Remove.
13663         * config/cris/aout.opt: Remove.
13664         * config/cris/t-aout: Remove.
13665         * config/i386/beos-elf.h: Remove.
13666         * config/i386/kaos-i386.h: Remove.
13667         * config/i386/ptx4-i.h: Remove.
13668         * config/i386/sco5.h: Remove.
13669         * config/i386/sco5.opt: Remove.
13670         * config/i386/sysv4-cpp.h: Remove.
13671         * config/i386/sysv5.h: Remove.
13672         * config/i386/t-beos: Remove.
13673         * config/i386/t-sco5: Remove.
13674         * config/i386/t-uwin: Remove.
13675         * config/i386/uwin.asm: Remove.
13676         * config/i386/uwin.h: Remove.
13677         * config/kaos.h: Remove.
13678         * config/mips/windiss.h: Remove.
13679         * config/mt: Remove directory.
13680         * config/pa/pa-osf.h: Remove.
13681         * config/pa/pa-pro-end.h: Remove.
13682         * config/pa/t-pro: Remove.
13683         * config/ptx4.h: Remove.
13684         * config/rs6000/beos.h: Remove.
13685         * config/rs6000/kaos-ppc.h: Remove.
13686         * config/rs6000/t-beos: Remove.
13687         * config/rs6000/windiss.h: Remove.
13688         * config/sh/kaos-sh.h: Remove.
13689         * config/sol2-6.h: Remove.
13690         * config/sparc/sol26-sld.h: Remove.
13691         * config/sparc/sysv4-only.h: Remove.
13692         * config/vax/bsd.h: Remove.
13693         * config/vax/t-memfuncs: Remove.
13694         * config/vax/ultrix.h: Remove.
13695         * config/vax/vaxv.h: Remove.
13696         * config/windiss.h: Remove.
13697
13698 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
13699
13700         PR rtl-optimization/36438
13701         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
13702         for vector shifts with constant scalar shift operands.
13703
13704 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
13705
13706         * doc/invoke.texi: Document -march=xlr.
13707         * config/mips/xlr.md: New file.
13708         * config/mips/mips.md: Include it.
13709         (cpu): Add "xlr".
13710         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
13711         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
13712         (mips_rtx_cost_data): Likewise.
13713
13714 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
13715
13716         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
13717         PRE_INC and PRE_DEC cases.
13718
13719 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
13720
13721         PR rtl-optimization/36419
13722         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
13723         the emitting jump insn.
13724
13725         PR target/36362
13726         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
13727         is not bool, boolify the whole *expr_p and convert to the desired type.
13728
13729 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
13730
13731         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
13732         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
13733         Add omp_private_outer_ref hook, add another argument to
13734         omp_clause_default_ctor hook.
13735         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
13736         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
13737         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
13738         hook_tree_tree_tree_tree_null.
13739         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
13740         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
13741         * hooks.c (hook_tree_tree_tree_tree_null): New function.
13742         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
13743         * tree.def (OMP_TASK): New tree code.
13744         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
13745         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
13746         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
13747         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
13748         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
13749         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
13750         OMP_CLAUSE_COLLAPSE_EXPR): Define.
13751         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
13752         (OMP_DIRECTIVE_P): Add OMP_TASK.
13753         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
13754         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
13755         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
13756         and OMP_CLAUSE_UNTIED entries.
13757         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
13758         num_ops to 2.
13759         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
13760         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
13761         * tree-pretty-print.c (dump_omp_clause): Handle
13762         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
13763         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
13764         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
13765         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
13766         warning about unsigned iterators.  Change decl/init/cond/incr
13767         arguments to TREE_VECs, check arguments for all collapsed loops.
13768         (c_finish_omp_taskwait): New function.
13769         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
13770         ws_clauses.
13771         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
13772         default_function_array_conversion on init.  Add par_clauses argument.
13773         If decl is present in parallel's lastprivate clause, change it to
13774         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
13775         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
13776         collapse count in clauses.
13777         (c_parser_omp_for, c_parser_omp_parallel): Adjust
13778         c_parser_omp_for_loop callers.
13779         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
13780         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
13781         (c_parser_omp_clause_name): Handle collapse and untied clauses.
13782         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
13783         functions.
13784         (c_parser_omp_clause_schedule): Handle schedule(auto).
13785         Include correct location in the error message.
13786         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
13787         and PRAGMA_OMP_CLAUSE_UNTIED.
13788         (OMP_TASK_CLAUSE_MASK): Define.
13789         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
13790         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
13791         * tree-nested.c (convert_nonlocal_omp_clauses,
13792         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
13793         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
13794         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
13795         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
13796         OMP_CLAUSE_DECL.
13797         (conver_nonlocal_reference, convert_local_reference,
13798         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
13799         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
13800         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
13801         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
13802         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
13803         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
13804         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
13805         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
13806         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
13807         OMP_CLAUSE_UNTIED.
13808         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
13809         * c-common.h (c_finish_omp_taskwait): New prototype.
13810         * gimple-low.c (lower_stmt): Handle OMP_TASK.
13811         * tree-parloops.c (create_parallel_loop): Create 1 entry
13812         vectors for OMP_FOR_{INIT,COND,INCR}.
13813         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
13814         (make_edges): Handle OMP_TASK.
13815         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
13816         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
13817         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
13818         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
13819         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
13820         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
13821         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
13822         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
13823         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
13824         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
13825         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
13826         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
13827         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
13828         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
13829         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
13830         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
13831         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
13832         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
13833         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
13834         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
13835         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
13836         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
13837         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
13838         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
13839         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
13840         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
13841         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
13842         original iterator is present in lastprivate clause or if
13843         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
13844         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
13845         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
13846         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
13847         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
13848         if it is set, lookup var in outer contexts too.  Handle
13849         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
13850         to be implicitly determined firstprivate for task regions.
13851         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
13852         if it is set, lookup var in outer contexts too.  Set
13853         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
13854         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
13855         OMP_CLAUSE_UNTIED.  Take region_type as last argument
13856         instead of in_parallel and in_combined_parallel.
13857         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
13858         Adjust callers.
13859         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
13860         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
13861         (new_omp_context): Set default_kind to
13862         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
13863         (omp_region_type): New enum.
13864         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
13865         fields, add region_type.
13866         (new_omp_context): Take region_type as argument instead of is_parallel
13867         and is_combined_parallel.
13868         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
13869         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
13870         ctx->is_combined_parallel checks.
13871         (gimplify_omp_task): New function.
13872         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
13873         OMP_CLAUSE_UNTIED.
13874         * omp-low.c (extract_omp_for_data): Use schedule(static)
13875         for schedule(auto).  Handle pointer and unsigned iterators.
13876         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
13877         Add loops argument.  Extract data for collapsed OMP_FOR loops.
13878         (expand_parallel_call): Assert sched_kind isn't auto,
13879         map runtime schedule to index 3.
13880         (struct omp_for_data_loop): New type.
13881         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
13882         Add loop, loops, collapse and iter_type fields.
13883         (workshare_safe_to_combine_p): Disallow combined for if
13884         iter_type is unsigned long long.  Don't combine collapse > 1 loops
13885         unless all bounds and steps are constant.  Adjust extract_omp_for_data
13886         caller.
13887         (expand_omp_for_generic): Handle pointer, unsigned and long long
13888         iterators.  Handle collapsed OMP_FOR loops.  Adjust
13889         for struct omp_for_data changes.  If libgomp function doesn't return
13890         boolean_type_node, add comparison of the return value with 0.
13891         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
13892         pointer, unsigned and long long iterators.  Adjust for struct
13893         omp_for_data changes.
13894         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
13895         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
13896         unsigned long long.  Allocate loops array, pass it to
13897         extract_omp_for_data.  For collapse > 1 loops use always
13898         expand_omp_for_generic.
13899         (omp_context): Add sfield_map and srecord_type fields.
13900         (is_task_ctx, lookup_sfield): New functions.
13901         (use_pointer_for_field): Use is_task_ctx helper.  Change first
13902         argument's type from const_tree to tree.  Clarify comment.
13903         In OMP_TASK disallow copy-in/out sharing.
13904         (build_sender_ref): Call lookup_sfield instead of lookup_field.
13905         (install_var_field): Add mask argument.  Populate both record_type
13906         and srecord_type if needed.
13907         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
13908         in srecord_type.
13909         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
13910         and DECL_FIELD_OFFSET.
13911         (scan_sharing_clauses): Adjust install_var_field callers.  For
13912         firstprivate clauses on explicit tasks allocate the var by value in
13913         record_type unconditionally, rather than by reference.
13914         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
13915         Use is_taskreg_ctx instead of is_parallel_ctx.
13916         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
13917         (create_omp_child_function_name): Add task_copy argument, use
13918         *_omp_cpyfn* names if it is true.
13919         (create_omp_child_function): Add task_copy argument, if true create
13920         *_omp_cpyfn* helper function.
13921         (scan_omp_parallel): Adjust create_omp_child_function callers.
13922         Rename parallel_nesting_level to taskreg_nesting_level.
13923         (scan_omp_task): New function.
13924         (lower_rec_input_clauses): Don't run constructors for firstprivate
13925         explicit task vars which are initialized by *_omp_cpyfn*.
13926         Pass outer var ref to omp_clause_default_ctor hook if
13927         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
13928         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
13929         OMP_CLAUSE_REDUCTION_INIT.
13930         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
13931         avoid duplicate setting of fields.  Handle
13932         OMP_CLAUSE_PRIVATE_OUTER_REF.
13933         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
13934         copy-out if TREE_READONLY, only copy-in.
13935         (expand_task_copyfn): New function.
13936         (expand_task_call): New function.
13937         (struct omp_taskcopy_context): New type.
13938         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
13939         New functions.
13940         (lower_omp_parallel): Rename to...
13941         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
13942         Call create_task_copyfn if srecord_type is needed.  Adjust
13943         sender_decl type.
13944         (task_shared_vars): New variable.
13945         (check_omp_nesting_restrictions): Warn if work-sharing,
13946         barrier, master or ordered region is closely nested inside OMP_TASK.
13947         Add warnings for barrier if closely nested inside of work-sharing,
13948         ordered, or master region.
13949         (scan_omp_1): Call check_omp_nesting_restrictions even for
13950         GOMP_barrier calls.  Rename parallel_nesting_level to
13951         taskreg_nesting_level.  Handle OMP_TASK.
13952         (lower_lastprivate_clauses): Even if some lastprivate is found on a
13953         work-sharing construct, continue looking for them on parent parallel
13954         construct.
13955         (lower_omp_for_lastprivate): Add lastprivate clauses
13956         to the beginning of dlist rather than end.  Adjust for struct
13957         omp_for_data changes.
13958         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
13959         not after it.  Handle collapsed OMP_FOR loops, adjust for
13960         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
13961         (get_ws_args_for): Adjust extract_omp_for_data caller.
13962         (scan_omp_for): Handle collapsed OMP_FOR
13963         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
13964         (lower_omp_single_simple): If libgomp function doesn't return
13965         boolean_type_node, add comparison of the return value with 0.
13966         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
13967         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
13968         (parallel_nesting_level): Rename to...
13969         (taskreg_nesting_level): ... this.
13970         (is_taskreg_ctx): New function.
13971         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
13972         of is_parallel_ctx.
13973         (execute_lower_omp): Rename parallel_nesting_level to
13974         taskreg_nesting_level.
13975         (expand_omp_parallel): Rename to...
13976         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
13977         Call omp_task_call for OMP_TASK regions.
13978         (expand_omp): Adjust caller, handle OMP_TASK.
13979         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
13980
13981         * bitmap.c (bitmap_default_obstack_depth): New variable.
13982         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
13983         if argument is NULL and bitmap_default_obstack is already initialized.
13984         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
13985         at the end.
13986         * matrix-reorg.c (matrix_reorg): Likewise.
13987
13988 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
13989
13990         * config/i386/i386.md (*indirect_jump): Macroize using P
13991         mode iterator.  Remove !TARGET_64BIT from insn constraints.
13992         (*tablejump_1): Ditto.
13993         (*indirect_jump_rex64): Remove insn pattern.
13994         (*tablejump_1_rex64): Ditto.
13995         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
13996         and eh_return_si insn patterns.
13997
13998 2008-06-06  Richard Guenther  <rguenther@suse.de>
13999
14000         * tree-ssa-structalias.c (merge_smts_into): Remove.
14001         (find_what_p_points_to): Do not bother to compute the
14002         points-to set for pt_anything pointers.
14003         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
14004         for pt_anything pointers is ok.
14005
14006 2008-06-06  Jan Hubicka  <jh@suse.cz>
14007
14008         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
14009
14010 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14011
14012         * cgraph.c: Fix typos in comments.
14013         (cgraph_availability_names): Fix string typo.
14014         * fold-const.c: Fix typos in comments.
14015         (fold_binary): Fix typo in warning.
14016         * genautomata.c: Fix typos in comments.
14017         (check_presence_pattern_sets): Fix typo in local variable.
14018         (output_description): Fix typo in output.
14019         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
14020         * hwint.h: Likewise.
14021         * matrix-reorg.c (check_allocation_function): Likewise.
14022         * omega.c (smooth_weird_equations): Likewise.
14023         * auto-inc-dec.c: Fix typos in comments.
14024         * bb-reorder.c: Likewise.
14025         * builtins.c: Likewise.
14026         * c-common.c: Likewise.
14027         * c-cppbuiltin.c: Likewise.
14028         * c-parser.c: Likewise.
14029         * c-pretty-print.c: Likewise.
14030         * cfgcleanup.c: Likewise.
14031         * cfgexpand.c: Likewise.
14032         * cfghooks.c: Likewise.
14033         * cfglayout.c: Likewise.
14034         * cfgloopmanip.c: Likewise.
14035         * cgraphunit.c: Likewise.
14036         * coverage.c: Likewise.
14037         * dbxout.c: Likewise.
14038         * df-byte-scan.c: Likewise.
14039         * df-core.c: Likewise.
14040         * df-problems.c: Likewise.
14041         * df-scan.c: Likewise.
14042         * dfp.c: Likewise.
14043         * dominance.c: Likewise.
14044         * domwalk.c: Likewise.
14045         * dse.c: Likewise.
14046         * dwarf2out.c: Likewise.
14047         * emit-rtl.c: Likewise.
14048         * et-forest.c: Likewise.
14049         * function.c: Likewise.
14050         * function.h: Likewise.
14051         * gcc.c: Likewise.
14052         * gcov-io.c: Likewise.
14053         * gcov.c: Likewise.
14054         * gcse.c: Likewise.
14055         * genattrtab.c: Likewise.
14056         * ggc-page.c: Likewise.
14057         * gimplify.c: Likewise.
14058         * gthr-lynx.h: Likewise.
14059         * haifa-sched.c: Likewise.
14060         * ipa-cp.c: Likewise.
14061         * ipa-inline.c: Likewise.
14062         * ipa-prop.h: Likewise.
14063         * ipa-pure-const.c: Likewise.
14064         * ipa-struct-reorg.c: Likewise.
14065         * ipa-struct-reorg.h: Likewise.
14066         * ipa-type-escape.c: Likewise.
14067         * ipa.c: Likewise.
14068         * loop-doloop.c: Likewise.
14069         * mips-tfile.c: Likewise.
14070         * mkmap-flat.awk: Likewise.
14071         * mkmap-symver.awk: Likewise.
14072         * modulo-sched.c: Likewise.
14073         * omp-low.c: Likewise.
14074         * optabs.c: Likewise.
14075         * optabs.h: Likewise.
14076         * opts.c: Likewise.
14077         * passes.c: Likewise.
14078         * postreload-gcse.c: Likewise.
14079         * postreload.c: Likewise.
14080         * predict.c: Likewise.
14081         * pretty-print.h: Likewise.
14082         * profile.c: Likewise.
14083         * protoize.c: Likewise.
14084         * ra-conflict.c: Likewise.
14085         * real.c: Likewise.
14086         * recog.c: Likewise.
14087         * regclass.c: Likewise.
14088         * regs.h: Likewise.
14089         * reload.c: Likewise.
14090         * rtl-error.c: Likewise.
14091         * rtlanal.c: Likewise.
14092         * scan.h: Likewise.
14093         * sched-rgn.c: Likewise.
14094         * see.c: Likewise.
14095         * stmt.c: Likewise.
14096         * target.h: Likewise.
14097         * tree-dfa.c: Likewise.
14098         * tree-eh.c: Likewise.
14099         * tree-flow-inline.h: Likewise.
14100         * tree-inline.c: Likewise.
14101         * tree-into-ssa.c: Likewise.
14102         * tree-loop-distribution.c: Likewise.
14103         * tree-nested.c: Likewise.
14104         * tree-parloops.c: Likewise.
14105         * tree-pass.h: Likewise.
14106         * tree-pretty-print.c: Likewise.
14107         * tree-profile.c: Likewise.
14108         * tree-scalar-evolution.c: Likewise.
14109         * tree-sra.c: Likewise.
14110         * tree-ssa-alias-warnings.c: Likewise.
14111         * tree-ssa-ccp.c: Likewise.
14112         * tree-ssa-coalesce.c: Likewise.
14113         * tree-ssa-dom.c: Likewise.
14114         * tree-ssa-dse.c: Likewise.
14115         * tree-ssa-forwprop.c: Likewise.
14116         * tree-ssa-live.c: Likewise.
14117         * tree-ssa-live.h: Likewise.
14118         * tree-ssa-loop-im.c: Likewise.
14119         * tree-ssa-loop-ivopts.c: Likewise.
14120         * tree-ssa-loop-niter.c: Likewise.
14121         * tree-ssa-loop-prefetch.c: Likewise.
14122         * tree-ssa-phiopt.c: Likewise.
14123         * tree-ssa-phiprop.c: Likewise.
14124         * tree-ssa-sccvn.c: Likewise.
14125         * tree-ssa-ter.c: Likewise.
14126         * tree-ssa-threadupdate.c: Likewise.
14127         * tree-ssa.c: Likewise.
14128         * tree-vect-analyze.c: Likewise.
14129         * tree-vect-transform.c: Likewise.
14130         * tree-vectorizer.c: Likewise.
14131         * tree-vn.c: Likewise.
14132         * tree-vrp.c: Likewise.
14133         * tree.c: Likewise.
14134         * tree.def: Likewise.
14135         * tree.h: Likewise.
14136         * unwind-dw2-fde.c: Likewise.
14137         * unwind.inc: Likewise.
14138         * value-prof.c: Likewise.
14139         * vmsdbgout.c: Likewise.
14140
14141 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
14142
14143         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
14144         always place FP constants in the TOC for TARGET_POWERPC64.
14145         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
14146
14147 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
14148
14149         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
14150         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
14151         enable for TARGET_E500_DOUBLE.
14152         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
14153         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
14154         floating-point modes like integer modes for E500 double.
14155         (rs6000_legitimate_offset_address_p): Likewise.
14156         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
14157         addressing for DDmode for E500 double.
14158         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
14159         modes as using 64-bits of registers for E500 double.
14160         (spe_build_register_parallel): Do not handle DDmode or TDmode.
14161         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
14162         specially for E500 double.
14163         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
14164         TDmode for E500 double.
14165         (rs6000_gimplify_va_arg): Only handle SDmode in registers
14166         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
14167         (rs6000_split_multireg_move): Do not handle TDmode specially for
14168         E500 double.
14169         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
14170         using 64-bit registers for E500 double.
14171         (emit_frame_save): Do not handle DDmode specially for E500 double.
14172         (gen_frame_mem_offset): Likewise.
14173         (rs6000_function_value): Do not call spe_build_register_parallel
14174         for DDmode or TDmode.
14175         (rs6000_libcall_value): Likewise.
14176         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
14177         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
14178         for E500 double.
14179
14180 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
14181
14182         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
14183         in comments.
14184
14185 2008-06-04  Junjie Gu <jgu@tensilica.com>
14186
14187         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
14188         comparison for frame pointers.
14189
14190 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
14191
14192         PR target/27386
14193         * config/avr/avr.h (PUSH_ROUNDING): Remove.
14194
14195 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
14196
14197         PR target/30243
14198         * builtins.c (expand_builtin_signbit): Don't take lowpart when
14199         register is already smaller or equal to required mode.
14200
14201 2008-06-04  Xinliang David Li  <davidxl@google.com>
14202
14203         * tree-call-cdce.c: New file.
14204         (cond_dead_built_in_calls): New static variable.
14205         (input_domain): New struct.
14206         (check_pow): New function.
14207         (check_builtin_call): Ditto.
14208         (check_target_format): Ditto.
14209         (is_call_dce_candidate): Ditto.
14210         (gen_one_condition): Ditto.
14211         (gen_conditions_for_domain): Ditto.
14212         (get_domain): Ditto.
14213         (gen_conditions_for_pow_cst_base): Ditto.
14214         (gen_conditions_for_pow_int_base): Ditto.
14215         (gen_conditions_for_pow): Ditto.
14216         (get_no_error_domain): Ditto.
14217         (gen_shrink_wrap_conditions): Ditto.
14218         (shrink_wrap_one_built_in_call): Ditto.
14219         (shink_wrap_conditional_dead_built_in_calls): Ditto.
14220         (tree_call_cdce): Ditto.
14221         (gate_call_cdce): Ditto.
14222         (pass_call_cdce): New gimple pass.
14223         * passes.c: (init_optimization_passes): New pass.
14224         * tree-pass.h: New pass declaration.
14225         * opts.c (decode_options): New flag setting.
14226         * common.opt: Add -ftree-builtin-call-dce flag.
14227         * Makefile.in: Add new source file.
14228         * tempvar.def: New tv_id.
14229         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
14230
14231 2008-06-04  Richard Guenther  <rguenther@suse.de>
14232
14233         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
14234         (is_call_clobbered): Always check var_ann->call_clobbered.
14235         (mark_call_clobbered): Always set var_ann->call_clobbered.
14236         (clear_call_clobbered): Always clear var_ann->call_clobbered.
14237         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
14238         (reset_alias_info): Clear call clobbering info on MTAGs and
14239         globals as well.
14240         (set_pt_anything): Set pt_global_mem.
14241         (create_tag_raw): Adjust comment.
14242         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
14243
14244 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
14245             Maxim Kuvyrkov  <maxim@codesourcery.com>
14246
14247         * config/m68k/m68k.opt (mxgot): New option.
14248         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
14249         (m68k_output_addr_const_extra): New.
14250         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
14251         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
14252         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
14253         * doc/invoke.texi (M680x0 Options): Document -mxgot.
14254
14255 2008-06-04  Richard Guenther  <rguenther@suse.de>
14256
14257         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
14258         negative or non-representable offsets.
14259
14260 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
14261
14262         * config/i386/i386.c (ix86_gen_leave): New.
14263         (ix86_gen_pop1): Likewise.
14264         (ix86_gen_add3): Likewise.
14265         (ix86_gen_sub3): Likewise.
14266         (ix86_gen_sub3_carry): Likewise.
14267         (ix86_gen_one_cmpl2): Likewise.
14268         (ix86_gen_monitor): Likewise.
14269         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
14270         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
14271         ix86_gen_one_cmpl2 and ix86_gen_monitor.
14272         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
14273         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
14274         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
14275         (ix86_expand_epilogue): Updated.
14276         (print_operand): Handle integer register operand for 'z'.
14277         (ix86_expand_strlensi_unroll_1): Likewise.
14278         (ix86_expand_strlen): Likewise.
14279         (ix86_expand_builtin): Likewise.
14280         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
14281         mov{q}/mov{l} and add{q}/add{l}.
14282
14283 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
14284
14285         * config/i386/i386.md (P): New mode iterator.
14286         (SFmode push_operand splitter): Macroize DImode and SImode pushes
14287         using P mode iterator.
14288         (DFmode push_operand splitter): Ditto.
14289         (XFmode push_operand splitter): Ditto.
14290         (DFmode float_extend SFmode push_operand splitter): Ditto.
14291         (XFmode float_extend SFmode push_operand splitter): Do not generate
14292         SImode pushes for 64bit target.  Macroize Dimode and SImode
14293         pushes using P mode iterator.
14294         (XFmode float_extend DFmode push_operand splitter): Ditto.
14295
14296 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
14297
14298         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
14299         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
14300         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
14301         return type to int.
14302         (ix86_call_abi_override): Remove check for call_used_regs.
14303
14304 2008-06-03  Richard Guenther  <rguenther@suse.de>
14305
14306         * tree-ssa-structalias.c (find_func_aliases): Add constraints
14307         for the lhs of calls if the return type contains pointers.
14308
14309 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
14310
14311         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
14312         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
14313         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
14314         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
14315         of cfun and DEFAULT_ABI to deceide abi mode.
14316         (DEFAULT_ABI): New.
14317         (REG_PARM_STACK_SPACE): Removed.
14318         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
14319         (STACK_BOUNDARY): Use default target to deceide stack boundary.
14320         * config/i386/i386-protos.h (ix86_cfun_abi): New.
14321         (ix86_function_abi): Likewise.
14322         (ix86_function_type_abi): Likewise.
14323         (ix86_call_abi_override): Likewise.
14324         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
14325         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
14326         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
14327         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
14328         specific defines.
14329         (X86_64_REGPARM_MAX): New.
14330         (X86_64_SSE_REGPARM_MAX): New.
14331         (X64_REGPARM_MAX): New.
14332         (X64_SSE_REGPARM_MAX): New.
14333         (X86_32_REGPARM_MAX): New.
14334         (X86_32_SSE_REGPARM_MAX): New.
14335         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
14336         (ix86_function_regparm): Handle user calling abi.
14337         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
14338         by DEFAULT_ABI versus SYSV_ABI check.
14339         (ix86_reg_parm_stack_space): New.
14340         (ix86_function_type_abi): New.
14341         (ix86_call_abi_override): New.
14342         (ix86_function_abi): New.
14343         (ix86_cfun_abi): New.
14344         (init_cumulative_args): Call abi specific initialization.
14345         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
14346         (function_arg_64): Extend SSE_REGPARM_MAX check.
14347         (function_arg (): Remove TARGET_64BIT_MS_ABI.
14348         (ix86_pass_by_reference): Likewise.
14349         (ix86_function_value_regno_p): Likewise.
14350         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
14351         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
14352         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
14353         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
14354         (setup_incoming_varargs_64): Adjust regparm for call abi.
14355         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
14356         (ix86_va_start): Likewise.
14357         (ix86_gimplify_va_arg): Likewise.
14358         (ix86_expand_prologue): Likewise.
14359         (output_pic_addr_const): Likewise.
14360         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
14361         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
14362         (x86_output_mi_thunk): Likewise.
14363         (x86_function_profiler): Likewise.
14364         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
14365         (SYSV_ABI, MS_ABI): New constants.
14366         (DEFAULT_ABI): New.
14367         (init_regs): Add prototype of function in regclass.c file.
14368         (OVERRIDE_ABI_FORMAT): New.
14369         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
14370         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
14371         (OUTGOING_REG_PARM_STACK_SPACE): New.
14372         (ix86_reg_parm_stack_space): New prototype.
14373         (CUMULATIVE_ARGS): Add call_abi member.
14374         (machine_function): Add call_abi member.
14375         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
14376         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
14377
14378 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
14379
14380         PR target/34879
14381         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
14382         (avr_builtin_setjmp_frame_value): New function.
14383         * config/avr/avr.md (nonlocal_goto_receiver): Define.
14384         (nonlocal_goto): Define.
14385
14386 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
14387
14388         * config/mips/mips.c (mips_emit_loadgp): Return early if
14389         there is nothing do to, otherwise emit a blockage if
14390         !TARGET_EXPLICIT_RELOCS || crtl->profile.
14391         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
14392
14393 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14394
14395         * configure.ac: Drop unneeded backslash ending up in config.in.
14396         * acinclude.m4: Likewise.
14397         * config.in: Regenerate.
14398
14399 2008-05-26  Jan Hubicka  <jh@suse.cz>
14400
14401         * predict.c (maybe_hot_frequency_p): Break out of...
14402         (maybe_hot_bb_p): ... here.
14403         (maybe_hot_edge_p): New.
14404         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
14405         * basic-block.h (maybe_hot_edge_p): Declare.
14406
14407 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
14408
14409         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
14410         (*cmpfp_<mode>_cc): Ditto.
14411         (*fp_jcc_8<mode>_387): Ditto.
14412         (*fop_<MODEF:mode>_2_i387): Ditto.
14413         (*fop_<MODEF:mode>_3_i387): Ditto.
14414         (*fop_xf_2_i387): Ditto.
14415         (*fop_xf_3_i387): Ditto.
14416
14417 2008-06-02  Tomas Bily  <tbily@suse.cz>
14418
14419         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
14420
14421 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14422
14423         * config/mips/mips.c (mips_valid_offset_p): New function.
14424         (mips_valid_lo_sum_p): Likewise.
14425         (mips_classify_address): Use them.
14426         (mips_force_address): New function.
14427         (mips_legitimize_address): Use it.
14428         * config/mips/mips.md (MOVE128): New mode iterator.
14429         (movtf): Require TARGET_64BIT.  Remove empty strings.
14430         (*movtf_internal): Rename to...
14431         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
14432         of "R" and use {,fp}{load,store} attributes instead of "multi".
14433         Use a separate define_split.
14434         (*movtf_mips16): New pattern.
14435
14436 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14437
14438         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
14439         * config/mips/mips.c (mips_expand_before_return): New function.
14440         (mips_expand_epilogue): Call it.
14441         * config/mips/mips.md (return): Turn into a define_expand.
14442         (*return): New insn.
14443
14444 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
14445
14446         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
14447         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
14448         functions.  Do not emit uses and clobbers of CONCATs; individually
14449         use and clobber their operands.
14450         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
14451         gen_clobber, emit_use and gen_use.
14452         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
14453         (expand_builtin_return): Likewise.
14454         * cfgbuild.c (count_basic_blocks): Likewise.
14455         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
14456         * explow.c (emit_stack_restore): Likewise.
14457         * expmed.c (extract_bit_field_1): Likewise.
14458         * expr.c (convert_move, emit_move_complex_parts): Likewise.
14459         (emit_move_multi_word, store_constructor): Likewise.
14460         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
14461         (thread_prologue_and_epilogue_insns): Likewise.
14462         * lower-subreg.c (resolve_simple_move): Likewise.
14463         * optabs.c (widen_operand, expand_binop): Likewise.
14464         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
14465         * reload.c (find_reloads): Likewise.
14466         * reload1.c (eliminate_regs_in_insn): Likewise.
14467         * stmt.c (expand_nl_goto_receiver): Likewise.
14468         * config/alpha/alpha.md (builtin_longjmp): Likewise.
14469         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
14470         * config/arm/arm.c (arm_load_pic_register): Likewise.
14471         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
14472         * config/arm/arm.md (untyped_return): Likewise.
14473         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
14474         * config/avr/avr.c (expand_prologue): Likewise.
14475         * config/bfin/bfin.c (do_unlink): Likewise.
14476         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
14477         * config/cris/cris.c (cris_expand_prologue): Likewise.
14478         * config/darwin.c (machopic_indirect_data_reference): Likewise.
14479         (machopic_legitimize_pic_address): Likewise.
14480         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
14481         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
14482         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
14483         (ix86_expand_convert_uns_didf_sse): Likewise.
14484         (ix86_expand_vector_init_general): Likewise.
14485         * config/ia64/ia64.md (eh_epilogue): Likewise.
14486         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
14487         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
14488         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
14489         (config/iq2000/iq2000.c): Likewise.
14490         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
14491         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
14492         (builtin_longjmp): Likewise.
14493         * config/mn10300/mn10300.md (call, call_value): Likewise.
14494         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
14495         * config/pdp11/pdp11.md (abshi2): Likewise.
14496         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
14497         * config/s390/s390.c (s390_emit_prologue): Likewise.
14498         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
14499         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
14500         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
14501         * config/sh/sh.c (prepare_move_operands): Likewise.
14502         (output_stack_adjust, sh_expand_epilogue): Likewise.
14503         (sh_set_return_address, sh_expand_t_scc): Likewise.
14504         * config/sparc/sparc.c (load_pic_register): Likewise.
14505         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
14506         * config/spu/spu.c (spu_expand_epilogue): Likewise.
14507         * config/v850/v850.c (expand_epilogue): Likewise.
14508
14509 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
14510
14511         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
14512         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
14513         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
14514         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
14515         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
14516         stack pointer register.
14517         (output_movhi): Remove code for interrupt specific writing to the
14518         stack pointer register.
14519
14520 2008-05-31  Richard Guenther  <rguenther@suse.de>
14521
14522         PR tree-optimization/34244
14523         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
14524         (tree_expr_nonzero_warnv_p): Likewise.
14525         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
14526         ssa_name_nonnegative_p.
14527         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
14528         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
14529         not tree_expr_nonzero_warnv_p.
14530
14531         PR tree-optimization/36262
14532         Revert
14533         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
14534
14535         PR tree-optimization/34244
14536         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
14537         (record_numbers_of_iterations): New function.
14538         (execute_vrp): Cache the numbers of iterations of loops.
14539         * tree-scalar-evolution.c (scev_reset_except_niters):
14540         New function.
14541         (scev_reset): Use scev_reset_except_niters.
14542         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
14543
14544 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
14545
14546         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
14547         __WORKAROUND_RETS when appropriate.
14548
14549 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
14550
14551         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
14552         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
14553         mode iterator.
14554         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
14555         *fop_df_comm_sse insn patterns using MODEF mode iterator.
14556         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
14557         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
14558         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
14559         *fop_df_1_mixed insn patterns using MODEF mode iterator.
14560         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
14561         *fop_df_1_sse insn patterns using MODEF mode iterator.
14562         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
14563         *fop_df_1_i387 insn patterns using MODEF mode iterator.
14564         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
14565         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
14566         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
14567         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
14568         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
14569         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
14570         (*fop_xf_4_i387): Use <MODE> for mode attribute.
14571         (*fop_xf_5_i387): Ditto.
14572         (*fop_xf_6_i387): Ditto.
14573
14574 2008-05-30  Richard Guenther  <rguenther@suse.de>
14575
14576         * builtins.c (build_string_literal): Avoid generating
14577         a non-gimple_val result.
14578
14579 2008-05-30  DJ Delorie  <dj@redhat.com>
14580
14581         * exec-tool.in: Use an environment variable (private) instead of a
14582         file (shared) as a semaphore, so as to not break parallel builds.
14583
14584 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
14585
14586         * optabs.c (maybe_encapsulate_block): Remove.
14587         (emit_libcall_block): Adjust accordingly.
14588         * optabs.h (maybe_encapsulate_block): Remove prototype.
14589
14590         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
14591         Don't use maybe_encapsulate_block.
14592
14593 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
14594
14595         * config/rs6000/rs6000.c (rs6000_legitimize_address,
14596         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
14597         rtx is a SYMBOL_REF before calling get_pool_constant.
14598
14599 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
14600
14601         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
14602
14603 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
14604
14605         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
14606         rather than OS names to choose INO_T_EQ definition.
14607         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
14608         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
14609
14610 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
14611
14612         PR target/36348
14613         * config/darwin-f.c: New.
14614         * config/t-darwin: Added rule to build darwin-f.o.
14615         * config.gcc: Defined new variable, fortran_target_objs.
14616         (*-*-darwin*): Set fortran_target_objs.
14617         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
14618         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
14619         * configure: Regenerated.
14620
14621 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
14622
14623         PR target/35771
14624         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
14625         canonical type if needed.
14626
14627 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
14628
14629         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
14630
14631 2008-05-29  Richard Guenther  <rguenther@suse.de>
14632
14633         PR tree-optimization/36343
14634         PR tree-optimization/36346
14635         PR tree-optimization/36347
14636         * tree-flow.h (clobber_what_p_points_to): Declare.
14637         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
14638         pointed-to variable is dereferenced is irrelevant to whether
14639         the pointer can access the pointed-to variable.
14640         (clobber_what_p_points_to): New function.
14641         * tree-ssa-alias.c (set_initial_properties): Use it.
14642         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
14643         call clobber check for NMTs.
14644
14645 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
14646
14647         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
14648         for printing gcov_type.
14649
14650 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
14651
14652         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
14653         and the eh region information.
14654         * value-prof.c (gimple_move_stmt_histograms): New function.
14655         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
14656
14657 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
14658
14659         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
14660
14661 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
14662
14663         * value-prof.c (tree_ic_transform): Print counts.
14664         * tree-profile.c (tree_gen_ic_func_profiler):
14665         Clear __gcov_indreict_call_callee variable to avoid misattribution
14666         of the profile.
14667
14668 2008-05-28  Rafael Espíndola  <espindola@google.com>
14669
14670         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
14671         invalid sharing.
14672
14673 2008-05-28  Richard Guenther  <rguenther@suse.de>
14674
14675         PR tree-optimization/36339
14676         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
14677         and clobbering code out of the loop.
14678
14679 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
14680
14681         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
14682         letters defined.
14683
14684         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
14685         s390_contiguous_bitmask_p, s390_symref_operand_p,
14686         s390_check_symref_alignment, s390_reload_larl_operand,
14687         s390_reload_symref_address): New functions.
14688         (s390_branch_condition_mnemonic): Support compare and branch
14689         instructions.
14690         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
14691         and 'W' constraints.
14692         (s390_secondary_reload): Add secondary reloads for unaligned
14693         symbol refs or symbol refs to floating point or QI/TI mode
14694         integer values.
14695         (legitimate_address_p): Accept symbol references as addresses.
14696         (s390_expand_insv): Use rotate and insert selected bits
14697         instruction for insv when building for z10.
14698         (print_operand_address): Handle symbol ref addresses.
14699         (print_operand): Output modifier 'c' added for signed byte values.
14700         (s390_encode_section_info): Mark symbol refs with
14701         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
14702
14703         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
14704         (length attribute): RRF, RRR have 4 byte length.
14705         (FPALL, INTALL): New mode iterators added.
14706         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
14707         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
14708         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
14709         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
14710         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
14711         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
14712         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
14713         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
14714         instructions.
14715         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
14716         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
14717         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
14718         reload<INTALL:mode><P:mode>_toreg_z10,
14719         reload<FPALL:mode><P:mode>_tomem_z10,
14720         reload<FPALL:mode><P:mode>_toreg_z10,
14721         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
14722         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
14723         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
14724         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
14725         definition.
14726         (movmem, clrmem, cmpmem): New splitters added.
14727
14728         * config/s390/predicates.md (larl_operand): Use
14729         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
14730         SYMBOL_REF_ALIGN1_P.
14731         (s390_signed_integer_comparison,
14732         s390_unsigned_integer_comparison): New predicates.
14733
14734         * config/s390/s390-protos.h (s390_check_symref_alignment,
14735         s390_contiguous_bitmask_p, s390_reload_larl_operand,
14736         s390_reload_symref_address,
14737         s390_compare_and_branch_condition_mask): Prototypes added.
14738
14739         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
14740         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
14741         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
14742
14743 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
14744
14745         * config/s390/s390.c (z10_cost): New cost function for z10.
14746         (s390_handle_arch_option, override_options): Support -march=z10 switch.
14747         (s390_issue_rate): Adjust issue rate for z10.
14748         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
14749         (processor_flags): Add PF_Z10.
14750         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
14751         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
14752         * gcc/config.gcc: Add z10.
14753
14754 2008-05-28  Richard Guenther  <rguenther@suse.de>
14755
14756         PR tree-optimization/36291
14757         * tree-flow. h (struct gimple_df): Remove var_anns member.
14758         * tree-flow-inline.h (gimple_var_anns): Remove.
14759         (var_ann): Simplify.
14760         * tree-dfa.c (create_var_ann): Simplify.
14761         (remove_referenced_var): Clear alias info from var_anns of globals.
14762         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
14763         (delete_tree_ssa): Clear alias info from var_anns of globals.
14764         Do not free var_anns.
14765         (var_ann_eq): Remove.
14766         (var_ann_hash): Likewise.
14767
14768 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
14769
14770         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
14771         and loongson2f entries.
14772         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
14773         * config/mips/mips.h (processor_type): Add Loongson-2E
14774         and Loongson-2F entries.
14775         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
14776         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
14777         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
14778         * doc/invoke.texi (MIPS Options): Document loongson2e
14779         and loongson2f processor names.
14780
14781 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
14782
14783         PR target/35767
14784         PR target/35771
14785         * config/i386/i386.c (ix86_function_arg_boundary): Use
14786         alignment of canonical type.
14787         (ix86_expand_vector_move): Check unaligned memory access for
14788         all SSE modes.
14789
14790 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
14791
14792         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
14793         Moved to the front of file.
14794
14795 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
14796             H.J. Lu  <hongjiu.lu@intel.com>
14797
14798         * dwarf2out.c (current_fde): New.
14799         (add_cfi): Use it.
14800         (lookup_cfa:): Likewise.
14801         (dwarf2out_end_epilogue): Likewise.
14802         (dwarf2out_note_section_used): Likewise.
14803
14804 2008-05-27  Michael Matz  <matz@suse.de>
14805
14806         PR c++/27975
14807         * c.opt (Wenum-compare): New warning option.
14808         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
14809
14810 2008-05-27  Michael Matz  <matz@suse.de>
14811
14812         PR middle-end/36326
14813         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
14814         non-BLKmode types.
14815         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
14816         into memory as tail calls.
14817
14818 2008-05-27  Richard Guenther  <rguenther@suse.de>
14819
14820         PR tree-optimization/36339
14821         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
14822         pointers cause all addressable variables to be call clobbered.
14823
14824 2008-05-27  Richard Guenther  <rguenther@suse.de>
14825
14826         PR tree-optimization/36245
14827         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
14828
14829 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
14830
14831         * config/s390/s390.md: Replace all occurences of the 'm'
14832         constraint with 'RT'.
14833
14834 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
14835
14836         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
14837         definitions added.
14838         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
14839         "*movdi_64".
14840         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
14841         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
14842         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
14843
14844 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
14845
14846         * reload.c: (find_reloads): Skip alternatives according to the
14847         "enabled" attribute. Constify the constraint variable.
14848         * recog.c (get_attr_enabled): Add default implementation.
14849         (extract_insn): Set the alternative_enabled_p array
14850         in the recog_data struct.
14851         (preprocess_constraints, constrain_operands): Skip
14852         alternatives according to the "enabled" attribute
14853         * recog.h (struct recog_data): New field alternative_enabled_p.
14854         (skip_alternative): New inline function.
14855         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
14856         (record_reg_classes): Skip alternative according to the
14857         "enabled" attribute.
14858
14859         * doc/md.texi: Add documention for the "enabled" attribute.
14860
14861 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
14862
14863         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
14864         * postreload.c (reload_cse_simplify_operands): Replace 'm'
14865         constraint with TARGET_MEM_CONSTRAINT.
14866         * recog.c (asm_operand_ok, preprocess_constraints,
14867         constrain_operands): Likewise.
14868         * regclass.c (record_reg_classes): Likewise.
14869         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
14870         * reload1.c (maybe_fix_stack_asms): Likewise.
14871         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
14872         * recog.h: Adjust comment.
14873         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
14874         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
14875         * doc/md.texi: Add a note to description of 'm' constraint.
14876         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
14877
14878 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
14879
14880         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
14881         that the bitfield is of integral type before testing its precision.
14882
14883 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
14884             Sa Liu  <saliu@de.ibm.com>
14885
14886         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
14887         __modti3, __udivti3, __umodti3 and __udivmodti4.
14888         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
14889         that implement TImode mul and div functions.
14890         * config/spu/multi3.c: New. Implement __multi3.
14891         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
14892         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
14893         functions on SPU.
14894
14895 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
14896
14897         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
14898         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
14899         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
14900         tls_sysv_suffix): New mode and mode attribute iterators.
14901         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
14902         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
14903         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
14904         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
14905         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
14906         iterators.
14907
14908 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
14909
14910         PR tree-optimization/36329
14911         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
14912         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
14913         * cgraphbuild.c (initialize_inline_failed): Use the latter
14914         macro in lieu of the former.
14915         * ipa-inline.c (cgraph_mark_inline): Likewise.
14916         (cgraph_decide_inlining_of_small_function): Likewise.
14917         (cgraph_decide_inlining): Likewise.
14918         (cgraph_decide_inlining_incrementally): Likewise.
14919
14920 2008-05-26  Tristan Gingold  <gingold@adacore.com>
14921             Anatoly Sokolov  <aesok@post.ru>
14922
14923         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
14924         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
14925         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
14926         optimization for 'avr6' architecture.
14927
14928 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
14929
14930         PR target/34932
14931         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
14932
14933 2008-05-26  Richard Guenther  <rguenther@suse.de>
14934
14935         * tree-ssa-sccvn.c (expr_has_constants): Declare.
14936         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
14937
14938 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
14939
14940         PR middle-end/36253
14941         * caller-save.c (insert_restore): Verify alignment of spill space.
14942         (insert_save): Likewise.
14943         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
14944         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
14945         (STACK_SLOT_ALIGNMENT): Likewise.
14946         * function.c (LOCAL_ALIGNMENT): Removed.
14947         (get_stack_local_alignment): New.
14948         (assign_stack_local): Use it.  Set alignment on stack slot.
14949         (assign_stack_temp_for_type): Use get_stack_local_alignment.
14950         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
14951         (STACK_SLOT_ALIGNMENT): New.
14952         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
14953         stack slot in XFmode.
14954
14955         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
14956
14957 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
14958
14959         PR/36321
14960         * config/i386/i386.md (allocate_stack_worker_64): Make sure
14961         argument operand in rax isn't removed.
14962
14963 2008-05-26  Richard Guenther  <rguenther@suse.de>
14964
14965         PR middle-end/36300
14966         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
14967         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
14968
14969 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
14970
14971         PR bootstrap/36331
14972         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
14973
14974 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
14975
14976         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
14977         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
14978
14979 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
14980
14981         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
14982         build a trampoline if we don't want one.
14983         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
14984         return zero for nested functions if we don't want a trampoline.
14985
14986 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
14987
14988         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
14989
14990 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
14991
14992         PR fortran/18428
14993         * c.opt: Removed undocumented option '-lang-fortran'.
14994         * c-common.h: Removed global variable 'lang_fortran'.
14995         * c-opts.c (c_common_handle_option): Removed code to handle
14996         option '-lang-fortran'. Updated includes.
14997         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
14998         definition of '__GFORTRAN__'.
14999         (define__GNUC__): Reimplemented to use BASEVER and
15000         cpp_define_formatted.
15001         (builtin_define_with_value_n): Removed.
15002         * c-incpath.h: Renamed to ...
15003         * incpath.h: ... this.
15004         * c-incpath.c: Renamed to ...
15005         * incpath.c: ... this. Updated includes.
15006         * fix-header.c: Updated includes.
15007         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
15008         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
15009         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
15010
15011 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15012
15013         * tree.h: Update the table of flags used on tree nodes.
15014         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
15015         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
15016         (FORCED_LABEL): Add access check.
15017         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
15018         (ASM_INPUT_P): Likewise.
15019         (ASM_VOLATILE_P): Likewise.
15020         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
15021         (OMP_SECTION_LAST): Access private_flag directly.
15022         (OMP_RETURN_NOWAIT): Likewise.
15023         (OMP_PARALLEL_COMBINED): Likewise.
15024         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
15025         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
15026         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
15027         deprecated_flag directly.
15028
15029 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
15030
15031         * final.c (frame_pointer_needed): Removed.
15032         * flags.h (frame_pointer_needed): Likewise.
15033
15034         * function.h (rtl_data): Add frame_pointer_needed.
15035         (frame_pointer_needed): New.
15036
15037 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
15038
15039         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
15040
15041 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
15042
15043         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
15044         SRC is a REG.
15045
15046 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
15047
15048         * c-common.c (strip_array_types): Move function to..
15049         * tree.c: ..here.
15050         (get_inner_array_type): Delete.
15051         * c-common.h (strip_array_types): Move declaration to..
15052         * tree.h: ..here.
15053         (get_inner_array_type): Delete.
15054         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
15055         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
15056         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
15057         * config/pa/pa.c (emit_move_sequence): Likewise.
15058
15059 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
15060
15061         * config/i386/i386.md (*sse_prologue_save_insn): Set length
15062         attribute to 34.
15063
15064 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
15065
15066         * function.c: Include target hook for nonlocal_goto frame value.
15067
15068 2008-05-24  Richard Guenther  <rguenther@suse.de>
15069
15070         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
15071         variable can be only accessed through a pointer or a union.
15072
15073 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15074
15075         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
15076         * doc/extend.texi: Likewise.
15077
15078 2008-05-23  DJ Delorie  <dj@redhat.com>
15079
15080         * config/m32c/jump.md (untyped_call): Add.
15081
15082         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
15083         for A24 to PSImode.
15084         (m32c_address_cost): Detail costs for indirect offsets.
15085
15086 2008-05-23  Rafael Espíndola  <espindola@google.com>
15087
15088         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
15089         if a node is a SUBREG.
15090         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
15091         is a SUBREG.
15092
15093 2008-05-23  Paul Brook  <paul@codesourcery.com>
15094             Carlos O'Donell  <carlos@codesourcery.com>
15095
15096         * doc/extend.texi: Clarify use of __attribute__((naked)).
15097         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
15098         * target.h (gcc_target): Add allocate_stack_slots_for_args.
15099         * function.c (use_register_for_decl): Use
15100         targetm.calls.allocate_stack_slots_for_args.
15101         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
15102         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
15103         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
15104
15105 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
15106
15107         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
15108
15109 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
15110
15111         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
15112         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
15113         is only rounded once.
15114
15115 2008-05-23  Richard Guenther  <rguenther@suse.de>
15116
15117         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
15118
15119 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
15120             Jakub Jelinek  <jakub@redhat.com>
15121
15122         PR target/36079
15123         * configure.ac: Handle --enable-cld.
15124         * configure: Regenerated.
15125         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
15126         * config/i386/i386.h (struct machine_function): Add needs_cld field.
15127         (ix86_current_function_needs_cld): New define.
15128         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
15129         (cld): New isns pattern.
15130         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
15131         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
15132         * config/i386/i386.opt (mcld): New option.
15133         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
15134         TARGET_CLD and ix86_current_function_needs_cld.
15135         (override_options): Use -mcld by default for 32-bit code if
15136         USE_IX86_CLD.
15137
15138         * doc/install.texi (Options specification): Document --enable-cld.
15139         * doc/invoke.texi (Machine Dependent Options)
15140         [i386 and x86-64 Options]: Add -mcld option.
15141         (Intel 386 and AMD x86-64 Options): Document -mcld option.
15142
15143 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
15144         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
15145         (return_in_memory_64): Likewise.
15146         (return_in_memory_ms_64): Likewise.
15147
15148 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15149
15150         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
15151         * builtins.c (fold_builtin_fpclassify): New.
15152         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
15153         * builtins.def (BUILT_IN_FPCLASSIFY): New.
15154         * c-common.c (handle_type_generic_attribute): Adjust to accept
15155         fixed arguments before an elipsis.
15156         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
15157         * doc/extend.texi: Document __builtin_fpclassify.
15158
15159 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
15160
15161         * omp-low.c (gate_expand_omp_ssa): Remove.
15162         (pass_expand_omp_ssa): Remove.
15163         (gate_expand_omp): Do not check for flag_openmp_ssa.
15164         * common.opt (-fopenmp-ssa): Remove.
15165         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
15166
15167 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
15168
15169         * config/sh/sh.opt (mfixed-range): New option.
15170         * config/sh/sh-protos.h (sh_fix_range): Declare.
15171         * config/sh/sh.c (sh_fix_range): New function.
15172         * config/sh/sh.h (sh_fixed_range_str): Declare.
15173         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
15174         is not empty.
15175         * doc/invoke.texi (SH Options): Document -mfixed-range.
15176
15177 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
15178
15179         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
15180         it before the redeclaration.
15181
15182 2008-05-22  Anatoly Sokolov <aesok@post.ru>
15183
15184         * config/avr/avr.c (get_sequence_length): Add new function.
15185         (expand_prologue, expand_epilogue): Remove duplicate code.
15186
15187 2008-05-22  Rafael Espíndola  <espindola@google.com>
15188
15189         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
15190         sharing.
15191
15192 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
15193
15194         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
15195         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
15196
15197         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
15198         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
15199         (vect_update_misalignment_for_peel): Likewise.
15200         (vector_alignment_reachable_p): Likewise.
15201         * tree-vect-transform.c (vectorizable_load): Likewise.
15202         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
15203         (get_vectype_for_scalar_type): Pass mode of scalar_type
15204         to UNITS_PER_SIMD_WORD.
15205
15206         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
15207         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
15208         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
15209         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
15210         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
15211
15212 2008-05-22  Ira Rosen  <irar@il.ibm.com>
15213
15214         PR tree-optimization/36293
15215         * tree-vect-transform.c (vect_transform_strided_load): Don't check
15216         if the first load must be skipped because of a gap.
15217
15218 2008-05-22  Richard Guenther  <rguenther@suse.de>
15219
15220         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
15221         more cases of offset disambiguation that is possible if
15222         strict-aliasing rules apply.
15223         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
15224         for basic offset and type-based disambiguation.
15225
15226 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15227
15228         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
15229         ix86_expand_vector_set on V16QImode for SSE4.1.
15230
15231 2008-05-21  Tom Tromey  <tromey@redhat.com>
15232
15233         * c.opt (Wimport): Mark as undocumented.
15234         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
15235         -Wno-import.
15236         (Warning Options): Likewise.
15237         * doc/cppopts.texi: Don't mention -Wimport.
15238
15239 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
15240
15241         PR tree-optimization/36287
15242         PR tree-optimization/36286
15243         * lambda-code.c (build_access_matrix): Do not use the loop->num
15244         for computing the number of induction variables: use the loop depth
15245         instead.
15246
15247 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
15248
15249         PR/36280
15250         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
15251         option -f(no-)leading-underscore.
15252
15253 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15254
15255         * config/i386/i386.c (ix86_expand_vector_init_general): Use
15256         GET_MODE_NUNITS (mode).
15257
15258 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
15259
15260         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
15261         (-mmulhw): Add 464 to description.
15262         (-mdlmzb): Likewise.
15263         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
15264         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
15265         464fp entries.
15266         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
15267         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
15268         * config/rs6000/rs6000.md: Update comments for 464.
15269
15270 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
15271
15272         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
15273
15274 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15275
15276         * config/i386/sse.md (vec_extractv4sf): Removed.
15277         (vec_extractv2df): Likewise.
15278         (vec_extractv2di): Likewise.
15279         (vec_extractv4si): Likewise.
15280         (vec_extractv8hi): Likewise.
15281         (vec_extractv16qi): Likewise.
15282         (vec_extract<mode>): New.
15283
15284 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15285
15286         * config/i386/sse.md (vec_setv4sf): Removed.
15287         (vec_setv2df): Likewise.
15288         (vec_setv2di): Likewise.
15289         (vec_setv4si): Likewise.
15290         (vec_setv8hi): Likewise.
15291         (vec_setv16qi): Likewise.
15292         (vec_set<mode>): New.
15293
15294 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15295
15296         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
15297         goto for vec_concat and vec_interleave.
15298
15299 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
15300
15301         * config/i386/sse.md (vec_initv4sf): Removed.
15302         (vec_initv2df): Likewise.
15303         (vec_initv2di): Likewise.
15304         (vec_initv4si): Likewise.
15305         (vec_initv8hi): Likewise.
15306         (vec_initv16qi): Likewise.
15307         (vec_init<mode>): New.
15308
15309 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
15310
15311         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
15312
15313 2008-05-21  Tom Tromey  <tromey@redhat.com>
15314
15315         * ggc-zone.c (lookup_page_table_if_allocated): New function.
15316         (zone_find_object_offset): Likewise.
15317         (gt_ggc_m_S): Likewise.
15318         (highest_bit): Likewise.
15319         * ggc-page.c (gt_ggc_m_S): New function.
15320         * stringpool.c (string_stack): Remove.
15321         (init_stringpool): Update.
15322         (ggc_alloc_string): Use ggc_alloc.
15323         (maybe_delete_ident): New function.
15324         (ggc_purge_stringpool): Likewise.
15325         (gt_ggc_m_S): Remove.
15326         * ggc-common.c (ggc_protect_identifiers): New global.
15327         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
15328         ggc_protect_identifiers.
15329         * ggc.h (ggc_protect_identifiers): Declare.
15330         (gt_ggc_m_S): Update.
15331         (ggc_purge_stringpool): Declare.
15332         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
15333         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
15334         special case.
15335         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
15336
15337 2008-05-21  David S. Miller  <davem@davemloft.net>
15338
15339         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
15340         tmake_file.
15341
15342 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
15343
15344         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
15345         once finished.
15346
15347 2008-05-20  David Daney  <ddaney@avtrex.com>
15348
15349         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
15350         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
15351         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
15352         UNSPEC_UPDATE_GOT_VERSION): Renumber.
15353         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
15354         (atomic_hiqi_op): New define_code_iterator.
15355         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
15356         mips_expand_compare_and_swap_12.
15357         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
15358         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
15359         (sync_<optab><mode>, sync_old_<optab><mode>,
15360         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
15361         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
15362         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
15363         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
15364         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
15365         (test_and_set_12): New insn.
15366         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
15367         sync_new_<optab><mode>, sync_old_nand<mode>,
15368         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
15369         clobber to operand 0 for SI and DI mode insns.
15370         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
15371         mips_gen_fn_4): New typedefs.
15372         (mips_gen_fn_ptrs): Define new union type.
15373         (mips_expand_compare_and_swap_12): Remove declaration.
15374         (mips_expand_atomic_qihi): Declare function.
15375         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
15376         (mips_expand_atomic_qihi): ... this.  Use new generator function
15377         parameter.
15378         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
15379         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
15380         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
15381         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
15382         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
15383         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
15384         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
15385         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
15386         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
15387         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
15388         New macros.
15389
15390 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
15391
15392         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
15393         the missing break.
15394
15395 2008-05-20  Anatoly Sokolov <aesok@post.ru>
15396
15397         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
15398         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
15399         (avr_attribute_table): Add 'OS_main' function attribute.
15400         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
15401         functions with 'OS_main' attribute.
15402
15403 2008-05-20  Richard Guenther  <rguenther@suse.de>
15404
15405         PR tree-optimization/35204
15406         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
15407         helper, split out from ...
15408         (DFS): ... here.  Make the DFS walk non-recursive.
15409
15410 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
15411             Jan Sjodin  <jan.sjodin@amd.com>
15412
15413         PR tree-optimization/36181
15414         * tree-parloops.c (loop_has_vector_phi_nodes): New.
15415         (parallelize_loops): Don't parallelize when the loop has vector
15416         phi nodes.
15417
15418 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
15419             Sebastian Pop  <sebastian.pop@amd.com>
15420
15421         * tree-loop-linear.c (gather_interchange_stats): Look in the access
15422         matrix, and never look at the tree representation of the memory
15423         accesses.
15424         (linear_transform_loops): Computes parameters and access matrices.
15425         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
15426         when fails.
15427         (access_matrix_get_index_for_parameter): New.
15428         * tree-data-ref.h (struct access_matrix): New.
15429         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
15430         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
15431         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
15432         am_vector_index_for_loop): New.
15433         (struct data_reference): Add field access_matrix.
15434         (DR_ACCESS_MATRIX): New.
15435         (compute_data_dependences_for_loop): Update declaration.
15436         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
15437         * lambda.h (lambda_vector_vec_p): Declared.
15438         * lambda-code.c: Depend on pointer-set.h.
15439         (lambda_collect_parameters_from_af, lambda_collect_parameters,
15440         av_for_af_base, av_for_af, build_access_matrix,
15441         lambda_compute_access_matrices): New.
15442         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
15443
15444 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
15445
15446         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
15447         $SOURCEDIR/include.
15448
15449 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
15450             Sebastian Pop  <sebastian.pop@amd.com>
15451
15452         PR tree-optimization/36206
15453         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
15454         FOLD_CONVERSIONS.
15455         (instantiate_scev_1): Rename flags to fold_conversions.
15456         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
15457         outeside instantiation_loop.
15458         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
15459         (evolution_function_is_affine_or_constant_p): Removed.
15460         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
15461         instantiate_scev.
15462         (analyze_siv_subscript): Pass in the loop nest number.
15463         Call evolution_function_is_affine_in_loop instead of
15464         evolution_function_is_affine_p.
15465         (analyze_overlapping_iterations): Pass in the loop nest number.
15466
15467 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
15468             Sebastian Pop  <sebastian.pop@amd.com>
15469
15470         PR tree-optimization/36206
15471         * tree-chrec.h (chrec_fold_op): New.
15472         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
15473         and other trees.
15474
15475 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
15476
15477         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
15478         (DIRS_EQ): New.
15479         (remove_duplicates): Do not set inode on non-inode systems.
15480         Use DIRS_EQ.
15481
15482 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
15483
15484         * config.gcc (tm_file): Update comments about relative pathnames.
15485
15486 2008-05-20  Richard Guenther  <rguenther@suse.de>
15487
15488         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
15489         * tree-ssa-sccvn.c (process_scc): Likewise.
15490         * tree-ssa-sink.c (execute_sink_code): Likewise.
15491         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
15492         * tree-vrp.c (process_assert_insertions): Likewise.
15493         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
15494         (perform_tree_ssa_dce): Likewise.
15495         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
15496         (dump_dominator_optimization_stats): Likewise.
15497         * tree-vectorizer.c (vectorize_loops): Likewise.
15498
15499 2008-05-20  Richard Guenther  <rguenther@suse.de>
15500
15501         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
15502
15503 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
15504
15505         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
15506         (ix86_i386elf_return_in_memory): Likewise.
15507         (ix86_i386interix_return_in_memory): Likewise.
15508         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
15509         (SUBTARGET_RETURN_IN_MEMORY): New.
15510         * config/i386/i386elf.h: Likewise.
15511         * config/i386/ptx4-i.h: Likewise.
15512         * config/i386/sol2-10.h: Likewise.
15513         * config/i386/sysv4.h: Likewise.
15514         * config/i386/vx-common.h: Likewise.
15515         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
15516         * config/i386/i386.c (ix86_return_in_memory): Made static and
15517         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
15518         (ix86_i386elf_return_in_memory): Removed.
15519         (ix86_i386interix_return_in_memory): Removed.
15520         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
15521         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
15522
15523 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
15524
15525         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
15526
15527 2008-05-19  Xinliang David Li  <davidxl@google.com>
15528
15529         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
15530         * opts.c: Ditto.
15531         * common.opt: Ditto.
15532         * doc/invoke.texi: Ditto.
15533
15534 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
15535
15536         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
15537         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
15538
15539 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
15540
15541         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
15542         sizes of operand array from 8/4 to 4/2.
15543         (ix86_expand_vector_init_general): Change size of operand array
15544         from 32 to 16.  Remove op0, op1 and half_mode.
15545
15546 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
15547
15548         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
15549         (ix86_expand_vector_init_interleave): Likewise.
15550         (ix86_expand_vector_init_general): Use them.  Assert
15551         word_mode == SImode when n_words == 4.
15552
15553 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
15554
15555         * config/i386/i386.c (ix86_secondary_reload): New static function.
15556         (TARGET_SECONDARY_RELOAD): New define.
15557         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
15558         * config/i386/i386.md (reload_outqi): Remove.
15559
15560 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15561
15562         PR middle-end/35509
15563         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
15564         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
15565         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
15566         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
15567         (fold_builtin_1): Likewise.
15568         * builtins.def (BUILT_IN_ISINF_SIGN): New.
15569         c-common.c (check_builtin_function_arguments): Handle
15570         BUILT_IN_ISINF_SIGN.
15571         * doc/extend.texi: Document __builtin_isinf_sign.
15572         * fold-const.c (operand_equal_p): Handle COND_EXPR.
15573
15574 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
15575
15576         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
15577         EH cleanup at the end of the pass, search for those that have been
15578         turned into forwarder blocks and do the cleanup on their successor.
15579
15580 2008-05-18  Richard Guenther  <rguenther@suse.de>
15581
15582         * tree-cfg.c (verify_gimple_expr): Allow conversions from
15583         pointers to sizetype and vice versa.
15584
15585 2008-05-18 Xinliang David Li   <davidxl@google.com>
15586
15587         * gcc/tree-ssa-dce.c: Coding style fix.
15588         (check_pow): Documentation comment.
15589         (check_log): Documenation comment. Coding style fix.
15590         (is_unnecessary_except_errno_call): Ditto.
15591         (gen_conditions_for_pow): Ditto.
15592         (gen_conditions_for_log): Ditto.
15593         (gen_shrink_wrap_conditions): Ditto.
15594         (shrink_wrap_one_built_in_calls): Ditto.
15595         * gcc/doc/invoke.texi: Better documentation string.
15596         * ChangeLog: Fix wrong change log entries from
15597         May 17 checkin on function call DCE.
15598
15599 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
15600
15601         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
15602
15603 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
15604
15605         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
15606         * df-problems.c (simulation routines): Fixed block comment to
15607         properly say how to add forwards scanning functions.
15608
15609 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
15610
15611         * tree-inline.c (setup_one_parameter): Remove dead code.
15612
15613 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
15614
15615         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
15616         a BIT_AND_EXPR only for an INTEGER_TYPE.
15617
15618 2008-05-17 Xinliang David Li   <davidxl@google.com>
15619
15620         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
15621         (check_pow, check_log, is_unnecessary_except_errno_call): New
15622         functions to check for eliminating math functions that are pure
15623         except for setting errno.
15624         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
15625         general condition expressions for shrink-wrapping pow/log calls.
15626         (gen_shrink_wrap_conditions): Ditto.
15627         (shrink_wrap_one_built_in_call): Ditto.
15628         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
15629         (mark_operand_necessary): If debugging, output if OP is necessary.
15630         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
15631         unnecessary.
15632         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
15633         opt level >= 2.
15634         * gcc/common.opt: New user flag -ftree-builtin-dce.
15635         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
15636
15637 2008-05-16  David S. Miller  <davem@davemloft.net>
15638
15639         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
15640         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
15641
15642 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
15643
15644         PR target/36246
15645         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
15646
15647 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
15648
15649         * ifcvt.c (dead_or_predicable): Rename
15650         df_simulate_one_insn_backwards to df_simulate_one_insn.
15651         * recog.c (peephole2_optimize): Ditto.
15652         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
15653         Ditto.
15654         * df.h: Rename df_simulate_one_insn_backwards to
15655         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
15656         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
15657         scanning of defs and uses.
15658         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
15659         (df_simulate_one_insn_forwards): Removed.
15660
15661 2008-05-16  Doug Kwan  <dougkwan@google.com>
15662
15663         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
15664         QNaN & SNaN.
15665         (real_from_string): Handle NaNs and Inf as approriate.
15666
15667 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
15668
15669         * doc/gty.texi (Source Files Containing Type Information): Note
15670         that headers should appear first in the gtfiles list.
15671
15672 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
15673
15674         * tree.def (COND_EXEC): Properly documented this code.
15675
15676 2008-05-16  Diego Novillo  <dnovillo@google.com>
15677
15678         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
15679         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
15680         the new field.
15681
15682 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
15683
15684         * tree-ssa-dse (max_stmt_uid): Removed.
15685         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
15686         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
15687         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
15688         * function.h (cfun.last_stmt_uid): New field.
15689         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
15690         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
15691         New functions.
15692         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
15693         (create_stmt_ann): Initialize the ann->uid field.
15694         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
15695         with new calls.
15696         * tree-flow.h (renumber_gimple_stmt_uids): New function.
15697
15698 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
15699
15700         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
15701         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
15702         (init_empty_tree_cfg): Call it.
15703
15704 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
15705
15706         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
15707         Update all users.
15708
15709 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
15710
15711         * doc/invoke.text (-fdump-tree-*-verbose): New option.
15712         * tree-dump.c (dump_options): New verbose option.
15713         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
15714         Add verbose dump.
15715         * tree-pass.h (TDF_VERBOSE): New dump flag.
15716         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
15717         (tree-flow.h): Added include.
15718         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
15719
15720 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
15721
15722         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
15723
15724         From Jie Zhang  <jie.zhang@analog.com>
15725         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
15726         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
15727         mcpu=bf561-none and mcpu=bf561-0.2.
15728         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
15729         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
15730         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
15731         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
15732         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
15733         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
15734         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
15735         option.
15736         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
15737         (cputype_selected): Remove.
15738         (bfin_handle_option): Don't use cputype_selected.
15739         (override_options): When no mcpu option, enable all workarounds.
15740         Don't use bfin_workarounds.
15741         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
15742         processor type.
15743         (DEFAULT_CPU_TYPE): Don't define.
15744
15745 2008-05-16  Richard Guenther  <rguenther@suse.de>
15746
15747         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
15748         on deletion of the last stmt.
15749
15750 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
15751
15752         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
15753         V8HImode for SSE2 and V16QImode for SSE4.1.
15754
15755 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
15756
15757         * cgraph.h (compute_inline_parameters): Made public.
15758         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
15759         variable_generate_summary, function_write_summary,
15760         variable_write_summary, variable_read_summary.  Added generate_summary,
15761         write_summary, read_summary.
15762         * cgraphunit.c (cgraph_process_new_functions): Changed call from
15763         pass_ipa_inline.function_generate_summary, to
15764         compute_inline_parameters.
15765         * ipa-inline.c (compute_inline_parameters): Made public and added
15766         node parameter.
15767         (compute_inline_parameters_for_current): New function.
15768         (pass_inline_param): Now calls compute_inline_parameters_for_current.
15769         (inline_generate_summary): Removed parameter and made to loop over
15770         all cgraph nodes.
15771         (pass_ipa_inline): Updated for new IPA_PASS structure.
15772         * passes.c (execute_ipa_summary_passes): Now is called once per
15773         pass rather than once per node*pass.
15774
15775 2008-05-15  Anatoly Sokolov <aesok@post.ru>
15776
15777         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
15778         avr_have_mul_p, avr_asm_only_p): Remove variables.
15779         (avr_override_options): Remove initialization of removed variables.
15780         (avr_file_start):  Convert removed variables to fields of
15781         'struct base_arch_s *avr_current_arch'.
15782         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
15783         (AVR_HAVE_MUL): (Ditto.).
15784         (AVR_HAVE_MOVW): (Ditto.).
15785         (AVR_HAVE_LPMX): (Ditto.).
15786         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
15787         avr_asm_only_p): Remove declaration.
15788
15789 2008-05-15  Diego Novillo  <dnovillo@google.com>
15790
15791         * config/arm/arm.c (arm_return_in_memory): Fix return type.
15792         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
15793
15794 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
15795
15796         PR middle-end/36194
15797         * combine.c (check_conversion): Rename back to check_promoted_subreg.
15798         Don't call record_truncated_value from here.
15799         (record_truncated_value): Turn it into a for_each_rtx callback.
15800         (record_truncated_values): New function.
15801         (combine_instructions): Call note_uses with record_truncated_values.
15802         Change name of check_conversion to check_promoted_subreg.
15803
15804 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
15805
15806         * doc/sourcebuild.texi: Document support for torture tests.
15807
15808 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
15809
15810         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
15811         to alternative 4 of operand 2.
15812
15813 2008-05-15  Richard Guenther  <rguenther@suse.de>
15814
15815         * tree-pass.h (current_pass): Declare.
15816         (get_pass_for_id): Likewise.
15817         * passes.c (passes_by_id, passes_by_id_size): New globals.
15818         (set_pass_for_id): New function.
15819         (get_pass_for_id): Likewise.
15820         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
15821         (execute_function_todo): Flush per function statistics.
15822         * toplev.c (compile_file): Init statistics.
15823         (general_init): Do early statistics initialization.
15824         (finalize): Finish statistics.
15825         * statistics.h (statistics_early_init): Declare.
15826         (statistics_init): Likewise.
15827         (statistics_fini): Likewise.
15828         (statistics_fini_pass): Likewise.
15829         (statistics_counter_event): Likewise.
15830         (statistics_histogram_event): Likewise.
15831         * statistics.c: New file.
15832         * Makefile.in (OBJS-common): Add statistics.o.
15833         (statistics.o): Add dependencies.
15834         * doc/invoke.texi (-fdump-statistics): Document.
15835
15836         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
15837         (insert): Likewise.
15838         (execute_pre): Use statistics_counter_event.
15839         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
15840         (substitute_and_fold): Increment it.  Use statistics_counter_event.
15841
15842 2008-05-15  Diego Novillo  <dnovillo@google.com>
15843
15844         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
15845
15846         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
15847         * tree-ssa-alias.c (new_type_alias): Remove references to
15848         sub-variables from comment.
15849         * tree-ssa-operands.c (swap_tree_operands): Likewise.
15850
15851 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
15852
15853         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
15854         attribute to 1 only for insertps alternative.
15855
15856 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
15857
15858         * config/bfin/bfin.md (loadbytes): New pattern.
15859         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
15860         (bfin_init_builtins): Initialize it.
15861         (bdesc_1arg): Add it.
15862
15863 2008-05-15  Sa Liu  <saliu@de.ibm.com>
15864
15865         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
15866         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
15867         * testsuite/lib/target-supports.exp: Add
15868         check_effective_target_fortran_integer_16.
15869
15870 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
15871
15872         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
15873         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
15874         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
15875         (TARGET_RETURN_IN_MEMORY): Define.
15876
15877 2008-05-15  Richard Guenther  <rguenther@suse.de>
15878
15879         PR middle-end/36244
15880         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
15881         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
15882         represent unmodifiable vars.
15883
15884 2008-05-15  Richard Guenther  <rguenther@suse.de>
15885
15886         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
15887         INDIRECT_REF and TARGET_MEM_REF.
15888         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
15889         TARGET_MEM_REF.
15890
15891 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
15892             H.J. Lu  <hongjiu.lu@intel.com>
15893
15894         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
15895         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
15896         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
15897         insn alternatives.  Add missing alternatives.
15898         (*vec_concatv2di_rex64_sse4_1): Likewise.
15899         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
15900         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
15901         Require TARGET_SSE.
15902
15903 2008-05-15  Richard Guenther  <rguenther@suse.de>
15904
15905         PR tree-optimization/36009
15906         PR tree-optimization/36204
15907         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
15908         (determine_invariantness_stmt): Record the loop a store is
15909         always executed in.
15910         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
15911         dependency.
15912
15913 2008-05-15  Richard Guenther  <rguenther@suse.de>
15914
15915         PR tree-optimization/34330
15916         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
15917         through the pointer will alias the SMT.
15918
15919 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
15920
15921         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
15922
15923 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
15924
15925         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
15926
15927 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
15928             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
15929
15930         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
15931         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
15932         (vashl_optab): New optab for vector/vector shifts.
15933         (vashr_optab): Ditto.
15934         (vlshr_optab): Ditto.
15935         (vrotl_optab): Ditto.
15936         (vrotr_optab): Ditto.
15937         (optab_subtype): New enum for optab_for_tree_code call.
15938         (optab_for_tree_code): Add enum optab_subtype argument.
15939
15940         * optabs.c (optab_for_tree_code): Take an additional argument to
15941         distinguish between a vector shift by a scalar and vector shift by
15942         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
15943         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
15944         vector shift by a vector.
15945         (expand_widen_pattern_expr): Pass additional argument to
15946         optab_for_tree_code.
15947
15948         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
15949         vrotl_optab, vrotr_optab.
15950
15951         * expr.c (expand_expr_real_1): Update calls to
15952         optab_for_tree_code to distinguish between vector shifted by a
15953         scalar and vector shifted by a vector.
15954         * tree-vectorizer.c (supportable_widening_operation): Ditto.
15955         (supportable_narrowing_operation): Ditto.
15956         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
15957         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
15958         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
15959         (vect_create_epilog_for_reduction): Ditto.
15960         (vectorizable_reduction): Ditto.
15961         (vectorizable_operation): Ditto.
15962         (vect_strided_store_supported): Ditto.
15963         (vect_strided_load_supported): Ditto.
15964         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
15965         * expmed.c (expand_shift): Ditto.
15966
15967         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
15968         scalar type.
15969         (ashr@var{m}3): Ditto.
15970         (vashl@var{m}3): Document new vector/vector shift standard name.
15971         (vashr@var{m}3): Ditto.
15972         (vlshr@var{m}3): Ditto.
15973         (vrotl@var{m}3): Ditto.
15974         (vrotr@var{m}3): Ditto.
15975
15976         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
15977         (PPERM_INVERT): Ditto.
15978         (PPERM_REVERSE): Ditto.
15979         (PPERM_REV_INV): Ditto.
15980         (PPERM_ZERO): Ditto.
15981         (PPERM_ONES): Ditto.
15982         (PPERM_SIGN): Ditto.
15983         (PPERM_INV_SIGN): Ditto.
15984         (PPERM_SRC1): Ditto.
15985         (PPERM_SRC2): Ditto.
15986
15987         * config/i386/sse.md (mulv2di3): Add SSE5 support.
15988         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
15989         allows a memory operand to be the value being added, and split it
15990         to improve vectorization.
15991         (sse5_pmacsdqh_mem): Ditto.
15992         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
15993         (sse5_mulv2div2di3_high): Ditto.
15994         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
15995         (vec_pack_trunc_v4si): Ditto.
15996         (vec_pack_trunc_v2di): Ditto.
15997         (sse5_pcmov_<mode>): Remove code that tried to use use
15998         andps/andnps instead of pcmov.
15999         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
16000         pmacsdqh instructions.
16001         (vec_widen_smult_lo_v4si): Ditto.
16002
16003         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
16004         (PPERM_INVERT): Ditto.
16005         (PPERM_REVERSE): Ditto.
16006         (PPERM_REV_INV): Ditto.
16007         (PPERM_ZERO): Ditto.
16008         (PPERM_ONES): Ditto.
16009         (PPERM_SIGN): Ditto.
16010         (PPERM_INV_SIGN): Ditto.
16011         (PPERM_SRC1): Ditto.
16012         (PPERM_SRC2): Ditto.
16013         (ix86_expand_sse_movcc): Move the SSE5 test after the if
16014         true/false tests.
16015         (ix86_expand_int_vcond): If SSE5 generate all possible integer
16016         comparisons.
16017         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
16018         says ignore whether the last reference is a memory operand.
16019
16020 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
16021             Paolo Bonzini <bonzini at gnu dot org>
16022
16023         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
16024         shift patterns.
16025
16026         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
16027         (vlshr<mode>3): Rename from vlshr<mode>3.
16028         (vashr<mode>3): Rename from vashr<mode>3.
16029         (mulv4sf3): Change the names of vector shift patterns.
16030         (mulv4si3): Ditto.
16031         (negv4sf2): Ditt.
16032
16033         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
16034         shift insns.
16035
16036         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
16037         (SI_SHLHI): Ditto.
16038         (SI_SHL): Ditto.
16039         (SI_SHLI): Ditto.
16040         (SI_ROTH): Ditto.
16041         (SI_ROTHI): Ditto.
16042         (SI_ROT): Ditto.
16043         (SI_ROTI): Ditto.
16044         (SPU_RL_0): Ditto.
16045         (SPU_RL_1): Ditto.
16046         (SPU_RL_2): Ditto.
16047         (SPU_RL_3): Ditto.
16048         (SPU_RL_4): Ditto.
16049         (SPU_RL_5): Ditto.
16050         (SPU_RL_6): Ditto.
16051         (SPU_RL_7): Ditto.
16052         (SPU_SL_0): Ditto.
16053         (SPU_SL_1): Ditto.
16054         (SPU_SL_2): Ditto.
16055         (SPU_SL_3): Ditto.
16056         (SPU_SL_4): Ditto.
16057         (SPU_SL_5): Ditto.
16058         (SPU_SL_6): Ditto.
16059         (SPU_SL_7): Ditto.
16060
16061         * config/spu/spu.md (v): New iterator macro to add v for vector types.
16062         (floatunssidf2_internal): Change vector/vector shift names.
16063         (floatunsdidf2_internal): Ditto.
16064         (mulv8hi3): Ditto.
16065         (ashrdi3): Ditto.
16066         (ashrti3): Ditto.
16067         (cgt_df): Ditto.
16068         (cgt_v2df): Ditto.
16069         (dftsv): Ditto.
16070         (vashl<mode>3): Rename from ashl<mode>3.
16071         (vashr<mode>3): Rename from ashr<mode>3.
16072         (vlshr<mode>3): Rename from lshr<mode>3.
16073         (vrotl<mode>3): Rename from rotl<mode>3.
16074
16075 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
16076
16077         PR target/36224
16078         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
16079         multiply gives the wrong value when doing widening multiplies.
16080         (vec_widen_smult_lo_v4si): Ditto.
16081
16082 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
16083
16084         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
16085         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
16086         emit_library_call_value.
16087         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
16088         * tree.h (ECF_LIBCALL_BLOCK): Removed.
16089         * calls.c (initialize_argument_information, precompute_arguments,
16090         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
16091         (precompute_arguments): Removed flags parameter.
16092         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
16093
16094 2008-05-14  Richard Guenther  <rguenther@suse.de>
16095
16096         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
16097         Make sure to register the store if the use is a PHI_NODE.
16098
16099 2008-05-14  Olivier Hainque  <hainque@adacore.com>
16100
16101         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
16102         memory if the component is to be referenced in BLKmode according
16103         to get_inner_reference.
16104
16105 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
16106
16107         * calls.c (emit_library_call_value_1): Restore code clearing
16108         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
16109
16110 2008-05-14  Olivier Hainque  <hainque@adacore.com>
16111             Nicolas Roche  <roche@adacore.com>
16112
16113         * configure.ac: Add support for a "gcc_subdir" variable in
16114         config-lang.in, to denote a subdirectory where the language/GCC
16115         integration files are to be found.
16116         * configure: Regenerate.
16117
16118 2008-05-14  Ira Rosen  <irar@il.ibm.com>
16119
16120         PR tree-optimization/36098
16121         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
16122         value for the first load in the group in case of a gap.
16123         (vect_build_slp_tree): Check that there are no gaps in loads.
16124
16125 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
16126
16127         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
16128         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
16129         expand_copysign_bit, ): Change call to emit_no_conflict_block to
16130         emit_insn and remove unneeded code to construct extra args.
16131         (emit_no_conflict_block): Removed.
16132         * optabls.h: (emit_no_conflict_block): Removed.
16133         * cse.c (cse_extended_basic_block): Remove search for
16134         REG_NO_CONFLICT note.
16135         * global.c: Removed incorrect comment added in revision 117.
16136         * expr.c (convert_move): Change call to emit_no_conflict_block to
16137         emit_insn.
16138         * recog.c: Change comments so that they do not mention
16139         REG_NO_CONFLICT.
16140         * local_alloc.c (combine_regs): Removed last parameter.
16141         (no_conflict_p): Removed.
16142         (block_alloc): Removed note, no_conflict_combined_regno and set
16143         local vars. Removed all code to process REG_NO_CONFLICT blocks.
16144         (combine_regs): Removed already_dead and code to look for
16145         REG_NO_CONFLICT notes.
16146         * lower_subreg (remove_retval_note): Removed code to look for
16147         REG_NO_CONFLICT block.
16148         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
16149         (resolve_clobber): Remove code to process libcalls that have
16150         REG_NO_CONFLICT notes.
16151         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
16152         case.
16153         * combine.c (can_combine_p, distribute_notes):  Removed
16154         REG_NO_CONFLICT case.
16155         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
16156         to emit_insns.
16157         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
16158         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
16159         Ditto.
16160         * reg-notes.def (NO_CONFLICT): Removed.
16161
16162 2008-05-14  David S. Miller  <davem@davemloft.net>
16163
16164         * config/sparc/sparc.c (sparc_profile_hook): If
16165         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
16166         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
16167         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
16168
16169 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
16170
16171         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
16172
16173 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
16174
16175         PR target/36222
16176         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
16177         and op1 expansion before vector concat to have less live pseudos.
16178
16179 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
16180
16181         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
16182         ix86_expand_vector_set if supported.
16183
16184 2008-05-13  Diego Novillo  <dnovillo@google.com>
16185             Kenneth Zadeck  <zadeck@naturalbridge.com>
16186
16187         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
16188
16189         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
16190         phinodes_print_statistics, init_ssanames, fini_ssanames,
16191         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
16192         release_ssa_name, release_defs, replace_ssa_name_symbol,
16193         ssanames_print_statistics): Move ...
16194         * tree-flow.h: ... here.
16195         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
16196         Use FN instead of cfun.
16197         (make_ssa_name_fn): Rename from make_ssa_name.
16198         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
16199         * tree-flow-inline.h (make_ssa_name): Move from
16200         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
16201         * omp-low.c (expand_omp_parallel):
16202         * tree-flow-inline.h (redirect_edge_var_map_result):
16203         * tree-ssa.c (init_tree_ssa): Add argument FN.
16204         Use it instead of cfun.  Update all users.
16205
16206 2008-05-13  Tom Tromey  <tromey@redhat.com>
16207
16208         PR preprocessor/22168:
16209         * doc/cpp.texi (Top): Update menu.
16210         (Alternatives to Wrapper #ifndef): New node.
16211         (Other Directives): Document deprecation.
16212         (Obsolete Features): Remove menu.
16213         (Assertions): Merge node into Obsolete Features.
16214         (Obsolete once-only headers): Move earlier; rename to Alternatives
16215         to Wrapper #ifndef.
16216         * doc/cppopts.texi: Update.
16217         * c.opt (Wdeprecated): Enable for C and ObjC.
16218         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
16219         (C++ Dialect Options): Move -Wno-deprecated from here to...
16220         (Warning Options): ... here.
16221
16222 2008-05-13  Richard Guenther  <rguenther@suse.de>
16223
16224         PR middle-end/36227
16225         * fold-const.c (fold_sign_changed_comparison): Do not allow
16226         changes in pointer-ness.
16227
16228 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
16229
16230         PR target/24713
16231         * config/sh/sh.c (sh_expand_prologue): Don't clear
16232         RTX_FRAME_RELATED_P for push insns.
16233
16234 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
16235
16236         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
16237
16238 2008-05-12  Anatoly Sokolov <aesok@post.ru>
16239
16240         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
16241         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
16242         Use 'machine->is_leaf' instead of 'leaf_func_p'.
16243
16244 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
16245
16246         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
16247         (*vec_concatv4sf_sse): This.
16248         (*sse2_concatv2si): Renamed to ...
16249         (*vec_concatv2si_sse2): This.
16250         (*sse1_concatv2si): Renamed to ...
16251         (*vec_concatv2si_sse): This.
16252         (*vec_concatv2di_rex): Renamed to ...
16253         (*vec_concatv2di_rex64): This.
16254         (*vec_concatv2si_sse4_1): New.
16255         (*vec_concatv2di_rex64_sse4_1): Likewise.
16256
16257 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
16258
16259         PR rtl-optimization/36111
16260         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
16261         that was created for swappable operands.
16262
16263 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
16264
16265         PR ada/36001
16266         * Makefile.in: Substitute GNATMAKE and GNATBIND.
16267         * configure.ac: Add call to ACX_PROG_GNAT.
16268
16269 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
16270
16271         * optc-gen.awk: Fix comment typo.
16272
16273 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
16274
16275         * pretty-print.c (pp_integer_with_precision): Use
16276         HOST_LONG_LONG_FORMAT.
16277
16278 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
16279
16280         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
16281
16282 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
16283
16284         * config/i386/i386.c (bdesc_ptest): Removed.
16285         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
16286         (bdesc_args): Add __builtin_ia32_ptestz128,
16287         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
16288         (ix86_init_mmx_sse_builtins): Updated.
16289         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
16290         (ix86_expand_builtin): Updated.
16291
16292 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
16293
16294         * tree-cfg.c (valid_fixed_convert_types_p): New function.
16295         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
16296
16297 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
16298
16299         * value-prof.c (interesting_stringop_to_profile): Do not
16300         return early for BUILT_IN_MEMPCPY.
16301
16302 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
16303
16304         * calls.c (expand_call): Don't use callgraph to increase
16305         preferred_stack_boundary.
16306
16307         * cgraph.h (cgraph_rtl_info): Use unsigned on
16308         preferred_incoming_stack_boundary.
16309
16310         * final.c (rest_of_clean_state): Use unsigned on
16311         preferred_stack_boundary.
16312
16313 2008-05-09  Tom Tromey  <tromey@redhat.com>
16314
16315         PR preprocessor/22231:
16316         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
16317         proceeding.
16318
16319 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
16320
16321         PR tree-optimization/36129
16322         * tree-ssa-ccp.c: Include value-prof.h.
16323         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
16324         built-in function was folded to a constant.
16325         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
16326
16327 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
16328             Sebastian Pop  <sebastian.pop@amd.com>
16329
16330         * tree-scalar-evolution.c: Document instantiate_scev.
16331         (instantiate_parameters_1): Renamed instantiate_scev_1.
16332         Don't use the same loop for instantiation_loop and evolution_loop.
16333         (instantiate_scev): New.
16334         (instantiate_parameters): Moved...
16335         (resolve_mixers): Update call to instantiate_scev_1 to pass the
16336         same loop twice.  Maintains the semantics for this function.
16337         * tree-scalar-evolution.h (instantiate_scev): Declare.
16338         (instantiate_parameters): ...here.  Now static inline.
16339         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
16340         instead of resolve_mixers.
16341
16342 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
16343
16344         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
16345
16346 2008-05-09  Tomas Bily  <tbily@suse.cz>
16347
16348         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
16349         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
16350         * tree-ssa-structalias.c (get_constraint_for): Likewise.
16351         * c-common.c (c_common_truthvalue_conversion): Likewise.
16352         * tree-object-size.c (compute_object_offset): Likewise.
16353         * tree-inline.c (estimate_num_insns_1): Likewise.
16354         * varasm.c (const_hash_1, compare_constant, copy_constant)
16355         (compute_reloc_for_constant, output_addressed_constants)
16356         (initializer_constant_valid_p): Likewise.
16357         * c-omp.c (check_omp_for_incr_expr): Likewise.
16358         * gimplify.c (gimplify_expr): Likewise.
16359         * c-typeck.c (c_finish_return): Likewise.
16360         * tree-vectorizer.c (supportable_widening_operation)
16361         (supportable_narrowing_operation): Likewise.
16362         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
16363         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
16364         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
16365         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
16366         (descr_info_loc): Likewise.
16367         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
16368         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
16369         (fold_unary): Likewise.
16370         * builtins.c (get_pointer_alignment): Likewise.
16371         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
16372         (instantiate_parameters_1): Likewise.
16373         * tree.c (expr_align, stabilize_reference): Likewise.
16374         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
16375         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
16376         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
16377         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
16378         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
16379         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
16380         Likewise.
16381         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
16382         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
16383         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
16384         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
16385         (forward_propagate_comparison)
16386         (tree_ssa_forward_propagate_single_use_vars): Likewise.
16387         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
16388         * emit-rtl.c (component_ref_for_mem_expr)
16389         (set_mem_attributes_minus_bitpos): Likewise.
16390         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
16391         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
16392         Likewise.
16393         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
16394         (build_function_call, pointer_diff, build_compound_expr)
16395         (c_finish_return): Likewise.
16396         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
16397         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
16398         Likewise.
16399         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
16400         * expr.c (is_aligning_offset): Likewise.
16401         * tree-ssa-alias.c (is_escape_site): Likewise.
16402         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
16403         (check_all_va_list_escapes): Likewise.
16404         * tree-ssa-loop-ivopts.c (determine_base_object)
16405         (determine_common_wider_type): Likewise.
16406         * dojump.c (do_jump): Likewise.
16407         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
16408         * tree-gimple.c (is_gimple_cast): Likewise.
16409         * fold-const.c (decode_field_reference, )
16410         (fold_sign_changed_comparison, fold_unary, fold_comparison)
16411         (fold_binary): Likewise.
16412         * tree-ssa-alias-warnings.c (find_alias_site_helper)
16413         (already_warned_in_frontend_p): Likewise.
16414         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
16415         * tree.c (really_constant_p, get_unwidened): Likewise.
16416         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
16417         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
16418         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
16419         Likewise.
16420         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
16421         CONVERT_EXPR_P.
16422         (CONVERT_EXPR_P): Define.
16423         (CASE_CONVERT): Define.
16424
16425 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
16426
16427         PR middle-end/36117
16428         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
16429         (delete_unmarked_insns): When deleting a call, call
16430         delete_unreachable_blocks.
16431         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
16432         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
16433
16434 2008-05-08  Richard Guenther  <rguenther@suse.de>
16435
16436         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
16437         (-ftree-salias): Likewise.
16438         (salias-max-implicit-fields): Remove param documentation.
16439         (salias-max-array-elements): Likewise.
16440         * tree-pass.h (pass_create_structure_vars): Remove.
16441         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
16442         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
16443         * tree-ssa-alias.c (create_structure_vars): Remove.
16444         (gate_structure_vars): Likewise.
16445         (pass_create_structure_vars): Likewise.
16446         (gate_build_alias): Likewise.
16447         (pass_build_alias): Adjust to run always and dump the function.
16448         * common.opt (ftree-salias): Hide.
16449         * passes.c (init_optimization_passes): Remove
16450         pass_create_structure_vars, adjust comment.
16451         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
16452         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
16453         * opts.c (decode_options): Do not set flag_tree_salias.
16454         (common_handle_option): Add OPT_ftree_salias to the backward
16455         compatibility section.
16456
16457 2008-05-08  Richard Guenther  <rguenther@suse.de>
16458
16459         * tree-flow-inline.h (var_can_have_subvars): Move ...
16460         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
16461         * tree-flow.h (var_can_have_subvars): Remove.
16462         (push_fields_onto_fieldstack): Remove.
16463         (sort_fieldstack): Likewise.
16464         (struct fieldoff): Move ...
16465         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
16466         alias_set and base_for_components fields.
16467         (sort_fieldstack): Make static.
16468         (push_fields_onto_fieldstack): Likewise.  Remove code that
16469         handles anything but RECORD_TYPEs.  Remove alias_set and
16470         base_for_components handling.
16471         (create_variable_info_for): Adjust.
16472
16473 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
16474
16475         * common.opt (Wframe-larger-than=): Shorten the help message
16476         to one line.
16477         * doc/invoke.texi (Wframe-larger-than=): Add more description.
16478
16479 2008-05-08  Rafael Espíndola  <espindola@google.com>
16480
16481         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
16482         trap.
16483         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
16484         trap and that both operands are gimple values.
16485         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
16486         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
16487         is a fp operation.
16488
16489 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
16490
16491         * read-rtl.c (join_c_conditions): Return the first string if the
16492         two strings are equal.
16493
16494 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
16495
16496         * gensupport.h (pred_data): Add a "num_codes" field.
16497         (add_predicate_code): Declare.
16498         * gensupport.c (add_predicate_code): New function.
16499         (std_pred_table): Add an "allows_const_p" field.
16500         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
16501         Remove the (incomplete) list of such codes from the codes field.
16502         (init_predicate_table): Use add_predicate_code.  Add all
16503         RTX_CONST_OBJs if allows_const_p is true.
16504         * genrecog.c (process_define_predicate): Use add_predicate_code.
16505
16506 2008-05-08  David Daney  <ddaney@avtrex.com>
16507             Richard Sandiford  <rsandifo@nildram.co.uk>
16508
16509         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
16510         special case of constant zero operands.
16511         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
16512         old and new values.  Special case constant zero values.
16513         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
16514         fails.
16515         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
16516         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
16517
16518 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
16519
16520         PR target/36090
16521         * simplify-rtx.c (simplify_plus_minus): Create CONST of
16522         similar RTX_CONST_OBJ before CONST_INT.
16523
16524 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
16525
16526         * stmt.c (expand_stack_restore): Change sa mode if needed.
16527
16528 2008-05-08  Richard Guenther  <rguenther@suse.de>
16529
16530         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
16531         return type to bool.
16532         (ix86_sol10_return_in_memory): Likewise.
16533         (ix86_i386elf_return_in_memory): Likewise.
16534         (ix86_i386interix_return_in_memory): Likewise.
16535         * config/i386/i386.c (ix86_return_in_memory): Likewise.
16536         (ix86_sol10_return_in_memory): Likewise.
16537         (ix86_i386elf_return_in_memory): Likewise.
16538         (ix86_i386interix_return_in_memory): Likewise.
16539
16540 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
16541
16542         PR bootstrap/36180
16543         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
16544         fndecl argument.
16545         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
16546         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
16547         declared in front.
16548
16549 2008-05-08  Richard Guenther  <rguenther@suse.de>
16550
16551         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
16552         * tree-data-ref.h (struct dr_alias): Remove subvars field.
16553         (DR_SUBVARS): Remove.
16554         * tree-dfa.c (dump_subvars_for): Remove.
16555         (debug_subvars_for): Likewise.
16556         (dump_variable): Do not dump subvars.
16557         (remove_referenced_var): Do not remove subvars.
16558         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
16559         (lookup_subvars_for_var): Remove.
16560         (get_subvars_for_var): Likewise.
16561         (get_subvars_at): Likewise.
16562         (get_first_overlapping_subvar): Likewise.
16563         (overlap_subvar): Likewise.
16564         * tree-flow.h (subvar_t): Remove.
16565         (struct var_ann_d): Remove subvars field.
16566         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
16567         argument.  Remove special handling of SFTs.
16568         (compute_tag_properties): Likewise.
16569         (set_initial_properties): Likewise.
16570         (compute_call_clobbered): Likewise.
16571         (count_mem_refs): Likewise.
16572         (compute_memory_partitions): Likewise.
16573         (compute_flow_insensitive_aliasing): Likewise.
16574         (setup_pointers_and_addressables): Likewise.
16575         (new_type_alias): Likewise.
16576         (struct used_part): Remove.
16577         (used_portions): Likewise.
16578         (struct used_part_map): Likewise.
16579         (used_part_map_eq): Likewise.
16580         (used_part_map_hash): Likewise.
16581         (free_used_part_map): Likewise.
16582         (up_lookup): Likewise.
16583         (up_insert): Likewise.
16584         (get_or_create_used_part_for): Likewise.
16585         (create_sft): Likewise.
16586         (create_overlap_variables_for): Likewise.
16587         (find_used_portions): Likewise.
16588         (create_structure_vars): Likewise.
16589         * tree.def (STRUCT_FIELD_TAG): Remove.
16590         * tree.h (MTAG_P): Adjust.
16591         (struct tree_memory_tag): Remove base_for_components and
16592         unpartitionable flags.
16593         (struct tree_struct_field_tag): Remove.
16594         (SFT_PARENT_VAR): Likewise.
16595         (SFT_OFFSET): Likewise.
16596         (SFT_SIZE): Likewise.
16597         (SFT_NONADDRESSABLE_P): Likewise.
16598         (SFT_ALIAS_SET): Likewise.
16599         (SFT_UNPARTITIONABLE_P): Likewise.
16600         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
16601         (union tree_node): Remove sft field.
16602         * alias.c (get_alias_set): Remove special handling of SFTs.
16603         * print-tree.c (print_node): Remove handling of SFTs.
16604         * tree-dump.c (dequeue_and_dump): Likewise.
16605         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
16606         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
16607         * tree-predcom.c (set_alias_info): Do not set subvars.
16608         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
16609         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
16610         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
16611         (add_vars_for_offset): Remove.
16612         (add_virtual_operand): Remove special handling of SFTs.
16613         (add_call_clobber_ops): Likewise.
16614         (add_call_read_ops): Likewise.
16615         (get_asm_expr_operands): Likewise.
16616         (get_modify_stmt_operands): Likewise.
16617         (get_expr_operands): Likewise.
16618         (add_to_addressable_set): Likewise.
16619         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
16620         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
16621         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
16622         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
16623         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
16624         (tree_node_structure): Likewise.
16625         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
16626         handling of SFTs.
16627         (find_what_p_points_to): Likewise.
16628
16629 2008-05-08  Sa Liu  <saliu@de.ibm.com>
16630
16631         * config/spu/spu.md: Fixed subti3 pattern.
16632
16633 2008-05-08  Richard Guenther  <rguenther@suse.de>
16634
16635         PR middle-end/36154
16636         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
16637         sure to create a representative for trailing arrays for PTA.
16638
16639 2008-05-08  Richard Guenther  <rguenther@suse.de>
16640
16641         PR middle-end/36172
16642         * fold-const.c (operand_equal_p): Two objects which types
16643         differ in pointerness are not equal.
16644
16645 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
16646
16647         * calls.c (compute_argument_block_size): Add argument tree fndecl.
16648         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
16649         (emit_library_call_value_1): Add new variable fndecl initialized by
16650         NULL_TREE. It should be the decl type of orgfun, but this information
16651         seems not to be available here, so it uses the default calling abi.
16652         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
16653         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
16654         by TARGET_RETURN_IN_MEMORY.
16655         * config/i386/i386-interix.h: Likewise.
16656         * config/i386/i386.h: Likewise.
16657         * config/i386/i386elf.h: Likewise.
16658         * config/i386/ptx4-i.h: Likewise.
16659         * config/i386/sol2-10.h: Likewise.
16660         * config/i386/sysv4.h: Likewise.
16661         * config/i386/vx-common.h: Likewise.
16662         * config/cris/cris.h: Removed #if 0 clause.
16663         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
16664         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
16665         argument.
16666         (ix86_sol10_return_in_memory): Likewise.
16667         (ix86_i386elf_return_in_memory): New.
16668         (ix86_i386interix_return_in_memory): New.
16669         * config/mt/mt-protos.h (mt_return_in_memory): New.
16670         * config/mt/mt.c: Likewise.
16671         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
16672         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
16673         * config/bfin/bfin.h: Likewise.
16674         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
16675         argument.
16676         * config/bfin/bfin.c: Likewise.
16677         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
16678         * config/alpha/unicosmk.h: Likewise.
16679         * config/i386/cygming.h: Likewise.
16680         * config/iq2000/iq2000.h: Likewise.
16681         * config/mips/mips.h: Likewise.
16682         * config/mn10300/mn10300.h: Likewise.
16683         * config/rs6000/rs6000.h: Likewise.
16684         * config/score/score.h: Likewise.
16685         * config/spu/spu.h: Likewise.
16686         * config/v850/v850.h: Likewise.
16687         * defaults.h: Likewise.
16688         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
16689         * expr.c (emit_block_move): Adjust use of
16690         OUTGOING_REG_PARM_STACK_SPACE.
16691         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
16692         OUTGOING_REG_PARM_STACK_SPACE.
16693         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
16694
16695 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
16696
16697         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
16698         on OMP_RETURN for OMP_FOR.
16699
16700         PR debug/35896
16701         * dwarf2out.c (dw_expand_expr, common_check): Removed.
16702         (fortran_common): New function.
16703         (gen_variable_die): Call fortran_common instead of common_check,
16704         adjust for it returning tree instead of rtx.  Formatting.
16705
16706 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
16707
16708         PR rtl/7335
16709         PR rtl/33826
16710         * see.c (see_copy_insn): Copy new pure const attributes for new call.
16711         * c-decl.c (merge_decls): Ditto.
16712         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
16713         to RTL_CONST_OR_PURE_CALL_P.
16714         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
16715         Initialized DECL_LOOPING_CONST_PURE.
16716         (process_call_operands): Set tree_side_effects properly.
16717         * tree.h (TREE_READONLY_DECL_P): Removed.
16718         (DECL_IS_PURE): Renamed to DECL_PURE_P.
16719         (DECL_LOOPING_OR_CONST_P): New macro.
16720         (struct tree_function_decl): Added looping_const_or_pure_p.
16721         (ECF_*) Renumbered.
16722         (ECF_LOOPING_OR_CONST_P): New macro.
16723         * rtlanal.c (pure_const_p): Removed.
16724         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
16725         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
16726         to RTL_CONST_CALL_P.
16727         * ipa-pure-const.c (pure_const_state_e): Added looping field.
16728         (check_decl, check_tree, check_call, scan_function): Initialize
16729         looping.
16730         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
16731         (static_execute): Set looping true for recursive functions.
16732         Undo setting state to IPA_NEITHER for recursive functions.
16733         * cse.c (cse_insn):
16734         * ifcvt.c (noce_can_store_speculate_p): Changed
16735         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
16736         RTL_CONST_OR_PURE_CALL_P.
16737         * dse.c (scan_insn): Ditto.
16738         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
16739         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
16740         RTL_CONST_OR_PURE_CALL_P.
16741         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
16742         pure_call_p to RTL_CONST_CALL_P.
16743         * gimplify.c (gimplify_call_expr): Clear side effects for
16744         non-looping pure and constant calls.
16745         * calls.c (emit_call_1): Set rtl flags from ecf flags.
16746         (flags_from_decl_or_type): Set ecf flags from decl flags.
16747         (initialize_argument_information): Turn off
16748         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
16749         Change const to pure if callee_copies is true rather than just
16750         turning off const.
16751         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
16752         way of marking pure calls.
16753         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
16754         Remove hack that was supposed to fix pr7335 and remove old
16755         way of marking pure calls.
16756         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
16757         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
16758         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
16759         RTL_CONST_OR_PURE_CALL_P.
16760         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
16761         * loop-invariant.c (find_exits, find_invariant_bb): Changed
16762         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
16763         * sched-deps.c (schedule_analyze): Ditto.
16764         * rtl.h (struct rtx_def): Use call field, unchanging field, and
16765         return_val field of calls to represent pure and const function info.
16766         (CONST_OR_PURE_CALL_P): Deleted macro.
16767         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
16768         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
16769         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
16770         TREE_READONLY.
16771         * tree-optimize.c (execute_fixup_cfg): Added test for
16772         ECF_LOOPING_CONST_OR_PURE.
16773         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
16774         DECL_PURE_P.
16775         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
16776         effects for looping pure or const calls.
16777         (verify_gimple_expr): Added verification code.
16778         * config/alpha/alpha.c (alpha_legitimize_address,
16779         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
16780         RTL_CONST_CALL_P.
16781         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
16782         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
16783         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
16784         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
16785         RTL_CONST_OR_PURE_CALL_P.
16786         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
16787         and const calls to be deleted.
16788
16789 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
16790
16791         PR target/35714
16792         * config/i386/mmx.md (mmx_subv2sf3): New expander.
16793         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
16794         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
16795         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
16796         to handle nonimmediate operands.
16797         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
16798         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
16799         to handle nonimmediate operands.
16800         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
16801         (mmx_pmulhrwv4hi3): New expander.  Use
16802         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16803         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
16804         (sse2_umulv1siv1di3): New expander.  Use
16805         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16806         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
16807         (mmx_eq<mode>3): New expander.  Use
16808         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16809         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
16810         (mmx_uavgv8qi3): New expander.  Use
16811         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16812         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
16813         (mmx_uavgv4hi3): New expander.  Use
16814         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16815
16816         * config/i386/sse.md
16817         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
16818         to handle nonimmediate operands.
16819         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
16820         to handle nonimmediate operands.
16821         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
16822         to handle nonimmediate operands.
16823         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
16824         to handle nonimmediate operands.
16825         (sse2_unpckhpd_exp): New expander.  Use
16826         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16827         (sse2_unpcklpd_exp): New expander.  Use
16828         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16829         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
16830         to handle nonimmediate operands.
16831         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
16832         to handle nonimmediate operands.
16833         (*sse2_<plusminus_insn><mode>3): Rename from
16834         sse2_<plusminus_insn><mode>3 insn pattern.
16835         (sse2_<plusminus_insn><mode>3): New expander.  Use
16836         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16837         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
16838         (sse2_umulv2siv2di3): New expander.  Use
16839         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16840         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
16841         (sse4_1_mulv2siv2di3): New expander.  Use
16842         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16843         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
16844         (sse2_pmaddwd): New expander.  Use
16845         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16846         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
16847         (sse2_eq<mode>3): New expander.  Use
16848         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16849         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
16850         (sse4_1_eqv2di3): New expander.  Use
16851         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16852         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
16853         (sse2_uavgv16qi3): New expander.  Use
16854         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16855         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
16856         (sse2_uavgv16qi3): New expander.  Use
16857         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16858         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
16859         (sse2_uavgv8hi3): New expander.  Use
16860         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16861         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
16862         (ssse3_pmulhrswv8hi3): New expander.  Use
16863         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16864         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
16865         (ssse3_pmulhrswv4hi3): New expander.  Use
16866         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
16867
16868         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
16869         (<sse>_vmmul<mode>3): Ditto.
16870         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
16871         (divv2df3): Ditto.
16872         (ssse3_pmaddubsw128): Use register_operand for operand 1.
16873         (ssse3_pmaddubsw): Ditto.
16874
16875         * config/i386/i386.c (struct_builtin_description)
16876         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
16877         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
16878         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
16879         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
16880         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
16881         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
16882         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
16883         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
16884         (ix86_fixup_binary_operands): Assert that src1
16885         and src2 must have the same mode when swapped.
16886         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
16887         and ix86_binary_operator_ok.  Do not force operands in registers
16888         when optimizing.
16889
16890 2008-05-07  Jan Hubicka  <jh@suse.cz>
16891
16892         * cgraph.c (dump_cgraph_node): Update.
16893         * cgraph.h (cgraph_local_info): Break out inline summary.
16894         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
16895         hook.
16896         * ipa-inline (inline_summary): New accestor function.
16897         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
16898         cgraph_decide_inlining, compute_inline_parameters): Update.
16899         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
16900
16901 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
16902
16903         Cleanup ColdFire scheduling support and add V4 pipeline model.
16904
16905         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
16906         (define_attr cpu): Add cfv4 value.
16907         (define_attr type, define_attr type1): Merge into a single 'type'
16908         attribute.  Update all uses.
16909         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
16910         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
16911         Update all uses.
16912         (define_attr opx_mem, define_attr opy_mem): Remove.
16913         (define_attr op_mem): Clean up, update comment.
16914         (define_attr size): Use specific values instead of general int.
16915         (define_attr guess, define_attr split): Remove.  Update all uses.
16916         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
16917         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
16918         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
16919         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
16920         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
16921         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
16922         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
16923         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
16924         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
16925         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
16926         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
16927         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
16928         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
16929         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
16930         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
16931         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
16932         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
16933         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
16934         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
16935         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
16936         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
16937         Update or set attributes.
16938         (stack_tie): New fake instruction.
16939
16940         * config/m68k/m68k.h (TUNE_CFV4): New macro.
16941         (m68k_sched_attr_size): Update declaration.
16942         (m68k_sched_attr_type2): Remove.
16943         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
16944         Declare new bypass predicates.
16945
16946         * config/m68k/m68k.c (m68k_sched_issue_rate,
16947         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
16948         implementations.
16949         (TARGET_SCHED_ISSUE_RATE,
16950         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
16951         (override_options): Handle scheduling for ColdFire V4 core.
16952         (m68k_expand_prologue): Emit stack_tie.
16953         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
16954         'OP_TYPE_FPN'.  Update all uses.
16955         (sched_guess_p): Remove.
16956         (sched_address_type): Handle symbolic addresses.
16957         (sched_get_operand): New static function.
16958         (sched_operand_type): Merge into sched_attr_op_type.
16959         (sched_attr_op_type): Handle FP registers, handle quick constants,
16960         update.
16961         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
16962         (m68k_sched_attr_size): Update.  Move logic to ...
16963         (sched_get_attr_size_int): New static function.
16964         (sched_get_opxy_mem_type): New static function.
16965         (m68k_sched_attr_op_mem): Update.
16966         (m68k_sched_attr_type2): Remove.
16967         (sched_cfv4_bypass_data): New static variable.
16968         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
16969         (m68k_sched_issue_rate): Implement scheduler hook.
16970         (struct _sched_ib: enabled_p): New field.
16971         (m68k_sched_variable_issue): Update.  Handle V4.
16972         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
16973         sched_dump_class_func_t, sched_dump_split_class,
16974         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
16975         sched_dump_dfa_class, m68k_sched_dump): Remove.
16976         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
16977         hook.
16978         (m68k_sched_init_global): Remove statisctics dumping, introduce
16979         sanity check that all instructions have pipeline reservations.  Handle
16980         ColdFire V4 core.
16981         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
16982         Handle ColdFire V4 core.
16983         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
16984         New static functions.
16985         (m68k_sched_address_bypass_p): New bypass predicate.
16986         (sched_get_indexed_address_scale): New static function.
16987         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
16988
16989         * cf.md: Update comments.
16990         (define_attr type2): Remove.  Use 'type' attribute instead.
16991         Update all uses.
16992         (cf_ib): Rename to cfv123_ib.  Update all uses.
16993         (cf_oep): Rename to cfv123_oep.  Update all uses.
16994         (cf_chr): Rename to cfv123_chr.  Update all uses.
16995         (cf_mem): Rename to cfv123_mem.  Update all uses.
16996         (cf_mac): Move to more appropriate place.
16997         (cfv123_guess): New automaton and cpu_unit.
16998         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
16999         Update uses of 'size' attribute.  Handle before reload scheduling.
17000         (cfv123_guess): New dummy reservation for unhandled instructions.
17001         (cfv4_*): Pipeline description of ColdFire V4 core.
17002         (ignore): New reservation to handle 'ignore' type.
17003
17004 2008-05-07  Ian Lance Taylor  <iant@google.com>
17005
17006         PR middle-end/36013
17007         * gimplify.c (find_single_pointer_decl_1): Don't look through
17008         indirections.
17009         (find_single_pointer_decl): Adjust comments.
17010
17011 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
17012
17013         PR middle-end/36137
17014         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
17015         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
17016
17017         PR middle-end/36106
17018         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
17019         integral type rather than floating point, then VIEW_CONVERT_EXPR
17020         to the floating point type.
17021
17022 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
17023
17024         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
17025         TFmode op0 to register.
17026
17027 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
17028
17029         * c-decl.c (grokdeclarator): Comment typo.
17030
17031 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
17032
17033         * tree-flow.h: Remove prototype for computed_goto_p.
17034         * tree-cfg.c (computed_goto_p): Make static.
17035
17036 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
17037
17038         PR target/35657
17039         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
17040         (contains_aligned_value_p): This.  Handle _Decimal128.
17041         (ix86_function_arg_boundary): Only align _Decimal128 to its
17042         natural boundary and handle it properly.
17043
17044 2008-05-06  Martin Jambor  <mjambor@suse.cz>
17045
17046         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
17047         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
17048         (ipcp_method_set_orig_node): Removed.
17049         (ipcp_cval_get_cvalue_type): Removed.
17050         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
17051         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
17052         (ipcp_cval_set_cvalue_type): Removed.
17053         (ipcp_cval_get_cvalue): Removed.
17054         (ipcp_cval_set_cvalue): Removed.
17055         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
17056         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
17057         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
17058         (ipcp_cval_meet): Renamed to ipa_lattice_meet
17059         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
17060         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
17061         (ipcp_get_ith_lattice): Changed parameters.
17062         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
17063         (ipcp_lattice_from_jfunc): Changed parameters.
17064         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
17065         (ipcp_method_cval_print): Added temporary variable info.
17066         (ipcp_redirect): Removed already unused local variable caller.
17067         (ipcp_redirect): New temporary variable orig_callee_info
17068         (ipcp_redirect): Removed newly unused local variable callee.
17069         (ipcp_redirect): Removed (a bit confusing) local variable type.
17070         (ipcp_insert_stage): Added local variable info.
17071         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
17072         renamed too
17073         (ipcp_formal_create): Removed.
17074         (ipcp_method_cval_set): Removed.
17075         (ipcp_propagate_stage): Renamed lattice variables.
17076         (ipcp_method_cval_set_cvalue_type): Removed.
17077         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
17078         (ipcp_print_all_lattices): Changed printed strings to refer to
17079         lattices rather than cvals.
17080         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
17081         (ipcp_propagate_const): Changed formal parameters.
17082         (build_const_val): Changed formal parameters.
17083         (ipcp_insert_stage): Removed useless variable cvalue
17084         (build_const_val): Changed formal parameters.
17085         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
17086         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
17087         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
17088         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
17089         (ipcp_print_func_profile_counts): Changed string from "method" to
17090         "function"
17091         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
17092         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
17093         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
17094         (ipcp_structures_print): Renamed to ipcp_print_all_structures
17095         (ipcp_profile_print): Renamed to ipcp_print_profile_data
17096         (ipcp_lat_is_const): Changed parameters and made inline.
17097         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
17098         (ipcp_redirect): Renamed to ipcp_need_redirect_p
17099         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
17100         the predicate condition directly
17101         (ipcp_propagate_stage): Added local variable args. Removed local
17102         variable callee.  (Both are mere code simplifications.)
17103         (ipcp_method_dont_insert_const): Renamed to
17104         ipcp_node_not_modifiable_p.
17105         (ipcp_node_not_modifiable_p): Made inline.
17106         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
17107         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
17108         (ipcp_print_all_lattices): Removed variable cvalue
17109         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
17110         Updated comments.
17111
17112 2008-05-06  Olivier Hainque  <hainque@adacore.com>
17113
17114         * tree-sra.c (try_instantiate_multiple_fields): Early return
17115         if field has POINTER_TYPE.
17116
17117 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
17118
17119         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
17120         by using 'q' specifier for instruction.
17121         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
17122
17123 2008-05-06  Anatoly Sokolov <aesok@post.ru>
17124
17125         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
17126         Change mode of zero_extract from QImode to HImode.
17127         (sign bit tests peepholes): (Ditto.).
17128
17129 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
17130
17131         * config/i386/mmx.md: Remove double backslashes from asm templates.
17132         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
17133         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
17134         to handle nonimmediate operands.
17135         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
17136         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
17137         to handle nonimmediate operands.
17138         (*mmx_<code>v2sf3_finite): New insn pattern.
17139         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
17140         (mmx_<code>v2sf3): New expander.  Use
17141         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17142         (mmx_<plusminus_insn><mode>3): New expander.  Use
17143         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17144         (*mmx_<plusminus_insn><mode>3): New insn pattern.
17145         (mmx_add<mode>3): Removed.
17146         (mmx_ssadd<mode>3): Ditto.
17147         (mmx_usadd<mode>3): Ditto.
17148         (mmx_sub<mode>3): Ditto.
17149         (mmx_sssub<mode>3): Ditto.
17150         (mmx_ussub<mode>3): Ditto.
17151         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
17152         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
17153         to handle nonimmediate operands.
17154         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
17155         insn pattern.
17156         (mmx_smulv4hi3_highpart): New expander.  Use
17157         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17158         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
17159         insn pattern.
17160         (mmx_umulv4hi3_highpart): New expander.  Use
17161         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17162         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
17163         (mmx_<code>v4hi3): New expander.  Use
17164         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17165         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
17166         (mmx_<code>v8qi3): New expander.  Use
17167         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17168         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
17169         (mmx_<code><mode>3): New expander.  Use
17170         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17171
17172 2008-05-05  Jan Hubicka  <jh@suse.cz>
17173
17174         PR tree-optimization/36118
17175         * passes.c (pass_init_dump_file): Fix dump header.
17176
17177 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17178
17179         PR middle-end/36141
17180         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
17181         VCE for function decls.
17182
17183 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
17184
17185         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
17186
17187 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
17188
17189         * config/i386/i386.md (sat_plusminus): New.
17190         (plusminus_insn): Likewise.
17191         (plusminus_mnemonic): Likewise.
17192         (addsub): Removed.
17193         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
17194         (*<addsub><mode>3_cc_overflow): Renamed to ...
17195         (*<plusminus_insn><mode>3_cc_overflow): This.
17196         (*<addsub>si3_zext_cc_overflow): Renamed to ...
17197         (*<plusminus_insn>si3_zext_cc_overflow): This.
17198
17199         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
17200         (<plusminus_insn><mode>3): This.
17201         (*<addsub><mode>3): Renamed to ...
17202         (*<plusminus_insn><mode>3): This.
17203         (<sse>_vm<addsub><mode>3): Renamed to ...
17204         (<sse>_vm<plusminus_insn><mode>3): This.
17205         (sse3_h<addsub>v4sf3): Renamed to ...
17206         (sse3_h<plusminus_insn>v4sf3): This.
17207         (sse3_h<addsub>v2df3): Renamed to ...
17208         (sse3_h<plusminus_insn>v2df3): This.
17209         (<plusminus_insn><mode>3): New.
17210         (*<plusminus_insn><mode>3): Likewise.
17211         (sse2_<plusminus_insn><mode>3): Likewise.
17212         (add<mode>): Removed.
17213         (*add<mode>3): Likewise.
17214         (sse2_ssadd<mode>3): Likewise.
17215         (sse2_usadd<mode>3): Likewise.
17216         (sub<mode>3): Likewise.
17217         (*sub<mode>3): Likewise.
17218         (sse2_sssub<mode>3): Likewise.
17219         (sse2_ussub<mode>3): Likewise.
17220
17221 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
17222
17223         * gthr-single.h: Add in required interface elements as per gthr.h.
17224         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
17225         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
17226         Generalize UNUSED macro.
17227         (__gthread_once): Add.
17228         (__gthread_key_create): Add.
17229         (__gthread_key_delete): Add.
17230         (__gthread_getspecific): Add.
17231         (__gthread_setspecific): Add.
17232
17233 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
17234
17235         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
17236         the same size types for the indirect reference on the rhs, then
17237         create a VCE.
17238
17239 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
17240
17241         * config/i386/i386.md
17242         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
17243         one insn template instead of template series.
17244         (*xordi_1_rex64): Ditto.
17245         (*xordi_2_rex64): Ditto.
17246
17247 2008-05-05  Ira Rosen  <irar@il.ibm.com>
17248
17249         PR tree-optimization/36119
17250         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
17251         in case of SLP.
17252
17253 2008-06-04  Jan Hubicka  <jh@suse.cz>
17254
17255         tree-optimization/36100
17256         * tree-pass.h (pass_O0_always_inline): Declare.
17257         * ipa-inline.c (inline_transform): Remove dead code.
17258         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
17259         pass_O0_always_inline): New.
17260         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
17261
17262 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
17263
17264         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
17265         mnemonic in this_param move for TARGET_64BIT.
17266
17267 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
17268
17269         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
17270         (*strmovsi_rex_1): Ditto.
17271         (*strsetsi_1): Ditto.
17272         (*strsetsi_rex_1): Ditto.
17273
17274         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
17275         adddicc expanders using SWI mode iterator.
17276
17277 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
17278
17279         PR target/36121
17280         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
17281         argument handling.
17282
17283 2008-05-04  David S. Miller  <davem@davemloft.net>
17284
17285         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
17286         (sparc*-*-linux*): Use linux.h in tm_file.
17287         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
17288         compiler defaulting to 32-bit.
17289         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
17290         no longer needed.
17291         * config/sparc/linux.h: Remove definitions now obtained
17292         properly from linux.h
17293         * config/sparc/linux64.h: Likewise.
17294         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
17295         don't want this setting for 32-bit builds in a biarch compiler.
17296         * doc/install.texi: Add sparc-linux to list of targets
17297         supporting --enable-targets=all.
17298
17299 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
17300
17301         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
17302
17303 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
17304
17305         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
17306         after V4SI_FTYPE_V8HI.
17307         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
17308         case V4SI_FTYPE_V2DF.
17309
17310 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
17311
17312         * doc/invoke.texi (max-flow-memory-locations): Removed.
17313         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
17314
17315 2008-05-03  Richard Guenther  <rguenther@suse.de>
17316
17317         PR middle-end/34973
17318         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
17319
17320 2008-05-02  David S. Miller  <davem@davemloft.net>
17321
17322         * config.gcc (need_64bit_hwint): Document libcpp dependency.
17323
17324 2008-05-02  Simon Baldwin <simonb@google.com>
17325
17326         PR bootstrap/36108
17327         * c-common.h (warn_array_subscript_range): Removed.
17328         * c-common.c (warn_array_subscript_range): Ditto.
17329         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
17330         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
17331
17332 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
17333
17334         * config/i386/i386.c (ix86_special_builtin_type): New.
17335         (bdesc_special_args): Likewise.
17336         (ix86_expand_special_args_builtin): Likewise.
17337         (ix86_init_mmx_sse_builtins): Updated.
17338         (ix86_expand_builtin): Updated.
17339         (ix86_expand_store_builtin): Removed.
17340         (ix86_expand_unop_builtin): Likewise.
17341
17342         * config/i386/mm3dnow.h (__v2sf): Moved to ...
17343         * config/i386/mmintrin.h (__v2sf): Here.
17344
17345         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
17346         const __v2sf.
17347         (_mm_loadl_pi): Likewise.
17348         (_mm_storeh_pi): Replace __v2si with __v2sf.
17349         (_mm_storel_pi): Likewise.
17350
17351         * doc/extend.texi: Correct __builtin_ia32_loadhps,
17352         __builtin_ia32_loadlps, __builtin_ia32_storehps,
17353         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
17354         __builtin_ia32_loadlpd.
17355
17356 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
17357
17358         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
17359         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
17360         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
17361         (ix86_init_mmx_sse_builtins): Updated.
17362         (ix86_expand_args_builtin): Likewise.
17363         (ix86_expand_builtin): Likewise.
17364         (ix86_expand_unop1_builtin): Renamed to ...
17365         (ix86_expand_unop_vec_merge_builtin): This.
17366
17367 2008-05-01  Jan Hubicka  <jh@suse.cz>
17368
17369         PR bootstrap/36100
17370         * ipa-inline.c (inline_generate_summary): Make static.
17371         (inline_transform): Do not call inlining at -O0; make static.
17372         * passes.c (execute_todo): Add sanity check.
17373         (execute_one_ipa_transform_pass): Execute proper flags.
17374
17375 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
17376
17377         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
17378         (DECL_NONADDRESSABLE_P): Likewise.
17379         * alias.c (record_component_aliases): Fix comment.
17380
17381 2008-05-01  Simon Baldwin <simonb@google.com>
17382
17383         * c-common.h (warn_array_subscript_range): New function.
17384         * c-common.c (warn_array_subscript_range): Ditto.
17385         * tree-vrp.c (check_array_ref): Corrected code to agree with
17386         comment, ignoring only arrays of size 0 or size 1.
17387         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
17388
17389 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
17390
17391         * config/i386/i386.c (ix86_builtin_type): Replace
17392         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
17393         (bdesc_args): Updated.
17394         (ix86_init_mmx_sse_builtins): Likewise.
17395         (ix86_expand_args_builtin): Likewise.
17396
17397         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
17398         with __v1di.
17399
17400         * doc/extend.texi: Correct __builtin_ia32_palignr.
17401
17402 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
17403
17404         PR target/36095
17405         * config/i386/i386.c (bdesc_crc32): Removed.
17406         (ix86_expand_crc32): Likewise.
17407         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
17408         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
17409         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
17410         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
17411         UINT_FTYPE_UINT_UCHAR.
17412         (bdesc_args): Updated. Add crc32 builtins.
17413         (ix86_init_mmx_sse_builtins): Updated.
17414         (ix86_expand_args_builtin): Updated to support subreg.
17415
17416         * doc/extend.texi: Correct __builtin_ia32_crc32di.
17417
17418 2008-05-01  Jan Hubicka  <jh@suse.cz>
17419
17420         * tree-pass.h (opt_pass): Add IPA_PASS.
17421         (varpool_node, cgraph_node): Forward declare.
17422         (ipa_opt_pass): Define.
17423         (pass_ipa_inline): Turn into ipa_opt_pass.
17424         (pass_apply_inline): Remove.
17425         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
17426         (apply_inline): Turn into ....
17427         (inline_transform): ... this one.
17428         (inline_generate_summary): New function.
17429         (pass_apply_inline): Remove.
17430         * function.h (ipa_opt_pass): Forward declare structure; typedef;
17431         vector.
17432         (struct function): Add ipa_transforms_to_apply.
17433         * passes.c (register_one_dump_file): Work on IPA_PASS.
17434         (init_optimization_passes): Remove pass_inline_parameters and
17435         pass_apply_inline.
17436         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
17437         (execute_one_pass) ... here; apply transforms when possible.
17438         (add_ipa_transform_pass, execute_ipa_summary_asses,
17439         execute_one_ipa_transform_pass): New.
17440         (execute_ipa_pass_list): Update for IPA_PASS type.
17441
17442 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
17443
17444         * config/i386/i386.c (ix86_builtin_type): Add
17445         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
17446         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
17447         (bdesc_args): Add SSE4a builtins.
17448         (ix86_init_mmx_sse_builtins): Updated.
17449         (ix86_expand_args_builtin): Likewise.
17450         (ix86_expand_builtin): Likewise.
17451
17452 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
17453
17454         * config/i386/i386.c (ix86_builtin_type): Add
17455         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
17456         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
17457         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
17458         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
17459         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
17460         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
17461         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
17462         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
17463         and DI_FTYPE_DI_DI_INT.
17464         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
17465         (ix86_init_mmx_sse_builtins): Updated.
17466         (ix86_expand_args_builtin): Likewise.
17467         (ix86_expand_builtin): Likewise.
17468         (ix86_expand_binop_imm_builtin): Removed.
17469
17470         * doc/extend.texi: Correct __builtin_ia32_palignr128.
17471
17472 2008-04-30  Richard Guenther  <rguenther@suse.de>
17473
17474         PR tree-optimization/32921
17475         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
17476
17477 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
17478
17479         * config/arm/arm.c (arm_unwind_emit): Use
17480         crtl->all_throwers_are_sibcalls instead of
17481         cfun->all_throwers_are_sibcalls.
17482         (arm_output_fn_unwind): Likewise.
17483         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
17484         instead of cfun->uses_pic_offset_table.
17485         (frv_expand_prologue): Likewise.
17486         (frv_frame_pointer_required): Likewise.
17487         (frv_expand_fdpic_call): Likewise.
17488         (frv_emit_movsi): Likewise.
17489         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
17490         cfun->returns_pcc_struct instead of
17491         current_function_returns_pcc_struct.
17492         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
17493         instead of cfun->calls_eh_return.
17494         (m32c_pushm_popm): Likewise.
17495         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
17496         "extern" declaration.
17497
17498 2008-04-30  Richard Guenther  <rguenther@suse.de>
17499
17500         PR tree-optimization/21636
17501         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
17502         constant address.
17503         (evaluate_stmt): Print the likely value.
17504         (ccp_visit_stmt): Avoid excessive vertical spacing.
17505
17506 2008-04-30  Rafael Espíndola  <espindola@google.com>
17507
17508         * builtins.c (fold_call_expr): Return realret.
17509         * tree-ssa-threadedge.c
17510         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
17511         __builtin_object_size.
17512
17513 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
17514
17515         * gcc.c (wrapper_string): New variable.
17516         (insert_wrapper): New function.
17517         (execute): New option -wrapper.
17518         * doc/invoke.texi (Overall Options): New driver option -wrapper.
17519
17520 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
17521
17522         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
17523         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
17524         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
17525         from...
17526         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
17527         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
17528         config/rs6000/e500crtres64gprctr.asm,
17529         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
17530         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
17531         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
17532         config/rs6000/e500crtsav64gprctr.asm,
17533         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
17534         config/rs6000/e500crtsavg64gprctr.asm: New files.
17535         * config/rs6000/t-ppccomm: Add build rules for new files.
17536         (LIB2FUNCS_STATIC_EXTRA): Add new files.
17537         * config/rs6000/t-netbsd: Add build rules for new files.
17538         (LIB2FUNCS_STATIC_EXTRA): New variable.
17539         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
17540         (CRTSAVRES_DEFAULT_SPEC): Likewise.
17541         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
17542
17543 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
17544
17545         * config/i386/i386.c (ix86_builtin_type): Add
17546         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
17547         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
17548         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
17549         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
17550         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
17551         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
17552         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
17553         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
17554         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
17555         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
17556         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
17557         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
17558         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
17559         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
17560         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
17561         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
17562         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
17563         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
17564         V1DI_FTYPE_V2SI_V2SI.
17565         (bdesc_2arg): Moved to ...
17566         (bdesc_args): Here.
17567         (ix86_init_mmx_sse_builtins): Updated.
17568         (ix86_expand_args_builtin): Updated.  Take a pointer
17569         to const struct builtin_description.  Handle comparison
17570         builtin functions.
17571         (ix86_expand_sse_compare): Take a new argument for swapping operands.
17572         (ix86_expand_builtin): Updated.
17573
17574         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
17575         (ssse3_pmaddubsw128): This.
17576         (ssse3_pmaddubswv4hi3): Renamed to ...
17577         (ssse3_pmaddubsw): This.
17578
17579         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
17580         (__builtin_ia32_packssdw128): Likewise.
17581         (__builtin_ia32_packuswb128): Likewise.
17582         (__builtin_ia32_pmaddubsw): Likewise.
17583         (__builtin_ia32_pmaddubsw128): Likewise.
17584
17585 2008-04-30  Richard Guenther  <rguenther@suse.de>
17586
17587         PR tree-optimization/14847
17588         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
17589         (recognize_bits_test): Use it.
17590         (recognize_single_bit_test): Likewise.
17591
17592 2008-04-30  Martin Jambor  <mjambor@suse.cz>
17593
17594         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
17595         instead of setting number of formal parameters to zero.
17596         (ipcp_init_stage): Do not set the number of actual parameters to zero
17597         either.
17598         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
17599         which are called with variable number of arguments.
17600         (ipcp_insert_stage): Explicitely skipping all nodes which are
17601         called with variable number of arguments.
17602         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
17603         number of parameters.
17604
17605         * ipa-prop.h (struct ipa_node_params): Added flag
17606         called_with_var_arguments
17607         (ipa_set_param_count): Added.  Changed sole setter to use it.
17608         (ipa_get_param_count): Added.  All readers of param_count
17609         converted to use it instead.
17610         (ipa_set_called_with_variable_arg): Added.
17611         (ipa_is_called_with_var_arguments): Added.
17612         (ipa_get_ith_param): Added.  All readers of param_decls converted
17613         to use it instead.
17614         (ipa_set_cs_argument_count): Added, sole writer to argument_count
17615         changed to use it.
17616         (ipa_get_cs_argument_count): Added, all readers of argument_count
17617         changed to cal it.
17618         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
17619         to use it.
17620
17621         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
17622         (struct ipcp_lattice): Renamed cval_type to type
17623         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
17624
17625         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
17626         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
17627         (ipcp_insert_stage): Changed the type of variable cvalue to tree
17628         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
17629         (build_const_val): Changed the type of parameter cvalue to tree
17630         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
17631         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
17632
17633         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
17634         constant
17635
17636         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
17637         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
17638         (ipa_add_method): Renamed to ipa_push_func_to_list
17639         (ipa_remove_method): Renamed to ipa_pop_func_from_list
17640         (ipa_callsite_param_count): Removed.
17641         (ipa_callsite_param_count_set): Removed.
17642         (ipa_callsite_param): Removed.
17643         (ipa_callsite_callee): Removed.
17644         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
17645         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
17646         (ipa_method_formal_count): Removed.
17647         (ipa_method_formal_count_set): Removed.
17648         (ipa_method_get_tree): Removed.
17649         (ipa_method_tree_map_create): Removed.
17650         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
17651         (ipa_create_param_decls_array): Creates the array itself
17652         (ipa_create_param_decls_array): Temporary variable info instead of
17653         a few dereferences.
17654         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
17655         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
17656         (get_type): Removed.
17657         (ipa_jf_get_info_type): Removed.
17658         (ipa_node_create): Renamed to ipa_create_node_params
17659         (ipa_free): Renamed to ipa_free_all_node_params
17660         (ipa_nodes_create): Renamed to ipa_create_all_node_params
17661         (ipa_edges_create): Renamed to ipa_create_all_edge_args
17662         (ipa_edges_free): Renamed to ipa_free_all_edge_args
17663         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
17664         (ipa_free_all_node_params): Deallocation to jump_functions moved to
17665         ipa_free_all_edge_args
17666         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
17667         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
17668         (ipa_create_methodlist_node): Removed.
17669         (ipa_methodlist_method): Removed.
17670         (ipa_methodlist_method_set): Removed.
17671         (ipa_methodlist_next_method): Removed.
17672         (ipa_methodlist_next_method_set): Removed.
17673         (ipa_method_is_modified): Removed.
17674         (ipa_method_modify_create): Removed.
17675         (ipa_method_modify_init): Temporary variable info instead of a few
17676         dereferences.
17677         (ipa_detect_param_modifications): Temporary variable info instead of
17678         a few dereferences.
17679         (ipa_compute_jump_functions): Temporary variable info instead of
17680         a few dereferences.
17681         (ipa_method_modify_set): Removed.
17682         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
17683         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
17684         than craph_node as the first parameter.
17685         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
17686         (ipa_method_modify_init): Removed.
17687         (ipa_compute_jump_functions): Added a temp variable instead of
17688         repeatadly dereferencing the cgraph_edge.aux pointer
17689         (ipa_callsite_param_set_type): Removed.
17690         (ipa_compute_jump_functions): i renamed to index and moved to
17691         an inner block
17692         (ipa_callsite_param_set_info_type_formal): Removed.
17693         (ipa_callsite_param_set_info_type): Removed.
17694         (ipa_callsite_param_map_create): Removed.
17695         (ipa_callsite_tree): Removed.
17696         (ipa_callsite_caller): Removed.
17697         (ipa_pop_func_from_list): return_method removed to return_func
17698
17699         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
17700         prefixed all values with IPA_. Changed all users.
17701         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
17702         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
17703         and FORMAL_IPATYPE IPA_PASS_THROUGH.
17704         (union parameter_info): Renamed to jump_func_value.
17705         (union jump_func_value): Renamed value to constant
17706         (struct ipa_jump_func): Renamed info_type to value
17707         (struct ipa_node): Renamed to ipa_node_params
17708         (struct ipa_node_params): Renamed ipa_arg_num to param_count
17709         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
17710         (struct ipa_node_params): Renamed ipa_mod to modified_flags
17711         (struct ipa_edge): Renamed to ipa_edge_args
17712         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
17713         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
17714         (struct ipa_methodlist): Renamed to ipa_func_list
17715         (struct ipa_func_list): method_p renamed to node, next_method
17716         renamed to next
17717         (ipa_methodlist_p): Removed, switched all users to struct pointer
17718         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
17719
17720 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
17721
17722         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
17723         (rs6000_emit_epilogue): Use backchain to restore only when we
17724         have a large frame.  Make use of frame pointer to restore if we
17725         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
17726
17727 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
17728
17729         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
17730         Add mode to zero_extract.
17731         (sign bit tests peepholes): (Ditto.).
17732
17733 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
17734
17735         * config/i386/i386.c (ix86_builtins): Replace Prescott New
17736         Instructions in comments with SSE3.
17737         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
17738         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
17739         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
17740         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
17741         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
17742         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
17743         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
17744         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
17745         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
17746         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
17747         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
17748         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
17749         (bdesc_sse_args): Renamed to ...
17750         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
17751         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
17752         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
17753         IX86_BUILTIN_FABSQ.
17754         (bdesc_1arg): Moved to ...
17755         (bdesc_args): Here.
17756         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
17757         Instructions in comments with SSE3.
17758         (ix86_expand_sse_operands_builtin): Renamed to ...
17759         (ix86_expand_args_builtin): This.  Updated.
17760         (ix86_expand_unop1_builtin): Update comments.
17761         (ix86_expand_builtin): Updated.
17762
17763 2008-04-29  Richard Guenther  <rguenther@suse.de>
17764
17765         PR tree-optimization/36078
17766         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
17767         Update virtual SSA form after cleaning up the CFG.
17768
17769 2008-04-29  Richard Guenther  <rguenther@suse.de>
17770
17771         PR middle-end/15255
17772         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
17773
17774 2008-04-29  Richard Guenther  <rguenther@suse.de>
17775
17776         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
17777         (compute_may_aliases): Do not call finalize_ref_all_pointers.
17778         (compute_flow_insensitive_aliasing): Do not treat
17779         PTR_IS_REF_ALL pointers special.
17780         (get_smt_for): Likewise.
17781         (may_alias_p): Re-structure.
17782         (is_escape_site): A ref-all pointer conversion is not an escape site.
17783         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
17784         PTR_IS_REF_ALL pointers special.
17785         * tree-ssa-structalias.h (struct alias_info): Remove
17786         ref_all_symbol_mem_tag field.
17787         (PTR_IS_REF_ALL): Remove.
17788
17789 2008-04-29  Richard Guenther  <rguenther@suse.de>
17790
17791         PR middle-end/36077
17792         * fold-const.c (extract_muldiv_1): In combining division constants
17793         make sure to never overflow.
17794
17795 2008-04-29  Nick Clifton  <nickc@redhat.com>
17796
17797         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
17798
17799 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17800
17801         PR bootstrap/35169
17802         * optc-gen.awk: Work around HP-UX/IA awk bug.
17803
17804 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
17805
17806         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
17807         2008-04-25 commit.
17808
17809 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
17810
17811         PR target/36073
17812         * config/i386/i386.md
17813         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
17814         Change operand 1 predicate to nonimmediate_operand.
17815
17816 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
17817
17818         PR debug/36060
17819         * dwarf2out.c (struct die_struct): Mark as chain_circular through
17820         die_sub field.
17821         * gengtype.c (walk_type, write_func_for_structure): Handle
17822         chain_circular.
17823         * doc/gty.texi: Document chain_circular.
17824
17825 2008-04-28  Richard Guenther  <rguenther@suse.de>
17826
17827         PR tree-optimization/36066
17828         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
17829         SCEV and loop.
17830
17831 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
17832
17833         PR target/36064
17834         * config/i386/i386.md
17835         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
17836         Use match_scratch instead of match_operand for operands 3 and 4.
17837
17838 2008-04-27  Richard Guenther  <rguenther@suse.de>
17839
17840         PR tree-optimization/18754
17841         PR tree-optimization/34223
17842         * tree-pass.h (pass_complete_unrolli): Declare.
17843         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
17844         loop size before and after unconditionally of UL_NO_GROWTH in effect.
17845         Rewrite loop into loop closed SSA form if it is not already.
17846         (tree_unroll_loops_completely): Re-structure to iterate over
17847         innermost loops with intermediate CFG cleanups.
17848         Unroll outermost loops only if requested or the code does not grow
17849         doing so.
17850         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
17851         loops are available.
17852         (tree_vectorize): Instead do so here.
17853         (tree_complete_unroll): Also unroll outermost loops.
17854         (tree_complete_unroll_inner): New function.
17855         (gate_tree_complete_unroll_inner): Likewise.
17856         (pass_complete_unrolli): New pass.
17857         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
17858         uses outside of the loop.
17859         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
17860         form if it is available.
17861         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
17862         * passes.c (init_optimization_passes): Schedule complete inner
17863         loop unrolling pass before the first CCP pass after final inlining.
17864
17865 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
17866
17867         * targhooks.h (default_emutls_var_fields,
17868         default_emutls_var_init): Declare.
17869         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
17870         * target.h (struct gcc_target): Add struct emutls member.
17871         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
17872         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
17873         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
17874         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
17875         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
17876         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
17877         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
17878         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
17879         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
17880         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
17881         emit debug information.
17882         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
17883         * varasm.c: Include targhooks.h.
17884         (emutls_object_section, emutls_tmpl_section): New.
17885         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
17886         (EMUTLS_SEPARATOR): New.
17887         (prefix_name): New.
17888         (get_emutls_object_name): New.
17889         (default_emutls_var_fields): New, broken out of ...
17890         (get_emutls_object_type): ... here.  Adjust to use target hooks.
17891         (get_emutls_init_templ_addr): Adjust to use target hooks.
17892         (emutls_decl): Adjust to use target hooks.
17893         (emutls_finish): Likewise.
17894         (default_emutls_var_init): New, broken out of ...
17895         (assemble_variable): ... here.  Adjust to use target hooks.
17896         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
17897         SECCAT_EMUTLS_TMPL.
17898         * c-common.c (handle_section_attribute): Prevent overriding
17899         sections for emulated tls with special sections.
17900         * config/i386/i386.c (x86_64_elf_select_section): Add
17901         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
17902         (x86_64_elf_unique_section): Likewise.
17903         * config/vxworks.c: Include tree.h.
17904         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
17905         (vxworks_override_options): Set TLS scheme.
17906         * doc/tm.texi (Emulated TLS): New node.
17907
17908 2008-04-26  Simon Baldwin <simonb@google.com>
17909
17910         PR c/35652
17911         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
17912         with propagated string constants.
17913
17914 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
17915
17916         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
17917         constraint for operand 2 when operand 0 is memory operand.
17918         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
17919         operand 0 is memory operand.
17920         (fix_trunc<mode>_i387_with_temp): Ditto.
17921         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
17922         operand 2 when operand 1 is memory operand.
17923         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
17924         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
17925         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
17926         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
17927         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
17928         operands 2,3 and 4 when operand 1 is memory operand.
17929         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
17930         is memory operand.
17931         (fistdi2_floor_with_temp): Ditto.
17932         (fist<mode>2_floor_with_temp): Ditto.
17933         (fistdi2_ceil_with_temp): Ditto.
17934         (fist<mode>2_ceil_with_temp): Ditto.
17935         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
17936
17937 2008-04-26  David Daney  <ddaney@avtrex.com>
17938
17939         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
17940         unspec_volitile.
17941         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
17942         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
17943         UNSPEC_UPDATE_GOT_VERSION): Renumber.
17944         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
17945         (compare_and_swap_12): New insn.
17946         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
17947         * config/mips/mips.c (mips_force_binary): New function.
17948         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
17949         (mips_expand_compare_and_swap_12): New function.
17950         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
17951
17952 2008-04-25  Jan Hubicka  <jh@suse.cz>
17953
17954         PR testsuite/35843
17955         * cfgexpand.c (pass_expand): Turn into RTL pass.
17956         * passes.c (execute_one_pass): Do pass typechecking after execution.
17957         * tree-pass.h (pass_expand): Turn into RTL pass.
17958
17959         * function.h (struct rtl_data): Move here fields
17960         accesses_prior_frames, calls_eh_return, saves_all_registers,
17961         has_nonlocal_goto, has_asm_statement, is_thunk,
17962         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
17963         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
17964         arg_pointer_save_area_init from struct function; turn into bool.
17965         (struct function): Move
17966         calls_eh_return, saves_all_registers, has_nonlocal_goto,
17967         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
17968         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
17969         tail_call_emit, arg_pointer_save_area_init
17970         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
17971         (current_function_returns_struct, current_function_returns_pcc_struct,
17972         current_function_calls_setjmp, current_function_calls_alloca,
17973         current_function_accesses_prior_frames,
17974         current_function_calls_eh_return, current_function_is_thunk,
17975         current_function_stdarg, current_function_profile,
17976         current_function_limit_stack, current_function_uses_pic_offset_table,
17977         current_function_uses_const_pool, current_function_has_nonlocal_label,
17978         current_function_saves_all_registers,
17979         current_function_has_nonlocal_goto,
17980         current_function_has_asm_statement): Remove accesor macros.
17981         * ra-conflict.c (global_conflicts): Update.
17982         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
17983         (suitable_for_tail_call_opt_p): Update.
17984         * builtins.c (expand_builtin_return_addr): Update.
17985         (expand_builtin_setjmp_setup): Update.
17986         (expand_builtin_nonlocal_goto): Update.
17987         * final.c (final_start_function): Update.
17988         (profile_function): Update.
17989         (leaf_function_p): Update.
17990         (only_leaf_regs_used): Update.
17991         * df-scan.c (df_get_exit_block_use_set): Update.
17992         * dojump.c (clear_pending_stack_adjust): Update.
17993         * tree-stdarg.c (gate_optimize_stdarg): Update.
17994         * gimple-low.c (lower_function_body): Update.
17995         * global.c (compute_regsets): Update.
17996         (global_alloc): Update.
17997         * dwarf2out.c (dwarf2out_begin_prologue): Update.
17998         * expr.c (expand_assignment): Update.
17999         * dse.c (dse_step0): Update.
18000         (dse_step1): Update.
18001         * c-decl.c (store_parm_decls): Update.
18002         * local-alloc.c (combine_regs): Update.
18003         (find_free_reg): Update.
18004         * function.c (assign_parms_augmented_arg_list): Update.
18005         (assign_parm_find_data_types): Update.
18006         (assign_parms): Update.
18007         (allocate_struct_function): Update.
18008         (expand_function_start): Update.
18009         (expand_function_end): Update.
18010         (get_arg_pointer_save_area): Update.
18011         (thread_prologue_and_epilogue_insns): Update.
18012         (rest_of_match_asm_constraints): Update.
18013         * stor-layout.c (variable_size): Update.
18014         * gcse.c (gcse_main): Update.
18015         (bypass_jumps): Update.
18016         * gimplify.c (gimplify_function_tree): Update.
18017         * calls.c (emit_call_1): Update.
18018         (expand_call): Update.
18019         * bt-load.c (compute_defs_uses_and_gen): Update.
18020         * except.c (sjlj_assign_call_site_values): Update.
18021         (sjlj_emit_function_enter): Update.
18022         (can_throw_external): Update.
18023         (set_nothrow_function_flags): Update.
18024         (expand_builtin_unwind_init): Update.
18025         (expand_eh_return): Update.
18026         (convert_to_eh_region_ranges): Update.
18027         (output_function_exception_table): Update.
18028         * emit-rtl.c (gen_tmp_stack_mem): Update.
18029         * cfgexpand.c (expand_used_vars): Update.
18030         (tree_expand_cfg): Update.
18031         * cfgcleanup.c (rest_of_handle_jump): Update.
18032         * explow.c (allocate_dynamic_stack_space): Update.
18033         * varasm.c (assemble_start_function): Update.
18034         (force_const_mem): Update.
18035         (mark_constant_pool): Update.
18036         * tree-optimize.c (tree_rest_of_compilation): Update.
18037         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
18038         * tree-cfg.c (notice_special_calls): Update.
18039         (is_ctrl_altering_stmt): Update.
18040         (tree_can_make_abnormal_goto): Update.
18041         (tree_purge_dead_abnormal_call_edges): Update.
18042         * config/alpha/predicates.md: Update.
18043         * config/alpha/alpha.c (alpha_sa_mask): Update.
18044         (alpha_sa_size): Update.
18045         (alpha_does_function_need_gp): Update.
18046         (alpha_expand_prologue): Update.
18047         (alpha_start_function): Update.
18048         (alpha_output_function_end_prologue): Update.
18049         (alpha_expand_epilogue): Update.
18050         * config/frv/frv.c (frv_stack_info): Update.
18051         (frv_expand_epilogue): Update.
18052         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
18053         (s390_register_info): Update.
18054         (s390_frame_info): Update.
18055         (s390_init_frame_layout): Update.
18056         (s390_can_eliminate): Update.
18057         (save_gprs): Update.
18058         * config/spu/spu.c (spu_split_immediate): Update.
18059         (need_to_save_reg): Update.
18060         (spu_expand_prologue): Update.
18061         (spu_expand_epilogue): Update.
18062         * config/sparc/sparc.md: Update.
18063         * config/sparc/sparc.c (eligible_for_return_delay): Update.
18064         (sparc_tls_got): Update.
18065         (legitimize_pic_address): Update.
18066         (sparc_emit_call_insn): Update.
18067         (sparc_expand_prologue): Update.
18068         (output_return): Update.
18069         (print_operand): Update.
18070         (sparc_function_ok_for_sibcall): Update.
18071         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
18072         * config/m32r/m32r.md: Update.
18073         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
18074         (m32r_compute_frame_size): Update.
18075         (m32r_expand_prologue): Update.
18076         (m32r_expand_epilogue): Update.
18077         (m32r_legitimize_pic_address): Update.
18078         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
18079         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
18080         * config/i386/i386.c (ix86_frame_pointer_required): Update.
18081         (gen_push): Update.
18082         (ix86_save_reg): Update.
18083         (ix86_compute_frame_layout): Update.
18084         (ix86_expand_prologue): Update.
18085         (ix86_expand_epilogue): Update.
18086         * config/sh/sh.c (output_stack_adjust): Update.
18087         (calc_live_regs): Update.
18088         (sh5_schedule_saves): Update.
18089         (sh_expand_prologue): Update.
18090         (sh_expand_epilogue): Update.
18091         (sh_setup_incoming_varargs): Update.
18092         (sh_allocate_initial_value): Update.
18093         (sh_get_pr_initial_val): Update.
18094         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
18095         * config/sh/sh.md (label:): Update.
18096         * config/avr/avr.c (out_movhi_mr_r): Update.
18097         * config/crx/crx.h (enum): Update.
18098         * config/xtensa/xtensa.h (along): Update.
18099         * config/stormy16/stormy16.c Update.
18100         (xstormy16_compute_stack_layout): Update.
18101         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
18102         (fr30_expand_prologue): Update.
18103         * config/cris/cris.c (cris_conditional_register_usage): Update.
18104         (cris_reg_saved_in_regsave_area): Update.
18105         (cris_initial_frame_pointer_offset): Update.
18106         (cris_simple_epilogue): Update.
18107         (cris_expand_prologue): Update.
18108         (cris_expand_epilogue): Update.
18109         (cris_expand_pic_call_address): Update.
18110         (cris_asm_output_symbol_ref): Update.
18111         (cris_asm_output_label_ref): Update.
18112         * config/cris/cris.md Update.
18113         * config/iq2000/iq2000.c (compute_frame_size): Update.
18114         (iq2000_expand_epilogue): Update.
18115         * config/mt/mt.h (save_direction): Update.
18116         * config/mn10300/mn10300.c (mn10300_function_value): Update.
18117         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
18118         (ia64_secondary_reload_class): Update.
18119         * config/m68k/m68k.c (m68k_save_reg): Update.
18120         (m68k_expand_prologue): Update.
18121         (m68k_expand_epilogue): Update.
18122         (legitimize_pic_address): Update.
18123         * config/rs6000/rs6000.c (rs6000_got_register): Update.
18124         (first_reg_to_save): Update.
18125         (first_altivec_reg_to_save): Update.
18126         (compute_vrsave_mask): Update.
18127         (compute_save_world_info): Update.
18128         (rs6000_stack_info): Update.
18129         (spe_func_has_64bit_regs_p): Update.
18130         (rs6000_ra_ever_killed): Update.
18131         (rs6000_emit_eh_reg_restore): Update.
18132         (rs6000_emit_allocate_stack): Update.
18133         (rs6000_emit_prologue): Update.
18134         (rs6000_emit_epilogue): Update.
18135         (rs6000_output_function_epilogue): Update.
18136         (output_profile_hook): Update.
18137         (rs6000_elf_declare_function_name): Update.
18138         * config/rs6000/rs6000.h (rs6000_args): Update.
18139         * config/rs6000/rs6000.md: Update.
18140         * config/mcore/mcore.c (mcore_expand_prolog): Update.
18141         * config/arc/arc.c (arc_output_function_epilogue): Update.
18142         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
18143         * config/darwin.c (machopic_function_base_name): Update.
18144         * config/score/score3.c (score3_compute_frame_size): Update.
18145         (rpush): Update.
18146         (rpop): Update.
18147         (score3_epilogue): Update.
18148         * config/score/score7.c (score7_compute_frame_size): Update.
18149         (score7_prologue): Update.
18150         (score7_epilogue): Update.
18151         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
18152         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
18153         * config/arm/arm.c (use_return_insn): Update.
18154         (require_pic_register): Update.
18155         (arm_load_pic_register): Update.
18156         (arm_compute_save_reg0_reg12_mask): Update.
18157         (arm_compute_save_reg_mask): Update.
18158         (thumb1_compute_save_reg_mask): Update.
18159         (output_return_instruction): Update.
18160         (arm_output_function_prologue): Update.
18161         (arm_output_epilogue): Update.
18162         (arm_get_frame_offsets): Update.
18163         (arm_expand_prologue): Update.
18164         (thumb_pushpop): Update.
18165         (thumb_exit): Update.
18166         (thumb1_expand_prologue): Update.
18167         (thumb1_expand_epilogue): Update.
18168         (arm_unwind_emit): Update.
18169         (arm_output_fn_unwind): Update.
18170         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
18171         * config/arm/arm.md: Update.
18172         * config/pa/pa.md: Update.
18173         * config/pa/pa.c (legitimize_pic_address): Update.
18174         (compute_frame_size): Update.
18175         (hppa_expand_prologue): Update.
18176         (hppa_expand_epilogue): Update.
18177         (borx_reg_operand): Update.
18178         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
18179         (HARD_REGNO_RENAME_OK): Update.
18180         * config/mips/mips.c (mips_global_pointer): Update.
18181         (mips_save_reg_p): Update.
18182         (mips_compute_frame_info): Update.
18183         (mips_frame_pointer_required): Update.
18184         (mips_expand_prologue): Update.
18185         (mips_expand_epilogue): Update.
18186         (mips_can_use_return_insn): Update.
18187         (mips_reorg_process_insns): Update.
18188         * config/v850/v850.c (compute_register_save_size): Update.
18189         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
18190         * config/mmix/mmix.c (along): Update.
18191         (mmix_expand_epilogue): Update.
18192         * config/bfin/bfin.c (legitimize_pic_address): Update.
18193         (must_save_p): Update.
18194         (stack_frame_needed_p): Update.
18195         (add_to_reg): Update.
18196         (bfin_expand_prologue): Update.
18197         * stmt.c (expand_asm_operands): Update.
18198         * reload1.c (reload): Update.
18199         (init_elim_table): Update.
18200
18201 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
18202
18203         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
18204
18205 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
18206
18207         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
18208         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
18209         (mov<mode>): Removed.
18210         (*movv4sf_internal): Likewise.
18211         (*movv2df_internal): Likewise.
18212
18213 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
18214
18215         * config.gcc (crx-*-elf): Remove deprecation.
18216
18217 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
18218
18219         * config/i386/cygming-crtend.c (register_frame_ctor): Register
18220         __gcc_deregister_frame with atexit.
18221         (deregister_frame_dtor): Remove.
18222
18223 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
18224             Nathan Sidwell  <nathan@codesourcery.com>
18225
18226         * config/rs6000/rs6000.opt (mspe): Remove Var property.
18227         (misel): Likewise.
18228         * config/rs6000/rs6000.h (rs6000_spe): Declare.
18229         (rs6000_isel): Likewise.
18230         * config/rs6000/rs6000.c (rs6000_spe): New variable.
18231         (rs6000_isel): New variable.
18232         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
18233
18234 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
18235
18236         PR c++/35758
18237         * c-common.c (handle_vector_size_attribute): Call
18238         lang_hooks.types.reconstruct_complex_type instead of
18239         reconstruct_complex_type.
18240         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
18241         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
18242         * langhooks.h (struct lang_hooks_for_types): Add
18243         reconstruct_complex_type hook.
18244         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
18245         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
18246
18247 2008-04-24  Richard Guenther  <rguenther@suse.de>
18248
18249         * c-common.h (check_builtin_function_arguments): Declare.
18250         * c-common.c (validate_nargs): New function.
18251         (check_builtin_function_arguments): Likewise.
18252         * c-typeck.c (build_function_call): Call
18253         check_builtin_function_arguments.
18254         * builtins.c (fold_builtin_classify): Remove error reporting code.
18255         (fold_builtin_unordered_cmp): Likewise.
18256         (fold_builtin_1): Likewise.
18257         (fold_builtin_n): Likewise.
18258
18259 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
18260
18261         PR tree-optimization/36008
18262         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
18263         the original op1, rather than delta by step.
18264
18265 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
18266             Sebastian Pop  <sebastian.pop@amd.com>
18267
18268         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
18269         eliminate_local_variables_stmt, eliminate_local_variables,
18270         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
18271         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
18272         of code delimited by two edges in the CFG.
18273         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
18274         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
18275         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
18276         the case of parallelisation of reductions.
18277         (expr_invariant_in_region_p): New.
18278
18279         * tree-flow.h (gather_blocks_in_sese_region): Declared.
18280         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
18281
18282 2008-04-24  Ira Rosen  <irar@il.ibm.com>
18283             Richard Guenther  <rguenther@suse.de>
18284
18285         PR tree-optimization/36034
18286         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
18287         incapable of dealing with loads with gaps.
18288
18289 2008-04-24  Rafael Espíndola  <espindola@google.com>
18290
18291         * tree-flow.h (vrp_evaluate_conditional): Change signature.
18292         * tree-ssa-propagate.c (fold_predicate_in): Update call to
18293         vrp_evaluate_conditional.
18294         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
18295         (vrp_evaluate_conditional): Split the cond argument.
18296         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
18297         (simplify_stmt_for_jump_threading): Update call to
18298         vrp_evaluate_conditional.
18299
18300 2008-04-24  Ira Rosen  <irar@il.ibm.com>
18301
18302         PR tree-optimization/35982
18303         * tree-vect-analyze.c (vect_check_interleaving): Check that the
18304         interleaved data-refs are of the same type.
18305
18306 2008-04-24  Danny Smith  <dannysmith@users.net>
18307
18308         * c-format.c (check_format_info_main): Use strncmp rather than a
18309         magic prefix to handle multichar length specs.
18310         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
18311         Don't prefix "I64" and "I32" with '\0'.
18312
18313 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
18314
18315         PR target/36015
18316         * config/i386/i386.c (init_cumulative_args): Don't pass anything
18317         in registers for -m32 only if stdarg_p (fntype).
18318
18319 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
18320
18321         PR rtl-optimization/36006
18322         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
18323         temp to op0 in order to avoid invalid rtx sharing.
18324
18325 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
18326
18327         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
18328         check TREE_INVARIANT.
18329         * tree-gimple.c (is_gimple_address): New.
18330         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
18331         * tree-gimple.h (is_gimple_address): New.
18332         * tree.h (decl_address_invariant_p): New.
18333         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
18334         (build_string): Likewise.
18335         (decl_address_invariant_p): New, from is_gimple_invariant_address.
18336         (tree_invariant_p_1): Likewise.
18337         (save_expr): Use it.
18338         (tree_invariant_p): New.
18339         (skip_simple_arithmetic): Use it.
18340         (stabilize_reference_1): Use it.
18341         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
18342         simplify.
18343         (build1_stat): Drop code to compute TREE_INVARIANT.
18344         (build2_stat): Drop code to compute TREE_INVARIANT.
18345         (build3_stat): Drop code to compute TREE_INVARIANT.
18346         (build4_stat): Drop code to compute TREE_INVARIANT.
18347         (build5_stat): Drop code to compute TREE_INVARIANT.
18348         (build7_stat): Drop code to compute TREE_INVARIANT.
18349         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
18350         * tree.h (struct tree_base): Remove invariant_flag.
18351         (TREE_INVARIANT): Remove.
18352         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
18353         (fold_builtin_expect): Check TREE_CONSTANT.
18354         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
18355         * c-tree.h (c_expr_to_decl): Drop third parameter.
18356         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
18357         (build_c_cast): Don't set TREE_INVARIANT.
18358         (pop_init_level): Don't set TREE_INVARIANT.
18359         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
18360         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
18361         TREE_CONSTANT.
18362         (gimplify_init_constructor): Don't set TREE_INVARIANT.
18363         (gimplify_addr_expr): Adjust comment.
18364         * tree-mudflap.c (mf_build_string):
18365         * print-tree.c (print_node): Don't print TREE_INVARIANT.
18366         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
18367         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
18368         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
18369         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
18370         * langhooks.h (struct lang_hooks): Drop third parameter from
18371         expr_to_decl.
18372
18373 2008-04-23  Richard Guenther  <rguenther@suse.de>
18374
18375         PR tree-optimization/27799
18376         PR tree-optimization/32921
18377         PR tree-optimization/32624
18378         * tree-ssa-structalias.c (merge_smts_into): Only merge the
18379         SMTs aliases and the tag itself into the solution.
18380         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
18381         merge the points-to solution back into the SMT aliases.
18382         (may_alias_p): Use alias_set_subset_of instead of
18383         aliases_conflict_p.  A pointer which points to
18384         memory with alias set zero may access any variable.
18385
18386 2008-04-23  Richard Guenther  <rguenther@suse.de>
18387
18388         * alias.c (alias_set_subset_of): Correctly handle asking
18389         if zero is a subset of an alias set with zero child.
18390         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
18391         (compute_flow_insensitive_aliasing): Correctly walk all
18392         pointers.  Do not unnecessarily union sets.
18393
18394 2008-04-23  Richard Guenther  <rguenther@suse.de>
18395
18396         PR middle-end/36021
18397         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
18398
18399 2008-04-22  Tomas Bily  <tbily@suse.cz>
18400
18401         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
18402         unreachable case.
18403         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
18404         NON_LVALUE_EXPR.
18405         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
18406         * tree-ssa-structalias.c (get_constraint_for): Likewise.
18407         * tree-inline.c (estimate_num_insns_1): Likewise.
18408         * varasm.c (const_hash_1, compare_constant, copy_constant)
18409         (compute_reloc_for_constant, output_addressed_constants): Likewise.
18410         * emit-rtl.c (component_ref_for_mem_expr)
18411         (set_mem_attributes_minus_bitpos): Likewise.
18412         * expr.c (highest_pow2_factor, expand_expr_real_1, )
18413         (is_aligning_offset): Likewise.
18414         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
18415         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
18416         * dojump.c (do_jump): Likewise.
18417         * builtins.c (get_pointer_alignment, get_memory_rtx)
18418         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
18419         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
18420
18421 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
18422
18423         PR rtl-optimization/36017
18424         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
18425         expanding the library call.
18426
18427 2008-04-22  Ian Lance Taylor  <iant@google.com>
18428
18429         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
18430         than size_in_bytes.
18431
18432 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
18433
18434         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
18435         of LR/CTR moves for Power6.
18436
18437 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
18438
18439         PR middle-end/36003
18440         * passes.c (init_optimization_passes): Remove
18441         pass_fast_rtl_byte_dce.
18442
18443 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
18444
18445         PR target/29096
18446         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
18447         builtin functions to generate faster code.
18448         (_mm_cvtpu16_ps): Ditto.
18449         (_mm_cvtpi32x2_ps): Ditto.
18450
18451 2008-04-22  Nick Clifton  <nickc@redhat.com>
18452
18453         * common.opt (ftree-loop-distribution): Add Optimization
18454         attribute.
18455
18456         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
18457         (frv_expand_builtin_va_start): Likewise.
18458
18459         * config/arm/arm.c (thumb_find_work_register): Fix location of
18460         argument register count.
18461
18462 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18463
18464         Support scheduling for ColdFire V1 and V3 microarchitecture.
18465         Improve scheduling of multiplication instructions.
18466
18467         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
18468         (mac): New instruction attribute.
18469         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
18470         (m68k_sched_mac): New variable.
18471         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
18472         Handle cfv1 and cfv3.
18473         (max_insn_size): New static variable.
18474         (struct _sched_ib): New type.
18475         (sched_ib): New static variable.
18476         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
18477         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
18478         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
18479         Update.
18480         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
18481         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
18482         new variables.  Update.
18483         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
18484         Add modeling of cfv3 instruction buffer.  Update.
18485         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
18486         * config/m68k/m68k.h (TUNE_CFV3): New macro.
18487         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
18488         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
18489         a particular reservation applies to.
18490         (type2): Reorganize attribute values.  Rename alu to alu_reg,
18491         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
18492         to mul_l and mul_w.
18493         (cf_ib_*): Simplify description of instruction buffer.
18494         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
18495         (cf_mem): Split into cf_mem1 and cf_mem2.
18496         (cf_v2_move_??): Rename to cfv12_alu_??.
18497         (cf_v2_move_l_??): Rename to cfv12_omove_??.
18498         (cf_v2_mul_??): Remove reservations.
18499         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
18500         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
18501         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
18502         appropriate place.
18503         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
18504         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
18505         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
18506         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
18507         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
18508         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
18509         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
18510         expansions of the above reservations for instructions of sizes
18511         1, 2 and 3 words.
18512
18513 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18514
18515         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
18516
18517 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
18518
18519         * coverage.c: Include tree-pass.h.
18520         (coverage_counter_alloc): Print da_file_name to the dump file.
18521
18522 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
18523
18524         * sbitmap.c (sbitmap_range_empty_p): New function.
18525         * sbitmap.h (sbitmap_range_empty_p): New function.
18526         * bitmap.h: Now includes obstack.h.
18527
18528 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
18529             Kenneth Zadeck  <zadeck@naturalbridge.com>
18530
18531         * dbgcnt.def (ra_byte_scan): Added.
18532         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
18533         when the last hit happens for a counter.
18534         * timevar.def (TV_DF_BYTE_LR): New variable.
18535         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
18536         * passes.c (pass_fast_rtl_byte_dce): New pass.
18537         * fwprop.c (update_df): Added mode to call df_ref_create.
18538         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
18539         DF_REF_EXTRACT_OFFSET.
18540         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
18541         DF_BYTE_LR_OUT, df_byte_lr): New macro.
18542         (df_mm): New enum.
18543         (df_ref_extract): Added mode field.
18544         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
18545         DF_REF_EXTRACT_OFFSET.
18546         (DF_REF_EXTRACT_MODE): New macro.
18547         (df_byte_lr_bb_info): New structure.
18548         (df_print_byte_regset, df_compute_accessed_bytes,
18549         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
18550         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
18551         df_byte_lr_simulate_uses,
18552         df_byte_lr_simulate_artificial_refs_at_top,
18553         df_byte_lr_simulate_artificial_refs_at_end,
18554         df_compute_accessed_bytes): New function.
18555         (df_ref_create): Add parameter.
18556         (df_byte_lr_get_bb_info): New inline function.
18557         * df-scan.c (df_ref_record, df_uses_record,
18558         df_ref_create_structure): Added mode parameter.
18559         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
18560         df_defs_record, df_uses_record, df_get_conditional_uses,
18561         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
18562         df_entry_block_defs_collect, df_exit_block_uses_collect):
18563         Added mode parameter to calls to df_ref_record, df_uses_record,
18564         df_ref_create_structure.
18565         (df_ref_equal_p, df_ref_compare): Added test for modes.
18566         (df_ref_create_structure): Added code to set mode.  Renamed
18567         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
18568         DF_REF_EXTRACT_OFFSET.
18569         * df-core.c (df_print_byte_regset): New function.
18570         * df-byte-scan.c: New file.
18571         * df-problems.c (df_rd_transfer_function): Removed unnecessary
18572         calls to BITMAP_FREE.
18573         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
18574         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
18575         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
18576         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
18577         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
18578         df_byte_lr_local_compute, df_byte_lr_init,
18579         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
18580         df_byte_lr_transfer_function, df_byte_lr_free,
18581         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
18582         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
18583         df_byte_lr_simulate_uses,
18584         df_byte_lr_simulate_artificial_refs_at_top,
18585         df_byte_lr_simulate_artificial_refs_at_end): New function.
18586         * dce.c (byte_dce_process_block): New function.
18587         (dce_process_block): au is now passed in rather than computed
18588         locally.  Changed loops that look at artificial defs to not look
18589         for conditional or partial ones, because there never are any.
18590         (fast_dce): Now is able to drive byte_dce_process_block or
18591         dce_process_block depending on the kind of dce being done.
18592         (rest_of_handle_fast_dce): Add parameter to fast_dce.
18593         (rest_of_handle_fast_byte_dce): New function.
18594         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
18595         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
18596
18597 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
18598
18599         PR fortran/35019
18600         * gcc.h: Added fortran options that take arguments to
18601         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
18602         macros.
18603
18604 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
18605
18606         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
18607         scalarization if on the LHS and not a full access.
18608
18609 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18610
18611         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
18612
18613 2008-04-18  Rafael Espíndola  <espindola@google.com>
18614
18615         * tree-vrp.c (find_case_label_index): Fix the binary search.
18616         (find_case_label_range): New.
18617         (vrp_visit_switch_stmt): Use find_case_label_range.
18618         (simplify_switch_using_ranges): Use find_case_label_range.
18619
18620 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
18621
18622         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
18623         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
18624
18625 2008-04-18  Tom Tromey  <tromey@redhat.com>
18626
18627         PR libcpp/15500:
18628         * doc/cpp.texi (Implementation-defined behavior): Mention
18629         -finput-charset.
18630
18631 2008-04-18  Ian Lance Taylor  <iant@google.com>
18632
18633         * fold-const.c (pointer_may_wrap_p): New static function.
18634         (fold_comparison): Add another test for pointer overflow.  Use
18635         pointer_may_wrap_p to disable some false positives.
18636
18637 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
18638
18639         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
18640         (fname_as_string): Match updated cpp_interpret_string prototype.
18641         (fix_string_type): Support char16_t* and char32_t*.
18642         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
18643         derivative) nodes.  Register as builtin if C++0x.
18644         (c_parse_error): Support CPP_CHAR{16,32}.
18645         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
18646         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
18647         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
18648         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
18649         CTI_CHAR32_ARRAY_TYPE>: New elements.
18650         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
18651         char32_type_node, signed_char32_type_node, char16_array_type_node,
18652         char32_array_type_node): New defines.
18653         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
18654         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
18655         (lex_string): Support CPP_STRING{16,32}, match updated
18656         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
18657         (lex_charconst): Support CPP_CHAR{16,32}.
18658         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
18659         and CPP_STRING{16,32}.
18660
18661 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
18662
18663         PR bootstrap/35457
18664         * aclocal.m4: Regenerate.
18665         * configure: Regenerate.
18666
18667 2008-04-18  Jan Hubicka  <jh@suse.cz>
18668
18669         * except.c (dw2_size_of_call_site_table,
18670         sjlj_size_of_call_site_table): Use vector API for call_site_record.
18671
18672         * cgraphbuild.c (build_cgraph_edges): Update.
18673         * tree-pass.h: Update comment.
18674         * final.c (leaf_function_p): Update.
18675         (leaf_renumber_regs): Update.
18676         (rest_of_clean_state): Update.
18677         * omp-low.c (expand_omp_parallel): Update.
18678         * ipa-reference.c (analyze_function): Update.
18679         * reorg.c (find_end_label): Update.
18680         (optimize_skip): Update.
18681         (fill_simple_delay_slots): Update.
18682         (fill_simple_delay_slots): Update.
18683         (make_return_insns): Update.
18684         (dbr_schedule): Update.
18685         * gimple-low.c (record_vars_into): Update.
18686         * cfgbuild.c (make_edges): Update.
18687         * function.c (assign_stack_local): Update.
18688         (assign_parm_adjust_stack_rtl): Update.
18689         (locate_and_pad_parm): Update.
18690         (allocate_struct_function): Do not initialize stack_alignment_needed
18691         and preferred_stack_boundary here.
18692         (stack_protect_prologue): Update.
18693         (stack_protect_epilogue): Update.
18694         (expand_function_start): Initialize stack_alignment_needed,
18695         preferred_stack_boundary and max_jumptable_ents.
18696         (expand_function_end): Update.
18697         (free_after_compilation): Do not NULLify epilogue_delay_list.
18698         * function.h (struct rtl_data): Add stack_protect_guard,
18699         stack_alignment_needed,
18700         preferred_stack_boundary, epilogue_delay_list.
18701         (struct function): Remove value_histograms, stack_alignment_needed,
18702         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
18703         last_label_uid,
18704         unexpanded_var_list, stack_protect_guard.
18705         (current_function_epilogue_delay_list): Remove.
18706         * ipa-type-escape.c (analyze_function): Update.
18707         * gimplify.c (pop_gimplify_context): Update comment.
18708         * calls.c (expand_call): Update.
18709         (emit_library_call_value_1): Update.
18710         * except.c (set_nothrow_function_flags): Update.
18711         * cfgexpand.c (get_decl_align_unit): Update.
18712         (create_stack_guard): Update.
18713         (estimated_stack_frame_size): Update.
18714         (expand_used_vars): Update.
18715         (tree_expand_cfg): Free histogram earliers, init expansion variables.
18716         * explow.c (allocate_dynamic_stack_space): Update.
18717         * tree-ssa-live.c (remove_unused_locals): Update.
18718         * varasm.c (mark_constant_pool): Update.
18719         * tree-inline.c (remap_decls): Update.
18720         (initialize_cfun): Update.
18721         (declare_return_variable): Update.
18722         (inline_forbidden_p): Update.
18723         (expand_call_inline): Update.
18724         (declare_inline_vars): Update.
18725         (tree_function_versioning): Update.
18726         * tree-flow.h (value_histograms): New.
18727         (VALUE_HISTOGRAMS): New macro.
18728         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
18729         last_label_uid.
18730         * tree-cfg.c (set_bb_for_stmt): Update.
18731         (replace_by_duplicate_decl): Update.
18732         (move_block_to_fn): Update.
18733         (new_label_mapper): Update.
18734         (dump_function_to_file): Update.
18735         * ipa-struct-reorg.c (build_data_structure): Update.
18736         * cfgrtl.c (print_rtl_with_bb): Update.
18737         * reload1.c (reload): Update.
18738         (reload): Update.
18739         * config/i386/i386.c (setup_incoming_varargs_64,
18740         ix86_compute_frame_layout): Update.
18741         * config/arc/arc.c (arc_output_function_epilogue): Update.
18742
18743 2008-04-18  Marius Strobl <marius@FreeBSD.org>
18744
18745         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
18746         for FreeBSD as well.
18747         * gthr-posix95.h: Likewise.
18748
18749 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
18750
18751         PR rtl-optimization/35838
18752         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
18753         out the byte offset of the first subreg.
18754
18755 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
18756
18757         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
18758         to split_ti instead of three separate calls with single member arrays.
18759         (subti3 splitter): Ditto.
18760         (adddi3 splitter): Ditto with split_di.
18761         (subdi3 splitter): Ditto.
18762         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
18763         two separate calls with single member arrays.  Swap match_dup
18764         operands 1 and 2 to better fit into the array.
18765         (negdi2 splitter): Ditto with split_di.
18766         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
18767         two separate calls with single member arrays.  Swap match_dup operands
18768         6 and 7 to better fit into the array.
18769
18770 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
18771
18772         * config/i386/i386.c (sse_builtin_type): New.
18773         (bdesc_sse_args): Likewise.
18774         (bdesc_sse_3arg): Removed.
18775         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
18776         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
18777         IX86_BUILTIN_ROUNDPS.
18778         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
18779         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
18780         IX86_BUILTIN_ROUNDPS.
18781         (ix86_expand_sse_4_operands_builtin): Removed.
18782         (ix86_expand_sse_operands_builtin): New.
18783         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
18784         and CODE_FOR_sse4_1_roundps.
18785         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
18786         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
18787
18788 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
18789
18790         PR target/35907
18791         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
18792         regs before frame pop when needed.  If use_backchain_to_restore_sp
18793         then load backchain into a temp reg to restore vr and vrsave.  Add
18794         code to restore vr after frame pop if possible.
18795
18796 2008-04-17  Richard Guenther  <rguenther@suse.de>
18797
18798         * tree-vn.c (expressions_equal_p): Do not check type
18799         equality or compatibility before calling operand_equal_p.
18800         * fold-const.c (operand_equal_p): Check equivalence of
18801         integer constants before bailing out due to signedness or
18802         precision differences.
18803         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
18804         spurious differences in type qualification.  Ignore types
18805         for COMPONENT_REFs at all.
18806
18807 2008-04-17  Christian Bruel  <christian.bruel@st.com>
18808
18809         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
18810         msw_skip comparison.
18811
18812 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
18813
18814         PR c/35739
18815         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
18816         reg type.
18817
18818         PR tree-optimization/35899
18819         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
18820         rather than TREE_OPERAND.
18821
18822 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
18823
18824         PR target/35944
18825         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
18826         temporary registers.  Change operand predicate to general_operand.
18827         (remainderxf3): Ditto.
18828
18829 2008-04-16  Richard Guenther  <rguenther@suse.de>
18830
18831         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
18832         * tree-affine.c (aff_combination_expand): Look through some
18833         conversions.
18834
18835 2008-04-15  Doug Kwan  <dougkwan@google.com>
18836
18837         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
18838         for hex printing.
18839         * tree-pretty-print.c (dump_generic_node): Ditto.
18840         * final.c (output_addr_const): Ditto.
18841         * dwarf2out.c (output_cfi): Ditto.
18842         * c-pretty-print.c (pp_c_integer_constant): Ditto.
18843         * print-rtl.c (print_rtx): Ditto.
18844         * print-tree.c (print_node_brief, print_node): Ditto.
18845         * c-common.c (match_case_to_enum_1): Ditto.
18846         * sched-vis.c (print_value): Ditto.
18847         * config/i386/i386.c (print_operand): Cast to long unsigned int
18848         for hex printing.
18849
18850 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
18851         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
18852         MS Windows VirtualProtect function.
18853
18854 2008-04-15  Jan Hubicka  <jh@suse.cz>
18855
18856         * gengtype.c (write_root): Param_is argument is OK.
18857         * expr.c (expand_expr_real_1): Update call of get_exception_*.
18858         * function.h: Include varray.h
18859         (rtl_eh): New stucture based on except.c one.
18860         (call_site_record): New forward declaration and vector type.
18861         * calls.c (emit_call_1): Do not call
18862         note_current_region_may_contain_throw.
18863         * except.c (eh_status): Remove cur_region, try_region since they are
18864         unused.
18865         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
18866         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
18867         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
18868         Remove call_site_data_used, call_site_data_size.
18869         Turn call_site_record into vector in function.h.
18870         (note_current_region_may_contain_throw): Remove.
18871         (get_exception_pointer, get_exception_filter): Do not take struct
18872         function argument; update.
18873         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
18874         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
18875         build_post_landing_pads, dw2_build_landing_pads,
18876         sjlj_assign_call_site_values, sjlj_mark_call_sites,
18877         sjlj_emit_function_enter, sjlj_emit_function_enter,
18878         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
18879         sjlj_build_landing_pads, finish_eh_generation,
18880         remove_exception_handler_label, remove_eh_handler,
18881         maybe_remove_eh_handler, add_reachable_handler,
18882         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
18883         add_action_record, collect_one_action_chain, add_call_site,
18884         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
18885         sjlj_output_call_site_table, output_function_exception_table,
18886         * except.h (note_current_region_may_contain_throw): Remove
18887         (get_exception_pointer, get_exception_filter): Do not take struct
18888         function argument.
18889         * Makefile.in (GTFILES): Put varargs before struct function.
18890
18891 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
18892
18893         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
18894         punt for STRING_CST.
18895         (get_constraint_for): Deal with STRING_CST here instead.
18896
18897 2008-04-15  Richard Guenther  <rguenther@suse.de>
18898
18899         * tree-ssa-propagate.c (substitute_and_fold): Substitute
18900         statements in a basic-block with a backward walk.  Do not
18901         substitute into dead statements but instead remove those.
18902
18903 2008-04-15  Richard Guenther  <rguenther@suse.de>
18904
18905         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
18906         to zero, thus disable creation of SFTs.
18907
18908 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
18909
18910         * tree-predcom.c (suitable_reference_p): Return false if the
18911         reference can throw.
18912
18913 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
18914
18915         PR c/35751
18916         * c-decl.c (finish_decl): If extern or static var has variable
18917         size, set TREE_TYPE (decl) to error_mark_node.
18918
18919 2008-04-15  Rafael Espíndola  <espindola@google.com>
18920
18921         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
18922         variable arg1.
18923
18924 2008-04-15  Richard Guenther  <rguenther@suse.de>
18925
18926         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
18927         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
18928         (visit_reference_op_load): Do walk vuse-vdef chains on
18929         vn_reference_lookup.
18930         (visit_reference_op_store): But do not here.
18931         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
18932         vn_reference_lookup.
18933         (vn_lookup_with_vuses): But do so here.
18934
18935 2008-04-14  Ian Lance Taylor  <iant@google.com>
18936
18937         * fold-const.c (fold_overflow_warning): Remove assertion.
18938
18939 2008-04-15  Ben Elliston  <bje@au.ibm.com>
18940
18941         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
18942         temp1 local variables.
18943
18944 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
18945
18946         PR target/35661
18947         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
18948         ".text.unlikely" section as executable.
18949
18950 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
18951
18952         * config/ia64/ia64.c (rtx_needs_barrier): Handle
18953         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
18954         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
18955         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
18956         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
18957         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
18958         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
18959
18960 2008-04-14  Ian Lance Taylor  <iant@google.com>
18961
18962         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
18963         * fold-const.c (fold_comparison): If appropriate, test
18964         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
18965         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
18966         reassociating a pointer type.
18967         * doc/invoke.texi (Optimize Options): Document that
18968         -fstrict-overflow applies to pointer wraparound.
18969
18970 2008-04-13  Jan Hubicka  <jh@suse.cz>
18971
18972         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
18973
18974 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
18975
18976         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
18977         we are going to "save the world".
18978
18979 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
18980
18981         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
18982         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
18983         operand 0 constraint, not "=".
18984
18985 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
18986
18987         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
18988
18989 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
18990
18991         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
18992         of size of positions_needed * CHAR_BIT.
18993
18994 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
18995
18996         PR middle-end/35897
18997         * dse.c (store_info): Change positions_needed to unsigned
18998         HOST_WIDE_INT.
18999         (lowpart_bitmask): New.
19000         (record_store): Cast to unsigned HOST_WIDE_INT for
19001         positions_needed.  Assert width <= size of positions_needed *
19002         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
19003         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
19004         lowpart_bitmask to set mask.
19005
19006 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
19007
19008         * config/bfin/constraints.md: New file.
19009         * config/bfin/bfin.md: Include it.
19010         (adddi3): Use satisfies_constraint functions instead of the old macros.
19011         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
19012         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
19013         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
19014         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
19015         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
19016         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
19017         EXTRA_CONSTRAINT): Delete.
19018         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
19019         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
19020         of the old macros.
19021         * config/bfin/bfin.c: Include "tm-constrs.h".
19022         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
19023         Use satisfies_constraint functions instead of the old macros.
19024         * doc/md.texi (Blackfin Constraints): Update file name reference.
19025
19026 2008-04-11  Richard Guenther  <rguenther@suse.de>
19027
19028         PR tree-optimization/35869
19029         * tree-vrp.c (execute_vrp): Move switch statement update after
19030         jump threading.  Schedule another cfg cleanup run.
19031
19032 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
19033
19034         PR c/35744
19035         * attribs.c (decl_attributes): Return early on errorneous node.
19036
19037 2008-04-10  Oleg Ryjkov  <olegr@google.com>
19038
19039         * tree.h (struct tree_base): Added a new flag default_def_flag.
19040         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
19041
19042 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
19043
19044         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
19045
19046 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19047
19048         PR target/35768
19049         * pa.md: Define mode iterator P.  Define mode attribute dwc.
19050         (dcacheflush): Update pattern to use iterator P and attribute dwc.
19051         (icacheflush): Likewise.
19052         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
19053         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
19054
19055 2008-04-11  Ben Elliston  <bje@au.ibm.com>
19056
19057         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
19058
19059 2008-04-10  Rafael Espíndola  <espindola@google.com>
19060
19061         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
19062         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
19063         (extract_range_from_expr): The same.
19064
19065 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
19066
19067         * config/mips/mips.md (GPR2): New mode iterator.
19068         (seq): Add comment.
19069         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
19070         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
19071         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
19072         Rewrite these to take two modes, the mode of comparison and the
19073         mode of the destination.
19074         * config/mips/mips.c (mips_expand_scc): Instead of having
19075         paradoxical subreg as destination, expand "narrowing" scc if mode
19076         of comparison is SI and target is requested in DI mode.
19077         (mips_emit_int_order_test): Update comment.  Make mode of
19078         comparison match CMP0 rather than TARGET.  When creating inverse
19079         target use mode of TARGET.
19080
19081 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
19082
19083         * gcov-dump.c (tag_summary): Only print summaries for the first
19084         GCOV_COUNTERS_SUMMABLE counters.
19085
19086 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
19087
19088         * config/i386/i386.md (absneg): New code iterator.
19089         (absnegprefix): New code attribute.
19090         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
19091         patterns using absneg code iterator.
19092         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
19093         using absneg code iterator.
19094         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
19095         *neg<mode>2 patterns using absneg code iterator.
19096         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
19097         *negextendsfdf2 patterns using absneg code iterator.
19098         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
19099         *negextendsfxf2 patterns using absneg code iterator.
19100         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
19101         *negextendsfdf2 patterns using absneg code iterator.
19102         * config/i386/sse.md (<code><mode>2): Macroize expander from
19103         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
19104
19105 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
19106
19107         * config/s390/s390.h: Remove the remains of the recent search
19108         & replace action of current_function_outgoing_args_size.
19109
19110 2008-04-10  Ira Rosen  <irar@il.ibm.com>
19111
19112         PR tree-optimization/35821
19113         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
19114         NEW_STMT_LIST is not NULL.
19115
19116 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
19117
19118         PR libstdc++/35597
19119         * toplev.c (process_options): Remove -ffunction-sections debugging
19120         warning.
19121
19122 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
19123
19124         PR middle-end/PR28690
19125         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
19126         than gen_rtx_fmt_ee to perform more canonicalizations.
19127
19128 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19129
19130         PR driver/35665
19131         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
19132
19133 2008-04-09  Richard Guenther  <rguenther@suse.de>
19134
19135         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
19136         (dump_function_to_file): Dump function arguments with types.
19137
19138 2008-04-08  Richard Guenther  <rguenther@suse.de>
19139
19140         * fold-const.c (fold_widened_comparison): Do not allow
19141         sign-changes that change the result.
19142
19143 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
19144
19145         PR target/35839
19146         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
19147         kinds of indirect references.
19148
19149 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
19150
19151         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
19152         GNU Fortran language string.
19153
19154 2008-04-08  Rafael Espíndola  <espindola@google.com>
19155
19156         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
19157         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
19158         * tree.h (tree_call_nonnegative_warnv_p): New.
19159
19160 2008-04-08  Jan Hubicka  <jh@suse.cz>
19161
19162         * function.c (free_after_compilation): Clear out regno_reg_rtx
19163         pointer.
19164
19165 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
19166
19167         Revert
19168         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
19169
19170         PR middle-end/PR28690
19171         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
19172         same precedence as REG_POINTER and MEM_POINTER operands.
19173
19174 2008-04-08  Richard Guenther  <rguenther@suse.de>
19175
19176         PR middle-end/35834
19177         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
19178         for adding index to base.
19179
19180 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
19181
19182         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
19183         (MINGW_ENABLE_EXECUTE_STACK): New.
19184         (IN_LIBGCC2): For libgcc include windows.h file for
19185         function declarations.
19186
19187 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
19188
19189         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
19190         and tem2 if tem1 is not a REG or MULT.
19191
19192 2008-04-08  Jan Hubicka  <jh@suse.cz>
19193
19194         * function.h (incomming_args): Break out of struct function.
19195         (function_subsections): Break out of struct function.
19196         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
19197         return_rtx and hard_reg_initial_vals from struct function.
19198         Kill inl_max_label_num.
19199         (current_function_pops_args, current_function_args_info,
19200         current_function_args_size, current_function_args_size,
19201         current_function_pretend_args_size,
19202         current_function_outgoing_args_size,
19203         current_function_internal_arg_pointer, current_function_return_rtx):
19204         Kill compatibility accestor macros.
19205         * builtins.c (expand_builtin_apply_args_1): Update.
19206         (expand_builtin_next_arg): Update.
19207         * df-scan.c (df_get_call_refs): Update.
19208         * dbxout.c (dbxout_function_end): Update.
19209         * dwarf2out.c (dwarf2out_switch_text_section): Update.
19210         (output_line_info): Update.
19211         (secname_for_decl): Update.
19212         (dwarf2out_var_location): Update.
19213         * function.c (free_after_compilation): Update.
19214         (assign_parm_find_stack_rtl): Update.
19215         (assign_parms): Update.
19216         (expand_dummy_function_end): Update.
19217         (expand_function_end): Update.
19218         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
19219         (expand_call): Update.
19220         (emit_library_call_value_1): Update.
19221         (store_one_arg): Update.
19222         * varasm.c (initialize_cold_section_name): Update.
19223         (unlikely_text_section): Update.
19224         (unlikely_text_section_p): Update.
19225         (assemble_start_function): Update.
19226         (assemble_end_function): Update.
19227         (default_section_type_flags): Update.
19228         (switch_to_section): Update.
19229         * integrate.c (set_decl_abstract_flags): Update.
19230         (get_hard_reg_initial_val): Update.
19231         (has_hard_reg_initial_val): Update.
19232         (allocate_initial_values): Update.
19233         * resource.c (init_resource_info): Update.
19234         * config/alpha/alpha.c (NUM_ARGS): Update.
19235         (direct_return): Update.
19236         (alpha_va_start): Update.
19237         (alpha_sa_size): Update.
19238         (alpha_initial_elimination_offset): Update.
19239         (alpha_expand_prologue): Update.
19240         (alpha_start_function): Update.
19241         (alpha_expand_epilogue): Update.
19242         (unicosmk_initial_elimination_offset):
19243         * config/alpha/alpha.md (call expander): Update.
19244         * config/s390/s390.c (s390_register_info): Update.
19245         (s390_register_info): Update.
19246         (s390_frame_info): Update.
19247         (s390_initial_elimination_offset): Update.
19248         (s390_build_builtin_va_list): Update.
19249         (s390_va_start): Update.
19250         * config/spu/spu.c (direct_return): Update.
19251         (spu_expand_prologue): Update.
19252         (spu_initial_elimination_offset): Update.
19253         (spu_build_builtin_va_list): Update.
19254         (spu_va_start): Update.
19255         * config/sparc/sparc.c (sparc_init_modes): Update.
19256         (sparc_compute_frame_size): Update.
19257         (function_value): Update.
19258         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
19259         * config/i386/i386.md (return expander): Update.
19260         * config/i386/i386.c (ix86_va_start): Update.
19261         (ix86_can_use_return_insn_p): Update.
19262         (ix86_compute_frame_layout): Update.
19263         (ix86_expand_epilogue): Update.
19264         * config/sh/sh.c (output_stack_adjust): Update.
19265         (calc_live_regs): Update.
19266         (sh_expand_prologue): Update.
19267         (sh_builtin_saveregs): Update.
19268         (sh_va_start): Update.
19269         (initial_elimination_offset): Update.
19270         (sh_allocate_initial_value): Update.
19271         (sh_function_ok_for_sibcall): Update.
19272         (sh_get_pr_initial_val): Update.
19273         * config/sh/sh.md (return expander): Update.
19274         * config/avr/avr.c (frame_pointer_required_p): UPdate.
19275         * config/crx/crx.c (crx_compute_frame): UPdate.
19276         (crx_initial_elimination_offset): UPdate.
19277         * config/xtensa/xtensa.c (compute_frame_size): Update
19278         (xtensa_builtin_saveregs): Update.
19279         (xtensa_va_start): Update.
19280         (order_regs_for_local_alloc): Update.
19281         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
19282         (xstormy16_expand_builtin_va_start): Update.
19283         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
19284         * config/m68hc11/m68hc11.md (return expanders): Update.
19285         * config/m68hc11/m68hc11.c (expand_prologue): Update.
19286         (expand_epilogue): Update.
19287         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
19288         (cris_simple_epilogue): Update.
19289         (cris_expand_prologue): Update.
19290         (cris_expand_epilogue): Update.
19291         * config/iq2000/iq2000.c (iq2000_va_start): Update.
19292         (compute_frame_size): Update.
19293         * config/mt/mt.c (mt_compute_frame_size): Update.
19294         * config/mn10300/mn10300.c (expand_prologue): Update.
19295         (expand_epilogue): Update.
19296         (initial_offset): Update.
19297         (mn10300_builtin_saveregs):
19298         * config/mn10300/mn10300.md (return expander): Update.
19299         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
19300         (ia64_initial_elimination_offset): Update.
19301         (ia64_initial_elimination_offset): Update.
19302         (ia64_expand_prologue): Update.
19303         * config/m68k/m68k.md (return expander): Update.
19304         * config/rs6000/rs6000.c (rs6000_va_start): Update.
19305         (rs6000_stack_info): Update.
19306         * config/mcore/mcore.c (layout_mcore_frame): Update.
19307         (mcore_expand_prolog): Update.
19308         * config/arc/arc.c (arc_compute_frame_size): Update.
19309         * config/score/score3.c (score3_compute_frame_size): Update.
19310         * config/score/score7.c (score7_compute_frame_size): Update.
19311         * config/arm/arm.c (use_return_insn): Update.
19312         (thumb_find_work_register): Update.
19313         (arm_compute_save_reg_mask): Update.
19314         (arm_output_function_prologue): Update.
19315         (arm_output_epilogue): Update.
19316         (arm_size_return_regs): Update.
19317         (arm_get_frame_offsets): Update.
19318         (arm_expand_prologue): Update.
19319         (thumb_exit): Update.
19320         (thumb_unexpanded_epilogue): Update.
19321         (thumb1_output_function_prologue): Update.
19322         * config/pa/pa.md (return expander): Update.
19323         * config/pa/pa.c (compute_frame_size): Update.
19324         (hppa_builtin_saveregs): Update.
19325         * config/mips/mips.c (mips_va_start): Update.
19326         (mips16_build_function_stub): Update.
19327         (mips_compute_frame_info): Update.
19328         (mips_restore_gp): Update.
19329         (mips_output_function_prologue): Update.
19330         (mips_expand_prologue): Update.
19331         * config/v850/v850.c (compute_frame_size): Update.
19332         (expand_prologue): * config/mmix/mmix.c (along): update.
19333         (mmix_initial_elimination_offset): update.
19334         (mmix_reorg): update.
19335         (mmix_use_simple_return): update.
19336         (mmix_expand_prologue): update.
19337         (mmix_expand_epilogue): Update.
19338         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
19339         (emit_link_insn): Update.
19340
19341 2008-04-08  Anatoly Sokolov <aesok@post.ru>
19342
19343         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
19344         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
19345         instructions.
19346         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
19347         atmega103 device.
19348
19349 2008-04-07  Jan Hubicka  <jh@suse.cz>
19350
19351         * function.h (rtl): Rename to x_rtl.
19352         (crtl): New define.
19353         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
19354         frame_offset, stack_check_probe_note, arg_pointer_save_area,
19355         used_temp_slots avail_temp_slots, temp_slot_level,
19356         nonlocal_goto_handler_labels): Update accesstors.
19357         (rtl): New global variable.
19358         (struct function): Move some fileds to rtl_data.
19359         (get_arg_pointer_save_area): Update prototype.
19360         * builtins.c (expand_builtin_setjmp_receiver): Update call of
19361         get_arg_pointer_save_area.
19362         * expr.c (init_expr): Update
19363         * function.c (get_frame_size): Update
19364         (assign_stack_local): Update
19365         (expand_function_end): Update.
19366         (get_art_pointer_save_area): Update
19367         * function.h
19368         * emit-rtl.c (rtl): Declare.
19369         (regno_reg_rtx): Declare.
19370         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
19371         Update.
19372         (gen_reg_rtx): Update.
19373         * varasm.c (n_deferred_constatns): Update accestor.
19374         (init_varasm_status): Do not allocate varasm_status.
19375         (force_const_mem, get_pool_size, output_constant_pool): Update.
19376         * stmt.c (force_label_rtx): Do not use x_ prefixes.
19377         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
19378         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
19379         * sparc/sparc.h (INIT_EXPANDERS): Update.
19380         * ia64/ia64.h (INIT_EXPANDERS): Update.
19381
19382 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
19383
19384         * reload.c (push_secondary_reload): Add missing break to for loop.
19385
19386 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
19387
19388         PR middle-end/PR28690
19389         * rtlanal.c: Update copyright years.
19390         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
19391         as REG_POINTER and MEM_POINTER operands.
19392         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
19393         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
19394         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
19395         * gcse.c: Update copyright years.
19396         (pre_delete): Call gen_reg_rtx_and_attrs.
19397         (hoist_code): Likewise.
19398         (build_store_vectors): Likewise.
19399         (delete_store): Likewise.
19400         * loop-invariant.c (move_invariant_reg): Likewise.
19401         Update copyright years.
19402
19403 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
19404
19405         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
19406         control string instead of quoted.
19407
19408 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
19409
19410         * doc/rtl.texi: Rewrite of subreg section.
19411
19412 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
19413
19414         PR/35842
19415         * config/i386/i386.c (legitimize_pic_address): Add treating
19416         of dllimport SYM_REF's.
19417         (legitimize_dllimport_symbol): Add prototype.
19418
19419 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
19420
19421         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
19422         reference in constructor with non self-referential type.
19423
19424 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
19425
19426         Removal of Return with Depressed Stack Pointer support
19427         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
19428         (ECF_SP_DEPRESSED): Likewise.
19429         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
19430         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
19431         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
19432         (expand_call): Do not test ECF_SP_DEPRESSED.
19433         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
19434         * function.c (keep_stack_depressed): Delete.
19435         (handle_epilogue_set): Likewise.
19436         (update_epilogue_consts): Likewise.
19437         (emit_equiv_load): Likewise.
19438         (thread_prologue_and_epilogue_insns): Remove support for Return with
19439         Depressed Stack Pointer.
19440         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
19441
19442 2008-04-06  Richard Guenther  <rguenther@suse.de>
19443
19444         PR tree-optimization/35400
19445         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
19446         information from SSA_NAMEs.
19447
19448 2008-04-06  Anatoly Sokolov <aesok@post.ru>
19449
19450         * config/avr/avr.h (avr_mega_p): Remove declaration.
19451         (AVR_MEGA): Remove macro.
19452         * config/avr/avr.c (avr_mega_p): Remove variable.
19453         (avr_override_options): Remove inicializion of avr_mega_p.
19454         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
19455         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
19456         (avr_jump_mode): (Ditto.).
19457         (avr_output_progmem_section_asm_op): (Ditto.).
19458         (avr_asm_init_sections): (Ditto.).
19459         (avr_asm_init_sections): (Ditto.).
19460         (avr_rtx_costs): (Ditto.).
19461         * config/avr/avr.md: (Ditto.).
19462         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
19463         '__AVR_MEGA__'.
19464
19465 2008-04-06  Richard Guenther  <rguenther@suse.de>
19466
19467         PR tree-optimization/35842
19468         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
19469         is_gimple_invariant_address.
19470
19471 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
19472
19473         * gcc.c (default_compilers): Sync Fortran extensions list with
19474         that in fortran/lang-specs.h.
19475         * doc/invoke.texi: Likewise.
19476         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
19477         * dwarf2out.c (gen_compile_unit_die): Likewise.
19478
19479 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
19480
19481         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
19482
19483 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
19484
19485         PR target/12329
19486         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
19487         attribute is used for nested functions.
19488
19489 2008-04-05  Jan Hubicka  <jh@suse.cz>
19490
19491         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
19492
19493         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
19494         letter argument.
19495         (dump_files): Update.
19496         (enable_rtl_dump_file): Do not accept letter argument.
19497         * tree-pass.h (dump_file_info): Remove letter argument.
19498         * toplev.c (decode_d_option): Update -da handling.
19499         * toplev.h (enable_rtl_dump_file): Update prototype.
19500         * passes.c (register_one_dump_file): Do not accept IPA argument; work
19501         it out based on pass type.
19502         (register_dump_files_1): Likewise.
19503         (init_optimization_passes): Update register_one_dump_file calls.
19504         (execute_one_pass): Sanity check that IPA passes are called at IPA
19505         level and RTL passes at RTL level.
19506         (execute_pass_list): IPA pass can not be after or subpass of
19507         GIMPLE/RTL pass.
19508         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
19509         disallov RTL subpasses of IPA subpasses.
19510
19511 2008-04-05  Ben Elliston  <bje@au.ibm.com>
19512
19513         * tree-cfg.c (need_fake_edge_p): Return false for calls to
19514         builtins that return exactly once and do not throw. Cache call to
19515         call_expr_flags.
19516
19517 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
19518
19519         PR rtl-optimization/34916
19520         PR middle-end/35519
19521         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
19522         between instruction pairs.
19523
19524 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
19525
19526         * doc/invoke.texi: Document -mbitops for SH.
19527         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
19528         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
19529         * config/sh/sh.c (print_operand): Add %t operand code.
19530         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
19531         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
19532         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
19533         (extendqihi2): Likewise.
19534         (movqi_i): Likewise.
19535         (insv): Use bset, bclr and bst instructions for SH2A if possible.
19536         (extv): Use bld instruction for SH2A if possible.
19537         (extzv): Likewise.
19538         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
19539         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
19540         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
19541         (bset.b, bclr.b): Define peepholes.
19542         * config/sh/sh.opt (mbitops): New option.
19543
19544 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
19545
19546         PR target/35620
19547         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
19548         and view convert expression.
19549
19550 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
19551
19552         PR target/35364
19553         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
19554
19555 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
19556
19557         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
19558
19559         * config/i386/cpuid.h (bit_AES): New.
19560         (bit_PCLMUL): Likewise.
19561
19562         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
19563         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
19564         SSE2 if AES or PCLMUL is enabled.
19565         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
19566         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
19567         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
19568         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
19569         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
19570         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
19571         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
19572         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
19573         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
19574         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
19575         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
19576         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
19577         __builtin_ia32_aeskeygenassist128 and
19578         __builtin_ia32_pclmulqdq128.
19579         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
19580         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
19581         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
19582
19583         * config/i386/i386.h (TARGET_AES): New.
19584         (TARGET_PCLMUL): Likewise.
19585         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
19586
19587         * config/i386/i386.md (UNSPEC_AESENC): New.
19588         (UNSPEC_AESENCLAST): Likewise.
19589         (UNSPEC_AESDEC): Likewise.
19590         (UNSPEC_AESDECLAST): Likewise.
19591         (UNSPEC_AESIMC): Likewise.
19592         (UNSPEC_AESKEYGENASSIST): Likewise.
19593         (UNSPEC_PCLMUL): Likewise.
19594
19595         * config/i386/i386.opt (maes): New.
19596         (mpclmul): Likewise.
19597
19598         * config/i386/sse.md (aesenc): New pattern.
19599         (aesenclast): Likewise.
19600         (aesdec): Likewise.
19601         (aesdeclast): Likewise.
19602         (aesimc): Likewise.
19603         (aeskeygenassist): Likewise.
19604         (pclmulqdq): Likewise.
19605
19606         * config/i386/wmmintrin.h: New.
19607
19608         * doc/extend.texi: Document AES and PCLMUL built-in function.
19609
19610         * doc/invoke.texi: Document -maes and -mpclmul.
19611
19612 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
19613
19614         * function.c (free_after_parsing): Replace with
19615         cxx_push_function_context from C++ front-end.
19616         (allocate_struct_function): Don't call langhook.
19617         * langhooks.h (struct lang_hooks_for_functions): Delete.
19618         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
19619         member "function".
19620         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
19621         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
19622         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
19623         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
19624         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
19625         remove LANG_HOOKS_FUNCTION_INITIALIZER.
19626         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
19627
19628         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
19629         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
19630
19631 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
19632
19633         PR c/35440
19634         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
19635         for all types.
19636
19637 2008-04-04  Richard Guenther  <rguenther@suse.de>
19638
19639         PR middle-end/35823
19640         * fold-const.c (optimize_minmax_comparison): Use the correct
19641         type for the constant in the simplified comparison.
19642
19643 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
19644
19645         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
19646         Pass L2 size as "--param l2-cache-size" to the compiler.
19647         (decode_l2_cache): New function to decode L2 cache parameters using
19648         0x8000006 extended cpuid function.
19649         (detect_caches_amd): Determine parameters of L2 cache using
19650         decode_l2_caches function.
19651         (decode_caches_intel): Decode L2 cache parameters.
19652         (detect_caches_intel): Determine L2 cache parameters using
19653         decode_caches_intel and decode_l2_caches functions.
19654
19655 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
19656
19657         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
19658         secondary input reload for subword loads from the constant pool.
19659
19660 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
19661
19662         PR target/35713
19663         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
19664           constants of the appropriate size for runtime calculations.
19665
19666         PR c/35712
19667         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
19668           decimal-float literal constant zero.
19669
19670 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
19671
19672         PR c/35738
19673         * c-parser.c (c_parser_omp_atomic): Call
19674         default_function_array_conversion on the RHS.
19675
19676         PR middle-end/35818
19677         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
19678         call is_variable_sized if decl has incomplete type.
19679
19680 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
19681
19682         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
19683
19684 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
19685
19686         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
19687         iterators.
19688         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
19689         (sgt<u>): Merge sgt and sgtu into new expander.
19690         (sgt, sgtu): Remove expanders.
19691         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
19692         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
19693         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
19694         *sgtu_<mode>_mips16 into new pattern.
19695         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
19696         (sge<u>): Merge sge and sgeu into new expander.
19697         (sge, sgeu): Remove expanders.
19698         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
19699         new pattern.
19700         (*sge_<mode>, second *sge_<mode>): Remove patterns.
19701         (slt<u>): Merge slt and sltu into new expander.
19702         (slt, sltu): Remove expanders.
19703         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
19704         (*slt_<mode>, *sltu_<mode>): Remove patterns.
19705         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
19706         *sltu_<mode>_mips16 into new pattern.
19707         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
19708         (sle<u>): Merge sle and sleu into new expander.
19709         (sle, sleu): Remove expanders.
19710         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
19711         (*sle_<mode>, *sleu_<mode>): Remove patterns.
19712         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
19713         *sleu_<mode>_mips16 into new pattern.
19714         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
19715
19716 2008-04-03  Jan Hubicka  <jh@suse.cz>
19717
19718         PR tree-optimization/35795
19719         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
19720         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
19721         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
19722         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
19723         * score/score3.c (score3_output_mi_thunk): Likewise.
19724         * score/score7.c (score7_output_mi_thunk): Likewise.
19725         * mips/mips.c (mips_output_mi_thunk): Likewise.
19726
19727 2008-04-03  Richard Guenther  <rguenther@suse.de>
19728
19729         * tree-vrp.c (extract_range_from_unary_expr): Handle all
19730         conversions.  Simplify code.
19731
19732 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
19733
19734         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
19735
19736 2008-04-03  Tom Tromey  <tromey@redhat.com>
19737             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19738
19739         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
19740         * config/bfin/t-bfin-linux (generated_files): Add
19741         linux-sysroot-suffix.h.
19742         * doc/install.texi (Prerequisites): Require make 3.80.
19743         * doc/sourcebuild.texi (Front End Directory): Document new
19744         variable.
19745         * Makefile.in (generated_files): New variable.
19746         (ALL_HOST_OBJS): New variable.
19747         ($(ALL_HOST_OBJS)): New target.
19748
19749 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
19750
19751         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
19752         (remap_block): Call id->transform_lang_insert_block instead
19753         of langhook.
19754         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
19755         Set id.transform_lang_insert_block to NULL.
19756         (clone_body): Move to cp/optimize.c
19757         * tree-inline.h (struct copy_body_data): Change
19758         transform_lang_insert_block to function pointer.
19759         (copy_generic_body, copy_decl_no_change): Export.
19760         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
19761         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
19762         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
19763
19764         * c-tree.h (insert_block): Kill.
19765         * c-decl.c (insert_block): Kill.
19766
19767 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
19768
19769         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
19770         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
19771         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
19772         argument.
19773         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
19774         argument, call {push,pop}_function_context from here.
19775         * c-parser.c: Use c_{push,pop}_function_context.
19776
19777         * function.c (push_function_context_to): Move meat ...
19778         (push_function_context): ... here.  Simplify.
19779         * function.c (pop_function_context_from): Move meat ...
19780         (pop_function_context): ... here.  Simplify.
19781         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
19782         leave_nested).
19783         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
19784         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
19785         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
19786         * tree.h (push_function_context_to, pop_function_context_from): Remove.
19787
19788 2008-04-03  Ben Elliston  <bje@au.ibm.com>
19789
19790         * expmed.c (extract_force_align_mem_bit_field): Remove.
19791
19792 2008-04-03  Richard Guenther  <rguenther@suse.de>
19793
19794         PR middle-end/35800
19795         * expr.h (try_casesi): Adjust prototype.
19796         * expr.c (try_casesi): Take fallback label as extra parameter.
19797         Use that for gen_casesi if default_label is NULL.
19798         * stmt.c (expand_case): Pass fallback label to try_casesi,
19799         make sure to fill gaps with a fallback label if default_label
19800         is not present.
19801
19802 2008-04-03  Dominique d'Humières <dominiq@lps.ens.fr>
19803
19804         PR target/35801
19805         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
19806
19807 2008-04-03  Ben Elliston  <bje@au.ibm.com>
19808
19809         * expmed.c (extract_split_bit_field): Remove if (0) code.
19810         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
19811         (do_ds_constraint): Likewise.
19812
19813 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
19814
19815         * doc/cppopts.texi (-dU): Document.
19816         * c-common.h (flag_dump_macros): Update comment.
19817         * c-opts.c (handle_OPT_d): Handle -dU.
19818         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
19819         dump_queued_macros, cb_used_define, cb_used_undef): New.
19820         (init_pp_output): Handle -dU.
19821         (cb_line_change): Call dump_queued_macros.
19822         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
19823
19824 2008-04-02  Anatoly Sokolov <aesok@post.ru>
19825
19826         * config/avr/predicates.md (io_address_operand): New predicate.
19827         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
19828         * config/avr/avr.c (avr_io_address_p): Remove function.
19829         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
19830         'avr_io_address_p' function.
19831         (out_movhi_r_mr): (Ditto.).
19832         (out_movqi_mr_r): (Ditto.).
19833         (out_movhi_mr_r): (Ditto.).
19834         (avr_address_cost): (Ditto.).
19835
19836 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
19837
19838         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
19839         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
19840         in 32bit mode when XMM registers are available to avoid store
19841         forwarding stalls.
19842         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
19843         corresponding post-reload splitters.
19844
19845 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
19846
19847         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
19848         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
19849         __builtin_ia32_roundss.
19850         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
19851         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
19852         __builtin_ia32_roundss.
19853         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
19854         IX86_BUILTIN_SHUFPD here.
19855
19856 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
19857
19858         * config/i386/i386.md (plogic): New.
19859         (plogicprefix): Likewise.
19860
19861         * config/i386/mmx.md (mmx_<code><mode>3): New.
19862         (mmx_and<mode>3): Removed.
19863         (mmx_ior<mode>3): Likewise.
19864         (mmx_xor<mode>3): Likewise.
19865
19866         * config/i386/sse.md (<code><mode>3): New.
19867         (*<code><mode>3): Likewise.
19868         (*<code><mode>3): Likewise.
19869         (<code><mode>3): Likewise.
19870         (*sse_<code><mode>3): Likewise.
19871         (*sse2_<code><mode>3): Likewise.
19872         (<code>tf3): Likewise.
19873         (*<code>tf3): Likewise.
19874         (and<mode>3): Likewise.
19875         (*and<mode>3): Likewise.
19876         (ior<mode>3): Removed.
19877         (*ior<mode>3): Likewise.
19878         (xor<mode>3): Likewise.
19879         (*xor<mode>3): Likewise.
19880         (*and<mode>3): Likewise.
19881         (*ior<mode>3): Likewise.
19882         (*xor<mode>3): Likewise.
19883         (and<mode>3): Likewise.
19884         (*sse_and<mode>3): Likewise.
19885         (*sse2_and<mode>3): Likewise.
19886         (andtf3): Likewise.
19887         (*andtf3): Likewise.
19888         (ior<mode>3): Likewise.
19889         (*sse_ior<mode>3): Likewise.
19890         (*sse2_ior<mode>3): Likewise.
19891         (iortf3): Likewise.
19892         (*iortf3): Likewise.
19893         (xor<mode>3): Likewise.
19894         (*sse_xor<mode>3): Likewise.
19895         (*sse2_xor<mode>3): Likewise.
19896         (xortf3): Likewise.
19897         (*xortf3): Likewise.
19898
19899 2008-04-02  Richard Guenther  <rguenther@suse.de>
19900
19901         PR tree-optimization/14495
19902         PR tree-optimization/34793
19903         * tree-vrp.c (struct switch_update): New structure.
19904         (to_remove_edges, to_update_switch_stmts): New VECs.
19905         (simplify_switch_using_ranges): New function.  Remove not taken
19906         case labels and edges.
19907         (simplify_stmt_using_ranges): Call it.
19908         (identify_jump_threads): Mark edges we have queued for removal
19909         so we don't thread them.
19910         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
19911         case label vector.
19912         * tree-cfg.c (group_case_labels): Deal with missing default label.
19913         (tree_verify_flow_info): Allow missing default label.
19914         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
19915         (emit_case_nodes): Likewise.
19916         (expand_case): Do not rely on the default label to be present.
19917         * expr.c (try_casesi): Deal with NULL default_label.
19918         (do_tablejump): Likewise.
19919
19920 2008-04-02  Richard Guenther  <rguenther@suse.de>
19921
19922         PR tree-optimization/14495
19923         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
19924         SWITCH_EXPR here ...
19925         (vrp_visit_switch_stmt): ... but here (new function).
19926         (find_case_label_index): New helper function.
19927         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
19928
19929 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
19930
19931         * fwprop.c: Fix ISO-C99ism.
19932
19933 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
19934
19935         PR bootstrap/35752
19936         * Makefile.in (objdir): Set it here.
19937         * configure.ac: Not here.  Find dynamic linker characteristics.
19938         * exec-tool.in: Use them.
19939         * aclocal.m4: Regenerate.
19940         * configure: Regenerate.
19941
19942 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
19943
19944         * expr.c (expand_var): Delete it.
19945         * expr.h (expand_var): Delete prototype.
19946         * function.c (expand_function_start): Use expand_decl instead.
19947         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
19948         langhook.
19949
19950 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
19951
19952         PR rtl-optimization/35542
19953         * fwprop.c (forward_propagate_and_simplify): Replace
19954         loc_reg_mentioned_in_p with reg_mentioned_p.
19955
19956 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
19957
19958         PR rtl-optimization/35281
19959         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
19960         (propagate_rtx_1): Handle PR_HANDLE_MEM.
19961         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
19962         (varying_mem_p): Move above propagate_rtx.
19963         (all_uses_available_at): Do not check MEMs.
19964
19965 2008-04-02  Rafael Espíndola  <espindola@google.com>
19966
19967         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
19968         (register_edge_assert_for_2): Split the cond argument.
19969         (register_edge_assert_for_1): Adjust for the change in
19970         register_edge_assert_for_2.
19971         (register_edge_assert_for): Split the cond argument.
19972         (find_switch_asserts): Adjust for the change in
19973         register_edge_assert_for.
19974
19975 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
19976
19977         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
19978         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
19979         offsets for 64-bit mingw.
19980         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
19981         abi for x86_64-pc-mingw.
19982
19983 2008-04-02  Richard Guenther  <rguenther@suse.de>
19984
19985         * tree-vrp.c (extract_range_from_assert): Make sure to not
19986         produce range min/max with TREE_OVERFOW set.
19987         If merging a anti-range and a range keep the anti-range if
19988         the range covers all values of the type.
19989         (register_edge_assert_for_2): Only allow sign-changing
19990         conversions in detecting canonical range checks.  Also
19991         register an assert for the unsigned name if useful.
19992
19993         PR tree-optimization/35787
19994         * tree-vrp.c (vrp_val_max): New function.
19995         (vrp_val_min): Likewise.
19996         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
19997         (vrp_val_is_min): Likewise.
19998         (supports_overflow_infinity): Use vrp_val_{min,max}.
19999         (negative_overflow_infinity): Likewise.
20000         (positive_overflow_infinity): Likewise.
20001         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
20002         (is_positive_overflow_infinity): Likewise.
20003         (is_overflow_infinity): Likewise.
20004         (avoid_overflow_infinity): Use vrp_val_{min,max} and
20005         vrp_val_is_{min,max}.
20006         (set_and_canonicalize_value_range): Canonicalize anti-ranges
20007         to ranges if possible.  Avoid empty ranges.
20008
20009 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20010
20011         PR middle-end/35705
20012         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
20013         the expression is a function address.
20014
20015 2008-04-01  George Helffrich  <george@gcc.gnu.org>
20016
20017         PR fortran/35154, fortran/23057
20018         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
20019         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
20020         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
20021         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
20022         in common.
20023         (dbxout_syms): Check for COMMON-based symbol and wrap in
20024         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
20025         in bracket for efficiency.
20026
20027         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
20028         using DW_TAG_common_block + member offset.
20029         (add_pubname_string): New function.
20030         (dw_expand_expr): New function to find block name and offset for
20031         COMMON var.
20032         (common_check): New function to check whether symbol in Fortran COMMON.
20033         (gen_variable_die): If COMMON, use DW_TAG_common_block.
20034
20035 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
20036
20037         PR c/35436
20038         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
20039
20040 2008-04-02  Ben Elliston  <bje@au.ibm.com>
20041
20042         * config/v850/v850.md (casesi): Remove if (0) code.
20043         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20044         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
20045
20046 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
20047
20048         * config/i386/i386.md (rex64suffix): New mode attribute.
20049         (floathi<mode>2): Disable expander for SSE math.
20050         (*floathi<mode>2_1): New insn insn_and_split pattern.
20051         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
20052         corresponding post-reload splitters.
20053         (*floathi<mode>2_i387): New macroized insn pattern.
20054         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
20055         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
20056         insn_and_split pattern.
20057         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
20058         New macroized instruction patterns and corresponding post-reload
20059         splitters.
20060         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
20061         and corresponding post-reload splitters.
20062         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
20063         New macroized instruction patterns.
20064         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
20065         macroized instruction patterns and corresponding post-reload splitters.
20066         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
20067         corresponding post-reload splitters.
20068         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
20069         New macroized instruction patterns.
20070         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
20071         corresponding post-reload splitters.
20072         (*floatsi<mode>2_i387): New macroized instruction patterns.
20073
20074 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
20075
20076         * config/i386/i386.md (smaxmin): New.
20077         (umaxmin): Likewise.
20078         (maxminiprefix): Likewise.
20079         (maxminfprefix): Likewise.
20080         (<code><mode>3): Likewise.
20081         (smin<mode>3): Removed.
20082         (smax<mode>3): Likewise.
20083
20084         * config/i386/mmx.md (mmx_<code>v2sf3): New.
20085         (mmx_<code>v4hi3): Likewise.
20086         (mmx_<code>v8qi3): Likewise.
20087         (mmx_smaxv2sf3): Removed.
20088         (mmx_sminv2sf3): Likewise.
20089         (mmx_umaxv8qi3): Likewise.
20090         (mmx_smaxv4hi3): Likewise.
20091         (mmx_uminv8qi3): Likewise.
20092         (mmx_sminv4hi3): Likewise.
20093
20094         * config/i386/sse.md (<addsub><mode>3): New.
20095         (*<addsub><mode>3): Likewise.
20096         (<sse>_vm<addsub><mode>3): Likewise.
20097         (<maxmin><mode>3): Likewise.
20098         (*<maxmin><mode>3_finite): Likewise.
20099         (*<maxmin><mode>3): Likewise.
20100         (<sse>_vm<maxmin><mode>3): Likewise.
20101         (sse3_h<addsub>v4sf3): Likewise.
20102         (sse3_h<addsub>v2df3): Likewise.
20103         (<maxmin>v16qi3): Likewise.
20104         (*<maxmin>v16qi3): Likewise.
20105         (<maxmin>v8hi3): Likewise.
20106         (*<maxmin>v8hi3): Likewise.
20107         (*sse4_1_<maxmin><mode>3): Likewise.
20108         (*sse4_1_<maxmin><mode>3): Likewise.
20109         (add<mode>3): Removed.
20110         (*add<mode>3): Likewise.
20111         (<sse>_vmadd<mode>3): Likewise.
20112         (sub<mode>3): Likewise.
20113         (*sub<mode>3): Likewise.
20114         (<sse>_vmsub<mode>3): Likewise.
20115         (smin<mode>3): Likewise.
20116         (*smin<mode>3_finite): Likewise.
20117         (*smin<mode>3): Likewise.
20118         (<sse>_vmsmin<mode>3): Likewise.
20119         (smax<mode>3): Likewise.
20120         (*smax<mode>3_finite): Likewise.
20121         (*smax<mode>3): Likewise.
20122         (<sse>_vmsmax<mode>3): Likewise.
20123         (sse3_haddv4sf3): Likewise.
20124         (sse3_haddv2df3): Likewise.
20125         (sse3_hsubv4sf3): Likewise.
20126         (sse3_hsubv2df3): Likewise.
20127         (umaxv16qi3): Likewise.
20128         (*umaxv16qi3): Likewise.
20129         (smaxv8hi3): Likewise.
20130         (*smaxv8hi3): Likewise.
20131         (*sse4_1_smax<mode>3): Likewise.
20132         (*sse4_1_umax<mode>3): Likewise.
20133         (uminv16qi3): Likewise.
20134         (*uminv16qi3): Likewise.
20135         (sminv8hi3): Likewise.
20136         (*sminv8hi3): Likewise.
20137         (*sse4_1_smin<mode>3): Likewise.
20138         (*sse4_1_umin<mode>3): Likewise.
20139
20140 2008-04-01  Rafael Espíndola  <espindola@google.com>
20141
20142         * tree-cfg.c (verify_expr): remove in_phi.
20143         (verify_stmt): Don't call walk_tree with verify_expr. Use
20144         is_gimple_min_invariant instead of is_gimple_val.
20145
20146 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
20147
20148         * doc/include/gpl_v3.texi: Update for manpage generation.
20149         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
20150         gpl.texi.
20151         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
20152         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
20153         gpl_v3.texi instead of gpl.texi.
20154         (gpl.pod): New.
20155
20156 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
20157
20158         PR pch/13675
20159         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
20160
20161 2008-04-01  Rafael Espíndola  <espindola@google.com>
20162
20163         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
20164         (extract_code_and_val_from_cond): Use
20165         extract_code_and_val_from_cond_with_ops.
20166
20167 2008-04-01  Jan Hubicka  <jh@suse.cz>
20168
20169         * function.c (free_after_compilation): Free epilogue_delay_list.
20170         (prepare_function_start): Assert that previous compilation was freed.
20171
20172 2008-04-01  Jan Hubicka  <jh@suse.cz>
20173             Jim Wilson  <wilson@tuliptree.org>
20174             Andreas Tobler <andreast@gcc.gnu.org>
20175
20176         PR middle-end/35781
20177         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
20178         rtl.emit instead cfun->emit.
20179         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
20180         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
20181
20182 2008-04-01  Ben Elliston  <bje@au.ibm.com>
20183
20184         * doc/c-tree.texi (Function Basics): Fix grammatical error.
20185
20186 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
20187
20188         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
20189         New options
20190         (fprofile-use): Add var flag_profile_use
20191         * coverage.c (coverage_begin_output): Do not open a gcno file for
20192         output only if -ftest-coverage is set.
20193         Do not add getpwd() to gcda file path.
20194         (build_gcov_info): Check the new flag
20195         flag_profile_datafile_relative_path.
20196         (coverage_init): Use profile_data_prefix.
20197         Read profile counter only if flag_profile_use is set.
20198         * opts.c (common_handle_option): New option fprofile-use=,
20199         fprofile-dir=, fprofile-generate=.
20200         * toplev.c (profile_data_prefix): New variable definition.
20201         * toplev.h (profile_data_prefix): New declaration.
20202         * doc/invoke.tex (Option Summary, Optimization Options):
20203         Add new options.
20204
20205 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
20206
20207         * varasm.c (output_constant_pool_1): In LABEL_REF check,
20208         use tmp consistently.
20209
20210         PR target/35695
20211         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
20212         * config/ia64/ia64.c (rtx_needs_barrier): Handle
20213         UNSPEC_FR_RECIP_APPROX_RES.
20214         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
20215
20216 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
20217
20218         PR c/35750
20219         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
20220
20221 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20222
20223         PR middle-end/30186
20224         * fold-const.c (fold_indirect_ref_1): Support accessing non first
20225         element of the vector via a pointer.
20226
20227 2008-03-31  Ian Lance Taylor  <iant@google.com>
20228
20229         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
20230
20231 2008-03-31  Jan Hubicka  <jh@suse.cz>
20232
20233         * builtins.c (expand_builtin_setjmp_receiver): Update call of
20234         get_arg_pointer_save_area.
20235         * expr.c (init_expr): Just clear out rtl.expr.
20236         * function.c (free_after_compilation): Clear out whole RTL structure.
20237         (get_func_frame_size): Merge into ...
20238         (get_frame_size): ... this one.
20239         (assign_stack_local_1): Merge into ...
20240         (assign_stack_local): ... this one.
20241         (expand_function_end): Update call of get_arg_pointer_save_area.
20242         (get_art_pointer_save_area): Remove cfun argument.
20243         * function.h (emit_status): regno_pointer_align does not need length
20244         attribute. Move x_regno_reg_rtx to ...
20245         (regno_reg_rtx): ... new global array.
20246         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
20247         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
20248         apply_args_value, forced_labels, stack_pointer_delta):
20249         Update accestors.
20250         (struct varasm_status): Move here from varasm.c
20251         (struct rtl_data): New. Move here some fields from struct function.
20252         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
20253         frame_offset, stack_check_probe_note, arg_pointer_save_area,
20254         used_temp_slots avail_temp_slots, temp_slot_level,
20255         nonlocal_goto_handler_labels): Update accesstors.
20256         (rtl): New global variable.
20257         (struct function): Move some fileds to rtl_data.
20258         (get_arg_pointer_save_area): Update prototype.
20259         * emit-rtl.c (rtl): Declare.
20260         (regno_reg_rtx): Declare.
20261         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
20262         Update.
20263         (gen_reg_rtx): Update.
20264         (init_virtual_regs): Do not tate emit_status argument.
20265         (init_emit): Do not allocate emit.
20266         * varasm.c (varasm_statuc): Move to function.h.
20267         (n_deferred_constatns): Update accestor.
20268         (init_varasm_status): Do not allocate varasm_status.
20269         (force_const_mem, get_pool_size, output_constant_pool): Update.
20270         * stmt.c (force_label_rtx): Do not use x_ prefixes.
20271         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
20272
20273 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
20274
20275         PR rtl-optimization/35729
20276         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
20277         references.
20278
20279 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
20280
20281         PR target/32000
20282         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
20283         load/store if memory is unaligned.
20284         (*movti_rex64): Likewise.
20285
20286         * config/i386/predicates.md (misaligned_operand): New.
20287
20288 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
20289
20290         PR tree-opt/35431
20291         * tree-ssa-phiopt.c (conditional_replacement): Return early for
20292         complex types.
20293
20294 2008-03-31  Jan Beulich  <jbeulich@novell.com>
20295
20296         * config/ia64/constraints.md: Add 'j' constraint.
20297         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
20298         (movdi_internal): Likewise.
20299
20300 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
20301
20302         PR c/35748
20303         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
20304
20305 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
20306
20307         PR target/35757
20308         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
20309         proper error message for the third argument on blendpd and
20310         blendps.
20311
20312         * config/i386/sse.md (blendbits): New.
20313         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
20314
20315 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
20316
20317         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
20318
20319 2008-03-30  Richard Guenther  <rguenther@suse.de>
20320
20321         PR middle-end/31023
20322         * fold-const.c (fold_sign_changed_comparison): Do leave
20323         conversions to base-types alone.
20324
20325 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20326
20327         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
20328         the link register if one altivec register is be saved.
20329
20330 2008-03-30  Ben Elliston  <bje@au.ibm.com>
20331
20332         * final.c (final_scan_insn): Remove if (0) code.
20333
20334 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
20335
20336         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
20337
20338 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
20339
20340         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
20341         of V4SFmode to ix86_binary_operator_ok.
20342
20343 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
20344
20345         * config/i386/i386.c (override_options): Initialize
20346         ix86_veclib_handler to ix86_veclibabi_svml when
20347         -mveclibabi=svml is used.
20348         (ix86_veclibabi_svml): New function for SVML ABI style
20349         vectorization support.
20350         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
20351
20352 2008-03-28  Rafael Espíndola  <espindola@google.com>
20353
20354         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
20355         (tree_binary_nonnegative_warnv_p): Make it public.
20356         (tree_single_nonnegative_warnv_p): Make it public.
20357         (tree_invalid_nonnegative_warnv_p): Make it public.
20358         (tree_unary_nonzero_warnv_p): Make it public.
20359         (tree_binary_nonzero_warnv_p): Make it public
20360         (tree_single_nonzero_warnv_p): Make it public.
20361         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
20362         (extract_range_from_binary_expr): Split the expr argument.
20363         (extract_range_from_unary_expr): Split the expr argument.
20364         (extract_range_from_comparison): Split the expr argument.
20365         (extract_range_from_expr): Use the new aux functions.
20366         (vrp_evaluate_conditional_warnv): Use
20367         vrp_evaluate_conditional_warnv_with_ops.
20368         * tree.h (tree_unary_nonzero_warnv_p): Declare.
20369         (tree_binary_nonzero_warnv_p): Declare.
20370         (tree_single_nonzero_warnv_p): Declare.
20371         (tree_expr_nonzero_warnv_p): Declare.
20372         (tree_unary_nonnegative_warnv_p): Declare.
20373         (tree_binary_nonnegative_warnv_p): Declare.
20374         (tree_single_nonnegative_warnv_p): Declare.
20375         (tree_invalid_nonnegative_warnv_p): Declare.
20376
20377 2008-03-28  Richard Guenther  <rguenther@suse.de>
20378
20379         PR tree-optimization/30317
20380         PR tree-optimization/30911
20381         PR tree-optimization/34793
20382         * tree-vrp.c (set_and_canonicalize_value_range): New function.
20383         (struct assert_locus_d): New member EXPR.
20384         (register_new_assert_for): Add EXPR parameter to support
20385         ASSERT_EXPR <name, expr OP limit>.
20386         (register_edge_assert_for_1): Adjust callers.
20387         (find_assert_locations): Likewise.
20388         (process_assert_insertions_for): Build condition from expression.
20389         (extract_range_from_assert): Handle ASSERT_EXPRs
20390         of the form ASSERT_EXPR <name, expr OP limit>.
20391         (register_edge_assert_for_2): New helper registering
20392         asserts for comparisons.  Recognize range tests of the form
20393         (unsigned)i - CST1 OP CST2.
20394         (register_edge_assert_for_1): Use it.
20395         (register_edge_assert_for): Likewise.
20396         (needs_overflow_infinity): Integer sub-types
20397         do not need overflow infinities.
20398         (vrp_val_is_max): The extreme values of integer sub-types
20399         are those of the base type.
20400         (vrp_val_is_min): Likewise.
20401         * tree.def (ASSERT_EXPR): Document extra allowed conditional
20402         expressions.
20403
20404 2008-03-28  Nick Clifton  <nickc@redhat.com>
20405
20406         PR target/31110
20407         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
20408         Return GENERAL_REGS for stack adjustment reloads.
20409
20410 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20411
20412         PR target/31334
20413         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
20414         const_vector when all the vectors are constant.
20415
20416 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
20417
20418         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
20419         comparisons.
20420         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
20421         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
20422         (scc_sf): New.
20423         (s<code>_sf): Use new scc_sf attribute for opcode names.
20424
20425 2008-03-27  Tom Tromey  <tromey@redhat.com>
20426
20427         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
20428         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
20429         config/spu/t-spu-elf, config/i386/t-interix,
20430         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
20431         config/i386/x-darwin, config/i386/x-mingw32,
20432         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
20433         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
20434         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
20435         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
20436         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
20437         config/rs6000/x-darwin, config/rs6000/t-rs6000,
20438         config/score/t-score-elf, config/arm/t-strongarm-pe,
20439         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
20440         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
20441         Revert automatic dependency patch.
20442
20443 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
20444
20445         PR target/35657
20446         * config/i386/i386.c (ix86_function_arg_boundary): Align
20447         decimal floating point to its natural boundary.
20448
20449 2008-03-27  Richard Guenther  <rguenther@suse.de>
20450
20451         PR middle-end/35716
20452         * fold-const.c (fold_comparison): Restrict distinct decl
20453         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
20454         solely rely on operand_equal_p.
20455
20456 2008-03-27  Richard Guenther  <rguenther@suse.de>
20457
20458         PR c/32511
20459         * c-common.c (handle_weak_attribute): Reject combination of
20460         weak and inline.
20461
20462 2008-03-27  Richard Guenther  <rguenther@suse.de>
20463
20464         PR tree-optimization/32810
20465         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
20466         conversions from DECL_INITIAL.
20467         (fold_const_aggregate_ref): Likewise from constructor elements.
20468
20469 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
20470
20471         * tree-affine.h (aff_combination_expand): Declare.
20472         (get_inner_reference_aff): Likewise.
20473         * tree-affine.c (aff_combination_expand): Split out from
20474         tree_to_aff_combination_expand.
20475         (get_inner_reference_aff): New function.
20476         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
20477         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
20478         (struct lim_aux_data): sm_done field removed.
20479         (mem_ref_loc_p, mem_ref_locs_p): New types.
20480         (struct mem_ref): Added id, stored, accesses_in_loop,
20481         indep_loop, dep_loop, indep_ref, dep_ref fields.
20482         Removed is_stored, locs and next fields.
20483         (memory_accesses): New variable.
20484         (movement_possibility): Do not allow moving statements
20485         that store to memory.
20486         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
20487         New functions.
20488         (determine_max_movement): For statements with memory references,
20489         find the outermost loop in that the reference is independent.
20490         (move_computations_stmt): Mark the virtual operands for renaming.
20491         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
20492         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
20493         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
20494         add_vop_ref_mapping, create_vop_ref_mapping_loop,
20495         create_vop_ref_mapping, analyze_memory_references,
20496         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
20497         get_all_locs_in_loop, ref_always_accessed_p,
20498         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
20499         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
20500         store_motion_loop, store_motion): New functions.
20501         (struct vop_to_refs_elt): New type.
20502         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
20503         memref_hash, memref_eq, hoist_memory_references): Rewritten.
20504         (schedule_sm): Replaced by...
20505         (execute_sm): ... this.
20506         (determine_lsm_ref, hoist_memory_references,
20507         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
20508         find_more_ref_vops, free_mem_ref, free_mem_refs,
20509         determine_lsm_loop, determine_lsm): Removed.
20510         (tree_ssa_lim_finalize): Free data structures used by store motion.
20511         (tree_ssa_lim): Call analyze_memory_references.  Use
20512         store_motion instead of determine_lsm.
20513
20514 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
20515
20516         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
20517         rename tmake_file to m68hc11/t-m68hc11.
20518         (mcore): Set inhibit_libc to true.
20519         * config.host (alpha*-dec-*vms*): Set extra_programs.
20520         (interix3*): Don't use host_xmake_file.
20521         * configure.ac: Let config.gcc override inhibit_libc.
20522         * configure: Regenerate.
20523
20524         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
20525         * config/t-openbsd-thread: Remove commented out lines.
20526
20527         * config/x-interix: Remove.
20528
20529         * config/m68hc11/t-m68hc11-gas: Rename to...
20530         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
20531
20532         * config/mcore/t-mcore: Remove T_CFLAGS.
20533         * config/mcore/t-mcore-pe: Likewise.
20534
20535 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
20536
20537         * configure.ac: Replace custom __GNU_SOURCE test with
20538         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
20539         * aclocal.m4: Regenerate.
20540         * configure: Regenerate.
20541         * config.in: Regenerate.
20542
20543 2008-03-27  Richard Guenther  <rguenther@suse.de>
20544
20545         * fold-const.c (target.h): Include.
20546         (fold_comparison): Fold comparison of addresses of decls
20547         that bind locally or of constants.  Consolidate address folding code.
20548         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
20549         results from fold_binary_to_constant.
20550         (compare_values_warnv): Likewise.
20551
20552 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
20553
20554         PR middle-end/35429
20555         * fold-const.c (fold_truthop): Check for integeral types when folding
20556         a == 0 && b == 0 and a != 0 || b != 0 .
20557
20558 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
20559
20560         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
20561
20562 2008-03-26  Andreas Schwab  <schwab@suse.de>
20563
20564         * doc/invoke.texi: Fix use of @item vs. @itemx.
20565
20566 2008-03-26  Tom Tromey  <tromey@redhat.com>
20567
20568         * Makefile.in (build/gensupport.o, build/print-rtl.o,
20569         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
20570         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
20571         build/gencodes.o, build/genconditions.o, build/genconfig.o,
20572         build/genconstants.o, build/genemit.o, build/genextract.o,
20573         build/genflags.o, build/genmddeps.o, build/genopinit.o,
20574         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
20575         options.h.
20576
20577 2008-03-26  Richard Guenther  <rguenther@suse.de>
20578
20579         Revert
20580         2008-03-26  Richard Guenther  <rguenther@suse.de>
20581
20582         * fold-const.c (target.h): Include.
20583         (fold_comparison): Fold comparison of addresses of two decls
20584         that bind locally.  Consolidate address folding code.
20585
20586 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20587
20588         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
20589         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
20590         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
20591         dconstsqrt2, dconstthird, dconste and/or dconst10.
20592         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
20593         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
20594         dconstsqrt2, dconste): Delete.
20595         (init_emit_once): Likewise.  Simplify initializing dconstm1.
20596         Constify variable.
20597         * real.c (get_real_const): New.
20598         * real.h (dconst3, dconst10, dconstm2, dconstthird,
20599         dconstsqrt2, dconste): Delete.
20600         (real_value_const, get_real_const): New.
20601
20602 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
20603
20604         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
20605
20606         * config/i386/i386.c (ix86_function_arg_boundary): Check
20607         BIGGEST_ALIGNMENT instead of 128.
20608         (setup_incoming_varargs_64): Likewise.
20609
20610 2008-03-26  Tom Tromey  <tromey@redhat.com>
20611
20612         * Makefile.in (DEPFILES): Add missing '/'.
20613
20614 2008-03-26  Richard Guenther  <rguenther@suse.de>
20615
20616         * fold-const.c (target.h): Include.
20617         (fold_comparison): Fold comparison of addresses of two decls
20618         that bind locally.  Consolidate address folding code.
20619
20620 2008-03-26  Nick Clifton  <nickc@redhat.com>
20621
20622         PR target/31232
20623         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
20624         not allow INT+INT as a legitimate addressing mode.
20625
20626 2008-03-26  Richard Guenther  <rguenther@suse.de>
20627
20628         * tree-flow.h (widen_bitfield): Remove declaration.
20629         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
20630         (widen_bitfield): Remove function.
20631         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
20632         code.
20633
20634 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20635
20636         PR target/31558
20637         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
20638         error_mark_node's.
20639
20640 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
20641
20642         PR rtl-optimization/35232
20643         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
20644         (forget_old_reloads_1, forget_marked_reloads): Don't clear
20645         reg_reloaded_call_part_clobbered here.
20646         (reload_regs_reach_end_p): New function.
20647         (reload_reg_rtx_for_input): New variable.
20648         (reload_reg_rtx_for_output): Likewise.
20649         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
20650         when reassigning a pseudo register.  Load reloadreg from
20651         reload_reg_rtx_for_input, moving the mode and register
20652         calculation to...
20653         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
20654         instead of the original when deciding whether an input reload
20655         would be a no-op or whether an output reload can be deleted.
20656         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
20657         when setting up new_spill_reg_store.  Load it from
20658         reload_reg_rtx_for_output, moving the mode and register
20659         calculation to...
20660         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
20661         instead of the original when deciding whether an output reload
20662         would be a no-op.  Do the same when modifying insn notes.
20663         Use rtx_equal_p instead of == to compare the registers.
20664         (inherit_piecemeal_p): Take a mode and two register numbers
20665         as argument.
20666         (emit_reload_insns): Clear new_spill_reg_store for every hard
20667         register in the reload register.  Remove spill registers
20668         from reg_reloaded_valid before considering whether to record
20669         inheritance information for them.  Use reload_reg_rtx_for_output
20670         instead of reg_rtx when recording output reloads.  Use
20671         reload_reg_rtx_for_input instead of reg_rtx when recording
20672         input reloads.  Set or clear reg_reloaded_call_part_clobbered
20673         at the same time as setting reg_reloaded_valid.
20674         (delete_output_reload): Add a new_reload_reg parameter and use it
20675         instead of rld[j].reg_rtx.
20676         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
20677         calls accordingly.
20678
20679 2008-03-25  Tom Tromey  <tromey@redhat.com>
20680
20681         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
20682         (build/genattr.o): Likewise.
20683         (build/genattrtab.o): Likewise.
20684         (build/gencodes.o): Likewise.
20685         (build/genconfig.o): Likewise.
20686         (build/genconstants.o): Likewise.
20687         (build/genemit.o): Likewise.
20688         (build/genextract.o): Likewise.
20689         (build/genflags.o): Likewise.
20690
20691 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
20692
20693         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
20694         instead of size_int for integer types.
20695         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
20696         to match type of MINUS_EXPR.
20697
20698 2008-03-25  Tom Tromey  <tromey@redhat.com>
20699
20700         * configure: Rebuilt.
20701         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
20702         Makefile.
20703
20704 2008-03-25  Tom Tromey  <tromey@redhat.com>
20705
20706         * config/x-solaris (host-solaris.o): Update.
20707         * config/x-linux (host-linux.o): Update.
20708         * config/x-hpux (host-hpux.o): Update.
20709         * config/x-darwin (host-darwin.o): Update.
20710         * config/v850/t-v850e (v850-c.o): Update.
20711         * config/v850/t-v850 (v850-c.o): Update.
20712         * config/t-vxworks (vxworks.o): Update.
20713         * config/t-sol2 (sol2-c.o, sol2.o): Update.
20714         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
20715         * config/spu/t-spu-elf (spu-c.o): Update.
20716         (spu.o): Remove.
20717         * config/sh/t-symbian (sh-c.o): Update.
20718         (symbian.o): Update.
20719         * config/sh/t-sh (sh-c.o): Update.
20720         * config/score/t-score-elf (score7.o, score3.o): Update.
20721         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
20722         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
20723         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
20724         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
20725         (rs6000.o): Remove.
20726         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
20727         * config/m32c/t-m32c (m32c-pragma.o): Update.
20728         * config/ia64/t-ia64 (ia64-c.o): Update.
20729         * config/i386/x-mingw32 (host-mingw32.o): Update.
20730         * config/i386/x-i386 (driver-i386.o): Update.
20731         * config/i386/x-darwin (host-i386-darwin.o): Update.
20732         * config/i386/x-cygwin (host-cygwin.o): Update.
20733         * config/i386/t-nwld (nwld.o): Update.
20734         * config/i386/t-netware (netware.o): Update.
20735         * config/i386/t-interix (winnt.o): Update.
20736         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
20737         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
20738         msformat-c.o): Update.
20739         * config/bfin/t-bfin-linux (generated_files): Add
20740         linux-sysroot-suffix.h.
20741         * config/arm/t-wince-pe (pe.o): Update.
20742         * config/arm/t-strongarm-pe (pe.o): Update.
20743         * config/arm/t-pe (pe.o): Update.
20744         * config/arm/t-arm (arm-c.o): Update.
20745         * doc/install.texi (Prerequisites): Require make 3.80.
20746         * Makefile.in: Remove .o targets.
20747         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
20748         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
20749         (simple_generated_h, simple_generated_c): Move earlier.
20750         (generated_files): New variable.
20751         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
20752         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
20753         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
20754         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
20755         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
20756         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
20757         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
20758         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
20759         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
20760         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
20761         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
20762         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
20763         (.c.o): Remove.
20764         (COMPILE.base, COMPILE): New variables.
20765         (%.o): New pattern rule.
20766         (ALL_HOST_OBJS): New variable.
20767         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
20768         (dummy-checksum.o, cc1-checksum.o): Remove.
20769         (DRIVER_SHLIB): New variable.
20770         (DRIVER_DEFINES): Use it.
20771         (gencondmd.c): Move out of build/.
20772         (s-conditions): Update.
20773         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
20774         (ALL_BUILD_OBJS): Likewise.
20775         (build/%.o): Use BUILDCOMPILE.
20776         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
20777         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
20778         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
20779         build/gencheck.o, build/gencodes.o, build/genconditions.o,
20780         build/genconfig.o, build/genconstants.o, build/genemit.o,
20781         build/genextract.o, build/genflags.o, build/genmddeps.o,
20782         build/genopinit.o, build/genoutput.o, build/genpeep.o,
20783         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
20784         build/gen-protos.o, build/scan.o, build/fix-header.o,
20785         build/scan-decls.o): Simplify.
20786         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
20787         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
20788         prefix.o, toplev.o): Reduce to variable setting.
20789         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
20790         ($(out_object_file), gcc-options.o): New targets.
20791         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
20792         * configure: Rebuilt.
20793         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
20794         * doc/sourcebuild.texi (Front End Directory): Document new variable.
20795
20796 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
20797
20798         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
20799         complain when we hit an error, return ERROR_MARK_NODE.
20800
20801 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
20802
20803         * config/sh/constraints.md (Pso, Psz): New constraints.
20804         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
20805         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
20806
20807 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
20808
20809         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
20810         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
20811
20812 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
20813
20814         * config/sh/sh.md (prefetch): Add condition for SH2A target.
20815         (prefetch_sh2a): New.
20816
20817 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
20818             Naveen.H.S  <naveen.hs@kpitcummins.com>
20819
20820         * config/sh/constraints.md (I28): New constraint.
20821         * config/sh/sh.c (broken_move): Add support for movi20s.
20822         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
20823
20824 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
20825             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
20826             Naveen.H.S  <naveen.hs@kpitcummins.com>
20827
20828         * config/sh/sh.c (SH_ATTRIBUTES): Define.
20829         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
20830         (print_operand): Handle resbank in %@ operand code.
20831         (sh_encode_section_info): New.
20832         (push_regs): Add conditions for resbank.
20833         (sh_expand_epilogue): Likewise.
20834         (sh_insert_attributes): Likewise.
20835         (sh_attribute_table): Likewise.
20836         (sh_handle_resbank_handler_attribute): New.
20837         (sh2a_handle_function_vector_handler_attribute): New.
20838         (sh2a_is_function_vector_call): New.
20839         (sh2a_get_function_vector_number): New.
20840         (sh2a_function_vector_p): New.
20841         (sh_cfun_resbank_handler_p): New.
20842         * config/sh/sh.md (calli): Emit jsr/n if possible.
20843         (calli_tbr_rel): New.
20844         (calli_pcrel): Emit jsr/n if possible.
20845         (return_i): Emit rts/n if possible.
20846         (call_valuei_tbr_rel): New.
20847         (call_valuei_pcrel): Add condition for SH2A target.
20848         (call_value): Likewise.
20849         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
20850         (sh2a_get_function_vector_number): Likewise.
20851         (sh2a_is_function_vector_call): Likewise.
20852         * doc/extend.texi: Document TBR relative addressing of SH2A.
20853         (resbank): Add description for SH2A.
20854
20855 2008-03-24  Richard Guenther  <rguenther@suse.de>
20856
20857         PR c/22371
20858         * gimplify.c (gimplify_modify_expr): For frontend type-correct
20859         pointer assignments change conversions according to middle-end rules.
20860         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
20861         * configure.ac: Include type checking in yes.
20862         * configure: Regenerate.
20863
20864 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20865
20866         * diagnostic.c (diagnostic_count_diagnostic): Delete.
20867         (diagnostic_report_diagnostic): Update. Handle ICEs here.
20868
20869 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
20870
20871         * gthr-vxworks.h (UNUSED): Define.
20872
20873 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
20874
20875         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
20876
20877 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
20878
20879         * doc/extend.texi (Function Attributes): Add missing comma in the
20880         example of the "alloc_size" attribute.
20881
20882 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
20883
20884         Revert:
20885         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
20886
20887         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
20888         32bit host.
20889
20890         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
20891
20892         PR target/35496
20893         * stor-layout.c (update_alignment_for_field): Set minimum alignment
20894         of the underlying type of a MS bitfield layout to the natural
20895         alignment of the type.
20896
20897         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
20898
20899         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
20900         to their natural alignment to avoid store forwarding stalls.
20901
20902 2008-03-22  Richard Guenther  <rguenther@suse.de>
20903
20904         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
20905         For PHI nodes verify the address is invariant.
20906         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
20907         (get_symbol_constant_value): Use is_gimple_min_invariant.
20908         (maybe_fold_stmt_indirect): Likewise.
20909
20910 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
20911
20912         PR rtl-optimization/33927
20913         * Makefile.in (dse.o): Depend on $(TM_P_H).
20914         * expr.h (extract_low_bits): Declare.
20915         * expmed.c (extract_low_bits): New function.
20916         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
20917         * dse.c: Include tm_p.h.
20918         (find_shift_sequence): Remove the read_reg argument and return the
20919         read value.  Emit the instructions instead of returning them.
20920         Iterate on new_mode rather than calculating it each time.
20921         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
20922         source to NEW_MODE and extract_low_bits to convert the shifted
20923         value to READ_MODE.
20924         (replace_read): Allow the load and store to have different mode
20925         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
20926         or extraction instructions before trying the replacement.  Update
20927         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
20928
20929 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
20930
20931         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
20932         to their natural alignment to avoid store forwarding stalls.
20933
20934 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20935
20936         PR target/27946
20937         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
20938         encouraging but not allowing gprs for input;
20939         change the input constraint to !f#r.
20940         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
20941         gprs for output;
20942         change the output constraint to !f#r.
20943
20944 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
20945
20946         PR target/13958
20947         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
20948         corresponding post-reload splitters.
20949         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
20950         when x87 FP math is selected.
20951         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
20952         New function prototype.
20953         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
20954         unreachable function to ease macroization of insn patterns.
20955
20956 2008-03-21  Martin Jambor  <mjambor@suse.cz>
20957
20958         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
20959         reference dumps if ddr is NULL or dependence is unknown.
20960
20961 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
20962
20963         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
20964         unsigned extension into account.
20965         (ATOMIC_COMPARE_AND_SWAP): Likewise.
20966         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
20967         Do computations on a scratch register.
20968
20969 2008-03-21  Richard Guenther  <rguenther@suse.de>
20970
20971         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
20972         Use is_gimple_min_invariant instead of TREE_INVARIANT.
20973         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
20974         * tree-ssa-dom.c (record_equality): Likewise.
20975         * tree-inline.c (copy_body_r): Likewise.
20976         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
20977         TREE_INVARIANT.
20978
20979 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
20980
20981         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
20982         as 'delete_unused' argument.
20983
20984 2008-03-20  Richard Guenther  <rguenther@suse.de>
20985
20986         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
20987         special casing of constant qualifiers.
20988         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
20989         care about them in general.
20990         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
20991         regardless of their type.
20992         (fold_stmt_r): Forcefully fold *& if we end up with that.
20993
20994 2008-03-20  Paul Brook  <paul@codesourcery.com>
20995
20996         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
20997         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
20998         linker flags.
20999         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
21000         definition.
21001         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
21002         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
21003
21004 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
21005
21006         * common.opt (Wmudflap): New option.
21007         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
21008         (mx_register_decls): Likewise.
21009         (mudflap_finish_file): Likewise.
21010         * doc/invoke.texi: Document -Wno-mudflap.
21011
21012 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
21013
21014         * c-format.c (replace_format_name_to_system_name): New.
21015         (cmp_attribs): New.
21016         (convert_format_name_to_system_name): New.
21017         (decode_format_attr): Add use of convert_format_name_to_system_name.
21018         (format_types_orig): Add gnu_ prefix to names.
21019         (check_format_info_main): Special treating of \0 escaped names for
21020         supporting multi-character format specifiers as I32, I64.
21021         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
21022         (gnu_target_overrides_format_attributes): New.
21023         * c-format.h: Add structure target_ovr_attr to hold
21024         system specific formatter names.
21025         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
21026         msformat-c.o file to c_target_objs and cxx_target_objs.
21027         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
21028         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
21029         (TARGET_N_FORMAT_TYPES): New.
21030         * config/i386/msformat-c.c: New.
21031         * config/i386/t-cygming: Add build rule for msformat-c.o.
21032         * doc/extend.texi: Add new format names gnu_* and ms_* and
21033         further details.
21034         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
21035
21036 2008-03-20  Ira Rosen  <irar@il.ibm.com>
21037
21038         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
21039         optimizations turned on under -O3.
21040         (ftree-vectorize): Add that the flag is turned on with -O3.
21041
21042 2008-03-20  Ben Elliston  <bje@au.ibm.com>
21043
21044         * regmove.c (try_auto_increment): Fix spelling error in comment.
21045         * final.c (final_scan_insn): Likewise.
21046
21047 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
21048
21049         PR target/14552
21050         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
21051         allocator preferences for "y" and "r" class registers.
21052         ("*mov<mode>_internal"): Ditto.
21053         ("*movv2sf_internal_rex64"): Ditto.
21054         ("*movv2sf_internal"): Ditto.
21055
21056 2008-03-19  Michael Matz  <matz@suse.de>
21057
21058         PR middle-end/35616
21059         * calls.c (expand_call): Check overlap of arguments with call
21060         address for sibcalls.
21061
21062 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
21063
21064         PR target/35496
21065         * stor-layout.c (update_alignment_for_field): Set minimum alignment
21066         of the underlying type of a MS bitfield layout to the natural
21067         alignment of the type.
21068
21069 2008-03-19  Jan Hubicka  <jh@suse.cz>
21070
21071         PR other/35094
21072         * toplev.c (decode_d_option): Handle all CPP flags.
21073         * tree-vrp.c: Update tree_pass descriptors.
21074         * regrename.c: Update tree_pass descriptors.
21075         * fwprop.c: Update tree_pass descriptors.
21076         * doc/invoke.texi: Remove documentation of dropped -d? flags.
21077         * tree-into-ssa.c: Update tree_pass descriptors.
21078         * tree-dump.c: Update tree_pass descriptors.
21079         * tree-complex.c: Update tree_pass descriptors.
21080         * tree-dump.h: Update tree_pass descriptors.
21081         * see.c: Update tree_pass descriptors.
21082         * cgraphbuild.c: Update tree_pass descriptors.
21083         * tracer.c: Update tree_pass descriptors.
21084         * tree-loop-distribution.c: Update tree_pass descriptors.
21085         * cgraph.c: Update tree_pass descriptors.
21086         * postreload-gcse.c: Update tree_pass descriptors.
21087         * postreload.c: Update tree_pass descriptors.
21088         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
21089         * tree-tailcall.c: Update tree_pass descriptors.
21090         * tree-pass.h (tree_opt_pass): Rename to ...
21091         (opt_pass) ... this one; add "type" field and remove letter field.
21092         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
21093         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
21094         all_lowering_passes): Update declaration.
21095         * ipa-cp.c: Update tree_pass descriptors.
21096         * final.c: Update tree_pass descriptors.
21097         * omp-low.c: Update tree_pass descriptors.
21098         * tree-ssa-dse.c: Update tree_pass descriptors.
21099         * ipa-reference.c: Update tree_pass descriptors.
21100         * tree-ssa-uncprop.c: Update tree_pass descriptors.
21101         * auto-inc-dec.c: Update tree_pass descriptors.
21102         * reorg.c: Update tree_pass descriptors.
21103         * cgraphunit.c: Update tree_pass descriptors.
21104         * tree-ssa-copyrename.c: Update tree_pass descriptors.
21105         * tree-ssa-ccp.c: Update tree_pass descriptors.
21106         * df-core.c: Update tree_pass descriptors.
21107         * mode-switching.c: Update tree_pass descriptors.
21108         * tree-nomudflap.c: Update tree_pass descriptors.
21109         * modulo-sched.c: Update tree_pass descriptors.
21110         * ipa-pure-const.c: Update tree_pass descriptors.
21111         * cse.c: Update tree_pass descriptors.
21112         * web.c: Update tree_pass descriptors.
21113         * tree-stdarg.c: Update tree_pass descriptors.
21114         * tree-ssa-math-opts.c: Update tree_pass descriptors.
21115         * tree-ssa-dom.c: Update tree_pass descriptors.
21116         * tree-nrv.c: Update tree_pass descriptors.
21117         * tree-ssa-alias.c: Update tree_pass descriptors.
21118         * loop-init.c: Update tree_pass descriptors.
21119         * gimple-low.c: Update tree_pass descriptors.
21120         * ipa-inline.c: Update tree_pass descriptors.
21121         * tree-ssa-sink.c: Update tree_pass descriptors.
21122         * global.c: Update tree_pass descriptors.
21123         * ifcvt.c: Update tree_pass descriptors.
21124         * jump.c: Update tree_pass descriptors.
21125         * predict.c: Update tree_pass descriptors.
21126         * tree-ssa-loop.c: Update tree_pass descriptors.
21127         * recog.c: Update tree_pass descriptors.
21128         * dse.c: Update tree_pass descriptors.
21129         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
21130         * tree-eh.c: Update tree_pass descriptors.
21131         * regmove.c: Update tree_pass descriptors.
21132         * local-alloc.c
21133         * function.c: Update tree_pass descriptors.
21134         * tree-vectorizer.c: Update tree_pass descriptors.
21135         * gcse.c: Update tree_pass descriptors.
21136         * ipa-type-escape.c: Update tree_pass descriptors.
21137         * tree-if-conv.c: Update tree_pass descriptors.
21138         * init-regs.c: Update tree_pass descriptors.
21139         * ipa.c: Update tree_pass descriptors.
21140         * tree-ssa-phiopt.c: Update tree_pass descriptors.
21141         * rtl-factoring.c: Update tree_pass descriptors.
21142         * lower-subreg.c: Update tree_pass descriptors.
21143         * bt-load.c: Update tree_pass descriptors.
21144         * tree-dfa.c: Update tree_pass descriptors.
21145         * except.c: Update tree_pass descriptors.
21146         * emit-rtl.c: Update tree_pass descriptors.
21147         * cfgexpand.c: Update tree_pass descriptors.
21148         * tree-cfgcleanup.c: Update tree_pass descriptors.
21149         * cfgcleanup.c: Update tree_pass descriptors.
21150         * tree-ssa-pre.c: Update tree_pass descriptors.
21151         * tree-sra.c: Update tree_pass descriptors.
21152         * tree-mudflap.c: Update tree_pass descriptors.
21153         * tree-ssa-copy.c: Update tree_pass descriptors.
21154         * cfglayout.c: Update tree_pass descriptors.
21155         * tree-ssa-forwprop.c: Update tree_pass descriptors.
21156         * tree-ssa-dce.c: Update tree_pass descriptors.
21157         * tree-ssa.c: Update tree_pass descriptors.
21158         * regclass.c: Update tree_pass descriptors.
21159         * integrate.c: Update tree_pass descriptors.
21160         * tree-optimize.c: Update tree_pass descriptors.
21161         * tree-ssa-phiprop.c: Update tree_pass descriptors.
21162         * tree-object-size.c: Update tree_pass descriptors.
21163         * combine.c: Update tree_pass descriptors.
21164         * tree-outof-ssa.c: Update tree_pass descriptors.
21165         * bb-reorder.c: Update tree_pass descriptors.
21166         * stack-ptr-mod.c: Update tree_pass descriptors.
21167         * var-tracking.c: Update tree_pass descriptors.
21168         * tree-profile.c: Update tree_pass descriptors.
21169         * tree-vect-generic.c: Update tree_pass descriptors.
21170         * reg-stack.c: Update tree_pass descriptors.
21171         * sched-rgn.c: Update tree_pass descriptors.
21172         * tree-ssa-structalias.c: Update tree_pass descriptors.
21173         * tree-cfg.c: Update tree_pass descriptors.
21174         * passes.c (current_pass): Update declaration.
21175         (finish_optimization_passes): Update.
21176         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
21177         (register_one_dump_file, register_dump_files_1, next_pass_1):
21178         Update arguments.
21179         (init_optimization_passes): Update handling of new types.
21180         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
21181         * ipa-struct-reorg.c: Update tree_pass descriptors.
21182         * tree-ssa-reassoc.c: Update tree_pass descriptors.
21183         * combine-stack-adj.c: Update tree_pass descriptors.
21184         * cfgrtl.c: Update tree_pass descriptors.
21185         * dce.c: Update tree_pass descriptors.
21186         * tree-ssanames.c: Update tree_pass descriptors.
21187
21188 2008-03-19  Richard Guenther  <rguenther@suse.de>
21189
21190         PR middle-end/35609
21191         * tree-ssa.c (walk_data): New structure.
21192         (warn_uninitialized_var): If not always_executed warn with "maybe"
21193         instead of "is".
21194         (execute_early_warn_uninitialized): Compute post-dominators.
21195         Initialize always_executed before processing each basic block.
21196
21197 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
21198
21199         PR target/35504
21200         * config/i386/i386.c (x86_this_parameter): Calculate correct location
21201         of "this" pointer when "regparm = N" or "fastcall" is in effect.
21202
21203 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21204
21205         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
21206
21207 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
21208
21209         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
21210         is true.
21211         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
21212         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
21213         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
21214         target after ignore has been set, and move there also the commputation
21215         of subtarget and original_target.
21216         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
21217         (LANG_HOOKS_INITIALIZER): Remove it.
21218         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
21219
21220 2008-03-18  Richard Guenther  <rguenther@suse.de>
21221
21222         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
21223         found an expression with constants, note that in the VN for the lhs.
21224         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
21225         fold them to constants if possible.  Run cleanup_cfg if done so.
21226         (execute_pre): Return todo.
21227         (do_pre): Likewise.
21228         (execute_fre): Likewise.
21229         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
21230         of constants.
21231         (get_prop_source_stmt): Look through pointer conversions.
21232
21233 2008-03-18  Jan Hubicka  <jh@suse.cz>
21234
21235         * tree-pretty-print.c: Include predict.h.
21236         (dump_generic_node): Dump predictor.
21237         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
21238         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
21239         * gimple-low.c (lower_stmt): Likewise.
21240         * expr.c (expand_expr_real): Likewise.
21241         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
21242         them.
21243         (build_predict_expr, build_predict_expr): New.
21244         * predict.h (predictor_name, build_predict_expr): Update.
21245         * c-typeck.c (c_finish_bc_stmt): Add prediction.
21246         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
21247         * predict.def (PRED_CONTINUE): Update hitrate.
21248         * tree.def (PREDICT_EXPR): Define.
21249         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
21250         do not handle BIND_EXPR.
21251         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
21252         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
21253         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
21254         operands.
21255
21256 2008-03-18  Michael Matz  <matz@suse.de>
21257
21258         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
21259
21260 2008-03-18  Richard Guenther  <rguenther@suse.de>
21261
21262         * tree-gimple.h (is_gimple_invariant_address): Declare.
21263         (is_gimple_constant): Likewise.
21264         * tree-gimple.c (is_gimple_constant): New function.
21265         (is_gimple_invariant_address): Likewise.
21266         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
21267         and is_gimple_invariant_address.
21268         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
21269         previous change.
21270         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
21271         an addressable base.
21272
21273 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
21274
21275         PR middle-end/35611
21276         * gimplify.c (gimplify_expr): Gimplify second operand of
21277         OMP_ATOMIC_LOAD.
21278
21279 2008-03-17  Richard Guenther  <rguenther@suse.de>
21280
21281         PR tree-optimization/19637
21282         * fold-const.c (fold_unary): Remove restrictions of removing
21283         intermediate pointer-conversions (P2)(P1)P0.
21284         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
21285         conversion to void pointer.
21286         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
21287
21288 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
21289
21290         PR debug/31510
21291         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
21292         emulated thread local variables.
21293
21294 2008-03-16  Richard Guenther  <rguenther@suse.de>
21295
21296         PR middle-end/35607
21297         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
21298         expand TREE_INVARIANT operations that are not gimple invariant.
21299
21300 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
21301
21302         * doc/extend.texi (Alignment): Say that the ABI controls
21303         the __alignof__ for non-strict-alignment targets rather
21304         than being a recommendation.
21305
21306 2008-03-15  Paul Brook  <paul@codesourcery.com>
21307
21308         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
21309         annotations.
21310         (arm_output_fn_unwind): Mark functions that can not be unwound.
21311
21312 2008-03-15  Paul Brook  <paul@codesourcery.com>
21313
21314         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
21315         extension instructions.
21316
21317 2008-03-15  Richard Guenther  <rguenther@suse.de>
21318
21319         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
21320         and fold constant aggregate refs.
21321         (fold_const_aggregate_ref): Handle string constants
21322         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
21323         (evaluate_stmt): Simplify now that ccp_fold folds constant
21324         aggregate refs.
21325
21326 2008-03-15  Paul Brook  <paul@codesourcery.com>
21327
21328         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
21329         (extzv): Use gen_extzv_t2.
21330         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
21331
21332 2008-03-15  Richard Guenther  <rguenther@suse.de>
21333
21334         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
21335         (fold_const_aggregate_ref): Likewise.
21336         (get_value): Return NULL if we don't have any values.
21337         (ccp_finalize): Set const_val to NULL after freeing it.
21338         * tree-flow.h (get_symbol_constant_value): Declare.
21339         (fold_const_aggregate_ref): Likewise.
21340         * tree-ssa-sccvn.c (try_to_simplify): Use them.
21341
21342 2008-03-15  Richard Guenther  <rguenther@suse.de>
21343
21344         PR middle-end/35593
21345         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
21346         to not produce negative array indices if not allowed.  Add
21347         parameter to indicate that.
21348         (maybe_fold_offset_to_component_ref): Allow negative array
21349         indices only for the first member of a structure.
21350         (maybe_fold_offset_to_reference): Allow negative array indices.
21351         (maybe_fold_stmt_addition): Likewise.
21352
21353 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
21354             Anatoly Sokolov <aesok@post.ru>
21355
21356         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
21357         (avr_arch): Add ARCH_AVR6.
21358         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
21359         (initial_elimination_offset): Initialize and use 'avr_pc_size'
21360         instead of fixed value 2.
21361         (print_operand_address): Use gs() asm specifier instead of pm().
21362         (avr_assemble_integer): (Ditto.).
21363         (avr_output_addr_vec_elt): (Ditto.).
21364         (print_operand): Handle "!" code.
21365         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
21366         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
21367         (AVR_HAVE_EIJMP_EICALL): Define.
21368         (AVR_3_BYTE_PC): Redefine.
21369         (AVR_2_BYTE_PC): (Ditto.).
21370         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
21371         (LINK_SPEC): Add atmega2560 and atmega2561.
21372         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
21373         (crtm2561.o).
21374         * config/avr/avr.md (call_insn): Use eicall instead of icall
21375         for 3 byte PC devices.
21376         (call_value_insn): (Ditto.).
21377         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
21378         (indirect_jump): Use only for for 2 byte PC devices.
21379         (*tablejump): (Ditto.).
21380         (*indirect_jump_avr6): Add insn.
21381         (*tablejump_rjmp): Don't use for 3 byte PC devices.
21382         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
21383         instead of ijmp for 3 byte PC devices.
21384         (__tablejump2__): (Ditto.).
21385         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
21386         (MULITLIB_DIRNAMES): (Ditto.).
21387         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
21388
21389 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
21390
21391         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
21392         "sse2_umulsidi3".  Use V1DI mode for operand 0.
21393         ("mmx_psadbw"): Use V1DI mode for operand 0.
21394         * config/i386/i386-modes.def (V1SI): New vector mode.
21395         * config/i386/i386.c (struct builtin_description)
21396         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
21397         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
21398         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
21399         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
21400         v1di_ftype_v8qi_v8qi type.
21401         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
21402
21403         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
21404         __builtin_ia32_pmuludq]: Fix the mode of return value.
21405
21406 2008-03-15  Richard Guenther  <rguenther@suse.de>
21407
21408         PR middle-end/35595
21409         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
21410         being a PHI_NODE.
21411
21412 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
21413
21414         * doc/invoke.texi (Option Summary, Xtensa Options): Document
21415         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
21416         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
21417         unless TARGET_SERIALIZE_VOLATILE is enabled.
21418         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
21419         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
21420         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
21421
21422 2008-03-14  Richard Guenther  <rguenther@suse.de>
21423
21424         PR tree-optimization/34172
21425         * tree-flow.h (refs_may_alias_p): Declare.
21426         (get_single_def_stmt): Likewise.
21427         (get_single_def_stmt_from_phi): Likewise.
21428         (get_single_def_stmt_with_phi): Likewise.
21429         * tree-dfa.c (refs_may_alias_p): New function.
21430         (get_single_def_stmt): Likewise.
21431         (get_single_def_stmt_from_phi): Likewise.
21432         (get_single_def_stmt_with_phi): Likewise.
21433         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
21434         (vn_reference_lookup_1): New helper function.
21435         (vn_reference_lookup): Walk the virtual use-def chain to
21436         continue searching for a match if the def does not alias the
21437         reference we are looking for.
21438
21439 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
21440
21441         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
21442         archive and Perzl.  Update The Written Word listing.
21443
21444 2008-03-14  Richard Guenther  <rguenther@suse.de>
21445
21446         PR tree-optimization/34043
21447         PR tree-optimization/33989
21448         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
21449         when doing FRE.
21450         (bitmap_find_leader): Use extra argument to verify dominance
21451         relationship inside a basic-block.
21452         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
21453         (find_leader_in_sets): Adjust.
21454         (create_component_ref_by_pieces): Take extra argument for
21455         dominance check, handle lookup failures.
21456         (find_or_generate_expression): Likewise.
21457         (create_expression_by_pieces): Likewise.
21458         (insert_into_preds_of_block): Adjust.
21459         (create_value_expr_from): If asked for, verify all operands
21460         are in the blocks AVAIL_OUT set.
21461         (make_values_for_stmt): Check for SSA_NAMEs that are life
21462         over an abnormal edge.
21463         (compute_avail): Remove such check.
21464         (do_SCCVN_insertion): New function.
21465         (eliminate): If we do not find a leader suitable for replacement
21466         insert a replacement expression from SCCVN if available.
21467         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
21468         (struct vn_ssa_aux): Add needs_insertion flag.
21469         * tree-ssa-sccvn.c (may_insert): New global flag.
21470         (copy_reference_ops_from_ref): Value-number union member access
21471         based on its size, not type and member if insertion is allowed.
21472         (visit_reference_op_load): For a weak match from union type
21473         punning lookup a view-converted value and insert a SSA_NAME
21474         for that value if that is not found.
21475         (visit_use): Make dumps shorter.  Do not disallow value numbering
21476         SSA_NAMEs that are life over an abnormal edge to constants.
21477         (free_scc_vn): Release inserted SSA_NAMEs.
21478         (run_scc_vn): New flag to specify whether insertion is allowed.
21479         Process SSA_NAMEs in forward order.
21480         * tree-ssa-loop-im.c (for_each_index): Handle invariant
21481         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
21482         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
21483         pointer type to/from integral types that do not change the
21484         precision to regular conversions.
21485
21486 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
21487
21488         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
21489         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
21490         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
21491         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
21492         input arguments and the mode of return value.  Built-in functions
21493         that operate on whole 64-bit MMX register now use V1DI mode.
21494
21495 2008-03-13  Alon Dayan  <alond@il.ibm.com>
21496             Olga Golovanevsky  <olga@il.ibm.com>
21497
21498         PR tree-optimization/35041
21499         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
21500         to locate the right position in a statement.
21501
21502 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
21503
21504         PR target/34000
21505         PR target/35553
21506         * config/i386/xmmintrin.h:  Change all static inline functions to
21507         extern inline and add __gnu_inline__ attribute.
21508         * config/i386/bmintrin.h: Ditto.
21509         * config/i386/smmintrin.h: Ditto.
21510         * config/i386/tmmintrin.h: Ditto.
21511         * config/i386/mmintrin-common.h: Ditto.
21512         * config/i386/ammintrin.h: Ditto.
21513         * config/i386/emmintrin.h: Ditto.
21514         * config/i386/pmmintrin.h: Ditto.
21515         * config/i386/mmintrin.h: Ditto.
21516         * config/i386/mm3dnow.h: Ditto.
21517
21518 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
21519
21520         PR middle-end/35185
21521         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
21522         (lower_omp_2): New function.
21523         (lower_omp_1, lower_omp): Rewritten.
21524
21525 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
21526
21527         PR 35054
21528         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
21529         with the phrase "Microsoft Windows compilers".
21530         (Push/Pop Macro Pragmas): New subsection. Document
21531         #pragma push_macro and pragma pop_macro.
21532
21533 2008-03-12  Paul Brook  <paul@codesourcery.com>
21534
21535         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
21536
21537 2008-03-12  Paul Brook  <paul@codesourcery.com>
21538
21539         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
21540         (thumb2_alusi3_short): Exclude PLUS and MINUS.
21541         (thumb2_addsi_shortim): Rename ...
21542         (thumb2_addsi_short): ... to this.  Allow register operands.
21543         (thumb2_subsi_short): New pattern.
21544         (thumb2_one_cmplsi2_short,
21545         thumb2_negsi2_short): New patterns and peepholes.
21546
21547 2008-03-12  Paul Brook  <paul@codesourcery.com>
21548
21549         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
21550
21551 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
21552
21553         * config/i386/i386.md (int_cond): New code iterator.
21554         (fp_cond): Ditto.
21555         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
21556         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
21557         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
21558         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
21559         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
21560         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
21561         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
21562         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
21563
21564 2008-03-12  Paul Brook  <paul@codesourcery.com>
21565
21566         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
21567         instead of {arm,thumb}_compute_save_reg_mask.
21568         (output_return_instruction): Ditto.
21569         (thumb_unexpanded_epilogue): Ditto.
21570         (thumb1_expand_prologue): Ditto.
21571         (thumb1_output_function_prologue): Ditto.
21572         (arm_set_return_address): Ditto.
21573         (thumb_set_return_address): Ditto.
21574         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
21575         regs to achieve stack alignment.
21576         (thumb1_compute_save_reg_mask): Fix compiler warning.
21577         (arm_output_epilogue): Use offsets->saved_regs_mask.
21578         Adjust stack pointer by poping call clobered registers.
21579         (arm_expand_prologue): Use offsets->saved_regs_mask.
21580         Adjust stack pointer by pushing extra registers.
21581         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
21582
21583 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
21584
21585         PR tree-opt/35422
21586         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
21587         conversion to the operands of a multiplication.
21588
21589 2008-03-12  Richard Guenther  <rguenther@suse.de>
21590
21591         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
21592         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
21593         * timevar.def (TV_TREE_PHIPROP): Add.
21594         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
21595         pass description.  Use TV_TREE_PHIPROP.
21596         * tree-ssa-forwprop.c: Remove phiprop code.
21597
21598 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
21599
21600         PR middle-end/35549
21601         * omp-low.c (maybe_lookup_decl): Constify first argument.
21602         (use_pointer_for_field): Change last argument from bool to
21603         omp_context *.  Disallow shared copy-in/out in nested
21604         parallel if decl is shared in outer parallel too.
21605         (build_outer_var_ref, scan_sharing_clauses,
21606         lower_rec_input_clauses, lower_copyprivate_clauses,
21607         lower_send_clauses, lower_send_shared_vars): Adjust callers.
21608
21609 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
21610             Ira Rosen  <irar@il.ibm.com>
21611
21612         * tree-vectorizer.c (free_stmt_vec_info): New function.
21613         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
21614         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
21615         * tree-vectorizer.h (free_stmt_vec_info): Declare.
21616         * tree-vect-transform.c (vectorizable_conversion): Free
21617         vec_oprnds0 if it was allocated.
21618         (vect_permute_store_chain): Remove unused VECs.
21619         (vectorizable_store): Free VECs that are allocated in the..
21620         function.
21621         (vect_transform_strided_load, vectorizable_load): Likewise.
21622         (vect_remove_stores): Simplify the code.
21623         (vect_transform_loop): Move code to vect_remove_stores().
21624         Call vect_remove_stores() and free_stmt_vec_info().
21625
21626 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21627
21628         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
21629         TARGET_HPUX.  Revise comment.
21630         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
21631         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
21632         Use sr4 variant of `be' instruction when not generating PIC code.
21633         (attr_length_call): Adjust for above change.
21634
21635 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21636
21637         * ipa-reference.c (static_execute): Remove module_statics_const and
21638         associated setting code.
21639
21640 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
21641
21642         PR target/35540
21643         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
21644         predicate for operand 1.
21645         (paritysi2_cmp): Use register_operand predicate for operand 2.
21646         Use earlyclobber modifier for operand 1.  Remove support for
21647         memory operands.
21648         (paritydi2_cmp): Use register_operand predicate for operand 3.
21649         Use earlyclobber modifier for operand 1.  Remove support for
21650         memory operands.
21651
21652 2008-03-11  Paul Brook  <paul@codesourcery.com>
21653             Vladimir Prus  <vladimir@codesourcery.com>
21654
21655         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
21656         (arm_compute_save_reg0_reg12_mask): Always
21657         check if register 11 must be saved.  Always safe hard frame pointer
21658         when frame_pointer_needeed.
21659         (arm_compute_save_reg_mask): Save IP and PC
21660         only with apcs frames.
21661         (arm_output_epilogue): Adjust Thumb2 codepath to
21662         be also invoked and work for ARM non-apcs frames.
21663         (arm_expand_prologue): Don't bother saving IP
21664         for non-apcs frame, since it's not clobbered by
21665         prologue code.  Implement non-apcs frame
21666         layout.
21667
21668 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
21669
21670         PR rtl-optimization/35281
21671         * expr.c (convert_move): Use a new pseudo for the intermediate
21672         from_mode->word_mode result.
21673
21674 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
21675
21676         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
21677         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
21678         * toplev.c (compile_file): Don't call it.
21679
21680 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
21681
21682         PR middle-end/35526
21683         * expr.c (store_expr): Call emit_block_move if the mode
21684         of "temp" RTX is BLKmode.
21685
21686 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21687             Richard Guenther  <rguenther@suse.de>
21688
21689         PR tree-optimization/31358
21690         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
21691         the step with a NULL_TREE.
21692         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
21693         to sizetype if type is a pointer type.
21694         (add_candidate_1): Don't convert the base and step to
21695         the generic type if the orginal type is a pointer type.
21696         (add_iv_value_candidates): Use sizetype for the step
21697         if type is a pointer type.
21698         (cand_value_at): Likewise.
21699         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
21700         for pointer types.
21701         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
21702         Don't convert the tem affine to the type.
21703         (add_elt_to_tree): Use sizetype for the step if a pointer.
21704         Use POINTER_PLUS_EXPR for pointers.
21705         (aff_combination_to_tree): Use sizetype for the step if a
21706         pointer.
21707
21708 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
21709
21710         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
21711         Remove commutativity hint.
21712
21713 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
21714
21715         PR c/35438
21716         PR c/35439
21717         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
21718         errorneous type.  Check that v is a VAR_DECL.
21719
21720         PR middle-end/35099
21721         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
21722
21723 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
21724
21725         PR tree-optimization/35494
21726         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
21727         may be overriden at link and run time.
21728
21729 2008-03-10  Richard Guenther  <rguenther@suse.de>
21730
21731         PR tree-optimization/34677
21732         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
21733         (poolify_tree): Likewise.
21734         (modify_expr_template): Likewise.
21735         (poolify_modify_stmt): Likewise.
21736         (insert_fake_stores): Handle all component-ref style stores
21737         in addition to INDIRECT_REF.  Also handle complex types.
21738         Do not poolify the inserted load.
21739         (realify_fake_stores): Do not rebuild the tree but only
21740         make it a SSA_NAME copy.
21741         (init_pre): Remove initialzation of modify_expr_template.
21742         Do not allocate modify_expr_node_pool.
21743         (fini_pre): Do not free modify_expr_node_pool.
21744
21745 2008-03-10  Paul Brook  <paul@codesourcery.com>
21746
21747         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
21748         to avoid conflicts.
21749
21750 2008-03-10  Paul Brook  <paul@codesourcery.com>
21751             Mark Shinwell  <shinwell@codesourcery.com>
21752
21753         * config/arm/cortex-r4.md: New.
21754         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
21755         insn attributes.
21756         * config/arm/arm.md: Include cortex-r4.md.
21757         (insn): Add smmls, sdiv and udiv values.
21758         (generic_sched): Don't use generic scheduling for Cortex-R4.
21759         (arm_issue_rate): New function.
21760         (TARGET_SCHED_ISSUE_RATE): Define.
21761
21762 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
21763
21764         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
21765
21766 2008-03-10  Richard Guenther  <rguenther@suse.de>
21767
21768         * tree-ssa-pre.c (get_sccvn_value): Simplify.
21769         (compute_avail): Do not add stmt uses to AVAIL_OUT.
21770
21771 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
21772
21773         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
21774         Set default to true.
21775
21776 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21777
21778         * c.opt (Wsynth): Deprecate.
21779         * doc/invoke.texi (Option Summary, Warning Options): Document
21780         -Wno-format-contains-nul.
21781
21782 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
21783
21784         PR target/35496
21785         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
21786         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
21787
21788 2008-03-09  Ira Rosen  <irar@il.ibm.com>
21789
21790         * config/rs6000/rs6000.c (builtin_description): Rename vector
21791         left shift operations.
21792         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
21793         (altivec_vsl<VI_char>): Rename to ...
21794         (ashl<mode>3): ... new name.
21795         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
21796         gen_ashlv4si3.
21797         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
21798
21799 2008-03-08  Richard Guenther  <rguenther@suse.de>
21800
21801         * coverage.h (tree_coverage_counter_addr): Declare.
21802         * coverage.c (tree_coverage_counter_addr): New function.
21803         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
21804         before using again.
21805         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
21806         (tree_gen_one_value_profiler): Likewise.
21807         (tree_gen_ic_profiler): Likewise.
21808         (tree_gen_average_profiler): Likewise.
21809         (tree_gen_ior_profiler): Likewise.
21810
21811 2008-03-08  Richard Guenther  <rguenther@suse.de>
21812
21813         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
21814         (vn_binary_op_insert): Likewise.
21815         (vn_unary_op_lookup): Likewise.
21816         (vn_unary_op_insert): Likewise.
21817         (vn_nary_op_lookup): Declare.
21818         (vn_nary_op_insert): Likewise.
21819         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
21820         and binary hashes, use a single obstack for unary_op_pool
21821         and binary_op_pool.
21822         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
21823         a single struct vn_nary_op_s.  Store tree code length and
21824         a variable number of operands.
21825         (struct vn_reference_op_struct): Remove unused op2.
21826         (vn_reference_op_eq): Do not compare op2.
21827         (vn_reference_op_compute_hash): Do not compute hash of op2.
21828         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
21829         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
21830         with vn_nary_op_compute_hash.
21831         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
21832         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
21833         vn_nary_op_lookup.
21834         (vn_unary_op_insert, vn_binary_op_insert): Replace with
21835         vn_nary_op_insert.
21836         (visit_unary_op): Call nary functions.
21837         (visit_binary_op): Likewise.
21838         (process_scc): Adjust for struct vn_tables_s changes.
21839         (allocate_vn_table): Likewise.
21840         (free_vn_table): Likewise.
21841         * tree-vn.c (vn_add): Call nary functions.
21842         (vn_lookup): Likewise.
21843
21844 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
21845
21846         PR target/35498
21847         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
21848         wdst back after sync_compare_and_swapqhi_internal.
21849
21850 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
21851
21852         PR target/22152
21853         * config/i386/i386-modes.def (V1DI): New vector mode.
21854         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
21855         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
21856         (MMXMODE248): Ditto.
21857         (MMXMODE): Add V1DI mode.
21858         (mmxvecsize): Change DI mode to V1DI mode.
21859         ("mov<mode>): Use MMXMODEI8 mode iterator.
21860         ("*mov<mode>_internal_rex64"): Ditto.
21861         ("*mov<mode>_internal"): Ditto.
21862         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
21863         ("mmx_sub<mode>3"): Ditto.
21864         ("mmx_adddi3"): Remove insn pattern.
21865         ("mmx_subdi3"): Ditto.
21866         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
21867         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
21868         ("mmx_ashl<mode>3"): Ditto.
21869         ("mmx_lshrdi3"): Remove insn pattern.
21870         ("mmx_ashldi3"): Ditto.
21871         * config/i386/i386.c (classify_argument): Handle V1DImode.
21872         (function_arg_advance_32): Ditto.
21873         (function_arg_32): Ditto.
21874         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
21875         mmx_addv1di3 insn pattern.
21876         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
21877         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
21878         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
21879         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
21880         Remove definitions of built-in functions.
21881         (V1DI_type_node): New node.
21882         (v1di_ftype_v1di_int): Ditto.
21883         (v1di_ftype_v1di_v1di): Ditto.
21884         (v2si_ftype_v2si_si): Ditto.
21885         (v4hi_ftype_v4hi_di): Remove node.
21886         (v2si_ftype_v2si_di): Ditto.
21887         (ix86_init_mmx_sse_builtins): Handle V1DImode.
21888         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
21889         Redefine builtins using def_builtin_const with *_ftype_*_int node.
21890         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
21891         Add new builtins using def_builtin_const.
21892         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
21893         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
21894         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
21895         * config/i386/mmintrin.h (__v1di): New typedef.
21896         (_mm_add_si64): Cast arguments to __v1di type.
21897         (_mm_sub_si64): Ditto.
21898         (_mm_sll_pi16): Cast __count to __v4hi type.
21899         (_mm_sll_pi32): Cast __count to __v2si type.
21900         (_mm_sll_si64): Cast arguments to __v1di type.
21901         (_mm_srl_pi16): Cast __count to __v4hi type.
21902         (_mm_srl_pi32): Cast __count to __v2si type.
21903         (_mm_srl_si64): Cast arguments to __v1di type.
21904         (_mm_sra_pi16): Cast __count to __v4hi type.
21905         (_mm_sra_pi32): Cast __count to __v2si type.
21906         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
21907         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
21908         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
21909         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
21910         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
21911         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
21912         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
21913         (_mm_srai_pi32): Use __builtin_ia32_psradi.
21914         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
21915         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
21916         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
21917         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
21918
21919 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
21920
21921         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
21922
21923 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
21924
21925         PR target/35373
21926         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
21927         reg+const addressing for Altivec modes.  Don't generate reg+reg
21928         addressing for TFmode or TDmode quantities.
21929
21930 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
21931
21932         * c-common.c (vector_types_convertible_p): Call langhook
21933         instead of comptypes.
21934
21935 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21936
21937         PR tree-opt/35402
21938         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
21939         integral and scalar float variables which have a
21940         NULL DECL_INITIAL.
21941
21942 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
21943
21944         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
21945         dwarf_register_span hook when emitting unwind information for
21946         register-to-memory saves.
21947         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
21948         (rs6000_frame_related): Remove call to spe_synthesize_frame.
21949
21950 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
21951
21952         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
21953         for the same VAR_DECL.
21954
21955 2008-03-06  Tom Tromey  <tromey@redhat.com>
21956
21957         * treelang: Delete.
21958         * doc/standards.texi (Standards): Don't mention treelang.
21959         * doc/invoke.texi (Overall Options): Don't mention treelang.
21960         * doc/install.texi (Prerequisites): Don't mention bison or
21961         treelang.
21962         (Configuration): Don't mention treelang.
21963         (Building): Likewise.
21964         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
21965
21966 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
21967
21968         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
21969         word-extractions out of a multi-word object.
21970
21971 2008-03-06  Richard Guenther  <rguenther@suse.de>
21972
21973         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
21974         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
21975         result type and precision.
21976         * expr.c (get_inner_reference): Set unsignedp based on the result
21977         type of BIT_FIELD_REF.
21978         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
21979         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
21980         (try_instantiate_multiple_fields): Likewise.  Use the correct type
21981         for BIT_FIELD_REF.
21982         (sra_build_assignment): Likewise.
21983         (sra_build_elt_assignment): Likewise.
21984         (sra_explode_bitfield_assignment): Likewise.
21985         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
21986         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
21987         set BIT_FIELD_REF_UNSIGNED.
21988         (vectorizable_load): Likewise.
21989
21990 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
21991
21992         * cse.c (cse_extended_basic_block): Invalidate artificial defs
21993         at bb start.
21994
21995 2008-03-06  Richard Guenther  <rguenther@suse.de>
21996
21997         * alias.c (struct alias_set_entry): Move has_zero_child field
21998         to pack with alias_set.
21999
22000 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
22001
22002         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
22003         32bit host.
22004
22005 2008-03-05  Ian Lance Taylor  <iant@google.com>
22006
22007         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
22008
22009 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
22010
22011         * fwprop.c (update_df): Support width and offset parameters of
22012         df_ref_create.
22013         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
22014         global_conflicts): Change DF_REF_EXTRACT to either
22015         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
22016         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22017         * df-scan.c (df_ref_record, df_defs_record,
22018         df_ref_create_structure, df_def_record_1, df_uses_record,
22019         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
22020         df_bb_refs_collect, df_entry_block_defs_collect,
22021         df_exit_block_uses_collect): Support new width and offset fields.
22022         (ref_extract_pool): New storage pool.
22023         (df_free_ref): New function.
22024         (df_reg_chain_unlink, df_free_collection_rec,
22025         df_sort_and_compress_refs): Call df_free_ref.
22026         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
22027         of df_ref_extract.
22028         (df_ref_create_structure): Allocate df_ref_extract if offset and
22029         width fields are used.
22030         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
22031         (df_uses_record): Get offset and width from ZERO_EXTRACT
22032         and SIGN_EXTRACT.
22033         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
22034         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
22035         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22036         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
22037         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
22038         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22039         (df_ref_extract): New structure.
22040         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
22041         (df_ref_create): Add width and offset parameters.
22042
22043 2008-03-05  Richard Guenther  <rguenther@suse.de>
22044
22045         * tree-ssa-structalias.c (get_constraint_for_component_ref):
22046         Use ranges_overlap_p.
22047         (offset_overlaps_with_access): Rename
22048         to ranges_overlap_p and move ...
22049         * tree-flow-inline.h (ranges_overlap_p): ... here.
22050
22051         * tree.h (get_inner_reference, handled_component_p): Update
22052         comments.
22053
22054         * tree.h (record_component_aliases, get_alias_set,
22055         alias_sets_conflict_p, alias_sets_must_conflict_p,
22056         objects_must_conflict_p): Move declarations ...
22057         * alias.h (record_component_aliases, get_alias_set,
22058         alias_sets_conflict_p, alias_sets_must_conflict_p,
22059         objects_must_conflict_p): ... here.
22060         Include coretypes.h.
22061         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
22062
22063 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
22064
22065         * cfg.c: Include tree-flow.h.
22066         (remove_edge_raw): Call redirect_edge_var_map_clear.
22067         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
22068         * tree-flow-inline.h (redirect_edge_var_map_def): New.
22069         (redirect_edge_var_map_result): New.
22070         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
22071         PENDING_STMT use with redirect_edge_var_map_*.
22072         * tree-ssa.c (edge_var_maps): New definition.
22073         (redirect_edge_var_map_add): New.
22074         (redirect_edge_var_map_clear): New.
22075         (redirect_edge_var_map_dup): New.
22076         (redirect_edge_var_map_vector): New.
22077         (redirect_edge_var_map_destroy): New.
22078         (ssa_redirect_edge): Replace PENDING_STMT use with
22079         redirect_edge_var_map_*.
22080         (flush_pending_stmts): Same.
22081         (delete_tree_ssa): Destroy edge var map.
22082         * tree-flow.h (struct _edge_var_map): New.
22083         Define edge_var_map vector type.
22084         Declare redirect_edge_var_map_* prototypes.
22085         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
22086         * tree-cfg.c (reinstall_phi_args): Replace
22087         PENDING_STMT use with redirect_edge_var_map_*.
22088
22089 2008-03-05  Richard Guenther  <rguenther@suse.de>
22090
22091         PR tree-optimization/35472
22092         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
22093         whose single use_stmt has a overlapping set of loaded and
22094         stored symbols as that use_stmt might be a noop assignment then.
22095
22096 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
22097
22098         * gthr-rtems.h: Implement __gthread_mutex_destroy.
22099
22100 2008-03-05  Richard Guenther  <rguenther@suse.de>
22101
22102         PR c++/35336
22103         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
22104         should be constants.
22105         * tree-cfg.c (verify_expr): Verify it.
22106         * fold-const.c (fold_truthop): Remove code generating
22107         BIT_FIELD_REFs of structure bases.
22108         (fold_binary): Likewise.
22109         (fold_ternary): Position and size of BIT_FIELD_REFs are
22110         always host integers.
22111         (make_bit_field_ref): Remove.
22112         (optimize_bit_field_compare): Remove.
22113         (all_ones_mask_p): Remove.
22114
22115 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
22116
22117         PR gcc/33009
22118         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
22119         (split_block_and_df_analyze): New. Split basic block and rebuild
22120         dataflow.
22121         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
22122         SPLIT_BLOCK.
22123         (split_pattern_seq): Likewise.
22124         (erase_matching_seqs): Likewise.
22125         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
22126
22127 2008-03-04  Geoff Keating  <geoffk@apple.com>
22128
22129         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
22130         declaration and code.
22131         (tree_invalid_nonnegative_warnv_p): Likewise.
22132
22133 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
22134
22135         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
22136         examples.  Truncate option-names then causing overfull hbox.
22137
22138 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22139
22140         PR target/35222
22141         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
22142         on hpux10.
22143         * configure: Rebuilt.
22144
22145 2008-03-04  Rafael Espíndola  <espindola@google.com>
22146
22147         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
22148         (tree_unary_nonnegative_warnv_p): New.
22149         (tree_binary_nonnegative_warnv_p): New.
22150         (tree_single_nonnegative_warnv_p): New.
22151         (tree_invalid_nonnegative_warnv_p): New.
22152         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
22153
22154 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22155
22156         PR 28322
22157         * opts.c (handle_option): Postpone 'unknown option' errors only for
22158         warning options.
22159
22160 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
22161
22162         PR target/35453
22163         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
22164         (_SIDD_XXX): This.
22165
22166 2008-03-04  Rafael Espíndola  <espindola@google.com>
22167
22168         * fold-const.c (tree_unary_nonzero_warnv_p): New.
22169         (tree_binary_nonzero_warnv_p): New.
22170         (tree_single_nonzero_warnv_p): New.
22171         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
22172
22173 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
22174
22175         PR middle-end/35456
22176         * fold-const.c (fold_cond_expr_with_comparison): Prevent
22177         transformations for modes that have signed zeros.
22178         * ifcvt.c (noce_try_abs): Ditto.
22179
22180 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
22181
22182         * config/i386/i386.c (override_options): Force
22183         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
22184
22185 2008-03-04  Jan Hubicka  <jh@suse.cz>
22186
22187         PR c++/35262
22188         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
22189         in last commit.
22190
22191 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
22192
22193         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
22194         label to probe the stack.
22195
22196 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
22197
22198         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
22199         (__gthr_win32_mutex_destroy): Declare.
22200         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
22201         __gthr_win32_mutex_destroy.
22202         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
22203
22204 2008-03-03  Jan Hubicka  <jh@suse.cz>
22205
22206         PR c++/35262
22207         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
22208         aggressive on inlining cold calls.
22209
22210 2008-03-03  Richard Guenther  <rguenther@suse.de>
22211
22212         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
22213         struct copies into the expression table.
22214         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
22215         (try_to_simplify): Likewise.
22216         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
22217         integral and pointer arguments which do not change the
22218         precision to NOP_EXPRs.
22219         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
22220         VIEW_CONVERT_EXPR case.
22221
22222 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
22223
22224         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
22225         defined in a loop at depth 0 is invariant.
22226         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
22227         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
22228         be called at loop depth 0.
22229
22230 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
22231
22232         PR driver/35420
22233         * gcc.c (process_command): Update copyright notice dates.
22234         * gcov.c (print_version): Likewise.
22235         * gcov-dump.c (print_version): Likewise.
22236         * mips-tfile.c (main): Likewise.
22237         * mips-tdump.c (main): Likewise.
22238
22239 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22240
22241         PR 24924
22242         * c-common.c (flag_permissive): Delete.
22243         (constant_expression_warnings): Check flags first.
22244         (constant_expression_error): New.
22245         * c-common.h (flag_permissive): Delete.
22246         (constant_expression_error): Declare.
22247         * flags.h (flag_permissive): Declare. Update description.
22248         * diagnostic.c (pedwarn): Update.
22249         (permerror): New.
22250         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
22251         (permissive_error_kind): New.
22252         * toplev.c (flag_permissive): Define. Update description.
22253         * toplev.h (permissive_error_kind): Declare.
22254         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
22255         (pedwarn_c90): Use pedantic_warning_kind.
22256         * c-opts.c (c_common_post_options): flag_permissive does not affect
22257         flag_pedantic_errors.
22258
22259 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
22260
22261         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
22262         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
22263         __absvsi2, __absvDI2): Use unsigned arithmetic.
22264
22265 2008-03-02  Andi Kleen  <ak@suse.de>
22266             Richard Guenther  <rguenther@suse.de>
22267
22268         * struct-equiv.c: Remove file.
22269         * cfg_cleanup.c (condjump_equiv_p): Remove.
22270         * Makefile.in (OBJS-common): Remove struct-equiv.o.
22271         (struct-equiv.o): Remove rule.
22272         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
22273         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
22274         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
22275
22276 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
22277
22278         * ifcvt.c (noce_process_if_block): Try to handle only the then
22279         block if the else block exists but isn't suitable.
22280
22281 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
22282
22283         PR gcc/35063
22284         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
22285         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
22286         regression from previous patch.
22287
22288 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
22289
22290         PR gcc/35063
22291         * gthr.h: Add __gthread_mutex_destroy as a function that must be
22292         implemented.
22293         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
22294         * gthr-single.h (__gthread_mutex_destroy): Likewise.
22295         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
22296         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
22297         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
22298         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
22299         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
22300         (__gthread_mutex_destroy_function): Rename to
22301         __gthread_mutex_destroy.
22302         * gthr-dce.h (__gthread_mutex_destroy): Call
22303         pthread_mutex_destroy.
22304         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
22305         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
22306         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
22307
22308 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
22309
22310         * df-scan.c (df_ref_chain_change_bb): Simplify.
22311         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
22312         set_block_for_insn if there's any change.
22313         * df.h ((df_insn_change_bb): Fix prototype.
22314         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
22315         df_insn_change_bb, don't call set_block_for_insn.
22316         * emit-rtl.c (reorder_insns): Likewise.
22317         * haifa-sched.c (move_insn): Likewise.
22318
22319 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
22320
22321         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
22322
22323 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
22324
22325         * tree-flow-inline.h (next_readonly_imm_use): Return
22326         NULL_USE_OPERAND_P after the end.
22327
22328 2008-03-01  Richard Guenther  <rguenther@suse.de>
22329
22330         PR tree-optimization/35411
22331         * tree-sra.c (sra_build_assignment): Split conversion to
22332         final type to a separate statement if we are not assigning
22333         to a register.
22334
22335 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
22336
22337         * fold-const.c (fold_convertible_p): Correct the logic to follow
22338         that in fold_convert().
22339
22340 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
22341
22342         PR c++/35315
22343         * tree-inline.c (build_duplicate_type): When we make a
22344         duplicate type, make it unique in the canonical types system.
22345
22346 2008-02-29  Tom Tromey  <tromey@redhat.com>
22347
22348         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
22349         input_file_stack_history, input_file_stack_restored): Remove.
22350         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
22351         * input.h (struct file_stack): Remove.
22352         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
22353         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
22354         Likewise.
22355         * diagnostic.h (struct diagnostic_context) <last_module>: Change
22356         type.
22357         (diagnostic_last_module_changed): Add 'map' argument.
22358         (diagnostic_set_last_function): Likewise.
22359         * diagnostic.c (undiagnostic_report_current_module): Iterate using
22360         line map, not input_file_stack.
22361         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
22362
22363 2008-02-29  Paul Brook  <paul@codesourcery.com>
22364
22365         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
22366
22367 2008-02-29  Paul Brook  <paul@codesourcery.com>
22368
22369         * config/arm/ieee754-df.S (muldf3): Use RET macros.
22370
22371 2008-02-29  Richard Guenther  <rguenther@suse.de>
22372
22373         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
22374         vn_lookup_or_add.
22375         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
22376         value for comparing for a store match.
22377         (simplify_unary_expression): Do nothing for SSA_NAMEs.
22378         (try_to_simplify): Do not do a full-blown reference lookup.
22379
22380 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
22381
22382         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
22383         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
22384
22385         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
22386
22387 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
22388
22389         * tree-loop-linear.c (try_interchange_loops): Compare memory access
22390         strides against cache sizes.
22391
22392 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
22393
22394         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
22395         constant to fpul.
22396
22397 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
22398
22399         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
22400         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
22401         is smaller than the original promoted value.
22402         (simplify_subreg): If OP is a SUBREG, try to preserve its
22403         SUBREG_PROMOTED_VAR_P information.
22404
22405 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
22406
22407         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
22408         (VN_INFO_GET): Allocate new objects on the obstack.
22409         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
22410         for rpo_numbers_temp, for consistency.
22411         (free_scc_vn): Free the obstack.
22412
22413 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
22414
22415         * doc/invoke.texi: Document -ftree-loop-distribution.
22416         * tree-loop-distribution.c: New.
22417         * tree-pass.h (pass_loop_distribution): New.
22418         * graphds.h (struct graph): Add htab_t indices.
22419         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
22420         * tree-vectorizer.c (rename_variables_in_loop): Extern.
22421         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
22422         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
22423         * tree-data-ref.c (debug_data_dependence_relations): New.
22424         (dump_data_dependence_relation): Also print data references.
22425         (free_data_ref): Extern.
22426         (same_access_functions): Moved...
22427         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
22428         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
22429         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
22430         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
22431         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
22432         (stmts_from_loop): Skip LABEL_EXPR.
22433         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
22434         New.
22435         (build_rdg): Initialize rdg->indices htab.
22436         (free_rdg, stores_from_loop, ref_base_address,
22437         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
22438         have_similar_memory_accesses_1, ref_base_address_1,
22439         remove_similar_memory_refs): New.
22440         * tree-data-ref.h: Depend on tree-chrec.h.
22441         (debug_data_dependence_relations, free_data_ref): Declared.
22442         (same_access_functions): ... here.
22443         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
22444         New.
22445         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
22446         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
22447         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
22448         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
22449         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
22450         rdg_vertex_for_stmt): Declared.
22451         (struct rdg_edge): Add level.
22452         (RDGE_LEVEL): New.
22453         (free_rdg, stores_from_loop, remove_similar_memory_refs,
22454         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
22455         Declared.
22456         (rdg_has_similar_memory_accesses): New.
22457         * tree-vect-analyze.c: Remove unused static decls.
22458         * lambda.h (dependence_level): New.
22459         * common.opt (ftree-loop-distribution): New.
22460         * tree-flow.h (mark_virtual_ops_in_bb,
22461         slpeel_tree_duplicate_loop_to_edge_cfg,
22462         rename_variables_in_loop): Declared.
22463         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
22464         (OBJS-common): Add tree-loop-distribution.o.
22465         (tree-loop-distribution.o): New rule.
22466         * tree-cfg.c (mark_virtual_ops_in_bb): New.
22467         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
22468         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
22469
22470 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
22471
22472         PR target/33963
22473         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
22474         other than structures and unions.
22475
22476 2008-02-28  Richard Guenther  <rguenther@suse.de>
22477
22478         Revert:
22479         2008-02-26  Richard Guenther  <rguenther@suse.de>
22480
22481         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
22482         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
22483         (lookup_decl_from_uid): Declare.
22484         (remove_decl_from_map): Likewise.
22485         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
22486         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
22487         (decl_for_uid_map): New global hashtable mapping DECL_UID
22488         to the decl tree.
22489         (init_ttree): Allocate it.
22490         (insert_decl_to_uid_decl_map): New helper function.
22491         (make_node_stat): Insert new decls into the map.
22492         (copy_node_stat): Likewise.
22493         (lookup_decl_from_uid): New function.
22494         (remove_decl_from_map): Likewise.
22495         (print_decl_for_uid_map_statistics): New helper.
22496         (dump_tree_statistics): Call it.
22497
22498         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
22499         (referenced_var_iterator): Adjust.
22500         (FOR_EACH_REFERENCED_VAR): Adjust.
22501         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
22502         (num_referenced_vars): Adjust.
22503         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
22504         (first_referenced_var): Remove.
22505         (end_referenced_vars_p): Likewise.
22506         (next_referenced_var): Likewise.
22507         (referenced_var_iterator_set): New helper function.
22508         * tree-dfa.c (referenced_var_lookup): Adjust.
22509         (referenced_var_check_and_insert): Likewise.
22510         (remove_referenced_var): Likewise.
22511         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
22512         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22513         (verify_call_clobbering): Likewise.
22514         (verify_memory_partitions): Likewise.
22515         (init_tree_ssa): Allocate bitmap instead of hashtable for
22516         referenced_vars.
22517         (delete_tree_ssa): Adjust.
22518         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
22519         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22520         (compute_tag_properties): Likewise.
22521         (set_initial_properties): Likewise.
22522         (find_partition_for): Likewise.
22523         (update_reference_counts): Likewise.
22524         (dump_may_aliases_for): Likewise.
22525         * tree-ssa-operands.c (add_virtual_operand): Likewise.
22526         (add_call_clobber_ops): Likewise.
22527         (add_call_read_ops): Likewise.
22528         (get_asm_expr_operands): Likewise.
22529         * tree-into-ssa.c (dump_decl_set): Likewise.
22530         (update_ssa): Likewise.
22531         * tree-sra.c (scan_function): Likewise.
22532         (decide_instantiations): Likewise.
22533         (scalarize_parms): Likewise.
22534         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
22535         (dsa_named_for): Likewise.
22536         * tree-ssa-structalias.c (update_alias_info): Likewise.
22537         (merge_smts_into): Likewise.
22538
22539 2008-02-27  David Daney  <ddaney@avtrex.com>
22540
22541         PR target/34409
22542         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
22543         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
22544         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
22545         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
22546         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
22547
22548 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
22549
22550         PR target/25477
22551         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
22552         (BUILT_IN_NEXTTOWARD): Remove.
22553         (BUILT_IN_NEXTTOWARDF): Ditto.
22554         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
22555         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
22556
22557 2008-02-27  Tom Tromey  <tromey@redhat.com>
22558
22559         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
22560         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
22561
22562 2008-02-27  Jan Beulich  <jbeulich@novell.com>
22563
22564         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
22565         update the respective field on newdecl.
22566
22567 2008-02-27  Revital Eres  <eres@il.ibm.com>
22568
22569         PR rtl-optimization/34999
22570         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
22571         crossing edges that ends with a call insn.
22572         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
22573         call insn and clear the EDGE_CROSSING flag of the crossing edge
22574         when fixing fallthru edges.
22575
22576 2008-02-27  Richard Guenther  <rguenther@suse.de>
22577
22578         PR middle-end/35390
22579         * fold-const.c (fold_unary): Return the correct argument,
22580         converted to the result type.
22581
22582 2008-02-27  Richard Guenther  <rguenther@suse.de>
22583
22584         PR middle-end/34971
22585         * expr.c (expand_expr_real_1): Assert on rotates that operate
22586         on partial modes.
22587         * fold-const.c (fold_binary): Use the types precision, not the
22588         bitsize of the mode if folding rotate expressions.  Build rotates
22589         only for full modes.
22590
22591 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
22592
22593         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
22594         and CPP_PRAGMA_EOL.
22595         * c-pragma.c (pragma_ns_name): New typedef.
22596         (registered_pp_pragmas): New variable.
22597         (c_pp_lookup_pragma): New function.
22598         (c_register_pragma_1): If flag_preprocess_only, do nothing
22599         for non-expanded pragmas, for expanded ones push pragma's
22600         namespace and name into registered_pp_pragmas vector.
22601         (c_invoke_pragma_handler): Register OpenMP pragmas even when
22602         flag_preprocess_only, don't register GCC pch_preprocess
22603         pragma if flag_preprocess_only.
22604         * c-opts.c (c_common_init): Call init_pragma even if
22605         flag_preprocess_only.
22606         * c-pragma.c (c_pp_lookup_pragma): New prototype.
22607         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
22608         cpp_register_pragma if flag_preprocess_only.
22609
22610 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22611
22612         PR c/28800
22613         * c-parser.c (c_parser_translation_unit): Warn for empty
22614         translation unit, not empty source file.
22615
22616 2008-02-26  Paul Brook  <paul@codesourcery.com>
22617
22618         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
22619         operand for Thumb-2.
22620         * config/arm/arm.h (reg_class): Add CORE_REGS.
22621         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
22622         (BASE_REG_CLASS): Use CORE_REGS.
22623         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
22624         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
22625         (REGNO_OK_FOR_INDEX_P): Exclude SP.
22626         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
22627         ARM_REGNO_OK_FOR_INDEX_P.
22628         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
22629         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
22630         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
22631         (ldm/stm peepholes): Ditto.
22632         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
22633         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
22634         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
22635         * config/arm/constraints.md: Enable "k" constraint on ARM.
22636
22637 2008-02-27  Ben Elliston  <bje@au.ibm.com>
22638
22639         * config/rs6000/rs6000.c: Annotate cache line size field in all
22640         instances of struct processor_costs.
22641
22642 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
22643
22644         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
22645         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
22646         jump_bypass): New counters.
22647         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
22648         * dce.c (gate_ud_dce): Same.
22649         (gate_fast_dce): Same.
22650         * dse.c (gate_dse1): New function.
22651         (gate_dse2): New function.
22652         (gate_dse): Merge results of new gate functions.
22653         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
22654         (gate_handle_jump_bypass): Add dbg_cnt.
22655         (gate_handle_gcse): Add dbg_cnt.
22656         * ifcvt.c (gate_handle_if_conversion): Same.
22657         (gate_handle_if_after_combine): Same.
22658         (gate_handle_if_after_reload): Same.
22659         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
22660
22661 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
22662
22663         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
22664         line sizes.
22665         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
22666
22667 2008-02-26  Jason Merrill  <jason@redhat.com>
22668
22669         PR c++/35315
22670         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
22671         alone if it's the naming decl for the type's main variant.
22672
22673 2008-02-26  Tom Tromey  <tromey@redhat.com>
22674
22675         * system.h (USE_MAPPED_LOCATION): Poison.
22676         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
22677         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
22678         (make_goto_expr_edges): Likewise.
22679         (remove_bb): Likewise.
22680         (execute_warn_function_return): Likewise.
22681         * basic-block.h (struct edge_def) <goto_locus>: Change type to
22682         location_t.
22683         * c-common.c (fname_decl): Remove old location code.
22684         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
22685         location code.
22686         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
22687         variant.
22688         (ASM_INPUT_SOURCE_LOCATION): Likewise.
22689         (gen_rtx_ASM_INPUT): Likewise.
22690         (gen_rtx_ASM_INPUT_loc): Likewise.
22691         (get_rtx_asm_OPERANDS): Remove.
22692         * cfglayout.c (insn_locators_alloc): Remove old location code.
22693         (set_curr_insn_source_location): Likewise.
22694         (curr_insn_locator): Likewise.
22695         * print-tree.c (print_node): Remove old location code.
22696         * tree-mudflap.c (mf_varname_tree): Remove old location code.
22697         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
22698         * cfgexpand.c (expand_gimple_cond_expr): Don't use
22699         location_from_locus.
22700         (construct_exit_block): Remove old location code.
22701         * emit-rtl.c (force_next_line_note): Remove old location code.
22702         * profile.c (branch_prob): Remove old location code.
22703         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
22704         LOC_LINE): Remove old-location variants.
22705         * langhooks.c (lhd_print_error_function): Remove old location
22706         code.
22707         * configure, config.in: Rebuilt.
22708         * configure.ac (--enable-mapped-location): Remove.
22709         * c-decl.c (c_init_decl_processing): Remove old location code.
22710         (finish_function): Likewise.
22711         * recog.c (decode_asm_operands): Remove old location code.
22712         * c-pch.c (c_common_read_pch): Remove old location code.
22713         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
22714         variants.
22715         * gimple-low.c (lower_function_body): Remove old location code.
22716         * toplev.c (unknown_location): Remove.
22717         (push_srcloc): Remove old-location variant.
22718         (process_options): Remove old location code.
22719         (lang_dependent_init): Likewise.
22720         * input.h (UNKNOWN_LOCATION): Move definition.
22721         (location_t): Undeprecate.
22722         (source_locus): Remove.
22723         (location_from_locus): Remove.
22724         (struct location_s): Remove.
22725         Remove all old-location code.
22726         (input_line, input_filename): Remove.
22727         * final.c (final_scan_insn): Remove old location code.
22728         * diagnostic.c (diagnostic_build_prefix): Remove
22729         USE_MAPPED_LOCATION test.
22730         * tree.h (gimple_stmt) <locus>: Now a location_t.
22731         (tree_exp) <locus>: Likewise.
22732         (DECL_IS_BUILTIN): Remove old-location variant.
22733         (annotate_with_file_line, annotate_with_locus): Likewise.
22734         (expr_locus, set_expr_locus): Update.
22735         * tree.c (build1_stat): Remove old location code.
22736         (last_annotated_node): Remove.
22737         (annotate_with_file_line): Remove old-location variant.
22738         (annotate_with_locus): Likewise.
22739         (expr_location): Remove old location code.
22740         (set_expr_location): Likewise.
22741         (expr_has_location): Likewise.
22742         (expr_locus): Likewise.
22743         (set_expr_locus): Likewise.
22744         (expr_filename): Don't use location_from_locus.
22745         (expr_lineno): Likewise.
22746         * rtl-error.c (location_for_asm): Remove old location code.
22747         * c-lex.c (cb_line_change): Remove old location code.
22748         (fe_file_change): Likewise.
22749         (cb_def_pragma): Likewise.
22750         (c_lex_with_flags): Likewise.
22751         * gengtype.c (do_typedef): Don't special-case location types.
22752         (define_location_structures): Remove.
22753         (main): Don't call define_location_structures.
22754         * tree-pretty-print.c (dump_implicit_edges): Remove old location
22755         code.
22756
22757 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22758
22759         PR 26264
22760         * builtins.def (BUILT_IN_STDARG_START): Remove.
22761         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
22762         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
22763         * tree-inline.c (inline_forbidden_p_1): Likewise.
22764
22765 2008-02-26  Richard Guenther  <rguenther@suse.de>
22766
22767         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
22768         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
22769         (lookup_decl_from_uid): Declare.
22770         (remove_decl_from_map): Likewise.
22771         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
22772         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
22773         (decl_for_uid_map): New global hashtable mapping DECL_UID
22774         to the decl tree.
22775         (init_ttree): Allocate it.
22776         (insert_decl_to_uid_decl_map): New helper function.
22777         (make_node_stat): Insert new decls into the map.
22778         (copy_node_stat): Likewise.
22779         (lookup_decl_from_uid): New function.
22780         (remove_decl_from_map): Likewise.
22781         (print_decl_for_uid_map_statistics): New helper.
22782         (dump_tree_statistics): Call it.
22783
22784         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
22785         (referenced_var_iterator): Adjust.
22786         (FOR_EACH_REFERENCED_VAR): Adjust.
22787         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
22788         (num_referenced_vars): Adjust.
22789         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
22790         (first_referenced_var): Remove.
22791         (end_referenced_vars_p): Likewise.
22792         (next_referenced_var): Likewise.
22793         (referenced_var_iterator_set): New helper function.
22794         * tree-dfa.c (referenced_var_lookup): Adjust.
22795         (referenced_var_check_and_insert): Likewise.
22796         (remove_referenced_var): Likewise.
22797         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
22798         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22799         (verify_call_clobbering): Likewise.
22800         (verify_memory_partitions): Likewise.
22801         (init_tree_ssa): Allocate bitmap instead of hashtable for
22802         referenced_vars.
22803         (delete_tree_ssa): Adjust.
22804         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
22805         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22806         (compute_tag_properties): Likewise.
22807         (set_initial_properties): Likewise.
22808         (find_partition_for): Likewise.
22809         (update_reference_counts): Likewise.
22810         (dump_may_aliases_for): Likewise.
22811         * tree-ssa-operands.c (add_virtual_operand): Likewise.
22812         (add_call_clobber_ops): Likewise.
22813         (add_call_read_ops): Likewise.
22814         (get_asm_expr_operands): Likewise.
22815         * tree-into-ssa.c (dump_decl_set): Likewise.
22816         (update_ssa): Likewise.
22817         * tree-sra.c (scan_function): Likewise.
22818         (decide_instantiations): Likewise.
22819         (scalarize_parms): Likewise.
22820         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
22821         (dsa_named_for): Likewise.
22822         * tree-ssa-structalias.c (update_alias_info): Likewise.
22823         (merge_smts_into): Likewise.
22824
22825 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22826
22827         PR 34351
22828         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
22829         * c-opts.c (c_common_handle_option): Wall enables
22830         Wvolatile-register-var.
22831         * common.opt: Move Wvolatile-register-var to...
22832         * c.opt: ...here.
22833
22834 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22835
22836         * common.opt (Wlarger-than=): New.
22837         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
22838         -Wlarger-than=.
22839         * opts.c (common_handle_option): Handle -Wlarger-than=.
22840         * optc-gen.awk: Likewise.
22841         * opth-gen.awk: Likewise.
22842         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
22843         * tree-optimize.c (tree_rest_of_compilation): Likewise.
22844
22845 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22846
22847         * c-common.c (match_case_to_enum_1): Add appropriate
22848         OPT_W* parameter to warning.
22849         (c_do_switch_warnings): Likewise.
22850         * c-typeck.c (warning_init): Add one more parameter following
22851         'warning' function.
22852         (push_init_level): Update call to warning_init.
22853         (pop_init_level): Likewise.
22854         (add_pending_init): Likewise.
22855         (output_init_element: Likewise.
22856
22857 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22858
22859         PR 28322
22860         * toplev.c (toplev_main): If there are warnings or error, print
22861         errors for ignored options.
22862         * opts.c (ignored_options): New static variable.
22863         (postpone_unknown_option_error): New.
22864         (print_ignored_options): New.
22865         (handle_option): Postpone errors for unknown -Wno-* options.
22866         * opts.h (print_ignored_options): Declare.
22867
22868 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
22869
22870         * config/mips/mips.md (loadgp_blockage, blockage): Change type
22871         to "ghost".
22872
22873 2008-02-25  Richard Guenther  <rguenther@suse.de>
22874
22875         Revert:
22876         2008-02-25  Richard Guenther  <rguenther@suse.de>
22877
22878         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
22879         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
22880         (lookup_decl_from_uid): Declare.
22881         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
22882         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
22883         (decl_for_uid_map): New global hashtable mapping DECL_UID
22884         to the decl tree.
22885         (init_ttree): Allocate it.
22886         (insert_decl_to_uid_decl_map): New helper function.
22887         (make_node_stat): Insert new decls into the map.
22888         (copy_node_stat): Likewise.
22889         (lookup_decl_from_uid): New function.
22890         (print_decl_for_uid_map_statistics): New helper.
22891         (dump_tree_statistics): Call it.
22892
22893         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
22894         (referenced_var_iterator): Adjust.
22895         (FOR_EACH_REFERENCED_VAR): Adjust.
22896         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
22897         (num_referenced_vars): Adjust.
22898         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
22899         (first_referenced_var): Remove.
22900         (end_referenced_vars_p): Likewise.
22901         (next_referenced_var): Likewise.
22902         (referenced_var_iterator_set): New helper function.
22903         * tree-dfa.c (referenced_var_lookup): Adjust.
22904         (referenced_var_check_and_insert): Likewise.
22905         (remove_referenced_var): Likewise.
22906         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
22907         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22908         (verify_call_clobbering): Likewise.
22909         (verify_memory_partitions): Likewise.
22910         (init_tree_ssa): Allocate bitmap instead of hashtable for
22911         referenced_vars.
22912         (delete_tree_ssa): Adjust.
22913         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
22914         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22915         (compute_tag_properties): Likewise.
22916         (set_initial_properties): Likewise.
22917         (find_partition_for): Likewise.
22918         (update_reference_counts): Likewise.
22919         (dump_may_aliases_for): Likewise.
22920         * tree-ssa-operands.c (add_virtual_operand): Likewise.
22921         (add_call_clobber_ops): Likewise.
22922         (add_call_read_ops): Likewise.
22923         (get_asm_expr_operands): Likewise.
22924         * tree-into-ssa.c (dump_decl_set): Likewise.
22925         (update_ssa): Likewise.
22926         * tree-sra.c (scan_function): Likewise.
22927         (decide_instantiations): Likewise.
22928         (scalarize_parms): Likewise.
22929         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
22930         (dsa_named_for): Likewise.
22931         * tree-ssa-structalias.c (update_alias_info): Likewise.
22932         (merge_smts_into): Likewise.
22933
22934 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
22935
22936         PR fortran/29549
22937         * doc/invoke.texi (-fcx-limited-range): Document new option.
22938         * toplev.c (process_options): Handle -fcx-fortran-rules.
22939         * common.opt: Add documentation for -fcx-fortran-rules.
22940
22941 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
22942
22943         PR c/35162
22944         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
22945         actual behaviour and C99.
22946
22947 2008-02-26  Ben Elliston  <bje@au.ibm.com>
22948
22949         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
22950         (ASM_CPU_POWER6_SPEC): Likewise.
22951         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
22952         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
22953         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
22954
22955 2008-02-25  Richard Guenther  <rguenther@suse.de>
22956
22957         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
22958         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
22959         (lookup_decl_from_uid): Declare.
22960         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
22961         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
22962         (decl_for_uid_map): New global hashtable mapping DECL_UID
22963         to the decl tree.
22964         (init_ttree): Allocate it.
22965         (insert_decl_to_uid_decl_map): New helper function.
22966         (make_node_stat): Insert new decls into the map.
22967         (copy_node_stat): Likewise.
22968         (lookup_decl_from_uid): New function.
22969         (print_decl_for_uid_map_statistics): New helper.
22970         (dump_tree_statistics): Call it.
22971
22972         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
22973         (referenced_var_iterator): Adjust.
22974         (FOR_EACH_REFERENCED_VAR): Adjust.
22975         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
22976         (num_referenced_vars): Adjust.
22977         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
22978         (first_referenced_var): Remove.
22979         (end_referenced_vars_p): Likewise.
22980         (next_referenced_var): Likewise.
22981         (referenced_var_iterator_set): New helper function.
22982         * tree-dfa.c (referenced_var_lookup): Adjust.
22983         (referenced_var_check_and_insert): Likewise.
22984         (remove_referenced_var): Likewise.
22985         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
22986         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22987         (verify_call_clobbering): Likewise.
22988         (verify_memory_partitions): Likewise.
22989         (init_tree_ssa): Allocate bitmap instead of hashtable for
22990         referenced_vars.
22991         (delete_tree_ssa): Adjust.
22992         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
22993         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
22994         (compute_tag_properties): Likewise.
22995         (set_initial_properties): Likewise.
22996         (find_partition_for): Likewise.
22997         (update_reference_counts): Likewise.
22998         (dump_may_aliases_for): Likewise.
22999         * tree-ssa-operands.c (add_virtual_operand): Likewise.
23000         (add_call_clobber_ops): Likewise.
23001         (add_call_read_ops): Likewise.
23002         (get_asm_expr_operands): Likewise.
23003         * tree-into-ssa.c (dump_decl_set): Likewise.
23004         (update_ssa): Likewise.
23005         * tree-sra.c (scan_function): Likewise.
23006         (decide_instantiations): Likewise.
23007         (scalarize_parms): Likewise.
23008         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23009         (dsa_named_for): Likewise.
23010         * tree-ssa-structalias.c (update_alias_info): Likewise.
23011         (merge_smts_into): Likewise.
23012
23013 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
23014
23015         PR target/35258
23016         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
23017         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
23018         * alias.h (nonoverlapping_memrefs_p): Likewise.
23019
23020 2008-02-25  Jan Beulich  <jbeulich@novell.com>
23021
23022         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
23023         * config/i386/netware-libgcc.exp: Add __bswap?i2,
23024         __emultls_get_address, __emultls_register_common,
23025         __floatundi?f, and _Unwind_GetIPInfo.
23026         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
23027         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
23028         (gen_regparm_prefix): Likewise.
23029         (i386_nlm_encode_section_info): Sync with
23030         config/i386/winnt.c:i386_pe_encode_section_info().
23031         (i386_nlm_maybe_mangle_decl_assembler_name): New.
23032         i386_nlm_mangle_decl_assembler_name): New.
23033         (netware_override_options): New.
23034         * config/i386/netware.h (netware_override_options): Declare.
23035         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
23036         (i386_nlm_mangle_decl_assembler_name): Declare.
23037         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
23038
23039 2008-02-25  Ben Elliston  <bje@au.ibm.com>
23040
23041         PR other/32948
23042         * c-decl.c (grokdeclarator): Remove unused local variables
23043         `typedef_type' and `type_as_written'.
23044         * bb-reorder.c
23045         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
23046         unused local variable `has_hot_blocks'.
23047         (fix_crossing_conditional_branches): Remove unused local variable
23048         `prev_bb'.
23049
23050 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
23051
23052         PR middle-end/19984
23053         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
23054         using DEF_C99_BUILTIN.
23055         (BUILT_IN_NANF): Ditto.
23056         (BUILT_IN_NANL): Ditto.
23057
23058 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
23059             Revital Eres  <eres@il.ibm.com>
23060
23061         * modulo-sched.c (calculate_must_precede_follow): Address TODO
23062         regarding the order of two dependent insns in the same row.
23063
23064 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
23065
23066         * stor-layout.c (layout_decl): Do not bump the alignment of a
23067         bit-field to more than byte alignment if it is packed.
23068
23069 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
23070
23071         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
23072         e300c2 and e300c3.
23073
23074 2008-02-24  Diego Novillo  <dnovillo@google.com>
23075
23076         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
23077
23078         PR 33738
23079         * tree-vrp.c (vrp_evaluate_conditional): With
23080         -Wtype-limits, emit a warning when comparing against a
23081         constant outside the natural range of OP0's type.
23082         * c.opt (Wtype-limits): Move ...
23083         * common.opt (Wtype-limits): ... here.
23084
23085 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
23086
23087         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
23088         * config/rs6000/e300c2c3.md: New file.
23089         * config/rs6000/rs6000.c (processor_costs): Add new costs for
23090         e300c2 and e300c3.
23091         (rs6000_override_options): Add e300c2 and e300c3 cases to
23092         processor_target_table. Do not allow usage of Altivec or Spe
23093         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
23094         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
23095         * config/rs6000/rs6000.h (processor_type): Add
23096         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
23097         (ASM_CPU_SPEC): Add e300c2 and e300c3.
23098         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
23099         and ppce300c3. Include e300c2c3.md.
23100
23101 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
23102
23103         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
23104         instead of TARGET_STRICT_ALIGN.
23105
23106 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
23107
23108         * explow.c (memory_address): Assert that the generated address is
23109         valid.
23110
23111 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
23112
23113         PR target/25477
23114         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
23115         * config/darwin-ppc-ldouble-patch.def: New file.
23116         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
23117         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
23118         SUBTARGET_INIT_BUILTINS if defined.
23119         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
23120         New functions.
23121
23122 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23123
23124         PR rtl-opt/33512
23125         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
23126         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
23127
23128 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23129
23130         PR pch/35027
23131         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
23132         file" warning condtional on -Winvalid-PCH.
23133
23134 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
23135
23136         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
23137
23138 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
23139
23140         PR target/22076
23141         PR target/34256
23142         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
23143         prevent reload from using MMX registers.
23144         (*mov<mode>_internal): Ditto.
23145         (*movv2sf_internal_rex64): Ditto.
23146         (*movv2sf_internal): Ditto.
23147
23148 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23149
23150         PR documentation/31569
23151         * doc/install.texi2html: Use makeinfo --no-number-sections.
23152
23153 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
23154
23155         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
23156         ensure that we can address an entire entity > 8 bytes.  Don't
23157         generate reg+reg addressing for such data.
23158
23159 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
23160
23161         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
23162         strings when optimizing for size, unless the target cares about
23163         alignment.
23164
23165 2008-02-22  Tom Tromey  <tromey@redhat.com>
23166
23167         * regclass.c (current_pass): Remove declaration.
23168
23169 2008-02-22  Anatoly Sokolov <aesok@post.ru>
23170
23171         * config/avr/libgcc.S (__RAMPZ__): Define.
23172         (__do_copy_data): Add for devices with 128KB code memory.
23173
23174 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
23175
23176         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
23177         Use spe_abi.
23178         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
23179
23180 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
23181
23182         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
23183         GENNONACR_REGS.
23184
23185 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23186
23187         PR c/19999
23188         * c-typeck.c (build_binary_op): Warn about floating point
23189         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
23190
23191 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
23192
23193         PR target/34526
23194         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
23195         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
23196         add vrsave.
23197         (rs6000_override_options): Set altivec_abi as default, not override,
23198         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
23199         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
23200         is used; use new member spe_abi.
23201         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
23202         spe_abi and altivec_abi.
23203
23204 2008-02-22  Tomas Bily  <tbily@suse.cz>
23205
23206         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
23207
23208 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23209
23210         PR bootstrap/35273
23211         * config.build (build_file_translate): Set to `CMD //c' only if
23212         it works.
23213         * Makefile.in (build_file_translate): Improve comment.
23214
23215 2008-02-21  Jan Hubicka  <jh@suse.cz>
23216
23217         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
23218         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
23219         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
23220
23221 2008-02-21  Michael Matz  <matz@suse.de>
23222
23223         PR target/35264
23224         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
23225
23226 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
23227
23228         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
23229         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
23230         as insn constraint.
23231         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
23232         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
23233         SSE_VEC_FLOAT_MODE_P as insn constraint.
23234         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
23235         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
23236         sse4a_movntdf using MODEF mode iterator.
23237         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
23238         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
23239         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
23240         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
23241         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
23242         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
23243         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
23244
23245 2008-02-21  Richard Guenther  <rguenther@suse.de>
23246
23247         * tree.def (PAREN_EXPR): New tree code.
23248         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
23249         and PAREN_EXPR.
23250         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
23251         * expr.c (expand_expr_real_1): Likewise.
23252         * tree-inline.c (estimate_num_insns_1): Likewise.
23253         * tree-complex.c (expand_complex_move): Likewise.
23254         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
23255         as plain x.
23256
23257 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
23258
23259         PR target/35225
23260         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
23261
23262 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
23263
23264         PR target/35190
23265         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
23266
23267         * config/sh/sh.c (find_barrier): Don't go past
23268         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
23269
23270 2008-02-20  DJ Delorie  <dj@redhat.com>
23271
23272         * config/h8300/h8300.md (insv): Force source operand to be a register.
23273
23274         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
23275         as a jump, not as a plain insn.
23276
23277 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
23278
23279         * doc/invoke.texi (Warning Options): Add new option
23280         -Wframe-larger-than=.
23281         (-Wframe-larger-than): Document.
23282
23283         * flags.h (warn_frame_larger_than, frame_larger_than_size):
23284         Add declarations for new option variables.
23285
23286         * final.c (final_start_function): Check the frame size
23287         before emission and issue a Wframe-larger-than warning.
23288
23289         * opts.c (warn_frame_larger_than, frame_larger_than_size):
23290         Add definitions for new option variables.
23291         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
23292
23293         * common.opt (Wframe-larger-than=): New option.
23294
23295 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
23296
23297         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
23298         (<sse>_div<mode>3): Ditto.
23299         (<sse>_vmdiv<mode>3): Ditto.
23300         (<sse>_vmsqrt<mode>2): Ditto.
23301         (*smax<mode>3): Ditto.
23302         (sse5_frcz<mode>2): Ditto.
23303         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
23304         as insn constraint.
23305
23306 2008-02-20  Richard Guenther  <rguenther@suse.de>
23307
23308         PR middle-end/35265
23309         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
23310         be happy with INTEGRAL_TYPE_P.
23311
23312 2008-02-20  Richard Guenther  <rguenther@suse.de>
23313
23314         * fold-const.c (split_tree): Associate floatig-point expressions
23315         if flag_associative_math is set.
23316
23317 2008-02-20  Richard Guenther  <rguenther@suse.de>
23318
23319         * tree.h (fold_real_zero_addition_p): Declare.
23320         * fold-const.c (fold_real_zero_addition_p): Export.
23321         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
23322         floating-point operations with zero and one.
23323
23324 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
23325
23326         * doc/install.texi: Correct references to CFLAGS, replacing them
23327         with BOOT_CFLAGS.  Document flags used during bootstrap for
23328         target libraries.
23329
23330 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
23331
23332         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
23333         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
23334         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
23335         insn constraint.
23336         (smin<mode>3): Ditto from similar patterns.
23337         (smax<mode>3): Ditto.
23338         (*ieee_smin<mode>3): Ditto.
23339         (*ieee_smax<mode>3): Ditto.
23340         * config/i386/sse.md (sse): New mode attribute.
23341         (mov<mode>): Macroize expander from movv4sf and movv2df using
23342         SSEMODEF2P mode iterator.
23343         (<sse>_movnt<mode>): Ditto from similar patterns. Use
23344         SSE_VEC_FLOAT_MODE_P as insn constraint.
23345         (storent<mode>): Ditto.
23346         (storent<mode>): Macroize expander from storentsf and storentdf using
23347         MODEF mode iterator.
23348         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
23349         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
23350         (abs<mode>2): Ditto from similar patterns.
23351         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
23352         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
23353         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
23354         (<sse>_vmsqrt<mode>2): Ditto.
23355         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
23356         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
23357         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
23358         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
23359         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
23360         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
23361         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
23362         insn constraint.
23363         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
23364         iterator and SSE_FLOAT_MODE_P as insn constraint.
23365         (<sse>_ucomi): Ditto from similar patterns.
23366         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
23367         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
23368         SSE_VEC_FLOAT_MODE_P as insn constraint.
23369         (vcond<mode>): Ditto from similar patterns.
23370         (and<mode>3, *and<mode>3): Ditto.
23371         (<sse>_nand<mode>3): Ditto.
23372         (ior<mode>3, *ior<mode>3): Ditto.
23373         (xor<mode>3, *xor<mode>3): Ditto.
23374         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
23375         iterator and SSE_FLOAT_MODE_P as insn constraint.
23376         (*nand<mode>3): Ditto from similar patterns.
23377         (*ior<mode>3): Ditto.
23378         (*xor<mode>3): Ditto.
23379
23380 2008-02-20  Ira Rosen  <irar@il.ibm.com>
23381
23382         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
23383         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
23384         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
23385
23386 2008-02-19  Jan Hubicka  <jh@suse.cz>
23387
23388         * predict.c (tree_bb_level_predictions): Remove variable next
23389         mistakely introduced by previous commit.
23390
23391 2008-02-19  Jan Hubicka  <jh@suse.cz>
23392
23393         * predict.c (predict_paths_leading_to): Rewrite.
23394         (predict_paths_for_bb): New.
23395         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
23396
23397 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23398
23399         PR bootstrap/35218
23400         * Makefile.in (build_file_translate): New.
23401         (gcc-vers.texi): Use it for translating $(abs_srcdir).
23402         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
23403         * configure.ac (build_file_translate): Substitute it.
23404         * configure: Regenerate.
23405
23406 2008-02-19  Jan Hubicka  <jh@suse.cz>
23407
23408         PR rtl-optimization/34408
23409         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
23410         invalid sharing.
23411
23412 2008-02-19  Jan Hubicka  <jh@suse.cz>
23413
23414         PR middle-end/28779
23415         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
23416         call_expr.
23417
23418 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
23419
23420         PR Ada/35186
23421         * config/i386/i386-modes.def: Revert the last DI alignment
23422         change until Ada people can look into it.
23423
23424 2008-02-19  Nick Clifton  <nickc@redhat.com>
23425
23426         * opts.c (print_specific_help): Fix typo in --help text.
23427
23428 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
23429
23430         PR target/35239
23431         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
23432         32-bit inline asm without asm alternatives for host GCC < 3.0.
23433
23434 2008-02-19  Richard Guenther  <rguenther@suse.de>
23435
23436         PR tree-optimization/34989
23437         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
23438         Allow propagation to INDIRECT_REF if we can simplify only.
23439
23440 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23441
23442         * c-common.c (warn_for_collisions_1): Use appropriate option when
23443         warning.
23444
23445 2008-02-19  Nick Clifton  <nickc@redhat.com>
23446
23447         PR other/31349
23448         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
23449         (handle_options): Fix indentation.
23450         (print_filtered_help): If no language-specific options were
23451         displayed tell the user how to list all the options supported by
23452         the language's front-end.
23453         (print_specific_help): Fix indentation and remove duplicate line.
23454         (common_handle_option): Handle the -v option.
23455         For --help enable the display of undocumented options if the -v
23456         switch has been included on the command line.
23457         For --help= check for overlaps in the arguments between the option
23458         classes and the language names and issue a warning when they
23459         cannot be disambiguated.
23460         * c.opt (v): Pass on to the common option handler.
23461
23462 2008-02-19  Revital Eres  <eres@il.ibm.com>
23463
23464         * modulo-sched.c (sms_schedule): Change dump message when
23465         create_ddg function fails.
23466         (try_scheduling_node_in_cycle): Rename row to cycle.
23467         (print_partial_schedule): Rename CYCLE to ROW.
23468
23469 2008-02-19  Christian Bruel  <christian.bruel@st.com>
23470             Zdenek Dvorak  <ook@ucw.cz>
23471
23472         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
23473
23474 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
23475
23476         PR target/33555
23477         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
23478         (*x86_movdicc_0_m1_se): Ditto.
23479
23480 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
23481
23482         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
23483         (CMPtype): Define as __gcc_CMPtype.
23484         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
23485         (CMPtype): Define as __gcc_CMPtype.
23486
23487 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
23488
23489         Support valgrind 3.3 for --enable-checking=valgrind.
23490         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
23491         here.
23492         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
23493         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
23494         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
23495         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
23496         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
23497         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
23498         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
23499         respectively.
23500         * ggc-zone.c: Similar.
23501         * ggc-page.c: Similar.
23502
23503 2008-02-19  Paul Brook  <paul@codesourcery.com>
23504
23505         PR target/35071
23506         * config/arm/ieee754-df.S: Fix do_it typo.
23507         * config/arm/ieee754-sf.S: Fix do_it typo.
23508
23509 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
23510
23511         PR target/35189
23512         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
23513         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
23514         (OPTION_MASK_ISA_SSE_SET): Likewise.
23515         (OPTION_MASK_ISA_SSE2_SET): Likewise.
23516         (OPTION_MASK_ISA_SSE3_SET): Likewise.
23517         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
23518         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
23519         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
23520         (OPTION_MASK_ISA_SSE4_SET): Likewise.
23521         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
23522         (OPTION_MASK_ISA_SSE5_SET): Likewise.
23523         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
23524         (OPTION_MASK_ISA_MMX_UNSET): Updated.
23525         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
23526         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
23527         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
23528         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
23529         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
23530         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
23531         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
23532         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
23533         (OPTION_MASK_ISA_SSE4): Removed.
23534         (ix86_handle_option): Turn on bits in ix86_isa_flags and
23535         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
23536         (override_options): Don't turn on implied SSE/MMX bits in
23537         ix86_isa_flags.
23538
23539 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
23540
23541         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
23542         32bit host.
23543
23544 2008-02-18  Joey Ye  <joey.ye@intel.com>
23545
23546         PR middle-end/34921
23547         * tree-nested.c (insert_field_into_struct): Set type alignment
23548         to field alignment if the former is less than the latter.
23549
23550 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
23551
23552         * BASE-VER: Set to 4.4.0.
23553
23554 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23555
23556         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
23557         * doc/cfg.texi: Likewise.
23558         * doc/extend.texi: Likewise.
23559         * doc/gty.texi: Likewise.
23560         * doc/invoke.texi: Likewise.
23561         * doc/loop.texi: Likewise.
23562         * doc/md.texi: Likewise.
23563         * doc/passes.texi: Likewise.
23564         * doc/rtl.texi: Likewise.
23565         * doc/sourcebuild.texi: Likewise.
23566         * doc/tm.texi: Likewise.
23567         * doc/tree-ssa.texi: Likewise.
23568
23569 2008-02-17  Richard Guenther  <rguenther@suse.de>
23570
23571         PR middle-end/35227
23572         * tree-complex.c (init_parameter_lattice_values): Handle parameters
23573         without default definition.
23574
23575 2008-02-17  Richard Guenther  <rguenther@suse.de>
23576
23577         PR tree-optimization/35231
23578         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
23579         if A | B != 1.
23580
23581 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
23582
23583         Revert:
23584         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
23585         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
23586         libgcc_cmp_return mode.
23587
23588 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23589
23590         PR c/28368
23591         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
23592
23593 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
23594
23595         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
23596         multilibs.
23597
23598 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23599
23600         * doc/c-tree.texi: Use `@.' where appropriate.
23601         * doc/extend.texi: Likewise.
23602         * doc/install.texi: Likewise.
23603         * doc/invoke.texi: Likewise.
23604         * doc/loop.texi: Likewise.
23605         * doc/makefile.texi: Likewise.
23606         * doc/md.texi: Likewise.
23607         * doc/passes.texi: Likewise.
23608         * doc/standards.texi: Likewise.
23609         * doc/tm.texi: Likewise.
23610
23611 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
23612
23613         PR middle-end/35196
23614         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
23615         in entry_bb.
23616         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
23617         rather than in entry_bb.
23618
23619 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
23620
23621         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
23622         libgcc_cmp_return mode.
23623
23624 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
23625
23626         PR middle-end/35130
23627         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
23628         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
23629
23630 2008-02-15  Richard Guenther  <rguenther@suse.de>
23631             Zdenek Dvorak  <ook@ucw.cz>
23632
23633         PR tree-optimization/35164
23634         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
23635         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
23636         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
23637         Only propagate addresses which do not have abnormal SSA_NAMEs
23638         in their operands.
23639
23640 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
23641
23642         PR target/35088
23643         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
23644
23645 2008-02-15  Jan Hubicka  <jh@suse.cz>
23646
23647         PR middle-end/35149
23648         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
23649
23650 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
23651
23652         PR middle-end/34621
23653         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
23654         when calculating alignment_pad.
23655
23656 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
23657
23658         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
23659         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
23660         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
23661         and STACK_BOUNDARY define.
23662
23663 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
23664
23665         PR preprocessor/35061
23666         * c-pragma.c (handle_pragma_pop_macro): Check that
23667         pushed_macro_table has been allocated.
23668
23669 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
23670
23671         PR middle-end/35136
23672         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
23673         (force_gimple_operand): Likewise.
23674         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
23675         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
23676         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
23677         (find_interesting_uses_address): Check addressability and alignment
23678         of the base expression only after substituting bases of IVs into it.
23679
23680 2008-02-14  Michael Matz  <matz@suse.de>
23681
23682         PR target/34930
23683         * function.c (instantiate_virtual_regs_in_insn): Reload address
23684         before falling back to reloading the whole operand.
23685
23686 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
23687
23688         * config/s390/s390.c (s390_mainpool_start): Emit the pool
23689         before the first section switch note.
23690
23691 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23692
23693         * doc/bugreport.texi: Update copyright years.
23694         * doc/c-tree.texi: Likewise.
23695         * doc/cfg.texi: Likewise.
23696         * doc/cpp.texi: Likewise.
23697         * doc/cppinternals.texi: Likewise.
23698         * doc/fragments.texi: Likewise.
23699         * doc/frontends.texi: Likewise.
23700         * doc/gcc.texi: Likewise.
23701         * doc/gty.texi: Likewise.
23702         * doc/hostconfig.texi: Likewise.
23703         * doc/implement-c.texi: Likewise.
23704         * doc/libgcc.texi: Likewise.
23705         * doc/loop.texi: Likewise.
23706         * doc/makefile.texi: Likewise.
23707         * doc/options.texi: Likewise.
23708         * doc/passes.texi: Likewise.
23709         * doc/rtl.texi: Likewise.
23710         * doc/sourcebuild.texi: Likewise.
23711         * doc/standards.texi: Likewise.
23712         * doc/tree-ssa.texi: Likewise.
23713         * doc/trouble.texi: Likewise.
23714
23715         * doc/extend.texi: Use @: or add comma where appropriate.
23716         * doc/invoke.texi: Likewise.
23717         * doc/tm.texi: Likewise.
23718
23719 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
23720
23721         PR target/34393
23722         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
23723         to a reg.
23724
23725 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
23726
23727         * doc/md.texi (clz, ctz): Add reference.
23728         * doc/rtl.texi (clz, ctz): Likewise.
23729
23730 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23731
23732         PR other/35148
23733         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
23734         srcdir.
23735
23736 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
23737
23738         * config/s390/s390.c (struct constant_pool): New field
23739         emit_pool_after added.
23740         (s390_mainpool_start): Set the emit_pool_after flag according
23741         to the section switch notes.
23742         (s390_mainpool_finish): Consider emit_pool_after when emitting
23743         the literal pool at the end of the function.
23744         (s390_chunkify_start): Force literal pool splits at section
23745         switch notes.
23746
23747 2008-02-13  Michael Matz  <matz@suse.de>
23748
23749         PR debug/35065
23750         * var-tracking.c (clobber_variable_part): Correctly traverse the
23751         list.
23752
23753 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23754
23755         PR 29673
23756         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
23757         Add -fdump-ipa-inline.
23758         * tree-dump.c (dump_files): Remove tree-inlined dump.
23759         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
23760
23761 2008-02-12  Richard Guenther  <rguenther@suse.de>
23762
23763         PR tree-optimization/35171
23764         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
23765         default defs.
23766
23767 2008-02-12  Richard Guenther  <rguenther@suse.de>
23768
23769         PR middle-end/35163
23770         * fold-const.c (fold_widened_comparison): Use get_unwidened in
23771         value-preserving mode.  Disallow final truncation.
23772
23773 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
23774
23775         PR middle-end/35136
23776         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
23777         code from here to...
23778         (force_gimple_operand): ...here.
23779
23780 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
23781
23782         PR c++/35144
23783         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
23784         non-compatible pointers.
23785         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
23786         different FIELD_DECLs, try harder by comparing field offsets, sizes
23787         and types.
23788
23789         PR inline-asm/35160
23790         * function.c (match_asm_constraints_1): Don't replace the same input
23791         multiple times.
23792
23793 2008-02-12  Anatoly Sokolov <aesok@post.ru>
23794
23795         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
23796         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
23797         (expand_epilogue): Restore RAMPZ register.
23798         * config/avr/avr.md (RAMPZ_ADDR): New constant.
23799
23800 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
23801
23802         * config/i386/cygwin.asm: (__alloca): Correct calling
23803         convention and alignment.
23804         (__chkstk): Force 8 byte stack alignment.
23805
23806 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
23807             Richard Guenther  <rguenther@suse.de>
23808
23809         PR tree-optimization/33992
23810         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
23811         the zero we compare against.
23812
23813 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
23814
23815         PR libfortran/35063
23816         * gthr-win32.h (__gthread_mutex_destroy_function): New function
23817         to CloseHandle after unlocking to prevent accumulation of handle
23818         count.
23819
23820 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23821
23822         PR middle_end/34150
23823         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
23824         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
23825         and update LABEL_NUSES during and after reload.
23826
23827 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
23828
23829         PR middle-end/34627
23830         * combine.c (simplify_if_then_else): Make sure the comparison is
23831         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
23832
23833 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
23834
23835         PR bootstrap/35051
23836         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
23837         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
23838         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
23839         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
23840         * tree.h (get_type_static_bounds): Likewise.
23841
23842 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23843
23844         * doc/invoke.texi (Option Summary, C++ Dialect Options)
23845         (Objective-C and Objective-C++ Dialect Options, Warning Options):
23846         Make -Wfoo language annotations match what the compiler outputs.
23847
23848 2008-02-08  Sa Liu  <saliu@de.ibm.com>
23849
23850         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
23851         intrinsics spu_convts, spu_convtu, spu_convtf.
23852
23853 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
23854
23855         * doc/extend.texi (Function Attributes) <noinline>: Mention
23856         asm ("") as method to keep calls.
23857
23858 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23859
23860         PR other/32754
23861         * doc/options.texi (Options): Replace references to opts.sh with
23862         optc-gen.awk.
23863         * opts-common.c: Likewise.
23864         * optc-gen.awk: Likewise.
23865
23866 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
23867
23868         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
23869
23870 2008-02-07  Richard Henderson  <rth@redhat.com>
23871
23872         PR rtl-opt/33410
23873         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
23874         EXPR_LIST for the REG_EQUAL instead of a comparison with a
23875         funny mode.
23876
23877 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
23878
23879         PR tree-optimization/35085
23880         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
23881         for operand entry oe2 in addition to operand entry oe3 in order to
23882         expose more opportunities for vectorizer sum reduction.
23883
23884 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23885
23886         PR other/35107
23887         * Makefile.in (LIBS): Remove $(GMPLIBS).
23888         (cc1-dummy, cc1): Add $(GMPLIBS).
23889
23890 2008-02-06  Jan Hubicka  <jh@suse.cz>
23891
23892         PR target/23322
23893         * i386.md (moddf_integer): Do not produce partial memory stalls for
23894         targets where it hurts.
23895
23896 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
23897
23898         PR target/35083
23899         * optabs.c (expand_float): Do not check for decimal modes when
23900         expanding unsigned integer through signed conversion.
23901
23902 2008-02-06  Nick Clifton  <nickc@redhat.com>
23903
23904         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
23905         inside the clobber with a match_operand and duplicated operand
23906         number in the constraint.
23907         (ineqbranchsi): Delete redundant comment.
23908
23909 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
23910
23911         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
23912         builtin_define ("__USE_INIT_FINI__").
23913         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
23914         -msx multilibs.
23915         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
23916
23917 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23918
23919         PR documentation/30330
23920         * doc/invoke.texi (C++ Dialect Options)
23921         (Objective-C and Objective-C++ Dialect Options, Warning Options):
23922         For each warning option -Wfoo that allows -Wno-foo, ensure both
23923         -Wfoo and -Wno-foo are listed in the option index.  Fix index
23924         entry of -Wswitch-default, index -Wnormalized= including the
23925         `=', and -Wlarger-than-@var{len} including @var{len}.
23926
23927 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
23928
23929         * config/i386/i386.md (floatunssisf2): Use
23930         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
23931         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
23932         Macroize expander using MODEF mode iterator.
23933
23934 2008-02-05  Diego Novillo  <dnovillo@google.com>
23935
23936         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
23937
23938         PR 33738
23939         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
23940
23941 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23942
23943         PR other/35070
23944         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
23945
23946 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
23947
23948         PR target/35084
23949         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
23950         to indicate if a message should be generated.
23951         (init_cumulative_args): Updated.
23952         (function_value_32): Likewise.
23953
23954 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
23955
23956         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
23957
23958 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
23959
23960         PR target/35083
23961         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
23962         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
23963
23964 2008-02-04  Diego Novillo  <dnovillo@google.com>
23965
23966         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
23967
23968         PR 33738
23969         * tree-vrp.c (vrp_evaluate_conditional): With
23970         -Wtype-limits, emit a warning when comparing against a
23971         constant outside the natural range of OP0's type.
23972
23973 2008-02-04  Richard Guenther  <rguenther@suse.de>
23974
23975         PR middle-end/33631
23976         * expr.c (count_type_elements): Give for unions instead of
23977         guessing.
23978
23979 2008-02-04  Richard Guenther  <rguenther@suse.de>
23980
23981         PR middle-end/35043
23982         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
23983         to TYPE_DOMAINs base type instead of using bitsizetype here.
23984
23985 2008-02-03  Jason Merrill  <jason@redhat.com>
23986
23987         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
23988
23989 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23990
23991         PR other/29972
23992         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
23993         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
23994         (RS/6000 and PowerPC Options): Fix typos and markup.
23995         * doc/passes.texi (Tree-SSA passes): Likewise.
23996
23997 2008-02-02  Michael Matz  <matz@suse.de>
23998
23999         PR target/35045
24000         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
24001         from record_last_reg_set_info.
24002         (record_last_reg_set_info): Take an RTX argument, iterate over all
24003         constituent hardregs.
24004         (record_last_set_info, record_opr_changes): Change calls to
24005         new signature or to record_last_reg_set_info_regno.
24006
24007 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
24008
24009         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
24010
24011 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
24012
24013         PR rtl-optimization/34773
24014         * reg-notes.def (EQUAL): Mention significance of combination of
24015         REG_EQUAL and REG_RETVAL.
24016         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
24017         insn that has a REG_RETVAL.
24018
24019 2008-02-01  Roger Sayle  <roger@eyesopen.com>
24020
24021         PR bootstrap/33781
24022         * configure.ac (--enable-fixed-point): Disable unless explicitly
24023         requested on IRIX.
24024         * configure: Regenerate.
24025
24026 2008-02-01  Richard Guenther  <rguenther@suse.de>
24027
24028         PR other/35042
24029         * invoke.texi (-finline-limit): Remove no longer true parts
24030         of the documentation.  Note that there is no default value.
24031
24032 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
24033             Mark Mitchell  <mark@codesourcery.com>
24034             Ben Elliston  <bje@au.ibm.com>
24035
24036         PR c/29326
24037         * doc/extend.texi (Other Builtins): Document.
24038
24039 2008-01-31  Tom Browder <tom.browder@gmail.com>
24040
24041         * doc/c-tree.texi (Types): Fix grammar.
24042         (Expression trees): Ditto.
24043         * doc/passes.texi (Tree-SSA passes): Ditto.
24044
24045         * doc/configterms.texi (Configure Terms): Fix typo.
24046         * doc/cpp.texi (Common Predefined Macros): Ditto.
24047         * doc/md.texi (Machine Constraints): Ditto.
24048
24049         * doc/makefile.texi (Makefile): Add comma.
24050
24051 2008-01-31  Tom Browder  <tom.browder@gmail.com>
24052             Gerald Pfeifer  <gerald@pfeifer.com>
24053
24054         * doc/sourcebuild.texi (Front End): Remove references to CVS
24055         and CVSROOT/modules.
24056         (Texinfo Manuals): Replace reference to CVS by one to SVN.
24057         (Back End): Remove reference to CVS.
24058
24059 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
24060
24061         PR target/34900
24062         * config/mips/mips.c (gen_load_const_gp): New function, taking a
24063         comment from...
24064         (mips16_gp_pseudo_reg): ...here.
24065         * config/mips/mips.md (load_const_gp): Replace with...
24066         (load_const_gp_<mode>): ...this :P-based insn.
24067
24068 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24069
24070         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
24071         options. Minor fixes.
24072         (-std): Move reference to standards closer to where language
24073         standards are first mentioned.
24074
24075 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
24076
24077         PR rtl-optimization/34995
24078         * reload.c (alternative_allows_const_pool_ref): Take an rtx
24079         parameter and return a bool.  If the rtx parameter is nonnull,
24080         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
24081         (find_reloads): Update call accordingly.  Pass the new operand
24082         if it needed no address reloads, otherwise pass null.
24083
24084 2008-01-30  Richard Henderson  <rth@redhat.com>
24085
24086         PR c/34993
24087         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
24088         for unbounded arrays.
24089
24090 2008-01-30  Silvius Rus  <rus@google.com>
24091
24092         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
24093
24094 2008-01-30  Jan Hubicka  <jh@suse.cz>
24095
24096         PR target/34982
24097         * i386.c (init_cumulative_args): Use real function declaration when
24098         calling locally.
24099
24100 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
24101
24102         PR rtl-optimization/34998
24103         * global.c (build_insn_chain): Treat non-subreg_lowpart
24104         SUBREGs of pseudos as clobbering all the words covered by the
24105         SUBREG, not just all the bytes.
24106         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
24107         original df_ref rather than an extract parameter.
24108         (global_conflicts): Update call accordingly.
24109
24110 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
24111
24112         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
24113         the overflow check to make it easier to read.
24114         (__fixtfdi): Change the type of the ll member in union
24115         long_double to UDItype_x.
24116
24117 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
24118
24119         PR middle-end/34969
24120         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
24121         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
24122         * tree-inline.c (fold_marked_statements): Call
24123         cgraph_update_edges_for_call_stmt if folding a call statement.
24124         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
24125         debug_generic_stmt calls, reset it back afterwards.
24126
24127         PR c/35017
24128         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
24129         static decls.
24130         * c-typeck.c (build_external_ref): Don't pedwarn about
24131         static vars in current function's scope.
24132
24133 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
24134
24135         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
24136
24137 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
24138
24139         PR c/35002
24140         * ipa-struct-reorg.c: Fix spelling.
24141         * params.def: Ditto.
24142
24143 2008-01-29  Richard Guenther  <rguenther@suse.de>
24144
24145         PR middle-end/35006
24146         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
24147         field.
24148         * tree-inline.c (remap_type): Increment remapping_type_depth
24149         around remapping types.
24150         (copy_body_r): Only add referenced variables if they are referenced
24151         from code, not types.
24152
24153 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
24154
24155         PR c++/34055
24156         PR c++/34103
24157         PR c++/34219
24158         PR c++/34606
24159         PR c++/34753
24160         PR c++/34754
24161         PR c++/34755
24162         PR c++/34919
24163         PR c++/34961
24164         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
24165         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
24166
24167 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
24168
24169         PR target/34412
24170         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
24171         pointer for tiny stack.
24172
24173 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
24174
24175         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
24176
24177 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
24178
24179         * config/vx-common.h: Fix typo in comment.
24180
24181 2008-01-28  Ian Lance Taylor  <iant@google.com>
24182
24183         PR c++/34862
24184         PR c++/33407
24185         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
24186         coalesce pointers if they have different DECL_NO_TBAA_P values.
24187         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
24188         between variables with different DECL_NO_TBAA_P values.
24189
24190 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
24191
24192         PR 31535
24193         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
24194         are not legitimate small data references on SPE targets.
24195
24196 2008-01-28  David Daney  <ddaney@avtrex.com>
24197
24198         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
24199
24200 2008-01-28  David Daney  <ddaney@avtrex.com>
24201
24202         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
24203
24204 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
24205
24206         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
24207         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
24208         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
24209         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
24210         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
24211         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
24212         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
24213         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
24214
24215 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
24216
24217         * basic-block.h (condjump_equiv_p): Fix comment.
24218
24219 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
24220
24221         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
24222         print_generic_stmt_indented): Fix comment.
24223
24224 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
24225
24226         * configure.ac (__stack_chk_fail): Add detecion for availability
24227         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
24228         * configure: Regenerate.
24229
24230 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
24231
24232         PR middle-end/34688
24233         * final.c (output_addr_const): Handle TRUNCATE.
24234
24235 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
24236
24237         PR target/34711
24238         * tree-ssa-loop-ivopts.c (comp_cost): New type.
24239         (zero_cost, infinite_cost): New constants.
24240         (struct cost_pair): Change type of cost to comp_cost.
24241         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
24242         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
24243         New functions.
24244         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
24245         split_address_cost, ptr_difference_cost, difference_cost,
24246         get_computation_cost_at, get_computation_cost,
24247         determine_use_iv_cost_generic, determine_use_iv_cost_address,
24248         determine_use_iv_cost_condition, determine_use_iv_costs,
24249         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
24250         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
24251         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
24252         Change type of cost to comp_cost.
24253         (determine_iv_cost): Increase cost of non-original ivs, instead
24254         of decreasing the cost of original ones.
24255         (get_address_cost): Indicate the complexity of the addressing mode
24256         in comp_cost.
24257         (try_add_cand_for): Prefer using ivs not specific to some object.
24258         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
24259
24260 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
24261             Janis Johnson  <janis187@us.ibm.com>
24262
24263         PR target/34814
24264         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
24265         (TARGET_INSTANTIATE_DECLS): Likewise.
24266         * target.h (expand_to_rtl_hook): New target hook.
24267         (instantiate_decls): Likewise.
24268         * function.c (instantiate_decl): Make non-static.  Rename to...
24269         (instantiate_decl_rtl): ... this.
24270         (instantiate_expr): Use instantiate_decl_rtl.
24271         (instantiate_decls_1): Likewise.
24272         (instantiate_decls): Likewise.
24273         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
24274         * function.h (instantiate_decl_rtl): Add prototype.
24275         * cfgexpand.c (target.h): New include.
24276         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
24277         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
24278         (TARGET_INSTANTIATE_DECLS): Likewise.
24279         (TARGET_INITIALIZER): New target hooks added.
24280         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
24281         New prototype.
24282         * config/rs6000/rs6000.c (tree-flow.h): New include.
24283         (machine_function): Add sdmode_stack_slot field.
24284         (rs6000_alloc_sdmode_stack_slot): New function.
24285         (rs6000_instantiate_decls): Likewise.
24286         (rs6000_secondary_memory_needed_rtx): Likewise.
24287         (rs6000_check_sdmode): Likewise.
24288         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
24289         (TARGET_INSTANTIATE_DECLS): Likewise.
24290         (rs6000_hard_regno_mode_ok): Allow SDmode.
24291         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
24292         (rs6000_emit_move): Handle SDmode.
24293         (function_arg_advance): Likewise.
24294         (function_arg): Likewise.
24295         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
24296         SDmode var args for 32-bit compiles.
24297         (rs6000_secondary_reload_class): Handle SDmode.
24298         (rs6000_output_function_epilogue): Likewise.
24299         (rs6000_function_value): Simplify if statement.
24300         (rs6000_libcall_value): Likewise.
24301         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
24302         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
24303         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
24304         (movsd_hardfloat): New define_insn.
24305         (movsd_softfloat): Likewise.
24306         (movsd_store): Likewise.
24307         (movsd_load): Likewise.
24308         (extendsddd2): Likewise.
24309         (extendsdtd2): Likewise.
24310         (truncddsd2): Likewise.
24311         (movdd_hardfloat64): Fixup comment.
24312         (UNSPEC_MOVSD_LOAD): New constant.
24313         (UNSPEC_MOVSD_STORE): Likewise.
24314
24315 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
24316
24317         PR c++/34965
24318         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
24319         TRUTH_XOR_EXPR.
24320         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
24321         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
24322         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
24323         and TRUTH_XOR_EXPR.
24324
24325 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
24326
24327         PR target/34794
24328         * config.gcc: Separate AIX 5.3 from AIX 6.1.
24329         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
24330         __LONGDOUBLE128 too.
24331         * config/rs6000/aix61.h: New file.
24332
24333 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
24334
24335         PR rtl-optimization/34959
24336         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
24337         popcount and parity rtxes the same mode as their operand.
24338         Truncate or extend the result to the return value's mode
24339         if necessary.
24340
24341 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
24342
24343         PR target/34981
24344         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
24345         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
24346         to GOT_VERSION_REGNUM.
24347         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
24348         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
24349         * config/mips/mips.c (mips_emit_call_insn): New function.
24350         (mips_call_tls_get_addr): Call mips_expand_call directly.
24351         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
24352         emit_call_insn.
24353         (mips16_build_call_stub): Likewise.  Return the call insn or null.
24354         (mips_expand_call): Update the call to mips16_build_call_stub
24355         accordingly and a remove redundant condition.  Assert that MIPS16
24356         stubs do not use lazy binding.  Use mips_emit_call_insn and return
24357         the call insn.
24358         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
24359         TARGET_USE_GOT.
24360         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
24361         (mips_avoid_hazard): Remove hazard_set handling.
24362         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
24363         (UNSPEC_RESTORE_GP): ...this.
24364         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
24365         (FAKE_CALL_REGNO): Rename to...
24366         (GOT_VERSION_REGNUM): ...this.
24367         (type): Add "ghost" value.  Add an associated insn reservation.
24368         (hazard_set): Remove.
24369         (exception_receiver): Rename to...
24370         (restore_gp): ...this and update the unspec identifier accordingly.
24371         (exception_receiver, nonlocal_got_receiver): New expanders.
24372         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
24373         FAKE_CALL_REGNO.  Remove hazard_set attribute.
24374         (set_got_version, update_got_version): New patterns.
24375
24376 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
24377
24378         PR target/34970
24379         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
24380
24381 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
24382
24383         PR other/31955
24384         * doc/install.texi2html: Generate gcc-vers.texi.
24385
24386 2008-01-25  DJ Delorie  <dj@redhat.com>
24387
24388         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
24389
24390 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
24391
24392         * config/c4x: Remove directory.
24393         * config.gcc (crx-*, mt-*): Mark obsolete.
24394         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
24395         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
24396         sh-*-rtemscoff*): Remove cases.
24397         * defaults.h (C4X_FLOAT_FORMAT): Remove.
24398         * real.c (encode_c4x_single, decode_c4x_single,
24399         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
24400         c4x_extended_format): Remove.
24401         * real.h (c4x_single_format, c4x_extended_format): Remove.
24402         * doc/extend.texi (interrupt, naked): Remove mention of attributes
24403         on C4x.
24404         (Pragmas): Remove comment about c4x pragmas.
24405         * doc/install.texi (c4x): Remove target-specific instructions.
24406         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
24407         * doc/md.texi (Machine Constraints): Remove C4x documentation.
24408         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
24409         refer to C4x source files as examples.
24410         (C4X_FLOAT_FORMAT): Remove documentation.
24411
24412 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
24413
24414         * config/bfin/bfin.c (override_options): Reorder tests so that
24415         flag_pic gets enabled for -msep-data.
24416
24417 2008-01-25  Richard Guenther  <rguenther@suse.de>
24418
24419         PR middle-end/32244
24420         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
24421         to its bitfield precision if required.
24422
24423 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
24424
24425         PR middle-end/33880
24426         * tree-nested.c (walk_omp_for): New function.
24427         (convert_nonlocal_reference, convert_local_reference): Call
24428         walk_omp_for on OMP_FOR.
24429         (convert_call_expr): Call walk_body on OMP_FOR's
24430         OMP_FOR_PRE_INIT_BODY.
24431
24432 2008-01-25  Richard Guenther  <rguenther@suse.de>
24433
24434         PR tree-optimization/34966
24435         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
24436         default defs and PHI_NODEs we have to insert after the
24437         defining statement.
24438
24439 2008-01-24  Nick Clifton  <nickc@redhat.com>
24440
24441         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
24442         Provide a default definition.
24443         (LIBGCC2_UNITS_PER_WORD): Likewise.
24444
24445         * config/stormy16/stormy16.c: Include df.h for the prototype
24446         for df_regs_ever_live_p.
24447         (xstormy16_expand_builtin_va_start): Convert the stack offset
24448         into a component_ref and then use POINTER_PLUS_EXPR to add it
24449         to the incoming_virtual_args_rtx.
24450         (xstormy16_gimplify_va_arg_expr): Rename to
24451         xstormy16_gimplify_va_arg_expr.
24452         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
24453         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
24454         xstormy16_gimplify_va_arg_expr.
24455         Fix up some formatting issues.
24456
24457         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
24458         Move to predicates.md.
24459         (xs_hi_general_operand): Likewise.
24460         (xs_hi_nonmemory_operand): Likewise.
24461         * config/stormy16/predicates.md:
24462         (xstormy16_carry_plus_operand): New predicate.
24463         (xs_hi_general_operand): New predicate.
24464         (xs_hi_nonmemory_operand): New predicate.
24465         * config/stormy16/stormy16-protos.h:
24466         (xstormy16_carry_plus_operand): Delete prototype.
24467         (xs_hi_general_operand): Likewise.
24468         (xs_hi_nonmemory_operand): Likewise.
24469
24470         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
24471         modifiers as they are no longer needed and they can trigger
24472         reload spill failures.
24473
24474         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
24475         with a match_operand in order to help reload.
24476
24477         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
24478         constraint with 'e' for the 8th alternative as this version of
24479         the mov.w instruction only accepts the lower 8 registers.
24480
24481 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
24482
24483         PR target/34856
24484         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
24485         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
24486         vector elements.
24487
24488 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
24489
24490         PR middle-end/33333
24491         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
24492
24493 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
24494
24495         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
24496         New functions.
24497         (remove_structure): Update allocations list before removing structure.
24498
24499 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
24500
24501         * ipa-struct-reorg.c (is_safe_cond_expr,
24502         create_new_stmts_for_cond_expr): Use integer_zerop function,
24503         that recognize not only zero-pointer, but zero-integer too.
24504
24505 2008-01-25  Ben Elliston  <bje@au.ibm.com>
24506
24507         PR other/22232
24508         * fixproto: Escape "." in sed expression that strips leading "./".
24509
24510 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
24511
24512         PR driver/34904
24513         * gcc.c (SWITCH_OK): Removed.
24514         (SWITCH_LIVE): Changed to bit.
24515         (SWITCH_FALSE): Likewise.
24516         (SWITCH_IGNORE): Likewise.
24517         (switchstr): Change live_cond to unsigned int.
24518         (process_command): Replace SWITCH_OK with 0.
24519         (do_self_spec): Likewise.
24520         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
24521         (give_switch): Likewise.
24522         (used_arg): Likewise.
24523         (do_spec_1): Set the SWITCH_IGNORE bit.
24524         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
24525         bits.  Set the SWITCH_LIVE bit.
24526
24527 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
24528
24529         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
24530
24531 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
24532
24533         PR tree-optimization/34472
24534         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
24535         parameter to a "bool *" and set *DATA to false if there is
24536         an unsafe access.  Do not delete the structure here.
24537         (check_cond_exprs): Delete it here instead.
24538         (check_cond_exprs, exclude_cold_structs): Do not increase
24539         I when removing a structure.
24540
24541 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
24542
24543         PR target/34856
24544         * config/i386/i386.c (ix86_expand_vector_init): Consider only
24545         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
24546
24547 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
24548
24549         PR middle-end/34934
24550         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
24551         a fixed vector for stack.
24552
24553 2008-01-24  Ben Elliston  <bje@au.ibm.com>
24554
24555         PR c++/25701
24556         * doc/gcc.texi (Software development): Add a direntry for g++.
24557
24558 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
24559
24560         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
24561         stale and straggling -fforce-addr comments above.
24562
24563         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
24564         define.
24565         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
24566         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
24567
24568 2008-01-23  Michael Matz  <matz@suse.de>
24569
24570         PR debug/34895
24571         * dwarf2out.c (force_type_die): Use modified_type_die instead of
24572         gen_type_die.
24573
24574 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
24575
24576         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
24577         malloc result type.
24578
24579 2008-01-23 Anatoly Sokolov <aesok@post.ru>
24580
24581         * config/avr/avr.c (avr_current_arch): New variable.
24582         (avr_arch_types): Add 'avr31' and 'avr51' entries.
24583         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
24584         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
24585         (avr_override_options): Init 'avr_current_arch'.
24586         (base_arch_s): Move from here...
24587         * config/avr/avr.h (base_arch_s): ... here. Add new members
24588         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
24589         'mega' to 'have_jmp_call'.
24590         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
24591         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
24592         macros.
24593         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
24594         architectures.
24595         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
24596         MULTILIB_MATCHES): Ditto.
24597
24598 2008-01-23  Richard Guenther  <rguenther@suse.de>
24599
24600         PR middle-end/31529
24601         * cgraphunit.c (cgraph_reset_node): Always mark the node
24602         not reachable if it is not queued already.
24603
24604 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
24605
24606         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
24607         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
24608         (cputype_selected): New static variable.
24609         (bfin_handle_option): Set it if -mcpu is used.
24610         (override_option): Select default set of workarounds if no cpu type
24611         selected on the command line.
24612         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
24613
24614         From  Michael Frysinger  <michael.frysinger@analog.com>
24615         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
24616         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
24617
24618         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
24619         for bf547, bf523, bf524, and bf526.
24620         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
24621         bf526.
24622         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
24623         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
24624         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
24625         __ADSPBF547__ and __ADSPBF54x__ for bf547.
24626         * doc/invoke.texi (Blackfin Options): Document that
24627         -mcpu now accept bf547, bf523, bf524, and bf526.
24628
24629 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
24630
24631         PR rtl-optimization/34628
24632         * combine.c (try_combine): Stop and undo after the first combination
24633         if an autoincrement side-effect on the first insn has effectively
24634         been lost.
24635
24636 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
24637
24638         PR target/34529
24639         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
24640         Offset addresses are not valid for Altivec or paired float modes.
24641
24642 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
24643
24644         PR c++/34607
24645         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
24646         if DECL_INITIAL (decl) is error_mark_node.
24647
24648         PR c++/34914
24649         * c-common.c (handle_vector_size_attribute): Only allow
24650         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
24651         the same way as pointer, array etc. types.
24652         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
24653
24654         PR c++/34917
24655         * tree.c (build_type_attribute_qual_variant): Call
24656         build_qualified_type if attributes are equal, but quals are not.
24657
24658 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24659
24660         PR 32102
24661         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
24662         * flags.h (warn_strict_aliasing): Remove.
24663         (warn_strict_overflow): Remove.
24664         * opts.c (warn_strict_aliasing): Remove.
24665         (warn_strict_overflow): Remove.
24666         * c-opts.c (c_common_handle_option): -Wall only sets
24667         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
24668         (c_common_post_options): Give default values to -Wstrict-aliasing
24669         and -Wstrict-overflow if they are uninitialized.
24670         * common.opt (Wstrict-aliasing): Specify Var and Init.
24671         (Wstrict-overflow): Likewise.
24672
24673 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
24674
24675         PR rtl-optimization/26854
24676         PR rtl-optimization/34400
24677         PR rtl-optimization/34884
24678         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
24679         DF_RD->gen.
24680         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
24681         (df_rd_bb_info.expanded_lr_out): Deleted
24682         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
24683         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
24684         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
24685         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
24686         Removed code to allocate, initialize or free expanded_lr_out.
24687         (df_rd_bb_local_compute_process_def): Restructured to make more
24688         understandable.
24689         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
24690         sets if the sets are being trimmed.
24691
24692 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
24693
24694         PR bootstrap/32287
24695         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
24696         (as_vers): Likewise.
24697         * configure: Regenerated.
24698
24699 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24700
24701         PR middle-end/33092
24702         * tree-pass.h (pass_build_alias): New pass.
24703         * tree-ssa-alias.c (gate_build_alias): New.
24704         (pass_build_alias): New.
24705         * passes.c (init_optimization_passes): Add pass_build_alias after
24706         pass_create_structure_vars.
24707
24708 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
24709
24710         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
24711         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
24712         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
24713         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
24714         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
24715         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
24716         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
24717         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
24718         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
24719         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
24720         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
24721         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
24722         * config/s390/s390.md (FP_ALL): New mode iterator.
24723         (_d): New mode attribute.
24724         ("*signbit<mode>2>"): Changed mode of first operand.
24725         ("isinf<mode>2"): Changed mode of first operand.
24726         ("*TDC_insn"): Adaptation for DFP modes.
24727
24728 2008-01-22  Ben Elliston  <bje@au.ibm.com>
24729
24730         * tree.c (check_qualified_type): Improve function description.
24731
24732 2008-01-21  Jason Merrill  <jason@redhat.com>
24733
24734         PR c++/34196
24735         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
24736         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
24737         if it is set.
24738
24739 2008-01-21  DJ Delorie  <dj@redhat.com>
24740
24741         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
24742         return zero.
24743
24744 2008-01-21  Richard Guenther  <rguenther@suse.de>
24745
24746         PR middle-end/34856
24747         * tree-cfg.c (verify_expr): Allow all invariant expressions
24748         instead of just constant class ones as reference argument.
24749         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
24750         like any other constant.
24751         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
24752
24753 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
24754
24755         * regmove.c (fixup_match_1): Update call crossed frequencies.
24756
24757 2008-01-21  Richard Guenther  <rguenther@suse.de>
24758
24759         PR c/34885
24760         * tree-inline.c (setup_one_parameter): Deal with mismatched
24761         types using a VIEW_CONVERT_EXPR.
24762
24763 2008-01-21  Alon Dayan  <alond@il.ibm.com>
24764             Olga Golovanevsky  <olga@il.ibm.com>
24765
24766         PR tree-optimization/34701
24767         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
24768         when the structure size is not a power of 2.
24769
24770 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
24771
24772         * doc/install.texi: Add doc for --enable-checking=df.
24773
24774 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
24775
24776         PR rtl-optimization/34808
24777         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
24778
24779 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
24780
24781         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
24782         input.
24783
24784 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
24785
24786         PR rtl-optimization/26854
24787         PR rtl-optimization/34400
24788         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
24789         DF_RD->gen.
24790         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
24791         (df_rd_bb_info.expanded_lr_out): New.
24792         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
24793         * loop_iv.c (iv_analysis_loop_init): Ditto.
24794         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
24795         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
24796         Added code to allocate, initialize or free expanded_lr_out.
24797         (df_rd_bb_local_compute_process_def): Restructured to make
24798         more understandable.
24799         (df_rd_confluence_n): Add code to do nothing with fake edges and
24800         code to no apply invalidate_by_call sets if the sets are being trimmed.
24801         (df_lr_local_finalize): Renamed to df_lr_finalize.
24802         (df_live_local_finalize): Renamed to df_live_finalize.
24803
24804 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
24805
24806         PR target/34831
24807         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
24808         deciding whether to use reciprocal instructions.
24809
24810 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
24811
24812         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
24813         dwarf2out_note_section_used if cold_text_section is NULL.
24814
24815 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
24816
24817         PR gcov-profile/34610
24818         * tree-cfg.c (make_edges): Mark both outgoing edges from
24819         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
24820         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
24821         from OMP_FOR and OMP_CONTINUE outgoing edges.
24822
24823         * tree-profile.c (tree_profiling): Return early if
24824         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
24825         at the end.
24826         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
24827         from cfun to child_cfun.
24828         * function.h (struct function): Add after_tree_profile bit.
24829
24830 2008-01-19 Anatoly Sokolov <aesok@post.ru>
24831
24832         * config/avr/avr.S (_exit): Disable interrupt.
24833
24834 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
24835             Steven Bosscher  <stevenb.gcc@gmail.com>
24836
24837         PR rtl-optimization/26854
24838         PR rtl-optimization/34400
24839         * df-problems.c (df_live_scratch): New scratch bitmap.
24840         (df_live_alloc): Allocate df_live_scratch when doing df_live.
24841         (df_live_reset): Clear the proper bitmaps.
24842         (df_live_bb_local_compute): Only process the artificial defs once
24843         since the order is not important.
24844         (df_live_init): Init the df_live sets only with the variables
24845         found live by df_lr.
24846         (df_live_transfer_function): Use the df_lr sets to prune the
24847         df_live sets as they are being computed.
24848         (df_live_free): Free df_live_scratch.
24849
24850 2008-01-18  Ian Lance Taylor  <iant@google.com>
24851
24852         * common.opt: Add fmerge-debug-strings.
24853         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
24854         flag_merge_debug_strings rather than flag_merge_constants.
24855         * doc/invoke.texi (Option Summary): Mention
24856         -fmerge-debug-strings.
24857         (Debugging Options): Document -fmerge-debug-strings.
24858
24859 2008-01-18  Ian Lance Taylor  <iant@google.com>
24860
24861         PR c++/33407
24862         * tree.h (DECL_IS_OPERATOR_NEW): Define.
24863         (struct tree_function_decl): Add new field operator_new_flag.
24864         * tree-inline.c (expand_call_inline): When inlining a call to
24865         operator new, force the return value to go into a variable, and
24866         set DECL_NO_TBAA_P on that variable.
24867         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
24868
24869 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
24870
24871         PR debug/34484
24872         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
24873         DWARF2_DEBUGGING_INFO.
24874         (dwarf2out_note_section_used): Ditto.  Add prototype.
24875         (have_multiple_function_sections, text_section_used,
24876         cold_text_section_used, *cold_text_sections): Move declarations
24877         before their uses.
24878
24879 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
24880
24881         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
24882         field and add signal_ra.
24883         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
24884         assignments to frame state pc.  Move end of stack check after
24885         MD_FALLBACK_FRAME_STATE_FOR.
24886         (uw_update_context_1): Use frame state signal_regs if set, instead
24887         of checking signal_frame flag.
24888         (uw_update_context): Use frame state signal_ra if set.
24889         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
24890         * config/xtensa/linux-unwind.h: New file.
24891
24892 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
24893
24894         * modulo-sched.c (get_sched_window): Fix comment typo.
24895
24896 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
24897
24898         PR tree-optimization/34648
24899         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
24900
24901 2008-01-17  Anatoly Sokolov <aesok@post.ru>
24902
24903         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
24904         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
24905
24906 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
24907
24908         PR rtl-optimization/34400
24909         * df-core.c (df_worklist_dataflow_overeager,
24910         df_worklist_dataflow_doublequeue): New functions.
24911         (df_worklist_dataflow): Two different worklist solvers.
24912         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
24913         New param.
24914
24915 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
24916
24917         PR testsuite/34821
24918         * doc/invoke.texi: Document the dependence on pthread for fopenmp
24919         and ftree-parallelize-loops.
24920
24921 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
24922
24923         PR rtl-optimization/34826
24924         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
24925
24926 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
24927
24928         * global.c (find_reg): Mark the eh regs as used if necessary.
24929         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
24930         * ra.h (struct allocno): no_eh_reg field added.  Changed
24931         no_stack_reg type to bitfield.
24932
24933 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
24934
24935         * tree.c (substitute_in_expr): Add missing 'break'.
24936
24937 2008-01-17  Richard Guenther  <rguenther@suse.de>
24938
24939         PR tree-optimization/34825
24940         * tree-ssa-math-opts.c (is_division_by): Do not recognize
24941         x / x as division to handle.
24942
24943 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24944
24945         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
24946         "-pthread" is specified.
24947         * pa-hpux11.h (LIB_SPEC): Likewise.
24948
24949 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
24950             Peter Bergner  <bergner@vnet.ibm.com>
24951
24952         PR rtl-optimization/33796
24953         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
24954
24955 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24956
24957         PR libgfortran/34699
24958         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
24959         static links.
24960         * pa-hpux10.h (LINK_SPEC): Likewise.
24961         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
24962
24963 2008-01-16  Richard Guenther  <rguenther@suse.de>
24964
24965         PR middle-end/32628
24966         * fold-const.c (fold_convert_const_int_from_int): Do not
24967         set overflow if that occured only because of a sign extension
24968         change when converting from/to a sizetype with the same
24969         precision and signedness.
24970
24971 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
24972
24973         PR debug/34249
24974         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
24975         location address to the correct place.  Update copyright year.
24976
24977 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
24978
24979         * lambda-code.c (lambda_transform_legal_p): Handle the case of
24980         no dependences in the dependence_relations vector.
24981
24982 2008-01-16  Jan Hubicka  <jh@suse.cz>
24983
24984         PR rtl-optimization/31396
24985         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
24986         * cfg.c (dump_reg_info): Print it.
24987         * regs.h (struct reg_info_t): add freq_calls_crossed.
24988         (REG_FREQ_CALLS_CROSSED): New macro.
24989         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
24990         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
24991         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
24992         regmove_optimize): Update call crossed frequencies.
24993         * local-alloc.c (struct qty): Add freq_calls_crossed.
24994         (alloc_qty): Copute freq_calls_crossed.
24995         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
24996         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
24997         * ra.h (struct allocno): Add freq_calls_crossed.
24998
24999 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
25000
25001         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
25002         libgomp when compiling with ftree-parallelize-loops.
25003         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
25004
25005 2008-01-16  Richard Guenther  <rguenther@suse.de>
25006
25007         PR tree-optimization/34769
25008         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
25009         * tree.c (int_cst_value): Instead make this function more
25010         permissive in what it accepts as valid input.  Document this
25011         function always sign-extends the value.
25012
25013 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
25014             Richard Guenther  <rguenther@suse.de>
25015
25016         PR c/34668
25017         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
25018         (gimple_fold_indirect_ref_rhs): ... this.
25019         (gimple_fold_indirect_ref): New function with foldings
25020         that preserve lvalueness.
25021         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
25022         * tree-flow.h (gimple_fold_indirect_ref): Declare.
25023         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
25024         to fold an INDIRECT_REF, fall back to the old use of
25025         fold_indirect_ref_1.
25026
25027 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
25028
25029         * tree-data-ref.c (subscript_dependence_tester_1): Call
25030         free_conflict_function.
25031         (compute_self_dependence): Same.
25032
25033 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
25034
25035         PR debug/34249
25036         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
25037         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
25038         function global.
25039         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
25040         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
25041         for DWARF2_UNWIND_INFO targets.
25042
25043 2008-01-16  Richard Guenther  <rguenther@suse.de>
25044
25045         PR c/34768
25046         * c-typeck.c (common_pointer_type): Do not merge inconsistent
25047         type qualifiers for function types.
25048
25049 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
25050
25051         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
25052         loop_iterator li from previous commit.
25053
25054 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
25055
25056         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
25057
25058 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
25059
25060         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
25061         (parallelize_loops): Don't parallelize irreducible components.
25062
25063 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
25064
25065         PR c++/24924
25066         * c-opts (c_common_post_options): Do not enable CPP
25067         flag_pedantic_errors by default.
25068
25069 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
25070
25071         PR rtl-optimization/31944
25072         * cse.c (remove_pseudo_from_table): New function.
25073         (merge_equiv_classes): Use above function to remove pseudo-registers.
25074         (invalidate): Likewise.
25075
25076 2008-01-13  Richard Guenther  <rguenther@suse.de>
25077
25078         PR middle-end/34601
25079         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
25080         instead of TYPE_MODE to deal with calls from expand_one_error_var.
25081
25082 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
25083
25084         * gcse.c (cprop_jump): Call validate_unshare_change instead of
25085         validate_change to unshare the source of the PC set.
25086
25087 2008-01-12  Jan Hubicka  <jh@suse.cz>
25088
25089         PR middle-end/32135
25090         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
25091         references above array bounds.  This might trigger bounds checks for
25092         pointers to arrays.
25093
25094 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
25095
25096         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
25097         new_replaceable_dependencies.
25098
25099 2008-01-12  Doug Kwan  <dougkwan@google.com>
25100
25101         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
25102         instead of OPT_Wreturn_type in warning due to ignored return type
25103         qualifiers.
25104         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
25105         options included in -Wextra.
25106         * c.opt: New option -Wignored_qualifiers.
25107         * doc/invoke.texi (Warning Options, -Wextra): Add new option
25108         -Wignore_qualifiers.
25109         (-Wignored-qualifiers): Document.
25110         (-Wreturn-type): Remove description of functionality now handled
25111         by -Wignored-qualifiers.
25112
25113 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
25114
25115         PR ada/33788
25116         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
25117         NOP_EXPR if it is between integral types with the same precision.
25118
25119 2008-01-12  Jan Hubicka  <jh@suse.cz>
25120
25121         PR other/28023
25122         * invoke.texi (max-inline-recursive-depth): Fix default value.
25123
25124 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
25125
25126         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
25127         correct type.
25128
25129 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
25130
25131         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
25132
25133 2008-01-11  James E. Wilson  <wilson@specifix.com>
25134
25135         PR target/26015
25136         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
25137
25138 2008-01-11  Anatoly Sokolov <aesok@post.ru>
25139
25140         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
25141         save/restore frame pointer register and don't use 'call-prologues'
25142         optimization in function with "OS_task" attribute.
25143
25144 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
25145
25146         PR middle-end/31309
25147         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
25148         when copying to memory.
25149
25150 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
25151
25152         PR rtl-optimization/30905
25153         * cfgcleanup.c: Include dce.h
25154         (crossjumps_occured): New global variable.
25155         (try_crossjump_bb): Exit loop after finding a fallthru edge.
25156         If something changed, set crossjumps_occured to true.
25157         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
25158         Don't add/remove fake edges to exit here...
25159         (cleanup_cfg): ...but do it here, when crossjumping.
25160         Run a fast DCE when successful crossjumps occured in the latest
25161         iteration of try_optimize_cfg.
25162
25163 2008-01-11  Richard Guenther  <rguenther@suse.de>
25164
25165         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
25166         (struct vn_unary_op_s): Likewise.
25167         (vn_reference_insert): Free old reference on hash collision.
25168
25169 2008-01-10  Raksit Ashok  <raksit@google.com>
25170
25171         PR rtl-optimization/27971
25172         * combine.c (find_split_point): Split PLUS expressions which are
25173         inside a MEM rtx, and whose first operand is complex.
25174
25175 2008-01-10  DJ Delorie  <dj@redhat.com>
25176
25177         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
25178         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
25179         (m32c_hard_regno_ok): Call the underlying function.
25180
25181 2008-01-10  Richard Guenther  <rguenther@suse.de>
25182
25183         PR middle-end/34683
25184         * tree-cfg.c (tree_merge_blocks): Do not go through the
25185         full-blown folding and stmt updating path if we just deal
25186         with virtual operands.
25187         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
25188         test for abnormal SSA_NAMEs.
25189
25190 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
25191
25192         PR middle-end/34641
25193         * reload.c (push_reload): Add assertions.  All constants from
25194         reg_equiv_constant should have been used for replacing the respective
25195         pseudo earlier.
25196         (find_reloads_address): Invoke find_reloads_address_part for
25197         constant taken from the reg_equiv_constant array.
25198
25199 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
25200
25201         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
25202         field (valnum) the first in the struct.  Replace bools with
25203         unit bit fields.
25204
25205 2008-01-10  Richard Guenther  <rguenther@suse.de>
25206
25207         PR tree-optimization/34651
25208         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
25209         types and ordering for masking and converting.
25210
25211 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
25212
25213         PR tree-optimization/34017
25214         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
25215         also for PHI_NODE expressions.
25216
25217 2008-01-09  Jan Hubicka  <jh@suse.cz>
25218
25219         PR tree-optimization/34708
25220         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
25221         based on number of case labels.
25222         (init_inline_once): Remove switch_cost.
25223         * tree-inline.h (eni_weights_d): Remove switch_cost.
25224
25225 2008-01-09  Richard Guenther  <rguenther@suse.de>
25226         Andrew Pinski  <andrew_pinski@playstation.sony.com>
25227
25228         PR middle-end/30132
25229         * gimplify.c (gimplify_cond_expr): Do not create an addressable
25230         temporary if an rvalue is ok or an lvalue is not required.
25231
25232 2008-01-09  Richard Guenther  <rguenther@suse.de>
25233
25234         PR middle-end/34458
25235         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
25236         adjust return type.
25237
25238 2008-01-09  Richard Guenther  <rguenther@suse.de>
25239
25240         PR middle-end/34679
25241         * tree.c (host_integerp): Check for sizetype only if the
25242         type is an integer type.
25243
25244 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
25245
25246         PR debug/26364
25247         * opts.c (decode_options): Disable inlining of functions called
25248         once if not in unit-at-a-time mode.
25249
25250 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
25251
25252         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
25253
25254 2008-01-08  Richard Guenther  <rguenther@suse.de>
25255
25256         PR middle-end/31863
25257         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
25258         out early if the result will be unused.
25259
25260 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
25261
25262         PR target/34709
25263         Revert:
25264
25265         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
25266         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
25267         for TARGET_RECIP.
25268
25269 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
25270
25271         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
25272         for vectorization tuned.
25273
25274 2008-01-08  Richard Guenther  <rguenther@suse.de>
25275
25276         PR tree-optimization/34683
25277         * tree-ssa-operands.c (operand_build_cmp): Export.
25278         * tree-ssa-operands.h (operand_build_cmp): Declare.
25279         * tree-vn.c (vuses_compare): Remove.
25280         (sort_vuses): Use operand_build_cmp.
25281         (sort_vuses_heap): Likewise.
25282         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
25283         to re-use old VEC if available.  Do not sort already sorted VUSEs.
25284         (vdefs_to_vec): Do not sort already sorted VDEFs.
25285
25286 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
25287
25288         PR middle-end/34694
25289         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
25290
25291 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
25292
25293         PR target/34702
25294         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
25295         limitations of reciprocal sequences on x86 targets.
25296
25297 2008-01-08  Richard Guenther  <rguenther@suse.de>
25298
25299         PR tree-optimization/34683
25300         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
25301
25302 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
25303
25304         PR target/34622
25305         * config/darwin.c (darwin_mergeable_string_section): Don't use
25306         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
25307
25308 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
25309
25310         PR target/34682
25311         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
25312         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
25313         predicates of op0 and op1 to register_operand.
25314         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
25315         expander using X87MODEF mode iterator.  Change predicates of
25316         op0 and op1 to register_operand.
25317         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
25318         corresponding patterns and macroize using MODEF macro.  Change
25319         predicates of op0 and op1 to register_operand and remove
25320         "m" constraint. Disparage "r" alternative with "!".
25321         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
25322         macroize using X87MODEF macro.  Change predicates of op0 and op1
25323         to register_operand and remove "m" constraint.  Disparage "r"
25324         alternative with "!".
25325         (absneg splitter with memory operands): Remove.
25326         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
25327         patterns and macroize using X87MODEF mode iterator.
25328         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
25329         Change predicate of op1 to register_operand.
25330         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
25331         for memory operands.
25332
25333 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
25334
25335         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
25336
25337 2008-01-07  Richard Guenther  <rguenther@suse.de>
25338
25339         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
25340         fields.
25341
25342 2008-01-07  Richard Guenther  <rguenther@suse.de>
25343
25344         PR tree-optimization/34683
25345         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
25346         VOPs of the needed size to save memory.  Use VEC_quick_push
25347         to save compile-time.
25348         (vdefs_to_vec): Likewise.
25349
25350 2008-01-07  Sa Liu  <saliu@de.ibm.com>
25351
25352         * config/spu/spu.md (divdf3): Genetate inline code for double
25353         division.  The implementation doesn't handle INF or NAN, therefore it
25354         only applies when -ffinite-math-only is given.
25355
25356 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
25357
25358         PR libstdc++/34680
25359         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
25360         * doc/cpp.texi ([Common Predefined Macros]): Document.
25361
25362 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
25363
25364         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
25365         order to use commutative addition instead of subtraction.
25366
25367 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
25368             Mircea Namolaru  <namolaru@il.ibm.com>
25369             Vladimir Yanovsky  <yanov@il.ibm.com>
25370             Revital Eres  <eres@il.ibm.com>
25371
25372         PR tree-optimization/34263
25373         * tree-outof-ssa.c (process_single_block_loop_latch,
25374         contains_tree_r): New functions.
25375         (analyze_edges_for_bb): Call process_single_block_loop_latch
25376         function to empty single-basic-block latch block if possible.
25377
25378 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
25379
25380         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
25381         for TARGET_RECIP.
25382         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
25383
25384 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
25385
25386         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
25387
25388 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
25389
25390         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
25391
25392 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
25393
25394         PR tree-optimization/34618
25395         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
25396         flag from T.
25397
25398 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
25399
25400         PR target/34673
25401         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
25402         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
25403         Update copyright year.
25404
25405         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
25406         Update copyright year.
25407         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
25408         using NR fixup.
25409
25410 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
25411
25412         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
25413         edge does not point to current bb before changing need_assert.
25414
25415 2008-01-04  Richard Guenther  <rguenther@suse.de>
25416
25417         PR middle-end/34029
25418         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
25419         for verifying purposes if they are is_gimple_min_invariant.
25420
25421 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
25422
25423         PR tree-optimization/34448
25424         PR tree-optimization/34465
25425         * gimplify.c (gimplify_init_constructor): Add new parameter
25426         notify_temp_creation.  Use it.
25427         (gimplify_modify_expr_rhs): Take volatiles into account when
25428         optimizing constructors.
25429         Do not optimize constructors if gimplify_init_constructor will dump to
25430         memory.
25431         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
25432         * gcc.c-torture/compile/pr34448.c: New.
25433
25434 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
25435
25436         PR gcov-profile/34609
25437         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
25438         return_slot if result is TREE_ADDRESSABLE.
25439
25440 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
25441
25442         * config/mips/mips.md (sqrt_condition): Tweak comment.
25443         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
25444
25445 2008-01-03  Tom Tromey  <tromey@redhat.com>
25446
25447         PR c/34457
25448         * c-common.c (c_type_hash): Handle VLAs.
25449
25450 2008-01-03  Jan Hubicka  <jh@suse.cz>
25451
25452         PR tree-optimization/31081
25453         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
25454         0 when inlining and not inlining to first basic block.
25455         (remap_decl): When var is initialized to 0, don't set default_def.
25456         (expand_call_inline): Set entry_bb.
25457         * tree-inline.h (copy_body_data): Add entry_bb.
25458
25459 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
25460
25461         PR c++/34619
25462         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
25463         before returning.
25464
25465         PR tree-optimization/29484
25466         * tree-inline.c (inline_forbidden_p_2): New function.
25467         (inline_forbidden_p): Disallow inlining if some static var
25468         has an address of a local LABEL_DECL in its initializer.
25469         * doc/extend.texi (Labels as Values): Document &&foo behaviour
25470         vs. inlining.
25471
25472 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
25473
25474         PR tree-optimization/34635
25475         * tree-data-ref.c (add_other_self_distances): Make sure that the
25476         evolution step is constant.
25477
25478 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
25479
25480         PR middle-end/34608
25481         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
25482
25483 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
25484
25485         * tree-sra.c (scalarize_init): Insert the generate_element_init
25486         statements after the generate_element_zero statements.
25487
25488 2008-01-02  Richard Guenther  <rguenther@suse.de>
25489
25490         PR middle-end/34093
25491         PR middle-end/31976
25492         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
25493         for very large number of operands instead of ICEing.
25494
25495 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
25496
25497         PR target/34013
25498         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
25499         while stack probing.
25500
25501 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
25502
25503         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
25504         in C++0x mode.
25505
25506 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
25507
25508         PR libmudflap/26442
25509         * tree-mudflap.c (mx_register_decls): Guard warning by
25510         !DECL_ARTIFICIAL check.
25511
25512 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
25513
25514         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
25515         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
25516         sse5_perm<mode>): Fix constraints.