OSDN Git Service

In gcc/:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-23  Nicola Pero  <nicola.pero@meta-innovation.com>
2
3         * doc/objc.texi (Modern GNU Objective-C runtime API): Mention that
4         reference documentation for functions in the API is in the header
5         files.
6         (Messaging with the GNU Objective-C runtime, Dynamically
7         registering methods, Forwarding hook): New sections.
8
9 2010-12-22  Sebastian Pop  <sebastian.pop@amd.com>
10
11         PR tree-optimization/47019
12         * sese.h (scev_analyzable_p): Parameters of a SCoP are SCEV analyzable.
13
14 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
15
16         * c-aux-info.c (gen_formal_list_for_type): Use prototype_p.
17         * c-decl.c (diagnose_arglist_conflict): Likewise.
18         (diagnose_mismatched_decls, merge_decls): Likewise.
19         (c_builtin_function, c_builtin_function_ext_scope): Likewise.
20         (start_decl, start_function): Likewise.
21         * c-tree.h (C_DECL_ISNT_PROTOTYPED): Likewise.
22         * config/ia64/ia64.h (INIT_CUMULATIVE_ARGS): Likewise.
23         * config/mep/mep.c (mep_validate_interrupt): Likewise.
24         * config/pa/pa.h (INIT_CUMULATIVE_ARGS): Likewise.
25         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
26         * config/sh/sh.c (sh_init_cumulative_args): Likewise.
27         * config/sparc/sparc.c (init_cumulative_args): Likewise.
28         * dwarf2out.c (add_prototyped_attribute): Likewise.
29         (gen_subprogram_die): Likewise.
30         * ipa-type-escape.c (check_function_parameter_and_return_types):
31         Likewise.
32         (check_call): Likewise.
33         * tree-ssa.c (useless_type_conversion_p): Likewise.
34
35 2010-12-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36
37         * config/spu/spu.md ("mov<mode>"): Use nonimmediate_operand
38         predicate for destination operand.
39         * config/spu/spu.c (spu_expand_mov): If move destination is an
40         invalid subreg, perform move in the subreg's inner mode instead.
41
42 2010-12-22  Martin Jambor  <mjambor@suse.cz>
43
44         PR tree-optimization/45934
45         PR tree-optimization/46302
46         PR tree-optimization/46987
47         * gimple-fold.c (get_base_binfo_for_type): Removed.
48         (gimple_get_relevant_ref_binfo): Likewise.
49         (gimple_fold_obj_type_ref_call): Dumb down to 4.5 functionality,
50         removed parameter inplace, updated the caller.
51         * gimple.h (gimple_get_relevant_ref_binfo): Remove declaration.
52         * ipa-cp.c (ipcp_propagate_types): Do not derive types from constants.
53         (ipcp_discover_new_direct_edges): Do not do devirtualization based on
54         constants.
55         * ipa-prop.c (compute_known_type_jump_func): Use
56         get_ref_base_and_extent and get_binfo_at_offset instead of
57         gimple_get_relevant_ref_binfo.
58         (compute_known_type_jump_func): Likewise.
59         (update_jump_functions_after_inlining): Do not derive types from
60         constants.
61         (try_make_edge_direct_virtual_call): Likewise.
62         * tree.c (get_binfo_at_offset): Get type from non-artificial fields.
63
64 2010-12-22  Joseph Myers  <joseph@codesourcery.com>
65
66         * config/svr4.h: Remove.
67         * system.h (USING_SVR4_H, SVR4_ASM_SPEC): Poison.
68         * config.gcc, config/bfin/bfin.h, config/cris/cris.h,
69         config/fr30/fr30.h, config/frv/frv.h, config/i386/openbsdelf.h,
70         config/i386/vx-common.h, config/ia64/elf.h, config/ia64/ia64.h,
71         config/ia64/sysv4.h, config/iq2000/iq2000.h, config/m68k/linux.h,
72         config/m68k/m68kelf.h, config/mips/mips.h, config/mips/vxworks.h,
73         config/moxie/moxie.h, config/netbsd-aout.h, config/openbsd.h,
74         config/rs6000/sysv4.h, config/sh/elf.h, config/sh/sh.h,
75         config/sol2.h, config/sparc/sysv4.h, config/stormy16/stormy16.h,
76         config/v850/v850.h, config/vxworks.h: Remove or update comments
77         referring to svr4.h.
78
79 2010-12-22  Andrey Belevantsev  <abel@ispras.ru>
80
81         PR rtl-optimization/45352
82         PR rtl-optimization/46521
83         PR rtl-optimization/46522
84         * sel-sched.c (reset_sched_cycles_in_current_ebb): Recheck the DFA state
85         on the last iteration of the advancing loop.
86         (sel_sched_region_1): Propagate the rescheduling bit to the next block
87         also for empty blocks. 
88
89 2010-12-22  Alexandre Oliva  <aoliva@redhat.com>
90
91         PR debug/46724
92         * function.c (assign_parms_augmented_arg_list): Name and mark
93         DECL of result address as NAMELESS rather than IGNORED.
94         (assign_parms): Set DECL_VALUE_EXPR for indirect result.
95         * tree.h (tree_decl_common::decl_flag_2): Document RESULT_DECL.
96         (DECL_HAS_VALUE_EXPR_P): Accept RESULT_DECL.
97         * dwarf2out.c (loc_list_from_tree) <RESULT_DECL>: Use
98         DECL_VALUE_EXPR.
99         * dbxout.c (dbxout_expand_expr) <RESULT_DECL>: Likewise.
100         * var-tracking.c (vt_add_function_parameter): New, split out of...
101         (vt_add_function_parameters): ... this.  Handle incoming
102         pointer to hold result.
103
104 2010-12-22  Jie Zhang  <jie@codesourcery.com>
105
106         * config/arm/arm.c (output_move_double): Update the comment
107         above the function to reflect the current implementation.
108
109 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
110
111         De-hookize profile infrastructure.
112         * value-prof.c (value_prof_hooks): Remove.
113         (struct value_prof_hooks): Remove.
114         (gimple_value_prof_hooks): Remove.
115         (gimple_register_value_prof_hooks): Remove.
116         (find_values_to_profile): Remove.
117         (value_profile_transformations): Remove.
118         (gimple_value_profile_transformations): No longer static.
119         (gimple_find_values_to_profile): Likewise.
120         * value-prof.h (gimple_register_value_prof_hooks): Remove prototype.
121         (find_values_to_profile): Likewise.
122         (value_profile_transformations): Likewise.
123         (tree_register_profile_hooks): Likewise.
124         (struct profile_hooks): Remove.
125         (tree_profile_hooks): Remove.
126         (gimple_find_values_to_profile): New protoype.
127         (gimple_value_profile_transformations): Likewise.
128         (gimple_init_edge_profiler): Likewise.
129         (gimple_gen_edge_profiler): Likewise.
130         (gimple_gen_interval_profiler): Likewise.
131         (gimple_gen_pow2_profiler): Likewise.
132         (gimple_gen_one_value_profiler): Likewise.
133         (gimple_gen_ic_profiler): Likewise.
134         (gimple_gen_ic_func_profiler): Likewise.
135         (gimple_gen_const_delta_profiler): Likewise.
136         (gimple_gen_average_profiler): Likewise.
137         (gimple_gen_ior_profiler): Likewise.
138         * profile.c (profile_hooks): Remove.
139         (instrument_edges): Call profiling functions directly instead
140         of through removed profile_hooks.
141         (instrument_values): Likewise.
142         (branch_prob): Call gimple_find_values_to_profile instead of
143         removed find_values_to_profile.
144         Call gimple_init_edge_profiler instead of removed hook.
145         (tree_register_profile_hooks): Remove.
146         * tree-profile.c (tree_init_ic_make_global_vars): Rename to
147         init_ic_make_global_vars.
148         (tree_init_edge_profiler): Rename to gimple_init_edge_profiler
149         and no longer static.
150         (tree_gen_edge_profiler, tree_gen_interval_profiler,
151         tree_gen_pow2_profiler, tree_gen_one_value_profiler,
152         tree_gen_ic_profiler, tree_gen_ic_func_profiler,
153         tree_gen_const_delta_profiler, tree_gen_average_profiler,
154         tree_gen_ior_profiler): Similarly renamed and no longer static.
155         (tree_profiling): Do not initialize tree profiling hooks.
156         (tree_profile_hooks): Remove.
157
158 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
159
160         PR target/46880
161         * config/i386/sse.md (sse2_loadlpd, sse2_movsd): Fix shufpd source
162         operand.
163
164 2010-12-21  Ira Rosen  <irar@il.ibm.com>
165
166         PR tree-optimization/47001
167         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
168         the loads in reduction are different and there are no gaps between
169         them.
170
171 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
172
173         PR middle-end/45310
174         * tree-ssa-phiprop.c (propagate_with_phi): Remove statement
175         completely from the function, including EH traces.
176
177 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
178
179         PR rtl-optimization/46755
180         * ira.c (ira): If some dead edges were removed, find and delete
181         any blocks that might have become unreachable.
182
183 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
184
185         PR rtl-optimization/47008
186         * postreload.c (reload_combine_note_store): Also handle
187         PRE_MODIFY and POST_MODIFY.
188
189 2010-12-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
190
191         * config/arm/arm.c (require_pic_register): Set INSN_LOCATOR for all
192         instructions injected into the prologue to prologue_locator.
193
194 2010-12-21  Jan Hubicka   <jh@suse.cz>
195
196         PR middle-end/47000
197         * tree-inline.c (estimate_operator_cost): Handle VIEW_CONVERT_EXPR.
198
199 2010-12-21  Jie Zhang  <jie@codesourcery.com>
200
201         * config/arm/arm-ldmstm.ml: Fix a typo in comment.
202
203 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
204
205         PR middle-end/45852
206         * expr.c (store_expr): Ignore alt_rtl if equal to target,
207         but has side-effects.
208
209 2010-12-21  Anatoly Sokolov  <aesok@post.ru>
210
211         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Remove.
212         * config/sh/sh-protos.h (secondary_reload_info, sh_secondary_reload):
213         Remove forward declaration.
214         * config/sh/sh.c (sh_preferred_reload_class): New function.
215         (sh_secondary_reload): Make static.
216         (TARGET_PREFERRED_RELOAD_CLASS): Define.
217
218 2010-12-20  Joseph Myers  <joseph@codesourcery.com>
219
220         * config/alpha/linux.h (OPTION_GLIBC): Define differently if
221         SINGLE_LIBC.
222         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC):
223         Define differently if SINGLE_LIBC.
224         * config/rs6000/linux.h (OPTION_GLIBC): Define differently if
225         SINGLE_LIBC.
226         * config/rs6000/linux64.h (OPTION_GLIBC): Define differently if
227         SINGLE_LIBC.
228         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
229         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Define
230         SINGLE_LIBC instead of OPTION_GLIBC.
231         (*-*-uclinux*): Define DEFAULT_LIBC and SINGLE_LIBC.
232         (bfin*-uclinux*, moxie-*-uclinux*, m68k-*-uclinux*): Don't define
233         DEFAULT_LIBC or use linux.opt.
234
235 2010-12-20  Richard Henderson  <rth@redhat.com>
236
237         * config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Generate
238         UNSPEC patterns by hand, with the proper mode; use gen_const_mem.
239         * config/mn10300/mn10300.md (call, call_value): Generate UNSPEC_PLT
240         by hand, with the proper mode.
241         (symGOT2reg, symGOT2reg_i, symGOTOFF2reg): Remove.
242         (symGOTOFF2reg_i, sym2PIC, sym2PLT): Remove.
243
244 2010-12-20  Sanjin Liu  <scliu@faraday-tech.com>
245         Mingfeng Wu  <mingfeng@faraday-tech.com>
246
247         * config/arm/arm-cores.def: Add Faraday CPU support -
248         fa526/fa626/fa606te/fa626te/fmp626/fa726te.
249         * config/arm/arm-tune.md: Regenerate.
250         * config/arm/arm.c (arm_fa726te_tune): New tune_params for fa726te
251         (fa726te_sched_adjust_cost): New cost function for fa726te.
252         (arm_issue_rate): Add fa726te.
253         * config/arm/arm.md (generic_sched): Add Faraday cores to generic_sched
254         and include machine description files.
255         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Add fa526 and fa626.
256         * config/arm/t-arm (MD_INCLUDES): Include machine description files for
257         Faraday cores.
258         * config/arm/t-arm-elf: Add multilib option for Faraday cores.
259         * config/arm/t-linux-eabi: Add multilib option for Faraday cores except
260         fa526 and fa626.
261         * doc/invoke.texi: Document -mcpu for Faraday cores.
262         * config/arm/fa526.md: New file.
263         * config/arm/fa606te.md: New file.
264         * config/arm/fa626te.md: New file.
265         * config/arm/fmp626.md: New file.
266         * config/arm/fa726te.md: New file.
267
268 2010-12-20  Yvan Roux  <yvan.roux@st.com>
269
270         * config/arm/lib1funcs.asm (ARM_DIV_BODY case __OPTIMIZE_SIZE__): Fix
271         condition on IT instruction for early termination.
272
273 2010-12-20  Joseph Myers  <joseph@codesourcery.com>
274
275         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't define.
276         (DBX_REGISTER_NUMBER): Define.
277         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Define.
278         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Define.
279         * config/rs6000/sysv4.h (SIZE_TYPE): Define.
280         (ASM_SPEC): Define without using SVR4_ASM_SPEC.
281         (DBX_REGISTER_NUMBER): Undefine.
282         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
283         powerpc-*-eabisim*, powerpc-*-elf*, powerpc-*-eabialtivec*,
284         powerpc-xilinx-eabi*, powerpc-*-eabi*, powerpc-*-rtems*,
285         powerpc-*-linux* | powerpc64-*-linux*, powerpc64-*-gnu*,
286         powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
287         powerpc-wrs-vxworks|powerpc-wrs-vxworksae, powerpcle-*-elf*,
288         powerpcle-*-eabisim*, powerpcle-*-eabi*): Don't use svr4.h.
289
290 2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
291             Jan Hubicka  <jh@suse.cz>
292
293         PR middle-end/46916
294         * opts.c (finish_options): Enable -freorder-functions
295         when -freorder-blocks-and-partition is active.
296         
297 2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
298
299         PR c++/46904
300         PR middle-end/46916
301         PR target/46950
302         * config/darwin.c (generating_for_darwin_version): New var.
303         (darwin_text_section): Remove.
304         (darwin_rodata_section): Do not check function section here.
305         (darwin_emit_unwind_label): Do not emit for Darwin >= 9.
306         Emit distinct labels for successive calls for the same decl.
307         (darwin_override_options): Set generating_for_darwin_version.
308         Add FIXME and disable -freorder-blocks-and-partition.
309         Suppress automatic asynchronous unwind tables for m32.
310         Switch off -freorder-blocks-and-partition when unwind tables
311         will be generated.  Update to use generating_for_darwin_version.
312         (darwin_function_section): Check for cases that need to be placed
313         in coalesced sections.
314         * config/darwin-sections.def: Define hot, cold, startup and exit sections
315         for both coalesced and regular code.
316         * config/darwin.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Delete.
317         * config/darwin10.h (TARGET_ASM_EMIT_UNWIND_LABEL): Delete.
318         
319 2010-12-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
320
321         * doc/cppopts.texi: Use @var when appropriate.
322         * doc/extend.texi (Structure-Packing Pragmas): Likewise.
323         * doc/gimple.texi (Logical Operators)
324         (Adding a new GIMPLE statement code): Likewise.
325         * doc/invoke.texi (Target Options, Precompiled Headers):
326         Likewise.
327         * doc/plugins.texi (Plugins): Likewise.
328
329         * doc/install.texi (Configuration, Building, Testing, Specific):
330         Remove leading whitespace from examples.
331
332 2010-12-19  Andi Kleen  <ak@linux.intel.com>
333
334         PR lto/46905
335         * collect2.c (main): Handle -fno-lto.
336         * opts.c (common_handle_option): Handle -fno-lto.
337
338 2010-12-19  Eric Botcazou  <ebotcazou@adacore.com>
339
340         PR target/46729
341         * config/sparc/sparc.h (GLOBAL_OFFSET_TABLE_REGNUM): New macro.
342         (PIC_OFFSET_TABLE_REGNUM): Rewrite in terms of above macro.
343         * config/sparc/sparc.c (pic_helper_needed): Delete.
344         (global_offset_table): Likewise.
345         (pic_helper_symbol): Rename to...
346         (got_helper_rtx): ...this.
347         (global_offset_table_rtx): New global variable.
348         (sparc_got_symbol): Likewise.
349         (sparc_got): New static function.
350         (check_pic): Use local variable and call sparc_got.
351         (sparc_tls_symbol): Initialize to NULL_RTX.
352         (sparc_tls_got): In non-PIC mode, reload the GOT register for Sun TLS
353         and 32-bit ABI and copy the GOT symbol to a new register otherwise.
354         (get_pc_thunk_name): Rename local variable.
355         (gen_load_pcrel_sym): New wrapper around load_pcrel_sym{si,di}.
356         (load_pic_register): Rename to...
357         (load_got_register): ...this.  Adjust and call gen_load_pcrel_sym.
358         (sparc_expand_prologue): Do not test flag_pic.
359         (sparc_output_mi_thunk): Use pic_offset_table_rtx directly.
360         (sparc_file_end): Test got_helper_rtx instead of pic_helper_needed.
361         Rename local variable and do not call get_pc_thunk_name again.
362         * config/sparc/sparc.md (load_pcrel_sym): Add operand #3.
363
364 2010-12-19  Dave Korn  <dave.korn.cygwin@gmail.com>
365
366         PR middle-end/46674
367         PR middle-end/46221
368         * varasm.c (symbol_alias_set_t): New typedef for derived pointer_set
369         wrapper class.
370         (symbol_alias_set_create): New wrapper function.
371         (symbol_alias_set_destroy): Likewise.
372         (symbol_alias_set_contains): Likewise.
373         (symbol_alias_set_insert): Likewise.
374         (compute_visible_aliases): Use the above and return symbol_alias_set_t,
375         not a pointer_set.
376         (remove_unreachable_alias_pairs): Adjust likewise to match.
377         (finish_aliases_1): Likewise.
378
379 2010-12-19  Chung-Lin Tang  <cltang@codesourcery.com>
380
381         * config/arm/arm.c (arm_legitimate_index_p): Add VFP load/store
382         index range case. Change to SF/DFmode tests to avoid capturing HFmode.
383         (thumb2_legitimate_index_p): Same.
384
385 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
386
387         PR tree-optimization/46969
388         * tree-parloops.c (struct reduction_info): Add reduc_version.
389         (reduction_info_hash): Return reduc_version field.
390         (reduction_phi): Set reduc_version to gimple_uid (phi).
391         (build_new_reduction): Set reduc_version to SSA_NAME_VERSION of
392         phi result.
393         (set_reduc_phi_uids): New function.
394         (gather_scalar_reductions): Call it at the end through htab_traverse.
395
396 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
397
398         * c-parser.c (c_parser_objc_try_catch_finally_statement): Call
399         objc_maybe_warn_exceptions.
400         (c_parser_objc_synchronized_statement): Call
401         objc_maybe_warn_exceptions.
402         
403 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
404
405         PR tree-optimization/46985
406         * tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
407         return it immediately.
408
409 2010-12-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
410
411         PR target/46915
412         * config/pa/pa.c (branch_to_delay_slot_p): Use next_active_insn instead
413         of next_real_insn.  Search forward checking for both ASM_INPUT and
414         ASM_OPERANDS asms until exit condition is found.
415         (branch_needs_nop_p): Likewise.
416         (use_skip_p): New function.
417         (output_cbranch): Use use_skip_p.
418         (output_bb, output_bvb): Likewise.
419
420 2010-12-18  Kai Tietz  <kai.tietz@onevision.com>
421
422         PR target/36834
423         * config/i386/i386.c (ix86_keep_aggregate_return_pointer):
424         New local function.
425         (ix86_return_pops_args): Use ix86_keep_aggregate_return_pointer
426         function instead of KEEP_AGGREGATE_RETURN_POINTER.
427         (ix86_handle_callee_pop_aggregate_return): New handler.
428         (ix86_attribute_table): Add new attribute
429         callee_pop_aggregate_return.
430         * doc/extend.texi (callee_pop_aggregate_return): Add
431         attribute documentation.
432
433 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
434
435         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS):
436         Only set sjlj exceptions for NeXT/m32.
437
438 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
439
440         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION):
441         Only expose when not building for target.
442
443 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
444
445         * config/netbsd.opt, config/netbsd-elf.opt: New files.
446         * config.gcc (alpha*-*-netbsd*, arm*-*-netbsdelf*, arm*-*-netbsd*,
447         i[34567]86-*-netbsdelf*, i[34567]86-*-netbsd*, x86_64-*-netbsd*,
448         m68k*-*-netbsdelf*, mips*-*-netbsd*, powerpc-*-netbsd*,
449         sh*-*-netbsd*, sparc-*-netbsdelf*, sparc64-*-netbsd*,
450         vax-*-netbsdelf*, vax-*-netbsd*): Use these .opt files.
451
452 2010-12-17  Richard Henderson  <rth@redhat.com>
453
454         * regcprop.c (find_oldest_value_reg): Continue search instead of
455         failing if an element in the copy chain is of the wrong regclass.
456
457 2010-12-17  Paolo Bonzini  <bonzini@gnu.org>
458
459         PR c/20385
460         * function.c (used_types_insert): Handle ERROR_MARK.
461         * c-decl.c (grokdeclarator): Handle ERROR_MARK.
462         (declspecs_add_type): Leave error_mark_node in specs->type.
463         (finish_declspecs): Change it to integer_type_node here.
464         * c-parser.c (c_parser_peek_2nd_token): Move earlier.
465         (enum c_lookahead_kind): New.
466         (c_parser_next_token_starts_typename): New name of
467         c_parser_next_tokens_start_typename.  Accept lookahead enum
468         and handle it here instead of...
469         (c_parser_next_tokens_start_declaration): ... here.  Call it.
470         (c_parser_declspecs): Accept another argument.  Do not exit
471         on C_ID_ID if it is guessed to be an unknown typename.
472         (c_parser_parms_declarator): Use 2nd token to distinguish a K&R
473         declaration from an ANSI declaration starting with an unknown
474         typename.
475         (c_parser_struct_declaration, c_parser_objc_type_name,
476         c_parser_typeof_specifier, c_parser_declarator,
477         c_parser_direct_declarator_inner): Adjust calls.
478         (c_parser_parameter_declaration): Likewise.
479         (c_parser_type_name): Pass back an error_mark_node to the caller.
480         (c_parser_postfix_expression): Do error recovery when 
481         c_parser_type_name returns NULL.
482
483 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
484
485         * config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
486         Define.
487         * config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define.
488         (DBX_REGISTER_NUMBER): Undefine.
489         * config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
490         * config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
491         Define.
492         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
493         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
494         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
495         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
496         i[3456x]86-*-netware*, i[34567]86-*-nto-qnx*,
497         i[34567]86-*-solaris2*,
498         i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h.
499
500 2010-12-17  H.J. Lu  <hongjiu.lu@intel.com>
501
502         * config/i386/i386.c (move_or_delete_vzeroupper_2): Replace
503         "BB [%i]" with "[bb %i]" in dump.
504         (move_or_delete_vzeroupper_1): Likewise.
505         (rescan_move_or_delete_vzeroupper): Likewise.  Always dump
506         upper 128bit state at exit.
507
508 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
509
510         * config/interix.opt: New.
511         * config/interix.h (LINK_SPEC): Don't handle -soname*.
512         * config.gcc (i[34567]86-*-interix3*): Use interix.opt.
513
514 2010-12-17  Andrew Stubbs  <ams@codesourcery.com>
515
516         * config/arm/arm.md (maddhisi4, *maddhidi4): Use the canonical
517         operand order for plus.
518         Drop redundant % from constraints.
519
520 2010-12-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
521
522         * config/spu/t-spu-elf (LIB2FUNCS_EXCLUDE): Add _floattisf and
523         _floatunstisf.
524         * config/spu/spu.md ("floattisf2"): New expander.
525         ("floatunstisf2"): New insn pattern and splitter.
526         ("cgt_ti_m1"): New insn pattern.
527
528 2010-12-17  Bernd Schmidt  <bernds@codesourcery.com>
529
530         * config/arm/arm.c (arm_select_cc_mode): Before calling
531         arm_select_dominance_cc_mode for AND or IOR operations, ensure
532         that op is NE or EQ.
533
534 2010-12-17  Alexander Monakov  <amonakov@ispras.ru>
535
536         PR middle-end/46761
537         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Prefer
538         to use unadjusted UB.
539
540 2010-12-17  Dodji Seketeli  <dodji@redhat.com>
541
542         * dwarf2out.c (gen_type_die_with_usage): Do not try to emit debug
543         info for a redundant typedef that has DECL_ORIGINAL_TYPE set. Use
544         that underlying type instead.
545
546 2010-12-16  Jan Hubicka  <jh@suse.cz>
547
548         PR middle-end/44563 
549         * ipa-inline.c: Update doplevel comment.
550         (cgraph_estimate_size_after_inlining): Remove times attribute.
551         (cgraph_mark_inline_edge): Update.
552         (cgraph_mark_inline): Remove.
553         (cgraph_estimate_growth): Update.
554         (cgraph_check_inline_limits): Remove one only argument.
555         (cgraph_edge_badness): Update.
556         (cgraph_decide_recursive_inlining): Update.
557         (cgraph_decide_inlining_of_small_function): Fix handling of
558         tree_can_inline_p  and call_stmt_cannot_inline_p.
559         (cgraph_flatten): Likewise.
560         (cgraph_decide_inlining): Update.
561         (cgraph_decide_inlining_incrementally): Fix handling of
562         call_stmt_cannot_inline_p.
563
564 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
565
566         * config/darwin.opt (dylinker, headerpad_max_install_names,
567         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
568         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
569         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
570         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
571         Driver options.
572         * config/darwin.h (LINK_SPEC): Remove '*' after
573         headerpad_max_install_names.
574
575 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
576
577         PR tree-optimization/46924
578         * graphite-sese-to-poly.c (detect_commutative_reduction): Do not
579         detect reductions outside the current SESE region.
580         * sese.h (stmt_in_sese_p): New.
581         (defined_in_sese_p): Call stmt_in_sese_p.
582
583 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
584
585         PR tree-optimization/46966
586         * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
587         for bbs that are removed from SCOP_BBS vector.
588
589 2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>
590
591         * tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
592         get_ref_base_and_extent returns -1 as the max size.
593
594 2010-12-16  Konrad Eisele  <konrad@gaisler.com>
595             Eric Botcazou  <ebotcazou@adacore.com>
596
597         Support for LEON processor
598         * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
599         (sparc-*-linux*): Likewise.
600         (sparc-*-rtems*): Remove Solaris left-overs.
601         (sparc*-*-*): Remove obsolete sparc86x setting.
602         (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
603         * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
604         * config/sparc/sparc.h (TARGET_CPU_leon): Define.
605         (TARGET_CPU_sparc86x): Delete.
606         (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
607         (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
608         (TARGET_CPU_f934): Likewise.
609         (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
610         (CPP_CPU_SPEC): Add entry for -mcpu=leon.
611         (enum processor_type): Add PROCESSOR_LEON.  Reorganize.
612         * config/sparc/sparc.c (leon_costs): New cost array.
613         (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
614         Initialize cost array to leon_costs if -mtune=leon.
615         * config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
616         Include leon.md scheduling description.
617         * config/sparc/leon.md: New file.
618         * config/sparc/t-elf: Do not assemble Solaris startup files.
619         * config/sparc/t-leon: New file.
620         * config/sparc/t-leon3: Likewise.
621
622 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
623
624         PR tree-optimization/43655
625         * tree-ssa-ter.c (is_replaceable_p): Don't use
626         gimple_references_memory_p for -O0, instead check for load
627         by looking at rhs.
628
629 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
630
631         PR tree-optimization/46404
632         * graphite-clast-to-gimple.c (gloog): Call scev_reset.
633
634 2010-12-16  Anatoly Sokolov  <aesok@post.ru>
635
636         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
637         * config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
638         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
639
640 2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
641
642         * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
643         * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
644         (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
645
646 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
647
648         PR debug/46893
649         * cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
650         use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
651
652 2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
653
654         PR target/46883
655         * config/arm/arm.md
656         (zero_extendhisi2 for register input splitter): Change
657         "register_operand" to "s_register_operand".
658         (zero_extendqisi2 for register input splitter): Same.
659
660 2010-12-16  Jan Hubicka  <jh@suse.cz>
661
662         PR middle-end/46939
663         * predic.c (predict_paths_leading_to_edge): New function.
664         (apply_return_prediction): Use it.
665         (predict_paths_for_bb): Do not special case abnormals.
666
667 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
668
669         * config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
670         extra_options twice.
671
672 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
673
674         * doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
675         * doc/tm.texi: Regenerate.
676         * system.h (US_SOFTWARE_GOFAST): Poison.
677         * config.gcc (enable_gofast): Don't handle.
678         * config/gofast.h: Remove.
679         * config/mips/t-gofast: Remove.
680         * config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
681         * config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
682         * config/mips/elforion.h: Don't mention GOFAST in comment.
683         * config/mips/mips.c: Don't include gofast.h.
684         (mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
685         * config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
686         US_SOFTWARE_GOFAST.
687         * config/sparc/sparc.c: Don't include gofast.h.
688         (sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
689         * config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
690         US_SOFTWARE_GOFAST.
691
692 2010-12-14  Jan Hubicka  <jh@suse.cz>
693
694         * config/darwin.opt (dylinker, headerpad_max_install_names,
695         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
696         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
697         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
698         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
699         Driver options.
700         * config/darwin.h (LINK_SPEC): Remove '*' after
701         headerpad_max_install_names.
702
703 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
704
705         PR tree-optimization/46924
706         * graphite-sese-to-poly.c (detect_commutative_reduction): Do not
707         detect reductions outside the current SESE region.
708         * sese.h (stmt_in_sese_p): New.
709         (defined_in_sese_p): Call stmt_in_sese_p.
710
711 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
712
713         PR tree-optimization/46966
714         * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
715         for bbs that are removed from SCOP_BBS vector.
716
717 2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>
718
719         * tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
720         get_ref_base_and_extent returns -1 as the max size.
721
722 2010-12-16  Konrad Eisele  <konrad@gaisler.com>
723             Eric Botcazou  <ebotcazou@adacore.com>
724
725         Support for LEON processor
726         * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
727         (sparc-*-linux*): Likewise.
728         (sparc-*-rtems*): Remove Solaris left-overs.
729         (sparc*-*-*): Remove obsolete sparc86x setting.
730         (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
731         * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
732         * config/sparc/sparc.h (TARGET_CPU_leon): Define.
733         (TARGET_CPU_sparc86x): Delete.
734         (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
735         (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
736         (TARGET_CPU_f934): Likewise.
737         (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
738         (CPP_CPU_SPEC): Add entry for -mcpu=leon.
739         (enum processor_type): Add PROCESSOR_LEON.  Reorganize.
740         * config/sparc/sparc.c (leon_costs): New cost array.
741         (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
742         Initialize cost array to leon_costs if -mtune=leon.
743         * config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
744         Include leon.md scheduling description.
745         * config/sparc/leon.md: New file.
746         * config/sparc/t-elf: Do not assemble Solaris startup files.
747         * config/sparc/t-leon: New file.
748         * config/sparc/t-leon3: Likewise.
749
750 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
751
752         PR tree-optimization/43655
753         * tree-ssa-ter.c (is_replaceable_p): Don't use
754         gimple_references_memory_p for -O0, instead check for load
755         by looking at rhs.
756
757 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
758
759         PR tree-optimization/46404
760         * graphite-clast-to-gimple.c (gloog): Call scev_reset.
761
762 2010-12-16  Anatoly Sokolov  <aesok@post.ru>
763
764         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
765         * config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
766         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
767
768 2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
769
770         * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
771         * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
772         (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
773
774 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
775
776         PR debug/46893
777         * cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
778         use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
779
780 2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
781
782         PR target/46883
783         * config/arm/arm.md
784         (zero_extendhisi2 for register input splitter): Change
785         "register_operand" to "s_register_operand".
786         (zero_extendqisi2 for register input splitter): Same.
787
788 2010-12-16  Jan Hubicka  <jh@suse.cz>
789
790         PR middle-end/46939
791         * predic.c (predict_paths_leading_to_edge): New function.
792         (apply_return_prediction): Use it.
793         (predict_paths_for_bb): Do not special case abnormals.
794
795 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
796
797         * config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
798         extra_options twice.
799
800 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
801
802         * doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
803         * doc/tm.texi: Regenerate.
804         * system.h (US_SOFTWARE_GOFAST): Poison.
805         * config.gcc (enable_gofast): Don't handle.
806         * config/gofast.h: Remove.
807         * config/mips/t-gofast: Remove.
808         * config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
809         * config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
810         * config/mips/elforion.h: Don't mention GOFAST in comment.
811         * config/mips/mips.c: Don't include gofast.h.
812         (mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
813         * config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
814         US_SOFTWARE_GOFAST.
815         * config/sparc/sparc.c: Don't include gofast.h.
816         (sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
817         * config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
818         US_SOFTWARE_GOFAST.
819
820 2010-12-14  Jan Hubicka  <jh@suse.cz>
821
822         * tree.c (get_file_function_name): Avoid using random seed on
823         GLOBAL_sub_I and GLOBAL_sub_D.
824
825 2010-12-15  Martin Jambor  <mjambor@suse.cz>
826
827         PR tree-optimization/46053
828         PR middle-end/46287
829         PR middle-end/46242
830         * cgraph.h (cgraph_indirect_call_info): New field thunk_delta.
831         * gimple.h (gimple_fold_obj_type_ref): Declaration removed.
832         (gimple_fold_call): Declare.
833         (gimple_adjust_this_by_delta): Likewise.
834         * cgraph.c (cgraph_make_edge_direct): New parameter delta.  Updated
835         all users.
836         (cgraph_clone_edge): Create a copy of indirect_info also for direct
837         edges.
838         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
839         parameters.
840         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Renamed to
841         gimple_get_virt_mehtod_for_binfo, new parameter delta.  Do not search
842         through thunks, in fact bail out if we encounter one, check that
843         BINFO_VIRTUALS is not NULL.
844         (gimple_adjust_this_by_delta): New function.
845         (gimple_fold_obj_type_ref): Removed.
846         (gimple_fold_obj_type_ref_call): New function.
847         (fold_gimple_call): Renamed to gimple_fold_call, made external.
848         Updated users.  Call gimple_fold_obj_type_ref_call instead of
849         gimple_fold_obj_type_ref.
850         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Process
851         thunk deltas.
852         (ipcp_discover_new_direct_edges): Likewise.
853         * ipa-prop.c (ipa_make_edge_direct_to_target): New parameter delta.
854         Updated callers.
855         (ipa_write_indirect_edge_info): Stream thunk_delta.
856         (ipa_read_indirect_edge_info): Likewise.
857         * tree-ssa-ccp.c (ccp_fold_stmt): Use gimple_fold_call instead of
858         gimple_fold_obj_type_ref.
859
860 2010-12-15  Alexander Monakov  <amonakov@ispras.ru>
861
862         PR rtl-optimization/46649
863         * sel-sched-ir.c (purge_empty_blocks): Unconditionally skip the first
864         basic block in the region.
865
866 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
867
868         * config/stormy16/stormy16.h (LINK_SPEC, WCHAR_TYPE): Define.
869         * config.gcc (xstormy16-*-elf): Don't use svr4.h.
870
871 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
872
873         * config/rx/rx.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
874         * config.gcc (rx-*-elf*): Don't use svr4.h.
875
876 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
877
878         PR tree-optimization/46845
879         * sese.c (scalar_evolution_in_region): Handle scop parameters
880         before scev analysis.
881
882 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
883
884         PR tree-optimization/46928
885         * tree-data-ref.c (analyze_overlapping_iterations): Handle A[p] == A[p]
886         in data dependence analysis with p a parameter of the loop.
887
888 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
889
890         PR tree-optimization/45948
891         * tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p): New.
892         (stmt_has_scalar_dependences_outside_loop): New.
893         (stmt_generated_in_another_partition): New.
894         (add_scalar_computations_to_partition): New.
895         (rdg_build_partitions): Call add_scalar_computations_to_partition.
896
897 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
898
899         * config/arc/arc.h (LIB_SPEC): Define.
900         * config.gcc (arc-*-elf*): Don't use svr4.h.
901
902 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
903
904         * config/sh/elf.h (LIB_SPEC): Define.
905         * config.gcc (sh-*-elf* | sh[12346l]*-*-elf* | sh-*-symbianelf* |
906         sh[12346l]*-*-symbianelf* | sh-*-linux* | sh[2346lbe]*-*-linux* |
907         sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* |
908         sh5l*-*-netbsd* | sh64-*-netbsd* | sh64l*-*-netbsd*, sh-*-rtems*,
909         sh-wrs-vxworks): Don't use svr4.h.
910
911 2010-12-14  Jan Hubicka  <jh@suse.cz>
912
913         PR lto/46940
914         PR lto/44463
915         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Construct nodes
916         for aliases when they are used.
917
918 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
919
920         * config.gcc (sparc-*-elf*, sparc-*-rtems*, sparc-*-linux*,
921         sparc-*-netbsdelf*, sparc*-*-solaris2*, sparc-wrs-vxworks,
922         sparc64-*-elf*, sparc64-*-rtems*, sparc64-*-linux*,
923         sparc64-*-netbsd*, sparc64-*-openbsd*): Don't use svr4.h.
924
925 2010-12-14  Thomas Klein  <th.r.klein@web.de>
926
927         * config/arm/arm.c (arm_expand_prologue): Report the static stack
928         size if -fstack-usage is used.
929         (thumb1_expand_prologue): Likewise.
930
931 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
932
933         PR debug/46885
934         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Use gsi_last_bb
935         instead of gsi_last_nondebug_bb if bump_in_latch.
936
937         PR tree-optimization/46909
938         * gimple-fold.c (and_var_with_comparison_1): Save partial
939         result even in the is_and case, if both partial results
940         are the same, return it.
941         (or_var_with_comparison_1): Use is_or predicate instead of
942         innercode == TRUTH_OR_EXPR test.  Save partial result
943         even in the is_or case, if both partial results are the
944         same, return it.  In the !is_or case when both partial
945         results are the same, return the partial result instead
946         of boolean_true_node.
947
948 2010-12-14  Jan Hubicka  <jh@suse.cz>
949
950         PR middle-end/46667
951         * varasm.c (assemble_start_function): Do not call
952         resolve_unique_section.
953         * cfgexpand.c (gimple_expand_cfg): Resolve it here.
954
955 2010-12-14  Alexander Monakov  <amonakov@ispras.ru>
956
957         PR rtl-optimization/46875
958         * sched-vis.c (print_pattern): Dump "sequence" for ADDR_VECs.
959         * sel-sched-ir.c (bb_has_removable_jump_to_p): Forbid table jumps.
960
961 2010-12-14  Kaushik Phatak <kaushik.phatak@kpitcummins.com>
962
963         * config/h8300/h8300.md (define_split) : Add condition for
964         "and with single_zero" splitter to handle 16-bit const operands.
965         * config/h8300/h8300.md (define_split) : Add condition for
966         "ior with single_one" splitter to handle 16-bit const operands.
967         * config/h8300/h8300.md (define_split) : Add condition for
968         "xor with single_one" splitter to handle 16-bit const operands. 
969         * testsuite/gcc.dg/h8300-bit-insn-ice.c: New.
970
971 2010-12-13  Jan Hubicka  <jh@suse.cz>
972
973         PR middle-end/45388
974         * ipa.c (cgraph_build_static_cdtor_1): Break out from ...  Add FINAL
975         parameter.
976         (cgraph_build_static_cdtor): ... here.
977         (build_cdtor): Use cgraph_build_static_cdtor_1.
978
979 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
980
981         * config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
982         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
983         * config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.
984
985 2010-12-14  Bernd Schmidt  <bernds@codesourcery.com>
986
987         PR rtl-optimization/44374
988         Reapply patch with fixes.
989         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
990         * df-core.c (df_set_bb_dirty): Set it.
991         * ifcvt.c (find_memory): Remove function.
992         (dead_or_predicable): Use can_move_insns_across.
993         * df.h (can_move_insns_across): Declare function.
994         * cfgcleanup.c (block_was_dirty): New static variable.
995         (flow_find_head_matching_sequence): Test for epilogue notes.
996         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
997         than df_get_bb_dirty.
998         (try_head_merge_bb): New static function.
999         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
1000         is set.
1001         * df-problems.c: Include "target.h"
1002         (df_simulate_find_uses): New static function.
1003         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
1004         (find_memory, find_memory_store): New static functions.
1005         (can_move_insns_across): New function.
1006         * Makefile.in (df-problems.o): Update dependencies.
1007
1008 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1009
1010         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1011         (DBX_REGISTER_NUMBER): Undefine.
1012         * config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1013         (DBX_REGISTER_NUMBER): Undefine.
1014         * config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.
1015
1016 2010-12-13  Jack Howarth <howarth@bromo.med.uc.edu>
1017             Joseph Myers <joseph@codesourcery.com>
1018
1019         PR bootstrap/46650
1020         * system.h: Include cstring for cxx bootstrap.
1021
1022 2010-12-13  Jakub Jelinek  <jakub@redhat.com>
1023
1024         PR lto/46879
1025         * lto-streamer-out.c (output_gimple_stmt): Never replace first
1026         GIMPLE_DEBUG argument with MEM_REF.
1027
1028         PR debug/46867
1029         * var-tracking.c (emitted_notes, string_pointer_flags): Removed.
1030         (emit_note_insn_var_location): Remove ENABLE_RTL_CHECKING verification.
1031         (vt_emit_notes): Don't initialize and destroy emitted_notes.
1032
1033 2010-12-13  Nathan Froyd  <froydnj@codesourcery.com>
1034
1035         PR target/46040
1036         * config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
1037         (arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
1038
1039 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1040
1041         * config/v850/v850.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1042         WCHAR_TYPE_SIZE): Define.
1043         * config.gcc (v850e1-*-*, v850e-*-*, v850-*-*): Don't use svr4.h.
1044
1045 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1046
1047         * config.gcc (s390-*-linux*, s390x-*-linux*, s390x-ibm-tpf*):
1048         Don't use svr4.h.
1049
1050 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1051
1052         * config/mn10300/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1053         WCHAR_TYPE_SIZE): Undefine.
1054         * config/mn10300/mn10300.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1055         WCHAR_TYPE_SIZE): Define.
1056         * config.gcc (mn10300-*-*): Don't use svr4.h.
1057
1058 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1059
1060         * config/m68k/linux.h (DBX_REGISTER_NUMBER): Undefine and
1061         redefine.
1062         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1063         * config.gcc (m68k-*-uclinux*, m68k-*-linux*): Don't use svr4.h.
1064
1065 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
1066
1067         PR debug/46756
1068         * jump.c (mark_all_labels): Skip debug insns.
1069
1070 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
1071
1072         PR debug/46782
1073         * cfgcleanup.c (try_forward_edges): Skip debug insns.
1074
1075 2010-12-12  Jan Hubicka  <jh@suse.cz>
1076             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1077
1078         * varasm.c (default_function_section): Check flag_reorder_functions
1079         and targetm.have_named_sections.
1080         * config/darwin.c (darwin_function_section): Check
1081         flag_reorder_functions.
1082
1083 2010-12-12  Finn Thain  <fthain@telegraphics.com.au>
1084
1085         PR target/46179
1086         * config/m68k/m68k.c (handle_move_double): Insert calls to
1087         m68k_final_prescan_insn to clean up @TLS operand syntax.
1088
1089 2010-12-10  Sebastian Pop  <sebastian.pop@amd.com>
1090
1091         PR tree-optimization/43023
1092         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
1093         Removed.
1094         (stores_zero_from_loop): Call stmt_stores_zero.
1095         * tree-data-ref.h (stmt_stores_zero): New.
1096         * tree-loop-distribution.c (generate_memset_zero): Do not return a
1097         boolean.  Call gcc_assert on stride_of_unit_type_p.
1098         (generate_builtin): Call stmt_stores_zero.
1099         (rdg_flag_all_uses): Removed.
1100         (rdg_flag_similar_memory_accesses): Removed.
1101         (build_rdg_partition_for_component): Removed parameter
1102         other_stores.  Removed call to rdg_flag_similar_memory_accesses.
1103         (can_generate_builtin): New.
1104         (similar_memory_accesses): New.
1105         (fuse_partitions_with_similar_memory_accesses): New.
1106         (rdg_build_partitions): Call
1107         fuse_partitions_with_similar_memory_accesses.
1108
1109 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
1110
1111         PR rtl-optimization/46804
1112         * regmove.c (optimize_reg_copy_3): Look for REG_EQUAL note
1113         on the setter of src_reg rather than on insn.  If it is
1114         equal to the setter's original SET_SRC, replace it with its
1115         zero or sign extension instead of dropping it.
1116
1117 2010-12-10  Richard Guenther  <rguenther@suse.de>
1118
1119         PR lto/46808
1120         * lto-symtab.c (lto_symtab_merge_decls_2): Avoid type warnings
1121         after errors.
1122         (lto_symtab_merge_decls_1): Adjust.
1123
1124 2010-12-10  Dave Korn  <dave.korn.cygwin@gmail.com>
1125
1126         PR middle-end/46674
1127         PR lto/43157
1128         * target.def (mangle_assembler_name): New target asm_out hook.
1129         * targhooks.c (default_mangle_assembler_name): Add default hook
1130         implementation.
1131         * targhooks.h (default_mangle_assembler_name): Add prototype.
1132         * lto-symtab.c (lto_symtab_register_decl): Use new hook when
1133         processing DECL_ASSEMBLER_NAMEs for lto symtabs.
1134         (lto_symtab_get_resolution): Likewise.
1135         (lto_cgraph_replace_node): Likewise.
1136         (lto_symtab_prevailing_decl): Likewise.
1137         * lto-streamer-out.c (write_symbol): Likewise.
1138         * doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
1139         * doc/tm.texi: Regenerate.
1140         * config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
1141         point at i386_pe_mangle_assembler_name.
1142         * config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
1143         * config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
1144         prototype.
1145
1146 2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>
1147
1148         * c-typeck.c (readonly_error): Delete.
1149
1150 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
1151
1152         PR rtl-optimization/46865
1153         * rtl.c (rtx_equal_p_cb, rtx_equal_p): For last operand of
1154         ASM_OPERANDS and ASM_INPUT if integers are different,
1155         call locator_eq.
1156         * jump.c (rtx_renumbered_equal_p): Likewise.
1157
1158         PR tree-optimization/46864
1159         * tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even
1160         when there are EDGE_EH exit edges.
1161
1162 2010-12-10  Tobias Burnus  <burnus@net-b.de>
1163
1164         PR fortran/46540
1165         * configure.ac: Handle --disable-libquadmath-support.
1166         * doc/install.texi: Document --disable-libquadmath and
1167         --disable-libquadmath-support
1168         * configure: Regenerate.
1169         * config.in: Regenerate.
1170
1171 2010-12-10  Jack Howarth  <howarth@bromo.med.uc.edu>
1172             Iain Sandoe  <iains@gcc.gnu.org>
1173
1174         PR 43751/target
1175         * config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.
1176
1177 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
1178
1179         * config/rs6000/rs6000.c
1180         (rs6000_darwin64_record_arg_advance_recurse): Name register increment
1181         explicitly.  (rs6000_darwin64_record_arg_recurse): Make sure we split
1182         long doubles when we run out of regs.   Also flag that this requires
1183         stack and therefore cannot be returned by value.
1184         (rs6000_darwin64_record_arg): Update comment.
1185         (rs6000_function_value): Likewise.
1186
1187 2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
1188
1189         * c-parser.c (c_parser_objc_class_definition): Recognize
1190         Objective-C 2.0 class extensions.
1191
1192 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
1193
1194         * config/darwin.c: Remove c-tree.h and c-lang.h
1195         * config/t-darwin: Remove dependencies on c-tree.h and c-lang.h.
1196
1197 2010-12-10  Joern Rennecke  <amylaar@spamcop.net>
1198
1199         PR target/46881
1200         * doc/tm.texi: Regenerate.
1201         * target.def: Fix "preferred" spelling.  Refer to rclass by its
1202         exact name.
1203         * config/arm/arm.c (arm_preferred_rename_class): Rename parameter class
1204         to rclass.
1205
1206 2010-12-09  Paul Koning  <ni1d@arrl.net>
1207
1208         * config/pdp11/pdp11-protos.h (output_move_double,
1209         output_move_quad): Delete.
1210         (output_move_multiple, pdp11_expand_operands): New functions.
1211         (pdp11_action, pdp11_partorder): New enums.
1212         * config/pdp11/pdp11.md (movdi, movsi, movdf, movsf): Use
1213         output_move_multiple.
1214         (adddi3, subdi3, negdi2): New patterns.
1215         (addsi3, subsi3, negsi2): Use pdp11_expand_operands.
1216         (abshi2): Delete.
1217         (neghi2, negqi2): Use PDPint iterator.
1218         * config/pdp11/pdp11.c (find_addr_reg, output_move_double,
1219         output_move_quad): Delete.
1220         (pdp11_expand_operands, output_move_multiple): New functions.
1221
1222 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1223
1224         * config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1225         * config.gcc (vax-*-linux*): Don't use svr4.h.
1226
1227 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
1228
1229         * c-typeck.c (build_indirect_ref): Call invalid_indirection_error.
1230
1231 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1232
1233         * doc/extend.texi (Attribute Syntax): Correct description of
1234         attributes in pointer declarators.
1235
1236 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1237
1238         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Undefine.
1239         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*,
1240         mips*-*-linux*, mips-wrs-vxworks): Don't use svr4.h.
1241
1242 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1243
1244         * config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1245         WCHAR_TYPE_SIZE): Define.
1246         * config.gcc (mep-*-*): Don't use svr4.h.
1247
1248 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1249
1250         * config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
1251         WCHAR_TYPE_SIZE): Define.
1252         * config/svr3.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1253         WCHAR_TYPE_SIZE): Don't define.
1254         * config.gcc (mcore-*-elf): Don't use svr4.h.
1255
1256 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1257
1258         * config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
1259         m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.
1260
1261 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1262
1263         * config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1264         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1265         * config.gcc (iq2000*-*-elf*): Don't use svr4.h.
1266
1267 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1268
1269         * config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.
1270
1271 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1272
1273         * config/pa/pa32-linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1274         * config.gcc (hppa*64*-*-linux*, hppa*-*-linux*): Don't use
1275         svr4.h.
1276
1277 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1278
1279         * config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1280         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1281         * config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1282         WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
1283         * config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
1284
1285 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1286
1287         * config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1288         WCHAR_TYPE_SIZE): Define.
1289         * config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.
1290
1291 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1292
1293         * config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
1294         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1295         * config.gcc (fr30-*-elf): Don't use svr4.h.
1296
1297 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1298
1299         * config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1300         * config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.
1301
1302 2010-12-09  Richard Guenther  <rguenther@suse.de>
1303
1304         PR middle-end/46844
1305         * gimple-fold.c (canonicalize_constructor_val): Canonicalize
1306         addresses.
1307
1308 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1309
1310         * config/i386/netware.h (TARGET_POSIX_IO): Define.
1311         * config/i386/nto.h (TARGET_POSIX_IO): Define.
1312         * config/ia64/hpux.h (TARGET_POSIX_IO): Define.
1313         * config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
1314         * config/openbsd.h (TARGET_POSIX_IO): Define.
1315         * config/rtems.h (TARGET_POSIX_IO): Define.
1316         * config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
1317         * config/sol2.h (TARGET_POSIX_IO): Define.
1318         * config/svr4.h (TARGET_POSIX_IO): Don't define.
1319         * config/vxworksae.h (TARGET_POSIX_IO): Define.
1320
1321 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1322
1323         * config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1324         * config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1325         Define.
1326         * config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1327         undefine.
1328         * config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1329         undefine.
1330         * config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1331         Don't undefine.
1332         * config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1333         Don't undefine.
1334         * config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1335         Don't undefine.
1336         * config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1337         * config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1338         Don't undefine.
1339         * config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1340         Don't undefine.
1341         * config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1342         Don't undefine.
1343         * config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1344         define.
1345         * config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1346         undefine.
1347
1348 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1349
1350         * config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
1351         non-GNU assembler.
1352         * config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT):
1353         Remove.
1354         * config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1355         * config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1356         * config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
1357         non-GNU assembler.
1358         * config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1359         * config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1360
1361 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1362
1363         * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
1364         zero is the first phi parameter.
1365
1366 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1367
1368         * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
1369         * ipa-prop.c (ipa_modify_call_arguments): Use it.
1370         * tree-sra.c (splice_param_accesses): Test that all accesses have the
1371         same alias reference type.
1372         (turn_representatives_into_adjustments): Set alias_ptr_type of the
1373         adjustment.
1374
1375 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1376
1377         PR middle-end/46734
1378         * tree-sra.c (splice_param_accesses): Check that there are not
1379         multiple ADDRESSABLE types.
1380
1381 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1382
1383         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
1384         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
1385         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
1386         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
1387         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
1388         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
1389         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
1390         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
1391         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
1392         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
1393         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
1394         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
1395         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
1396         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
1397         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
1398         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
1399         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
1400         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
1401         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
1402         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
1403         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
1404         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
1405         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
1406         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
1407         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
1408
1409 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1410
1411         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1412         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
1413         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not
1414         %{r*:}.
1415         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not
1416         %{r*:}.
1417         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
1418         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1419
1420 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1421
1422         * config/alpha/freebsd.h (LINK_SPEC): Don't use
1423         %{!dynamic-linker:}.
1424         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
1425         * config/arm/freebsd.h (LINK_SPEC): Likewise.
1426         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
1427         * config/bfin/linux.h (LINK_SPEC): Likewise.
1428         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
1429         * config/frv/linux.h (LINK_SPEC): Likewise.
1430         * config/i386/freebsd.h (LINK_SPEC): Likewise.
1431         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
1432         * config/i386/linux.h (LINK_SPEC): Likewise.
1433         * config/i386/linux64.h (LINK_SPEC): Likewise.
1434         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
1435         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
1436         * config/ia64/linux.h (LINK_SPEC): Likewise.
1437         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
1438         * config/m32r/linux.h (LINK_SPEC): Likewise.
1439         * config/m68k/linux.h (LINK_SPEC): Likewise.
1440         * config/microblaze/linux.h (LINK_SPEC): Likewise.
1441         * config/mips/linux.h (LINK_SPEC): Likewise.
1442         * config/mips/linux64.h (LINK_SPEC): Likewise.
1443         * config/mips/openbsd.h (LINK_SPEC): Likewise.
1444         * config/mn10300/linux.h (LINK_SPEC): Likewise.
1445         * config/netbsd-elf.h (LINK_SPEC): Likewise.
1446         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
1447         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
1448         LINK_OS_LINUX_SPEC64): Likewise.
1449         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
1450         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC):
1451         Likewise.
1452         * config/s390/linux.h (LINK_SPEC): Likewise.
1453         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
1454         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1455         * config/sparc/linux.h (LINK_SPEC): Likewise.
1456         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
1457         LINK_SPEC): Likewise.
1458         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
1459         * config/vax/linux.h (LINK_SPEC): Likewise.
1460         * config/xtensa/linux.h (LINK_SPEC): Likewise.
1461
1462 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1463
1464         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
1465         * config/frv/frv.h (ASM_SPEC): Likewise.
1466         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
1467         * config/i386/sol2.h (ASM_SPEC): Likewise.
1468         * config/m68k/linux.h (ASM_SPEC): Likewise.
1469         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
1470         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
1471         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
1472         * config/sol2.h (ASM_SPEC): Likewise.
1473         * config/sparc/linux.h (ASM_SPEC): Likewise.
1474         * config/sparc/linux64.h (ASM_SPEC): Likewise.
1475         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
1476         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
1477         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
1478
1479 2010-12-09  Richard Guenther  <rguenther@suse.de>
1480
1481         * reginfo.c (struct subregs_of_mode_node): Remove.
1482         (subregs_of_mode): Likewise.
1483         (som_hash): Likewise.
1484         (som_eq): Likewise.
1485         (invalid_mode_changes): New bitmap.
1486         (record_subregs_of_mode): Get subregs_of_mode argument.
1487         Fill in invalid_mode_changes bitmap.
1488         (find_subregs_of_mode): Get subregs_of_mode argument and pass
1489         it through.
1490         (init_subregs_of_mode): Adjust.
1491         (finish_subregs_of_mode): Likewise.
1492         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
1493
1494 2010-12-09  Richard Guenther  <rguenther@suse.de>
1495
1496         * ira.c (ira): Do not call finish_subregs_of_mode.
1497         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
1498
1499 2010-12-09  Richard Guenther  <rguenther@suse.de>
1500
1501         * rtl.h (invalid_mode_change_p): Adjust prototype.
1502         * reginfo.c (invalid_mode_change_p): Remove from argument.
1503         * ira-costs.c (print_allocno_costs): Adjust callers.
1504         (find_costs_and_classes): Likewise.
1505
1506 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
1507
1508         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
1509         locg and stocg even in comment.
1510         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
1511
1512         PR target/41082
1513         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
1514         instead of stve*x.
1515         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
1516         of operand 0.
1517         * config/rs6000/altivec.md (VI_scalar): New mode attr.
1518         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
1519         vector mode for operand 0, put operand 1 into UNSPEC.
1520
1521 2010-12-09  Yao Qi  <yao@codesourcery.com>
1522
1523         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
1524         PREFERRED_RENAME_CLASS.
1525
1526 2010-12-08  Ian Lance Taylor  <iant@google.com>
1527
1528         * doc/sourcebuild.texi (Front End): Remove reference to
1529         snapshot-README and snapshot-index.html.
1530
1531 2010-12-08  Ian Lance Taylor  <iant@google.com>
1532
1533         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
1534         to update_web_docs_svn.
1535         (Front End): Likewise.
1536
1537 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
1538
1539         gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
1540         x86_64-*-darwin* to with_cpu:-core2.
1541         gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
1542         with movd for darwin assembler.
1543         gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1544         (*vec_concatv2di_rex64_sse): Ditto.
1545
1546 2010-12-08  Richard Guenther  <rguenther@suse.de>
1547             Sebastian Pop  <sebastian.pop@amd.com>
1548
1549         PR tree-optimization/45230
1550         PR tree-optimization/45231
1551         PR tree-optimization/45370
1552         * sese.c (rename_uses): Returns a bool.  Call
1553         recompute_tree_invariant_for_addr_expr only on the RHS of a
1554         GIMPLE_ASSIGN.
1555         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
1556         rename_uses returns true.
1557         * tree-ssa-copy.c (replace_exp): Add a comment about calling
1558         fold_stmt_inplace after replace_exp.
1559
1560 2010-12-08  Mike Stump  <mikestump@comcast.net>
1561
1562         PR debug/46749
1563         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
1564         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1565         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
1566         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1567         * collect2.c (post_ld_pass): Add.
1568         (process_args): Add.
1569         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
1570         (main): Likewise.  Call process_args.
1571
1572 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
1573
1574         PR middle-end/46844
1575         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg
1576         parameter.
1577
1578 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
1579
1580         PR target/46631
1581         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
1582         into a 16-bit instruction.
1583
1584 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1585
1586         PR middle-end/42694
1587         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
1588         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
1589         instruction, but do optimize if y is 0.5 or 1./3. since that
1590         changes an expensive call into a cheaper one.
1591
1592 2010-12-08  Richard Guenther  <rguenther@suse.de>
1593
1594         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
1595         instead of a division to divide by BITS_PER_UNIT.
1596
1597 2010-12-08  Richard Guenther  <rguenther@suse.de>
1598
1599         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
1600         when checking is enabled.
1601
1602 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
1603
1604         PR target/43603
1605         * haifa-sched.c (sched_create_recovery_edges): Update
1606         dominator info.
1607         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
1608         after deleting an empty block.
1609         (tidy_control_flow): Also verify dominators.
1610         (sel_remove_bb): Update dominator info after removing a block.
1611         (sel_redirect_edge_and_branch_force): Assert that no unreachable
1612         blocks will be created. Update dominator info.
1613         (sel_redirect_edge_and_branch): Update dominator info when
1614         basic blocks do not become unreachable.
1615         (sel_remove_loop_preheader): Update dominator info.
1616
1617 2010-12-07  Richard Guenther  <rguenther@suse.de>
1618
1619         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1620         Reset alignment information.
1621         (bump_vector_ptr): Likewise.
1622
1623 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1624
1625         PR middle-end/46671
1626         PR target/46685
1627         * config/pa/pa.c (pa_function_section): New function.
1628         (TARGET_ASM_FUNCTION_SECTION): Define.
1629
1630 2010-12-07  Ian Lance Taylor  <iant@google.com>
1631             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1632
1633         PR bootstrap/46810
1634         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
1635         preprocessor.
1636         * configure: Rebuild.
1637
1638 2010-12-07  Paul Koning  <ni1d@arrl.net>
1639
1640         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
1641         values with sign rather than as unsigned.
1642
1643 2010-12-07  Paul Koning  <ni1d@arrl.net>
1644
1645         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
1646         (pdp11_function_section): New function.
1647
1648 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
1649
1650         * config/mcore/mcore.c Don't include assert.h.
1651         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
1652         * config/spu/spu.c: Don't include assert.h.
1653         (spu_sms_res_mii): Use gcc_assert.
1654
1655 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
1656
1657         PR tree-optimization/42327
1658         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
1659         instead of using integer_minus_one_node.
1660
1661 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
1662
1663         PR c++/45330
1664         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
1665         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
1666
1667 2010-12-07  Richard Guenther  <rguenther@suse.de>
1668
1669         PR tree-optimization/46832
1670         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
1671         that the call has a lhs.
1672
1673 2010-12-07  Yao Qi  <yao@codesourcery.com>
1674
1675         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
1676         * regrename.c (struct du_head): Add new element length.
1677         (sort_du_head, get_element, merge, merge_sort_comparison):
1678         New functions of merge sort implementation to du_head list.
1679         (regrename_optimize): Sort du_head linked list by length.
1680         Iterate registers in a preferred-register-first order.
1681         Move some code to ...
1682         (check_new_reg_p): here.  New function.
1683         (create_new_chain):  Initialize length.
1684         (scan_rtx_reg): Increase length for non-debug insns.
1685         * target.def: New hook preferred_rename_class.
1686         * targhook.c (default_preferred_rename_class): New.
1687         * targhook.h: Declare it.
1688         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
1689         * doc/tm.texi: Regenerate.
1690
1691 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
1692
1693         PR debug/46799
1694         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
1695         instead of BUILTINS_LOCATION.
1696         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
1697         BUILTINS_LOCATION.
1698         (create_parallel_loop): Add LOC argument, use it for OMP clauses
1699         and GIMPLE_*OMP* statements.
1700         (gen_parallel_loop): Determine locus for the parallel loop, pass it
1701         to create_loop_fn and create_parallel_loop.
1702         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
1703         set_curr_insn_source_location (UNKNOWN_LOCATION).
1704
1705 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
1706             Richard Guenther  <rguenther@suse.de>
1707
1708         PR target/46737
1709         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
1710         (bfin_reorder_loops): Change type of index to intptr_t.
1711
1712 2010-12-07  Richard Guenther  <rguenther@suse.de>
1713
1714         PR tree-optimization/46726
1715         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
1716
1717 2010-12-07  Richard Guenther  <rguenther@suse.de>
1718
1719         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
1720         virtual operands.
1721
1722 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1723
1724         * c-parser.c (c_parser_typeof_specifier): Removed special
1725         treatment of objc_volatilized attribute for Objective-C.
1726
1727 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
1728
1729         * ira.c (update_equiv_regs): Prohibit move insns if
1730         pressure-sensitive scheduling was done.
1731
1732 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1733
1734         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
1735         of c_process_expr_stmt() for the iterating and collection
1736         expressions of an Objective-C fast enumeration loop.
1737
1738 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
1739
1740         PR debug/45997
1741         * dwarf2out.c (modified_type_die): If both is_const_type and
1742         is_volatile_type is set, start with DW_TAG_const_type or
1743         DW_TAG_volatile_type depending on where we get qualified type
1744         in the recursive call.
1745
1746         PR target/43897
1747         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
1748         as a store into that register.
1749
1750         PR tree-optimization/46528
1751         PR debug/46338
1752         * profile.c (branch_prob): Make sure last is never set to a debug
1753         stmt.
1754
1755         PR debug/46771
1756         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
1757         on DEBUG_INSNs.
1758
1759         PR rtl-optimization/46777
1760         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
1761         also barrier after tablejump.
1762
1763 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1764             Richard Henderson  <rth@redhat.com>
1765
1766         PR target/46740
1767         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
1768
1769 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
1770
1771         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
1772         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
1773
1774 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1775
1776         PR target/46735
1777         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
1778         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
1779         (int12_operand, int_2word_operand, uint16_operand): Likewise.
1780         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
1781         (uint5_operand, uint4_operand): Likewise.
1782         * config/frv/frv.h (IN_RANGE_P): Delete.
1783         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
1784         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
1785         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
1786         (CONST_OK_FOR_P): Likewise.
1787         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
1788         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
1789         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
1790         (*movsicc_internal2_float, casesi): Likewise.
1791         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
1792         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
1793         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
1794         (frv_split_cond_move, frv_rtx_costs): Likewise.
1795
1796         PR target/46739
1797         * config/mmix/mmix.c (mmix_intval): Split shift count.
1798
1799 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1800
1801         * config/i386/i386.c (m_COREI7): New.
1802         (initial_ix86_tune_features): Turn on
1803         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
1804         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
1805
1806 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1807
1808         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
1809
1810         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1811         Sandy Bridge.
1812
1813         * config/i386/i386.c (override_options): Handle "corei7-avx".
1814
1815         * doc/invoke.texi: Document corei7-avx.
1816
1817 2010-12-06  Richard Guenther  <rguenther@suse.de>
1818
1819         PR tree-optimization/46806
1820         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
1821         coalesce different types.
1822
1823 2010-12-06  Richard Guenther  <rguenther@suse.de>
1824
1825         PR tree-optimization/46785
1826         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
1827         call statements as operand definition.
1828
1829 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
1830
1831         * doc/tm.texi.in: Fix typo.
1832         * doc/tm.texi: Regenerate.
1833
1834 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1835
1836         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
1837         last change.
1838
1839 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1840
1841         * c-family/c-common.h: Removed the declarations of all the objc_
1842         callbacks, and moved them into c-objc.h.  Removed
1843         objc_ivar_visibility_kind and moved it into c-objc.h.
1844         * c-family/c-objc.h: New file.
1845         * c-family/c-common.c: Include c-objc.h.
1846         * c-family/c-format.c: Same change.
1847         * c-family/stub-objc.c: Same change.
1848         * c-decl.c: Include c-family/c-objc.h.
1849         * c-parser.c: Same change.
1850         * c-typeck.c: Same change.
1851         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
1852         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
1853         (c-parser.o): same change.
1854         (c-typeck.o): Same change.
1855         (c-family/c-format.o): Same change.
1856         (c-family/stub-objc.o): Same change.
1857         (c-family/c-common.o): Same change.
1858         (PLUGIN_HEADERS): Added c-family/c-objc.h.
1859
1860 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1861
1862         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
1863         --with-dwarf2 option.
1864
1865 2010-12-03  Jan Hubicka  <jh@suse.cz>
1866
1867         * lto-streamer-in.c (input_cfg): Fix pasto.
1868
1869 2010-12-03  Jan Hubicka  <jh@suse.cz>
1870
1871         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
1872         and functions with user asm defined names.
1873         (varpool_externally_visible_p): Do not localize vars with user
1874         asm defined names.
1875
1876 2010-12-03  Jan Hubicka  <jh@suse.cz>
1877
1878         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
1879         to prevent mangling with lto frontend.
1880
1881 2010-12-03  Jan Hubicka  <jh@suse.cz>
1882
1883         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
1884         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
1885
1886 2010-12-03  Jan Hubicka  <jh@suse.cz>
1887
1888         PR tree-optimization/46760
1889         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
1890         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
1891         * lto-cgraph.c (lto_output_edge): Fix assert.
1892         (lto_output_node): Output count_materialization_scale.
1893         (output_profile_summary): Output only runs and sum_max.
1894         (input_node): Input count_materialization_scale.
1895         (input_profile_summary): Read data into file specific gcov summary.
1896         (merge_profile_summaries): New function.
1897         (input_cgraph): Update call of input_profile_summary;
1898         call merge_profile_summaries.
1899         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
1900         rescale counts at read in.
1901         (intput_bb): Likewise.
1902         (input_function): Update call of input_bb.
1903         (lto_read_body): Update call of input_cfg.
1904         * lto-streamer.h: Inlclude gcov-io.h
1905         (lto_file_decl_data): Add gcov_ctr_summary.
1906
1907 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
1908
1909         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
1910         (Cond Exec Macros): ... to this.
1911         * doc/tm.texi: Regenerate.
1912
1913 2010-12-03  Jason Merrill  <jason@redhat.com>
1914
1915         PR debug/46123
1916         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
1917         a declaration DIE.
1918
1919 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
1920
1921         * config/arm/arm.c (arm_legitimate_index_p): Split
1922         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
1923         slightly larger constants in the latter case.
1924         (thumb2_legitimate_index_p): Likewise.
1925
1926 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
1927
1928         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
1929         * gcc.c (cc1_options): Add %{Qy:}.
1930
1931 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
1932
1933         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
1934         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
1935         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
1936
1937 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
1938
1939         PR rtl-optimization/45354
1940         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
1941         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
1942         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
1943         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
1944
1945 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1946
1947         * basic-block.h (struct edge_prediction): Remove forward
1948         declaration.
1949         * tree-flow.h (struct edge_prediction): Move from here...
1950         * predict.c (struct edge_prediction): ...to here.
1951         * cselib.h (struct elt_list): Move from here...
1952         * cselib.c (struct elt_list): ...to here.
1953
1954 2010-12-02  Ian Lance Taylor  <iant@google.com>
1955
1956         * gcc.c (default_compilers): Add entry for ".go".
1957         * common.opt: Add -static-libgo as a driver option.
1958         * doc/install.texi (Configuration): Mention libgo as an option for
1959         --enable-shared.  Mention go as an option for --enable-languages.
1960         * doc/invoke.texi (Overall Options): Mention .go as a file name
1961         suffix.  Mention go as a -x option.
1962         * doc/frontends.texi (G++ and GCC): Mention Go as a supported
1963         language.
1964         * doc/sourcebuild.texi (Top Level): Mention libgo.
1965         * doc/standards.texi (Standards): Add section on Go language.
1966         Move references for other languages into their own section.
1967         * doc/contrib.texi (Contributors): Mention that I contributed the
1968         Go frontend.
1969
1970 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1971
1972         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
1973         (const_call_expr_arg_iterator_d): Likewise.
1974         (expanded_location): Likewise.
1975         * c-tree.h (struct c_arg_tag_d): Likewise.
1976         * dwarf2out.c (struct cfa_loc): Likewise.
1977         (struct skeleton_chain_struct): Likewise.
1978         * except.c (struct ttypes_filter): Likewise.
1979         * cselib.h (struct cselib_val_struct): Likewise.
1980         (elt_loc_list): Likewise.
1981         (elt_list): Likewise.
1982         * varasm.c (struct addr_const): Likewise.
1983         * tree-flow.h (struct edge_prediction): Likewise.
1984         (struct int_tree_map): Likewise.
1985         (struct _edge_var_map): Likewise.
1986
1987 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1988
1989         PR target/46768
1990         * config/i386/i386.c (initial_ix86_tune_features): Turn on
1991         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
1992
1993 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1994
1995         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
1996
1997 2010-12-02  Ian Lance Taylor  <iant@google.com>
1998
1999         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
2000         header files unordered_map, tr1/unordered_map, and ext/hash_map.
2001         * configure, config.in: Rebuild.
2002
2003 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
2004
2005         PR target/46685
2006         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
2007         (sparc_expand_move): Call it to decide whether to emit the special
2008         mov{si,di}_pic_label_ref patterns.
2009         (sparc_legitimize_pic_address): Call it to decide whether to emit
2010         the regular PIC sequence for labels.  Fix long line.
2011         (sparc_file_end): Set is_thunk for the PIC helper.
2012
2013 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
2014
2015         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
2016         for a non-shared type.
2017
2018 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
2019
2020         PR middle-end/45297
2021         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
2022         with MEM_REFs as POINTER_PLUS_EXPR.
2023
2024 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2025
2026         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
2027         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
2028         mentioning /lib/elf.
2029
2030 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2031
2032         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
2033         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
2034         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
2035         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
2036         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
2037         * config/sol2.h (LINK_SPEC): Remove %{b}.
2038         * config/svr4.h (LINK_SPEC): Remove %{b}.
2039
2040 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2041
2042         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
2043         * config/i386/linux.h (LINK_SPEC): Cut long comment.
2044         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
2045         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
2046         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
2047         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
2048         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2049         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
2050         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2051         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and
2052         %{v:%{!V:-V}}.
2053
2054 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2055
2056         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
2057         -ftraditional.
2058
2059 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2060
2061         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
2062         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
2063         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
2064         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
2065         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
2066         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
2067         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
2068         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
2069         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
2070         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
2071         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
2072         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
2073         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
2074         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
2075         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
2076         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
2077         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
2078         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
2079
2080 2010-12-02  Paul Koning  <ni1d@arrl.net>
2081
2082         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
2083         opcodes if CC_NO_OVERFLOW is set.
2084         (notice_update_cc_on_set): Correct setting of CC0 as a side
2085         effect; set CC_NO_OVERFLOW for cases where C flag is not
2086         meaningful.
2087
2088 2010-12-02  Ian Lance Taylor  <iant@google.com>
2089
2090         * doc/install.texi (Configuration): Update default for
2091         --with-boot-ldflags.
2092
2093 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
2094
2095         PR c/45062
2096         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
2097         !funcdef_flag.
2098
2099 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
2100
2101         PR tree-optimization/45199
2102         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
2103         (stores_zero_from_loop): Call
2104         mem_write_stride_of_same_size_as_unit_type_p.
2105         * tree-data-ref.h (stride_of_unit_type_p): New.
2106         * tree-loop-distribution.c (generate_memset_zero): Simplified.
2107         Call stride_of_unit_type_p.
2108         (build_rdg_partition_for_component): Do not call
2109         rdg_flag_similar_memory_accesses when
2110         flag_tree_loop_distribute_patterns is set.
2111
2112 2010-12-02  Richard Guenther  <rguenther@suse.de>
2113
2114         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
2115         sign-changing conversions for induction detection.
2116
2117 2010-12-02  Richard Guenther  <rguenther@suse.de>
2118
2119         PR tree-optimization/46723
2120         * tree-vect-loop.c (get_initial_def_for_induction): Strip
2121         conversions from the induction evolution and apply it to
2122         the result instead.
2123         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
2124         assigns for induction defs.
2125
2126 2010-12-02  Richard Guenther  <rguenther@suse.de>
2127
2128         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
2129         the case we need to split the edge and not the block.
2130
2131 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
2132
2133         DFA model for Core 2 and Core i7 scheduling.
2134
2135         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
2136         * config/i386/i386.c (ix86_option_override_internal): Update entries
2137         for Core 2 and Core i7.
2138         (ix86_issue_rate): Set issue rate to 3 [be realistic].
2139         * config/i386/i386.md: Include "core2.md".
2140         (define_attr cpu): Add "corei7".
2141
2142 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
2143
2144         Define tuning for Core 2 and Core i7.
2145
2146         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
2147         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
2148         (m_CORE2): Replace with m_CORE2_{32,64}.
2149         (m_CORE2I7{,_32,_64}): New macros.
2150         (m_GENERIC32, m_GENERIC64): Update.
2151         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
2152         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
2153         set m_CORE2I7_64 iff m_GENERIC64.
2154         (processor_target_table): Use generic costs for Core 2 and Core i7.
2155         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
2156         (ix86_issue_rate): Remove entry for Core 2.
2157         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
2158         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
2159         (TARGET_CORE2): Update.
2160         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
2161         (PROCESSOR_CORE2): Remove.
2162
2163 2010-12-02  Richard Guenther  <rguenther@suse.de>
2164
2165         * lto-streamer.h (LTO_major_version): Bump to 2.
2166
2167 2010-12-02  Richard Guenther  <rguenther@suse.de>
2168
2169         PR lto/44871
2170         * gimple.c (canonical_type_hash_cache): New hashtable.
2171         (gimple_type_hash): Make a wrapper around ...
2172         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
2173         (gimple_canonical_type_hash): Likewise.
2174         (gtc_visit): Take a gtc_mode argument.
2175         (gimple_types_compatible_p_1): Likewise. Do not compare struct
2176         tag names or field names when computing canonical types.
2177         (gimple_types_compatible_p): Adjust.
2178         (visit): Take a gtc_mode argument.
2179         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
2180         names or field names when computing hashes of canonical types.
2181         (gimple_register_canonical_type): Use gimple_canonical_type_hash
2182         for the hash.
2183         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
2184         (free_gimple_type_tables): Free canonical_type_hash_cache.
2185
2186 2010-12-02  Richard Guenther  <rguenther@suse.de>
2187             Ira Rosen  <irar@il.ibm.com>
2188
2189         PR tree-optimization/46663
2190         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
2191         FUNCTION_DECL exists and that it's a builtin.
2192
2193 2010-12-02  Jie Zhang  <jie@codesourcery.com>
2194
2195         PR middle-end/46674
2196         * varasm.c (compute_visible_aliases): Handle user set
2197         assembler name.
2198
2199 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2200
2201         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
2202         thinko regarding setting -mno-<xxx> debug switches.
2203         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
2204
2205 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2206
2207         * intl.c: Don't include tm.h.
2208         * Makefile.in (intl.o): Don't depend on $(TM_H).
2209
2210 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2211
2212         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
2213         unused warning.
2214         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2215
2216 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2217
2218         * graphite-sese-to-poly.c (analyze_drs): Removed.
2219         (build_scop_drs): Do not call analyze_drs.
2220         (analyze_drs_in_stmts): New.
2221         (insert_stmts): New.
2222         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
2223         (insert_out_of_ssa_copy_on_edge): Same.
2224         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
2225         (rewrite_phi_out_of_ssa): Same.
2226         (rewrite_cross_bb_scalar_dependence): Same.
2227         (split_reduction_stmt): Move data references in the new basic blocks.
2228         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
2229
2230 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2231
2232         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
2233
2234 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2235
2236         PR middle-end/45297
2237         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
2238         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
2239         * graphite-poly.h (new_poly_bb): Update declaration.
2240         (gbb_from_bb): Moved here...
2241         (pbb_from_bb): New.
2242         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
2243         Removed.
2244         (graphite_stmt_p): Removed.
2245         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
2246         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
2247         new_poly_bb.
2248         (build_scop_bbs_1): Do not pass in sbitmap reductions.
2249         (build_scop_bbs): Same.
2250         (gbb_from_bb): ... from here.
2251         (add_conditions_to_constraints): Moved up.
2252         (analyze_drs): New.
2253         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
2254         not contain data references.
2255         (new_pbb_from_pbb): New.
2256         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
2257         block is split.
2258         (rewrite_close_phi_out_of_ssa): Update call to
2259         insert_out_of_ssa_copy_on_edge.
2260         (rewrite_reductions_out_of_ssa): Now static.
2261         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2262         (split_pbb): New.
2263         (split_reduction_stmt): Call split_pbb.
2264         (translate_scalar_reduction_to_array): Pass in the scop, do not
2265         pass in the sbitmap reductions.
2266         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
2267         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
2268         (rewrite_commutative_reductions_out_of_ssa): Same.
2269         (build_poly_scop): Call build_scop_bbs,
2270         rewrite_commutative_reductions_out_of_ssa,
2271         rewrite_reductions_out_of_ssa, and
2272         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
2273         before scop_to_lst.
2274         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
2275         Removed declaration.
2276         (rewrite_reductions_out_of_ssa): Same.
2277         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2278         (build_scop_bbs): Same.
2279         * graphite.c (graphite_transform_loops): Do not initialize reductions.
2280         Do not call build_scop_bbs,
2281         rewrite_commutative_reductions_out_of_ssa,
2282         rewrite_reductions_out_of_ssa, and
2283         rewrite_cross_bb_scalar_deps_out_of_ssa.
2284         * sese.h (struct gimple_bb): Add field pbb.
2285         (GBB_PBB): New.
2286
2287 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2288
2289         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
2290         New.
2291         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
2292         handle_scalar_deps_crossing_scop_limits.
2293         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
2294         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
2295
2296 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2297
2298         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
2299         when replacing a constant in an ADDR_EXPR.
2300
2301 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2302
2303         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
2304         for the stride.
2305         (lst_do_strip_mine): Same.
2306         (scop_do_strip_mine): Same.
2307         * graphite-poly.c (apply_poly_transforms): Update call to
2308         scop_do_strip_mine.
2309         * graphite-poly.h (scop_do_strip_mine): Update declaration.
2310
2311 2010-12-01  Jan Hubicka  <jh@suse.cz>
2312
2313         * tree.c (build_common_builtin_nodes): Do not initialize
2314         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
2315         * builtins.c (expand_builtin_profile_func): Remove.
2316         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
2317         BUILT_IN_PROFILE_FUNC_EXIT.
2318         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
2319         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
2320         * gimplify.c (gimplify_function_tree): Reorganize code calling
2321         profiling functions.
2322
2323 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2324
2325         * opts.c: Expand comment on tm.h include.
2326
2327 2010-12-01  Yao Qi  <yao@codesourcery.com>
2328
2329         * config/arm/predicates.md ("vfp_register_operand"): Return true for
2330         VFP_D0_D7_REGS classes.
2331
2332 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2333
2334         * common.opt (flag_stack_check): New Variable entry.
2335         (fcompare-debug-second): Use Var.
2336         * flags.h (flag_compare_debug, flag_stack_check): Remove.
2337         * opts.c (flag_compare_debug): Remove.
2338         (common_handle_option): Don't handle OPT_fcompare_debug_second.
2339         Set opts->x_flag_stack_check for OPT_fstack_check_.
2340         * toplev.c (flag_stack_check): Remove.
2341
2342 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2343
2344         * common.opt (main_input_filename, main_input_basename,
2345         main_input_baselength): New Variable entries.  From toplev.c.
2346         * final.c (output_quoted_string): Move from toplev.c.
2347         * output.h (output_quoted_string): Move from toplev.h.
2348         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
2349         access main_input_filename, main_input_baselength and
2350         main_input_basename.
2351         * targhooks.c: Include intl.h and opts.h.
2352         (option_affects_pch_p, default_get_pch_validity): Move from
2353         toplev.c.
2354         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
2355         Move from toplev.h.
2356         * toplev.c (main_input_filename, main_input_basename,
2357         main_input_baselength): Move to common.opt.
2358         (output_quoted_string): Move to final.c.
2359         (warn_deprecated_use): Move to tree.c.
2360         (option_affects_pch_p, default_get_pch_validity,
2361         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
2362         * toplev.h (skip_leading_substring): Move to tree-dump.c.
2363         (warn_deprecated_use): Move to tree.h.
2364         (output_quoted_string): Move to output.h.
2365         (main_input_filename, main_input_basename, main_input_baselength):
2366         Move to common.opt.
2367         (default_get_pch_validity, default_pch_valid_p): Move to
2368         targhooks.c.
2369         * tree-dump.c (skip_leading_substring): Move from toplev.h.
2370         * tree.c (warn_deprecated_use): Move from toplev.c.
2371         * tree.h (warn_deprecated_use): Move from toplev.h.
2372         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
2373         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
2374         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
2375         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
2376         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
2377         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
2378         config/mcore/mcore.c, config/mep/mep.c,
2379         config/microblaze/microblaze.c, config/mips/mips.c,
2380         config/mmix/mmix.c, config/mn10300/mn10300.c,
2381         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
2382         config/picochip/picochip.c, config/s390/s390.c,
2383         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
2384         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
2385         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
2386         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
2387         varasm.c, xcoffout.c: Don't include toplev.h.
2388         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
2389         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
2390         varasm.o, xcoffout.o): Update dependencies.
2391         * config/arm/t-arm (arm.o): Update dependencies.
2392         * config/spu/t-spu-elf (spu.o): Update dependencies.
2393
2394 2010-12-01  Richard Guenther  <rguenther@suse.de>
2395
2396         PR tree-optimization/46730
2397         * value-prof.c (gimple_ic): Always generate a separate merge BB.
2398
2399 2010-11-30  Ian Lance Taylor  <iant@google.com>
2400
2401         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
2402         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
2403         * config/i386/linux64.h (ASM_SPEC): Likewise.
2404         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
2405         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
2406         * config/i386/vxworks.h (ASM_SPEC): Likewise.
2407         * config/i386/x86-64.h (ASM_SPEC): Likewise.
2408         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
2409         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
2410
2411 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2412
2413         * c-decl.c (finish_function): Call objc_finish_function in
2414         Objective-C.
2415         * c-typeck.c (convert_for_assignment): Do not call
2416         objc_type_quals_match().
2417
2418 2010-11-30  Richard Guenther  <rguenther@suse.de>
2419
2420         PR tree-optimization/46722
2421         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
2422         operands as arguments.
2423         (execute_optimize_widening_mul): Also handle power of two as
2424         multiplication.
2425
2426 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2427
2428         PR middle-end/46709
2429         * cgraphunit.c (process_function_and_variable_attributes): Fix
2430         cut'n'pasteo.
2431
2432 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2433
2434         * hwint.c:  New.  Extracted from toplev.c.
2435         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2436         Move from toplev.h.
2437         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2438         Move to hwint.c.
2439         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2440         Move to hwint.h.
2441         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
2442         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
2443         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
2444         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
2445         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
2446         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
2447         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
2448         tree-vrp.c: Don't include toplev.h.
2449         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
2450         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
2451         toplev.h in generated output.
2452         * Makefile.in (OBJS-common): Add hwint.o.
2453         Dependencies for above files changed to remove toplev.h.
2454         (hwint.o): New.
2455         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
2456         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
2457         toplev.h.
2458         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
2459         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
2460
2461 2010-11-30  Richard Guenther  <rguenther@suse.de>
2462
2463         PR tree-optimization/46717
2464         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
2465         call.  Manually create EH edges for the direct call and update
2466         target PHI nodes.
2467
2468 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2469
2470         * diagnostic-core.h: Include bversion.h.
2471         * toplev.h: Don't include input.h or bversion.h.
2472         (parse_optimize_options): Don't declare here.
2473         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
2474         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
2475         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
2476         config/host-darwin.c, config/i386/host-cygwin.c,
2477         config/i386/host-mingw32.c, config/i386/msformat-c.c,
2478         config/i386/netware.c, config/i386/nwld.c,
2479         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
2480         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
2481         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
2482         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
2483         config/score/score3.c, config/score/score7.c,
2484         config/sh/symbian-base.c, config/sh/symbian-c.c,
2485         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
2486         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
2487         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
2488         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
2489         graphite-blocking.c, graphite-clast-to-gimple.c,
2490         graphite-dependences.c, graphite-flattening.c,
2491         graphite-interchange.c, graphite-poly.c,
2492         graphite-scop-detection.c, graphite.c, haifa-sched.c,
2493         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
2494         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
2495         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
2496         lto-opts.c, lto-section-in.c, lto-section-out.c,
2497         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
2498         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
2499         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
2500         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
2501         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
2502         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
2503         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
2504         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
2505         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
2506         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
2507         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
2508         include toplev.h.
2509         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
2510         toplev.h.  Dependencies for above files and c-family files changed
2511         to remove $(TOPLEV_H) or toplev.h.
2512         (C_TREE_H): Don't include $(TOPLEV_H).
2513         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
2514         bversion.h.
2515         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
2516         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
2517         config/t-darwin, config/t-sol2,
2518         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
2519         Dependencies for above files changed to remove $(TOPLEV_H) or
2520         toplev.h.
2521
2522 2010-11-30  Richard Guenther  <rguenther@suse.de>
2523
2524         PR lto/44986
2525         * gcc.c (main): Use the first input with a compiler as infile
2526         for link spec processing.
2527
2528 2010-11-30  Richard Guenther  <rguenther@suse.de>
2529
2530         PR lto/45949
2531         * cgraphunit.c (ipa_passes): Stop after errors from
2532         small IPA passes.
2533
2534 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
2535
2536         * gcc-plugin.h: Include coretypes.h.
2537         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
2538
2539 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2540
2541         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
2542         * ggc-none.c (ggc_internal_alloc_zone_stat)
2543         (ggc_internal_cleared_alloc_zone_stat): New.
2544
2545 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2546
2547         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
2548         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
2549         (rs6000_emit_prologue): Don't set PIC register if
2550         TARGET_SINGLE_PIC_BASE.
2551         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
2552         * doc/invoke.texi (msingle-pic-base): Document.
2553
2554 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
2555
2556         PR driver/46712
2557         * exec-tool.in (id): New.
2558         Check and export LT_RCU_$id instead of LT_RCU.
2559
2560 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
2561
2562         PR tree-optimization/46675
2563         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
2564         in offset calculation.
2565
2566 2010-11-29  Jan Hubicka  <jh@suse.cz>
2567
2568         * collect2.c (main): Do not imply verbose output with
2569         LTO and linker plugin.
2570
2571 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2572
2573         * dwarf2out.c (print_die): Print the address of the current DIE or
2574         of any DIE referenced by the current one.
2575
2576 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2577
2578         PR debug/46101
2579         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
2580         function.
2581         (scope_die_for, gen_type_die_for_member): Replace uses of
2582         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
2583
2584 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2585
2586         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
2587         (darwin_asm_declare_object_name): Correct spelling.
2588         (darwin_output_aligned_bss): Likewise.
2589
2590 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2591             Mike Stump  <mrs@gcc.gnu.org>
2592
2593         PR target/26427
2594         PR target/33120
2595         PR testsuite/35710
2596         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
2597         (ASM_OUTPUT_LOCAL): Likewise.
2598         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
2599         (darwin_output_aligned_bss): Likewise.
2600         (darwin_asm_output_aligned_decl_local): Likewise.
2601         (darwin_asm_output_aligned_decl_common): Likewise.
2602         (darwin_use_anchors_for_symbol_p): Likewise.
2603         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
2604         (TARGET_ASM_OUTPUT_ANCHOR): Define.
2605         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
2606         (DARWIN_SECTION_ANCHORS): Set to 1.
2607         * config/darwin.c (emit_aligned_common): New var.
2608         (darwin_init_sections): Check that the Darwin private zero-size section
2609         marker is in range.
2610         (darwin_text_section): Check for zero-sized objects.
2611         (darwin_mergeable_string_section): Likewise.
2612         (darwin_mergeable_constant_section): Likewise.
2613         (machopic_select_section): Adjust to check for zero-sized objects.
2614         Assert that OBJC meta data are non-zero sized.
2615         (darwin_asm_declare_object_name): New.
2616         (darwin_asm_declare_constant_name): Adjust for zero-sized
2617         object sections.
2618         (BYTES_ZFILL): Define.
2619         (darwin_emit_weak_or_comdat): New.
2620         (darwin_emit_local_bss): New.
2621         (darwin_emit_common): New.
2622         (darwin_output_aligned_bss): New.
2623         (darwin_asm_output_aligned_decl_common): New.
2624         (darwin_asm_output_aligned_decl_local): New.
2625         (darwin_file_end): Disable subsections_via_symbols when section
2626         anchoring is active.
2627         (darwin_asm_output_anchor): Re-enable.
2628         (darwin_use_anchors_for_symbol_p): New.
2629         (darwin_override_options): Check for versions that can emit
2630         aligned common.  Update usage of flags to current.
2631         * config/darwin-sections.def: Update comments and flags for
2632         non-anchor sections.  zobj_const_section, zobj_data_section,
2633         zobj_bss_section, zobj_const_data_section: New.
2634         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
2635         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
2636         (L2_MAX_OFILE_ALIGNMENT): Define.
2637         (ASM_OUTPUT_ALIGNED_BSS): Define.
2638         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2639         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2640         (SECTION_NO_ANCHOR): Define.
2641         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
2642         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
2643
2644 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
2645
2646         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
2647         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
2648         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
2649         Conditionally define.
2650         (GET_ENVIRONMENT): Poison.
2651         * configure.ac: Don't test for mincore.
2652         * configure: Regenerate.
2653         * config.in: Regenerate.
2654         * collect2-aix.c: Don't include <sys/mman.h>.
2655         * collect2.c: Don't include <signal.h>.
2656         (SIGCHLD): Don't define.
2657         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
2658         * config/alpha/alpha.c: Include "splay-tree.h" instead of
2659         <splay-tree.h>.
2660         * config/arm/arm.c (arm_target_help): Use getenv instead of
2661         GET_ENVIRONMENT.
2662         * config/avr/driver-avr.c: Don't include <stdlib.h>.
2663         * config/frv/frv.c: Don't include <ctype.h>.
2664         * config/host-darwin.c: Don't include <sys/mman.h>.
2665         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
2666         (MAP_FAILED): Don't define.
2667         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
2668         * config/host-solaris.c: Don't include <sys/mman.h>.
2669         * config/i386/cygming.h: Don't include <stdio.h>.
2670         * config/i386/driver-i386.c: Don't include <stdlib.h>.
2671         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
2672         * config/iq2000/iq2000.c: Don't include <signal.h>.
2673         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
2674         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
2675         * config/mep/mep-pragma.c: Don't include <stdio.h>.
2676         * config/microblaze/microblaze.c: Don't include <signal.h>.
2677         * config/mips/mips.c: Don't include <signal.h>.
2678         * config/rs6000/host-darwin.c: Don't include <signal.h>.
2679         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
2680         * defaults.h (GET_ENVIRONMENT): Don't define.
2681         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
2682         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
2683         (SIGCHLD, MAP_FAILED, kill): Don't define.
2684         (process_command): Use getenv instead of GET_ENVIRONMENT.
2685         * genhooks.c: Don't include <string.h>.
2686         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
2687         <sys/types.h>.
2688         (MAP_FAILED): Don't define.
2689         * ggc-page.c Don't include <sys/mman.h>.
2690         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2691         * ggc-zone.c: Don't include <sys/mman.h>.
2692         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2693         * graph.c: Include "config.h" instead of <config.h>.
2694         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
2695         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
2696         (SIGCHLD, kill): Don't define.
2697         * mips-tfile.c: Don't include <signal.h>.
2698         * opts.c: Don't include <signal.h> or <sys/resource.h>.
2699         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
2700         * passes.c: Don't include <signal.h>, <sys/resource.h> or
2701         <sys/times.h>.
2702         * sparseset.h: Don't include <assert.h>.
2703         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
2704         * tlink.c: Don't include "libiberty.h".
2705         * toplev.c: Don't include <signal.h> or <sys/times.h>.
2706         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
2707         * tree-switch-conversion.c: Don't include <signal.h>.
2708         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
2709
2710 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2711
2712         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
2713         c_parser_objc_try_catch_finally_statement for consistency with the
2714         C++ parser.  Parse @catch(...) and pass NULL_TREE to
2715         objc_begin_catch_clause() in that case.  Improved error recovery.
2716         Reorganized code to be almost identical to
2717         cp_parser_objc_try_catch_finally_statement.
2718
2719 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
2720
2721         PR tree-optimization/46621
2722         * gimple.h: Don't include tm.h or hard-reg-set.h .
2723         * Makefile.in (GIMPLE_H): Remove $(TM_H).
2724
2725         PR bootstrap/44756
2726         * cppbuiltin.c: Include target.h .
2727         (define_builtin_macros_for_type_sizes):
2728         Use targetm.float_words_big_endian.
2729
2730 2010-11-27  Jan Hubicka  <jh@suse.cz>
2731
2732         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
2733         and output cold_text_section_label.
2734         (dwarf2out_init): Don't do that there.
2735         (dwarf2out_finish): Handle cold section end label only if cold
2736         section was used.
2737
2738 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2739
2740         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
2741         VLA variables.
2742
2743 2010-11-27  Richard Guenther  <rguenther@suse.de>
2744
2745         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
2746         (gimple_assign_ssa_name_copy_p): Likewise.
2747         (gimple_assign_unary_nop_p): Use is_gimple_assign.
2748         (is_gimple_cast): Remove.
2749         (gimple_assign_single_p): Move ...
2750         * gimple.h (gimple_assign_single_p): ... here.
2751         (is_gimple_cast): Remove.
2752         (gimple_assign_rhs_code): Simplify.
2753         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
2754         instead of is_gimple_cast.
2755         * ipa-type-escape.c (look_for_casts): Likewise.
2756
2757 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
2758
2759         * doc/options.texi (Enum, EnumValue): Document new record types.
2760         (Enum): Document new option flag.
2761         * opt-functions.awk
2762         * optc-gen.awk: Handle enumerated option arguments.
2763         * opth-gen.awk: Handle enumerated option arguments.
2764         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
2765         enum_value_to_arg): New.
2766         (decode_cmdline_option): Handle enumerated arguments.
2767         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
2768         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
2769         * opts.c (print_filtered_help, print_specific_help): Take
2770         lang_mask arguments.
2771         (print_filtered_help): Handle printing values of enumerated
2772         options.  Print possible arguments for enumerated options.
2773         (print_specific_help): Update call to print_filtered_help.
2774         (common_handle_option): Update calls to print_specific_help.  Use
2775         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
2776         handle OPT_ffp_contract_, OPT_fexcess_precision_,
2777         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
2778         OPT_fira_region_ here.
2779         * opts.h (enum cl_var_type): Add CLVC_ENUM.
2780         (struct cl_option): Add var_enum.
2781         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
2782         struct cl_enum, cl_enums, cl_enums_count): New.
2783         (CL_ERR_ENUM_ARG): Define.
2784         (CL_ERR_NEGATIVE): Update value.
2785         (enum_value_to_arg): Declare.
2786         * common.opt (flag_ira_algorithm, flag_ira_region,
2787         flag_fp_contract_mode, flag_excess_precision_cmdline,
2788         default_visibility, flag_tls_default): Remove Variable entries.
2789         (help_enum_printed): New Variable.
2790         (fdiagnostics-show-location=): Use Enum.  Add associated
2791         SourceInclude, Enum and EnumValue entries.
2792         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
2793         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
2794         associated Enum and EnumValue entries.
2795
2796 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
2797
2798         PR target/46623
2799         * config/microblaze/microblaze.c (microblaze_block_move_straight):
2800         Use XALLOCAVEC.
2801         (microblaze_option_override): Don't use C++ style comments.
2802         (save_restore_insns): Remove unused variable base_offset.
2803         (microblaze_expand_prologue): Remove unused variable insn.
2804         (microblaze_secondary_reload): Adjust type to match target.h .
2805         (microblaze_elf_in_small_data_p): Move declarations to start of block.
2806         (microblaze_expand_move): Likewise.
2807         * config/microblaze/microblaze.h (LARGE_INT):
2808         Avoid signed / unsigned comparisons.
2809         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2810         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
2811         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
2812
2813 2010-11-26  Michael Matz  <matz@suse.de>
2814
2815         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
2816
2817         * passes.c (init_optimization_passes): Remove superfluous
2818         copy-prop pass.
2819
2820 2010-11-26  Richard Guenther  <rguenther@suse.de>
2821
2822         PR lto/46648
2823         * gimple.c (gtc_visit): Do not return true for members of an
2824         SCC still being processed but the current lattice value of
2825         the member.  Treat SCC members comparison state as lattice,
2826         starting at equal, eventually dropping to unequal.
2827         (gimple_types_compatible_p_1): Likewise.
2828
2829 2010-11-26  Richard Guenther  <rguenther@suse.de>
2830
2831         PR middle-end/46559
2832         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
2833         for location list processing.
2834
2835 2010-11-26  Richard Guenther  <rguenther@suse.de>
2836
2837         PR lto/46560
2838         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
2839         flags manually.
2840
2841 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2842
2843         * config/s390/s390.c (print_operand_address): Replace assert with
2844         error message.
2845         (print_operand): Replace assertions, gcc_unreachable and
2846         fatal_insn with error messages.
2847
2848 2010-11-26  Richard Guenther  <rguenther@suse.de>
2849
2850         PR tree-optimization/46665
2851         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
2852
2853 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
2854
2855         * config/arm/arm.c (arm_option_override): enable loop array
2856         prefetching at -O3 for suitable targets, and configure params.
2857         * config/arm/arm-protos.h (struct tune_params): Add fields for
2858         configuring loop array prefetching.
2859
2860 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
2861
2862         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
2863
2864 2010-11-26  Richard Guenther  <rguenther@suse.de>
2865
2866         PR tree-optimization/46664
2867         * tree-affine.c (aff_combination_to_tree): Add rest last.
2868
2869 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
2870
2871         PR target/33637
2872         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
2873         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
2874         * configure: Regenerated.
2875         * exec-tool.in: Not quoting command, may have extra arguments.
2876
2877 2010-11-26  Richard Guenther  <rguenther@suse.de>
2878
2879         PR tree-optimization/46528
2880         PR debug/46338
2881         * profile.c (branch_prob): Do not split blocks based on locations
2882         from debug statements.
2883
2884 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
2885
2886         PR middle-end/46647
2887         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
2888         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
2889
2890         PR bootstrap/45700
2891         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
2892         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
2893         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
2894         build6_loc): Define.
2895         * fold-const.c (protected_set_expr_location_unshare): New inline.
2896         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
2897         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
2898         pedantic_omit_one_operand_loc, omit_two_operands_loc,
2899         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
2900         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
2901         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
2902         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
2903         instead of buildN followed by SET_EXPR_LOCATION or
2904         protected_set_expr_location.
2905         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
2906         Use buildN_stat_loc instead of buildN_stat followed by
2907         SET_EXPR_LOCATION.
2908
2909 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
2910
2911         * Makefile.in (s-tm-texi): Remove spurous tab.
2912
2913 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
2914
2915         PR debug/46258
2916         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
2917         debug stmts.
2918
2919 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
2920
2921         * toplev.c (finalize): Add no_backend parameter.  Don't finish
2922         passes when preprocessing only.  Adjust...
2923         (do_compile): ... caller.
2924
2925 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2926
2927         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
2928         flag_unsafe_math_optimizations.
2929         (negsf2): Likewise.
2930         Move fnegabs related patterns together.  Only use fmpynfadd instruction
2931         to negate a multiply if !flag_signed_zeros is true.
2932
2933 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
2934
2935         * gengtype-state.c (read_state_structures): Initialize "previous".
2936
2937 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
2938             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2939
2940         * gengtype-state.c: Add new file.
2941
2942         * gengtype.c (type count): New variable.
2943         (new_structure, find_param_structure, create_pointer)
2944         (create_array): Use it to set state_number in types.
2945         (dump_everything): Improve comment.
2946         (main): Call read_state and write_state. Print type_count.
2947
2948         * gengtype.h (type_lineloc): New function.
2949         (read_state, write_state): New declarations.
2950
2951         * Makefile.in (GENGTYPE_FLAGS): New variable.
2952         (s-gtype): Run gengtype twice and generate gtype.state.
2953         (build/gengtype-state.o): New rule.
2954         (build/gengtype$(build_exeext)): Link gengtype-state.o.
2955         (mostlyclean): Update comment.  Remove gtype.state.
2956
2957 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
2958
2959         PR middle-end/46637
2960         * combine.c (try_combine): When substing i2dest for i2src, pass
2961         1 as last argument even if
2962         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
2963
2964 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
2965
2966         PR middle-end/46647
2967         * builtins.c (target_char_cast): Check INTEGER_CST instead of
2968         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
2969
2970 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
2971
2972         * target.def (supports_split_stack, except_unwind_info): Take
2973         gcc_options parameters.
2974         * targhooks.c (default_except_unwind_info,
2975         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
2976         gcc_options parameters.
2977         * targhooks.h (default_except_unwind_info,
2978         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
2979         prototypes.
2980         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
2981         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
2982         Document that hooks must not be modified.
2983         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
2984         * doc/tm.texi: Regenerate.
2985         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
2986         &global_options to targetm.except_unwind_info.
2987         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
2988         dwarf2out_begin_prologue, dwarf2out_frame_init,
2989         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
2990         &global_options to targetm.except_unwind_info.
2991         * except.c (init_eh, finish_eh_generation,
2992         gate_convert_to_eh_region_ranges,
2993         output_one_function_exception_table): Pass &global_options to
2994         targetm.except_unwind_info.
2995         * expr.c (build_personality_function): Pass &global_options to
2996         targetm.except_unwind_info.
2997         * function.c (expand_function_end): Pass &global_options to
2998         targetm.except_unwind_info.
2999         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
3000         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
3001         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
3002         and targetm.supports_split_stack.  Remove assertions about opts
3003         and opts_set.
3004         (common_handle_option): Remove assertions about opts, opts_set and dc.
3005         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
3006         &global_options to targetm.except_unwind_info.
3007         * tree.c (build_common_builtin_nodes: Pass &global_options to
3008         targetm.except_unwind_info.
3009         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
3010         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
3011         thumb1_expand_prologue, thumb1_output_function_prologue,
3012         arm_unwind_emit, arm_output_fn_unwind): Update calls to
3013         arm_except_unwind_info.
3014         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
3015         parameter.
3016         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
3017         parameter.
3018         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
3019         ia64_reorg, ia64_asm_unwind_emit): Update calls to
3020         ia64_except_unwind_info.
3021         * config/pa/pa.c (pa_option_override): Pass &global_options to
3022         targetm.except_unwind_info.
3023         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
3024         Remove prototype.
3025
3026 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
3027
3028         * cgraphunit.c (process_function_and_variable_attributes):
3029         Mark dllexport-ed function/variables as needed.
3030         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
3031         as externally visible.
3032
3033 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
3034
3035         PR rtl-optimization/46585
3036         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
3037         (vinsn_init): Skip computation of dependencies for local NOPs.
3038         (vinsn_delete): Don't try to free regsets for local NOPs.
3039         (setup_nop_and_exit_insns): Change definition of nop_pattern.
3040
3041 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
3042
3043         PR rtl-optimization/46602
3044         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
3045         (tidy_control_flow): Here.
3046
3047 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
3048             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3049
3050         PR bootstrap/45888
3051         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
3052         Fix target.def pathname in timestamp comparison.
3053
3054 2010-11-24  Richard Henderson  <rth@redhat.com>
3055
3056         * config/ia64/predicates.md (pmpyshr_operand): New.
3057         * config/ia64/ia64.c (ia64_expand_unpack): New.
3058         (ia64_expand_widen_mul_v4hi): New.
3059         (ia64_expand_widen_sum): Update for pattern renames.
3060         (ia64_expand_dot_prod_v8qi): Likewise.
3061         * config/ia64/ia64-protos.h: Update.
3062         * config/ia64/vect.md (vecwider): New mode attribute.
3063         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
3064         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
3065         (pmpyshr2, pmpyshr2_u): New.
3066         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
3067         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
3068         (mulv2si3): New.
3069         (vec_pack_ssat_v4hi): Rename from pack2_sss.
3070         (vec_pack_usat_v4hi): Rename from *pack2_uss.
3071         (vec_pack_ssat_v2si): Rename from pack4_sss.
3072         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
3073         vec_select operation.
3074         (vec_interleave_highv8qi): Similarly.
3075         (mux1_alt): Rename from *mux1_alt.
3076         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
3077         (vec_interleave_lowv4hi): Rename from unpack2_l.
3078         (vec_interleave_highv4hi): Rename from unpack2_h.
3079         (mix2_r): Rename from *mix2_r.
3080         (mix2_l): Similarly.
3081         (vec_extract_evenodd_helper): New.
3082         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
3083         (vec_interleave_lowv2si): Rename from *unpack4_l.
3084         (vec_interleave_highv2si): Rename from *unpack4_h.
3085         (vec_extract_evenv2si, vec_extract_oddv2si): New.
3086         (vec_interleave_lowv2sf): Rename from fmix_r.
3087         (vec_interleave_highv2sf): Rename from *fmix_l.
3088         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
3089         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
3090         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
3091         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
3092
3093 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
3094
3095         * targhooks.c (default_except_unwind_info): Remove
3096         MUST_USE_SJLJ_EXCEPTIONS case.
3097         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
3098         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3099         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
3100         * doc/tm.texi: Regenerate.
3101         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
3102
3103 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
3104
3105         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
3106         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
3107         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
3108         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
3109         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
3110
3111 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
3112
3113         PR target/46519
3114         * config/i386/i386.c (ix86_expand_call): Don't check
3115         TREE_THIS_VOLATILE.
3116
3117 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
3118
3119         PR target/46519
3120         * config/i386/i386.c (upper_128bits_state): New.
3121         (block_info_def): Remove upper_128bits_set and done.  Add state,
3122         referenced, count, processed and rescanned.
3123         (check_avx256_stores): Updated.
3124         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
3125         Call note_stores only if needed.  Set referenced and count.
3126         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
3127         (rescan_move_or_delete_vzeroupper): New.
3128         (move_or_delete_vzeroupper):  Process and rescan all all basic
3129         blocks instead of predecessor blocks of all exit points.
3130         (ix86_option_override_internal): Enable vzeroupper optimization
3131         only for -fexpensive-optimizations and not optimizing for size.
3132         (use_avx256_p): Removed.
3133         (init_cumulative_args): Don't set use_avx256_p.
3134         (ix86_function_arg): Likewise.
3135         (ix86_expand_move): Likewise.
3136         (ix86_expand_vector_move_misalign): Likewise.
3137         (ix86_local_alignment): Likewise.
3138         (ix86_minimum_alignment): Likewise.
3139         (ix86_expand_epilogue): Don't check use_avx256_p when generating
3140         vzeroupper.
3141         (ix86_expand_call): Likewise.
3142
3143         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
3144         and use_avx256_p.  Add rescan_vzeroupper_p.
3145
3146 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
3147
3148         * toplev.c: Include <signal.h>.
3149
3150 2010-11-24  Richard Guenther  <rguenther@suse.de>
3151
3152         PR lto/43218
3153         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
3154         conflicting function signatures as non-inlineable.
3155
3156 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
3157
3158         PR rtl-optimization/46614
3159         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
3160          (deps_analyze_insn): Mark JUMP_INSNs in
3161         last_pending_memory_flush that weren't added through
3162         flush_pending_lists with NON_FLUSH_JUMP_KIND.
3163         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
3164         on INSN_LIST instead of JUMP_P check on its operand.
3165         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
3166
3167 2010-11-24  Richard Guenther  <rguenther@suse.de>
3168
3169         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
3170
3171 2010-11-24  Richard Guenther  <rguenther@suse.de>
3172
3173         PR lto/46606
3174         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
3175         a FIELD_DECL that is type correct issue a warning and fixup
3176         with a VIEW_CONVERT_EXPR.
3177
3178 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
3179
3180         * doc/invoke.texi (Options for Debugging Your Program or GCC):
3181         Explain static numbering of dump files.
3182
3183 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
3184
3185         * common.opt (user_vect_verbosity_level): New Variable entry.
3186         (ftree-vectorizer-verbose=): Mark as UInteger.
3187         * flag-types.h (enum vect_verbosity_levels): Move from enum
3188         verbosity_levels in tree-vectorizer.h.
3189         * opts.c: Don't include tree.h.
3190         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
3191         gcc_options parameter; take integer option argument.
3192         (common_handle_option): Update call to vect_set_verbosity_level.
3193         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
3194         (vect_set_verbosity_level): Move to opts.c.
3195         (vect_verbosity_level, vect_print_dump_info): Update for change of
3196         enum name.
3197         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
3198         (vect_print_dump_info): Update for change of enum name.
3199         * tree.h (vect_set_verbosity_level): Remove.
3200         * Makefile.in (opts.o): Update dependencies.
3201
3202 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
3203
3204         PR middle-end/46629
3205         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
3206         instead of insn with any_condjump_p.
3207
3208 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
3209
3210         * config/mips/loongson.md: Change the description comment of the file
3211         and update the copyright years.
3212         (define_insn "<u>div<mode>3): Add loongson3a support.
3213         (define_insn "<u>mod<mode>3"): Likewise.
3214         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
3215         mul<mode>3_mul3_loongson.
3216         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
3217         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
3218
3219 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3220
3221         * common.opt (initial_max_fld_align, flag_debug_asm,
3222         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
3223         flag_print_asm_name, graph_dump_format, help_printed,
3224         help_columns, flag_opts_finished): New Variable entries.
3225         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
3226         frandom-seed=): Mark deferred.
3227         (fsched-verbose=): Use UInteger and Var.
3228         * flags.h (set_struct_debug_option, flag_print_asm_name,
3229         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
3230         graph_dump_format): Don't declare here.
3231         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
3232         * opts-global.c: Include dbgcnt.h and debug.h.
3233         (decode_options): Pass location to finish_options.
3234         (handle_common_deferred_options): Check flag_dump_all_passed.
3235         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
3236         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
3237         OPT_fstack_limit.
3238         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
3239         (set_struct_debug_option): Add location_t parameter.  Update
3240         recursive call.  Use error_at.
3241         (default_options_optimization): Use error_at.
3242         (finish_options): Add location_t parameter.  Use
3243         opts->x_flag_opts_finished instead of first_time_p.  Use
3244         opts->x_optimize instead of optimize.  Use error_at.  Pass
3245         location to inform.
3246         (print_filtered_help): Use opts->x_help_printed to track what
3247         options have been printed.
3248         (print_specific_help): Use opts->x_help_columns to track number of
3249         columns.
3250         (common_handle_option): Pass locations and gcc_options pointers to
3251         more functions.  Use warning_at instead of fnotice and warning.
3252         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
3253         OPT_fdebug_prefix_map_.  Use error_at.  Set
3254         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
3255         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
3256         OPT_fsched_verbose_.
3257         (handle_param): Add location_r parameter.  Use error_at.
3258         (set_debug_level): Add location_r parameter.  Use error_at and
3259         warning_at.
3260         (setup_core_dumping): Add diagnostic_context parameter.
3261         (decode_d_option): Add gcc_options, location_t and
3262         diagnostic_context parameters and use them instead of global
3263         state.  Use warning_at.
3264         (enable_warning_as_error): Use error_at.
3265         * opts.h (finish_options): Update prototype.
3266         (set_struct_debug_option): Declare here.
3267         * rtl.h (fix_sched_param): Remove.
3268         * stor-layout.c (initial_max_fld_align): Remove.
3269         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
3270         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
3271         (process_options): Set maximum_field_alignment.
3272         * tree.h (initial_max_fld_align) Don't declare here.
3273         * Makefile.in (opts.o, opts-global.o): Update dependencies.
3274
3275 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3276
3277         * flag-types.h (struct visibility_flags): Don't declare here.
3278         * flags.h (strip_off_ending, fast_math_flags_set_p,
3279         fast_math_flags_struct_set_p): Declare here.
3280         (visibility_options): Don't declare here.
3281         * opts-common.c (option_enabled, get_option_state): Move from
3282         opts.c.
3283         * opts-global.c: Include diagnostic.h instead of
3284         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
3285         and toplev.h.
3286         (const_char_p, ignored_options, in_fnames, num_in_fnames,
3287         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
3288         print_ignored_options, unknown_option_callback,
3289         post_handling_callback, lang_handle_option, add_input_filename,
3290         read_cmdline_options, initial_lang_mask, init_options_once,
3291         decode_cmdline_options_to_array_default_mask,
3292         set_default_handlers, decode_options): Move from opts.c.
3293         (print_ignored_options): Use warning_at instead of saving and
3294         restoring input_location.
3295         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
3296         instead of expr.h.  Don't include langhooks.h, except.h or
3297         lto-streamer.h.  Add more comments on includes.
3298         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
3299         toplev.c.
3300         (visibility_options): Move to c-family/c-common.c.
3301         (const_char_p, ignored_options, in_fnames, num_in_fnames,
3302         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
3303         print_ignored_options, unknown_option_callback,
3304         post_handling_callback, lang_handle_option, add_input_filename,
3305         read_cmdline_options, initial_lang_mask, init_options_once,
3306         decode_cmdline_options_to_array_default_mask,
3307         set_default_handlers, decode_options): Move to opts-global.c.
3308         (target_handle_option, default_options_optimization,
3309         finish_options, common_handle_option): Remove static.
3310         (option_enabled, get_option_state): Move to opts-common.c.
3311         * opts.h (common_handle_option, target_handle_option,
3312         finish_options, default_options_optimization): Declare.
3313         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
3314         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
3315         opts.c.
3316         * toplev.h (strip_off_ending, decode_d_option,
3317         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
3318         declare here.
3319         * Makefile.in (opts.o, opts-global.o): Update dependencies.
3320
3321 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
3322
3323         PR driver/42690
3324         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
3325         options, replace by call of pass-through-libs spec function to process
3326         link_gcc_c_sequence spec.
3327         (lto_libgcc_spec): Delete variable.
3328         (static_specs[]): Remove related entry.
3329         (static_spec_functions[]): Add new entry for pass-through-libs.
3330         (main): Don't generate deleted lto_libgcc_spec.
3331         (pass_through_libs_spec_func): New function to implement the new
3332         pass-through-libs spec function.
3333         * doc/invoke.texi (pass-through-libs): Document new spec function.
3334
3335 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3336
3337         * doc/options.texi (Warning, Optimization): Document.
3338
3339 2010-11-23  Jan Hubicka  <jh@suse.cz>
3340
3341         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
3342         (tree_decl_with_vis): Add implicit_section_name_p.
3343         * targhooks.h (default_function_section): Declare.
3344         * target.def (function_section): New hook.
3345         * defaults.h (HOT_TEXT_SECTION_NAME,
3346         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3347         * predict.c (choose_function_section): Remove.
3348         (estimate_bb_frequencies): Do not use choose_function_section.
3349         * coretypes.h (enum node_frequency): Move here from cgraph.h
3350         * cgraph.h (enum node_frequency): Remove.
3351         * varasm.c (initialize_cold_section_name, unlikely_text_section,
3352         unlikely_text_section_p): Remove.
3353         (named_subsection_entry): New structure.
3354         (get_text_section): New function.
3355         (default_function_section): New function.
3356         (function_section_1): Break out from ...; handle profile info.
3357         (function_section): ... here.
3358         (unlikely_text_section): Remove.
3359         (unlikely_text_section_p): Use function_section_1.
3360         (assemble_start_function): Do not initialize cold section.
3361         (default_section_type_flags): Do not special case cold subsection.
3362         (switch_to_section): Likewise.
3363         * output.h (get_text_section): Define.
3364         * config/i386/winnt.c: Do not special case cold section.
3365         * config/darwin-protos.h (darwin_function_section): Declare.
3366         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
3367         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3368         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
3369         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3370         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
3371         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
3372         * config/darwin.c (machopic_select_section): Use
3373         darwin_function_section.
3374         (darwin_function_section): New function.
3375         * config/darwin.h (HOT_TEXT_SECTION_NAME,
3376         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3377         (TARGET_ASM_FUNCTION_SECTION): Define.
3378         * system.h (HOT_TEXT_SECTION_NAME,
3379         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
3380
3381 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
3382
3383         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
3384         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
3385
3386 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
3387
3388         PR middle-end/46499
3389         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
3390         following unconditional jumps.
3391
3392 2010-11-23  Richard Guenther  <rguenther@suse.de>
3393
3394         * doc/md.texi (386 constraints): Clarify A constraint documentation.
3395
3396 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3397             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3398
3399         * gengtype.c (enum typekind, struct options)
3400         (struct nested_ptr_data, struct pair, NUM_PARAM)
3401         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
3402         Move to gengtype.h.
3403         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
3404         Remove static, add zero state_number.
3405         (typedefs, structures, param_structs, variables): Remove static.
3406         (create_option): Remove.
3407         (create_string_option, create_type_option, create_nested_option):
3408         New functions.
3409         (create_nested_ptr_option): Use create_nested_option.
3410         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
3411         new create*option functions.
3412         (process_gc_options): Adjust for discriminated option.
3413         (output_mangled_typename): Handle TYPE_NONE.
3414         (walk_type): Test option kinds.
3415         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
3416         (write_func_for_structure, write_type, write_local, write_root)
3417         (write_roots, note_def_vec, dump_options): Adjust for
3418         discriminated option.
3419
3420         * gengtype.h (typedefs, structures, param_structs, variables
3421         enum typekind): Move from gengtype.c
3422         (enum option_kind): New discriminating enumeration.
3423         (struct options): Becomes discriminated.
3424         (struct nested_ptr_data): Nove from gengtype.c
3425         (create_string_option, create_type_option, create_nested_option)
3426         (create_nested_ptr_option): New functions
3427         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
3428         (UNION_OR_STRUCT_P): Move from gengtype.c
3429
3430         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
3431         discriminated options.
3432
3433 2010-11-23  Richard Guenther  <rguenther@suse.de>
3434
3435         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
3436         twice.  Avoid re-allocating the ops vector all the time.
3437
3438 2010-11-23  Richard Guenther  <rguenther@suse.de>
3439
3440         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
3441         is_gimple_min_invariant, group tree code checks to allow
3442         combining them.
3443         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
3444         of is_gimple_reg.
3445
3446 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
3447
3448         * config.gcc (sparc*-*-*): Reorder.
3449
3450 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3451
3452         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
3453         Remove ENABLE_CHECKING around DBGPRINTF.
3454
3455 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
3456
3457         * common.opt (exit_after_options, write_symbols, debug_info_level,
3458         use_gnu_debug_info_extensions): New Variable entries.
3459         (fprofile-dir=): Use Var.
3460         * flag-types.h (enum debug_info_level): Rename to enum
3461         debug_info_levels.
3462         * flags.h (write_symbols, debug_info_level,
3463         use_gnu_debug_info_extensions): Remove declarations.
3464         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
3465         (set_struct_debug_option): Make static variables const.
3466         (use_gnu_debug_info_extensions): Remove.
3467         (set_debug_level, print_filtered_help, print_specific_help,
3468         fast_math_flags_set_p): Take gcc_options parameters and use them
3469         in place of global variables.
3470         (print_filtered_help): Make new_help non-static.
3471         (print_specific_help): Update call to print_filtered_help.
3472         (common_handle_option): Update calls to print_specific_help.  Use
3473         gcc_options structure for more settings.  Make --help table
3474         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
3475         set_debug_level.
3476         * toplev.c (profile_data_prefix): Remove.
3477         * toplev.h (profile_data_prefix, exit_after_options): Remove
3478         declarations.
3479         (fast_math_flags_set_p): Update prototype.
3480         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
3481         Update call to fast_math_flags_set_p.
3482
3483 2010-11-22  Richard Henderson  <rth@redhat.com>
3484
3485         PR target/46434
3486         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
3487         return the address register extracted.
3488         (crx_decompose_address): Update the extracted address register.
3489
3490 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
3491
3492         PR driver/43335
3493         * gcc.c (main): Don't crash when lto-wrapper program is not found.
3494
3495 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
3496
3497         PR target/46608
3498         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
3499         * config/picochip/picochip-protos.h: Don't include "target.h" .
3500         (picochip_secondary_reload): Don't declare.
3501
3502         PR target/46613
3503         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
3504         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
3505         static.
3506
3507 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
3508
3509         PR bootstrap/46609
3510         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
3511         (source_dot_c_frul): Likewise.
3512
3513 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
3514
3515         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
3516
3517 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
3518
3519         PR bootstrap/44970
3520         * Makefile.in (fwprop.o) Add sparseset.h.
3521         * fwprop.c: Include sparseset.h
3522         (struct find_occurrence_data, find_occurrence_callback,
3523         find_occurrence): Remove.
3524         (active_defs, active_defs_check, register_active_defs,
3525         update_df_init, update_uses): New.
3526         (update_df): Rewrite.
3527         (try_fwprop_subst, forward_propagate_asm): Add calls to
3528         update_df_init and update_df.
3529         (fwprop_init): Allocate active_defs and active_defs_check.
3530         (fwprop_done): Free them.
3531         (fwprop, fwprop_addr): Adjust comments.
3532         * df.h (df_uses_create): Declare.
3533         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
3534         (df_ref_create): Return result of df_ref_create_structure directly.
3535         (df_ref_create_structure): Call df_install_ref_incremental when
3536         no collection_rec is passed.
3537         (df_ref_record): Do not create multiword hard reg info when no
3538         collection_rec is passed.
3539         (df_uses_create): New.
3540
3541 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3542
3543         PR middle-end/43057
3544         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
3545         setting location.
3546
3547 2010-11-22  Richard Guenther  <rguenther@suse.de>
3548
3549         * gimple-fold.c (maybe_fold_reference): When canonicalizing
3550         MEM_REFs, preserve volatileness.
3551         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
3552         addresses.
3553
3554 2010-11-22  Richard Guenther  <rguenther@suse.de>
3555
3556         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
3557
3558 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
3559
3560         PR rtl-optimization/45652
3561         * alias.c (get_reg_base_value): New.
3562         * rtl.h (get_reg_base_value): Add prototype.
3563         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
3564         non-null REG_BASE_VALUE for renaming.
3565
3566 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
3567             Basile Starynkevitch  <basile@starynkevitch.net>
3568
3569         * gengtype.c: Include xregex.h and obstack.h
3570         Added comments about role of get_output_file_with_visibility and
3571         our regexpr machinery.
3572         (frul_actionrout_t, struct file_rule_st): New.
3573         (hader_dot_h_frul, source_dot_c_frul): New functions.
3574         (NULL_REGEX,  NULL_FRULACT): New.
3575         (files_rules): New.
3576         (matching_file_name_substitute): New function.
3577         (get_output_file_with_visibility): Updated comments and rewritten
3578         to use the new files_rules machinery.
3579
3580         * Makefile.in (XREGEX_H): Added variable.
3581         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
3582
3583 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3584
3585         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
3586
3587 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3588
3589         * target.def (conditional_register_usage): Define.
3590         * reginfo.c (init_reg_sets_1): Call
3591         targetm.conditional_register_usage.
3592         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
3593         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
3594         for making it a hook.
3595         * doc/tm.texi: Regenerate.
3596         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3597         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
3598         New function.
3599         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3600         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3601         * config/arc/arc.c (arc_conditional_register_usage): ...here.
3602         New function.
3603         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3604         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3605         * config/arm/arm.c (arm_conditional_register_usage): ...here.
3606         New function.
3607         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3608         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
3609         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
3610         * config/bfin/bfin.c (conditional_register_usage): Move code into...
3611         (bfin_conditional_register_usage): ...here.  New function.
3612         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3613         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
3614         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
3615         * config/cris/cris.c (cris_conditional_register_usage): Make static.
3616         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3617         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
3618         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
3619         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
3620         * config/frv/frv.c (frv_conditional_register_usage): Make static.
3621         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3622         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3623         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
3624         New function.
3625         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3626         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
3627         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
3628         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
3629         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3630         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
3631         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
3632         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
3633         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3634         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3635         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
3636         New function.
3637         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3638         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
3639         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
3640         Delete.
3641         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
3642         static.
3643         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3644         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
3645         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
3646         * config/mep/mep.c (mep_conditional_register_usage): Make static.
3647         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3648         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
3649         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
3650         * config/mips/mips.c (mips_conditional_register_usage): Make static.
3651         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3652         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
3653         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
3654         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
3655         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3656         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3657         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
3658         ...here.  New function.
3659         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3660         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3661         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
3662         * config/pa/pa.c (pa_conditional_register_usage): ...here.
3663         New function.
3664         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3665         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3666         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
3667         New function.
3668         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3669         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
3670         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
3671         Delete.
3672         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
3673         static.
3674         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3675         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
3676         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
3677         * config/rx/rx.c (rx_conditional_register_usage): Make static.
3678         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3679         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
3680         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
3681         * config/s390/s390.c (s390_conditional_register_usage): Make static.
3682         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3683         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3684         * config/score/score.c (score_conditional_register_usage): ...here.
3685         New function.
3686         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3687         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3688         * config/sh/sh.c (sh_conditional_register_usage): ...here.
3689         New function.
3690         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3691         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3692         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
3693         New function.
3694         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3695         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
3696         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
3697         * config/spu/spu.c (spu_conditional_register_usage): Make static.
3698         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3699         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3700         * config/v850/v850.c (v850_conditional_register_usage): ...here.
3701         New function.
3702         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3703
3704 2010-11-21  Jan Hubicka  <jh@suse.cz>
3705             Dominique d'Humieres <dominiq@lps.ens.ft>
3706
3707         PR target/46510
3708         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
3709         finalize external decls.
3710
3711 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
3712
3713         * system.h (strerror): Poison.
3714
3715 2010-11-21  Richard Henderson  <rth@redhat.com>
3716
3717         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
3718         for infq/huge_valq.
3719
3720 2010-11-21  Richard Henderson  <rth@redhat.com>
3721
3722         PR rtl-optimization/46571
3723         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
3724         (compute_hash_table_work): Use NONDEBUG_INSN_P.
3725
3726 2010-11-21  Paul Koning  <ni1d@arrl.net>
3727
3728         * config/mips/pdp11.md (negsi2): Fix wrong code.
3729
3730 2010-11-21  Paul Koning  <ni1d@arrl.net>
3731
3732         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
3733         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3734
3735 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
3736
3737         * config/mips/mips.c (machine_function): Rename load_label_length to
3738         load_label_num_insns.
3739         (mips_load_label_length): Rename to...
3740         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
3741         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
3742
3743 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3744
3745         PR target/46533
3746         * config/alpha/predicates.md (direct_call_operand): Return false
3747         for !TARGET_SMALL_TEXT targets.
3748
3749 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
3750
3751         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
3752         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
3753         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
3754         * doc/tm.texi: Regenerate.
3755         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
3756         HANDLE_PRAGMA_WEAK): Poison.
3757         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3758         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3759         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
3760         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
3761         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3762         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3763         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3764         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
3765         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3766         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
3767         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3768         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
3769         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3770         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3771         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3772         (HANDLE_PRAGMA_WEAK): Don't undefine.
3773         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3774         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
3775         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3776         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
3777         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3778         (HANDLE_PRAGMA_WEAK): Don't undefine.
3779         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3780         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
3781         (HANDLE_PRAGMA_PACK): Don't undefine.
3782         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
3783         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3784         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3785         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3786         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
3787         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3788         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3789         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3790         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
3791         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3792         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
3793         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3794         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3795         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3796         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3797         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
3798         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3799
3800 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
3801
3802         PR target/31100
3803         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
3804         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
3805         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
3806
3807 2010-11-20  Jan Hubicka  <jh@suse.cz>
3808
3809         * cgraph.c (ld_plugin_symbol_resolution_names): New.
3810         (dump_cgraph_node): Dump resolution.
3811         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
3812         (cgraph_comdat_can_be_unshared_p): Dclare.
3813         * lto-streamer-out.c (produce_symtab): Use
3814         cgraph_comdat_can_be_unshared_p.
3815         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
3816         (cgraph_comdat_can_be_unshared_p): New function based on logic
3817         in cgraph_externally_visible_p.
3818         (cgraph_externally_visible_p): Use it.
3819         (varpool_externally_visible_p): Virtual tables can be unshared.
3820         * varpool.c (dump_varpool_node): Dump resolution.
3821
3822 2010-11-20  Jan Hubicka  <jh@suse.cz>
3823
3824         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
3825
3826 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3827
3828         PR other/46202
3829         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
3830         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
3831         shell quoting.
3832         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
3833         (install-strip): New target.
3834         (STRIPPROG): New variable, exported if STRIP is set.
3835         * doc/install.texi (Final install): Minor markup and code style
3836         fixes.  Document install-strip target.
3837
3838 2010-11-20  Paul Koning  <ni1d@arrl.net>
3839
3840         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
3841         pdp11_regno_reg_class): New functions.
3842         * config/pdp11/pdp11.md (define_constants): Add register numbers.
3843         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
3844         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
3845         functions.
3846         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
3847         frame pointer and argument pointer pseudo-registers.
3848         (ARG_POINTER_REGNUM): Define.
3849         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
3850         argument pointer.
3851         (FIRST_PARM_OFFSET): Update for argument pointer.
3852         (INITIAL_FRAME_POINTER_OFFSET): Delete.
3853         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
3854         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
3855         frame pointer and argument pointer.
3856
3857 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
3858
3859         PR debug/46561
3860         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
3861         when looking for immediate uses.
3862
3863         PR tree-optimization/45830
3864         * stmt.c (expand_switch_using_bit_tests_p): New function.
3865         (expand_case): Use it.
3866         * tree.h (expand_switch_using_bit_tests_p): New prototype.
3867         * tree-switch-conversion.c (struct switch_conv_info): Add
3868         bit_test_uniq, bit_test_count and bit_test_bb fields.
3869         (check_range): Fix a comment.
3870         (check_process_case): Compute bit_test_uniq and bit_test_count.
3871         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
3872         allocation.
3873         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
3874         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
3875         (array_value_type): New function.
3876         (build_one_array): Use it, if it returned different type,
3877         fold_convert all constructor fields and convert back to the
3878         wider type in the generated code.
3879         (process_switch): Initialize bit_test_uniq, bit_test_count and
3880         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
3881         returned true.
3882
3883 2010-11-19  Michael Matz  <matz@suse.de>
3884
3885         PR tree-optimization/46077
3886         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
3887
3888 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
3889
3890         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3891         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
3892         function.
3893         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3894
3895 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
3896
3897         * mode-switching.c (optimize_mode_switching): Use
3898         FOR_BB_INSNS instead of open-coded loop.
3899         * cfgrtl.c (redirect_branch_edge): Ditto.
3900
3901 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
3902
3903         PR target/46436
3904         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
3905         to accomodate 32 bit HOST_WIDE_INT.
3906         (m68hc11_emit_logical): Remove unused variable insn.
3907         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
3908         this_insn_uses_iy before use.
3909
3910         PR target/46434
3911         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
3912
3913 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
3914
3915         PR c/46547
3916         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
3917         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
3918
3919 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
3920
3921         * doc/extend.texi (Function attributes): Document PowerPC target
3922         attributes that are supported.
3923         (Pragmas): Document that PowerPC now supports target pragmas.
3924
3925         * doc/options.texi (TargetVariable): Document TargetVariable,
3926         HeaderInclude, and SourceInclude.
3927
3928         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
3929         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
3930         -ffp-contract=off.
3931
3932         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
3933         SourceInclude directives.  Fix a cut+paste error with target save
3934         enum variables.  Sort enums in the structures after ints and
3935         before shorts.
3936         * opth-gen.awk: Ditto.
3937
3938         * configure.ac: Add support for HeaderInclude and SourceInclude option
3939         directives to add the appropriate files to the dependency lists.
3940         * configure: Regenerate.
3941         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
3942         (OPTIONS_C_EXTRA): New variable for SourceInclude.
3943         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
3944         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
3945         (gcc-options.o): Ditto.
3946         * opt-include.awk: New awk script to handle HeaderInclude and
3947         TargetInclude.
3948
3949         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
3950         gets saved in the target options.
3951         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
3952         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
3953         (-mprototype): Ditto.
3954         (-mbit-word): ditto.
3955         (-mregnames): Ditto.
3956         (-msecure-plt): Ditto.
3957         (-mbss-plt): Ditto.
3958         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
3959         (-mpowerpc-gfxopt): Ditto.
3960         (-mmfcrf): Ditto.
3961         (-mpopcntb): Ditto.
3962         (-mfprnd): Ditto.
3963         (-mcmpb): Ditto.
3964         (-mmmfpgpr): Ditto.
3965         (-maltivec): Ditto.
3966         (-mhard-dfp): Ditto.
3967         (-mmulhw): Ditto.
3968         (-mdlmzb): Ditto.
3969         (-mmultiple): Ditto.
3970         (-mstring): Ditto.
3971         (-mpopcntd): Ditto.
3972         (-mfriz): Ditto.
3973         (-mvsx): Ditto.
3974         (-mno-update): Ditto.
3975         (-mavoid-indexed-addresses): Ditto.
3976         (-mtls-markers): Ditto.
3977         (-msched-epilog): Ditto.
3978         (-msched-prolog): Ditto.
3979         (-maix-struct-return): Ditto.
3980         (-msvr4-struct-return): Ditto.
3981         (-mxl-compat): Ditto.
3982         (-mrecip-precision): Ditto.
3983         (-mfp-in-toc): Ditto.
3984         (-msum-in-toc): Ditto.
3985         (-mvrsave): Ditto.
3986         (-mblock-move-inline-limit=): Ditto.
3987         (-misel): Ditto.
3988         (-mpaired): Ditto.
3989         (-mlongcall): Ditto.
3990         (-mgen-cell-microcode): Ditto.
3991         (-mwarn-cell-microcode): Ditto.
3992         (-mwarn-altivec-long): Ditto.
3993         (-mprioritize-restricted-insns=): Ditto.
3994         (-msingle-float): Ditto.
3995         (-mdouble-float): Ditto.
3996         (-msimple-fpu): Ditto.
3997         (-mxilinx-fpu): Ditto.
3998         * config/rs6000/aix64.opt (-mpe): Ditto.
3999
4000         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
4001         (rs6000_cpu): Move variable to be a target variable.  Rename
4002         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
4003         -mdebug=<xxx> variables into a single int.
4004         (rs6000_always_hint): Ditto.
4005         (rs6000_sched_groups): Ditto.
4006         (rs6000_align_branch_targets): Ditto.
4007         (rs6000_sched_costly_dep): Ditto.
4008         (rs6000_sched_insert_nops): Ditto.
4009         (rs6000_long_double_type_size): Ditto.
4010         (rs6000_ieeequad): Ditto.
4011         (rs6000_altivec_abi): Ditto.
4012         (rs6000_spe): Ditto.
4013         (rs6000_spe_abi): Ditto.
4014         (rs6000_float_gprs): Ditto.
4015         (rs6000_darwin64_abi): Ditto.
4016         (can_override_loop_align): Ditto.
4017         (rs6000_sdata): Ditto.
4018         (rs6000_tls_size): Ditto.
4019         (rs6000_current_abi): Ditto.
4020         (rs6000_traceback): Ditto.
4021         (rs6000_alignment_flags): Ditto.
4022         (rs6000_current_cmodel): Ditto.
4023         (rs6000_recip_control): Ditto.
4024         (rs6000_cpu_index): Ditto.
4025         (rs6000_tune_index): Ditto.
4026         (rs6000_debug): Ditto.
4027         (rs6000_target_flags_explict): Ditto.
4028
4029         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
4030         declaration.
4031
4032         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
4033         cmodel.  Change all uses.
4034
4035         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
4036         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
4037         Rename cmodel to rs6000_current_cmodel.
4038         (rs6000_sched_groups): Ditto.
4039         (rs6000_align_branch_targets): Ditto.
4040         (rs6000_sched_costly_dep): Ditto.
4041         (rs6000_sched_insert_nops): Ditto.
4042         (rs6000_long_double_type_size): Ditto.
4043         (rs6000_ieeequad): Ditto.
4044         (rs6000_altivec_abi): Ditto.
4045         (rs6000_spe): Ditto.
4046         (rs6000_spe_abi): Ditto.
4047         (rs6000_float_gprs): Ditto.
4048         (rs6000_darwin64_abi): Ditto.
4049         (can_override_loop_align): Ditto.
4050         (rs6000_sdata): Ditto.
4051         (rs6000_tls_size): Ditto.
4052         (rs6000_current_abi): Ditto.
4053         (rs6000_traceback): Ditto.
4054         (rs6000_alignment_flags): Ditto.
4055         (rs6000_current_cmodel): Ditto.
4056         (rs6000_recip_control): Ditto.
4057         (rs6000_cpu_index): Ditto.
4058         (rs6000_tune_index): Ditto.
4059         (rs6000_debug): Ditto.
4060         (rs6000_target_flags_explict): Ditto.
4061         (rs6000_sched_insert_nops_str): Make static.
4062         (rs6000_sched_costly_dep_str): Ditto.
4063         (rs6000_recip_name): Ditto.
4064         (rs6000_abi_name): Ditto.
4065         (rs6000_sdata_name): Ditto.
4066         (enum rs6000_traceback_name): Move to rs6000-opts.h.
4067         (rs6000_parse_tls_size_option): Delete.
4068         (rs6000_valid_attribute_p): New function for target attributes and
4069         pragmas.
4070         (rs6000_function_specific_save): Ditto.
4071         (rs6000_function_specific_restore): Ditto.
4072         (rs6000_function_specific_print): Ditto.
4073         (rs6000_can_inline_p): Ditto.
4074         (rs6000_set_current_function): Ditto.
4075         (rs6000_inner_target_options): Ditto.
4076         (rs6000_debug_target_options): Ditto.
4077         (rs6000_pragma_target_parse): Ditto.
4078         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
4079         attributes and pragmas.
4080         (TARGET_OPTION_SAVE): Ditto.
4081         (TARGET_OPTION_RESTORE): Ditto.
4082         (TARGET_OPTION_PRINT): Ditto.
4083         (TARGET_CAN_INLINE_P): Ditto.
4084         (TARGET_SET_CURRENT_FUNCTION): Ditto.
4085         (POWER_MASKS): Move to file level scope from the
4086         rs6000_option_override_internal function.
4087         (POWERPC_MASKS): Ditto.
4088         (ISA_*_MASKS): Ditto.
4089         (struct rs6000_ptt): Ditto.
4090         (processor_target_table): Ditto.
4091         (rs6000_cpu_name_lookup): Map cpu name to an index in
4092         processor_target_table.
4093         (rs6000_debug_reg_global): Print more information on processor
4094         options for -mdebug=reg.
4095         (rs6000_init_hard_regno_mode_ok): Add support for target
4096         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
4097         Allow -mdebug=val1,val2.  Rename cmodel variable.
4098         (rs6000_option_override_internal): Ditto.
4099         (rs6000_option_override): Ditto.
4100         (rs6000_handle_option): Ditto.
4101         (rs6000_conditional_register_usage): Add debug trace message.
4102         (struct rs6000_opt_mask): New for target attribute/pragma support.
4103         (rs6000_opt_masks): Ditto.
4104         (struct rs6000_opt_var): Ditto.
4105         (rs6000_opt_vars): Ditto.
4106         (rs6000_previous_function): Ditto.
4107
4108         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
4109         wasn't already included.
4110         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
4111         (enum processor_type): Ditto.
4112         (rs6000_cpu): Ditto.
4113         (enum fpu_type_t): Ditto.
4114         (fpu_type): Ditto.
4115         (enum rs6000_dependence_cost): Ditto.
4116         (enum rs6000_nop_insertion): Ditto.
4117         (enum group_termination): Ditto.
4118         (rs6000_long_double_type_size): Ditto.
4119         (rs6000_ieeequad): Ditto.
4120         (rs6000_altivec_abi): Ditto.
4121         (rs6000_spe_abi): Ditto.
4122         (rs6000_spe): Ditto.
4123         (rs6000_float_gprs): Ditto.
4124         (rs6000_alignment_flags): Ditto.
4125         (rs6000_sched_insert_nops): Ditto.
4126         (enum rs6000_vector): Ditto.
4127         (enum rs6000_abi): Ditto.
4128         (rs6000_current_opt): Ditto.
4129         (rs6000_debug_*): Delete.
4130         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
4131         (TARGET_DEBUG*): Ditto.
4132
4133         * config/rs6000/rs6000-opts.h: New header file to define the enums
4134         that are used in target variables that are now defined in rs6000.opt.
4135
4136         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
4137         rs6000-opts.h.
4138         (rs6000_sdata): Ditto.
4139         (rs6000_abi_name): Delete.
4140         (rs6000_sdata_name): Ditto.
4141         (rs6000_tls_size_string): Ditto.
4142
4143 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4144
4145         * common.opt (debug_struct_ordinary, debug_struct_generic): New
4146         Variable entries.
4147         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
4148         should_emit_struct_debug): Move from opts.c.
4149         * flag-types.h (enum debug_struct_file): Move from opts.c.
4150         * flags.h (should_emit_struct_debug): Remove.
4151         (base_of_path): Declare.
4152         (set_struct_debug_option): Add gcc_options parameter.
4153         * optc-gen.awk, opth-gen.awk: Handle array variables.
4154         * opts.c (enum debug_struct_file, debug_struct_ordinary,
4155         debug_struct_generic): Remove.
4156         (set_struct_debug_option): Add gcc_options parameter.
4157         (base_of_path): Remove static.
4158         (main_input_basename, main_input_baselength, matches_main_base,
4159         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
4160         Remove.
4161         * toplev.c (main_input_basename, main_input_baselength): Define
4162         here.
4163         * toplev.h (main_input_basename, main_input_baselength): Declare
4164         here.
4165
4166 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4167
4168         * common.opt (flag_instrument_functions_exclude_functions,
4169         flag_instrument_functions_exclude_files): New Variable definitions.
4170         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
4171         * gimplify.c (char_p): Declare type and vectors.
4172         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
4173         * opts.c (flag_instrument_functions_exclude_functions,
4174         flag_instrument_functions_exclude_files): Remove.
4175         (add_comma_separated_to_vector): Take void **.
4176         (flag_instrument_functions_exclude_p): Move to gimplify.c.
4177         (common_handle_option): Use options structure for
4178         -finstrument-functions-exclude- options.
4179
4180 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4181
4182         * doc/options.texi (Var): Document effects of Defer.
4183         (Defer): Document.
4184         * opt-functions.awk (var_type, var_set): Handle deferred options.
4185         * opts-common.c (set_option): Handle CLVC_DEFER.
4186         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
4187         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
4188         fstack-limit-symbol=): Mark as deferred.
4189         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
4190         plugin.h.
4191         (print_filtered_help): Don't report state of CLVC_DEFER options.
4192         (common_handle_option): Move code for OPT_fcall_used_,
4193         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
4194         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
4195         OPT_fstack_limit_symbol_ to opts-global.c.
4196         (option_enabled, get_option_state): Handle CLVC_DEFER.
4197         * opts.h: Include vec.h.
4198         (enum cl_var_type): Add CLVC_DEFER.
4199         (cl_deferred_option): Define type and vectors.
4200         (handle_common_deferred_options): Declare.
4201         * opts-global.c: New.
4202         * toplev.c (toplev_main): Call handle_common_deferred_options
4203         * Makefile.in (OPTS_H): Include $(VEC_H).
4204         (OBJS-common): Include opts-global.o.
4205         (opts.o): Update dependencies.
4206         (opts-global.o): Add dependencies.
4207
4208 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
4209
4210         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
4211         to objc_declare_protocols.
4212
4213 2010-11-19  Richard Guenther  <rguenther@suse.de>
4214
4215         PR lto/45789
4216         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
4217         IDENTIFIERs do not stream TREE_TYPE.
4218         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
4219
4220 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
4221
4222         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
4223
4224 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
4225
4226         PR target/45870
4227         * dwarf2out.c (const_ok_for_output_1): Don't complain about
4228         non-delegitimized TLS UNSPECs.
4229
4230 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
4231             Ian Lance Taylor  <iant@google.com>
4232
4233         * config/darwin-c.c (darwin_additional_format_types): Export.
4234
4235 2010-11-18  Paul Koning  <ni1d@arrl.net>
4236
4237         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
4238         pointer.
4239
4240 2010-11-18  Paul Koning  <ni1d@arrl.net>
4241
4242         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
4243         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
4244         * config/pdp11/pdp11.opt (-mabshi): Delete.
4245
4246 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
4247
4248         * resource.h (struct resources): Fix typo in the comment.
4249
4250 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
4251
4252         PR target/46546
4253         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
4254
4255 2010-11-18  Richard Henderson  <rth@redhat.com>
4256
4257         PR middle-end/46515
4258         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
4259         maybe_copy_epilogue_insn; handle prologue insns as well.
4260         * rtl.h, cfglayout.c: Update for rename.
4261         * recog.c (peep2_attempt): Copy prologue/epilogue data for
4262         RTX_FRAME_RELATED_P insns.
4263
4264 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
4265
4266         PR middle-end/46534
4267         * builtins.c (fold_builtin_printf): Don't copy and modify string
4268         before build_string_literal, instead modify what
4269         build_string_literal returned.
4270
4271 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
4272
4273         PR c/33193
4274         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
4275         REALPART_EXPR and IMAGPART_EXPR.
4276
4277 2010-11-18  Richard Guenther  <rguenther@suse.de>
4278
4279         PR tree-optimization/46172
4280         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
4281         function.
4282         (slpeel_tree_peel_loop_to_edge): Call it.
4283
4284 2010-11-18  Jeff Law  <law@redhat.com>
4285
4286         PR middle-end-optimization/46297
4287         * postreload.c (reload_combine_note_store): Deal with embedded
4288         side effects in MEM expressions.
4289
4290 2010-11-18  Richard Guenther  <rguenther@suse.de>
4291
4292         PR lto/45089
4293         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
4294         when checking is not enabled.
4295
4296 2010-11-18  Richard Guenther  <rguenther@suse.de>
4297
4298         PR lto/46525
4299         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
4300         type leaders.
4301         (gimple_register_canonical_type): Also cache the canoncial type
4302         for non type leaders.
4303
4304 2010-11-18  Richard Guenther  <rguenther@suse.de>
4305
4306         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
4307
4308 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
4309
4310         PR middle-end/46518
4311         * sel-sched-ir.c (init_expr): Use the correct type for
4312         target_available.
4313         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
4314
4315 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
4316
4317         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
4318         as well as -mrelocatable at the same time.
4319
4320 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
4321
4322         PR target/46422
4323         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
4324         Call the clz builtin.
4325
4326 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
4327             Steve Ellcey  <sje@cup.hp.com>
4328
4329         PR middle-end/31490
4330         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
4331         if section attribute used.
4332
4333 2010-11-17  Jan Hubicka  <jh@suse.cz>
4334
4335         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
4336         expand errno setting variant when optimizing for size.
4337
4338 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
4339
4340         * postreload.c (reload_combine): Call control_flow_insn_p only once.
4341         Reverse backward loop.  Fix formatting issues.
4342
4343 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
4344
4345         * c-parser.c (c_token_is_qualifier,
4346         c_parser_next_token_is_qualifier): New.
4347         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
4348         Improve error message on specs->tagdef_seen_p.
4349         (c_parser_struct_or_union_specifier): Improve error recovery.
4350         (c_parser_declspecs): Move exit condition on C_ID_ID early.
4351         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
4352         using c_parser_next_token_is_qualifier; extend it to cover
4353         a ctsk_tagdef typespec and !typespec_ok in general.
4354
4355 2010-11-17  Richard Guenther  <rguenther@suse.de>
4356
4357         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
4358         (gimple_mod_pow2_value_transform): Likewise.
4359         (gimple_mod_subtract_transform): Likewise.
4360
4361 2010-11-17  Richard Guenther  <rguenther@suse.de>
4362
4363         PR lto/46504
4364         * gimple.c (gimple_register_canonical_type): Make sure to only
4365         make type leaders canonical types.
4366
4367 2010-11-17  Michael Matz  <matz@suse.de>
4368
4369         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
4370         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
4371         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
4372         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
4373         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
4374         (pass_build_ssa): ... but here.
4375         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
4376         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
4377         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
4378         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
4379         * predict.c (rebuild_frequencies): Ditto.
4380         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
4381         * emit-rtl.c (verify_rtl_sharing): Ditto.
4382         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
4383         * tree-ssa-live.c (remove_unused_locals): Ditto.
4384         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
4385         * tree-ssa.c (pass_early_warn_uninitialized,
4386         execute_update_addresses_taken, pass_update_address_taken): Ditto.
4387         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
4388         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
4389         * passes.c (pass_postreload, execute_todo): Ditto.
4390         * tree-ssanames.c (pass_release_ssa_names): Ditto.
4391
4392 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4393
4394         * doc/invoke.texi (-dy): Remove.
4395         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
4396         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
4397         * langhooks.c (lhd_do_nothing_i): Remove.
4398         * langhooks.h (lang_hooks.parse_file): Take no arguments.
4399         * toplev.c (set_yydebug): Remove.
4400         (compile_file): Update call to lang_hooks.parse_file.
4401         (decode_d_option): Don't handle -dy.
4402
4403 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4404
4405         PR rtl-optimization/46440
4406         * combine.c (update_cfg_for_uncondjump): When changing
4407         an indirect jump into unconditional jump, remove BARRIERs
4408         from bb's footer.
4409
4410 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4411
4412         * opts.c (target_handle_option): Do not assert that loc ==
4413         UNKNOWN_LOCATION.
4414
4415 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4416             Richard Guenther  <rguenther@suse.de>
4417
4418         PR middle-end/45838
4419         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4420         call_may_clobber_ref_p_1): Return true for __sync_* and some
4421         OpenMP builtins that act as threading barriers.
4422
4423 2010-11-17  Richard Guenther  <rguenther@suse.de>
4424
4425         PR tree-optimization/46498
4426         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
4427
4428 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4429
4430         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
4431         (xtensa_function_arg_boundary): ...this.
4432         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
4433         thinko in declaration.
4434         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
4435         number of parameters to picochip_function_arg_boundary.
4436         (picochip_arg_advance): Likewise.
4437
4438 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4439
4440         PR target/46512
4441         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
4442         under check for type.
4443
4444 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4445
4446         * ifcvt.c (dead_or_predicable): Fix typo.
4447
4448 2010-11-16  Richard Henderson  <rth@redhat.com>
4449
4450         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
4451         * config/s390/s390.opt (mfused-madd): Remove.
4452         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
4453         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4454         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
4455         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
4456
4457 2010-11-16  Richard Henderson  <rth@redhat.com>
4458
4459         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
4460         * config/rs6000/rs6000.opt (mfused-madd): Remove.
4461         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
4462         (*altivec_vmaddfp_1): Remove.
4463         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
4464         (altivec_mulv4sf3): Expand to FMA directly.
4465         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
4466         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
4467         * config/rs6000/paired.md (paired_madds0): Use FMA.
4468         (paired_madds1): Likewise.
4469         (*paired_madd): Rename from paired_madd; use FMA.
4470         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
4471         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
4472         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
4473         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
4474         (rs6000_emit_madd): Use fma_optab.
4475         (rs6000_emit_msub): Use fms_optab.
4476         (rs6000_emit_nmsub): Expand the FMA pattern directly.
4477         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
4478         (*fmasf4_fpr): Rename from fmasf4_fpr.
4479         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
4480         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
4481         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
4482         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
4483         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
4484         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
4485         (*fmadf4_fpr): Rename from fmadf4_fpr.
4486         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
4487         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
4488         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
4489         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
4490         (fmasf4, fmadf4): Macroize into...
4491         (fma<FMA_F>4): ... here.
4492         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
4493         (nfma<FMA_F>4, nfms<FMA_F>4): New.
4494         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
4495         TARGET_FUSED_MADD.
4496         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
4497         (*vsx_fmadd<mode>4_1): Remove.
4498         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
4499         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
4500         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
4501         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
4502         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
4503         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
4504         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
4505
4506 2010-11-16  Richard Henderson  <rth@redhat.com>
4507
4508         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
4509         (fmasf4, fnmadf4, fnmasf4): Likewise.
4510         (unnamed plus+mult insns and splitters): Delete.
4511
4512 2010-11-16  Richard Henderson  <rth@redhat.com>
4513
4514         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
4515         (fnma<VSF>4): Rename from fnms_<VSF>.
4516         (fms<VSF>4): Rename from fms_<VSF>.
4517         (fma<VDF>4): Rename from fma_<VDF>.
4518         (fms<VDF>4): Rename from fms_<VDF>.
4519         (nfma<VDF>4): Rename from fnma_<VDF>.
4520         (nfms<VDF>4): Rename from fnms_<VDF>.
4521         (fnma<VDF>4, fnms<VDF>4): New expanders.
4522         (floatunsdisf2): Update for the renames.
4523         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
4524         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
4525
4526 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4527
4528         PR rtl-optimization/46490
4529         * combine.c (expand_compound_operation): Fix thinko.
4530
4531 2010-11-16  Richard Henderson  <rth@redhat.com>
4532
4533         PR target/46470
4534         * recog.c (peep2_attempt): Convert frame-related info when possible.
4535         (peep2_fill_buffer): Allow frame-related insns into the buffer.
4536         (peephole2_optimize): Allow peep2_attempt to fail.
4537
4538 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4539
4540         PR rtl-optimization/46315
4541         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
4542         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
4543         extracted from...
4544         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
4545         (remove_reg_equal_equiv_notes_for_defs): ...this.
4546         (delete_unmarked_insns): Adjust to above renaming.
4547         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
4548         referring to registers set in the insns being moved, if any.
4549
4550         * df-core.c (df_ref_dump): New function extracted from...
4551         (df_refs_chain_dump): ...here.  Call it.
4552         (df_regs_chain_dump): Likewise.
4553         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
4554         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
4555
4556 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
4557
4558         PR rtl-optimization/46395
4559         * postreload.c (reload_combine): Invalidate register use
4560         information on all control flow insns.
4561
4562         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
4563         LABEL_REF in UNSPEC operand.
4564
4565 2010-11-16  Jan Hubicka  <jh@suse.cz>
4566
4567         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
4568         when !flag_toplevel_reorder do not remove unless variable is
4569         COMDAT or ARTIFICIAL.
4570         * ipa.c (varpool_can_remove_if_no_refs): ... here.
4571         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
4572         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
4573         * varpool.c (decide_is_variable_needed): Do not handle visibility
4574         issues.
4575         (varpool_finalize_decl): Likewise.
4576         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
4577         update outdated comment on DECL_RTL_SET_P check.
4578
4579 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4580
4581         * config/sol2.h (NM_FLAGS): Define.
4582         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
4583         * doc/tm.texi: Update.
4584
4585 2010-11-16  Nick Clifton  <nickc@redhat.com>
4586
4587         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
4588         (msubsf4): Rename to fmssf4, and use fma.
4589         (nmaddsf4): Rename to fnmasf4 and use fma.
4590         (nmsubsf4): Rename to fnmssf4 and use fma.
4591
4592 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
4593
4594         PR target/44762
4595         * config/score/score3.c (score3_return_in_memory): Constify arguments.
4596         (score3_in_small_data_p, score3_function_value): Likewise.
4597         (score3_trampoline_init): Use LCT_NORMAL.
4598         (score3_print_operand): Initialize code as UNKNOWN.
4599         * config/score/predicates.md (score_load_multiple_operation):
4600         Remove unused variable.
4601         (score_store_multiple_operation): Likewise.
4602         * config/score/score7.c (score7_return_in_memory): Constify arguments.
4603         (score7_in_small_data_p, score7_function_value): Likewise.
4604         (score7_trampoline_init): Use LCT_NORMAL.
4605         (score7_print_operand): Initialize code as UNKNOWN.
4606         * config/score/score3.h (score3_return_in_memory): Update prototype.
4607         (score3_in_small_data_p, score3_function_value): Likewise.
4608         * config/score/score-protos.h (score_function_value): Likewise.
4609         * config/score/score7.h (score7_return_in_memory): Update prototype.
4610         (score7_in_small_data_p, score7_function_value): Likewise.
4611         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
4612         (score_return_in_memory, score_pass_by_reference): Constify arguments.
4613         (score_output_mi_thunk, score_function_prologue): Don't return a value.
4614         (score_function_epilogue, score_in_small_data_p): Likewise.
4615         (score_option_override, score_asm_trampoline_template): Likewise.
4616         (score_trampoline_init, score_print_operand): Likewise.
4617         (score_print_operand_address, score_prologue): Likewise.
4618         (score_epilogue, score_call, score_call_value): Likewise.
4619         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
4620         (score_function_arg_advance): Likewise. Make static.
4621         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
4622         (score_function_arg, score_legitimate_address_p): Make static.
4623         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
4624         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
4625         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
4626         Allow (W) == HOST_BITS_PER_WIDE_INT.
4627
4628         PR java/46386
4629         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
4630         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
4631
4632 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4633
4634         * config/arc/arc.c: Delete pasto.
4635         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
4636
4637 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
4638
4639         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
4640         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4641         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
4642         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4643         (mn10300_preferred_reload_class,
4644         mn10300_preferred_output_reload_class): New functions.
4645
4646 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4647
4648         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
4649         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
4650         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
4651         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
4652
4653 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4654
4655         * builtins.c (std_gimplify_va_arg_expr): Use
4656         targetm.calls.function_arg_boundary.
4657         * function.c (assign_parms, locate_and_pad_parm): Likewise.
4658         * calls.c (struct arg_data): Update comment.
4659         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
4660         * target.def (function_arg_boundary): Define.
4661         * targhooks.h (default_function_arg_boundary): Declare.
4662         * targhooks.c (default_function_arg_boundary): Define.
4663         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
4664         TARGET_FUNCTION_ARG_BOUNDARY.
4665         (FUNCTION_ARG_BOUNDARY): Delete.
4666         (TARGET_FUNCTION_ARG_BOUNDARY): New.
4667         * doc/tm.texi: Regenerate.
4668         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
4669         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
4670         * config/arc/arc.c (arc_function_arg_boundary): Define.
4671         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4672         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
4673         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
4674         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
4675         (arm_function_arg_boundary): Define.
4676         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4677         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
4678         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
4679         * config/frv/frv.c (frv_function_arg_boundary): Make static.
4680         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4681         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
4682         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
4683         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
4684         (ix86_compat_function_arg_boundary): Take and return unsigned int.
4685         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4686         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
4687         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
4688         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
4689         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4690         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
4691         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
4692         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4693         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
4694         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
4695         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
4696         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4697         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
4698         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
4699         * config/mips/mips.c (mips_function_arg_boundary): Make static.
4700         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4701         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
4702         * config/pa/pa.c (pa_function_arg_boundary): Define.
4703         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4704         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
4705         * config/picochip/picochip-protos.h
4706         (picochip_get_function_arg_boundary): Delete.
4707         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
4708         Rename to...
4709         (picochip_function_arg_boundary): ...this.  Make static.
4710         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
4711         (picochip_arg_advance): Adjust.
4712         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4713         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
4714         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
4715         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
4716         (rs6000_function_arg_boundary): ...this.  Make static.
4717         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
4718         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4719         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
4720         * config/rx/rx.c (rx_function_arg_boundary): Define.
4721         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4722         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
4723         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
4724         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4725         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
4726         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
4727         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
4728         (xtensa_function_arg_boundary): ...this.  Make static.
4729         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4730
4731 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4732
4733         * expr.c (alignment_for_piecewise_move): New function.
4734         (widest_int_mode_for_size): New function.
4735         (move_by_pieces, move_by_pieces_ninsns): Call them.
4736         (can_store_by_pieces, store_by_pieces_1): Likewise.
4737
4738 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4739
4740         * gcc.c (char_p): Define.  Define a VEC of it.
4741         (n_linker_options, n_assembler_options, n_preprocessor_options):
4742         Delete.
4743         (linker_options, assembler_options, preprocessor_options): Convert
4744         to a VEC.
4745         (add_preprocessor_option): Adjust.
4746         (add_assembler_option): Adjust.
4747         (add_linker_option): Adjust.
4748         (do_specs_vec): New function.
4749         (do_spec_1): Call it.  Adjust for new types.
4750
4751 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4752
4753         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
4754         (sreal.o, statistics.o, stringpool.o): Likewise.
4755
4756 2010-11-16  Richard Guenther  <rguenther@suse.de>
4757
4758         PR tree-optimization/44545
4759         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
4760         statements are not reassociatable.
4761         (reassociate_bb): Likewise.
4762
4763 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4764
4765         * bitmap.c: Delete unnecessary includes.
4766         * ebitmap.c: Likewise.
4767         * et-forest.c: Likewise.
4768         * sreal.c: Likewise.
4769         * statistics.c: Likewise.
4770         * stringpool.c: Likewise.
4771         * double-int.c: Add comment for inclusion of tm.h.
4772
4773 2010-11-16  Richard Guenther  <rguenther@suse.de>
4774
4775         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
4776         (visit_nary_op): ... this.
4777         (visit_binary_op): Remove.
4778         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
4779
4780 2010-11-16  Richard Guenther  <rguenther@suse.de>
4781
4782         PR middle-end/45172
4783         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
4784
4785 2010-11-16  Nick Clifton  <nickc@redhat.com>
4786
4787         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
4788         record is packed.
4789
4790 2010-11-15  Richard Henderson  <rth@redhat.com>
4791
4792         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
4793         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
4794         DOT_PROD_EXPR.
4795
4796 2010-11-15  Richard Henderson  <rth@redhat.com>
4797
4798         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
4799         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
4800         fma rtx_code.
4801
4802 2010-11-15  Richard Henderson  <rth@redhat.com>
4803
4804         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
4805         and *mulsubsf4 respectively.  Use fma rtx_code.
4806
4807 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
4808
4809         * gcc.c: Include "vec.h".
4810         (argbuf): Make into a VEC.
4811         (argbuf_length, argbuf_index): Remove.
4812         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
4813         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
4814         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
4815         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
4816         (gcc.o): Depend on $(VEC_H).
4817
4818 2010-11-15  Richard Henderson  <rth@redhat.com>
4819
4820         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
4821         via FMA if unsafe math.
4822         (insert_var_expansion_initialization): Handle FMA.
4823         (combine_var_copies_in_loop_exit): Likewise.
4824
4825 2010-11-15  Richard Henderson  <rth@redhat.com>
4826
4827         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
4828         * config/ia64/ia64.opt: Remove mfused-madd.
4829         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
4830         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
4831         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
4832         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
4833         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
4834         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
4835         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
4836         (fmav2sf4): Rename from fpma; use FMA code.
4837         (fmsv2sf4): Rename from fpms; use FMA code.
4838         (fnmav2sf4): Rename from *fpnma; use FMA code.
4839         * config/ia64/ia64.md (MODE_SDF): New iterator.
4840         (suffix): New mode attribute.
4841         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
4842         (fmssf4): Rename from *fmssf4.
4843         (fnmasf4): Rename from *nfmasf4.
4844         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
4845         (*nmadddf4, *nmadddf4_truncsf): Remove.
4846         (fmsdf4): Rename from *fmsdf4.
4847         (fnmadf4): Rename from *nfmadf4.
4848         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
4849         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
4850         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
4851         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
4852         (fmsxf4): Rename from *fmsxf4.
4853         (fnmaxf4): Rename from *nfmaxf4.
4854         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
4855         (*fnmaxf_trunc_<MODE_SDF>): New.
4856
4857 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
4858
4859         PR tree-optimization/46461
4860         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
4861         a gimple val.
4862
4863 2010-11-15  Ian Lance Taylor  <iant@google.com>
4864
4865         * godump.c: New file.
4866         * common.opt (fdump-go-spec=): New option.
4867         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
4868         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
4869         (TYPE_SYMTAB_IS_DIE): Define.
4870         (struct tree_type): Change GTY for symtab field to use
4871         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
4872         to pick the union field.
4873         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
4874         (dump_go_spec_init): Declare.
4875         * toplev.c (process_options): Handle flag_dump_go_spec.
4876         * debug.c: Include "tree.h".
4877         (do_nothing_debug_hooks): Set tree_type_symtab_field.
4878         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
4879         * dbxout.c (dbx_debug_hooks): Likewise.
4880         (xcoff_debug_hooks): Likewise.
4881         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4882         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
4883         SDB_DEBUGGING_INFO is not defined.
4884         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
4885         (Overall Options): Document -fdump-go-spec.
4886         * Makefile.in (OBJS-common): Add godump.o.
4887         (debug.o): Add dependency on $(TREE_H).
4888         (godump.o): New target.
4889         (GTFILES): Add $(srcdir)/godump.c.
4890
4891 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
4892
4893         PR debug/46095
4894         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
4895         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
4896         style < 0, add REG_FRAME_RELATED_EXPR.
4897
4898         PR debug/46387
4899         * rtl.h (vt_equate_reg_base_value): New prototype.
4900         * alias.c (vt_equate_reg_base_value): New function.
4901         * var-tracking.c (vt_init_cfa_base): Use it.
4902
4903 2010-11-15  Jan Hubicka  <jh@suse.cz>
4904             Diego Novillo  <dnovillo@google.com>
4905
4906         PR lto/41528
4907         * doc/lto.texi: Add.
4908         * doc/gccint.texi: Add reference to lto.texi.
4909         * doc/invoke.texi: Update user documentation for LTO.
4910         Move internal flags to lto.texi
4911
4912 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
4913
4914         * c-typeck.c (build_unary_op): Use
4915         objc_build_incr_expr_for_property_ref to build the pre/post
4916         increment/decrement of an Objective-C property ref, and skip the
4917         lvalue_or_else check in that case.
4918
4919 2010-11-15  Martin Jambor  <mjambor@suse.cz>
4920
4921         PR tree-optimization/46349
4922         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
4923         (contains_vce_or_bfcref_p): Likewise.
4924         (sra_modify_assign): Use them.
4925
4926 2010-11-15  Richard Guenther  <rguenther@suse.de>
4927
4928         PR tree-optimization/46467
4929         * tree-ssa-structalias.c (do_structure_copy): Properly treat
4930         variables without subvars.
4931
4932 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
4933
4934         * config/picochip/picochip.c (file header): Picochip name change.
4935         * config/picochip/picochip.md (file header): Likewise.
4936         * config/picochip/predicates.md (file header): Likewise.
4937         * config/picochip/dfa_space.md (file header): Likewise.
4938         * config/picochip/dfa_speed.md (file header): Likewise.
4939         * config/picochip/picochip.h(file header): Likewise.
4940         * config/picochip/constraints.md (file header): Likewise.
4941         * config/picochip/picochip-protos.h (file header): Likewise.
4942         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
4943         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
4944         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
4945         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
4946         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
4947         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
4948         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
4949         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
4950         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
4951         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
4952         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
4953         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
4954         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
4955         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
4956
4957 2010-11-15  Richard Guenther  <rguenther@suse.de>
4958
4959         PR bootstrap/46474
4960         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
4961
4962 2010-11-15  Nick Clifton  <nickc@redhat.com>
4963
4964         * config/stormy16/stormy16.c (direct_return): Do not generate a
4965         direct return for interrupt handlers.
4966
4967 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
4968
4969         * Makefile.in (tm.texi): Replace with rule for:
4970         ($(srcdir)/doc/tm.texi).
4971         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
4972         $(srcdir)/doc/tm.texi .
4973         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
4974         tm.texi .
4975
4976         PR target/46427
4977         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
4978
4979         PR bootstrap/45444
4980         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
4981         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
4982
4983         PR target/46432
4984         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
4985
4986 2010-11-15  Richard Guenther  <rguenther@suse.de>
4987
4988         PR lto/44150
4989         * lto-opts.c (lto_write_options): Write -fexceptions even if
4990         not set by the user.
4991
4992 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
4993
4994         PR c/46462
4995         * c-decl.c (declspecs_add_type): Make variables with error types
4996         integers.
4997         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
4998         do not start a declaration before an Objective-C foreach.
4999         (c_parser_declaration_or_fndef): Improve recovery after unknown
5000         type name.
5001         (c_parser_for_statement): Hoist entrance of "foreach context"
5002         before ifs, add corresponding reset where it was missing.  Do
5003         not set objc_could_be_foreach_context for C.
5004
5005 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
5006
5007         PR tree-optimization/45722
5008         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
5009         this is a reference to a component.
5010         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
5011         (ipa_note_param_call): Adjust comment.
5012
5013 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
5014
5015         * config/mips/mips.c (machine_function): Remove
5016         initialized_mips16_gp_pseudo_p.
5017         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
5018         detect whether a pseudo has already been created.  Unconditionally
5019         create a new one if not.
5020         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
5021         expanding to rtl.  Create a new pseudo otherwise, if allowed.
5022
5023 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
5024
5025         PR target/43440
5026         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
5027         * tm.texi: Regenerated.
5028         * output.h (decode_reg_name_and_count): Declare.
5029         * varasm.c (decode_reg_name_and_count): New function.
5030         (decode_reg_name): Reimplement using decode_reg_name_and_count.
5031         * reginfo.c (fix_register): Use decode_reg_name_and_count and
5032         iterate over all regs used.
5033         * stmt.c (expand_asm_operands): Likewise.
5034         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
5035         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
5036         multiple machine registers.
5037
5038 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
5039
5040         * stor-layout.c (place_union_field): Do not put location information
5041         on offset expressions.
5042         (place_field): Likewise.
5043         (finalize_record_size): Likewise on size expressions.
5044         (finalize_type_size): Likewise.
5045         (layout_type): Likewise.
5046
5047 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
5048
5049         PR debug/42889
5050         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
5051         * df-core.c (df_set_bb_dirty_nonrl): Remove.
5052         * df.h (df_set_bb_dirty_nonlr): Likewise.
5053
5054 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
5055
5056         * config/mips/mips.md (call_internal): Pass curr_insn to
5057         mips_split_call.
5058         (call_internal_direct): Ditto.
5059         (call_value_internal): Ditto.
5060         (call_value_internal_direct): Ditto.
5061         (call_value_multiple_internal): Ditto.
5062         * config/mips/mips.c (mips_split_call): Do not copy
5063         CALL_INSN_FUNCTION_USAGE here.
5064
5065 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
5066
5067         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
5068         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
5069         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
5070         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
5071         (TUNE_LOONGSON_3A): Define.
5072         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
5073         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
5074         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
5075         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
5076         (mips_rtx_cost_data): Add Loongson-3A.
5077
5078 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
5079
5080         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
5081         switches.
5082
5083 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
5084
5085         * dwarf2out.c (macinfo_entry): New struct.
5086         (output_comp_unit): Emit the section start label here and flag that we
5087         will emit an info section.
5088         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
5089         emitting directly.
5090         (dwarf2out_end_source_file): Likewise.
5091         (dwarf2out_define): Likewise.
5092         (dwarf2out_undef): Likewise.
5093         (output_macinfo): New.
5094         (dwarf2out_init): Do not emit debug section switches here, allocate a
5095         vec for macinfo, when required.
5096         (dwarf2out_finish): First switch to debug_abbrev_section here.
5097         debug_line_section,  debug_macinfo_section, Likewise.
5098         Check that the pubtypes table has at least one unpruned entry before
5099         trying to emit it.
5100
5101 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5102
5103         PR c/20385
5104         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
5105         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
5106         token lookahead.
5107         (c_parser_compound_statement_nostart, c_parser_label,
5108         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
5109         (c_parser_declaration_or_fndef): Detect the case now matched by
5110         c_parser_next_tokens_start_declaration, give error and correct it.
5111
5112 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5113
5114         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
5115         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
5116         with typespec_kind.
5117         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
5118         (shadow_tag_warned, check_compound_literal_type): Adjust
5119         uses of tag_defined_p.
5120         (declspecs_add_type): Set typespec_kind.
5121         * c-parser.c (c_parser_declaration_or_fndef,
5122         c_parser_declspecs, c_parser_struct_declaration,
5123         c_parser_parameter_declaration, c_parser_type_name,
5124         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
5125         of type_seen_p.
5126         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
5127         tag_defined_p, pass ctsk_firstref through.
5128
5129 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5130
5131         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
5132         (struct format_wanted_type): Replace field "name" with "kind", add
5133         "format_start" and "format_length".
5134         (check_format_info_main): Fill in new fields.  Fill in
5135         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
5136         after the final NUL outside the while loop.  Do not include
5137         width and precision modifiers in the format_start/format_length
5138         of the main format.
5139         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
5140         arguments.  Compute WANTED_TYPE first so that format_type_warning
5141         can be called for missing arguments.  Adjust calls to
5142         format_type_warning.
5143         (format_type_warning): Fetch as much information as possible
5144         from format_wanted_type.  Adjust printing now that every
5145         warning has a "descr", as well as for missing argument warnings
5146         and to include % sign for format specifiers.
5147
5148 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
5149
5150         PR rtl-optimization/46204
5151         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
5152         Update all callers.  Do not recompute topological order.  Adjust
5153         fallthrough edges following a degenerate conditional jump.
5154
5155 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
5156
5157         * opts-common.c (control_warning_option): New.
5158         * opts.c (set_default_handlers): New.
5159         (decode_options): Use set_default_handlers and
5160         control_warning_option.
5161         (common_handle_option): Update call to enable_warning_as_error.
5162         (enable_warning_as_error): Take gcc_options parameters.  Use
5163         control_warning_option.
5164         * opts.h (set_default_handlers, control_warning_option): Declare.
5165
5166 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
5167
5168         * Makefile.in (OPTS_H): Define.
5169         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
5170         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
5171         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
5172         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
5173         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
5174         * gcc.c (driver_handle_option): Take location_t parameter.
5175         (process_command, do_self_spec): Update calls to
5176         read_cmdline_option.
5177         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
5178         * langhooks.c (lhd_handle_option): Take location_t parameter.
5179         * langhooks.h (handle_option): Take location_t parameter.
5180         * lto-opts.c (lto_reissue_options): Update call to set_option.
5181         * opts-common.c (handle_option): Make static.  Take location_t
5182         parameter and pass it to other functions.
5183         (handle_generated_option): Take location_t parameter and pass it
5184         to other functions.
5185         (read_cmdline_option): Take location_t parameter and pass it to
5186         other functions.  Use warning_at and error_at.
5187         (set_option): Take location_t parameter and pass it to other
5188         functions.
5189         * opts.c (common_handle_option): Take location_t parameter and
5190         pass it to other functions.
5191         (enable_warning_as_error): Make static.  Take location_t parameter
5192         and pass it to other functions.
5193         (lang_handle_option): Take location_t parameter and pass it to
5194         other functions.
5195         (target_handle_option): Take location_t parameter.
5196         (read_cmdline_options, maybe_default_option,
5197         maybe_default_options, default_options_optimization,
5198         decode_options): Take location_t parameter and pass it to other
5199         functions.
5200         * opts.h: Include input.h.
5201         (struct cl_option_handler_func, decode_options, set_option,
5202         handle_generated_option, read_cmdline_option): Take location_t
5203         parameters.
5204         (handle_option, enable_warning_as_error): Remove.
5205         * toplev.c (toplev_main): Update call to decode_options.
5206
5207 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
5208
5209         * graphite-cloog-util.c (oppose_constraint,
5210         cloog_matrix_to_ppl_constraint,
5211         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
5212         CLooG isl uses unsigned integers.  This triggered a warning.
5213
5214 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5215
5216         PR target/46438
5217         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
5218         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
5219         (xtensa_function_arg_1): De-constify cum.
5220         (xtensa_expand_prologue): Use add_reg_note.
5221
5222         PR target/46435
5223         * config/cris/cris.c (saved_regs_mentioned): Delete.
5224         (cris_reload_address_legitimized): Cast itype to enum reload_type.
5225         Remove unused variable op0p.
5226         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
5227         (cris_emit_movem_store): Use add_reg_note.
5228
5229         PR bootstrap/46456
5230         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
5231
5232 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
5233
5234         * function.c (expand_function_end): Set the locator of the prologue on
5235         the stack checking insns.
5236
5237 2010-11-12  Richard Henderson  <rth@redhat.com>
5238
5239         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
5240         * config/xtensa/xtensa.opt (mfused-madd): Remove.
5241         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
5242         MASK_FUSED_MADD.
5243         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
5244         (fnmasf4): Rename from mulsubsf3; use fma.
5245
5246 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5247             Richard Henderson  <rth@redhat.com>
5248
5249         PR target/46428
5250         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
5251         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
5252         comparison.
5253
5254 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
5255
5256         * opts-common.c (decode_cmdline_option): Initialize separate_args.
5257
5258 2010-11-12  Jan Hubicka  <jh@suse.cz>
5259
5260         * doc/invoke.texi (early-inlining-insns): Update default.
5261         * params.def (early-inlining-insns): Default to 10.
5262
5263 2010-11-12  Olivier Hainque  <hainque@adacore.com>
5264
5265         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
5266
5267 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5268
5269         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
5270         (SUPPORTS_INIT_PRIORITY): Define.
5271
5272 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5273
5274         PR target/46430
5275         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
5276         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
5277         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
5278         (avr_device_to_devicelib): Likewise.
5279         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
5280         into block.
5281         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
5282         (zero_extendhidi2, zero_extendsidi2): Likewise.
5283         * config/avr/avr.c (avr_num_arg_regs): Constify type.
5284         (avr_return_addr_rtx): De-constify tem.
5285         (avr_rotate_bytes): Move declarations to start of block.
5286         Don't use variable length array.  Put nested if/else into block.
5287
5288         PR rtl-optimization/46433
5289         * var-tracking.c: Include tm_p.h .
5290
5291         PR bootstrap/44756
5292         PR build/44767
5293         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
5294         should be unsigned.
5295         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
5296         * doc/tm.texi: Regenerate.
5297
5298         PR target/46412
5299         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
5300         * config/bfin/bfin.c: Include sel-sched.h .
5301         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
5302         (expand_interrupt_handler_prologue): Remove unused variable insn.
5303         (bfin_load_pic_reg): Likewise.
5304         (bfin_rtx_costs): Make code / outer_code variables of type
5305         enum rtx_code, copied from re-named parameters.
5306         (bfin_local_alignment): Change align argument and return type
5307         to unsigned.
5308         (bfin_adjust_cost): Remove unused variable insn_type.
5309         Declare variables at start of block.
5310         (struct loop_info): Rename to...
5311         (struct loop_info_d).
5312         (workaround_rts_anomaly): Change type of icode to int.
5313         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
5314         with int-typed variable.
5315         (note_np_check_stores): Likewise.
5316         (trapping_loads_p): Remove unused variable pat.
5317         (bfin_expand_binop_builtin): Use expand_normal.
5318         (bfin_expand_unop_builtin): Likewise.
5319         (bfin_expand_builtin): Likewise.  Set tmode before use.
5320
5321         PR middle-end/44769
5322         * final.c (split_double): Don't use BITS_PER_WORD directly in
5323         shift count.
5324
5325         PR target/46431
5326         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
5327         assignment.
5328
5329         PR target/46450
5330         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
5331         Use add_reg_note.
5332         (xstormy16_function_arg): Dereference cum.
5333         (xstormy16_expand_builtin): Use expand_normal.
5334         Change type of omode to enum machine_mode.
5335         (combine_bnp): Rename and to and_insn.
5336
5337         PR target/46437
5338         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
5339         localreg.
5340
5341 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
5342
5343         PR debug/46375
5344         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
5345
5346 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5347
5348         PR lto/46376
5349         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
5350
5351 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
5352
5353         PR c/44782
5354         * common.opt (fmax-errors=): New option.
5355         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
5356         * diagnostic.h (struct diagnostic_context): Add max_errors field.
5357         * diagnostic.c (diagnostic_initialize): Initialize it.
5358         (diagnostic_action_after_output): Exit if more than max_errors
5359         have been output.
5360         * doc/invoke.texi (Warning Options): Add -fmax-errors.
5361         (-fmax-errors): Document.
5362
5363 2010-11-11  Richard Henderson  <rth@redhat.com>
5364
5365         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
5366
5367 2010-11-11  Richard Henderson  <rth@redhat.com>
5368
5369         * config/fused-madd.opt: New file.
5370         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
5371         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
5372         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
5373         * config/i386/i386.opt (mfused-madd): Remove.
5374         * config/i386/sse.md (split_fma): Remove.
5375         (split_fms, split_fnma, split_fnms): Remove.
5376
5377 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
5378
5379         PR target/46088
5380         * config/i386/i386.md (*ashl<mode>3_cconly,
5381         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
5382         change nonimmediate_operand predicate to register_operand.
5383
5384 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
5385
5386         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
5387
5388 2010-11-11  Jan Hubicka  <jh@suse.cz>
5389
5390         * opts.c (finish_options): Do not error on -flto-partition alone.
5391
5392         * doc/invoke.texi (-fwhopr): Merge into -flto section.
5393         (-flto-partition): Document none.
5394         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
5395         * lto-wrapper.c: Update comment.
5396         (run_gcc): Update LTO option parsing.
5397         * opts.c (finish_options): add support -flto-partition=none
5398         (common_handle_option): Remove fwhopr.
5399         * common.opt: Turn fwhopr into flto.
5400         * collect2.c (main): Update option handling.
5401         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
5402         * ipa-split.c (execute_split_functions): Remove flag_whopr.
5403         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
5404         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
5405         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
5406
5407 2010-11-11  Jan Hubicka  <jh@suse.cz>
5408
5409         PR tree-optimize/40436
5410         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
5411         (eliminated_by_inlining_prob): ... this one; return 50% probability
5412         for SRA.
5413         (estimate_function_body_sizes): Update use of
5414         eliminated_by_inlining_prob; estimate static function size
5415         for 2 instructions.
5416
5417 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
5418
5419         PR target/44749
5420         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
5421         declare.  Change type of argument four to type int.
5422         (mep_secondary_input_reload_class): Returns enum reg_class.
5423         (mep_secondary_output_reload_class): Likewise.
5424         (mep_function_value): Change types of arguments to cont_tree.
5425         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
5426         argument four to type int.
5427         (mep_secondary_input_reload_class): Returns enum reg_class.
5428         (mep_secondary_output_reload_class): Likewise.
5429         (mep_function_value): Change types of arguments to cont_tree.
5430         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
5431         mep_regno_reg_class to enum reg_class.
5432
5433 2010-11-11  Richard Henderson  <rth@redhat.com>
5434
5435         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
5436         that the target has the exact fma operation that we matched.
5437
5438 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5439
5440         * reginfo.c (fix_register): Avoid inserting English word in
5441         diagnostic sentence.  Use %qs for quoting and %'.
5442
5443 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
5444
5445         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5446         Intel processor family 6, model 0x2c.
5447
5448 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5449
5450         * opts.c (warning_as_error_callback,
5451         register_warning_as_error_callback): Remove.
5452         (enable_warning_as_error): Don't use warning_as_error_callback.
5453         * opts.h (register_warning_as_error_callback): Remove.
5454
5455 2010-11-11  Richard Henderson  <rth@redhat.com>
5456
5457         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
5458         in between the MULT and the PLUS/MINUS.
5459
5460 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5461
5462         PR middle-end/46388
5463         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
5464         BLKmode mode for it.
5465         (expand_expr_real_1): Similarly for op0.
5466
5467 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5468
5469         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
5470         Document optional target selector.
5471
5472 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5473
5474         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
5475         assembling high and low parts of size if not using 32-bit HWINT; else
5476         use DECL_SIZE_UNITS, not DECL_SIZE.
5477
5478 2010-11-11  Martin Jambor  <mjambor@suse.cz>
5479
5480         PR tree-optimization/46383
5481         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
5482         offsets.
5483         (compute_complex_ancestor_jump_func): Likewise.
5484         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
5485
5486 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5487
5488         PR debug/46150
5489         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
5490         true if expr1->hash != expr2->hash.
5491
5492 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5493
5494         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
5495         diagnostics with lowercase letters.
5496         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
5497         lowercase letters.
5498         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
5499         diagnostic.
5500         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5501         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
5502         lowercase letters.
5503         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5504         Remove trailing ' ' from diagnostic.
5505         * config/avr/avr.c (print_operand_address): Start diagnostic with
5506         a lowercase letter and remove trailing '.'.
5507         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
5508         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
5509         with lowercase letters.  Use %' in diagnostics.  Remove trailing
5510         '.' from diagnostics.
5511         (bfin_handle_longcall_attribute): Use %' in diagnostic.
5512         * config/cris/cris.c (cris_split_movdx,
5513         cris_expand_pic_call_address): Start diagnostics with lowercase
5514         letters.
5515         (cris_asm_output_label_ref): Use %' in diagnostic.
5516         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
5517         letter.
5518         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
5519         lowercase letter.
5520         * config/darwin-c.c (version_as_macro): Start diagnostic with a
5521         lowercase letter.
5522         * config/darwin-driver.c (darwin_default_min_version): Use %' in
5523         diagnostic.
5524         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
5525         diagnostic.
5526         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5527         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
5528         diagnostics.
5529         * config/i386/i386.c (ix86_option_override_internal): Write
5530         diagnostic as a single sentence without trailing '.'.  Use %' in
5531         diagnostics.
5532         (ix86_function_sseregparm, classify_argument): Start diagnostics
5533         with lowercase letters.
5534         (ix86_expand_prologue): Use %' in diagnostic.
5535         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
5536         diagnostic.
5537         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
5538         lowercase letter.
5539         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
5540         diagnostic.
5541         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5542         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
5543         '`' in help text.
5544         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
5545         lowercase letter.
5546         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
5547         lowercase letters.
5548         * config/microblaze/microblaze.c (microblaze_handle_option):
5549         Remove trailing '.' from diagnostic.
5550         (print_operand): Start diagnostic with a lowercase letter.
5551         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
5552         lowercase letters.  Avoid '`' in diagnostics.
5553         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
5554         lowercase letters.  Avoid '`' in diagnostics.
5555         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
5556         lowercase letters.  Avoid '`' in diagnostics.
5557         * config/picochip/picochip.c (picochip_option_override,
5558         picochip_emit_save_register, picochip_function_arg,
5559         picochip_output_label, picochip_output_internal_label,
5560         picochip_asm_output_opcode, picochip_output_cbranch,
5561         picochip_output_compare, picochip_output_branch,
5562         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
5563         diagnostics. Start diagnostics with lowercase letters.  Use %' in
5564         diagnostics.
5565         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
5566         "SPE" capitalization.  Start diagnostic with a lowercase letter.
5567         (rs6000_handle_option): Start diagnostics with lowercase letters.
5568         (def_builtin): Remove trailing '.' from diagnostic.
5569         (rs6000_savres_routine_name): Start diagnostic with a lowercase
5570         letter.
5571         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
5572         diagnostic.
5573         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
5574         lowercase letter.
5575         * config/s390/s390.c (s390_option_override) Start diagnostics with
5576         lowercase letters.  Use %' in diagnostic.
5577         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
5578         lowercase letters.
5579         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
5580         diagnostic.
5581         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
5582         diagnostic.
5583         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
5584         diagnostic.
5585         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5586         * config/spu/spu.c (spu_option_override): Start diagnostics with
5587         lowercase letters.  Use %qs for quoting in diagnostics.
5588         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
5589         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
5590         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
5591         from diagnostic.
5592         * convert.c (convert_to_integer, convert_to_vector): Use %' in
5593         diagnostics.
5594         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
5595         letter and use "cannot" spelling.
5596         * expmed.c (extract_fixed_bit_field): Start diagnostic with
5597         lowercase letter and format as a single sentence without '.'.
5598         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
5599         Use %' in diagnostics.
5600         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5601         Use %' in diagnostics.
5602         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5603         Use %' in diagnostics.
5604         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
5605         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
5606         with lowercase letters and remove tailing '.' and '\n'.
5607         * lto-cgraph.c (input_profile_summary): Start diagnostic with
5608         lowercase letter and remove trailing '.'.
5609         (input_cgraph): Start diagnostics with lowercase letters and
5610         remove trailing '\n'.
5611         * opts.c (finish_options, common_handle_option): Start diagnostics
5612         with lowercase letters and remove trailing '.'.  Fix typo in
5613         diagnostic.
5614         * passes.c (position_pass): Start diagnostic with lowercase letter.
5615         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
5616         register_callback, try_init_one_plugin): Start diagnostics with
5617         lowercase letters.
5618         * reload1.c (spill_failure): Use %' in diagnostic.
5619         (gen_reload): Start diagnostic with a lowercase letter.
5620         * stor-layout.c (place_field): Start diagnostic with a lowercase
5621         letter.
5622         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
5623         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
5624         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
5625         Start diagnostics with lowercase letters, remove trailing '.' and
5626         use %' in diagnostics.
5627         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
5628         (verify_ssa): Don't split diagnostic across two error calls.
5629         Spell out "number" and use %' in diagnostic.
5630         * value-prof.c (visit_hist, check_counter): Start diagnostics with
5631         lowercase letters.
5632
5633 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
5634
5635         PR middle-end/46419
5636         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
5637         (_mm_cvtpu16_ps): Ditto.
5638
5639 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5640
5641         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
5642         warn_larger_than, larger_than_size, warn_frame_larger_than,
5643         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
5644         default_visibility, flag_tls_default): New Variable declarations.
5645         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
5646         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
5647         (v): Declare as Common and document here.
5648         * flags.h (default_visibility, flag_generate_lto,
5649         warn_larger_than, larger_than_size, warn_frame_larger_than,
5650         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
5651         flag_shlib, flag_excess_precision_cmdline): Remove.
5652         (set_Wstrict_aliasing): Update prototype.
5653         * gcc.c (verbose_flag): Remove.
5654         (driver_handle_option): Add diagnostic_context parameter.  Don't
5655         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
5656         incrementing it.
5657         * opts-common.c (handle_option): Pass dc to handler.
5658         * opts.c (warn_larger_than, larger_than_size,
5659         warn_frame_larger_than, frame_larger_than_size,
5660         default_visibility): Remove.
5661         (common_handle_option): Add diagnostic_context parameter.
5662         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
5663         gcc_options parameters.
5664         (lang_handle_option, target_handle_option, read_cmdline_options,
5665         decode_options): Add diagnostic_context parameters.
5666         (finish_options): Access option state through opts pointer where
5667         possible.
5668         (common_handle_option): Access option state through opts pointer
5669         where possible.  Do not set local static variable verbose.  Do not
5670         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
5671         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
5672         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
5673         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
5674         OPT_fwhopr_.  Do not explicitly set .opt file variables for
5675         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
5676         (set_Wstrict_aliasing): Add gcc_options parameter.
5677         * opts.h (struct cl_option_handler_func): Add diagnostic_context
5678         parameter to handler.
5679         (decode_options): Add diagnostic_context parameter.
5680         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
5681         asm_file_name, flag_generate_lto, flag_gen_aux_info,
5682         aux_info_file_name, flag_shlib, flag_tls_default,
5683         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
5684         (toplev_main): Pass global_dc to decode_options.
5685         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
5686         aux_info_file_name, asm_file_name): Remove.
5687         * tree.h (flag_tls_default): Remove.
5688
5689 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
5690
5691         PR target/45986
5692         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
5693         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
5694
5695 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5696
5697         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
5698         (x86_64-*-*): Likewise.
5699         * config/i386/cpuid.h: Define TBM bit.
5700         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5701         and set has_tbm.
5702         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5703         isa_flag for TBM.
5704         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
5705         (OPTION_MASK_ISA_TBM_UNSET): New.
5706         (ix86_handle_option): Handle -mtbm.
5707         (isa_opts): Add -mtbm.
5708         (enum pta_flags): Add PTA_TBM.
5709         (ix86_option_override_internal): Add TBM support.
5710         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
5711         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
5712         (IX86_BUILTIN_BEXTRI64): Likewise.
5713         (bdesc_args): Add TBM intrinsics.
5714         (ix86_expand_builtin): Add TBM specific case.
5715         * config/i386/i386.h (TARGET_TBM): New for TBM.
5716         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
5717         (tbm_bextri_<mode>): Likewise.
5718         (*tbm_blcfill_<mode>): Likewise.
5719         (*tbm_blci_<mode>): Likewise.
5720         (*tbm_blcic_<mode>): Likewise.
5721         (*tbm_blcmsk_<mode>): Likewise.
5722         (*tbm_blcs_<mode>): Likewise.
5723         (*tbm_blsfill_<mode>): Likewise.
5724         (*tbm_blsic_<mode>): Likewise.
5725         (*tbm_t1mskc_<mode>): Likewise.
5726         (*tbm_tzmsk_<mode>): Likewise.
5727         * config/i386/i386.opt: Add -mtbm.
5728         * config/i386/tbmintrin.h (__bextri_u32): New.
5729         (__blcfill_u32): Likewise.
5730         (__blci_u32): Likewise.
5731         (__blcic_u32): Likewise.
5732         (__blcmsk_u32): Likewise.
5733         (__blcs_u32): Likewise.
5734         (__blsfill_u32): Likewise.
5735         (__blsic_u32): Likewise.
5736         (__t1mskc_u32): Likewise.
5737         (__tzmsk_u32): Likewise.
5738         (__bextri_u64): Likewise.
5739         (__blcfill_u64): Likewise.
5740         (__blci_u64): Likewise.
5741         (__blcic_u64): Likewise.
5742         (__blcmsk_u64): Likewise.
5743         (__blcs_u64): Likewise.
5744         (__blsfill_u64): Likewise.
5745         (__blsic_u64): Likewise.
5746         (__t1mskc_u64): Likewise.
5747         (__tzmsk_u64): Likewise.
5748         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
5749         * doc/invoke.texi: Document -mtbm.
5750         * doc/extend.texi: Document TBM built-in functions.
5751
5752 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5753
5754         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
5755         (x86_64-*-*): Likewise.
5756         * config/i386/cpuid.h: Define BMI bit.
5757         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5758         and set has_bmi.
5759         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5760         isa_flag for BMI.
5761         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
5762         (OPTION_MASK_ISA_BMI_UNSET): New.
5763         (ix86_handle_option): Handle -mbmi.
5764         (isa_opts): Add -mbmi.
5765         (enum pta_flags): Add PTA_BMI.
5766         (ix86_option_override_internal): Add BMI support.
5767         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
5768         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
5769         (IX86_BUILTIN_BEXTR64): Likewise.
5770         (IX86_BUILTIN_CTZS): Likewise.
5771         (bdesc_args): Add BMI intrinsics.
5772         (ix86_expand_args_builtin): Add BMI specific cases.
5773         * config/i386/i386.h (TARGET_BMI): New for BMI.
5774         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
5775         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
5776         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
5777         (UNSPEC_TZCNT): Likewise.
5778         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
5779         (bmi_andn_<mode>): New for BMI.
5780         (bmi_bextr_<mode>): Likewise.
5781         (bmi_blsi_<mode>): Likewise.
5782         (bmi_blsmsk_<mode>): Likewise.
5783         (bmi_blsr_<mode>): Likewise.
5784         * config/i386/i386.opt: Add -mbmi.
5785         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
5786         * config/i386/bmiintrin.h (__lzcnt_u16): New.
5787         (__tzcnt_u16): Likewise.
5788         (__andn_u32): Likewise.
5789         (__bextr_u32): Likewise.
5790         (__blsi_u32): Likewise.
5791         (__blsmsk_u32): Likewise.
5792         (__blsr_u32): Likewise.
5793         (__lzcnt_u32): Likewise.
5794         (__tzcnt_u32): Likewise.
5795         (__andn_u64): Likewise.
5796         (__bextr_u64): Likewise.
5797         (__blsi_u64): Likewise.
5798         (__blsmsk_u64): Likewise.
5799         (__blsr_u64): Likewise.
5800         (__lzcnt_u64): Likewise.
5801         (__tzcnt_u64): Likewise.
5802         * doc/invoke.texi: Document -mbmi and -mno-bmi.
5803         * doc/extend.texi: Document BMI built-in functions.
5804
5805 2010-11-10  Jan Hubicka  <jh@suse.cz>
5806
5807         PR tree-optimize/46228
5808         * doc/invoke.texi (comdat-sharing-probability): Document.
5809         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
5810         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
5811
5812 2010-11-10  Jan Hubicka  <jh@suse.cz>
5813
5814         PR tree-optimize/46228
5815         * cgraph.c (cgraph_propagate_frequency): Fix typo.
5816
5817 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
5818
5819         PR tree-optimization/46414
5820         * tree-inline.c (estimate_move_cost): Check preferred vector
5821         mode for vector type.
5822
5823 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5824
5825         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
5826
5827 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
5828
5829         PR tree-optimization/45971
5830         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
5831         for phi nodes analyzable by scev.
5832
5833 2010-11-10  Richard Guenther  <rguenther@suse.de>
5834
5835         PR tree-optimization/44964
5836         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
5837
5838 2010-11-10  Martin Jambor  <mjambor@suse.cz>
5839
5840         PR tree-optimization/46351
5841         PR tree-optimization/46377
5842         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
5843         aggregate bit-fields.
5844
5845 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5846
5847         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5848         * doc/tm.texi: Regenerate.
5849         * opts-common.c (tm.h): Don't include.
5850         (target_option_translations): Remove.
5851         (decode_cmdline_options_to_array): Don't handle translating options.
5852         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
5853         * config/darwin-driver.c: Don't condition includes on
5854         CROSS_DIRECTORY_STRUCTURE.
5855         (darwin_default_min_version): Make static.
5856         (darwin_driver_init): New.  Call darwin_default_min_version if not
5857         CROSS_DIRECTORY_STRUCTURE.
5858         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5859         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
5860         (ASM_SPEC): Add %{static}.
5861         (darwin_default_min_version): Don't declare.
5862         (darwin_driver_init): Declare.
5863         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
5864         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
5865         * config/darwin.opt (all_load, allowable_client,
5866         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
5867         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
5868         exported_symbols_list, filelist, findirect-virtual-calls,
5869         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
5870         framework, fterminated-vtables, gfull, gused, image_base, init,
5871         install_name, multi_module, multiply_defined,
5872         multiply_defined_unused, no_dead_strip_inits_and_terms,
5873         seg_addr_table, seg_addr_table_filename, segaddr,
5874         segs_read_only_addr, segs_read_write_addr, single_module,
5875         umbrella, unexported_symbols_list, weak_reference_mismatches,
5876         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
5877         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
5878         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
5879         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
5880         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
5881         (ASM_SPEC): Add %{static}.
5882         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
5883         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5884         (DRIVER_SELF_SPECS): Handle options formerly in
5885         TARGET_OPTION_TRANSLATE_TABLE.
5886         * config/mep/mep.opt (mfar): New.
5887         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5888         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
5889         TARGET_OPTION_TRANSLATE_TABLE.
5890         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
5891         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
5892         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
5893         ffix-and-continue, findirect-data): New.
5894         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
5895         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
5896         (mnofpu): Define mask and use Report here.
5897
5898 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5899
5900         * config/s390/s390.c (s390_emit_prologue): Report the stack
5901         size if -fstack-usage is used.
5902
5903 2010-11-10  Richard Guenther  <rguenther@suse.de>
5904
5905         PR tree-optimization/46398
5906         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
5907
5908 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
5909
5910         PR target/44760
5911         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
5912         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
5913         GP_REG_OR_PSEUDO_STRICT_P.
5914         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
5915         unexpected alternative.
5916         (*movsf_internal): Likewise.
5917         (indirect_jump): Replace call to non-existant function with call to
5918         internal_error.
5919         (tablejump): Likewise.
5920         * config/iq2000/iq2000.c: Include df.h .
5921         (iq2000_function_arg_advance): Use CONST_CAST2.
5922         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
5923         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
5924         a non-zero function address.
5925         (iq2000_initial_elimination_offset): Add gcc_unreachable for
5926         unexpected value of FROM.
5927         (symbolic_expression_p): Delete.
5928         (iq2000_function_value): Constify func.
5929         (expand_one_builtin): Use expand_normal.
5930         (iq2000_print_operand): Don't print VALUE if calculating it failed.
5931
5932         PR rtl-optimization/44764
5933         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
5934
5935         PR target/46407
5936         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
5937         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
5938         with ATTRIBUTE_UNUSED.
5939         (valid_psw_flag): Constify parameter which.
5940         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
5941
5942         PR target/46415
5943         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
5944         (mmix_dbx_register_number): Likewise.
5945         * config/mmix/mmix.c: Include df.h .
5946         (mmix_local_alignment): Change argument basic_align and return type
5947         to unsigned.
5948         (mmix_dbx_register_number): Change argument and return type to
5949         unsigned.
5950         (mmix_expand_prologue): Use add_reg_note.
5951
5952         PR target/46417
5953         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
5954         (spu_split_store): Use aform.
5955         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
5956
5957 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5958
5959         PR/46268
5960         * doc/gty.texi (GTY Options): Clarify that variable_size produces
5961         allocators taking size in bytes, compare with length option.  Add
5962         size calculation example.
5963         (Invoking the garbage collector): Ensure that sentences are
5964         followed by two spaces.  Describe that pointer fields must be
5965         initialized at ggc_collect call.
5966         (Troubleshooting): New section.
5967
5968 2010-11-09  Jan Hubicka  <jh@suse.cz>
5969
5970         PR tree-optimization/40436
5971         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
5972         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
5973         normal instructions; be sure bultin is not implemented in this file;
5974         compute non-zero return cost.
5975         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
5976         * tree-inline.h (eni_weights_d): Add return cost.
5977
5978 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
5979
5980         * c-parser.c (c_parser_struct_declaration): Handle declaration
5981         specifiers followed by CPP_CLOSE_BRACE.
5982
5983 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
5984
5985         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
5986         split occurs before reload, and we allocate memory at the time of
5987         the split, not during expansion.  Add attributes.
5988         (floatsi<mode>2_lfiwax_mem): Ditto.
5989         (floatunssi<mode>2_lfiwzx): Ditto.
5990         (floatunssi<mode>2_lfiwzx_mem): Ditto.
5991         (floatsidf2): Ditto.
5992         (floatunssisf2): Ditto.
5993         (floatunssidf2): Ditto.
5994         (fix_trunc<mode>si2): Ditto.
5995         (fix_trunc<mode>si2_stfiwx): Ditto.
5996         (fix_trunc<mode>si2_internal): Ditto.
5997         (fix_trunc<mode>si2): Ditto.
5998         (fix_trunc<mode>di2): Ditto.
5999         (fixuns_trunc<mode>si2_stfiwx): Ditto.
6000         (floatsisf2): Ditto.
6001         (floatdidf2_mem): Ditto.
6002         (floatunsdidf2_mem): Ditto.
6003         (floatunsdidf2): Ditto.
6004         (floatdisf2_internal1): Ditto.
6005         (floatdisf2_mem): Ditto.
6006         (floatunsdisf2_mem): Ditto.
6007         (floatsi<mode>2_lfiwax_mem2): Delete.
6008         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
6009         (fix_trunc<mode>si2_mem): Ditto.
6010         (fixuns_trunc<mode>si2_mem): Ditto.
6011         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
6012         type operations to reduce copying the values to multiple memory slots.
6013         (roundu32<mode>2_fprs): Ditto.
6014
6015         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
6016         PRE_INC, PRE_DEC, PRE_MODIFY.
6017         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
6018
6019         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
6020         Delete prototype.
6021
6022 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6023
6024         PR target/43808
6025         * cfgexpand.c (partition_stack_vars): Call
6026         update_alias_info_with_stack_vars unconditionally.
6027         (update_alias_info_with_stack_vars): Allow unused
6028         unreferenced vars when not optimizing.
6029
6030 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
6031
6032         PR tree-optimization/46036
6033         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
6034         add_to_dst_predicate_list.
6035
6036 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6037
6038         PR debug/46171
6039         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
6040         earlier.
6041         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
6042         argument, call dead_debug_reset when adding REG_UNUSED note.
6043         (dead_debug_reset): New function.
6044         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
6045         df_create_unused_note callers.
6046
6047 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
6048
6049         * config/fr30/fr30.c: Include "df.h".
6050
6051 2010-11-09  Richard Guenther  <rguenther@suse.de>
6052
6053         PR tree-optimization/46355
6054         * tree-loop-distribution.c (tree_loop_distribution): Do not
6055         distribute loops without a single exit.
6056
6057 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6058
6059         PR rtl-optimization/46237
6060         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
6061         saved hard regs if they might get partially clobbered.
6062
6063 2010-11-09  Paul Koning  <ni1d@arrl.net>
6064
6065         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
6066
6067 2010-11-09  Richard Guenther  <rguenther@suse.de>
6068
6069         PR tree-optimization/46177
6070         * tree-loop-distribution.c (prop_phis): Remove.
6071         (generate_builtin): Re-use the old loop exit edge to avoid
6072         needing to update PHI nodes.
6073
6074 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
6075
6076         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
6077         type of args_size to unsigned HOST_WIDE_INT.
6078
6079         PR target/44755
6080         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
6081         * config/t-pnt16-warn: New file.
6082         * config/picochip/picochip.c (picochip_emit_stack_allocate):
6083         Use add_reg_note.
6084         (picochip_emit_save_register): Likewise.
6085         (picochip_emit_restore_register): Remove variable insn.
6086         (picochip_legitimize_address): Don't use C++ style comments.
6087         (picochip_legitimize_reload_address): Likewise.
6088         (reorder_var_tracking_notes): Remove variable vliw_start.
6089         (picochip_reorg): Cast first arguemnt to emit_note_after to
6090         enum insn_note.
6091         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
6092         (picochip_expand_builtin_3op): Likewise.
6093         (picochip_expand_builtin_2opvoid): Likewise.
6094         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
6095         (picochip_expand_array_testport): Likewise.
6096         (picochip_init_builtins): Remove unused variables.
6097         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
6098         to unsigned long, and output it as such.
6099         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
6100         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
6101         (schedType): Cast result of picochip_schedule_type to
6102         enum attr_schedType.
6103
6104         PR target/44759
6105         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
6106         conditional to type of S.
6107         (mn10300_function_arg): Remove unused variable align.
6108         (mn10300_arg_partial_bytes): Likewise.
6109         * config/mn10300/mn10300.md (attribute cpu): Cast value to
6110         enum attr_cpu.
6111
6112 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
6113
6114         PR bootstrap/46392
6115         * gengtype-parse.c (type): Call get_input_file_name to get file name.
6116
6117 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
6118
6119         * tree.h (contains_placeholder_p): Fix comment.
6120         (type_contains_placeholder_p): Adjust comment.
6121         * tree.c (contains_placeholder_p): Fix comment.
6122         (type_contains_placeholder_1): Do not recurse on pointed-to types and
6123         adjust comment.
6124         (type_contains_placeholder_p): Add comment.
6125
6126 2010-11-09  Paul Koning  <ni1d@arrl.net>
6127
6128         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
6129         output of byte values.
6130
6131 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6132
6133         PR middle-end/46360
6134         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
6135         not in SSA mode.
6136
6137 2010-11-09  Richard Guenther  <rguenther@suse.de>
6138
6139         PR middle-end/46221
6140         * varasm.c (compute_visible_aliases): New function.
6141         (remove_unreachable_alias_pairs): Aliases make a target available
6142         even though we reclaimed the cgraph node.
6143         (finish_aliases_1): Likewise.
6144         * Makefile.in (varasm.o): Add pointer-set.h dependency.
6145
6146 2010-11-09  Nick Clifton  <nickc@redhat.com>
6147
6148         * config/mn10300/mn10300-modes.def: New file.
6149
6150 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
6151             Jeremie Salvucci  <jeremie.salvucci@free.fr>
6152
6153         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
6154         (plugin_files, get_file_basename, get_file_realbasename)
6155         (get_file_langdir, error_at_line, gt_files, this_file)
6156         (system_h_file, read_input_list, create_field_all)
6157         (get_file_srcdir_relative_path, get_file_basename)
6158         (get_file_langdir, get_file_gtfilename)
6159         (get_output_file_with_visibility, get_output_file_name)
6160         (struct flist, put_mangled_filename, walk_type)
6161         (put_mangled_filename, finish_root_table, write_roots): Use
6162         input_file-s.
6163         (lang_dir_names, num_lang_dirs): Remove static.
6164         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
6165         (main): Use input_file-s.
6166
6167         * gengtype.h: (struct input_file_st, input_file): New type.
6168         (struct fileloc): Use it.
6169         (gt_files, num_gt_files, this_file, system_h_file)
6170         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
6171         (get_input_file_name): New function.
6172         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
6173         use input_file.
6174         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
6175         (get_output_file_name): Ditto.
6176
6177         * gengtype-lex.l (yybegin): Use input_file.
6178
6179         * gengtype-parse.c (parse_error): Use input_file.
6180
6181 2010-11-08  Xinliang David Li  <davidxl@google.com>
6182
6183         PR tree-optimization/46316
6184         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
6185         * double-int.h (double_int_mul_with_sign): New function.
6186         * double-int.c (double_int_mul_with_sign): New function.
6187
6188 2010-11-08  Paul Koning  <ni1d@arrl.net>
6189
6190         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
6191
6192 2010-11-08  Paul Koning  <ni1d@arrl.net>
6193
6194         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
6195
6196 2010-11-08  Paul Koning  <ni1d@arrl.net>
6197
6198         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
6199         to 8 bits.
6200
6201 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
6202
6203         PR target/46378
6204         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6205         turn on ISA 2.04 rounding instructions for power5.
6206
6207         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
6208         not ISA 2.02.
6209
6210         PR target/45585
6211         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
6212         in FPR registers.
6213         (movdi_low_st): Ditto.
6214
6215 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
6216             Richard Henderson  <rth@redhat.com>
6217
6218         PR target/44758
6219         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
6220         (attribute acc_group): Cast value to enum attr_acc_group.
6221         (*movdi_nodouble+6): Use gen_int_mode.
6222         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
6223         if RTX_CODE is defined or not.
6224         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
6225         struct frv_io.
6226         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
6227         (frv_frame_access, frv_expand_prologue): Remove unused variables.
6228         (frv_expand_block_clear): Likewise.
6229         (frv_trampoline_init): Use LCT_NORMAL.
6230         (struct frv_packet_group): New struct, broken out of type of
6231         frv_packet.
6232         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
6233         use cast in loop counter increment.
6234         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
6235         assigning to io->type.
6236         (bdesc_set): Use rtx_code UNKNOWN in initializer.
6237         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
6238         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
6239         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
6240         (frv_read_argument): Use expand_normal.
6241
6242         PR target/44757
6243         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
6244         lm32_legitimate_constant_p.
6245         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
6246         * config/lm32/lm32.c (gen_int_relational): Make new block for
6247         LE / LT / LEU / LTU case.  Declare variables at start of block.
6248         (lm32_block_move_inline): Use XALLOCAVEC.
6249
6250 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6251
6252         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
6253
6254 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
6255
6256         * gengtype (get_output_file_for_structure): Ensure type is union
6257         or struct.
6258         (write_splay_tree_allocator_def): Use
6259         get_output_file_with_visibility.
6260
6261 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6262
6263         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
6264         to defined values in case of an error.
6265         (s390_option_override): Skip further processing if the -march
6266         parameter wasn't recognized.
6267
6268 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
6269
6270         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
6271         assert that REG is a hard register number before using it as an index.
6272
6273         PR bootstrap/46358
6274         * config/i386/i386.c (ix86_expand_split_stack_prologue):
6275         Avoid warnings when HOST_WIDE_INT is 32 bit.
6276
6277 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
6278
6279         PR target/46208
6280         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
6281         (sparc_promote_prototypes): Likewise.
6282         (sparc_promote_function_mode): Promote in 32-bit mode as well.
6283         (sparc_return_in_memory): Remove superfluous parentheses.
6284         (sparc_struct_value_rtx): Fix long lines.
6285         (sparc_function_value_1): Promote in 32-bit mode as well.
6286
6287 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
6288
6289         PR rtl-optimization/45352
6290         * sel-sched.c (find_best_expr): Do not set pneed_stall when
6291         the variable_issue hook is not implemented.
6292         (fill_insns): Remove dead variable stall_iterations.
6293         (init_seqno_1): Force EBB start for resetting sched cycles on any
6294         successor blocks of the rescheduled region.
6295         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
6296         (reset_sched_cycles_in_current_ebb): Add debug printing.
6297         New variable issued_insns.  Advance state when we have issued
6298         issue_rate insns.
6299
6300 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
6301
6302         * gengtype (main): Get here's position using POS_HERE macro for
6303         do*typedef calls.
6304
6305 2010-11-07  Ian Lance Taylor  <iant@google.com>
6306
6307         PR target/46089
6308         * config/i386/i386.c (split_stack_fn_large): New static variable.
6309         (ix86_expand_split_stack_prologue): Handle large model.
6310
6311 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
6312
6313         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
6314         all possible addressing modes.
6315
6316 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
6317
6318         PR tree-optimization/46346
6319         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
6320
6321 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
6322
6323         * config/mips/mips.c: Revert previous patch.
6324         * config/mips/mips.md: Likewise.
6325
6326 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
6327
6328         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
6329         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
6330         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
6331         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
6332         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
6333         to use FMA.
6334         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
6335         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
6336         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
6337         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
6338
6339 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
6340
6341         PR c/43384
6342         * c-decl.c (lookup_label): Labels can only be referenced in a
6343         function's scope.
6344         (store_parm_decls_oldstyle): Skip erroneous parameters.
6345
6346 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
6347
6348         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6349         LIBCALL_VALUE): Remove macros.
6350         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6351         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6352         (fr30_function_value_regno_p, fr30_function_value,
6353         fr30_libcall_value): New functions.
6354
6355 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
6356
6357         PR middle-end/46314
6358         * target.def (generate_internal_label): New asm_out hook.
6359         * output.h (default_generate_internal_label): Declare.
6360         * varasm.c (default_generate_internal_label): Define.
6361
6362 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
6363
6364         PR target/44981
6365         * doc/extend.tex (format): Document NSString extension.
6366         (format_arg): Likewise.
6367         (Darwin Format Checks): New section.
6368         * doc/tm.texi: Document string object hooks (generated).
6369         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
6370         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
6371         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
6372         * target.def (objc_construct_string_object): Rename, amend
6373         documentation.
6374         (string_object_ref_type_p): New hook.
6375         (check_string_object_format_arg): New hook.
6376         * c-parser.c (c_parser_attributes): Allow objective-c class names as
6377         attribute identifiers.
6378         * config/darwin-c.c (darwin_cfstring_ref_p): New.
6379         (darwin_check_cfstring_format_arg): New.
6380         (darwin_additional_format_types): New.
6381         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
6382         (darwin_check_cfstring_format_arg): New.
6383         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
6384         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
6385         (TARGET_N_FORMAT_TYPES): New.
6386         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
6387
6388 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
6389             Pascal Obry  <obry@adacore.com>
6390
6391         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
6392         in 64-bit mode and 17 otherwise.
6393
6394 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6395
6396         PR debug/45939
6397         * var-tracking.c (emit_note_insn_var_location): Make sure that
6398         call related var location notes come before the normal ones.
6399
6400 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6401
6402         PR target/46326
6403         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
6404         in the last change.
6405
6406 2010-11-05  Ian Lance Taylor  <iant@google.com>
6407
6408         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
6409
6410 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6411
6412         PR c/44772
6413         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
6414         pointer_set_contains if DECL_NAME is NULL.
6415
6416 2010-11-05  Ian Lance Taylor  <iant@google.com>
6417
6418         PR target/46084
6419         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
6420         request enough additional space for alignment, and force alignment.
6421
6422 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
6423
6424         * config/i386/i386.c (legitimate_pic_address_disp_p):
6425         Handle UNSPEC_PCREL.
6426         (ix86_legitimate_address_p): Likewise.
6427         (legitimize_pic_address): Likewise.
6428         (output_pic_addr_const): Likewise.
6429         (ix86_delegitimize_address): Likewise.
6430         (ix86_find_base_term): Likewise.
6431         (memory_address_length): Likewise.
6432         (x86_output_mi_thunk): Handle special case x64
6433         for non local binding.
6434         * config/i386/i386.md (UNSPEC_PCREL): New.
6435         * config/i386/winnt.c (i386_pe_binds_local_p):
6436         Allow weak symbol for x64 windows with non-local binding.
6437
6438 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6439
6440         PR target/45670
6441         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
6442         instead of EXPAND_NORMAL for base expansion.
6443
6444 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
6445
6446         * config.gcc: Support --with-fpmath=avx for x86.
6447         * config/i386/avxmath.h: New.
6448         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
6449
6450 2010-11-05  Ian Lance Taylor  <iant@google.com>
6451
6452         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
6453         * gengtype.c (walk_type): Don't recognize descbits option.
6454
6455 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
6456
6457         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
6458         WORD_SWITCH_TAKES_ARG): Remove.
6459         * doc/options.texi (Args): Document.
6460         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
6461         * doc/tm.texi: Regenerate.
6462         * opt-functions.awk (switch_flags): Handle Args.
6463         * opts-common.c: Update comment on tm.h include.
6464         (decode_cmdline_option): Handle options with multiple arguments.
6465         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
6466         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
6467         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
6468         CL_COMMON): Update values.
6469         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
6470         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
6471         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
6472         sectobjectsymbols, sectorder, segcreate, segprot): New.
6473
6474 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6475             Uros Bizjak  <ubizjak@gmail.com>
6476
6477         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
6478         256bit AVX register is used.
6479         (ix86_expand_vector_move_misalign): Likewise.
6480         (ix86_expand_vector_move): Replace use_avx256_p with
6481         VALID_AVX256_REG_MODE.
6482
6483 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
6484
6485          PR target/44750
6486         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
6487         change.  Set $@-warn.o to -Wno-error.
6488
6489         PR bootstrap/44756
6490         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
6491         comparing it to a signed value.
6492
6493         PR middle-end/44766
6494         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
6495         PR bootstrap/44770
6496         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
6497         to i.
6498
6499         PR target/44754
6500         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
6501         (m32c_function_arg).  Add comma between arguments two and three.
6502         (m32c_promote_prototypes): Remove declaration.
6503         (current_function_special_page_vector): Likewise.
6504         (m32c_regno_reg_class): Change return type to enum reg_class.
6505         (m32c_pushm_popm): Use add_reg_note.
6506         (m32c_push_rounding): Change return type to unsigned int.
6507         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
6508         enum reload_type.
6509         (m32c_insert_attributes): Constify variable name.
6510         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
6511         (m32c_prepare_shift): Remove variable lref.
6512         (m32c_expand_movcc): Remove variable cmp.
6513         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
6514         (m32c_compare_redundant): Remove variable op2.
6515         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
6516         (m32c_pragma_memregs): Assign the number to target_memregs.
6517         (m32c_pragma_address): Remove variable var_str.
6518         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
6519         enum reg_class.
6520         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
6521         * config/m32c/bitops.md (andsi3): Add default case to switch.
6522         (iorsi3, xorsi3): Likewise.
6523         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
6524         * config/m32c/jump.md (call, call_value): Likewise.
6525         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
6526         (m32c_regno_reg_class): Likewise.
6527         (current_function_special_page_vector): Declare.
6528
6529 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6530
6531         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
6532
6533         PR tree-optimization/46099
6534         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
6535         if it is NULL and uid wasn't found in the hash table.  Just fold the
6536         result if it is NULL otherwise.  Insert other potentially needed
6537         stmts right before current stmt instead of on the entry edge.
6538         (struct elv_data): Add gsi and reset fields.
6539         (eliminate_local_variables_1): Adjust caller.  If take_address_of
6540         failed for debug stmt, set dta->reset and return.
6541         (eliminate_local_variables_stmt): Change STMT argument for GSI,
6542         pass GSI through to the callback, handle resetting of debug stmts.
6543         (eliminate_local_variables): Adjust caller.  Process debug stmts
6544         in second phase.
6545
6546         PR middle-end/43690
6547         * gimplify.c (gimplify_asm_expr): If a "m" input is a
6548         {pre,post}{in,de}crement, fail.
6549
6550         PR debug/46307
6551         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
6552         * tree-pretty-print.c (dump_generic_node): Likewise.
6553         (op_code_prio): Likewise.
6554         * cfgexpand.c (expand_debug_expr): Likewise.
6555
6556 2010-11-04  Paul Koning  <ni1d@arrl.net>
6557
6558         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
6559         constraints.
6560
6561 2010-11-04  Chao-ying Fu  <fu@mips.com>
6562
6563         * configure.ac: Test assembler support for DSP Rev1 mult.
6564         * configure: Regenerate.
6565         * config.in: Regenerate.
6566         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
6567         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
6568         (CODE_FOR_mips_multu): New define.
6569         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
6570         dspr2_32 to dsp_32.
6571         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
6572         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
6573         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
6574         New define_expand patterns.
6575         * config/mips/constraints.md (ka): Update the constraint to test
6576         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
6577         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
6578         mips_multu): Delete.
6579         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
6580         Change target constraint to "ka".
6581         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
6582         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
6583         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6584         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
6585         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6586         (<u>maddsidi4): Likewise.
6587         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
6588         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
6589
6590 2010-11-04  Paul Koning  <ni1d@arrl.net>
6591
6592         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
6593
6594 2010-11-04  Paul Koning  <ni1d@arrl.net>
6595
6596         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
6597
6598 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
6599
6600         Fixed using the Objective-C 2.0 dot-syntax with class names.
6601         * c-parser.c (c_parser_next_token_starts_declspecs): In
6602         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
6603         (c_parser_next_token_starts_declaration): Same.
6604         (c_parser_postfix_expression): Parse the Objective-C 2.0
6605         dot-syntax with a class name.
6606
6607 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
6608
6609         * final.c (compute_alignments): Compute/free loop info all the time.
6610         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
6611         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
6612         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
6613         * config/rs6000/rs6000.c (cfgloop.h): Include.
6614         (can_override_loop_align): New.
6615         (rs6000_option_override_internal): Set it.
6616         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
6617         (rs6000_loop_align): New function.
6618         (rs6000_loop_align_max_skip): Likewise.
6619
6620 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6621
6622         PR driver/45703
6623         * collect2.c (main): Print --help output to stdout.  Do not
6624         exit right away, so ld --help is appended.  Add empty lines
6625         to separate output suitably.
6626
6627 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
6628
6629         PR tree-optimization/46233
6630         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
6631         after calling analyze_function, not before.
6632
6633         PR target/46234
6634         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
6635         instead of build_va_arg_indirect_ref.
6636         * config/spu/spu.c (spu_va_start): Likewise.
6637         * config/s390/s390.c (s390_va_start): Likewise.
6638
6639 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
6640
6641         PR middle-end/46292
6642         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
6643         if the innermode is not vector mode, determine the mode of a subreg
6644         by using mode_for_size of inner_size.
6645
6646 2010-11-04  Richard Guenther  <rguenther@suse.de>
6647
6648         PR rtl-optimization/46183
6649         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
6650         (execute_rtl_pre): Likewise.
6651         (execute_rtl_hoist): Likewise.
6652
6653 2010-11-04  Richard Guenther  <rguenther@suse.de>
6654
6655         PR tree-optimization/46068
6656         * ipa-split.c (consider_split): Remove gcc_unreachable.
6657
6658 2010-11-04  Richard Guenther  <rguenther@suse.de>
6659
6660         * tree-nested.c (build_addr): Use build_fold_addr_expr.
6661
6662 2010-11-04  Richard Guenther  <rguenther@suse.de>
6663
6664         PR tree-optimization/45991
6665         * gimplify.c (force_gimple_operand_1): Use the provded test
6666         function in the initial test.
6667
6668 2010-11-04  Jeff Law  <law@redhat.com>
6669
6670         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
6671         of readonly memory equivalances for const/pure calls.
6672
6673 2010-11-04  Richard Guenther  <rguenther@suse.de>
6674
6675         PR tree-optimization/45733
6676         * tree-vect-stmts.c (reverse_vec_elements): Honor the
6677         permute builtins function return type.
6678
6679 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
6680
6681         PR middle-end/44765
6682         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
6683         as an index, check it is not INVALID_REGNUM.
6684
6685         PR bootstrap/44756
6686         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
6687         unsignedp.
6688         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
6689
6690         PR bootstrap/44756
6691         * function.c (thread_prologue_and_epilogue_insns): Add
6692         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
6693
6694         PR bootstrap/44756
6695         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
6696
6697         PR target/44750
6698         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
6699         (pdp11_preferred_reload_class): Rename class to rclass.
6700         (pdp11_preferred_output_reload_class): Likewise.
6701         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
6702         ALL_COMPILERFLAGS .
6703         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
6704
6705         PR bootstrap/44756
6706         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
6707         iteration variables to enum machine_mode.
6708
6709         PR target/44751
6710         * config/h8300/h8300.c: Include df.h.
6711         (push, pop): Use add_reg_note.
6712         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
6713         (compute_a_shift_cc): Likewise.
6714         (expand_a_shift): Argument code has type enum rtx_code.
6715         (struct shift_insn): Member cc_valid has type enum attr_cc.
6716         (struct shift_info) <cc_inline, cc_special>: Likewise.
6717         enum attr_cc.
6718         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
6719         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
6720
6721 2010-11-04  Ira Rosen  <irar@il.ibm.com>
6722
6723         PR tree-optimization/46213
6724         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
6725         MINUS_EXPR only if the first operand is reduction operand.
6726
6727 2010-11-04  Richard Guenther  <rguenther@suse.de>
6728             Richard Henderson  <rth@redhat.com>
6729
6730         * tree.def (FMA_EXPR): New tree code.
6731         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
6732         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
6733         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
6734         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
6735         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
6736         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
6737         (execute_optimize_widening_mul): Call it.  Reorganize to allow
6738         dead stmt removal.  Move TODO flags ...
6739         (pass_optimize_widening_mul): ... here.
6740         * flag-types.h (enum fp_contract_mode): New enum.
6741         * common.opt (flag_fp_contract_mode): New variable.
6742         (-ffp-contract): New option.
6743         * opts.c (common_handle_option): Handle it.
6744         * doc/invoke.texi (-ffp-contract): Document.
6745         * tree.h (fold_fma): Declare.
6746         * builtins.c (fold_fma): New function.
6747         (fold_builtin_fma): Likewise.
6748         (fold_builtin_3): Call it for fma.
6749         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
6750         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
6751         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
6752         New expanders.
6753         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
6754         named patterns.
6755         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
6756         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
6757         (fms_optab, fnma_optab, fnms_optab): New defines.
6758         * gimplify.c (gimplify_expr): Handle binary truth expressions
6759         explicitly.  Handle FMA_EXPR.
6760         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
6761         operations.
6762
6763 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6764             Richard Guenther  <rguenther@suse.de>
6765
6766         * passes.c (init_optimization_passes): Move veclower after SSA.
6767         * tree-vect-generic.c (uniform_vector_p): New function.
6768         (expand_vector_operations_1): Handle conversion.
6769         (pass_lower_vector): Update SSA form.
6770
6771 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
6772
6773         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
6774         plugin capabilities.
6775         * configure: Regenerate.
6776
6777 2010-11-03  Xinliang David Li  <davidxl@google.com>
6778
6779         PR target/46200
6780         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
6781         Adjust cbase if the use stmt is after iv update.
6782
6783 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6784
6785         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
6786
6787 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6788
6789         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
6790         comment.  Pass true to the last argument of output_stack_adjust.
6791
6792 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6793
6794         PR target/46295
6795         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
6796         if 256bit AVX register is used.
6797
6798 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
6799
6800         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
6801         xsmindp/xsmaxdp on VSX for single precision min/max.
6802         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
6803         (vsx_sminsf3): Ditto.
6804
6805 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
6806
6807         * combine.c (try_combine): Fix formatting issues, improve comments and
6808         fix a pasto.
6809
6810 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
6811
6812         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
6813         of the result before building binary expressions.
6814
6815 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6816
6817         PR rtl-optimization/45865
6818         * Makefile.in (df-problems.o): Revert revision 164552.
6819         * basic-block.h (enum bb_flags): Likewise.
6820         * cfgcleanup.c (block_was_dirty): Likewise.
6821         (try_forward_edges): Likewise.
6822         (try_crossjump_bb): Likewise.
6823         (try_head_merge_bb): Likewise.
6824         (try_optimize_cfg): Likewise.
6825         (cleanup_cfg): Likewise.
6826         * df-core.c (df_set_bb_dirty): Likewise.
6827         * df-problems.c: Likewise.
6828         (df_simulate_find_uses): Likewise.
6829         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
6830         (find_memory, find_memory_store): Likewise.
6831         (can_move_insns_across): Likewise.
6832         * df.h (can_move_insns_across): Likewise.
6833         * ifcvt.c (find_memory): Likewise.
6834         (dead_or_predicable): Likewise.
6835
6836 2010-11-03  Richard Guenther  <rguenther@suse.de>
6837
6838         PR middle-end/46288
6839         * predict.c (strip_predict_hints): Simply DCE builtin expect if
6840         the result is unused.
6841
6842 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6843
6844         PR tree-optimization/46009
6845         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
6846         cond_if_else_store_replacement if bb1 and bb2 have the same
6847         single successor.
6848         (cond_store_replacement): Use gimple_assign_single_p, don't
6849         check if rhs is SSA_NAME or invariant.  Call release_defs for
6850         assign.
6851         (cond_if_else_store_replacement): New function.
6852
6853 2010-11-03  Richard Guenther  <rguenther@suse.de>
6854
6855         * opts.c (finish_options): Properly check for all WHOPR
6856         flags before complaining about -flto-partition.
6857
6858 2010-11-04  Alan Modra  <amodra@gmail.com>
6859
6860         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
6861         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
6862         TARGET_SECURE_PLT.
6863         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
6864         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
6865         on input, "r" on output.
6866
6867 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
6868
6869         Implemented -fobjc-std=objc1 flag.
6870         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
6871         option.
6872         * doc/standards.texi (Standards): Updated the section on
6873         Objective-C; mention support for Objective-C 2.0 features and the
6874         new -fstd-objc=objc1 flag to disable them.
6875
6876 2010-11-03  Richard Guenther  <rguenther@suse.de>
6877
6878         PR middle-end/46241
6879         * dwarf2out.c (scope_die_for): Properly detect global scope.
6880
6881 2010-11-03  Richard Guenther  <rguenther@suse.de>
6882
6883         PR tree-optimization/46190
6884         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6885         Properly compute peel iterations.
6886
6887 2010-11-03  Richard Guenther  <rguenther@suse.de>
6888
6889         PR tree-optimization/46286
6890         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
6891         re-allocated vector data.
6892
6893 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
6894
6895         PR target/46285
6896         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
6897         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
6898         is completed.
6899
6900 2010-11-03  Richard Guenther  <rguenther@suse.de>
6901
6902         PR tree-optimization/46217
6903         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
6904         flag matches.
6905         (execute_update_addresses_taken): Likewise.
6906
6907 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
6908
6909         PR bootstrap/44335
6910         * targhooks.c (targhook_words_big_endian): New function.
6911         (targhook_float_words_big_endian): Likewise.
6912         * targhooks.h (targhook_words_big_endian): Declare.
6913         (targhook_float_words_big_endian): Likewise.
6914         * target.def (words_big_endian, float_words_big_endian): New hooks.
6915
6916 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6917
6918         PR tree-optimization/46165
6919         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
6920         a normal call into noreturn call.
6921
6922 2010-11-03  Richard Guenther  <rguenther@suse.de>
6923
6924         PR middle-end/46251
6925         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
6926         not INDIRECT_REFs.
6927
6928 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6929
6930         PR tree-optimization/46107
6931         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
6932         if cfg_hook_duplicate_loop_to_header_edge failed.
6933
6934 2010-11-03  Ian Lance Taylor  <iant@google.com>
6935
6936         PR lto/46273
6937         * config.gcc: Don't set lto_binary_reader.
6938         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
6939         (Configuration): Mention --disable-lto.  Remove --with-libelf
6940         paragraph.
6941
6942 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
6943
6944         PR debug/46252
6945         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
6946         prev_real_insn.
6947         * gcse.c (insert_insn_end_basic_block): Likewise.
6948
6949         PR rtl-optimization/46034
6950         PR rtl-optimization/46212
6951         PR rtl-optimization/46248
6952         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
6953         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
6954         before i0dest -> i0src substitution and pass 1 instead of 0 as last
6955         argument to subst on i2pat.
6956
6957 2010-11-02  Ian Lance Taylor  <iant@google.com>
6958
6959         * configure.ac: Use AC_SYS_LARGEFILE.
6960         * configure: Rebuild.
6961         * config.in: Rebuild.
6962
6963 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
6964
6965         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
6966         fold_convert.
6967         * c-typeck.c (build_function_call_vec): Likewise.
6968         * cfgexpand.c (expand_debug_expr): Likewise.
6969         * cgraphunit.c (assemble_thunk): Likewise.
6970         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
6971         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
6972         (fold_binary_loc, fold_ternary_loc): Likewise.
6973         * gimple-fold.c (get_symbol_constant_value): Likewise.
6974         * gimple-low.c (lower_builtin_setjmp): Likewise.
6975         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
6976         * gimplify.c (gimplify_init_constructor): Likewise.
6977         * lambda.h (build_linear_expr): Likewise.
6978         * omp-low.c (omp_reduction_init): Likewise.
6979         * tree-inline.c (remap_ssa_name): Likewise.
6980         * tree-object-size.c (compute_object_sizes): Likewise.
6981         * tree-sra.c (init_subtree_with_zero): Likewise.
6982         (sra_ipa_modify_assign): Likewise.
6983         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
6984         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
6985         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
6986         (undistribute_ops_list): Likewise.
6987         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
6988         * tree-vect-stmts.c (vectorizable_call): Likewise.
6989         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
6990         (build_zero_cst): Handle more cases directly.  Update comment.
6991
6992 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
6993
6994         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
6995         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
6996
6997         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
6998         and call ix86_split_call_vzeroupper instead of
6999         ix86_split_call_pop_vzeroupper.
7000         (*call_pop_1_vzeroupper): Likewise.
7001         (*sibcall_pop_1_vzeroupper): Likewise.
7002         (*call_value_pop_0_vzeroupper): Likewise.
7003         (*call_value_pop_1_vzeroupper): Likewise.
7004         (*sibcall_value_pop_1_vzeroupper): Likewise.
7005
7006 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
7007
7008         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
7009
7010 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
7011
7012         * basic-block.h (insert_insn_end_bb_new): Delete.
7013         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
7014
7015 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
7016             H.J. Lu  <hongjiu.lu@intel.com>
7017
7018         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
7019         (ix86_split_call_pop_vzeroupper): Likewise.
7020
7021         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
7022         (ix86_expand_call): Conditionally decorate calls with
7023         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
7024         (ix86_split_call_vzeroupper): New.
7025         (ix86_split_call_pop_vzeroupper): Likewise.
7026
7027         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
7028         (*call_pop_0_vzeroupper): New insn_and_split pattern.
7029         (*call_pop_1_vzeroupper): Likewise.
7030         (*sibcall_pop_1_vzeroupper): Likewise.
7031         (*call_0_vzeroupper): Likewise.
7032         (*call_1_vzeroupper): Likewise.
7033         (*sibcall_1_vzeroupper): Likewise.
7034         (*call_1_rex64_vzeroupper): Likewise.
7035         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
7036         (*call_1_rex64_large_vzeroupper): Likewise.
7037         (*sibcall_1_rex64_vzeroupper): Likewise.
7038         (*call_value_pop_0_vzeroupper): Likewise.
7039         (*call_value_pop_1_vzeroupper): Likewise.
7040         (*sibcall_value_pop_1_vzeroupper): Likewise.
7041         (*call_value_0_vzeroupper): Likewise.
7042         (*call_value_0_rex64_vzeroupper): Likewise.
7043         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
7044         (*call_value_1_vzeroupper): Likewise.
7045         (*sibcall_value_1_vzeroupper): Likewise.
7046         (*call_value_1_rex64_vzeroupper): Likewise.
7047         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
7048         (*call_value_1_rex64_large_vzeroupper): Likewise.
7049         (*sibcall_value_1_rex64_vzeroupper): Likewise.
7050
7051 2010-11-02  Ian Lance Taylor  <iant@google.com>
7052
7053         PR lto/46273
7054         * config.gcc: Revert last patch: set lto_binary_reader.
7055
7056 2010-11-02  Richard Guenther  <rguenther@suse.de>
7057
7058         PR tree-optimization/46149
7059         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
7060         non-indirect MEM_REF variants.
7061
7062 2010-11-02  Richard Guenther  <rguenther@suse.de>
7063
7064         PR tree-optimization/46216
7065         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7066         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
7067
7068 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7069
7070         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
7071         (*-*-osf*): Likewise.
7072         * configure: Regenerate.
7073
7074 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
7075
7076         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
7077         for Intel Core 2 and Core i7.
7078
7079 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
7080
7081         Model decoder of Core 2/i7 for multipass scheduling.
7082
7083         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
7084         New type to hold target-specific data for multipass scheduling.
7085         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
7086         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
7087         Core 2/i7.
7088         (core2i7_secondary_decoder_max_insn_size,)
7089         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
7090         New static variables.
7091         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
7092         ([_]ix86_first_cycle_multipass_data): New static variable.
7093         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
7094         Implement targetm.sched hooks.
7095         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
7096         of ...
7097         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
7098         Implement new targetm.sched hooks.
7099         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
7100         targetm.sched hook to install multipass scheduling hooks on demand.
7101
7102         * doc/tm.texi.in: Document new targetm.sched hooks.
7103         * doc/tm.texi: Regenerate.
7104
7105         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
7106         (first_cycle_multipass_data_t): New typedef.
7107         (struct choice_entry: target_data): New field.
7108         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
7109         to allow target model restrictions not represented in DFA.
7110         (choose_ready, schedule_block): Update.
7111         (sched_extend_ready_list, sched_finish_ready_list): Call new target
7112         hooks to initialize target-specific data for multipass scheduling.
7113         * sched-int.h (max_issue): Update declaration.
7114         * sel-sched.c (choose_best_insn): Update.
7115         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
7116         (first_cycle_multipass_{init, fini}): Define and document new
7117         targetm.sched hooks.
7118
7119 2010-11-02  Richard Guenther  <rguenther@suse.de>
7120
7121         PR tree-optimization/46184
7122         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
7123         input vector type from the reduction operand as well.
7124
7125 2010-11-02  Richard Guenther  <rguenther@suse.de>
7126
7127         PR tree-optimization/46177
7128         * tree-loop-distribution.c (prop_phis): Use
7129         mark_virtual_phi_result_for_renaming.
7130
7131 2010-11-02  Martin Jambor  <mjambor@suse.cz>
7132
7133         PR middle-end/46120
7134         * tree.c (get_binfo_at_offset): Bail out on artificial
7135         fields.  Identify primary bases according to their offsets.
7136
7137 2010-11-02  Martin Jambor  <mjambor@suse.cz>
7138
7139         PR tree-optimization/45875
7140         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
7141         (gimple_get_relevant_ref_binfo): Detect primary bases according to
7142         their field offset.
7143
7144 2010-11-02  Ian Lance Taylor  <iant@google.com>
7145
7146         * doc/install.texi (Configuration): Note in two places that Java
7147         is not enabled by default.
7148
7149 2010-11-02  Ian Lance Taylor  <iant@google.com>
7150
7151         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
7152         (Configuration): Mention --disable-lto.  Remove --with-libelf
7153         paragraph.
7154
7155 2010-11-02  Ian Lance Taylor  <iant@google.com>
7156
7157         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
7158         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
7159         LIBELFINC.  Remove HAVE_libelf.
7160         * config.gcc: Don't set lto_binary_reader.
7161         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
7162         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
7163         (LIBS): Remove $(LIBELFLIBS).
7164         (INCLUDES): Remove $(LIBELFINC).
7165         * configure: Rebuild.
7166         * config.in: Rebuild.
7167
7168 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
7169
7170         * config/microblaze/microblaze-protos.h (function_arg): Delete.
7171         (function_arg_advance): Delete.
7172         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
7173         (FUNCTION_ARG): Delete.
7174         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
7175         (microblaze_function_arg_advance): ...this.  Make static.  Take a
7176         const_tree and a bool.
7177         (function-arg): Rename to...
7178         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
7179         and a bool.
7180         (microblaze_expand_prologue): Call targetm.calls.function_arg and
7181         targetm.calls.function_arg_advance.
7182         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7183
7184 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
7185
7186         Merge from FSF "apple/trunk" branch.
7187
7188         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
7189         * config/darwin.opt: .. to here.
7190         (matt-stubs): New option.
7191         * config/i386/darwin.opt: Delete.
7192         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
7193         (MACHO_DYNAMIC_NO_PIC_P): New.
7194         (MACHOPIC_INDIRECT): New.
7195         (MACHOPIC_PURE): New.
7196         * config/i386/darwin.h (DARWIN_X86) Define to 1.
7197         (MACHOPIC_ATT_STUB): New.
7198         (CC1_SPEC): Do not remove mdynamic-no-pic.
7199         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
7200         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
7201         (FUNCTION_PROFILER): Correct over-length line.
7202         (SUBTARGET_OVERRIDE_OPTIONS): New.
7203         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
7204         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
7205         (legitimate_constant_p): Handle mdynamic-no-pic.
7206         (ix86_legitimate_address_p): Likewise.
7207         (ix86_legitimize_address): Likewise.
7208         (ix86_expand_move): Likewise.
7209         (machopic_output_stub): Update for ATT-style stubs and
7210         mdynamic-no-pic.
7211         * config/darwin-protos.h (machopic_symbol_defined_p): New.
7212         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
7213         TARGET_DYNAMIC_NO_PIC: Remove.
7214         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
7215         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
7216         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
7217         Remove handling of mdynamic-no-pic.
7218         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
7219         Define if required.
7220         (machopic_symbol_defined_p): Do not try to use current_function_decl
7221         when generating _get_pc thunks within stubs.
7222         (machopic_indirect_data_reference): Rework for direct conditionals
7223         rather than #ifdefs, add x86 mdynamic-no-pic
7224         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
7225         defined value.
7226         (darwin_override_options): Handle mdynamic-no-pic here.
7227         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
7228         (machopic_lazy_symbol_ptr3_section): New.
7229         (machopic_picsymbol_stub2_section): New.
7230         (machopic_picsymbol_stub3_section): New.
7231         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
7232         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
7233         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
7234         Moved common definition from x86 and rs6000.
7235         (MACHO_DYNAMIC_NO_PIC_P): Override value.
7236         (MACHOPIC_INDIRECT): Likewise.
7237         (MACHOPIC_PURE): Likewise.
7238         * config.gcc (x86-darwin-*): Remove darwin.opt.
7239
7240 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
7241
7242         PR debug/46255
7243         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
7244         instead of gsi_last_bb.
7245
7246 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7247             Maxim Kuvyrkov  <maxim@codesourcery.com>
7248
7249         * config/i386/i386.c (cpu_names): Add "corei7".
7250         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
7251
7252 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7253             Maxim Kuvyrkov  <maxim@codesourcery.com>
7254
7255         Tune alignment for Intel Core i7
7256
7257         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
7258         (enum processor_type): Update comment.  Add entries for Core i7.
7259         * config/i386-c.c (ix86_target_macros_internal): Update.
7260         * config/i386.c (m_COREI7{_32,_64}): New macros.
7261         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
7262         (processor_target_table): Tune alignment for Core i7.
7263         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
7264
7265         * doc/invoke.texi: Document "corei7" option value.
7266
7267 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7268             Maxim Kuvyrkov  <maxim@codesourcery.com>
7269             H.J. Lu  <hjl.tools@gmail.com>
7270
7271         Basic support for Intel Core i7
7272
7273         * i386.c (ix86_option_override_internal): Add entry for corei7, use
7274         generic tuning.  Use generic32 when compiling for 32-bit ABI.
7275
7276 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
7277
7278         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
7279         sections and call darwin_asm_dwarf_section() to handle them.
7280         (darwin_asm_dwarf_section): New.
7281         (darwin_file_start): Remove code emitting dwarf section symbols.
7282
7283 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
7284
7285         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
7286         explicitly disable stack protection when building libgcc.
7287         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
7288
7289 2010-11-01  Jason Merrill  <jason@redhat.com>
7290
7291         * fold-const.c (fold_indirect_ref_1): Handle folding
7292         POINTER_PLUS_EXPR to ARRAY_REF.
7293
7294 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
7295
7296         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7297         (sh_delegitimize_address): New function.
7298
7299 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
7300
7301         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
7302         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
7303         (CC1_SPEC): Don't handle -target.
7304         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
7305         options.
7306         * config/darwin.opt (Zallowable_client, Zbundle_loader,
7307         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
7308         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
7309         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
7310         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
7311         Zweak_reference_mismatches, client_name, compatibility_version,
7312         current_version, dylinker_install_name, pagezero_size,
7313         read_only_relocs, seg1addr, segs_read_only_addr,
7314         segs_read_write_addr, sub_library, sub_umbrella): New.
7315         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
7316         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
7317         * config/freebsd.opt: New.
7318         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
7319         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
7320         * config/rpath.opt: New.
7321         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
7322         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
7323         Use rpath.opt.
7324
7325 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
7326
7327         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
7328         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
7329         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
7330         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
7331         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
7332         Document that options in .opt files do not need to be included.
7333         * doc/tm.texi: Regenerate.
7334         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
7335         * opts-common.c: Update comment on tm.h include.
7336         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
7337         * system.h (SWITCH_TAKES_ARG): Poison.
7338         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
7339         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
7340         in darwin.opt.
7341         (LINK_COMMAND_SPEC_A): Don't include %{x}.
7342         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7343         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
7344         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
7345         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7346         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
7347         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
7348         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
7349         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
7350         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7351         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
7352         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
7353         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
7354         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
7355         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
7356         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
7357         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
7358         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
7359         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
7360         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
7361         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
7362         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
7363         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
7364         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7365
7366 2010-11-01  Paul Koning  <ni1d@arrl.net>
7367
7368         * config/pdp11/pdp11.md: Use iterators.
7369         (addqi3, subqi3, iorsi3, xorsi3): Delete.
7370
7371 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
7372
7373         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
7374         GCC_INSN_FLAGS_H.
7375         * libgcov.c (__gcov_indirect_call_profiler): Set
7376         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
7377         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
7378
7379 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7380
7381         PR tree-optimization/46259
7382
7383         Revert:
7384         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7385         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
7386         build_vector_from_val.
7387
7388 2010-11-01  DJ Delorie  <dj@redhat.com>
7389
7390         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
7391         as well as an assertion.
7392
7393 2010-11-01  Paul Koning  <ni1d@arrl.net>
7394
7395         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
7396         complex modes in memory.
7397
7398 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7399
7400         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
7401
7402 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
7403
7404         PR target/45250
7405         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
7406         (cfa_base_offset): New variable.
7407         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
7408         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
7409         is NULL.
7410         (vt_init_cfa_base): Initialize cfa_base_offset.
7411
7412 2010-11-01  Alan Modra  <amodra@gmail.com>
7413
7414         PR target/46030
7415         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
7416         and savres_strategy.
7417         (stack_info): New file scope var.
7418         (rs6000_init_machine_status): Init stack_info.
7419         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
7420         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
7421         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
7422         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
7423         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
7424         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
7425         (rs6000_savres_strategy): Rewrite.
7426         (rs6000_stack_info): Use "stack_info" in place of local "info".
7427         Return cached stack info when reload_completed unless ENABLE_CHECKING
7428         in which case confirm newly calculated stack info matches old info.
7429         Delay calculation of lr_save_p, set it for out of line gp save/restore
7430         as well as fp.  Call rs6000_savres_strategy from here..
7431         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
7432         (rs6000_output_function_prologue): Use info->savres_strategy to
7433         determine whether fp save/restore externs need to be emitted.
7434
7435 2010-10-31  Jason Merrill  <jason@redhat.com>
7436
7437         * tree.h (EXPR_LOC_OR_HERE): New macro.
7438         * builtins.c (c_strlen): Use it.
7439         * c-decl.c (build_enumerator): Likewise.
7440         * gimplify.c (internal_get_tmp_var): Likewise.
7441         (shortcut_cond_expr): Likewise.
7442         (gimplify_one_sizepos): Likewise.
7443
7444 2010-10-31  Richard Henderson  <rth@redhat.com>
7445
7446         * config/i386/cygming.h (TARGET_SEH): New.
7447         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
7448         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
7449         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
7450         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
7451         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
7452         (ASM_DECLARE_FUNCTION_SIZE): New.
7453         * config/i386/i386-protos.h: Update.
7454         * config/i386/i386.c (ix86_option_override_internal): Enable
7455         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
7456         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
7457         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
7458         (ix86_compute_frame_layout): For SEH, disable
7459         use_fast_prologue_epilogue, move frame pointer to the end of
7460         the frame.  Initialize hfp_save_offset.
7461         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
7462         at end of prologue for SEH.
7463         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
7464         emit blockage at beginning of epilogue.
7465         (ix86_expand_binary_operator): After reload, emit LEA if needed.
7466         (ix86_output_call_insn): New.
7467         * config/i386/i386.h (TARGET_SEH): New.
7468         (struct machine_function): Add member seh.
7469         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
7470         * config/i386/winnt.c (struct seh_frame_state): New.
7471         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
7472         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
7473         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
7474         i386_pe_start_function, i386_pe_end_function): New.
7475
7476         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
7477         as CFA_STORE in rules 12 and 13.
7478
7479 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
7480
7481         PR tree-optimization/46142
7482         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
7483         accommodate third function argument.
7484
7485 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7486
7487         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
7488
7489 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7490
7491         * fold-const.c (build_zero_vector): Use build_vector_from_val.
7492         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
7493         (get_initial_def_for_reduction): Likewise.
7494         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
7495         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
7496         * tree.c (build_one_cst): Likewise.
7497         (build_vector_from_val): Use types_compatible_p for assert.
7498
7499 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7500
7501         * emit-rtl.c (mark_used_flags): New function.
7502         (set_used_flags, reset_used_flags): Call it.
7503
7504 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
7505
7506         PR middle-end/44569
7507         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
7508         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
7509
7510 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
7511
7512         PR target/46195
7513         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
7514         (ix86_compat_aligned_value_p): This.
7515         (ix86_old_function_arg_boundary): Renamed to ...
7516         (ix86_compat_function_arg_boundary): This.  Updated.
7517         (ix86_contains_aligned_value_p): New.
7518         (ix86_function_arg_boundary): Align long double parameters on
7519         stack to 4byte in 32bit.
7520
7521 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7522
7523         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
7524         * c-parser.c (c_parser_objc_at_property_declaration): Removed
7525         parsing of RID_COPIES and RID_IVAR.  Updated call to
7526         objc_add_property_declaration.
7527         * c-typecheck.c (build_component_ref): Call
7528         objc_maybe_build_component_ref instead of objc_build_setter_call.
7529         Use objc_is_property_ref to improve Objective-C checks.
7530         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
7531         of objc_build_getter_call.
7532
7533 2010-10-29  Paul Koning  <ni1d@arrl.net>
7534
7535         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7536         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
7537         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
7538         (REG_OK_STRICT): Move description.
7539
7540 2010-10-29  Paul Koning  <ni1d@arrl.net>
7541
7542         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
7543
7544 2010-10-29  Paul Koning  <ni1d@arrl.net>
7545
7546         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
7547
7548 2010-10-29  Paul Koning  <ni1d@arrl.net>
7549
7550         PR/41822
7551         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
7552
7553 2010-10-29  Richard Henderson  <rth@redhat.com>
7554
7555         PR rtl-opt/46226
7556         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
7557         for asm goto.
7558
7559 2010-10-29  Paul Koning  <ni1d@arrl.net>
7560
7561         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
7562         register to register move.
7563
7564 2010-10-29  Paul Koning  <ni1d@arrl.net>
7565
7566         * config/pdp11/pdp11.c (print_operand_address): Correct handling
7567         of integer constant addresses, delete vax-only logic.
7568
7569 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7570
7571         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
7572         a conditional expression.
7573
7574 2010-10-29  Paul Koning  <ni1d@arrl.net>
7575
7576         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
7577         instruction encoding.
7578
7579 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7580             Andrew Pinski  <pinskia@gmail.com>
7581
7582         * tree.h (build_vector_from_val): Declare.
7583         * tree.c (build_vector_from_val): New function.
7584         * c-typeck.c (build_binary_op): Handle vector shifting.
7585         * doc/extend.texi: Description of the vector shifting operation.
7586
7587 2010-10-29  Paul Koning  <pkoning@equallogic.com>
7588
7589         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
7590         pdp11_secondary_memory_needed): Declare.
7591         * config/pdp11/predicates.md (float_operand): New predicate.
7592         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
7593         (cbranchdf4, movdf): Change predicate.
7594         (movsf): Handle FPU register case.
7595         (truncdfsf2, extendsfdf2): Add FPU register case.
7596         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
7597         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
7598         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7599         (pdp11_register_move_cost): Update cost matrix.
7600         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
7601         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
7602         pdp11_secondary_memory_needed): New function.
7603         (pdp11_return_in_memory): Add other float types.
7604         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
7605         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
7606         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
7607         REGISTER_MOVE_COST): Delete.
7608         (BASE_RETURN_VALUE_REG): Add other float types.
7609
7610 2010-10-29  Nick Clifton  <nickc@redhat.com>
7611
7612         * doc/invoke.texi: Document -mam34 and -mtune options.
7613         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
7614         (mn10300_tune_cpu): New variable.
7615         (mn10300_handle_option): Handle -mam34 and -mtune options.
7616         (mn10300_option_override): Convert tune string into tune cpu variable.
7617         (mn10300_legitimate_constant_p): Delete unused local variable.
7618         (is_load_insn): New function.
7619         (is_store_insn): New function.
7620         (mn10300_adjust_schedule_cost): New function.
7621         (TARGET_SCHED_ADJUST_COST): Define.
7622         * config/mn10300/mn10300.opt (mam34): New option.
7623         (mtune): New option.
7624         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
7625         (enum processor_type): Add AM34.
7626         (TARGET_AM34): Define.
7627         * config/mn10300/mn10300.md (attr cpu): Add am34.
7628         Add pipeline description.
7629         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
7630         Remove unneeded alternatives.  Add timing attribute.
7631         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
7632         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
7633         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
7634         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
7635         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
7636         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
7637         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
7638         float_conditional_branch, jump, indirect_jump, tablejump,
7639         call_internal, call_value_internal, zero_extendqisi2_am33,
7640         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
7641         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
7642         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
7643         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
7644         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
7645         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
7646         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
7647         return_internal_regs, store_movm, return, call_next_insn):
7648         Add timing attribute.
7649         (am33_subsi3): Add missing clobber of CC_REG.
7650         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
7651         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
7652         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
7653         extendqisi2): Fix predicates.
7654         (call_internal, call_internal_value): Separate alternatives.
7655         * config/mn10300/t-mn10300: Add AM34 multilib.
7656
7657 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
7658
7659         * config/sh/sh.c (sh_promote_function_mode): Use
7660         default_promote_function_mode if !sh_promote_prototypes.
7661
7662 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
7663
7664         * recog.c (split_all_insns): Remove dead code.
7665
7666 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7667
7668         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7669
7670 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7671
7672         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7673         (FUNCTION_ARG_ADVANCE): Delete.
7674         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
7675         functions.
7676         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
7677         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7678         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7679
7680 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7681
7682         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
7683         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7684         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7685         Take a const_tree and a bool.
7686         (mcore_function_arg_advance): New function.
7687         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7688
7689 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7690
7691         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
7692         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7693         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7694         Take a const_tree and a bool.
7695         (mcore_function_arg_advance): New function.
7696         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7697
7698 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7699
7700         * config/h8300/h8300-protos.h (function_arg): Delete.
7701         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7702         * config/h8300/h8300.c (function_arg): Rename to...
7703         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
7704         a bool.
7705         (h8300_function_arg_advance): New function.
7706         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7707
7708 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7709
7710         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
7711         to...
7712         * config/arc/arc.c (arc_function_arg): ...here and...
7713         (arc_function_arg_advance): ...here.  New functions.
7714         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7715
7716 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7717
7718         * config/crx/crx-protos.h (crx_function_arg): Delete.
7719         (crx_function_arg_advance): Delete.
7720         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7721         * config/crx/crx.c (crx_function_arg): Make static.  Take a
7722         const_tree and a bool.
7723         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
7724         (enough_regs_for_param): Take a const_tree.
7725         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7726
7727 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7728
7729         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
7730         (m68hc11_function_arg_advance): Delete.
7731         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
7732         (FUNCTION_ARG_ADVANCE): Delete.
7733         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
7734         Take a const_tree and a bool.
7735         (m68hc11_function_arg_advance): Likewise.
7736         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7737
7738 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7739
7740         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
7741         (xstormy16_function_arg_advance): Delete.
7742         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
7743         (FUNCTION_ARG_ADVANCE): Delete.
7744         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
7745         Take a const_tree and a bool.
7746         (xstormy16_function_arg_advance): Likewise.  Return void, updating
7747         the CUM parameter instead.
7748         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7749
7750 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7751
7752         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
7753         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7754         (MOXIE_FUNCTION_ARG_SIZE): Move to...
7755         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
7756         (moxie_function_arg): Make static.  Take a const_tree and a bool.
7757         (moxie_function_arg_advance): New function.
7758         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7759
7760 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7761
7762         * config/mn10300/mn10300-protos.h (function_arg): Delete.
7763         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
7764         (FUNCTION_ARG_ADVANCE): Delete.
7765         * config/mn10300/mn10300.c (function_arg): Rename to...
7766         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
7767         and a bool.
7768         (mn10300_function_arg_advance): New function.
7769         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7770
7771 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7772
7773         * config/iq2000/iq2000-protos.h (function_arg): Delete.
7774         (function_arg_advance): Delete.
7775         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7776         * config/iq2000/iq2000.c (function_arg): Rename to...
7777         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
7778         a bool.
7779         (function_arg_advance): Rename to...
7780         (iq2000_function_arg_advance): ...this.  Make static.  Take a
7781         const_tree and a bool.
7782         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
7783         iq2000_function_arg.
7784         (iq2000_pass_by_reference): Call iq2000_function_arg).
7785         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7786
7787 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7788
7789         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
7790         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7791         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
7792         const_tree.
7793         (fr30_function_arg): New function.
7794         (fr30_function_arg_advance): New function.
7795         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7796
7797 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7798
7799         * config/frv/frv-protos.h (frv_function_arg): Delete.
7800         (frv_function_arg_advance): Delete.
7801         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7802         * config/frv/frv.c (frv_function_arg): Rename to...
7803         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
7804         (frv_function_arg, frv_function_incoming_arg): New functions.
7805         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
7806         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7807         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7808
7809 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
7810
7811         PR target/46153
7812         * config/i386/sse.md (sse_movhlps_exp): Use destination
7813         returned from ix86_fixup_binary_operands to expand insn.
7814         (sse_movlhps_exp): Ditto.
7815         (sse_loadhps_exp): Ditto.
7816         (sse_loadlps_exp): Ditto.
7817         (sse2_loadhpd_exp): Ditto.
7818         (sse2_loadlpd_exp): Ditto.
7819
7820 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
7821
7822         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
7823         constants in thumb2.
7824
7825 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
7826
7827         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
7828         arithmetics in masking operations.
7829         (contains_muldiv): Likewise.
7830         (try_combine): Likewise.
7831         (find_split_point): Likewise.
7832         (combine_simplify_rtx): Likewise.
7833         (simplify_if_then_else): Likewise.
7834         (simplify_set): Likewise.
7835         (expand_compound_operation): Likewise.
7836         (expand_field_assignment): Likewise.
7837         (make_extraction): Likewise.
7838         (extract_left_shift): Likewise.
7839         (make_compound_operation): Likewise.
7840         (force_to_mode): Likewise.
7841         (make_field_assignment): Likewise.
7842         (reg_nonzero_bits_for_combine): Likewise.
7843         (simplify_shift_const_1): Likewise.
7844         (simplify_comparison): Likewise.
7845
7846 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
7847
7848         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
7849         (ia64_function_arg_advance): Delete.
7850         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7851         (FUNCTION_ARG_ADVANCE): Delete.
7852         * config/ia64/ia64.c (ia64_function_arg): Rename to...
7853         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
7854         bool arguments.
7855         (ia64_function_arg, ia64_function_incoming_arg): New functions.
7856         (ia64_function_arg_advance): Make static.  Take a const_tree and
7857         a bool.
7858         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7859         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7860
7861 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
7862
7863         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
7864         (TARGET_GET_RAW_ARG_MODE): New.
7865         * doc/tm.texi: Regenerate.
7866         * target.def (get_raw_result_mode): New.
7867         (get_raw_arg_mode): New.
7868         * targhooks.c (default_get_reg_raw_mode): New.
7869         * targhooks.h (default_get_reg_raw_mode): New.
7870         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
7871         (apply_result_size): Ditto.
7872         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
7873         (TARGET_GET_RAW_RESULT_MODE): Define.
7874         (TARGET_GET_RAW_ARG_MODE): Ditto.
7875
7876 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7877
7878         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
7879         for newer Solaris 10 release.
7880         (sparc_fallback_frame_state): Likewise.
7881
7882 2010-10-27  Jason Merrill  <jason@redhat.com>
7883
7884         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
7885         variables sooner.
7886
7887 2010-10-27  Jie Zhang  <jie@codesourcery.com>
7888             Maxim Kuvyrkov  <maxim@codesourcery.com>
7889
7890         * haifa-sched.c (ISSUE_POINTS): Remove.
7891         (max_issue): Don't issue more than issue_rate instructions.
7892
7893 2010-10-27  Ian Lance Taylor  <iant@google.com>
7894
7895         PR target/46197
7896         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
7897         (split_stack_return): Replace UNSPEC_STACK_CHECK with
7898         UNSPECV_SPLIT_STACK_RETURN.
7899
7900 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
7901
7902         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
7903
7904         * config/i386/i386.c (block_info): New.
7905         (BLOCK_INFO): Likewise.
7906         (call_avx256_state): Likewise.
7907         (check_avx256_stores): Likewise.
7908         (move_or_delete_vzeroupper_2): Likewise.
7909         (move_or_delete_vzeroupper_1): Likewise.
7910         (move_or_delete_vzeroupper): Likewise.
7911         (use_avx256_p): Likewise.
7912         (function_pass_avx256_p): Likewise.
7913         (flag_opts): Add -mvzeroupper.
7914         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
7915         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
7916         is disabled.
7917         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
7918         generate vzeroupper.
7919         (init_cumulative_args): Add an int to indicate caller.  Set
7920         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
7921         based on return type.
7922         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
7923         caller_pass_avx256_p based on argument type.
7924         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
7925         is used, but not returned by caller.
7926         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
7927         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
7928         is used.
7929         (ix86_minimum_alignment): Likewise.
7930         (ix86_expand_special_args_builtin): Set target to
7931         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
7932         (ix86_reorg): Run the vzeroupper optimization if needed.
7933
7934         * config/i386/i386.h (ix86_args): Add caller.
7935         (INIT_CUMULATIVE_ARGS): Updated.
7936         (machine_function): Add use_vzeroupper_p, use_avx256_p,
7937         caller_pass_avx256_p, caller_return_avx256_p,
7938         callee_pass_avx256_p and callee_return_avx256_p.
7939
7940         * config/i386/i386.opt (-mvzeroupper): New.
7941
7942         * config/i386/predicates.md (vzeroupper_operation): Removed.
7943
7944         * config/i386/sse.md (avx_vzeroupper): Removed.
7945         (*avx_vzeroupper): Removed.
7946         (avx_vzeroupper): New.
7947
7948         * doc/invoke.texi: Document -mvzeroupper.
7949
7950 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7951
7952         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
7953         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
7954         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
7955
7956 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
7957             Olivier Hainque  <hainque@adacore.com>
7958
7959         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
7960         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
7961         fs->signal_frame instead.
7962
7963 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7964
7965         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
7966         parsing of RID_COPIES and RID_IVAR.
7967
7968 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7969
7970         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
7971         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
7972         Do not use objc_set_property_attr, but use local variables
7973         instead.  Detect repeated usage of setter, getter and ivar
7974         attributes.  Improved error processing when a setter name does not
7975         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
7976         that the token is a keyword.  Updated call to
7977         objc_add_property_declaration.
7978
7979 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7980
7981         * c-parser.c (c_parser_objc_at_property): Renamed to
7982         c_parser_objc_at_property_declaration.  Updated calls to
7983         objc_add_property_variable, now objc_add_property_declaration.
7984         Code rewritten to be much more robust in recovering from syntax
7985         errors.  Added comments.
7986         (c_parser_objc_property_attrlist): Removed.
7987         (c_parser_external_declaration): Updated calls to
7988         c_parser_objc_at_property, now
7989         c_parser_objc_at_property_declaration.
7990         (c_parser_objc_methodprotolist): Same change.
7991
7992 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
7993
7994         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
7995
7996 2010-10-26  Jan Hubicka  <jh@suse.cz>
7997
7998         * ipa.c (process_references): Enqueue all referenced nodes;
7999         mark as reachable only non-external nodes.
8000         (cgraph_remove_unreachable_nodes): All referenced nodes should
8001         be enqueued; remove bogues node->needed check.
8002
8003 2010-10-26  Jan Hubicka  <jh@suse.cz>
8004
8005         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
8006         to represent OMP.
8007
8008 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
8009
8010         * config/i386/i386.md (split_stack_return): Replace
8011         unspec_volatile with unspec.
8012
8013 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
8014
8015         * doc/install.texi: Fix typo in --with-sysroot description.
8016
8017 2010-10-26  Jan Hubicka  <jh@suse.cz>
8018
8019         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
8020         Use info provided by linker plugin.
8021
8022 2010-10-26  Jason Merrill  <jason@redhat.com>
8023
8024         * varasm.c (constructor_static_from_elts_p): Don't require a
8025         CONSTRUCTOR to have elements to be suitable for static
8026         initialization.  Allow ARRAY_TYPE as well.
8027
8028 2010-10-26  Jan Hubicka  <jh@suse.cz>
8029
8030         PR middle-end/45736
8031         * cgraph.c (cgraph_set_readonly_flag): Rename to...
8032         (cgraph_set_const_flags) ... this one; get also looping argument;
8033         clear constructor/destructor flags.
8034         (cgraph_set_pure_flag): Likewise.
8035         (cgraph_set_looping_const_or_pure_flag): Remove.
8036         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
8037         to optimize away static ctors/dtors; it does not work on inline clones;
8038         external functions can always be rmeoved.
8039         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
8040         inline clones; in LTO external functions always can go.
8041         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
8042         (cgraph_mark_address_taken_node): Assert that we are not taking
8043         address of inline clone.
8044         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
8045         external functions.
8046         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
8047         address taken.
8048         (ipcp_initialize_node_lattices): Only local functions can be
8049         handled without cloning.
8050         * cgraph.h (cgraph_set_readonly_flag,
8051         cgraph_set_looping_const_or_pure_flag): Remove.
8052         (cgraph_set_const_flag): Declare.
8053         (cgraph_set_pure_flag): Update.
8054         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
8055         flags setting code.
8056         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
8057         look at inline clones; fix handling of external definitions.
8058         (cgraph_postorder): Do not look at inline clones in the first pass.
8059         (function_and_variable_visibility): Drop constructors/destructor
8060         flags at pure and const functions.
8061         * tree-profile.c (tree_profiling): Update.
8062         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
8063         address taken; external functions do not account to whole program size.
8064         (cgraph_decide_inlining): Likewise; do not try to inline
8065         functions already inlined.
8066
8067 2010-10-26  Jie Zhang  <jie@codesourcery.com>
8068
8069         * doc/invoke.texi: Improve documentation of
8070         -fstrict-volatile-bitfields.
8071
8072 2010-10-26  Ira Rosen  <irar@il.ibm.com>
8073
8074         PR tree-optimization/46167
8075         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
8076         is basic block for the statement.
8077
8078 2010-10-26  Paul Koning  <ni1d@arrl.net>
8079
8080         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
8081         current definition of struct_real_format.
8082
8083 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
8084
8085         PR target/44948
8086         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
8087         (ix86_function_arg_boundary): Always align parameters on stack
8088         in 64bit and align parameters with alignment >= 16byte on stack
8089         in 32bit.  Warn alignment change.
8090
8091 2010-10-26  Ian Lance Taylor  <iant@google.com>
8092
8093         PR middle-end/45687
8094         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
8095         offset.
8096
8097 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
8098
8099         Implement opaque-enum-specifiesr for C++0x
8100         * tree.h (ENUM_IS_OPAQUE): New.
8101         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
8102
8103 2010-10-26  Jie Zhang  <jie@codesourcery.com>
8104
8105         * stor-layout.c (layout_decl): Use the field's type to
8106         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
8107         * config/arm/arm.c (arm_override_options): Default to
8108         -fstrict-volatile-bitfields.
8109
8110 2010-10-25  Paul Koning  <ni1d@arrl.net>
8111
8112         * config/pdp11/pdp11.md: Add define_constants for register
8113         numbers, branch offset limits.
8114         * config/pdp11/pdp11.c: Use named constants instead of numbers.
8115         * config/pdp11.pdp11.h: Ditto.
8116
8117 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
8118
8119         * configure.ac: Use $cpu_type instead of $target to define the nop.
8120         * configure: Regenerate.
8121
8122 2010-10-25  Jie Zhang  <jie@codesourcery.com>
8123
8124         * combine.c (try_combine): If insns need to be kept around, check that
8125         they can be copied in the merged instruction.
8126
8127 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8128
8129         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
8130         has been modified.
8131         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
8132         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
8133         it has been modified.
8134
8135 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8136
8137         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
8138
8139 2010-10-24  Paul Koning  <ni1d@arrl.net>
8140
8141         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
8142         * config/pdp11/pdp11.c (output_jump): Ditto.
8143
8144 2010-10-24  Ian Lance Taylor  <iant@google.com>
8145
8146         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
8147
8148 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8149
8150         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
8151         least one insn with a locus corresponding to an edge's goto_locus,
8152         disregard non-fallthru edges to the exit block and merge the blocks
8153         created for the same goto_locus.
8154
8155 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
8156
8157         * gcc.c (n_switches_alloc_debug_check): New.
8158         (set_option_handlers): New.
8159         (process_command): Use set_option_handlers.
8160         (do_self_spec): Pass spec-generated options through option handlers.
8161         (main): Also save and restore n_switches_alloc when swapping
8162         switch arrays.
8163
8164 2010-10-23  Richard Henderson  <rth@redhat.com>
8165
8166         PR target/46144
8167         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
8168         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
8169         Honor matching operands when splitting to XOR.
8170
8171 2010-10-23  Ian Lance Taylor  <iant@google.com>
8172
8173         * tree-vrp.c (extract_range_from_binary_expr): If
8174         flag_non_call_exceptions don't eliminate division by zero.
8175         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
8176
8177 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
8178
8179         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
8180         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
8181         __ORDER_PDP_ENDIAN__.
8182         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8183         (struct DWstruct): Define based on __BYTE_ORDER__.
8184         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8185         (struct INTstruct): Define based on __BYTE_ORDER__.
8186         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8187         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
8188         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
8189         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8190         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8191         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8192         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8193         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8194         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8195         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8196         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8197         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8198         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8199         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8200         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8201         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8202         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8203         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8204         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8205         * doc/tm.texi: Regenerate.
8206         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
8207         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
8208
8209 2010-10-23  Jie Zhang  <jie@codesourcery.com>
8210
8211         PR rtl-optimization/37360
8212         * config/mips/mips.c (cached_can_issue_more): New local variable.
8213         (mips_sched_reorder_1): New.
8214         (mips_sched_reorder): Use mips_sched_reorder_1.
8215         (mips_sched_reorder2): New.
8216         (mips_variable_issue): Set cached_can_issue_more.
8217         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
8218         instead of mips_sched_reorder.
8219
8220         Revert:
8221         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
8222         PR rtl-optimization/37360
8223         * haifa-sched.c (max_issue): Do not assert that we never issue more
8224         insns than issue_rate.  Add comment.
8225
8226 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
8227
8228         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
8229         location info of the expression.
8230
8231 2010-10-22  DJ Delorie  <dj@redhat.com>
8232
8233         * doc/extend.texi (Named Address Spaces): Document the M32C named
8234         address space.
8235
8236         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
8237         __far address space.
8238         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
8239         "__far" address space for R8C and M16C processor variants.
8240         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
8241         (far_addr_space_p): New.
8242         (encode_pattern_1): Add sign and zero extend support.
8243         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
8244         (m32c_extra_constraint_p2): Add SF constraint.
8245         (m32c_legitimate_address_p): Support __far addresses.
8246         (m32c_addr_space_pointer_mode): New.
8247         (m32c_addr_space_address_mode): New.
8248         (m32c_addr_space_legitimate_address_p): New.
8249         (m32c_addr_space_legitimize_address): New.
8250         (m32c_addr_space_subset_p): New.
8251         (m32c_addr_space_convert): New.
8252         (conversions): Add __far operand patterns.
8253         (m32c_prepare_move): Force constants into registers for __far moves.
8254         (m32c_split_move): __far moves are always split.
8255         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
8256         * config/m32c/mov.md (mov<mode>_far_op1): New.
8257         (mov<mode>_far_op2): New.
8258         (movqi_op): Add __far (SF) support.
8259         (movhi_op): Likewise.
8260         (movsi_splittable): Split A1A0 also.
8261
8262 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
8263             Andrew Pinski  <pinskia@gmail.com>
8264
8265         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
8266         * doc/extend.texi: New paragraph
8267
8268 2010-10-22  Paul Koning  <ni1d@arrl.net>
8269
8270         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
8271
8272 2010-10-22  DJ Delorie  <dj@redhat.com>
8273
8274         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
8275
8276 2010-10-22  Paul Koning  <ni1d@arrl.net>
8277
8278         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
8279
8280 2010-10-22  Richard Henderson  <rth@redhat.com>
8281
8282         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
8283         cases for __builtin_fma and __builtin_fmaf.
8284
8285 2010-10-22  Richard Henderson  <rth@redhat.com>
8286
8287         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
8288         NEG+USE for vectors as well.
8289         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
8290         and splitter.
8291
8292 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8293
8294         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
8295         SWITCH_CURTAILS_COMPILATION): Remove.
8296         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
8297         * doc/tm.texi: Regenerate.
8298         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
8299
8300 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
8301
8302         * config/i386/bdver1.md: New file.
8303         * config/i386/i386.md (include "bdver1.md"): Invoke the
8304         pipeline description for bdver1.
8305         (x86_sahf_1): Add "bdver1_decode" attribute.
8306         (*cmpfp_i_mixed): Likewise.
8307         (*cmpfp_i_sse): Likewise.
8308         (*cmpfp_i_i387): Likewise.
8309         (*cmpfp_iu_mixed): Likewise.
8310         (*cmpfp_iu_sse): Likewise.
8311         (*cmpfp_iu_387): Likewise.
8312         (*swap<mode>,*swap<mode>_1): Likewise.
8313         (fixuns_trunc<mode>hi2): Likewise.
8314         (fix_trunc<mode>si_sse): Likewise.
8315         (x86_fnstcw_1): Likewise.
8316         (x86_fldcw_1): Likewise.
8317         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
8318         (*floatsi<mode>2_vector_mixed): Likewise.
8319         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
8320         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
8321         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
8322         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
8323         (*floatsi<mode>2_vector_sse): Likewise.
8324         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
8325         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
8326         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
8327         (*mul<mode>3_1): Likewise.
8328         (*mulsi3_1_zext): Likewise.
8329         (*mulhi3_1): Likewise.
8330         (*mulqi3_1): Likewise.
8331         (*<u>mul<mode><dwi>3_1): Likewise.
8332         (*<u>mulqihi3_1): Likewise.
8333         (*<s>muldi3_highpart_1): Likewise.
8334         (*<s>mulsi3_highpart_1): Likewise.
8335         (*<s>mulsi3_highpart_zext): Likewise.
8336         (x86_64_shld): Likewise.
8337         (x86_shld): Likewise.
8338         (x86_64_shrd): Likewise.
8339         (x86_shrd): Likewise.
8340         (sqrtxf2): Likewise.
8341         (sqrt_extend<mode>xf2_i387): Likewise.
8342         (*sqrt<mode>2_sse): Likewise.
8343         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
8344         (sse_cvtsi2ssq): Likewise.
8345         (sse_cvtss2si): Likewise.
8346         (sse_cvtss2si_2): Likewise.
8347         (sse_cvtss2siq): Likewise.
8348         (sse_cvtss2siq_2): Likewise.
8349         (sse_cvttss2si): Likewise.
8350         (sse_cvttss2siq): Likewise.
8351         (sse2_cvtpi2pd): Likewise.
8352         (sse2_cvttpd2pi): Likewise.
8353         (sse2_cvtsi2sd): Likewise.
8354         (sse2_cvtsi2sdq): Likewise.
8355         (sse2_cvtsd2si): Likewise.
8356         (sse2_cvtsd2si_2): Likewise.
8357         (sse2_cvtsd2siq): Likewise.
8358         (sse2_cvtsd2siq_2): Likewise.
8359         (sse2_cvttsd2si): Likewise.
8360         (sse2_cvttsd2siq): Likewise.
8361         (*sse2_cvtpd2dq): Likewise.
8362         (*sse2_cvttpd2dq): Likewise.
8363         (sse2_cvtsd2ss): Likewise.
8364         (sse2_cvtss2sd): Likewise.
8365         (*sse2_cvtpd2ps): Likewise.
8366         (sse2_cvtps2pd): Likewise.
8367
8368 2010-10-22  Richard Guenther  <rguenther@suse.de>
8369
8370         PR middle-end/46137
8371         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
8372         remove the virtual operands if they are not needed.
8373
8374 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
8375
8376         * config/i386/i386.c (processor_costs bdver1_cost): Update
8377         insn costs and architectural parameters for bdver1.
8378
8379 2010-10-22  Richard Guenther  <rguenther@suse.de>
8380
8381         * gimple.h (gimple_register_canonical_type): Declare.
8382         * gimple.c (gimple_canonical_types): New global hashtable.
8383         (struct gimple_type_leader_entry_s): New type.
8384         (gimple_type_leader): New global cache.
8385         (gimple_lookup_type_leader): New function.
8386         (gtc_visit): Query the proper cache.
8387         (gimple_types_compatible_p): Likewise.
8388         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
8389         (gimple_canonical_type_eq): New function.
8390         (gimple_register_canonical_type): Likewise.
8391         (print_gimple_types_stats): Adjust for gimple_canonical_types.
8392         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
8393         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
8394         gimple_types_compatible_p for LTO.
8395
8396 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
8397
8398         PR target/46098
8399         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
8400         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
8401         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
8402         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
8403         (<sse>_movu<ssemodesuffix>): New expander.
8404         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
8405         (avx_movdqu<avxmodesuffix>): New expander.
8406         (*sse2_movdqu): Rename from sse2_movdqu.
8407         (sse2_movdqu): New expander.
8408
8409 2010-10-22  Richard Guenther  <rguenther@suse.de>
8410
8411         PR tree-optimization/45720
8412         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
8413         Handle negative step.
8414         (vect_enhance_data_refs_alignment): Likewise.
8415         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
8416         (vect_create_cond_for_align_checks): Likewise.
8417         (vect_create_cond_for_alias_checks): Likewise.
8418
8419 2010-10-22  Ira Rosen  <irar@il.ibm.com>
8420
8421         PR tree-optimization/46126
8422         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
8423         vectorizable_shift in case of basic block vectorization.
8424
8425 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8426
8427         * target.h (enum opt_levels, struct default_options): New.
8428         * target.def (handle_ofast): Remove hook.
8429         (target_option.optimization): Change to
8430         target_option.optimization_table.
8431         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
8432         TARGET_OPTION_OPTIMIZATION_TABLE.
8433         (CAN_DEBUG_WITHOUT_FP): Remove.
8434         * doc/tm.texi: Regenerate.
8435         * opts.c (maybe_default_option, maybe_default_options,
8436         default_options_table): New.
8437         (default_options_optimization): Take extra parameters.  Don't
8438         assert that global_options and global_options_set are in use.  Use
8439         maybe_default_options.
8440         (decode_options): Pass extra parameters to
8441         default_options_optimization.
8442         * common.opt (falign-loops): Use value 0 with Var.
8443         (frerun-cse-after-loop, ftree-ter): Remove Init.
8444         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
8445         TARGET_OPTION_OPTIMIZATION): Remove.
8446         * targhooks.c (empty_optimization_table): New.
8447         * targhooks.h (empty_optimization_table): Declare.
8448         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
8449         * config/alpha/alpha.c (alpha_option_optimization_table,
8450         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8451         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
8452         * config/arm/arm.c (arm_option_optimization: Change to
8453         arm_option_optimization_table.
8454         (TARGET_OPTION_OPTIMIZATION): Change to
8455         TARGET_OPTION_OPTIMIZATION_TABLE.
8456         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
8457         * config/avr/avr.c (avr_option_optimization_table,
8458         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8459         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
8460         * config/cris/cris.c (cris_option_optimization): Change to
8461         cris_option_optimization_table.
8462         (TARGET_OPTION_OPTIMIZATION): Change to
8463         TARGET_OPTION_OPTIMIZATION_TABLE.
8464         * config/crx/crx.c (crx_option_optimization): Change to
8465         crx_option_optimization_table.
8466         (TARGET_OPTION_OPTIMIZATION): Change to
8467         TARGET_OPTION_OPTIMIZATION_TABLE.
8468         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8469         * config/fr30/fr30.c (fr30_option_optimization_table,
8470         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8471         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
8472         * config/frv/frv.c (frv_option_optimization_table,
8473         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8474         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
8475         * config/h8300/h8300.c (h8300_option_optimization): Change to
8476         h8300_option_optimization_table.
8477         (TARGET_OPTION_OPTIMIZATION): Change to
8478         TARGET_OPTION_OPTIMIZATION_TABLE.
8479         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8480         * config/i386/i386.c (ix86_option_optimization): Change to
8481         ix86_option_optimization_table.
8482         (TARGET_OPTION_OPTIMIZATION): Change to
8483         TARGET_OPTION_OPTIMIZATION_TABLE.
8484         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
8485         as initializer.
8486         * config/ia64/ia64.c (ia64_option_optimization): Change to
8487         ia64_option_optimization_table.
8488         (TARGET_OPTION_OPTIMIZATION): Change to
8489         TARGET_OPTION_OPTIMIZATION_TABLE.
8490         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
8491         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
8492         initializer.
8493         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
8494         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8495         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8496         * config/lm32/lm32.c (lm32_option_optimization_table,
8497         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8498         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
8499         * config/m32r/m32r.c (m32r_option_optimization): Change to
8500         m32r_option_optimization_table.
8501         (TARGET_OPTION_OPTIMIZATION): Change to
8502         TARGET_OPTION_OPTIMIZATION_TABLE.
8503         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
8504         CAN_DEBUG_WITHOUT_FP): Remove.
8505         * config/mcore/mcore.c (mcore_option_optimization): Change to
8506         mcore_option_optimization_table.
8507         (TARGET_OPTION_OPTIMIZATION): Change to
8508         TARGET_OPTION_OPTIMIZATION_TABLE.
8509         * config/mep/mep.c (mep_option_optimization): Change to
8510         mep_option_optimization_table.
8511         (TARGET_OPTION_OPTIMIZATION): Change to
8512         TARGET_OPTION_OPTIMIZATION_TABLE.
8513         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
8514         * config/microblaze/microblaze.c
8515         (microblaze_option_optimization_table,
8516         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8517         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
8518         * config/mips/mips.c (mips_option_optimization_table,
8519         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8520         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
8521         * config/mmix/mmix.c (mmix_option_optimization): Change to
8522         mmix_option_optimization_table.
8523         (TARGET_OPTION_OPTIMIZATION): Change to
8524         TARGET_OPTION_OPTIMIZATION_TABLE.
8525         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
8526         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
8527         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8528         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8529         * config/pa/pa.c (pa_option_optimization_table,
8530         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8531         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8532         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
8533         pdp11_option_optimization_table.
8534         (TARGET_OPTION_OPTIMIZATION): Change to
8535         TARGET_OPTION_OPTIMIZATION_TABLE.
8536         * config/picochip/picochip.c (picochip_option_optimization_table,
8537         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8538         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
8539         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
8540         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8541         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8542         * config/rx/rx.c (rx_option_optimization_table,
8543         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8544         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8545         * config/s390/s390.c (s390_option_optimization): Change to
8546         s390_option_optimization_table.
8547         (s390_option_override): Update comment.
8548         (TARGET_OPTION_OPTIMIZATION): Change to
8549         TARGET_OPTION_OPTIMIZATION_TABLE.
8550         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
8551         * config/score/score.c (score_option_optimization_table,
8552         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8553         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
8554         * config/sh/sh.c (sh_option_optimization): Change to
8555         sh_option_optimization_table.
8556         (TARGET_OPTION_OPTIMIZATION): Change to
8557         TARGET_OPTION_OPTIMIZATION_TABLE.
8558         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
8559         (sh_option_override, expand_block_move, multcosts, find_barrier,
8560         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
8561         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
8562         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
8563         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
8564         instead of TARGET_SMALLCODE.
8565         * config/sh/sh.opt (mspace): Make into an alias for -Os.
8566         * config/sparc/sparc.c (sparc_option_optimization_table,
8567         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8568         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
8569         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
8570         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8571         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
8572         * config/v850/v850.c (v850_option_optimization): Change to
8573         v850_option_optimization_table.
8574         (TARGET_OPTION_OPTIMIZATION): Change to
8575         TARGET_OPTION_OPTIMIZATION_TABLE.
8576         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
8577         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
8578         xtensa_option_optimization_table.
8579         (TARGET_OPTION_OPTIMIZATION): Change to
8580         TARGET_OPTION_OPTIMIZATION_TABLE.
8581         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8582
8583 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
8584
8585         Based on the CFString implementation in FSF apple/trunk branch.
8586
8587         * target.def (objc_construct_string): New Hook.
8588         * doc/tm.texi (objc_construct_string): Document.
8589         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
8590         * config/t-darwin: Amend build rules for darwin.o.
8591         * config/darwin.opt: Add cfstrings flags.
8592         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
8593         (darwin_objc_construct_string): New.
8594         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
8595         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
8596         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
8597         (darwin_fold_builtin): Likewise.
8598         (darwin_build_constant_cfstring): Likewise.
8599         (darwin_objc_construct_string): Likewise.
8600         (darwin_cfstring_p): Likewise.
8601         (darwin_enter_string_into_cfstring_table): Likewise.
8602         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
8603         * config/darwin.c (darwin_running_cxx): New var.
8604         (machopic_select_section): Return cfstring_constant_object_section.
8605         (darwin_override_options): Set darwin_running_cxx.
8606         (add_builtin_field_decl): New.
8607         (darwin_init_cfstring_builtins): New.
8608         (darwin_build_constant_cfstring): New.
8609         (darwin_fold_builtin): New.
8610         (cfstring_hash): New.
8611         (cfstring_eq): New.
8612         (darwin_enter_string_into_cfstring_table): New.
8613         * config/darwin-sections.def (cfstring_constant_object_section): New.
8614         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
8615         (TARGET_OBJC_CONSTRUCT_STRING): Define.
8616
8617 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8618
8619         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
8620         TYPE_STUB_DECL instead of TREE_CHAIN.
8621         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
8622         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
8623         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
8624         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
8625         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
8626         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
8627         Likewise.
8628         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
8629
8630 2010-10-22  Jie Zhang  <jie@codesourcery.com>
8631
8632         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
8633         (copy_blkmode_from_reg): Likewise.
8634         (read_complex_part): Likewise.
8635         (expand_expr_real_1): Calculate packedp and pass it to
8636         extract_bit_field.
8637         * expr.h (extract_bit_field): Update declaration.
8638         * calls.c (store_unaligned_arguments_into_pseudos): Update call
8639         to extract_bit_field.
8640         * expmed.c (extract_fixed_bit_field): Update calls to
8641         extract_fixed_bit_field.
8642         (store_split_bit_field): Likewise.
8643         (extract_bit_field_1): Add new argument packedp.
8644         (extract_bit_field): Add new argument packedp.
8645         (extract_fixed_bit_field): Add new argument packedp and let
8646         packed attribute override volatile.
8647         * stmt.c (expand_return): Update call to extract_bit_field.
8648
8649 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8650
8651         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
8652
8653 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8654
8655         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
8656         of gcc_checking_assert.
8657         * sel-sched.c (code_motion_process_successors): Likewise.
8658
8659 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8660
8661         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
8662         when stopping because of a different locus on edge or insn.
8663         (try_optimize_cfg): Add comment.
8664         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
8665         block is a forwarder block, propagate locus on the edge.
8666         (cfg_layout_merge_blocks): Likewise.
8667
8668 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
8669
8670         PR target/45946
8671         * config/i386/i386.md (*pushti2): New insn pattern.
8672         (pushti2 splitter): New insn splitter.
8673         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
8674         DWI mode iterator.
8675
8676 2010-10-21  Paul Koning  <ni1d@arrl.net>
8677
8678         * config/pdp11/pdp11-protos.md (arith_operand,
8679         const_immediate_operand, expand_shift_operand,
8680         immediate15_operand): Delete
8681         * config/pdp11/pdp11.c: Ditto.
8682         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
8683         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
8684         EXTRA_CONSTRAINT): Delete.
8685         * config/pdp11/pdp11.md (various): Use standard constraints
8686         instead of removed ones.
8687         * config/pdp11/constraints.md: New file.
8688         * config/pdp11/predicates.md: New file.
8689
8690 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
8691
8692         PR c/45834
8693         * alias.c (true_dependence_1): Remove obsolete check for QImode.
8694         (may_alias_p): Ditto.
8695
8696 2010-10-21  Martin Jambor  <mjambor@suse.cz>
8697
8698         PR tree-optimization/45875
8699         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
8700
8701 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8702
8703         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
8704         variables.
8705         (create_new_def_for): Likewise.
8706
8707 2010-10-21  Nick Clifton  <nickc@redhat.com>
8708
8709         * config/mn10300/mn10300.c: Fold code to 80-character width.
8710         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8711         MEM, CONST_INT and CONST_DOUBLE.
8712         (targetm): Move initialization to end of file.
8713         (print_operand): Rename to mn10300_print_operand.
8714         (print_operand_address): Rename to mn10300_print_operand_address.
8715         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
8716         (expand_prologue): Rename to mn10300_expand_prologue.
8717         (expand_epilogue): Rename to mn10300_expand_epilogue.
8718         (initial_offset): Rename to mn10300_initial_offset.
8719         (function_arg): Rename to mn10300_function_arg.
8720         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
8721         (symbolic_operand): Rename to mn10300_symbolic_operand.
8722         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
8723         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
8724         * config/mn10300/mn10300-protos.h: Update prototypes.
8725         * config/mn10300/mn10300.h: Fold code to 80-character width.
8726         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8727         MEM, CONST_INT and CONST_DOUBLE.
8728         (CPP_SPEC): Move to...
8729         (TARGET_CPU_CPP_BUILTINS): ... here.
8730         * config/mn10300/mn10300.md: Fold code to 80-character width.
8731         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8732         MEM, CONST_INT and CONST_DOUBLE.
8733
8734 2010-10-21  Ira Rosen  <irar@il.ibm.com>
8735
8736         PR tree-optimization/46049
8737         PR tree-optimization/46052
8738         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
8739         (vect_get_slp_defs): Add arguments.
8740         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
8741         operands to vect_get_slp_defs.
8742         (vectorizable_reduction): Fix comment, pass scalar operands to
8743         vect_get_slp_defs.
8744         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
8745         type to determine number of units in the created vector.
8746         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
8747         (vectorizable_conversion): Fix comment.
8748         (vectorizable_shift): New function.
8749         (vectorizable_operation): Move code that handles shifts to
8750         vectorizable_shift.
8751         (vectorizable_type_demotion): Fix comment, pass scalar operands to
8752         vect_get_slp_defs.
8753         (vectorizable_type_promotion, vectorizable_store): Likewise.
8754         (vectorizable_condition): Fix comment.
8755         (vect_analyze_stmt): Call vectorizable_shift.
8756         (vect_transform_stmt): Likewise.
8757         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
8758         Use it as the operand to create vectors for, except reduction
8759         initial definition and store.  Use operands type.
8760         (vect_get_slp_defs): Add new arguments.  Pass them to
8761          vect_get_constant_vectors.
8762
8763 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8764
8765         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
8766         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
8767         * cfghooks.c (fixup_reorder_chain): Likewise.
8768         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
8769         * cgraph.c (cgraph_add_thunk): Likewise.
8770         (cgraph_create_edge_1): Likewise.
8771         (cgraph_create_virtual_clone): Likewise.
8772         * ddg.c (add_cross_iteration_register_deps): Likewise.
8773         * dwarf2out.c (modified_type_die): Likewise.
8774         * emit-rtl.c (set_mem_alias_set): Likewise.
8775         * ggc-zone.c (zone_allocate_marks): Likewise.
8776         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
8777         * gimple.c (iterative_hash_gimple_type): Likewise.
8778         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
8779         (create_single_exit_edge): Likewise.
8780         * haifa-sched.c (choose_ready): Likewise.
8781         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8782         * passes.c (execute_todo): Likewise.
8783         * sched-ebb.c (begin_schedule_ready): Likewise.
8784         * sel-sched.c (code_motion_process_successors): Likewise.
8785         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
8786         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
8787         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
8788         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
8789         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
8790         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
8791         (ssa_conflicts_add): Likewise.
8792         * tree-ssa-copy.c (replace_exp): Likewise.
8793         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
8794         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
8795         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
8796         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
8797         (compute_antic): Likewise.
8798         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
8799         (add_dependence): Likewise.
8800         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
8801         * tree-vrp.c (supports_overflow_infinity): Likewise.
8802         (make_overflow_infinity, negative_overflow_infinity): Likewise.
8803         (avoid_overflow_infinity, register_new_assert_for): Likewise.
8804         (process_assert_insertions_for): Likewise.
8805         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
8806         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
8807         (intersect_loc_chains, variable_merge_over_cur): Likewise.
8808
8809 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8810
8811         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
8812         * reload1.c (has_nonexceptional_receiver): Likewise.
8813         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
8814         (create_new_def_for): Likewise.
8815         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
8816         (merge_phi_nodes): Likewise.
8817         (has_abnormal_incoming_edge_p): Delete.
8818
8819 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
8820
8821         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
8822
8823 2010-10-21  Richard Guenther  <rguenther@suse.de>
8824             Michael Matz  <matz@suse.de>
8825
8826         PR tree-optimization/45764
8827         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
8828         Adjust initial misalignment for negative DR_STEP.
8829         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
8830         do not have the same alignment over the whole iteration domain.
8831
8832 2010-10-21  Richard Guenther  <rguenther@suse.de>
8833
8834         PR tree-optimization/46111
8835         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
8836
8837 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8838
8839         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
8840
8841 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8842
8843         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
8844         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
8845
8846 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8847
8848         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
8849         signal_frame.
8850         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
8851
8852 2010-10-21  Tristan Gingold  <gingold@adacore.com>
8853
8854         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
8855         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
8856
8857 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
8858
8859         * basic-block.h (find_fallthru_edge): Define.
8860         * cfgcleanup.c (merge_blocks_move): Use it.
8861         (try_crossjump_bb): Likewise.
8862         * cfglayout.c (fixup_reorder_chains): Likewise.
8863         (fixup_fallthru_exit_predecessor): Likewise.
8864         * cfgrtl.c (rtl_split_edge): Likewise.
8865         (rtl_verify_flow_info): Likewise.
8866         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8867         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
8868         * ifcvt.c (block_fallthru): Likewise.
8869         * reload1.c (fixup_abnormal_edges): Likewise.
8870         * sched-ebb.c (being_schedule_ready): Likewise.
8871         (schedule_ebb): Likwise.
8872         * sched-rgn.c (find_single_block_region): Likewise.
8873         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
8874         * tree-complex.c (expand_complex_move): Likewise.
8875         * sched-int.h (find_fallthru_edge): Rename to...
8876         (find_fallthru_edge_from): ...this.
8877         * haifa-sched.c (find_fallthru_edge): Rename to...
8878         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
8879         (init_before_recovery): Call find_fallthru_edge_from.
8880         * sel-sched-ir.c (merge_fences): Likewise.
8881         * sel-sched.c (in_fallthru_bb_p): Likewise.
8882         (move_cond_jump): Likewise.
8883
8884 2010-10-20  Paul Koning  <ni1d@arrl.net>
8885
8886         * config/pdp11/pdp11.md (various): Fix conditions on a number of
8887         insn to check for target 11/40 or higher.
8888
8889 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8890
8891         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
8892         bool instead of a tree.
8893         (c_parser_objc_method_decl): Added bool argument.  Updated call to
8894         objc_build_method_signature.
8895         (c_parser_objc_method_definition): Do not call
8896         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
8897         c_parser_objc_method_decl and objc_start_method_definition.
8898         (c_parser_objc_methodproto): Do not call objc_set_method_type.
8899         Updated calls to c_parser_objc_method_type,
8900         c_parser_objc_method_decl and objc_add_method_declaration.
8901
8902 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
8903
8904         PR tree-optimization/45919
8905         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
8906         array members.
8907
8908         PR tree-optimization/46066
8909         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
8910         instead of gsi_last_bb.
8911
8912 2010-10-20  DJ Delorie  <dj@redhat.com>
8913
8914         * config/m32c/m32c.c (m32c_option_override): Always disable
8915         function-cse in 16-bit mode.  Indirect calls are always worse than
8916         direct calls as there is no 16-bit indirect call opcode.
8917         (m32c_override_options_after_change): New, likewise.
8918
8919 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
8920
8921         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
8922         emitting the conditional move in the inner mode of the SUBREG.
8923
8924 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
8925
8926         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
8927         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
8928         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8929         (ia64_preferred_reload_class): Make static.  Change rclass argument
8930         and result types from enum reg_class to reg_class_t.
8931
8932 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
8933
8934         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
8935         call for single operand expression.
8936
8937 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
8938
8939         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
8940         if there is a call statement to pure or const function in the block.
8941
8942 2010-10-20  Paul Koning  <pkoning@equallogic.com>
8943
8944         Fix several build errors for pdp11 target.
8945         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
8946         (cbranchdf4): Conditional on TARGET_FPU.
8947         (movdf): Ditto; correct alternatives check.
8948         (movmemhi): Fix predicate and constraint.
8949         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
8950
8951 2010-10-20  Richard Guenther  <rguenther@suse.de>
8952
8953         PR lto/45667
8954         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
8955         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
8956         (verify_gimple_assign_single): Disable ADDR_EXPR type check
8957         when in LTO.
8958
8959 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
8960
8961         PR fortran/42169
8962         * ira-emit.c (store_can_be_removed_p): Return false instead of
8963         gcc_unreachable.
8964
8965 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
8966
8967         * fold-const.c (fold_binary_loc): New transformation.
8968
8969 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
8970
8971         PR target/46085
8972         * config/i386/sse.md (reduc_splus_v8sf): Updated.
8973         (reduc_splus_v4df): Likewise.
8974
8975 2010-10-20  Richard Guenther  <rguenther@suse.de>
8976
8977         PR tree-optimization/45860
8978         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
8979         conditional store replacement for non-register type stores.
8980
8981 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
8982
8983         * stor-layout.c (skip_simple_constant_arithmetic): New function.
8984         (self_referential_size): Use it instead of skip_simple_arithmetic.
8985
8986 2010-10-20  Olivier Hainque  <hainque@adacore.com>
8987
8988         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
8989         If the current function calls eh_return, claim live all registers
8990         that we need to check for liveness otherwise.
8991
8992 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8993
8994         * c-decl.c (c_write_global_declarations): Call
8995         objc_write_global_declarations when compiling Objective-C.
8996         * c-lang.c (finish_file): Removed.
8997
8998 2010-10-19  DJ Delorie  <dj@redhat.com>
8999
9000         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
9001         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
9002         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
9003         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
9004         * doc/tm.texi: Regenerate.
9005         * targhooks.h (default_label_align_after_barrier_max_skip,
9006         default_loop_align_max_skip, default_label_align_max_skip,
9007         default_jump_align_max_skip): Declare.
9008         * target.def (label_align_after_barrier_max_skip): New.
9009         (loop_align_max_skip): New.
9010         (label_align_max_skip): New.
9011         (jump_align_max_skip): New.
9012         * system.h (poison): Add those macros to the list.
9013         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
9014         (LOOP_ALIGN_MAX_SKIP): Remove.
9015         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
9016         (JUMP_ALIGN_MAX_SKIP): Remove.
9017         (default_label_align_after_barrier_max_skip): New.
9018         (default_loop_align_max_skip): New.
9019         (default_label_align_max_skip): New.
9020         (default_jump_align_max_skip): New.
9021         (compute_alignments): Use the new hooks.
9022         (shorten_branches): Likewise.
9023
9024 2010-10-19  Richard Henderson  <rth@redhat.com>
9025
9026         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
9027         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
9028         (fma4i_fmadd_<mode>): New.
9029         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
9030         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
9031         standard fma patterns.
9032         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
9033         enable for FMA.
9034         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
9035         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
9036         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
9037
9038 2010-10-19  Paul Koning  <pkoning@equallogic.com>
9039
9040         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
9041         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
9042
9043 2010-10-19  Richard Henderson  <rth@redhat.com>
9044
9045         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
9046         (fmadf4, *fmsdf4, *nfmadf4): New.
9047         (fmaxf4, *fmsxf4, *nfmaxf4): New.
9048
9049 2010-10-19  Michael Eager  <eager@eagercon.com>
9050
9051         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
9052         Use sjlj unwind info for exceptions.
9053
9054 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
9055
9056         PR fortran/43414
9057         * dwarf2out.c (add_calling_convention_attribute): Flag main
9058         Fortran subroutine with DW_AT_main_subprogram.
9059
9060 2010-10-19  Nick Clifton  <nickc@redhat.com>
9061
9062         * config/rx/rx.c (rx_function_value): Small integer types are
9063         promoted to SImode.
9064         (rx_promote_function_mode): New function.
9065         (TARGET_PROMOTE_FUNCTION_MODE): Define.
9066
9067 2010-10-19  Nick Clifton  <nickc@redhat.com>
9068
9069         * config/mep/mep.c (mep_print_operand): Use
9070         targetm.strip_name_encoding.
9071         (mep_output_aligned_common): Likewise.
9072
9073 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
9074
9075         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
9076
9077 2010-10-18  Richard Henderson  <rth@redhat.com>
9078
9079         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
9080         (fma (neg a) (neg b) c) and (fma a (neg b) c).
9081
9082 2010-10-18  Richard Henderson  <rth@redhat.com>
9083
9084         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
9085         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
9086         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
9087         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
9088         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
9089         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
9090         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
9091         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
9092         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
9093         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
9094         (bdesc_multi_arg): Remove the corresponding builtins.
9095         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
9096         (UNSPEC_FMA4_FMSUBADD): Remove.
9097         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
9098         * config/i386/sse.md (FMA4MODEF4): Remove.
9099         (FMAMODE): Add.
9100         (fma<mode>4): New expander.
9101         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
9102         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
9103         (*fma4i_fmsub_<mode>): Similarly.
9104         (*fma4i_fnmadd_<mode>): Similarly.
9105         (*fma4i_fnmsub_<mode>): Similarly.
9106         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
9107         with the first operand.
9108         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
9109         of explicit arithmetic.  Macroize with AVXMODEF2P.
9110         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
9111         (xop_frcz<mode>2): Macroize with FMAMODE.
9112         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
9113         the first operand.
9114         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
9115         extra negations.
9116         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
9117         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
9118         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
9119         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
9120         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
9121         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
9122         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
9123         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
9124
9125 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
9126
9127         PR rtl-optimization/45966
9128         * combine.c (try_combine): If added_sets_2, deal with the case
9129         where i0 feeds i1 and i1 feeds i2.
9130
9131 2010-10-18  Jan Hubicka  <jh@suse.cz>
9132
9133         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
9134         preserve flags before trying to guess on visibility.
9135         (varpool_externally_visible_p): New function.
9136         (function_and_variable_visibility): Use it.
9137
9138 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9139
9140         Implemented parsing @synthesize and @dynamic for Objective-C.
9141         * c-parser.c (c_parser_external_declaration): Recognize
9142         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
9143         (c_parser_objc_at_synthesize_declaration): New.
9144         (c_parser_objc_at_dynamic_declaration): New.
9145
9146 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9147
9148         * c-parser.c (c_parser_objc_class_declaration): After finding an
9149         error, parse the whole declaration then reset parser->error.
9150
9151 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
9152
9153         PR target/46041
9154         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
9155         * builtins.c (mode_has_fma): Ditto.
9156
9157 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
9158
9159         PR target/36898
9160         PR middle-end/43760
9161         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
9162
9163 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
9164
9165         * config/i386/i386.c (ix86_option_override_internal): Define and
9166         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
9167         default.
9168         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9169         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
9170
9171 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9172
9173         Merge from 'apple/trunk' branch on FSF servers.
9174         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
9175         following Objective-C change:
9176
9177         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
9178
9179         Radar 4301047
9180         * c-parse.in (objc_quals): Build objc qualifier list same way
9181         as gcc-3.3
9182
9183 2010-10-18  Jan Hubicka  <jh@suse.cz>
9184
9185         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
9186         function_and_variable_visibility): Revert accidental commit.
9187
9188 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9189
9190         Merge from 'apple/trunk' branch on FSF servers.
9191         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
9192         the following Objective-C change:
9193
9194         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
9195
9196         Radar 4204796
9197         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
9198         'volatilized' type used in a typeof operator.
9199
9200 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
9201
9202         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
9203         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
9204         rewrite modelled on gimple_purge_dead_eh_edges.
9205         (gimple_purge_all_dead_abnormal_call_edges): New function.
9206         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
9207         directly instead of through gimple_purge_dead_abnormal_call_edges.
9208         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
9209         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
9210         removed AB side-effects from one of its statements.
9211         (init_pre): Initialize need_ab_cleanup.
9212         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
9213         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
9214
9215 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
9216
9217         PR c/46015
9218         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
9219         on computed goto argument.
9220
9221 2010-10-18  Richard Guenther  <rguenther@suse.de>
9222
9223         PR tree-optimization/45967
9224         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
9225         (could_have_pointers): Likewise.
9226         (handle_rhs_call, handle_const_call, handle_pure_call,
9227         find_func_aliases, intra_create_variable_infos): Remove calls to them.
9228         (struct fieldoff): Add must_have_pointers field.
9229         (type_must_have_pointers): New function.
9230         (field_must_have_pointers): Likewise.
9231         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
9232         Adjust field merging.
9233         (create_function_info_for): May-have-pointers of varinfo is
9234         almost always true.
9235         (create_variable_info_for_1): Likewise.
9236
9237 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
9238
9239         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
9240         of operands to vec_concat.
9241
9242 2010-10-18  Richard Guenther  <rguenther@suse.de>
9243
9244         PR lto/44950
9245         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
9246         also clear references to entries of it.
9247
9248 2010-10-18  Andi Kleen  <ak@linux.intel.com>
9249
9250         PR other/43448
9251         * gccbug.in: Remove.
9252         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
9253         (doc, distclean, install-common): Remove reference to gccbug.
9254         * configure: Regenerate.
9255         * configure.ac (all_outputs): Remove gccbug.
9256         * doc/configfiles.texi: Remove references to gccbug.
9257         * doc/sourcebuild.texi: Dito.
9258
9259 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
9260
9261         PR middle-end/46019
9262         * fold-const.c (fold_binary_loc): If integer_pow2p has
9263         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
9264
9265 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
9266             Jeremie Salvucci  <jeremie.salvucci@free.fr>
9267
9268         * gengtype.c (verbosity_level): Add variable.
9269         (set_gc_used): Count variables for verbosity.
9270         (close_output_files): Backing up files, counting written ones
9271         verbosily.
9272         (write_types): Count emitted functions for verbosity. Added
9273         debug messages.
9274         (write_enum_defn): Count structures for verbosity. Added debug
9275         messages.
9276         (gengtype_long_options): Add "verbose" & "backupdir".
9277         (print_usage): Ditto.
9278         (main): Verbose display of parsed files.
9279
9280         * gengtype.h (verbosity_level): Add declaration.
9281
9282 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
9283
9284         * gengtype.c (parse_program_options): Add allocation of
9285         plugin_files, and correct test on nb_plugin_files.
9286
9287 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9288
9289         Merge from 'apple/trunk' branch on FSF servers.
9290
9291         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
9292
9293         Radar 4133425
9294         * c-decl.c (undeclared_variable): Issue diagnostic on
9295         private 'ivar' access.
9296
9297 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
9298
9299         PR target/46051
9300         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
9301         generated sequence to match *avx_vperm2f128<mode>_nozero.
9302         (vec_interleave_lowv4df): Ditto.
9303         (vec_interleave_highv8sf): Ditto.
9304         (vec_interleave_lowv8sf): Ditto.
9305
9306 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
9307
9308         * libgcov.c (create_file_directory): Enable it for win32 case.
9309         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
9310         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
9311         (GCOV_PREFIX_SKIP): Likewise.
9312
9313 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9314
9315         * doc/objc.texi (GNU Objective-C runtime API): New section.
9316         (Modern GNU Objective-C runtime API): New section.
9317         (Traditional GNU Objective-C runtime API): New section.
9318         (Executing code before main): Mention that this section is
9319         specific to the GNU Objective-C runtime.
9320         (Garbage Collection): Same.
9321
9322 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
9323
9324         * c-parser.c (c_parser_for_statement): Move initialization of
9325         cond and incr before if.
9326
9327 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
9328
9329         * target.def (preferred_output_reload_class): New hook.
9330         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
9331         * doc/tm.texi: Regenerate.
9332         * targhooks.c (default_preferred_output_reload_class): New function.
9333         * targhooks.h (default_preferred_output_reload_class): Declare.
9334         * reload.c (find_dummy_reload): Change rclass argument type from
9335         enum reg_class to reg_class_t. Change this_alternative array type
9336         from enum reg_class to reg_class_t.
9337         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
9338         (push_reload): Change preferred_class variable type to reg_class_t.
9339         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
9340         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
9341         argument type from enum reg_class to reg_class_t. Use
9342         HARD_REGISTER_NUM_P predicate.
9343         * recog.h (reg_fits_class_p): Update prototype.
9344
9345         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9346         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
9347         Remove.
9348         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
9349         static. Change regclass argument and result types from enum reg_class
9350         to reg_class_t.
9351         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9352
9353 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
9354
9355         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
9356         visibility enum, and handle @package.
9357
9358 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9359
9360         * doc/objc.texi (What you can and what you cannot do in +load):
9361         Document that sending messages to constant string objects in +load
9362         is not guaranteed to work.
9363
9364 2010-10-16  Jan Hubicka  <jh@suse.cz>
9365
9366         PR middle-end/44206
9367         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
9368         existence of refrences before removing the function.
9369
9370 2010-10-16  Jan Hubicka  <jh@suse.cz>
9371
9372         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
9373         only_called_at_startup and only_called_at_exit.
9374         (cgraph_propagate_frequency): Compute only_called_at_startup and
9375         only_called_at_exit.
9376         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
9377         only_called_at_exit.
9378         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
9379         flags.
9380         * predict.c (compute_function_frequency): Initialize the new flags.
9381
9382 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
9383
9384         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
9385         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
9386         on the bounds of its domain.
9387         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
9388
9389 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
9390
9391         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
9392         * config/avr/avr-protos.h (preferred_reload_class): Remove.
9393         * config/avr/avr.c (preferred_reload_class): Remove.
9394         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
9395         * config/pa/pa.c (emit_move_sequence): Update comment
9396         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
9397         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
9398         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
9399         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
9400         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
9401         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
9402         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
9403         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
9404         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
9405         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
9406         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
9407         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
9408         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
9409
9410 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9411
9412         * opts.c (set_fast_math_flags,
9413         set_unsafe_math_optimizations_flags): Make static.
9414         * toplev.h (set_fast_math_flags,
9415         set_unsafe_math_optimizations_flags): Remove prototypes.
9416
9417 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9418
9419         * config/arm/arm.c (arm_option_optimization): Set
9420         flag_section_anchors to 1 not 2.
9421         * config/i386/i386.c (ix86_option_override_internal): Check
9422         global_options_set.x_flag_zee and
9423         global_options_set.x_flag_omit_frame_pointer.
9424         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
9425         flag_zee to 2.
9426         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9427         global_options_set.x_flag_omit_frame_pointer.
9428         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
9429         opts->x_flag_section_anchors to 1 not 2.
9430         * config/sh/sh.c (sh_option_optimization): Don't set
9431         flag_schedule_insns to 2.
9432         (sh_option_override): Check
9433         global_options_set.x_flag_schedule_insns.
9434         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
9435
9436 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
9437
9438         * configure.ac: Make sure inhibit_libc remains false for mingw targets
9439         as cross.
9440         * configure: Regenerated.
9441
9442 2010-10-15  Xinliang David Li  <davidxl@google.com>
9443
9444         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
9445         function.
9446         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
9447         into a recursive function.
9448
9449 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
9450
9451         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
9452         (*movdfcc_1): ditto.
9453
9454 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9455
9456         * target.def (target_option.init_struct): New hook.
9457         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
9458         * doc/tm.texi: Regenerate.
9459         * hooks.c (hook_void_gcc_optionsp): New.
9460         * hooks.h (hook_void_gcc_optionsp): Declare.
9461         * langhooks-def.h (lhd_init_options_struct): Remove.
9462         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
9463         * langhooks.c (lhd_init_options_struct): Remove.
9464         * opts.c (init_options_struct): Also call
9465         targetm.target_option.init_struct.
9466         * config/i386/i386.c (ix86_option_init_struct,
9467         TARGET_OPTION_INIT_STRUCT): New.
9468         (ix86_option_optimization): Move some settings to
9469         ix86_option_init_struct.
9470         * config/pdp11/pdp11.c (pdp11_option_init_struct,
9471         TARGET_OPTION_INIT_STRUCT): New.
9472         (pdp11_option_optimization): Move some settings to
9473         pdp11_option_init_struct.
9474         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
9475         rs6000_option_init_struct.  Use options structure pointer.
9476         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9477         * config/s390/s390.c (s390_option_init_struct,
9478         TARGET_OPTION_INIT_STRUCT): New.
9479         (s390_option_optimization): Don't set
9480         flag_asynchronous_unwind_tables here.
9481         * config/sh/sh.c (sh_option_init_struct,
9482         TARGET_OPTION_INIT_STRUCT): New.
9483         (sh_option_optimization): Don't set flag_finite_math_only here.
9484         * config/spu/spu.c (spu_option_optimization): Replace by
9485         spu_option_optimization.  Use options structure pointer.
9486         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9487
9488 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9489
9490         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
9491
9492         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
9493         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
9494         (Standard names): Document fma.
9495
9496         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
9497         __FP_FAST_FMAF, __FP_FAST_FMAL.
9498
9499         * builitns.c (expand_builtin_mathfn_ternary): New function for
9500         expanding ternary math functions, like fma.
9501         (expand_builtin): Call it for the fma builtins.
9502
9503         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
9504         ops at present.
9505
9506         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
9507         vectorizable functions to support vectorizing fma.
9508
9509         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
9510         Handle fma builtins.
9511
9512         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
9513         (UNSPEC_VSX_MSUB): Ditto.
9514         (UNSPEC_VSX_NMADD): Ditto.
9515         (UNSPEC_VSX_NMSUB): Ditto.
9516         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
9517         of UNSPEC. Renumber combiner patterns.
9518         (vsx_fmsub<mode>4*): Ditto.
9519         (vsx_fnmadd<mode>4*): Ditto.
9520         (vsx_fnmsub<mode>4*): Ditto.
9521
9522         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
9523         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
9524         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
9525         (altivec_vmaddfp_1): Ditto.
9526         (altivec_vmaddfp_2): Ditto.
9527         (atlivec_mulv4sf3): Ditto.
9528         (altivec_vnmsubfp): Ditto.
9529         (altivec_vnmsubfp_1): Ditto.
9530         (altivec_vnmsubfp_2): Ditto.
9531         (altivec_vnmsubfp_3): Delete.
9532
9533         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
9534         (fmasf4_fpr): Ditto.
9535         (fmssf4_fpr): Ditto.
9536         (fnmasf4_fpr): Ditto.
9537         (fnmssf4_fpr): Ditto.
9538         (fmadf4): Ditto.
9539         (fmadf4_fpr): Ditto.
9540         (fmsdf4_fpr): Ditto.
9541         (fnmadf4_fpr): Ditto.
9542         (fnmsdf4_fpr): Ditto.
9543
9544         * optabs.h (OTI_fma): Add fma optab.
9545         (fma_optab): Ditto.
9546
9547         * genopinit.c (optabs): Set fma optab.
9548
9549         * rtl.def (FMA): Add FMA rtl.
9550
9551         * tree.h (mode_has_fma): New function to return if MODE supports a
9552         fast multiply and add instruction.
9553         * builtins.c (mode_has_fma): Ditto.
9554
9555 2010-10-15  Jan Hubicka  <jh@suse.cz>
9556
9557         * lto-streamer-out.c (write_symbol): Use pointer set of seen
9558         objects instead of bitmap.
9559         (produce_symtab): Likewise; output defined symbols first.
9560
9561 2010-10-15  Jie Zhang  <jie@codesourcery.com>
9562
9563         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
9564         Option Summary and Index.
9565
9566 2010-10-15  Richard Guenther  <rguenther@suse.de>
9567
9568         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
9569         for automatic variables again.
9570
9571 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9572
9573         * doc/extend.texi (Variable Length): Don't refer to VLAs not
9574         conforming to C99.
9575
9576 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9577
9578         * config/rx/rx.c (rx_option_optimization): Change to
9579         rx_override_options_after_change.  Don't change
9580         flag_lto_compression_level.  Don't check for changes to whether
9581         FPU instructions can be used.  Check and set only
9582         flag_finite_math_only, not other fast-math flags.
9583         (rx_option_override): Call rx_override_options_after_change.
9584         (TARGET_OPTION_OPTIMIZATION): Remove.
9585         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
9586
9587 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9588
9589         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
9590         disable section anchors for lang_hooks.name[4] != 'O'.
9591
9592 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9593
9594         * config/frv/frv.c (frv_option_optimization,
9595         TARGET_OPTION_OPTIMIZATION): Remove.
9596         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
9597
9598 2010-10-15  Michael Matz  <matz@suse.de>
9599
9600         * cgraphunit.c (clone_of_p): Define unconditionally.
9601
9602 2010-10-15  Richard Guenther  <rguenther@suse.de>
9603
9604         PR lto/45957
9605         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
9606
9607 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
9608
9609         * ifcvt.c (find_active_insn_before): New function.
9610         (find_active_insn_after): New function.
9611         (cond_exec_process_if_block): Use new functions to replace
9612         prev_active_insn() and next_active_insn().
9613
9614 2010-10-14  Yao Qi  <yao@codesourcery.com>
9615
9616         PR target/45447
9617         * config/arm/arm.c (arm_build_builtin_va_list): Assign
9618         va_list_name to TYPE_STUB_DECL (va_list_type).
9619
9620 2010-10-14  Jan Hubicka  <jh@suse.cz>
9621
9622         PR middle-end/45621
9623         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
9624         redirected to clone, be happy.
9625         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
9626         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
9627         former_clone_of unconditionally.
9628
9629 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9630
9631         Merge from FSF apple 'trunk' branch.
9632         2006 Fariborz Jahanian  <fjahanian@apple.com>
9633
9634         Radars 4436866, 4505126, 4506903, 4517826
9635         * c-parser.c (c_parser, objc_property_attr_context) New flag.
9636         (c_lex_one_token): Handle property attributes.
9637         (c_parser_external_declaration): Handle @property.
9638         (c_parser_declaration_or_fndef): Warn on invalid attributes before
9639         @alias, @class, @end and @property objc keywords.
9640         (c_parser_objc_methodprotolist): Handle @property.
9641         (c_parser_objc_property_attrlist): New.
9642         (c_parser_objc_at_property): New.
9643         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
9644         (build_modify_expr): Likewise.
9645
9646 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9647
9648         PR tree-optimization/46008
9649         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
9650
9651 2010-10-14  Richard Guenther  <rguenther@suse.de>
9652
9653         PR tree-optimization/44913
9654         * tree-data-ref.c (disjoint_objects_p): Remove.
9655         (dr_may_alias_p): Simplify.  Only hand the base object to
9656         the alias-oracle.
9657         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
9658         some more trees, bail out instead of asserting.
9659         (ptr_derefs_may_alias_p): Likewise.  Export.
9660         (refs_may_alias_p_1): Handle STRING_CSTs.
9661         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
9662
9663 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9664
9665         PR c/45969
9666         * c-typeck.c (build_binary_op): Don't try to compute a semantic
9667         type with excess precision for boolean operations.
9668
9669 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
9670             Basile Starynkevitch  <basile@starynkevitch.net>
9671
9672         * gengtype.c:  Include getopt.h and version.h.
9673
9674         (lang_bitmap, struct outf, outf_p)
9675         (get_output_file_with_visibility, oprintf): Definitions moved to
9676         gengtype.h
9677         (output_files, header_file, srcdir, srcdir_len, this_file)
9678         (do_dump): No more static variables.
9679         (do_debug): New.
9680         (dbgprint_count_type_at): Added new function.
9681         (gengtype_long_options): New.
9682         (print_usage, print_version, parse_program_options): New.
9683         (main): Call parse_program_options, and removed old option
9684         handling code.  Added some debug output.
9685
9686         * gengtype.h:  Updated copyright year.
9687         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
9688         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
9689         Moved from gengtype.c to here.
9690         (do_debug, read_state_filename, write_state_filename): New variables.
9691         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
9692
9693         * Makefile.in:
9694         (REVISION): Always defined.
9695         (version.o): Removed ifdef REVISION_c.
9696         (s-gtype): Pass arguments to build/gengtype program.
9697         (build/version.o): Added building rule.
9698         (build/gengtype$(build_exeext)): Added build/version.o.
9699
9700 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9701
9702         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
9703         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
9704         __strong macros.
9705
9706 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
9707
9708         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
9709         may_trap_or_fault_p instead of may_trap_p predicate.
9710         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
9711         (substitute_placeholder_in_expr): Likewise.
9712         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
9713         flag on MEM_REF nodes.
9714         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
9715         flags on INDIRECT_REF nodes.
9716
9717 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
9718
9719         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
9720         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
9721         (arm*-*-eabi*) <tm_file>: Likewise.
9722         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
9723         (frv-*-*linux*) <tm_file>: Likewise.
9724         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
9725         and associated helper macros.
9726         * config/frv/frv-abi.h: Delete.
9727
9728 2010-10-14  Richard Guenther  <rguenther@suse.de>
9729
9730         PR lto/44561
9731         * tree.def (NULLPTR_TYPE): New tree code.
9732         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
9733         * dwarf2out.c (is_base_type): Likewise.
9734         (gen_type_die_with_usage): Likewise.
9735         * sdbout.c (plain_type_1): Likewise.
9736         * tree.c (build_int_cst_wide): Likewise.
9737         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
9738
9739 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9740
9741         * params.c (params_finished): New.
9742         (add_params): Assert !params_finished.
9743         (finish_params): New.
9744         (set_param_value_internal): Take params and params_set
9745         parameters.  Assert params_finished.
9746         (set_param_value, maybe_set_param_value): Take params and
9747         params_set parameters.  Update calls to set_param_value_internal.
9748         (set_default_param_value): Assert !params_finished.  Don't use
9749         set_param_value_internal.
9750         (default_param_value, init_param_values): New.
9751         * params.h (struct param_info): Change value to default_value.
9752         Remove set.
9753         (set_param_value, maybe_set_param_value): Add params and
9754         params_set parameters.
9755         (PARAM_VALUE): Get parameters from global_options.
9756         (PARAM_SET_P): Remove.
9757         (finish_params, default_param_value, init_param_values): New.
9758         * common.opt (param_values): New Variable.
9759         * config/arm/arm.c (arm_option_override): Pass extra arguments to
9760         maybe_set_param_value.
9761         * config/i386/i386.c (ix86_option_override_internal): Pass extra
9762         arguments to maybe_set_param_value.
9763         * config/picochip/picochip.c (picochip_option_override): Pass
9764         extra arguments to maybe_set_param_value.
9765         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
9766         extra arguments to maybe_set_param_value.
9767         * config/s390/s390.c (s390_option_override): Use
9768         maybe_set_param_value instead of set_param_value.  Pass extra
9769         arguments to maybe_set_param_value.
9770         * config/sparc/sparc.c (sparc_option_override): Pass extra
9771         arguments to maybe_set_param_value.
9772         * config/spu/spu.c (spu_option_override): Pass extra arguments to
9773         maybe_set_param_value.
9774         * opts.c (handle_param): Take opts and opts_set parameters.
9775         Update call to set_param_value.
9776         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
9777         initial_loop_invariant_max_bbs_in_loop): Remove.
9778         (init_options_once): Don't set them.
9779         (init_options_struct): Initialize parameters structures.
9780         (default_options_optimization): Use default_param_value when
9781         restoring defaults.  Update calls to maybe_set_param_value.
9782         (finish_options): Update calls to maybe_set_param_value.
9783         (common_handle_option): Update calls to handle_param and
9784         set_param_value.
9785         * toplev.c (DEFPARAM): Update definition for changes to param_info.
9786         (general_init): Call finish_params.
9787
9788 2010-10-14  Nick Clifton  <nickc@redhat.com>
9789
9790         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
9791         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
9792         (FIRST_PSEUDO_REGISTER): Increase by one.
9793         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
9794         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
9795         (MODES_TIEABLE): Call mn10300_modes_tieable.
9796         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
9797         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
9798         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
9799         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
9800         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
9801         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
9802         (mn10300_cc_status_mdep): Delete.
9803         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
9804         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
9805         the combine-stack-adjust pass.
9806         (print_operand): Use the mode of the comparison operation to
9807         select the comparison suffix.
9808         (notice_update_cc): Delete.
9809         (mn10300_secondary_reload_class): Remove test for stack pointer
9810         based arithmetic.
9811         (output_tst): Rename to mn10300_output_cmp.
9812         (impossible_plus_operand): Move into predicates.md.
9813         (mn10300_legitimize_address): Make static.
9814         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
9815         constant pic operands.
9816         (mn10300_legitimate_constant_p): New function.
9817         (mn10300_case_values_threshold): Make static.
9818         (mn10300_hard_regno_mode_ok): New function.
9819         (mn10300_modes_tieable): New function.
9820         (mn10300_select_cc_mode): New function.
9821         * config/mn10300/predicates.md (impossible_plus_operand): Define.
9822         * config/mn10300/mn10300-protos.h: Tidy.
9823         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
9824         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
9825         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
9826         with clobbers or sets of CC_REG.
9827         (CC_REG): Define.
9828         (mov*): Remove use of CLR instruction.
9829         (cbranch_si4_<code>): New pattern/split.
9830         (integer_conditional_branch): New pattern.
9831         (cbranch_sf4_<code>): New pattern/split.
9832         (float_conditional_branch): New pattern.
9833         (casesi): Use addsi3 pattern instead of movsi pattern to add and
9834         move a value at the same time.
9835         (cc0 peepholes): Remove.
9836
9837 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9838
9839         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
9840         on RTX_FRAME_RELATED_P insns and the insn to which
9841         NOTE_INSN_EPILOGUE_BEG is attached.
9842         * sched-vis.c (print_value): Allow NULL value.
9843
9844 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9845
9846         PR rtl-optimization/45570
9847         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
9848         assert that we are pipelining outer loops.  Allow returning
9849         zero predecessors.
9850
9851 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9852
9853         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
9854         (tidy_control_flow): Tidy vertical space.
9855         (sel_remove_bb): New variable idx.  Use it to remember the basic
9856         block index before deleting the block.
9857         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
9858         (sel_merge_blocks): ... here.
9859         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
9860
9861 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9862
9863         * cse.c (is_dead_reg): Change into inline function that is not
9864         called through for_each_rtx.
9865         (set_live_p): Adjust caller.
9866         (insn_live_p): Don't reset DEBUG_INSNs here.
9867         (struct dead_debug_insn_data): New data.
9868         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
9869         (delete_trivially_dead_insns): If there is just one setter for the
9870         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
9871         and add DEBUG_INSN for it right before the removed setter and
9872         use the DEBUG_EXPR instead of the dead pseudo.
9873
9874 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
9875
9876         * et-forest.c (et_nca): Return NULL immediately when
9877         the dominance forest has disjoint components.
9878
9879 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
9880
9881         * ira.c (setup_class_hard_regs): Fix typo in indexing
9882         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
9883
9884 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
9885
9886         * graph.c (inbb): New variable.
9887         (start_bb): Set inbb to 1 if output is inside of a building block.
9888         (end_bb): Check if output is inside of a building block.
9889
9890 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
9891
9892         PR rtl-optimization/45912
9893         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
9894         regno of registers instead of their index to compute the alignment.
9895
9896 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
9897
9898         * config/i386/i386.c (ix86_build_const_vector): Check vector
9899         mode instead of scalar mode.
9900         (ix86_build_signbit_mask): Likewise.
9901         (ix86_expand_fp_absneg_operator): Updated.
9902         (ix86_expand_copysign): Likewise.
9903         (ix86_expand_int_vcond): Likewise.
9904         (ix86_emit_swdivsf): Likewise.
9905         (ix86_sse_copysign_to_positive): Likewise.
9906         (ix86_expand_sse_fabs): Likewise.
9907         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
9908         * config/i386/sse.md (copysign<mode>3): Likewise.
9909         (sse2_cvtudq2ps): Likewise.
9910         (vec_unpacku_float_hi_v4si): Likewise.
9911         (vec_unpacku_float_lo_v4si): Likewise.
9912
9913         * config/i386/i386.c (ix86_builtins): Add
9914         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
9915         (bdesc_args): Likewise.
9916         (ix86_builtin_vectorized_function): Support
9917         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
9918         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
9919         and IX86_BUILTIN_CVTPS2DQ256.
9920         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
9921
9922         * config/i386/sse.md (STORENT_MODE): New.
9923         (VEC_FLOAT_MODE): Likewise.
9924         (VEC_EXTRACT_MODE): Likewise.
9925         (*avx_cvtdq2pd256_2): Likewise.
9926         (vec_pack_trunc_v4df): Likewise.
9927         (vec_interleave_highv8sf): Likewise.
9928         (vec_interleave_lowv8sf): Likewise.
9929         (storent<mode>): Macroized.
9930         (<code><mode>2: absneg): Likewise.
9931         (copysign<mode>3): Likewise.
9932         (vec_extract<mode>): Likewise.
9933
9934         PR target/44180
9935         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
9936         for V8SFmode.
9937
9938 2010-10-13  Richard Guenther  <rguenther@suse.de>
9939             H.J. Lu  <hongjiu.lu@intel.com>
9940
9941         * config/i386/sse.md (reduc_splus_v8sf): Add.
9942         (reduc_splus_v4df): Likewise.
9943         (vec_unpacks_hi_v8sf): Likewise.
9944         (vec_unpacks_lo_v8sf): Likewise.
9945         (*avx_cvtps2pd256_2): Likewise.
9946         (vec_unpacks_float_hi_v8si): Likewise.
9947         (vec_unpacks_float_lo_v8si): Likewise.
9948         (vec_interleave_highv4df): Likewise.
9949         (vec_interleave_lowv4df): Likewise.
9950
9951 2010-10-13  Richard Guenther  <rguenther@suse.de>
9952
9953         PR objc/45878
9954         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
9955         alone if there are no virtual methods.
9956
9957 2010-10-13  Richard Henderson  <rth@redhat.com>
9958
9959         * expr.c (build_personality_function): Take parameter LANG instead
9960         of parameter NAME.  Build the name based on the lang prefix and the
9961         unwind method in use.
9962         * tree.c (lhd_gcc_personality): Update call to
9963         build_personality_function.
9964
9965 2010-10-13  Richard Guenther  <rguenther@suse.de>
9966
9967         PR objc/45878
9968         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
9969
9970 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
9971
9972         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
9973         Canonicalize input operands of ASM_OPERANDS insns.
9974
9975 2010-10-13  Richard Guenther  <rguenther@suse.de>
9976
9977         PR tree-optimization/45788
9978         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
9979         EH update until fixup-cfg.
9980
9981 2010-10-13  Julian Brown  <julian@codesourcery.com>
9982
9983         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
9984         from CORE_REGS and GENERAL_REGS classes.
9985         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
9986         final constraint for register preferencing.
9987
9988 2010-10-13  Richard Guenther  <rguenther@suse.de>
9989
9990         PR tree-optimization/45970
9991         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
9992         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
9993         (stmt_kills_ref_p): Likewise.
9994         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
9995
9996 2010-10-13  Richard Guenther  <rguenther@suse.de>
9997
9998         PR tree-optimization/45982
9999         * tree-ssa-structalias.c (make_constraints_to): New function.
10000         (make_constraint_to): Implement in terms of make_constraints_to.
10001         (find_func_aliases): Properly make return values of pure/const
10002         functions escape if they assign to sth that is not a pointer.
10003
10004 2010-10-13  Richard Guenther  <rguenther@suse.de>
10005
10006         PR middle-end/45874
10007         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10008         Fixup the CFG when EH was fixed up.
10009
10010 2010-10-13  Ira Rosen  <irar@il.ibm.com>
10011
10012         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
10013         Use operand's type for POINTER_PLUS_EXPR.
10014
10015 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
10016
10017         * c-parser.c (c_parser_for_statement): Initialize incr.
10018
10019 2010-10-12  Xinliang David Li  <davidxl@google.com>
10020
10021         PR tree-optimization/45972
10022         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
10023         with too many arguments.
10024
10025 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
10026
10027         PR fortran/45636
10028         * tree-ssa-forwprop.c: Include expr.h.
10029         (constant_pointer_difference, simplify_builtin_call): New functions.
10030         (tree_ssa_forward_propagate_single_use_vars): Call
10031         simplify_builtin_call on builtin calls.
10032
10033 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
10034
10035         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
10036         (*adddi3_extend_sp32): Likewise.
10037         (*subdi3_insn_sp32): Likewise.
10038         (*subdi3_extend_sp32): Likewise.
10039         (*negdi2_sp32): Use negative test for consistency.
10040
10041 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
10042
10043         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
10044         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10045         * config/fixed-bit.h: Likewise.
10046         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10047         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10048         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
10049         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
10050         (DF_SIZE): Likewise.
10051         * doc/tm.texi: Regenerate.
10052
10053 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
10054
10055         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
10056         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
10057         (*isel_reversed_unsigned_<mode>): New.
10058         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
10059         as valid comparisons and adjust operands and output appropriately.
10060         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
10061
10062 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
10063
10064         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
10065         DATA_ALIGNMENT and add COND parameter. Update comments above.
10066         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
10067         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
10068
10069 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
10070
10071         PR bootstrap/45958
10072         * exec-tool.in: Support '-plugin' as the second option to the linker.
10073
10074 2010-10-12  Richard Henderson  <rth@redhat.com>
10075
10076         PR middle-end/45962
10077         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
10078         (expand_stack_vars): Assert large base allocated when used.
10079
10080 2010-10-12  Richard Guenther  <rguenther@suse.de>
10081
10082         * tree-ssa-structalias.c (get_constraint_for_1): Constants
10083         only point to nonlocal, not anything.
10084
10085 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
10086
10087         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
10088         unwind info for exceptions.
10089
10090 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10091
10092         PR testsuite/45851
10093         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
10094         Document optional target selector.
10095
10096 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
10097
10098         * flag-types.h: New.
10099         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
10100         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
10101         options.h.
10102         (OPTIONS_H): Define.
10103         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
10104         of options.h.
10105         * configure.ac (tm_include_list): Include options.h not flags.h.
10106         * configure: Regenerate.
10107         * flags.h: Include flag-types.h.  Include options.h at top of file
10108         again.
10109         (enum debug_info_type, enum debug_info_level, enum
10110         debug_info_usage, enum symbol_visibility, struct visibility_flags,
10111         enum ira_algorithm, enum ira_region, enum excess_precision, enum
10112         graph_dump_types, enum stack_check_type,
10113         enum warn_strict_overflow_code): Move to flag-types.h
10114         * opth-gen.awk: Include flag-types.h in options.h.
10115
10116 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
10117
10118         * expr.c (store_expr): Share code for STRING_CST and
10119         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
10120         check if target is a MEM.
10121
10122         * rtl.h: Include hashtab.h.
10123         (iterative_hash_rtx): New prototype.
10124         * rtl.c (iterative_hash_rtx): New function.
10125         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
10126         (output_loc_list): Return immediately if emitted is set, set it.
10127         (hash_loc_operands, hash_locs, hash_loc_list,
10128         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
10129         optimize_location_lists_1, optimize_location_lists): New function.
10130         (dwarf2out_finish): Call optimize_location_lists.
10131         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
10132
10133 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10134
10135         PR testsuite/45974
10136         Revert:
10137         * Makefile.in ($(lang_checks_parallel))
10138         ($(lang_checks_parallelized)): Use single quotes for
10139         $(RUNTESTFLAGS), to allow passing quoted content.
10140
10141 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10142
10143         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
10144         actual_oldval.  Use __builtin_expect.
10145         (SUBWORD_VAL_CAS): Likewise.
10146
10147 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
10148
10149         * recog.c (nonmemory_operand): Call immediate_operand for
10150         CONSTANT_P operands.
10151
10152 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
10153
10154         * config/i386/i386.md (movmem<mode>): Macroize expander from
10155         movmem{si,di} using SWI48 mode iterator.
10156         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
10157         *strmovsi_rex_1 using P mode iterator.
10158         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
10159         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
10160         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
10161         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
10162         (setmem<mode>): Macroize expander from setmem{si,di} using
10163         SWI48 mode iterator.
10164         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
10165         *strsetsi_rex_1 using P mode iterator.
10166         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
10167         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
10168         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
10169         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
10170         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
10171         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
10172         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
10173         mode iterator.
10174         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
10175         *strlenqi_rex_1 using P mode iterator.
10176
10177 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
10178
10179         PR bootstrap/45445
10180         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
10181         static functions.
10182         (mark_ref_live, mark_ref_dead): Use them.
10183         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
10184         Save the original reg, and use the new functions.
10185         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
10186         changed.
10187         (check_and_make_def_conflict): Save the original reg.
10188
10189 2010-10-11  Martin Jambor  <mjambor@suse.cz>
10190
10191         PR middle-end/45699
10192         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
10193         thunks.
10194
10195 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10196
10197         * Makefile.in ($(lang_checks_parallel))
10198         ($(lang_checks_parallelized)): Use single quotes for
10199         $(RUNTESTFLAGS), to allow passing quoted content.
10200
10201         PR bootstrap/35855
10202         * opt-functions.awk (BEGIN): New section.
10203         (lower, upper, digit, alnum): New variables.
10204         (static_var, opt_sanitized_name): Use alnum instead of character
10205         classes, for non-C locale.
10206         * optc-gen.awk: Likewise.
10207         * opth-gen.awk: Likewise.
10208
10209 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
10210
10211         * target.def (preferred_reload_class): New hook.
10212         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
10213         * doc/tm.texi: Regenerate.
10214         * targhooks.c (default_preferred_reload_class): New function.
10215         * targhooks.h (default_preferred_reload_class): Declare.
10216         * reload.c (find_dummy_reload): Change preferred_class variable type
10217         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
10218         target hook.
10219         (find_reloads): Change goal_alternative array type from int to
10220         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
10221         (push_reload, find_reloads_address_part): Use
10222         TARGET_PREFERRED_RELOAD_CLASS target hook.
10223         * reload1.c (emit_input_reload_insns): Ditto.
10224         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
10225         hook. Change rclass argument and secondary_class variable types from
10226         'enum reg_class' to reg_class_t.
10227
10228         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
10229         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
10230         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
10231         Change regclass argument and result types from enum reg_class to
10232         reg_class_t.
10233         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10234
10235 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
10236
10237         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
10238         in masking operations.
10239         (simplify_const_unary_operation): Likewise.
10240         (simplify_binary_operation_1): Likewise.
10241         (simplify_const_binary_operation): Likewise.
10242         (simplify_const_relational_operation): Likewise.
10243         (simplify_ternary_operation): Likewise.
10244         (simplify_immed_subreg): Likewise.
10245
10246 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10247
10248         PR middle-end/45862
10249         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
10250         (TARGET_SUPPORTS_WEAK): New.
10251         * doc/tm.texi: Regenerate.
10252         * defaults.h (SUPPORTS_WEAK): Update comment.
10253         (TARGET_SUPPORTS_WEAK): New.
10254         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
10255         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
10256         SUPPORTS_WEAK.
10257         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
10258         make_decl_one_only): Likewise.
10259         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
10260         TARGET_SUPPORTS_WEAK.
10261         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
10262         instead of SUPPORTS_WEAK.
10263
10264 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10265
10266         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
10267
10268 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
10269
10270         * vec.h (VEC_qsort): Define.
10271         * dbxout.c (output_used_types): Use it.
10272         * df-scan.c (df_sort_and_compress_refs): Likewise.
10273         (df_sort_and_compress_mws): Likewise.
10274         * genautomata.c (uniq_sort_alt_states): Likewise.
10275         (evaluate_equiv_classes): Likewise.
10276         (output_trans_table): Likewise.
10277         (output_state): Likewise.
10278         * gimplify.c (compare_case_labels): Likewise.
10279         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
10280         * ipa.c (build_cdtor_fns): Likewise.
10281         * lto.c (lto_wpa_write_files): Likewise.
10282         * sel-sched.c (fill_vec_av_set): Likewise.
10283         * tree-predcom.c (determine_roots_comp): Likewise.
10284         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
10285         (splice_param_accesses): Likewise.
10286         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
10287         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
10288         (reassociate_bb): Likewise.
10289         * tree-ssa-sccvn.c (sort_scc): Likewise.
10290         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
10291
10292 2010-10-11  Ian Lance Taylor  <iant@google.com>
10293
10294         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
10295         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
10296         TREE_THIS_NOTRAP when appropriate.
10297         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
10298         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
10299         newly created MEM_REF.
10300
10301 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
10302
10303         Nathan Froyds patch to hooks FUNCTION_ARG etc.
10304         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
10305         (picochip_incoming_function_arg): Delete.
10306         (picochip_arg_advance): Delete.
10307         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
10308         (FUNCTION_INCOMING_ARG): Delete.
10309         (FUNCTION_ARG_ADVANCE): Delete.
10310         * config/picochip/picochip.c (picochip_function_arg): Take a
10311         const_tree and a bool.
10312         (picochip_incoming_function_arg): Likewise.
10313         (picochip_arg_advance): Likewise.
10314         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10315         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10316
10317 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10318
10319         PR middle-end/45955
10320         * ipa.c (build_cdtor): Delete endless loop.
10321
10322 2010-10-07  Andi Kleen  <ak@linux.intel.com>
10323
10324         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
10325         checksum-options.
10326         (checksum-options): Add.
10327         (cc1-dummy): Remove.
10328         (cc1-checksum): Change to run checksum over object files
10329         and options only.
10330         * dummy-checksum.c: Remove.
10331         * genchecksum.c: Update copyright.
10332         (usage): Allow multiple arguments.
10333         (BLOCKSIZE): Add.
10334         (dosum): Change for incremental checksum. Remove C output.
10335         (main): Iterate over all argument files. Add C output.
10336
10337 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
10338
10339         * params.c (set_param_value_internal): New.
10340         (set_param_value): Use set_param_value_internal.
10341         (maybe_set_param_value, set_default_param_value): New.
10342         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
10343         (maybe_set_param_value, set_default_param_value): Declare.
10344         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
10345         * config/i386/i386.c (ix86_option_override_internal): Use
10346         maybe_set_param_value.
10347         * config/ia64/ia64.c (ia64_option_default_params,
10348         TARGET_OPTION_DEFAULT_PARAMS): New.
10349         (ia64_option_optimization): Move some code to
10350         ia64_option_default_params.
10351         * config/picochip/picochip.c (picochip_option_override): Use
10352         maybe_set_param_value.
10353         * config/rs6000/rs6000.c (rs6000_option_default_params,
10354         TARGET_OPTION_DEFAULT_PARAMS): New.
10355         (rs6000_option_override_internal): Use maybe_set_param_value.
10356         (rs6000_option_optimization): Move some code to
10357         rs6000_option_default_params.
10358         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
10359         * config/sh/sh.c (sh_option_default_params,
10360         TARGET_OPTION_DEFAULT_PARAMS): New.
10361         (sh_option_optimization): Move some code to sh_option_default_params.
10362         * config/sparc/sparc.c (sparc_option_override): Use
10363         maybe_set_param_value.
10364         * config/spu/spu.c (spu_option_default_params,
10365         TARGET_OPTION_DEFAULT_PARAMS): New.
10366         (spu_option_optimization): Move some code to spu_option_default_params.
10367         (spu_option_override): Use maybe_set_param_value.
10368         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
10369         * doc/tm.texi: Regenerate.
10370         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
10371         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
10372         compiler_params.
10373         (default_options_optimization): Use maybe_set_param_value.
10374         (finish_options): Use maybe_set_param_value.
10375         * target.def (target_option.default_params): New hook.
10376         * toplev.c (general_init): Call targetm.target_option.default_params.
10377
10378 2010-10-11  Ira Rosen  <irar@il.ibm.com>
10379
10380         PR tree-optimization/45902
10381         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
10382         vector type for constants, unless it's a pointer.
10383
10384 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10385
10386         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
10387
10388 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
10389
10390         PR target/45870
10391         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
10392         (ix86_delegitimize_address): Use it.
10393
10394 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
10395
10396         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
10397
10398 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
10399
10400         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
10401         to cum struct in the call to function_arg_advance.
10402         (alpha_function_arg_advance): Mark named as unused.
10403
10404 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
10405
10406         * config/mips/mips.c (mips_handle_option): Make "value" with
10407         ATTRIBUTE_UNUSED.
10408
10409 2010-10-09  Richard Henderson  <rth@redhat.com>
10410
10411         PR rtl-opt/33721
10412         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
10413         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
10414         required_align, tidy the code a bit.  Emit split_stack code in the
10415         right place.  Mark the return value with the alignment properly.
10416         * expr.h (allocate_dynamic_stack_space): Update decl.
10417         * builtins.c (expand_builtin_apply): Update call to
10418         allocate_dynamic_stack_space.
10419         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
10420         * calls.c (initialize_argument_information): Update call to
10421         allocate_dynamic_stack_space.
10422         (expand_call): Likewise.
10423
10424         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
10425         Don't update_stack_alignment here.
10426         (alloc_stack_frame_space): Make ALIGN unsigned.
10427         (stack_var_cmp): Sort by alignment too.
10428         (partition_stack_vars): Don't merge large and small alignment vars.
10429         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
10430         Take care when BASE is not virtual_stack_vars_rtx.
10431         (expand_stack_vars): Allocate dynamic stack space for large
10432         alignment variables.
10433         (expand_one_stack_var): Update all to expand_one_stack_var_at.
10434         (defer_stack_allocation): True for large alignment vars.
10435         (update_stack_alignment): Merge into ...
10436         (expand_one_var): ... here.
10437         (gimple_expand_cfg): Place code from expand_stack_vars.
10438
10439 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10440
10441         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10442         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
10443         (pdp11_function_arg_advance): New function.
10444         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10445
10446 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10447
10448         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
10449         * libgcc2.c: Likewise.
10450
10451 2010-10-09  Richard Guenther  <rguenther@suse.de>
10452
10453         PR lto/45956
10454         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
10455         Properly check if a decl is an automatic var.
10456
10457 2010-10-09  Richard Guenther  <rguenther@suse.de>
10458
10459         PR lto/45947
10460         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
10461
10462 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10463
10464         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
10465         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10466         * config/mmix/mmix.c (mmix_function_arg): Rename to...
10467         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
10468         bool arguments.
10469         (mmix_function_arg): New function.
10470         (mmix_function_incoming_arg): New function.
10471         (mmix_function_arg_advance): New function.
10472         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10473         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10474
10475 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10476
10477         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10478         * config/vax/vax.c (vax_function_arg): New function.
10479         (vax_function_arg_advance): New function.
10480         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10481
10482 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10483
10484         * config/pa/pa-protos.h (function_arg): Delete.
10485         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10486         * config/pa/pa.c (function_arg): Rename to...
10487         (pa_function_arg): ...this.  Make static.  Take a const_tree and
10488         a bool.
10489         (pa_function_arg_advance): New function.
10490         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10491
10492 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10493
10494         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10495         * config/m68k/m68k.c (m68k_function_arg): New function.
10496         (m68k_function_arg_advance): New function.
10497         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10498
10499 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10500
10501         * config/avr/avr-protos.h (function_arg): Delete.
10502         (function_arg_advance): Delete.
10503         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10504         * config/avr/avr.c (function_arg): Rename to...
10505         (avr_function_arg): ...this.  Make static.  Take a const_tree and
10506         a bool.
10507         (function_arg_advance): Rename to...
10508         (avr_function_arg_advance): ...this.  Make static.  Take a
10509         const_tree and a bool.
10510         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10511
10512 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10513
10514         * config/alpha/alpha-protos.h (function_arg): Delete.
10515         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10516         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
10517         * config/alpha/alpha.c (function_arg): Rename to...
10518         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
10519         a bool.  Delete TARGET_ABI_UNICOSMK code.
10520         (alpha_function_arg_advance): New function.
10521         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10522
10523 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10524
10525         * config/mep/mep-protos.h (mep_function_arg): Delete.
10526         (mep_function_arg_advance): Delete.
10527         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10528         * config/mep/mep.c (mep_function_arg): Make static.  Take a
10529         const_tree and a bool.
10530         (mep_function_arg_advance): Likewise.
10531         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10532
10533 2010-10-09  Richard Guenther  <rguenther@suse.de>
10534
10535         PR tree-optimization/45945
10536         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
10537
10538 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
10539
10540         PR tree-optimization/45612
10541         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
10542         Test LABEL_DECLs as well.  Fix formatting issues.
10543         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
10544         whose label is present in NON_SSA_VARS.
10545         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
10546         as well.  Fix formatting issues.
10547         (visit_bb): Fix typos and formatting issue.
10548
10549 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10550
10551         PR tree-optimization/45950
10552         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
10553         before initializing vno->op.
10554
10555 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
10556
10557         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
10558         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
10559
10560 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
10561
10562         PR target/45913
10563         * config/i386/i386.c (ix86_binary_operator_ok): Support
10564         "andhi/andsi/anddi" as a zero-extending move.
10565
10566 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10567
10568         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
10569         into a temporary array.
10570
10571 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
10572
10573         PR tree-optimization/45903
10574         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
10575         of {A,L}SHIFTRT of MEM.
10576
10577 2010-10-08  Richard Guenther  <rguenther@suse.de>
10578
10579         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10580         Re-construct BLOCK_VARS.
10581         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
10582         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10583         * tree.c (free_lang_data_in_block): Remove.
10584         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
10585         Do not touch the BLOCK tree.
10586         * expr.c (expand_expr_real_1): Allow externals.
10587
10588 2010-10-08  Richard Guenther  <rguenther@suse.de>
10589
10590         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
10591         Do not output BLOCK_SUBBLOCKS.
10592         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
10593         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
10594         Re-construct BLOCK_SUBBLOCKS of parent block.
10595         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
10596         for BINFO_BASE_ACCESSES.
10597
10598 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
10599
10600         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
10601         (TREE_H): Include $(FLAGS_H) instead of options.h.
10602         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
10603         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10604         * common.opt (flag_complex_method, flag_evaluation_order,
10605         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
10606         Variable declarations.
10607         * configure.ac (tm_include_list): Include flags.h instead of options.h.
10608         * configure: Regenerate.
10609         * flags.h: Condition out contents for target libraries.  Include
10610         options.h at end of file.
10611         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
10612         flag_evaluation_order, flag_warn_unused_result): Remove.
10613         * gcc.c (main): Intialize global_options with global_options_init.
10614         * langhooks-def.h (lhd_init_options_struct): Declare.
10615         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10616         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
10617         * langhooks.c (lhd_init_options_struct): New.
10618         * langhooks.h (struct lang_hooks): Add init_options_struct.
10619         Update comment on init_options.
10620         * optc-gen.awk: Generate initializer for global_options_init, not
10621         global_options.
10622         * opth-gen.awk: Condition out structure declarations for target
10623         libraries.  Declare global_options_init.
10624         * opts-common.c: Include flags.h instead of options.h.
10625         * opts.c (flag_warn_unused_result): Remove.
10626         (read_cmdline_options): Take gcc_options parameters.  Pass them to
10627         read_cmdline_option.
10628         (initial_lang_mask, initial_min_crossjump_insns,
10629         initial_max_fields_for_field_sensitive,
10630         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
10631         (init_options_once): New.  Split out of decode_options.
10632         (init_options_struct): New.  Split out of decode_options.
10633         (decode_cmdline_options_to_array_default_mask): New.
10634         (default_options_optimization): New.  Split out of decode_options.
10635         (decode_options): Move most code to other functions.  Update call
10636         to read_cmdline_options.
10637         (finish_options): New.  Split out of decode_options.
10638         * opts.h (decode_options): Add gcc_options parameters.
10639         (init_options_once, init_options_struct,
10640         decode_cmdline_options_to_array_default_mask): New.
10641         * toplev.c (flag_complex_method, flag_ira_algorithm,
10642         flag_ira_region, flag_evaluation_order): Remove.
10643         (general_init): Use global_options_init for initial flag values
10644         for global_dc.
10645         (toplev_main): Call init_options_once, init_options_struct,
10646         lang_hooks.init_options_struct,
10647         decode_cmdline_options_to_array_default_mask and
10648         lang_hooks.init_option before decode_options.  Update arguments to
10649         decode_options.
10650         * tree.h: Include flags.h instead of options.h.
10651
10652 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10653
10654         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10655
10656 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10657
10658         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
10659         Delete.
10660         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
10661         (FUNCTION_INCOMING_ARG): Delete.
10662         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
10663         (function_arg_slotno): Likewise.  Take bool arguments.
10664         (sparc_arg_partial_bytes): Update call to it.
10665         (function_arg): Rename to...
10666         (sparc_function_arg_1): ...this.  Take bool arguments.
10667         (sparc_function_arg, sparc_function_incoming_arg): New functions.
10668         (function_arg_advance): Rename to...
10669         (sparc_function_arg_advance): ...this.  Take bool argument.
10670         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
10671         (TARGET_FUNCTION_INCOMING_ARG): Define.
10672
10673 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10674
10675         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
10676         Delete.
10677         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10678         * config/bfin/bfin.c (function_arg_advance): Rename to...
10679         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
10680         and bool arguments.
10681         (function_arg): Rename to...
10682         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
10683         arguments.
10684         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10685
10686 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10687
10688         * config/score/score-protos.h (score_function_arg): Delete.
10689         (score_function_arg_advance): Delete.
10690         * config/score/score3.h (score3_function_arg_advance): Take a
10691         const_tree and a bool.
10692         (score3_function_arg): Likewise.
10693         * config/score/score7.h (score7_function_arg_advance): Likewise.
10694         (score7_function_arg): Likewise.
10695         * config/score/score3.c (score3_classify_arg): Likewise.
10696         (score3_function_arg_advance, score3_function_arg): Likewise.
10697         * config/score/score7.c (score7_classify_arg): Likewise.
10698         (score7_function_arg_advance, score7_function_arg): Likewise.
10699         * config/score/score.c (score_function_arg_advance): Likewise.
10700         (score_function_arg): Likewise.  De-const-ify `cum' argument.
10701         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10702
10703 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10704
10705         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
10706         (s390_function_arg): Delete.
10707         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10708         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
10709         (s390_function_arg_integer): Likewise.
10710         (s390_function_arg_advance): Make static.  Take a const_tree and
10711         a bool.
10712         (s390_function_arg): Likewise.
10713         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10714
10715 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10716
10717         * config/spu/spu-protos.h (spu_function_arg): Delete.
10718         * config/spu/spu.h (FUNCTION_ARG): Delete.
10719         (FUNCTION_ARG_ADVANCE): Move code to ...
10720         * config/spu/spu.c (spu_function_arg_advance): New function.
10721         (spu_function_arg): Make static.  Take a const_tree and a bool.
10722         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
10723         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10724
10725 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10726
10727         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10728
10729 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10730
10731         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
10732         (init_vn_nary_op_from_op): New function.
10733         (init_vn_nary_op_from_stmt): New function.
10734         (vn_nary_op_lookup_1): New function.
10735         (sizeof_vn_nary_op): New function.
10736         (alloc_vn_nary_op_noinit): New function.
10737         (alloc_vn_nary_op): New function.
10738         (vn_nary_op_insert_into): New function.
10739         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
10740         (vn_nary_op_lookup): Likewise.
10741         (vn_nary_op_lookup_stmt): Likewise.
10742         (vn_nary_op_insert_pieces): Likewise.
10743         (vn_nary_op_insert): Likewise.
10744         (vn_nary_op_insert_stmt): Likewise.
10745         (copy_nary): Likewise.
10746         (set_value_id_for_result): New function.
10747         (set_hashtable_value_ids): Call it.
10748
10749 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10750
10751         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10752         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
10753
10754 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10755
10756         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
10757         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10758
10759 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10760
10761         PR debug/45656
10762         * cse.c (cse_extended_basic_block): Preserve cc0 info across
10763         debug isnsn.  Skip them when searching for cc0 setter.
10764         (set_live_p): Skip debug insns when searching for cc0 user.
10765
10766 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10767
10768         PR debug/45673
10769         PR debug/45604
10770         PR debug/45419
10771         PR debug/45408
10772         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
10773         type of MEM_REFs to INTEGER_CSTs.
10774
10775 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10776
10777         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
10778         m68hc11_print_operand_address.
10779
10780 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10781
10782         * builtins.c (rewrite_call_expr): Move code to...
10783         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
10784         (rewrite_call_expr_array): New function.
10785         (fold_builtin_sprintf_chk_1): New function.
10786         (fold_builtin_sprintf_chk): Call it.
10787         (gimple_fold_builtin_sprintf_chk): Likewise.
10788         (fold_builtin_snprintf_chk_1): New function.
10789         (fold_builtin_snprintf_chk): Call it.
10790         (gimple_fold_builtin_snprintf_chk): Likewise.
10791         (gimple_rewrite_call_expr): Delete.
10792
10793 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10794
10795         * config.host: Update copyright year.
10796
10797 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10798
10799         * config.host (host_lto_plugin_soname): New shell variable.
10800         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
10801         * config.in: Regenerate.
10802         * configure: Regenerate.
10803         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
10804         LTO plugin shared library.
10805
10806 2010-10-07  Richard Henderson  <rth@redhat.com>
10807
10808         * target.h (enum unwind_info_type): Move ...
10809         * coretypes.h: ... here.
10810
10811 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
10812
10813         * doc/objc.texi (Fast enumeration protocol): Mention that
10814         'unsigned int' can also be used instead of 'unsigned long' in
10815         countByEnumeratingWithState:objects:count:.
10816
10817 2010-10-07  Martin Jambor  <mjambor@suse.cz>
10818
10819         * tree-sra.c (struct access): New field grp_assignment_write.
10820         (dump_access): Dump grp_assignment_write.
10821         (build_accesses_from_assign): Set grp_assignment_write.
10822         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
10823         (mark_read_status): Renamed to mark_rw_status, individual values
10824         renamed too.
10825         (analyze_access_subtree): Changed type of mark_write to
10826         mark_read_status.  Fixed propagating of mark_read and
10827         mark_write.  Changed benefit estimate.  Updated comment.
10828
10829 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
10830
10831         PR Tree-Vect/45847
10832         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
10833         check for vectype_out returned by get_vectype_for_scalar_type().
10834
10835 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
10836
10837         PR target/45805
10838         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
10839         constraint, add register specifier in instruction template.
10840         (neon_vec_pack_trunc_<mode>): Likewise.
10841         (neon_vec_<US>mult_<mode>): Add register specifier to
10842         instruction template.
10843
10844 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
10845
10846         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
10847         cygwin2.o.
10848         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
10849         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
10850         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
10851         (cygwin2.o): Likewise.
10852         * config/i386/cygwin1.c: Delete file.
10853         * config/i386/cygwin2.c: Likewise.
10854         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
10855         make all {%!mno-cygwin} ones unconditional.
10856         (STARTFILE_SPEC): Likewise.
10857         (REAL_LIBGCC_SPEC): Likewise.
10858         (LIB_SPEC): Likewise.
10859         (CXX_WRAP_SPEC): Likewise.
10860         (LINK_SPEC): Likewise.
10861         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
10862         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
10863         (cygwin_gplusplus_include_dir): Delete now-unused array.
10864         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
10865         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
10866         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
10867         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
10868         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
10869         (cygwin_local_include_dir): Delete now-unused array.
10870         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
10871         (cygwin_cross_include_dir): Delete now-unused array.
10872         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
10873         (cygwin_tool_include_dir): Delete now-unused array.
10874         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
10875         (cygwin_standard_include_dir): Delete now-unused array.
10876         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
10877         (GEN_CVT_ARRAY): Delete now-unused macro definition.
10878         (cvt_to_mingw): Delete now-unused array.
10879         (mingw_scan): Remove prototype of deleted function.
10880         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
10881         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
10882         * doc/invoke.texi (-mcygwin): Don't document removed option.
10883         (-mno-cygwin): Likewise.
10884
10885 2010-10-07  Richard Guenther  <rguenther@suse.de>
10886
10887         * machmode.h (mode_for_vector): Declare.
10888         * stor-layout.c (mode_for_vector): New function, split out from ...
10889         (layout_type): ... here.
10890         * tree-vectorizer.h (current_vector_size): Declare.
10891         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
10892         mask vector type is available.
10893         (get_vectype_for_scalar_type): Rename to ...
10894         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
10895         size argument.
10896         (get_vectype_for_scalar_type): New wrapper around
10897         get_vectype_for_scalar_type_and_size using current_vector_size.
10898         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
10899         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
10900         of vect_analyze_loop here.
10901         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
10902         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
10903         to autodetect.
10904         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
10905         V8SF to V8SI conversion builtin.
10906
10907 2010-10-07  Richard Guenther  <rguenther@suse.de>
10908
10909         * target.def (autovectorize_vector_sizes): New target hook.
10910         * targhooks.c (default_autovectorize_vector_sizes): New function.
10911         * targhooks.h (default_autovectorize_vector_sizes): Declare.
10912         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
10913         Document.
10914         * doc/tm.texi: Update.
10915         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
10916         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
10917
10918 2010-10-07  Richard Guenther  <rguenther@suse.de>
10919
10920         * target.def (units_per_simd_word): Rename to ...
10921         (preferred_simd_mode): ... this.  Return mode instead of size.
10922         * targhooks.c (default_units_per_simd_word): Rename to ...
10923         (default_preferred_simd_mode): ... this.  Return word_mode.
10924         * targhooks.h (default_preferred_simd_mode): Declare.
10925         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
10926         (arm_preferred_simd_mode): ... this.  Re-implement.
10927         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
10928         (ix86_preferred_simd_mode): ... this.  Re-implement.
10929         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
10930         (sparc_preferred_simd_mode): ... this.  Re-implement.
10931         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
10932         (mips_preferred_simd_mode): ... this.  Re-implement.
10933         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
10934         (rs6000_preferred_simd_mode): ... this.  Re-implement.
10935         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
10936         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
10937         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
10938         * doc/tm.texi: Update.
10939
10940 2010-10-07  Richard Guenther  <rguenther@suse.de>
10941
10942         PR middle-end/45869
10943         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
10944         of pointers.
10945
10946 2010-10-07  Alan Modra  <amodra@gmail.com>
10947
10948         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
10949         rather than sign extension by hand.
10950
10951 2010-10-07  Jan Hubicka  <jh@suse.cz>
10952
10953         PR middle-end/45926
10954         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
10955
10956 2010-10-07  Richard Guenther  <rguenther@suse.de>
10957
10958         PR bootstrap/45914
10959         * configure.ac: Fix typo.
10960         * configure: Regenerated.
10961
10962 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10963
10964         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
10965         define_builtin_std where it's unnecessary.
10966         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
10967
10968 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
10969
10970         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
10971         * doc/tm.texi.in: Regenerate.
10972         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
10973         * targhooks.c (default_class_likely_spilled_p): Don't use the
10974         CLASS_LIKELY_SPILLED_P macro.
10975
10976         * config/arm/arm.md: Update comment.
10977
10978 2010-10-06  Jan Hubicka  <jh@suse.cz>
10979
10980         * ipa.c (cgraph_remove_unreachable_nodes): External references can
10981         always be removed.
10982         (cgraph_externally_visible_p): We can not bring local comdats that
10983         are known to linker; fix handling of internal visibility.
10984         (function_and_variable_visibility): Likewise.
10985
10986 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
10987
10988         PR rtl-optimization/45394
10989         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
10990         (struct rtx_subst_pair): Remove AFTER field.
10991         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
10992         (propagate_for_debug): Remove MOVE parameter and adjust.
10993         (try_combine): In the special case where I2 is a PARALLEL, combine only
10994         destinations of SETs and set I2SRC to the I2 source.
10995         Adjust calls to propagate_for_debug throughout.
10996         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
10997         insns.
10998
10999 2010-10-06  Olivier Hainque  <hainque@adacore.com>
11000
11001         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
11002         switch on insn codes as sequence of ifs.
11003
11004 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
11005
11006         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
11007         be UI_NONE for picochip.
11008         (picochip_option_override): Do not disable exception flags.
11009         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
11010         Declare.
11011
11012 2010-10-06  Richard Guenther  <rguenther@suse.de>
11013
11014         * Makefile.in (regmove.o): Depend on $(TARGET_H).
11015
11016 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
11017
11018         Implemented fast enumeration for Objective-C.
11019         * c-parser.c (objc_could_be_foreach_context): New.
11020         (c_lex_one_token): Recognize RID_IN keyword in a potential
11021         Objective-C foreach context.
11022         (c_parser_declaration_or_fndef): Added parameter.  Accept
11023         Objective-C RID_IN keyword as terminating a declaration; in that
11024         case, return the declaration in the new parameter.
11025         (c_parser_extenral_declaration): Updated calls to
11026         c_parser_declaration_or_fndef.
11027         (c_parser_declaration_or_fndef): Same change.
11028         (c_parser_compound_statement_nostart): Same change.
11029         (c_parser_label): Same change.
11030         (c_parser_objc_methodprotolist): Same change.
11031         (c_parser_omp_for_loop): Same change.
11032         (c_parser_for_statement): Detect and parse Objective-C foreach
11033         statements.
11034         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
11035         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
11036         fast enumeration parsing code to turn off the c99 error but still
11037         perform checks on the loop declarations.
11038         * c-tree.h (check_for_loop_decls): Updated declaration.
11039         * doc/objc.texi: Document fast enumeration.
11040
11041 2010-10-06  Nick Clifton  <nickc@redhat.com>
11042
11043         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
11044         (MDR_REGNUM): Define.
11045         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
11046         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
11047         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
11048         (REGISTER_NAMES): Add MDR.
11049         (DWARF2_DEBUGGING_INFO): Define to 1.
11050         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
11051         (F): New function.  Sets RTX_FRAME_RELATED_P.
11052         (mn10300_gen_multiple_store): Use F.
11053         (expand_prologue): Use F.  Use gen_movsf() to push floating
11054         point registers.
11055         (expand_epilogue): Use gen_movsf() to pop floating point registers.
11056         (mn10300_option_override): Disable combine stack adjust pass.
11057
11058 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
11059
11060         PR target/45901
11061         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
11062         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
11063
11064 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
11065
11066         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
11067         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
11068         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
11069         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
11070         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
11071         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
11072         BUILT_IN_TOUPPER): Mark as leaf.
11073
11074         PR middle-end/45838
11075         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
11076         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
11077         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
11078         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
11079         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
11080         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
11081         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
11082
11083 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
11084
11085         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
11086         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11087         (m68hc11_class_likely_spilled_p): New function.
11088
11089 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
11090
11091         * c-parser.c (c_parser_objc_method_definition): Updated comment.
11092
11093 2010-10-05  Jan Hubicka  <jh@suse.cz>
11094
11095         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
11096         Document.
11097         * opts.c (decode_options): Handle lto partitions.
11098         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
11099         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
11100
11101 2010-10-05  Jan Hubicka  <jh@suse.cz>
11102
11103         * cgraphunit.c (assemble_function): Output thunks and aliases before
11104         the function itself.
11105
11106 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
11107
11108         * config/picochip/picochip.c (picochip_option_override): Disable
11109         exception flags for picochip.
11110
11111 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
11112
11113         * opts-common.c (handle_option, handle_generated_option,
11114         read_cmdline_option, set_option): Add diagnostic_context
11115         parameter.  Update calls among these functions.
11116         (set_option): Don't use global_dc.
11117         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
11118         (decode_options): Pass global_dc to enable_warning_as_error.
11119         (common_handle_option): Pass global_dc to enable_warning_as_error.
11120         (enable_warning_as_error): Add diagnostic_context parameter.
11121         Document parameters.  Don't use global_dc.  Pass
11122         diagnostic_context parameter to handle_generated_option.
11123         * opts.h (set_option, handle_option, handle_generated_option,
11124         read_cmdline_option, enable_warning_as_error): Add
11125         diagnostic_context parameter.
11126         * Makefile.in (lto-opts.o): Update dependencies.
11127         * coretypes.h (struct diagnostic_context, diagnostic_context):
11128         Declare here.
11129         * diagnostic.h (diagnostic_context): Don't declare typedef here.
11130         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
11131         * langhooks-def.h (struct diagnostic_context): Don't declare here.
11132         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
11133         using diagnostic_context typedef.
11134         * langhooks.c (lhd_initialize_diagnostics): Declare using
11135         diagnostic_context typedef.
11136         * langhooks.h (struct diagnostic_context): Don't declare here.
11137         (initialize_diagnostics, print_error_function): Declare using
11138         diagnostic_context typedef.
11139         * lto-opts.c: Include diagnostic.h.
11140         (lto_reissue_options): Pass global_dc to set_option.  Pass
11141         DK_UNSPECIFIED not 0.
11142         * plugin.c (plugins_internal_error_function): Declare using
11143         diagnostic_context typedef.
11144         * plugin.h (struct diagnostic_context): Don't declare here.
11145         (plugins_internal_error_function): Declare using
11146         diagnostic_context typedef.
11147
11148 2010-10-05  Olivier Hainque  <hainque@adacore.com>
11149             Nicolas Roche  <roche@adacore.com>
11150
11151         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
11152         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
11153
11154 2010-10-05  Ira Rosen  <irar@il.ibm.com>
11155
11156         PR tree-optimization/45752
11157         * tree-vect-slp.c (vect_get_mask_element): Remove static
11158         variables, make them function arguments.
11159         (vect_transform_slp_perm_load): Pass new arguments to
11160         vect_get_mask_element.
11161
11162 2010-10-05  Richard Guenther  <rguenther@suse.de>
11163
11164         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
11165         (gimple_mod_pow2): Likewise.
11166         (gimple_mod_subtract): Likewise.
11167         (gimple_ic): Likewise.
11168         (gimple_stringop_fixed_value): Likewise.
11169         * tree-profile.c (tree_init_edge_profiler): Mark profile
11170         functions nothrow and leaf.
11171         (add_abnormal_goto_call_edges): Remove.
11172         (tree_gen_edge_profiler): Work on SSA form.
11173         (tree_gen_ic_profiler): Likewise.  Simplify.
11174         (do_tree_profiling): Update SSA form.
11175         (pass_tree_profile): Remove.
11176         (do_tree_profiling): Likewise.
11177         (gate_tree_profile_ipa): New function.
11178         (pass_ipa_tree_profile): New.
11179         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
11180         state of instrumented functions.
11181         * passes.c (init_optimization_passes): Remove early non-SSA
11182         inlining.  Move profiling after early optimizations.
11183         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
11184         (pass_ipa_early_inline): Likewise.
11185         * tree-pass.h (pass_ipa_early_inline): Remove.
11186         (pass_tree_profile): Likewise.
11187         (pass_ipa_tree_profile): Declare.
11188
11189 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11190             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
11191
11192         * config/s390/s390.c (z196_cost): New.
11193         (s390_handle_arch_option): Add -march=z196.
11194         (s390_option_override): Use the new cost function and use the z10
11195         defaults also for z196.
11196         (legitimate_reload_constant_p): Adjust comment.
11197         (legitimate_reload_fp_constant_p): New function.
11198         (s390_preferred_reload_class): Distingiush between FP and Int constants.
11199         (preferred_la_operand_p): Avoid la with index on z196.
11200         (s390_adjust_priority): Trigger also for z196.
11201         (s390_issue_rate): Issue rate for z196 is 3.
11202         (s390_z10_fix_long_loop_prediction): Rename to ...
11203         (s390_fix_long_loop_prediction): ... this.
11204         (s390_reorg): Apply the z10 adjustments also for z196.
11205         (s390_loop_unroll_adjust): Do this also for z196.
11206         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
11207         (enum processor_flags): Add PF_Z196.
11208         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
11209         (TARGET_CPU_Z196, TARGET_Z196): New macros.
11210         * config.gcc: Enable z196 for --with-arch.
11211         * config/s390/2817.md: New file.
11212         * config/s390/2084.md: New type for multiply and add.
11213         * config/s390/2097.md: Likewise.
11214         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
11215         (UNSPECV_ATOMIC_OP): New constants.
11216         (fmadddf, fmaddsf): New values for type attribute.
11217         (z196prop): New insn attribute.
11218         (cpu, cpu_facility): Add z196.
11219         (ATOMIC_Z196): New code iterator.
11220         (noxa): New code attribute.
11221         (gk): New mode attribute.
11222         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
11223         Support load zero for fp constants.
11224         (fixuns_truncdddi2, fixuns_trunctddi2)
11225         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
11226         for z196.
11227         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
11228         (popcounthi2, popcountqi2): New expander.
11229         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
11230         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
11231         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
11232         insn definition.
11233         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
11234         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
11235         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
11236         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
11237         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
11238         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
11239         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
11240         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
11241         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
11242         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
11243         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
11244         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
11245         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
11246         Support new z196 instructions.
11247
11248 2010-10-05  Richard Guenther  <rguenther@suse.de>
11249
11250         PR middle-end/45877
11251         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
11252         case where gimplification optimizes away the stmt.
11253
11254 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
11255
11256         PR debug/45849
11257         * var-tracking.c (strip_pointer_flags): New function.
11258         (emit_note_insn_var_location): If rtx_equal_p check failed,
11259         retry on locations simplified with simplify_replace_fn_rtx
11260         and strip_pointer_flags as its callback.
11261
11262 2010-10-04  Jan Hubicka  <jh@suse.cz>
11263
11264         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
11265         (can_refer_decl_in_current_unit_p): ... this one; reverse return
11266         value; handle comdats too.
11267         (canonicalize_constructor_val): Use it; handle function_decls
11268         correctly.
11269         (gimple_fold_obj_type_ref_known_binfo): Likewise.
11270         * gimple.c (get_base_address): Accept all kinds of decls.
11271
11272 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11273
11274         * flags.h (g_switch_value, g_switch_set): Remove.
11275         * opts.c (g_switch_value, g_switch_set): Remove.
11276         * config/g.opt (G): Add Var(g_switch_value).
11277         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
11278         (alpha_option_override): Check global_options_set.x_g_switch_value
11279         instead of g_switch_set.
11280         (alpha_in_small_data_p): Remove cast in comparison with
11281         g_switch_value.
11282         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
11283         g_switch_value to unsigned HOST_WIDE_INT.
11284         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
11285         with g_switch_value.
11286         (frv_handle_option): Don't handle -G here.
11287         (frv_option_override): Check global_options_set.x_g_switch_value
11288         instead of g_switch_set.  Don't modify g_switch_set.
11289         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
11290         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
11291         g_switch_value to unsigned HOST_WIDE_INT.
11292         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
11293         (ia64_option_override): Check global_options_set.x_g_switch_value
11294         instead of g_switch_set.
11295         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
11296         Remove.
11297         (lm32_in_small_data_p): Remove cast in comparison with
11298         g_switch_value.
11299         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
11300         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
11301         HOST_WIDE_INT.
11302         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
11303         (m32r_init): Check global_options_set.x_g_switch_value instead of
11304         g_switch_set.
11305         (m32r_in_small_data_p): Remove cast in comparison with
11306         g_switch_value.
11307         (m32r_file_start): Format g_switch_value with %d.
11308         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
11309         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
11310         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
11311         handle -G here.
11312         (microblaze_option_override): Check
11313         global_options_set.x_g_switch_value instead of g_switch_set.
11314         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
11315         (mips_option_override): Check global_options_set.x_g_switch_value
11316         instead of g_switch_set.
11317         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
11318         (rs6000_file_start): Format g_switch_value with %d.
11319         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
11320         comparisons with g_switch_value.
11321         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
11322         global_options_set.x_g_switch_value instead of g_switch_set.
11323         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11324         global_options_set.x_g_switch_value instead of g_switch_set.
11325         * config/score/score.c (score_handle_option): Don't handle -G here.
11326         * config/score/score3.c (score3_option_override): Check
11327         global_options_set.x_g_switch_value instead of g_switch_set.
11328         * config/score/score7.c (score7_option_override): Check
11329         global_options_set.x_g_switch_value instead of g_switch_set.
11330
11331 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
11332
11333         * common.opt (fira-coalesce): Remove.
11334
11335         * doc/invoke.texi (flag_ira_coalesce): Remove.
11336
11337         * ira-color.c (allocno_coalesced_p): Move before
11338         copy_freq_compare_func.
11339         processed_coalesced_allocno_bitmap): Ditto.
11340         (update_conflict_hard_regno_costs): Don't use
11341         ALLOCNO_FIRST_COALESCED_ALLOCNO.
11342         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
11343         (assign_hard_reg): Assume no coalesced allocnos.
11344         (get_coalesced_allocnos_attributes): Remove.
11345         (bucket_allocno_compare_func): Assume no coalesced allocnos.
11346         (push_allocno_to_stack): Ditto.
11347         (remove_allocno_from_bucket_and_push): Use
11348         ira_print_expanded_allocno instead of print_coalesced_allocno.
11349         (push_allocnos_to_stack): Assume uncoalesced allocnos.
11350         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
11351         all_conflicting_hard_regs.
11352         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
11353         (setup_allocno_left_conflicts_size): Ditto.
11354         (put_allocno_into_bucket): Ditto.
11355         (copy_freq_compare_func): Remove.
11356         (copy_freq_compare_func, merge_allocnos): Move before
11357         coalesced_pseudo_reg_freq_compare.
11358         coalesced_allocno_conflict_p): Ditto.
11359         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
11360         parameter.  Assume it true.
11361         (color_allocnos): Assume uncoalesced allocnos.  Use
11362         ira_print_expanded_allocno instead of print_coalesced_allocno.
11363         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
11364         parameter.
11365
11366         * ira.c: Remove comment about coalescing.
11367
11368 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11369
11370         * config/mips/mips.h (target_flags_explicit): Declare for
11371         GENERATOR_FILE.
11372
11373 2010-10-04  Andi Kleen  <ak@linux.intel.com>
11374
11375         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
11376         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
11377
11378 2010-10-04  Matthias Klose  <doko@ubuntu.com>
11379
11380         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
11381         multilib osdirname if it exists.
11382         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
11383
11384 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
11385
11386         PR middle-end/45876
11387         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
11388         arg0's type or its unsigned counterpart as utype.  Convert
11389         arg1 to utype unconditionally.
11390
11391 2010-10-04  Julian Brown  <julian@codesourcery.com>
11392
11393         * expr.c (expand_assignment): Add assertion to prevent emitting
11394         null rtx for movmisalign pattern.
11395         (expand_expr_real_1): Likewise.
11396         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
11397         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
11398         (arm_vector_alignment_reachable): New.
11399         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
11400         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
11401         (arm_print_operand): Include alignment qualifier in %A.
11402         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
11403         (movmisalign<mode>): New expander.
11404         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
11405         insn patterns.
11406
11407 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11408
11409         * optc-gen.awk: Define global_options_set.  Don't define
11410         target_flags_explicit.
11411         * opth-gen.awk: Declare global_options_set.  Define
11412         target_flags_explicit as macro.
11413         * opts-common.c (handle_option): Take opts_set and generated_p
11414         parameters.
11415         (handle_generated_option, read_cmdline_option, set_option): Take
11416         opts_set parameter.
11417         (set_option): Use opts_set instead of hardcoding target_flags and
11418         target_flags_explicit.
11419         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
11420         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
11421         flag_value_profile_transformations_set, flag_peel_loops_set,
11422         flag_branch_probabilities_set, flag_inline_functions_set,
11423         flag_ipa_cp_set, flag_ipa_cp_clone_set,
11424         flag_predictive_commoning_set, flag_unswitch_loops_set,
11425         flag_gcse_after_reload_set): Remove.
11426         (common_handle_option, lang_handle_option, target_handle_option):
11427         Take opts_set parameter.  Assert that it is &global_options_set.
11428         (common_handle_option): Don't set _set variables.  Check opts_set
11429         instead of such variables.
11430         (enable_warning_as_error): Pass &global_options_set to
11431         handle_generated_option.
11432         * opts.h (cl_option_handler_func.handler, set_option,
11433         handle_option, handle_generated_option, read_cmdline_option): Add
11434         opts_set parameters.
11435         (handle_option): Add generated_p parameter.
11436         * config/i386/i386.c (ix86_function_specific_save,
11437         ix86_function_specific_restore): Updat for renaming of
11438         target_flags_explicit field.
11439         * config/i386/i386.opt (target_flags_explicit): Rename to
11440         ix86_target_flags_explicit.
11441         * config/ia64/ia64.c (ia64_override_options_after_change): Check
11442         global_options_set.x_flag_selective_scheduling and
11443         global_options_set.x_flag_selective_scheduling2, not
11444         sel_sched_switch_set.
11445         * flags.h (sel_sched_switch_set,
11446         flag_speculative_prefetching_set): Remove.
11447         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
11448         that it is &global_options_set.
11449         (process_command): Pass &global_options_set to read_cmdline_option.
11450         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
11451         set_option.
11452         * toplev.c (target_flags_explicit): Remove.
11453
11454 2010-10-04  Jan Hubicka  <jh@suse.cz>
11455
11456         PR middle-end/45871
11457         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
11458         use get_ref_base_and_offset to handle references.
11459         (fold_const_aggregate_ref): Update.
11460
11461 2010-10-04  Martin Jambor  <mjambor@suse.cz>
11462
11463         PR tree-optimization/45572
11464         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
11465         ipa_check_create_node_params.
11466         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
11467
11468 2010-10-04  Yao Qi  <yao@codesourcery.com>
11469
11470         * doc/passes.texi: Clean up.
11471
11472 2010-10-03  Ian Lance Taylor  <iant@google.com>
11473
11474         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
11475         referring to a field using a typedef name.
11476         (find_anonymous_field_with_type): New static function.
11477         (convert_to_anonymous_field): New static function.
11478         (convert_for_assignment): If -fplan9-extensions, permit converting
11479         pointer to struct to pointer to anonymous field.
11480         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
11481         (is_duplicate_field): New static function.
11482         (detect_field_duplicates_hash): If -fplan9-extensions, check for
11483         typedef names duplicating field names.
11484         (detect_field_duplicates): Likewise.
11485         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
11486         (C Dialect Options): Document -fplan9-extensions.
11487         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
11488
11489 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
11490
11491         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
11492         revision 164914.
11493         (vect_create_data_ref_ptr): Likewise.
11494         * tree-vect-stmts.c (vectorizable_store): Likewise.
11495         (perm_mask_for_reverse): Likewise.
11496         (reverse_vec_elements): Likewise.
11497         (vectorizable_load): Likewise.
11498
11499 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11500
11501         * cppbuiltin.c: New file.
11502         * cppbuiltin.h: New file.
11503         * Makefile.in: Take into account cppbuiltin.{h,c}.
11504
11505 2010-10-03  Andi Kleen  <ak@linux.intel.com>
11506
11507         * lto-cgraph.c (input_cgraph): Check for missing sections.
11508
11509 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
11510
11511         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
11512         to nonimmediate_operand.  Force operand 2 to register when allowed.
11513         (*<shiftrt_insn><mode>3_mask): Ditto.
11514         (*<rotate_insn><mode>3_mask): Ditto.
11515
11516 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
11517
11518         PR tree-optimization/45720
11519         PR tree-optimization/45764
11520         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11521         Don't accept backwards consecutive accesses.
11522         (vect_create_data_ref_ptr): Disallow negative steps.
11523
11524         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
11525         (perm_mask_for_reverse): Removed.
11526         (reverse_vec_elements): Likewise.
11527         (vectorizable_load): Don't handle negative steps.
11528
11529 2010-10-02  Jan Hubicka  <jh@suse.cz>
11530
11531         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
11532         call destination is known.
11533
11534 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11535
11536         PR target/45820
11537         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
11538         earlier.
11539
11540 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11541
11542         * doc/install.texi (Configuration): Document build_configargs,
11543         host_configargs, target_configargs.
11544
11545 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
11546
11547         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
11548         (*<shiftrt_insn><mode>3_mask): Ditto.
11549         (*<rotate_insn><mode>3_mask): Ditto.
11550
11551 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
11552
11553         PR tree-optimization/44716
11554         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
11555         (HOT_TEXT_SECTION_NAME): Define.
11556
11557 2010-10-01  Nick Clifton  <nickc@redhat.com>
11558
11559         * common.opt: Add -fcombine-stack-adjustments.
11560         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
11561         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
11562         flag_combine_stack_adjustments.
11563         * doc/invoke.texi: Document the new option.
11564
11565 2010-10-01  Richard Guenther  <rguenther@suse.de>
11566
11567         PR tree-optimization/45854
11568         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
11569
11570 2010-10-01  Anthony Green  <green@moxielogic.com>
11571
11572         * config.gcc: Fix moxie-*-rtems* configuration.
11573
11574 2010-10-01  Richard Guenther  <rguenther@suse.de>
11575
11576         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
11577         (gen_decl_die): Likewise.
11578
11579 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11580
11581         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
11582         to the function code for SPU MD builtins.
11583         (spu_expand_builtin): Update.
11584         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
11585
11586 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11587
11588         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
11589         sjlj_except_unwind_info.
11590
11591 2010-10-01  Tristan Gingold  <gingold@adacore.com>
11592
11593         * configure.ac: Define the nop insn for avr*-*-*
11594         * configure: Regenerate.
11595
11596 2010-10-01  Alan Modra  <amodra@gmail.com>
11597
11598         PR target/45807
11599         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
11600         extend toc_restore_insn.
11601
11602 2010-09-30  Richard Guenther  <rguenther@suse.de>
11603
11604         PR tree-optimization/43959
11605         * function.c (gimplify_parameters): Use create_tmp_reg instead of
11606         create_tmp_var.
11607
11608 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
11609
11610         * config/sh/sh.c (sh_expand_prologue): Set
11611         current_function_static_stack_size.
11612
11613 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11614
11615         * configure.ac: Check for Solaris 8 ld with .hidden support.
11616         * configure: Regenerate.
11617
11618 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11619
11620         PR middle-end/45758
11621         * graphite.c (graphite_initialize): Call scev_reset.
11622
11623 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11624
11625         * sese.h (scev_analyzable_p): Return false for real or floating
11626         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
11627
11628 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11629
11630         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
11631         and ps.
11632         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
11633         domain.
11634         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
11635         Do not allocate ub_expr, it is passed in initialized.
11636
11637 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11638
11639         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
11640         (build_cloog_prog): Dump CLooG input file when
11641         flag_graphite_dump_cloog is set.  This is disabled on trunk.
11642         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
11643
11644 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11645
11646         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
11647         verify_dominators for CDI_POST_DOMINATORS.
11648         * sese.h: Remove comment about CDI_POST_DOMINATORS.
11649         (recompute_all_dominators): Remove call to free_dominance_info
11650         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
11651         for CDI_POST_DOMINATORS.
11652
11653 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11654
11655         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
11656         over pbb_dim_iter_domain.
11657
11658 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11659
11660         * graphite-flattening.c: Fix comments.
11661
11662 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11663
11664         * Makefile.in (OBJS-common): Add graphite-flattening.o.
11665         (graphite-flattening.o): New rule.
11666         * common.opt (floop-flatten): New flag.
11667         * doc/invoke.texi (-floop-flatten): Documented.
11668         * graphite-flattening.c: New.
11669         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
11670         * graphite-poly.h (flatten_all_loops): Declared.
11671         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
11672         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
11673         is set, also set flag_graphite.
11674
11675 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11676
11677         * graphite-poly.c (cloog_checksum): New.
11678         * graphite-poly.h (cloog_checksum): Declared.
11679
11680 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11681
11682         * graphite-poly.c (pbb_number_of_iterations): Removed.
11683         (pbb_number_of_iterations_at_time): Correctly compute the number
11684         of iterations in the transformed loop.
11685         * graphite-poly.h (pbb_number_of_iterations): Removed.
11686
11687 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11688
11689         * graphite-poly.h (lst_update_scattering_seq): Removed.
11690         (lst_update_scattering): Correctly handle outermost loop dewey
11691         renumbering.
11692
11693 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11694
11695         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
11696         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
11697         * graphite-poly.h (lst_niter_for_loop): New.
11698
11699 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11700
11701         * graphite-poly.c (apply_poly_transforms): Do not abort when the
11702         transform read from disk is not legal.  Call fatal_error instead.
11703
11704 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11705
11706         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
11707         (print_scop_header): Removed.  Inlined in the only call place...
11708         (print_scop): ... here.
11709
11710 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11711
11712         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
11713
11714 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11715
11716         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
11717
11718 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11719
11720         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
11721         (dot_deps_stmt): Same.
11722         * graphite-poly.c (dot_lst): Same.
11723
11724 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11725
11726         * graphite-blocking.c (scop_do_strip_mine): Do not call
11727         graphite_legal_transform.
11728         (scop_do_block): Same.
11729
11730 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11731
11732         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
11733         description.
11734
11735 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11736
11737         * tree-scalar-evolution.c (instantiate_array_ref): New.
11738         (instantiate_scev_r): Also handle ARRAY_REFs.
11739
11740 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11741
11742         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11743         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
11744         RESULT_DECL, and FIELD_DECL.  Return false for an
11745         SSA_NAME_IS_DEFAULT_DEF.
11746         (compute_scalar_evolution_in_loop): Do not further analyze the
11747         scalar evolution when no_evolution_in_loop_p returns true.
11748
11749 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11750
11751         * tree-chrec.h (evolution_function_is_affine_p): Do not check
11752         whether CHREC_LEFT is invariant.  A function is affine when
11753         CHREC_RIGHT is invariant.
11754
11755 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11756
11757         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
11758         is_gimple_reg.
11759         (rewrite_degenerate_phi): Same.
11760         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
11761
11762 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11763
11764         * graphite-scop-detection.c (graphite_can_represent_scev,
11765         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
11766         graphite_can_represent_loop): Remove outermost_loop.
11767
11768 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11769
11770         PR middle-end/45229
11771         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
11772         handle GIMPLE_CALLs with no LHS.
11773
11774 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11775
11776         * graphite-poly.c (init_graphite_out_file): New.
11777         (init_graphite_in_file): New.
11778         (apply_poly_transforms): Updated to enable reading and writing of
11779         multiple scop files.
11780
11781 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
11782
11783         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
11784         redundant checks.
11785
11786 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11787
11788         * graphite-clast-to-gimple.c (precision_for_value): Adjust
11789         computation of precision by 1.
11790
11791 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11792
11793         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
11794         (openscop_read_polyhedron_matrix): New.
11795         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
11796         (openscop_read_N_int): Same.
11797         * graphite-poly.c (openscop_read_N_int): New.
11798         (openscop_read_one_int): New.
11799         (openscop_read_N_string): New.
11800         (openscop_read_one_string): New.
11801         (openscop_read_powerset_matrix): New.
11802         (graphite_read_transforms): Remove.
11803         (graphite_read_scatt): New.
11804         (graphite_read_scop_file): New.
11805         (apply_poly_transforms): Updated to call graphite_read_scop_file.
11806
11807 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11808
11809         * graphite-poly.c: Change include order.
11810
11811 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11812
11813         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
11814         (cloog_matrix_nrows): New.
11815
11816 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11817
11818         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
11819         from matrix lines.
11820         * graphite-poly.c (openscop_print_scattering_function_1): Same.
11821         (print_scattering_function_1): Same.
11822         (openscop_print_pbb_domain): Same.
11823         (openscop_print_scop_context): Same.
11824         (print_scop_context): Same.
11825
11826 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
11827
11828         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
11829         (openscop_print_pdr_polyhedron): Print pph.
11830
11831 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11832
11833         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
11834         priority signed types.
11835
11836 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11837
11838         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
11839         the call to lang_hooks.types.type_for_size.  Call
11840         build_nonstandard_integer_type.
11841
11842 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11843
11844         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
11845         (openscop_print_polyhedron_matrix): New.
11846         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
11847         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
11848         (openscop_print_pdr_powerset): New.
11849         (openscop_print_powerset_matrix): New.
11850         (openscop_print_scattering_function_1): New.
11851         (print_scattering_function): Add support for scattering names and
11852         OpenScop format.
11853         (graphite_write_transforms): Remove.
11854         (print_pdr_access_layout): Updated to support OpenScop format.
11855         (print_pdr): Same.
11856         (openscop_print_pbb_domain): New.
11857         (print_pbb_body): Added a parameter to allow indicating that pbb_body
11858         is not provided.
11859         (print_pbb): Updated to call the new print_pbb_body.
11860         (openscop_print_scop_context): New.
11861         (print_scop_header): New.
11862         (print_scop): Updated to call print_scop_header.
11863         * graphite-poly.h: Document OpenScop format.
11864
11865 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
11866
11867         * config/cris/m32c.c (cris_memory_move_cost): New.
11868         (cris_register_move_cost): Make static. Change arguments type from
11869         enum reg_class to reg_class_t.
11870         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11871         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11872         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
11873
11874 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
11875
11876         PR target/45843
11877         * config/i386/i386.c (ix86_gimplify_va_arg): Use
11878         INTVAL (XEXP (slot, 1)) as prev_size.
11879
11880 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
11881
11882         PR target/45837
11883         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
11884         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
11885         defined.
11886         * config/rs6000/option-defaults.h (toplevel): Change #if
11887         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
11888         global option changes.
11889
11890 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
11891
11892         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
11893
11894         PR tree-optimization/31261
11895         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
11896         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
11897
11898 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11899
11900         PR bootstrap/45796
11901         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
11902         special-casing for generators and turn into ...
11903         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
11904         rule, for better error messages in case of toplevel dependency errors.
11905         (genprog): Add hooks, rename to ...
11906         (genprogerr): ... this, and let genprog also contain check,
11907         checksum, condmd.
11908         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
11909         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
11910         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
11911
11912 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
11913             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11914
11915         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
11916         for GMP, MPFR and MPC.
11917
11918 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11919
11920         * config/sparc/sparc.opt (mimpure-text): Move ...
11921         * config/sol2.opt: ... here.  Correct description.
11922         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
11923         * doc/invoke.texi (Option Summary, SPARC Options): Move
11924         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
11925         (Option Summary, Solaris 2 Options): ... here.
11926         (Submodel Options, Solaris 2 Options): New menu entry.
11927         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
11928         (Solaris 2 Options): ... here.
11929
11930 2010-09-30  Michael Eager  <eager@eagercon.com>
11931
11932         * extend.texi (interrupt_handler): Add MicroBlaze to list.
11933         (save_volatiles): Describe option for MicroBlaze.
11934         * invoke.texi: Add MicroBlaze Options.
11935         * contrib.texi: Add acknowledgment.
11936         * md.texi: Add MicroBlaze d and z constraints.
11937         * install.texi: Add microblaze-*-elf.
11938         * configure.ac: Add microblaze-*-* to target list.
11939         * configure: Regenerate.
11940         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
11941         * config/microblaze/microblaze-protos.h: New.
11942         * config/microblaze/crti.s: New.
11943         * config/microblaze/predicates.md: New.
11944         * config/microblaze/linux.h: New.
11945         * config/microblaze/microblaze.md: New.
11946         * config/microblaze/constraints.md: New.
11947         * config/microblaze/crtn.s: New.
11948         * config/microblaze/microblaze.opt: New.
11949         * config/microblaze/microblaze-c.c: New.
11950         * config/microblaze/t-microblaze: New.
11951         * config/microblaze/microblaze.c: New.
11952         * config/microblaze/microblaze.h: New.
11953
11954 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
11955
11956         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
11957         parse @optional/@required and set the flags as appropriate.
11958
11959 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
11960
11961         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
11962
11963 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
11964
11965         * opt-functions.awk (static_var): Update comment.
11966         (var_ref): Return offsetof expression or -1, not variable address.
11967         * optc-gen.awk: Generate structure field initializers instead of
11968         static variables.  Expect -1 for missing variables instead of null
11969         pointer.  Add gcc_options parameters to generated functions.
11970         * opth-gen.awk: Generate structure fields for static variables.
11971         Add gcc_options parameters to generated functions.
11972         * common.opt (optimize, optimize_size): Add variables.
11973         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
11974         &global_options to cl_target_option_restore.
11975         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
11976         &global_options to cl_optimization_restore, cl_target_option_save
11977         and cl_target_option_restore.
11978         (ix86_set_current_function): Pass &global_options to
11979         cl_target_option_restore.
11980         * config/pdp11/pdp11.h (optimize): Remove.
11981         * config/rs6000/rs6000.h (optimize): Remove.
11982         * config/sh/sh.h (optimize): Remove.
11983         * config/xtensa/xtensa.h (optimize): Remove.
11984         * coretypes.h (struct gcc_options): Declare.
11985         * diagnostic.c (diagnostic_initialize): Initialize
11986         context->option_state.
11987         (diagnostic_report_diagnostic): Pass option_state to
11988         option_enabled hook.
11989         * diagnostic.h (diagnostic_context.option_enabled): Add void *
11990         parameter.
11991         (diagnostic_context.option_state): New field.
11992         * final.c (final_start_function, final, final_scan_insn): Rename
11993         optimize parameter to optimize_p.
11994         * flags.h (optimize, optimize_size): Remove.
11995         * function.c (invoke_set_current_function_hook): Pass
11996         &global_options to cl_optimization_restore.
11997         * gcc.c (driver_handle_option): Take gcc_options parameter.
11998         Assert that it is &global_options.
11999         (process_command): Pass &global_options to read_cmdline_option.
12000         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
12001         option_enabled.
12002         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
12003         &global_options to set_option.
12004         * opts-common.c (handle_option, handle_generated_option,
12005         read_cmdline_option, set_option): Take explicit gcc_options
12006         parameters.  Use option_flag_var.
12007         (option_flag_var): New.
12008         * opts.c (common_handle_option, lang_handle_option,
12009         target_handle_option): Take gcc_options parameter.  Assert that it
12010         is &global_options.
12011         (read_cmdline_options): Pass &global_options to read_cmdline_option.
12012         (print_filtered_help): Use option_flag_var.  Pass &global_options
12013         to option_enabled.
12014         (common_handle_option): Use option_flag_var.
12015         (option_enabled): Take opts parameter.  Use option_flag_var.
12016         (get_option_state): Take gcc_options parameter.  Use
12017         option_flag_var.  Pass gcc_options parameter to option_enabled.
12018         (enable_warning_as_error): Pass &global_options to
12019         handle_generated_option.
12020         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
12021         (cl_option_handler_func.handler): Take gcc_options parameter.
12022         (option_enabled, get_option_state, set_option, handle_option,
12023         handle_generated_option, read_cmdline_option): Take gcc_options
12024         parameters.
12025         * toplev.c (optimize, optimize_size): Remove.
12026         (print_switch_values): Pass &global_options to option_enabled.
12027         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
12028         to get_option_state.
12029         (general_init): Initialize global_dc->option_state.
12030         * tree.c (build_optimization_node): Pass &global_options to
12031         cl_optimization_save.
12032         (build_target_option_node): Pass &global_options to
12033         cl_target_option_save.
12034
12035 2010-09-30  Martin Jambor  <mjambor@suse.cz>
12036
12037         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
12038         zero sized bit-fields.
12039
12040 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
12041
12042         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
12043         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
12044         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
12045         (c_parser_objc_class_declaration): Same change.
12046         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
12047         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
12048         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
12049         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
12050         and RID_AT_PUBLIC instead of RID_PUBLIC.
12051         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
12052         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
12053
12054 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
12055
12056         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
12057         Add links to current providers of packages for Solaris and IRIX.
12058
12059 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12060
12061         Merge from 'apple/trunk' branch on FSF servers.
12062         * c-parser.c: Applied change originally in c-parse.in.
12063
12064         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
12065
12066         Radar 4281748
12067         * c-decl.c (start_decl): Check for redeclaration of class name.
12068         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
12069
12070 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
12071
12072         * config/ia64/ia64.c (ia64_builtin_decl): New.
12073         (TARGET_BUILTIN_DECL): Define.
12074         (ia64_builtins): New.
12075         (ia64_init_builtins): Save decls in ia64_builtins.
12076
12077 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
12078
12079         PR target/40457
12080         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
12081         (move2add_use_add3_insn): Likewise.
12082         (reload_cse_move2add): Likewise.
12083         * rtlanal.c (get_full_rtx_cost): New function.
12084         * rtl.h (struct full_rtx_costs): New.
12085         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
12086         costs_add_n_insns): New inline functions.
12087         (get_full_rtx_cost): Declare.
12088
12089         PR c/45054
12090         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
12091         invariants.  Check for reg_equiv_invariant.
12092         (reload): Assert that spilled_pseudos is empty when returning.
12093
12094 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
12095
12096         * config/i386/mingw32.h (TARGET_64BIT): replaced by
12097         TARGET_64BIT_DEFAULT in #if check.
12098
12099 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
12100
12101         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
12102
12103 2010-09-29  Mike Stump  <mikestump@comcast.net>
12104
12105         * config/darwin.h (flag_mkernel): Remove.
12106         (flag_apple_kext): Likewise.
12107
12108 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12109             Jack Howarth  <howarth@bromo.med.uc.edu>
12110
12111         * config/darwin.opt (undefined): Add.
12112
12113 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
12114
12115         PR testsuite/45664
12116         * configure.ac: Add --enable-indirect-function option.
12117         * config.gcc: Add default_gnu_indirect_function.
12118         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
12119         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
12120         * varasm.c (do_assemble_alias): Adjust for macro name change.
12121         * configure: Rebuilt.
12122         * doc/install.texi: Document --enable-indirect-function.
12123
12124 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12125
12126         * doc/options.texi (Variable, Var, Init): Update documentation
12127         without reference to VarExists.
12128         (VarExists): Remove.
12129         * common.opt, config/i386/i386.opt, config/linux.opt,
12130         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
12131         Don't use VarExists.
12132
12133 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12134
12135         * optc-gen.awk: Generate global_options initializer instead of
12136         individual variables.  Add x_ prefix to names of structure members.
12137         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
12138         names of structure members.
12139         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12140         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
12141         * doc/tm.texi: Regenerate.
12142         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12143         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
12144         * c-parser.c (disable_extension_diagnostics,
12145         restore_extension_diagnostics): Update names of cpp_options members.
12146         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12147         * common.opt (fcompare-debug-second): Don't use Var.
12148         * config/alpha/alpha.h (target_flags): Remove.
12149         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12150         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
12151         * config/bfin/bfin.h (target_flags): Remove.
12152         * config/cris/cris.h (target_flags): Remove.
12153         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
12154         cl_target_option members.
12155         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
12156         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
12157         ix86_can_inline_p): Update names of cl_target_option members.
12158         * config/i386/i386.h (ix86_isa_flags): Remove.
12159         * config/lm32/lm32.h (target_flags): Remove.
12160         * config/mcore/mcore.h (mcore_stack_increment): Remove.
12161         * config/mcore/mcore.md (addsi3): Remove extern declaration of
12162         flag_omit_frame_pointer.
12163         * config/mep/mep.h (target_flags): Remove.
12164         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12165         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
12166         * config/mmix/mmix.h (target_flags): Remove.
12167         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
12168         flag_expensive_optimizations): Remove.
12169         * config/s390/s390.h (flag_pic): Remove.
12170         * config/score/score-conv.h (target_flags): Remove.
12171         * config/sh/sh.h (sh_fixed_range_str): Remove.
12172         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
12173         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
12174         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12175         * diagnostic.c (diagnostic_initialize): Update names of
12176         diagnostic_context members.
12177         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
12178         warn_system_headers.
12179         (diagnostic_report_warnings_p): Update for new names.
12180         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
12181         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
12182         HARD_FRAME_POINTER_IS_ARG_POINTER.
12183         * flags.h (flag_compare_debug): Declare.
12184         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12185         * opts.c (flag_compare_debug): Define.
12186         (common_handle_option): Update names of diagnostic_context
12187         members.  Handle -fcompare-debug-second.
12188         (fast_math_flags_struct_set_p): Update names of cl_optimization
12189         members.
12190         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12191         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12192         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12193         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12194         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12195         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12196         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
12197         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12198         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
12199
12200 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
12201
12202         * config/picochip/picochip.c (picochip_output_internal_label):
12203         This function can now be called for debug CFI labels, which can come
12204         in the middle of a vliw instruction.  Postpone until end of vliw.
12205
12206 2010-09-29  Richard Guenther  <rguenther@suse.de>
12207
12208         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
12209         (DECL_FILE_SCOPE_P): Use it.
12210         (TYPE_FILE_SCOPE_P): New macro.
12211
12212 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12213
12214         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
12215         a CPP_NAME which is a reserved word, clearly separate cases for
12216         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
12217
12218 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12219
12220         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
12221         token->value with the canonical spelling.  Do exactly like C and
12222         C++ and leave it as it is.
12223
12224 2010-09-28  Richard Henderson  <rth@redhat.com>
12225
12226         * config/alpha/alpha.c (alpha_builtins): New.
12227         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
12228         (alpha_builtin_function): New.
12229         (alpha_add_builtins, alpha_init_builtins): Use it.
12230
12231 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
12232
12233         * doc/standards.texi (Standards): Expanded the section on
12234         Objective-C and Objective-C++.
12235
12236 2010-09-28  DJ Delorie  <dj@redhat.com>
12237
12238         PR target/45800
12239         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
12240         volatile MEMs.
12241
12242 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
12243
12244         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
12245         attributes on methods.
12246          (c_parser_objc_method_definition): Handle attributes.
12247         (c_parser_objc_methodproto): Likewise.
12248         (c_parser_objc_maybe_method_attributes): New.
12249         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
12250         missing definition, similar to that in ObjC++.
12251
12252 2010-09-28  Richard Henderson  <rth@redhat.com>
12253
12254         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
12255         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
12256         (CONFIG_SJLJ_EXCEPTIONS): Remove.
12257         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
12258         (STACK_CHECK_PROTECT): Likewise.
12259         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
12260         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
12261         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
12262         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
12263         (dwarf2out_assembly_start): Likewise.
12264         * except.c (init_eh): Use targetm.except_unwind_info.
12265         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
12266         (output_one_function_exception_table): Likewise.
12267         * final.c: Unconditionally include dwarf2out.h.
12268         (final_start_function): Unconditionally call dwarf2out routines.
12269         (final_end_function, final_scan_insn): Likewise.
12270         * function.c (expand_function_end): Use targetm.except_unwind_info.
12271         * opts.c (decode_options): Use targetm.except_unwind_info.
12272         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
12273         * target.def (debug_unwind_info, except_unwind_info): New.
12274         * target.h (enum unwind_info_type): New.
12275         * targhooks.c (default_debug_unwind_info): New.
12276         (default_except_unwind_info): New.
12277         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
12278         * targhooks.h: Declare them.
12279         * tree-tailcall.c: Include "target.h"
12280         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
12281         * Makefile.in (tree-tailcall.o): Update.
12282         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
12283         (lhd_gcc_personality): Likewise.
12284
12285         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
12286         (TARGET_EXCEPT_UNWIND_INFO): New.
12287         (DWARF2_UNWIND_INFO): Update.
12288         (TARGET_DEBUG_UNWIND_INFO): New.
12289         * doc/tm.texi: Rebuild.
12290
12291         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
12292         targetm.except_unwind_info.
12293
12294         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
12295         (arm_except_unwind_info): New.
12296         (arm_compute_func_type): Use it.
12297         (arm_expand_prologue, thumb_pushpop): Likewise.
12298         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
12299         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
12300         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
12301         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
12302         (DWARF2_UNWIND_INFO): Remove.
12303         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
12304         (ARM_EABI_UNWIND_TABLES): Remove.
12305
12306         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
12307         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
12308         (ia64_except_unwind_info): New.
12309         (ia64_output_function_prologue): Use it.
12310         (ia64_add_bundle_selector_before): Likewise.
12311         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
12312         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
12313         (TARGET_UNWIND_INFO): Remove.
12314
12315         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
12316
12317 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
12318
12319         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
12320         (c_parser_objc_protocol_definition): Likewise.
12321         (c_parser_external_declaration): Provide dummy attribute arguments.
12322         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
12323         (c_parser_objc_class_definition): Handle attributes.
12324         (c_parser_objc_protocol_definition): Likewise.
12325
12326 2010-09-28  Tobias Burnus  <burnus@net-b.de>
12327
12328         PR fortran/40569
12329         PR fortran/40568
12330         * toplev.h (save_decoded_options, save_decoded_options_count):
12331         New global variables.
12332         * toplev.c (save_decoded_options, save_decoded_options_count):
12333         Export variables.
12334
12335 2010-09-28  Ian Lance Taylor  <iant@google.com>
12336
12337         * config/i386/i386.c (ix86_supports_split_stack): Test
12338         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
12339
12340 2010-09-28  Ian Lance Taylor  <iant@google.com>
12341
12342         PR target/45815
12343         * opts.c (decode_options): Don't test whether the target supports
12344         split stack if flag_split_stack == 0.
12345
12346 2010-09-28  Jan Hubicka  <jh@suse.cz>
12347
12348         * builtin-attrs.def (ATTR_LEAF): New attribute.
12349         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
12350         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
12351         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
12352         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
12353         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
12354         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
12355         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
12356         * sync-builtins.def: Annotate all builtins by leaf.
12357         * omp-builtins.def: Annotate all builtins by leaf.
12358         * builtins.def: Annotate relevant builtins with leaf attribute.
12359         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
12360         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
12361         leaf.
12362
12363 2010-09-28  Jan Hubicka  <jh@suse.cz>
12364
12365         * tree-ssa-ccp.c (fold_ctor_reference): New function.
12366         (fold_const_aggregate_ref): Use it.
12367         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
12368         into external static.
12369
12370 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12371
12372         PR target/44452
12373         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
12374         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
12375         (ix86_solaris_return_in_memory): Remove.
12376         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
12377         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
12378         (TARGET_SUBTARGET_DEFAULT): Redefine.
12379         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
12380         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
12381         (TARGET_SUBTARGET_DEFAULT): Redefine.
12382         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
12383         -mvect8-ret-in-mem.
12384         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
12385
12386 2010-09-29  Alan Modra  <amodra@gmail.com>
12387
12388         PR target/45807
12389         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
12390         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
12391         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
12392         Delete.
12393         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
12394         (rs6000_emit_prologue): Don't just create frame save info for r2,
12395         actually save r2.
12396
12397 2010-09-28  Richard Henderson  <rth@redhat.com>
12398
12399         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
12400         when 8 bytes are requested.
12401
12402 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12403
12404         * config/avr/avr.c (expand_prologue): Set
12405         current_function_static_stack_size.
12406
12407 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12408
12409         * config/alpha/alpha.md: Change the initial condition of the
12410         probing loop.
12411
12412 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
12413
12414         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
12415         Split from *avx_<maxmin:code><mode>3.
12416         (*avx_<smaxmin:code><mode>3): Ditto.
12417         * config/i386/i386.md (maxmin): Remove code iterator.
12418
12419 2010-09-27  Ian Lance Taylor  <iant@google.com>
12420
12421         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
12422         requires assembler support for CFI directives.
12423
12424 2010-09-27  Richard Henderson  <rth@redhat.com>
12425
12426         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
12427
12428 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12429
12430         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
12431         that AFTER is not in the range FROM..TO, inclusive.
12432
12433 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12434             Bernd Schmidt  <bernds@codesourcery.com>
12435
12436         PR rtl-optimization/45792
12437         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
12438         If not all insns are to be merged, for each edge, stash the
12439         next candidate after the to-be-merged insns before doing the
12440         merge, and use them for the retry at the new insertion point.
12441         Handle CC0 targets when retrying.
12442
12443 2010-09-27  Ian Lance Taylor  <iant@google.com>
12444
12445         * common.opt (fsplit-stack): New option.
12446         * opts.c (decode_options): Set flag_split_stack to final value.
12447         * target.def (supports_split_stack): New hook.
12448         * gcc.c (STACK_SPLIT_SPEC): Define.
12449         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
12450         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
12451         (Code Gen Options): Document -fsplit-stack.
12452         * doc/extend.texi (Function Attributes): Mention no_split_stack.
12453         (Function Attributes): Document no_split_stack.
12454         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
12455         TARGET_SUPPORTS_SPLIT_STACK.
12456         * doc/tm.texi: Rebuild.
12457         * function.c (thread_prologue_and_epilogue_insns): If
12458         flag_split_stack, add split stack prologue.
12459         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
12460         * varasm.c (saw_no_split_stack): New static variable.
12461         (assemble_start_function): Set saw_no_split_stack if the function
12462         has the no_split_stack attribute.
12463         (file_end_indicate_split_stack): New function.
12464         * output.h (file_end_indicate_split_stack): Declare.
12465         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
12466         and function.
12467         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
12468         routines.
12469         * config/i386/i386.c (ix86_option_override_internal): Don't set
12470         expand_builtin_va_start to NULL if -fsplit-stack.
12471         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
12472         -fsplit-stack.
12473         (ix86_va_start): If -fsplit-stack, get overflow pointer from
12474         scratch register set by prologue.
12475         (ix86_code_end): If -fsplit-stack, call
12476         file_end_indicate_split_stack.
12477         (ix86_supports_split_stack): New static function.
12478         (SPLIT_STACK_AVAILABLE): Define.
12479         (split_stack_prologue_scratch_regno): New static function.
12480         (split_stack_fn): New static variable.
12481         (ix86_expand_split_stack_prologue): New function.
12482         (ix86_live_on_entry): New static function.
12483         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
12484         (output_pic_addr_const): Likewise.
12485         (i386_asm_output_addr_const_extra): Likewise.
12486         (ix86_expand_call): Change return type to rtx.  Return the new
12487         call instruction.
12488         (TARGET_SUPPORTS_SPLIT_STACK): Define.
12489         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12490         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
12491         (split_stack_prologue, split_stack_return): New insns.
12492         (split_stack_space_check): New insn.
12493         * config/i386/i386.h (struct machine_function): Add
12494         split_stack_varargs_pointer field.
12495         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
12496         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12497         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
12498         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12499         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
12500         Declare.
12501         (ix86_expand_call): Update declaration.
12502
12503 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12504
12505         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
12506         code.  Added byref, which was missing in the list of codes.
12507         Explain that enumeration values are encoded as the integer type
12508         that the compiler uses to store them.  Explain and make examples
12509         of how 'const' interacts with pointers, and the complication of
12510         the encoding of 'const char *'.
12511         (Legacy type encoding): New subsection, explaining that GCC emits
12512         incorrect type encodings for the NeXT runtime for compatibility
12513         reasons.
12514         (@@encode): New subsection, explaining @encode and particularly
12515         that protocol qualifiers are not recognized inside an @encode()
12516         expression.
12517         (Method signatures): New subsection, explaining how method
12518         signatures are encoded.
12519
12520 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12521
12522         Merge from 'apple/trunk' branch on FSF servers.  Removed small
12523         change in build_conditional_expr that had been added when fixing
12524         PR objc/27377 and which did the same check in a less complete way.
12525
12526         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
12527
12528         Radar 4229905
12529         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
12530         looking for objective-c common pointer types.
12531
12532         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
12533
12534         Radar 4154928
12535         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
12536         use their ObjC common type.
12537
12538 2010-09-27  Richard Guenther  <rguenther@suse.de>
12539
12540         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
12541
12542 2010-09-27  Jie Zhang  <jie@codesourcery.com>
12543
12544         * print-tree.c (print_node): Print in-constant-pool.
12545
12546 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
12547
12548         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
12549         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
12550         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
12551         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
12552
12553 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12554
12555         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
12556         from pro_epilogue_adjust_stack_<mode>_{1,2}.
12557         (pro_epilogue_adjust_stack_<mode>_add): Rename from
12558         pro_epilogue_adjust_stack_<mode>_3.
12559         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
12560         renamed pro_epilogue_adjust_stack_{si,di}_add.
12561         (ix86_expand_prologue): Use indirect functions.  Update for renamed
12562         pro_epilogue_adjust_stack_{si,di}_sub.
12563
12564 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12565
12566         * config/i386/i386.md (movmsk_df): New insn.
12567         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
12568         sequence for TARGET_SSE_MATH.
12569
12570 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
12571
12572         * config/mips/mips.c (mips_builtin_decls): Declare.
12573         (mips_init_builtins): Store function declarations in
12574         mips_builtin_decls.
12575         (mips_builtin_decl): New function.
12576         (TARGET_BUILTIN_DECL): Define.
12577
12578 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
12579             Richard Henderson  <rth@redhat.com>
12580
12581         * config/i386/cygwin.asm: Include auto-host.h.
12582         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
12583         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
12584         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
12585         alignment code from the 64-bit path.  Use gas local labels.
12586         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
12587         from _di_2.  Remove the useless constant integer argument.
12588         (pro_epilogue_adjust_stack_<mode>_3): New.
12589         (allocate_stack_worker_probe_<mode>): Macroize from
12590         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
12591         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
12592         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
12593         (__chkstk_ms): New function.
12594         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
12595         * config/i386/t-interix: Likewise.
12596         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
12597         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
12598         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
12599         * configure, config.in: Rebuild.
12600
12601 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
12602
12603         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
12604         statements because of the return slot optimization.
12605
12606 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
12607
12608         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
12609         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
12610         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12611         (class_likely_spilled_p): Rename to...
12612         (avr_class_likely_spilled_p): ...this. Make static. Change argument
12613         type to reg_class_t.
12614
12615 2010-09-24  Jan Hubicka  <jh@suse.cz>
12616
12617         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
12618         (lto_symtab_resolve_symbols): Set it.
12619         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
12620         store resolution field in cgraph/varpool.
12621         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
12622         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
12623         (cgraph_dump_node): Drop used_from_object_file.
12624         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
12625         (cgraph_function_body_availability): Use decl_replaceable_p.
12626         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
12627         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
12628         cgraph_used_from_object_file_p.
12629         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
12630         cgraph_used_from_object_file_p.
12631         (resolution_used_from_other_file_p): New functoin.
12632         (cgraph_used_from_object_file_p): New predicate.
12633         * cgraph.h: Include plugin-api.h
12634         (struct cgraph_local_info): Remove used_from_object_file.
12635         (struct cgraph_node): Add resolution field.
12636         (struct varpool_node): Likewise; remove used_from_object_file;
12637         reove const_value_known.
12638         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
12639         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
12640         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
12641         varpool_used_from_object_file_p): Declare.
12642         (varpool_get_node, varpool_extra_name_alias): Update prototype.
12643         * tree.h (DECL_REPLACEABLE_P): Remove.
12644         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
12645         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
12646         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12647         input_overwrite_node, input_node, input_varpool_node): Stream
12648         resolution.
12649         * expr.c (expand_expr_real_1): Use const_value_known_p
12650         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
12651         const_value_known.
12652         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
12653         (function_and_variable_visibility): Set resolution for local vars
12654         and functions; use varpool_used_from_object_file_p.
12655         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
12656         static functions.
12657         (default_binds_local_p_1): Use resolutoin info.
12658         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
12659         * varpool.c (varpool_get_node): Constify.
12660         (const_value_known_p): Do not use vnode->const_value_known;
12661         use decl_replaceable_p.
12662         (varpool_finalize_decl): Do not set const_value_known.
12663         (cgraph_variable_initializer_availability): Use decl_replaceable_p
12664         (varpool_extra_name_alias): Return new node.
12665         (varpool_used_from_object_file_p): New function.
12666
12667 2010-09-24  Richard Henderson  <rth@redhat.com>
12668
12669         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
12670         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
12671         (do_spill): Use REG_CFA_OFFSET.
12672         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
12673         as appropriate.
12674         (ia64_expand_epilogue): Likewise.
12675         (process_set): Split into ...
12676         (process_cfa_adjust_cfa): this,
12677         (process_cfa_register): this,
12678         (process_cfa_offset): and this new function.
12679         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
12680         instead of REG_FRAME_RELATED_EXPR.
12681
12682 2010-09-24  Olivier Hainque  <hainque@adacore.com>
12683
12684         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
12685
12686 2010-09-24  Jan Hubicka  <jh@suse.cz>
12687
12688         * doc/extend.texi: (attribute leaf): Document.
12689         * tree.c (local_define_builtin): Handle ECF_LEAF.
12690         (build_common_builtin_nodes): Set ECF_LEAF where needed.
12691         * tree.h (ECF_LEAF): New.
12692         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
12693         overwrittable and unavailable functions.
12694         (ipa_init): Put all_module_statics into optimization_summary_obstack.
12695         (copy_global_bitmap): Do not copy all_module_statics.
12696         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
12697         (propagate): Handle overwritable and unavailable leaf functions;
12698         initialize global info for overwritable and unavailable leaf functions;
12699         do not free all module statics.
12700         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
12701         local statics.
12702         * calls.c (flags_from_decl_or_type): Handle leaf.
12703         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
12704         abnormal gotos.
12705
12706 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
12707
12708         * gengtype.c: Reindented.
12709         * gengtype.h: Reindented.
12710         * gengtype-parse.c: Reindented.
12711
12712 2010-09-24  Jan Hubicka  <jh@suse.cz>
12713
12714         PR tree-optimization/45738
12715         PR tree-optimization/45741
12716         * expr.c (string_constant): Allow CONST_DECL too;
12717         check that DECL_INITIAL is set.
12718         * varpool.c (const_value_known_p): Only look into VAR_DECL
12719         and CONST_DECL.
12720
12721 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
12722
12723         * common.opt (undef): New.
12724
12725 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
12726
12727         PR middle-end/45234
12728         * rtl.h (enum global_rtl_index): Add
12729         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
12730         (LAST_VIRTUAL_POINTER_REGISTER): Define.
12731         (virtual_preferred_stack_boundary_rtx,
12732         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
12733         (LAST_VIRTUAL_REGISTER): Increase by one.
12734         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
12735         instead of LAST_VIRTUAL_REGISTER.
12736         * function.c (instantiate_new_reg): Handle
12737         virtual_preferred_stack_boundary_rtx.
12738         * emit-rtl.c (init_virtual_regs): Handle
12739         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12740         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
12741         * explow.c (round_push): If crtl->preferred_stack_boundary
12742         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
12743         virtual_preferred_stack_boundary_rtx alignment instead of
12744         crtl->preferred_stack_boundary alignment.
12745         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
12746         macros.  Never decrease crtl->preferred_stack_boundary,
12747         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
12748         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
12749         stack_pointer_delta in dynamic allocation, even when size
12750         is constant.
12751         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
12752         macro.
12753         * print-rtl.c (print_rtx): Handle
12754         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12755         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
12756         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
12757         * config/frv/frv.c (frv_emit_movsi): Likewise.
12758         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
12759         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
12760         Likewise.
12761
12762         Revert:
12763         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12764
12765         PR middle-end/45234
12766         * calls.c (expand_call): Make sure that all variable sized
12767         adjustments are multiple of preferred stack boundary after
12768         stack alignment.
12769
12770 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
12771             Dominique Dhumieres  <dominiq@lps.ens.fr>
12772
12773         PR bootstrap/45751
12774         * config/darwin-driver.c (darwin_default_min_version):
12775         Adjust size passed to memcpy in two places.
12776
12777 2010-09-24  Richard Guenther  <rguenther@suse.de>
12778
12779         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
12780         Make sure to not call set_type_context with error_mark_node.
12781         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
12782
12783 2010-09-24  Richard Guenther  <rguenther@suse.de>
12784
12785         * Makefile.in (OBJS-onestep): Remove.
12786         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
12787         (libbackend.a): Remove onestep support.
12788         (libbackend.o): Remove.
12789         * configure.ac (--enable-intermodule): Remove.
12790         * configure: Regenerate.
12791
12792 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
12793
12794         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
12795         reaching the end of a block if it occurs at a DEBUG_INSN.
12796
12797 2010-09-09  Tristan Gingold  <gingold@adacore.com>
12798
12799         PR target/44242
12800         * config/vms/vms-crt0-64.c: Removed.
12801         * config/vms/vms-crt0.c: Removed.
12802         * config/vms/vms-psxcrt0-64.c: Removed.
12803         * config/vms/vms-psxcrt0.c: Removed.
12804         * config/vms/vms-ucrt0.c: New file.
12805         * config/vms/t-vms64: Removed.
12806         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
12807         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
12808         * config.gcc (alpha-dec-vms): Use t-vms.
12809
12810 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12811
12812         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
12813         underfull hbox in DVI output.
12814         (-fobjc-class-cxx-cdtors): Same change.
12815         (-fobjc-exceptions): Tidied up documentation.  Explain what the
12816         option does, but moved the (lenghty) description of the exception
12817         syntax into objc.texi.
12818         (-fobjc-gc): Explain that the option is not useful with the GNU
12819         runtime.
12820         (-fzero-link): Explain that the GNU runtime always works in
12821         "zero-link" mode.
12822         * doc/objc.texi: All sections: simplified @node declarations
12823         removing specification of next, previous, up node.
12824         (Objective-C): Updated introduction.
12825         (Garbage Collection): Updated.  The bohem-gc library is now
12826         included in gcc itself.  Mention that this section only applies to
12827         the GNU Objective-C runtime.
12828         (compatibility_alias): Small tidy up.
12829         (Exceptions): New section mostly containing text previously in the
12830         description of the -fobjc-exception command-line option.
12831         (Synchronization): Same.
12832
12833 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
12834
12835         * config/i386/i386.md (ix86_code_end): Move the initialization of
12836         xops array near the consumer.  Use AX_REG and SP_REG instead of
12837         numerical constants.
12838
12839 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12840
12841         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
12842         method [methodname]' for an Objective-C method instead of the less
12843         satisfactory 'too many arguments to function' (with no method name).
12844
12845 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
12846
12847         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
12848         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
12849         (execute_update_addresses_taken): Remove parameter.  Execute the
12850         optimization unconditionally.
12851         * passes.c (execute_function_todo): Call execute_update_addresses_taken
12852         unconditionally if TODO_rebuild_alias is set, else only when optimizing
12853         if TODO_update_address_taken is set.
12854
12855 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
12856
12857         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12858         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
12859         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12860         (arm_output_addr_const_extra): Make static.
12861
12862 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
12863
12864         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
12865         define as unspec_volatile.
12866         ("nops"): Define as unspec_volatile. Use fputs to write to
12867         asm_out_file directly.  Output NOPs on separate lines using while loop.
12868         * config/i386/i386.c (ix86_code_end): Use fputs to write to
12869         asm_out_file directly.  Output NOPs on separate lines using while loop.
12870
12871 2010-09-23  Richard Guenther  <rguenther@suse.de>
12872
12873         PR tree-optimization/45565
12874         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
12875         Make sure to adjust the fndecl before replacing the stmt.
12876
12877 2010-09-23  Richard Guenther  <rguenther@suse.de>
12878
12879         PR middle-end/45750
12880         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
12881         gimplifying MEM_REF.
12882
12883 2010-09-23  Alan Modra  <amodra@gmail.com>
12884
12885         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
12886         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
12887
12888 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
12889
12890         PR rtl-optimization/44374
12891         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
12892         * df-core.c (df_set_bb_dirty): Set it.
12893         * ifcvt.c (find_memory): Remove function.
12894         (dead_or_predicable): Use can_move_insns_across.
12895         * df.h (can_move_insns_across): Declare function.
12896         * cfgcleanup.c (block_was_dirty): New static variable.
12897         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
12898         than df_get_bb_dirty.
12899         (try_head_merge_bb): New static function.
12900         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
12901         is set.
12902         * df-problems.c: Include "target.h"
12903         (df_simulate_find_uses): New static function.
12904         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
12905         (find_memory, find_memory_store): New static functions.
12906         (can_move_insns_across): New function.
12907         * Makefile.in (df-problems.o): Update dependencies.
12908
12909 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
12910
12911         PR java/44095
12912         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
12913         is specified and the suffix of the file isn't ".c".
12914         * config/sparc/linux64.h (ASM_SPEC): Likewise.
12915
12916 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12917
12918         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
12919         * doc/cppopts.texi: Fix markup of index entry.
12920         * doc/extend.texi (Constructing Calls): Fix markup of
12921         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
12922         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
12923         (Vague Linkage, C++ Attributes): Fix markup of index entries and
12924         keywords.
12925         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
12926         avoid long lines.
12927         (C Dialect Options, C++ Dialect Options, Warning Options)
12928         (Debugging Options, Spec Files, Darwin Options)
12929         (i386 and x86-64 Options, MIPS Options)
12930         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
12931         index entries, avoid abbreviations, allow URLs to wrap, avoid
12932         long lines, avoid overlong pages from long @itemx lists.
12933         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
12934         * doc/standards.texi (Standards): Likewise.
12935         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
12936
12937 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
12938
12939         * opts-common.c (prune_options): Make static.  Work with decoded
12940         options.
12941         (decode_cmdline_options_to_array): Call prune_options.  Don't
12942         resize option array here.
12943         * opts.h (prune_options): Remove prototype.
12944         * gcc.c (process_command): Take decoded options; don't call
12945         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
12946         (main): Call decode_cmdline_options_to_array here instead of
12947         prune_options.  Update call to process_command.
12948         * config/darwin-driver.c: Include opts.h.
12949         (darwin_default_min_version): Work with decoded options.  Don't
12950         handle -b or -V here.
12951         * config/darwin.h (darwin_default_min_version): Update prototype.
12952         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
12953         darwin_default_min_version.
12954         * config/i386/cygwin.h (mingw_scan): Update prototype.
12955         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
12956         * config/i386/cygwin1.c: Include opts.h.
12957         (mingw_scan): Work with decoded options.
12958         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
12959         * config/t-darwin (darwin-driver.o): Update dependencies.
12960
12961 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
12962
12963         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
12964         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
12965         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
12966         -force-link, -force-link=, -language, -language=,
12967         -library-directory, -library-directory=, -no-canonical-prefixes,
12968         -no-standard-libraries, -no-warnings, -optimize, -output,
12969         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
12970         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
12971         -print-file-name=, -print-libgcc-file-name,
12972         -print-multi-directory, -print-multi-lib,
12973         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
12974         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
12975         -profile, -save-temps, -shared, -specs, -specs=, -static,
12976         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
12977         symbolic): New.
12978         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
12979         * gcc.c (A Short Introduction to Adding a Command-Line Option):
12980         Remove comment.
12981         (cc1_options): Correct specs for passing down --help,
12982         --target-help and --help=*.  Add spec for passing down --version.
12983         (struct option_map, option_map, target_option_translations,
12984         translate_options): Remove.
12985         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
12986         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
12987         OPT_fhelp_ and OPT_ftarget_help.
12988         (process_command): Don't call translate_options.  Call
12989         decode_cmdline_options_to_array before checking for
12990         -no-canonical-prefixes using decoded options.
12991         * opts-common.c (tm.h): Update comment on #include.
12992         (find_opt): Allow abbreviations of long options.
12993         (struct option_map, option_map): New.
12994         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
12995         and -mno handling.
12996         (target_option_translations): New.
12997         (decode_cmdline_options_to_array): Handle
12998         TARGET_OPTION_TRANSLATE_TABLE in driver.
12999         * opts.c (common_handle_option): Don't handle OPT_fhelp,
13000         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
13001
13002 2010-09-22  Richard Guenther  <rguenther@suse.de>
13003
13004         * tree-inline.c (optimize_inline_calls): Schedule cleanups
13005         only if we inlined something.  Block compaction and conditional
13006         folding are done by cfg cleanup.  Schedule update-address-taken.
13007         (tree_function_versioning): Remove redundant call to number_blocks.
13008         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
13009         folding is done by cfg cleanup.
13010         * passes.c (init_optimization_passes): Remove update-address-taken
13011         pass after IPA inlining.
13012
13013 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
13014
13015         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
13016         to update conditions. Fix reg_mode[] check.
13017
13018 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
13019
13020         * config/picochip/picochip.md (movhicc): Use expand to check whether
13021         movhicc is available and split it after reload.
13022
13023 2010-09-22  Richard Guenther  <rguenther@suse.de>
13024
13025         * tree-ssanames.c (release_dead_ssa_names): Do not remove
13026         callee edges here.
13027         * passes.c (init_optimization_passes): Remove early CFG cleanup.
13028         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
13029         (pass_cleanup_cfg): Likewise.
13030         (execute_fixup_cfg): Cleanup.
13031         * tree-pass.h (pass_cleanup_cfg): Remove.
13032
13033 2010-09-22  Martin Jambor  <mjambor@suse.cz>
13034
13035         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
13036         builtins if it is true.
13037         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
13038         parameter.
13039
13040 2010-09-22  Martin Jambor  <mjambor@suse.cz>
13041
13042         * tree-sra.c (struct access): New field grp_no_warning.
13043         (create_access_replacement): Set TREE_NO_WARNING according to
13044          grp_no_warning.
13045         (create_artificial_child_access): Use build_ref_for_model and set
13046         grp_no_warning if build_user_friendly_ref_for_offset fails.
13047         (propagate_subaccesses_across_link): Likewise.
13048
13049 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
13050
13051         PR target/35664
13052         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
13053         ('f'): Likewise.
13054
13055 2010-09-22  Tristan Gingold  <gingold@adacore.com>
13056
13057         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
13058
13059 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
13060
13061         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
13062         * config/i386/i386.c (decide_alg): Update for rename.
13063
13064 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
13065
13066         PR rtl-optimization/45739
13067         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
13068         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
13069
13070 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
13071
13072         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
13073         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
13074         Remove.
13075         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
13076         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13077
13078 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
13079
13080         PR objc/23710
13081         * c-parser.c (c_parser_objc_method_definition): Check the return
13082         value of objc_start_method_definition and if false is returned,
13083         parse the method definition but emit no code.
13084
13085 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
13086
13087         PR objc/25965
13088         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
13089         call objc_get_interface_ivars ().
13090
13091 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
13092
13093         PR target/45694
13094         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
13095         static chain-register is used for 64-bit.
13096
13097 2010-09-21  Richard Guenther  <rguenther@suse.de>
13098
13099         * dwarf2out.c (is_cu_die): New function.
13100         (add_pubtype): Use it.
13101         (gen_subprogram_die): Likewise.
13102         (gen_struct_or_union_type_die): Likewise.
13103         (dwarf2out_finish): Likewise.
13104         (comp_unit_die): Rename to ...
13105         (single_comp_unit_die): ... this.
13106         (comp_unit_die): New function lazily constructing and
13107         returning single_comp_unit_die.
13108         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
13109         base_type_die, subrange_type_die, modified_type_die,
13110         lower_bound_default, add_bound_info, add_prototyped_attribute,
13111         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
13112         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
13113         force_decl_die, gen_namespace_die, dwarf2out_decl,
13114         dwarf2out_start_source_file, dwarf2out_end_source_file,
13115         prune_unused_types, dwarf2out_finish): Use it.
13116         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
13117         the global list of translation-unit decls.
13118         (dwarf2out_init): Do not create single_comp_unit_die here.
13119         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
13120
13121 2010-09-21  Richard Guenther  <rguenther@suse.de>
13122
13123         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
13124         for bool for C++.
13125
13126 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
13127
13128         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
13129         (qhs_extenddi_cstr): Likewise.
13130         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
13131         them for the source operand.
13132
13133 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
13134
13135         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
13136         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
13137         (ix86_split_ashr): Ditto.
13138         (ix86_split_lshr): Ditto.
13139
13140 2010-09-21  Richard Guenther  <rguenther@suse.de>
13141
13142         PR tree-optimization/45580
13143         * tree-ssa-propagate.c (substitute_and_fold): Always replace
13144         regular uses.
13145         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
13146         virtuals fold the call into a regular indirect one.
13147
13148 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
13149
13150         PR rtl-optimization/42775
13151         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
13152         scheduling is enabled.
13153
13154 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13155
13156         PR rtl-optimization/45728
13157         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
13158         gen_lowpart_common first and if that fails, force_reg first
13159         before calling gen_lowpart.
13160
13161         PR middle-end/45678
13162         * cfgexpand.c (expand_one_stack_var_at): Use
13163         crtl->max_used_stack_slot_alignment as max_align, instead
13164         of maximum of that and PREFERRED_STACK_BOUNDARY.
13165         Don't call update_stack_alignment.
13166
13167 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
13168
13169         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
13170         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
13171         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
13172         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
13173         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
13174         (build_nonstandard_integer_type): Likewise.
13175         (build_range_type_1): New function, built from...
13176         (build_range_type): ...this.  Call build_range_type_1.
13177         (build_nonshared_range_type): New function.
13178         (build_array_type_1): New function, built from...
13179         (build_array_type: ...this.  Call build_array_type_1.
13180         (build_nonshared_array_type): New function.
13181         * tree.h (build_nonshared_range_type): Declare.
13182         (build_nonshared_array_type): Likewise.
13183
13184 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
13185
13186         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
13187         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13188         (arm_class_likely_spilled_p): New function.
13189
13190 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
13191
13192         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
13193         indirect functions.
13194         (ix86_split_ashl): Ditto.
13195         (ix86_split_ashr): Ditto.
13196         (ix86_split_lshr): Ditto.
13197         (ix86_adjust_counter): Ditto.
13198
13199 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
13200
13201         * c-family/c-common.h (constant_string_class): Documented with
13202         comment identical to the one already in c-common.c.
13203
13204 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13205
13206         * dwarf2out.c (any_cfis_emitted): New static variable.
13207         (add_fde_cfi): Set it.
13208         (dwarf2out_frame_debug): Clear it before processing,
13209         if it is set afterwards, flush any queued reg saves.
13210
13211         PR debug/45124
13212         * dwarf2out.c (add_accessibility_attribute): Assume
13213         DW_ACCESS_private as the default for dwarf_version > 2
13214         and DW_TAG_class_type parent.
13215         (gen_inheritance_die): Assume DW_ACCESS_public as the default
13216         for dwarf_version > 2 and parent other than DW_TAG_class_type.
13217
13218 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
13219
13220         PR target/45726
13221         * arm.md (arm_movt): Only enable on machines with MOVT.
13222
13223 2010-09-20  Jie Zhang  <jie@codesourcery.com>
13224
13225         * config/arm/arm.c (arm_address_offset_is_imm): New.
13226         (arm_early_store_addr_dep): New.
13227         (arm_early_load_addr_dep): New.
13228         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
13229         (arm_early_load_addr_dep): Declare.
13230         (arm_address_offset_is_imm): Declare.
13231         * config/arm/cortex-m4.md: New file.
13232         * config/arm/cortex-m4-fpu.md: New file.
13233         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
13234         (attr generic_sched): Exclude cortexm4.
13235         (attr generic_vfp): Exclude cortexm4.
13236
13237 2010-09-20  Richard Guenther  <rguenther@suse.de>
13238
13239         PR middle-end/45704
13240         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
13241
13242 2010-09-20  Jan Hubicka  <jh@suse.cz>
13243
13244         PR tree-optimize/45605
13245         * cgraph.h (const_value_known_p): Declare.
13246         (varpool_decide_const_value_known): Remove.
13247         * tree-ssa-ccp.c (get_base_constructor): Use it.
13248         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
13249         * expr.c (string_constant): Likewise.
13250         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13251         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13252         function_and_variable_visibility): Likewise.
13253         * gimplify.c (gimplify_call_expr): Likewise.
13254         * gimple-fold.c (get_symbol_constant_value): Likewise.
13255         * varpool.c (varpool_decide_const_value_known): Replace by...
13256         (const_value_known_p): ... this one; handle other kinds of DECLs
13257         too and work for automatic vars.
13258         (varpool_finalize_decl): Use const_value_known_p.
13259
13260 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
13261
13262         PR target/45726
13263         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
13264
13265 2010-09-20  Richard Guenther  <rguenther@suse.de>
13266
13267         PR tree-optimization/45705
13268         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
13269
13270 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13271
13272         PR rtl-optimization/45695
13273         * combine.c (try_combine): When splitting a two set pattern,
13274         make sure the pattern which will be put into i2 doesn't use REGs
13275         or MEMs set by insns in between i2 and i3.
13276
13277 2010-09-19  Jan Hubicka  <jh@suse.cz>
13278
13279         PR lto/44246
13280         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
13281         processing same node twice.
13282
13283 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
13284
13285         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
13286         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13287         (bfin_class_likely_spilled_p): New function
13288
13289 2010-09-19  Ira Rosen  <irar@il.ibm.com>
13290
13291         PR tree-optimization/45714
13292         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
13293         created in vectorizable_call instead of the original statement in
13294         def stmt updates.
13295
13296 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
13297
13298         * config/i386/i386-protos.h (split_double_mode): New prototype.
13299         (split_di, split_ti): Remove prototypes.
13300         * config/i386/i386.c (split_double_mode): New function.
13301         (split_di, split_ti): Remove.
13302         (ix86_expand_branch): Use split_double_mode.
13303         (ix86_split_to_parts): Ditto.
13304         (ix86_split_ashl): Ditto.
13305         (ix86_split_ashr): Ditto.
13306         (ix86_split_lshr): Ditto.
13307         (ix86_force_to_memory): Ditto.
13308         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
13309
13310 2010-09-18  Jan Hubicka  <jh@suse.cz>
13311
13312         PR tree-optimization/45453
13313         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
13314         virtual functions are reachable.
13315         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
13316         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
13317         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
13318         when modifying function.
13319
13320 2010-09-18  Jan Hubicka  <jh@suse.cz>
13321
13322         PR tree-optimization/45605
13323         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
13324         * gimple-fold.c (static_object_in_other_unit_p): New function.
13325         (canonicalize_constructor_val): Use it.
13326         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
13327         returning NULL.
13328         (gimple_fold_obj_type_ref_known_binfo): Use
13329         static_object_in_other_unit_p.
13330
13331 2010-09-18  Richard Guenther  <rguenther@suse.de>
13332
13333         PR tree-optimization/45709
13334         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
13335         insertions until after all PHI nodes of the block are processed.
13336
13337 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
13338
13339         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
13340
13341 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
13342
13343         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
13344
13345 2010-09-18  Richard Guenther  <rguenther@suse.de>
13346
13347         PR tree-optimization/45709
13348         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
13349
13350 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
13351
13352         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
13353         (dot_deps_stmt): Same.
13354         * graphite-poly.c (dot_lst): Same.
13355         * graphite-scop-detection.c (dot_all_scops): Same.
13356         (dot_scop): Same.
13357
13358 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
13359
13360         Revert:
13361         2009-12-16  Ben Elliston  <bje@au.ibm.com>
13362
13363         * tree-data-ref.c (dot_rdg_1): Added back.
13364         (dot_rdg): Same.  Added "#if 0" around system call.
13365
13366 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13367             Richard Henderson  <rth@redhat.com>
13368
13369         * config/i386/i386.c (initial_ix86_tune_features): Add
13370         X86_TUNE_PAD_SHORT_FUNCTION.
13371         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
13372         (ix86_count_insn): New.
13373         (ix86_pad_short_function): Likewise.
13374         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
13375
13376         * config/i386/i386.h (ix86_tune_indices): Add
13377         X86_TUNE_PAD_SHORT_FUNCTION.
13378         (TARGET_PAD_SHORT_FUNCTION): New.
13379
13380         * config/i386/i386.md (UNSPEC_NOPS): New.
13381         (nops): Likewise.
13382
13383 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13384
13385         PR middle-end/45234
13386         * calls.c (expand_call): Make sure that all variable sized
13387         adjustments are multiple of preferred stack boundary after
13388         stack alignment.
13389
13390 2010-09-17  DJ Delorie  <dj@redhat.com>
13391
13392         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
13393         passed an invalid value, print an error instead of ICEing.
13394         (valid_psw_flag): New.
13395         (rx_expand_builtin): Call it for setpsw/clrpsw.
13396         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
13397
13398         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
13399         (bitclr_in_memory): Likewise.
13400         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
13401
13402 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13403
13404         PR middle-end/45678
13405         * cfgexpand.c (update_stack_alignment): New.
13406         (get_decl_align_unit): Use it.
13407         (expand_one_stack_var_at): Call update_stack_alignment.
13408
13409 2010-09-17  Richard Guenther  <rguenther@suse.de>
13410
13411         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
13412         Properly copy the read string.
13413
13414 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
13415
13416         * doc/options.texi (Variable): Document.
13417         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
13418         generate target_flags declarations explicitly.  Don't define
13419         VarExists variables for the driver.
13420         * common.opt (target_flags): New Variable record.
13421         (flag_dump_unnumbered, flag_dump_unnumbered_links,
13422         flag_var_tracking, flag_var_tracking_assignments,
13423         flag_var_tracking_assignments_toggle): Don't mark variables with
13424         VarExists.
13425         * config/i386/i386.c (ix86_isa_flags): Don't define here.
13426         * config/i386/i386.opt (ix86_isa_flags): Define here.
13427         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
13428         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
13429         VarExists.
13430         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
13431         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
13432         Only define for generator programs.
13433         * rtlanal.c (target_flags): Remove.
13434         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
13435         flag_var_tracking_assignments_toggle): Remove.
13436
13437 2010-09-17  Michael Matz  <matz@suse.de>
13438
13439         PR tree-optimization/43432
13440         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
13441         Accept backwards consecutive accesses.
13442         (vect_create_data_ref_ptr): If step is negative generate
13443         decreasing IVs.
13444         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
13445         (perm_mask_for_reverse, reverse_vec_elements): New functions.
13446         (vectorizable_load): Handle loads with negative steps when easily
13447         possible.
13448
13449 2010-09-03  Jan Hubicka  <jh@suse.cz>
13450
13451         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
13452
13453 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
13454
13455         * config/v850/v850.c (v850_function_value_regno_p): Make static.
13456         Adjust comments. Declare.
13457         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
13458         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
13459
13460 2010-09-17  Richard Guenther  <rguenther@suse.de>
13461
13462         * common.opt (combine): Remove.
13463         * gcc.c (default_compilers): Remove specs testing combine.
13464         The C compilers no longer can combine.
13465         (option_map): Remove -combine.
13466         (display_help): Remove -combine.
13467         (driver_handle_option): Remove OPT_combine handling.
13468         (compile_input_file_p): Remove.
13469         (do_spec): Remove code concerning combine.
13470         (main): Likewise.
13471         * doc/invoke.texi: Remove traces of -combine.
13472         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
13473
13474 2010-09-17  Richard Guenther  <rguenther@suse.de>
13475
13476         PR middle-end/45678
13477         * builtins.c (fold_builtin_memory_op): Always properly adjust
13478         alignment of memory accesses.
13479
13480 2010-09-16  Jan Hubicka  <jh@suse.cz>
13481
13482         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
13483         processing clone.
13484
13485 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
13486
13487         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
13488
13489         * config/i386/i386.c (predict_jump): Add prototype.
13490         (flag_opts): Add -m8bit-idiv.
13491         (ix86_split_idivmod): New.
13492
13493         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
13494         Add 2 splitters for SI/DI mode divide.
13495         (divmod<mode>4_1): New pattern.
13496         (udivmod<mode>4_1): Likewise.
13497         (testdi_ccno_1): Likewise.
13498
13499         * config/i386/i386.opt (m8bit-idiv): New.
13500
13501         * doc/invoke.texi: Document -m8bit-idiv.
13502
13503 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
13504
13505         PR bootstrap/45680
13506         * config/i386/i386.c (min_insn_size): Moved out of the
13507         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
13508
13509 2010-09-16  Jan Hubicka  <jh@suse.cz>
13510
13511         * lto-cgraph.c (lto_output_node): Fix handling of clones.
13512         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
13513         unreachable clones with reachable clones.
13514         * tree-inline.c (copy_bb): Fix sanity checking when producing
13515         unreachable clone.
13516
13517 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
13518
13519         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
13520         (TARGET_MEMORY_MOVE_COST): Define.
13521         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
13522
13523 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
13524
13525         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
13526         maybe_tidy_empty_bb.
13527
13528         Revert:
13529         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13530         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13531
13532 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13533
13534         * target.def (target_option.optimization): New hook.
13535         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
13536         TARGET_OPTION_OPTIMIZATION hook.
13537         * doc/tm.texi: Regenerate.
13538         * hooks.c (hook_void_int_int): New.
13539         * hooks.h (hook_void_int_int): Declare.
13540         * opts.c: Don't include tm_p.h.
13541         (decode_options): Use targetm.target_option.optimization instead
13542         of OPTIMIZATION_OPTIONS.
13543         * system.h (OPTIMIZATION_OPTIONS): Poison.
13544         * config/arm/arm-protos.h (arm_optimization_options): Remove.
13545         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
13546         (arm_optimization_options): Rename to arm_option_optimization.
13547         Make static.
13548         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
13549         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
13550         (cris_option_optimization): New.
13551         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
13552         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
13553         (crx_option_optimization): New.
13554         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
13555         * config/frv/frv-protos.h (frv_optimization_options): Remove.
13556         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
13557         (frv_optimization_options): Rename to frv_option_optimization.
13558         Make static.
13559         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
13560         * config/h8300/h8300.c (h8300_option_optimization): New.
13561         (TARGET_OPTION_OPTIMIZATION): Define.
13562         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
13563         * config/i386/i386-protos.h (optimization_options): Remove.
13564         * config/i386/i386.c (optimization_options): Rename to
13565         ix86_option_optimization.  Make static.
13566         (TARGET_OPTION_OPTIMIZATION): Define.
13567         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
13568         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
13569         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
13570         (ia64_optimization_options): Rename to ia64_option_optimization.
13571         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
13572         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
13573         commented-out definition.
13574         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
13575         instead of OPTIMIZATION_OPTIONS.
13576         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
13577         (m32r_option_optimization): New.
13578         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
13579         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
13580         Remove.
13581         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
13582         (mcore_option_optimization): New.
13583         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
13584         * config/mep/mep-protos.h (mep_optimization_options): Remove.
13585         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
13586         (mep_optimization_options): Rename to mep_option_optimization.
13587         Make static.  Take unused level and size parameters.
13588         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
13589         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
13590         (mmix_option_optimization): New.
13591         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
13592         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
13593         (pdp11_option_optimization): New.
13594         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
13595         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
13596         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
13597         (optimization_options): Rename to rs6000_option_optimization.
13598         Make static.
13599         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
13600         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
13601         * config/rx/rx.c (rx_set_optimization_options): Rename to
13602         rx_option_optimization.  Make static.  Take unused level and size
13603         parameters.
13604         (TARGET_OPTION_OPTIMIZATION): Define.
13605         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
13606         * config/s390/s390-protos.h (optimization_options): Remove.
13607         * config/s390/s390.c (optimization_options): Rename to
13608         s390_option_optimization.  Make static.  Don't mark size parameter
13609         unused.
13610         (TARGET_OPTION_OPTIMIZATION): Define.
13611         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
13612         * config/sh/sh-protos.h (sh_optimization_options): Remove.
13613         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
13614         (sh_optimization_options): Rename to sh_option_optimization.  Make
13615         static.  Don't mark parameters unused.
13616         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
13617         * config/spu/spu-protos.h (spu_optimization_options): Remove.
13618         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
13619         (spu_optimization_options): Rename to spu_option_optimization.
13620         Make static.
13621         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
13622         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
13623         (v850_option_optimization): New.
13624         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
13625         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
13626         (xtensa_option_optimization): New.
13627         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
13628
13629 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13630
13631         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
13632         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
13633         * doc/tm.texi: Regenerate.
13634         * system.h (OVERRIDE_OPTIONS): Poison.
13635         * target.def (override): Default to hook_void_void.
13636         * targhooks.c (default_target_option_override): Remove.
13637         * genmodes.c, machmode.def: Update comments mentioning
13638         OVERRIDE_OPTIONS.
13639         * config/alpha/alpha-modes.def: Update comment mentioning
13640         alpha_override_options.
13641         * config/alpha/alpha-protos.h (override_options): Remove.
13642         * config/alpha/alpha.c (override_options): Rename to
13643         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
13644         (TARGET_OPTION_OVERRIDE): Define.
13645         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
13646         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
13647         of OVERRIDE_OPTIONS.
13648         * config/arc/arc-protos.h (arc_init): Remove.
13649         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
13650         (arc_init): Rename to arc_option_override.  Make static.
13651         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
13652         (OVERRIDE_OPTIONS): Remove.
13653         * config/arm/arm-protos.h (arm_override_options): Remove.
13654         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
13655         (arm_override_options): Rename to arm_option_override.  Make
13656         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13657         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
13658         * config/arm/arm.md: Update comment referring to arm_override_options.
13659         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13660         instead of OVERRIDE_OPTIONS.
13661         * config/avr/avr-protos.h (avr_override_options): Remove.
13662         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
13663         (avr_override_options): Rename to avr_option_override.  Make static.
13664         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
13665         * config/bfin/bfin-protos.h (override_options): Remove (twice).
13666         * config/bfin/bfin.c (override_options): Rename to
13667         bfin_option_override.  Make static.
13668         (TARGET_OPTION_OVERRIDE): Define.
13669         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
13670         * config/cris/cris-protos.h (cris_override_options): Remove.
13671         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
13672         (cris_override_options): Rename to cris_option_override.  Make static.
13673         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
13674         * config/frv/frv-protos.h (frv_override_options): Remove.
13675         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
13676         (frv_override_options): Rename to frv_option_override.  Make static.
13677         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
13678         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
13679         * config/h8300/h8300.c (h8300_init_once): Rename to
13680         h8300_option_override.  Make static.
13681         (TARGET_OPTION_OVERRIDE): Define.
13682         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
13683         * config/i386/i386-protos.h (override_options): Remove.
13684         * config/i386/i386.c (override_options): Rename to
13685         ix86_option_override_internal.  Make static.  Comments referring
13686         to this function and callers changed.
13687         (ix86_option_override): New.
13688         (TARGET_OPTION_OVERRIDE): Define.
13689         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
13690         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
13691         * config/ia64/ia64.c (ia64_file_start): Update comment referring
13692         to ia64_override_options.
13693         * config/iq2000/iq2000-protos.h (override_options): Remove.
13694         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
13695         (override_options): Rename to iq2000_option_override.  Make static.
13696         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
13697         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
13698         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
13699         (lm32_override_options): Rename to lm32_option_override.  Make static.
13700         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
13701         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
13702         (m32r_option_override): New.
13703         (m32r_init): Update comment.
13704         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
13705         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
13706         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
13707         (m68hc11_override_options): Rename to m68hc11_option_override.
13708         Make static.  Return void.
13709         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
13710         * config/m68k/m68k-protos.h (override_options): Remove.
13711         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
13712         (override_options): Rename to m68k_option_override.  Make static.
13713         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
13714         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
13715         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
13716         (mcore_override_options): Rename to mcore_option_override.  Make
13717         static.
13718         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
13719         * config/mep/mep-protos.h (mep_override_options): Remove.
13720         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
13721         (mep_override_options): Rename to mep_option_override.  Make static.
13722         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
13723         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
13724         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
13725         (mmix_override_options): Rename to mmix_option_override.  Make static.
13726         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
13727         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
13728         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
13729         (mn10300_override_options): Rename to mn10300_option_override.
13730         Make static.
13731         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
13732         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
13733         * config/moxie/moxie.c (moxie_override_options): Rename to
13734         moxie_option_override.  Make static.
13735         (TARGET_OPTION_OVERRIDE): Define.
13736         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
13737         * config/picochip/picochip-protos.h (picochip_override_options):
13738         Remove.  Update comment referring to picochip_override_options.
13739         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
13740         (picochip_override_options): Rename to picochip_option_override.
13741         Make static.  Update comment and definition of
13742         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
13743         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
13744         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13745         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13746         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13747         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13748         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13749         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
13750         instead of OVERRIDE_OPTIONS.
13751         * config/rs6000/rs6000-modes.def: Update comment referring to
13752         rs6000_override_options.
13753         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
13754         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
13755         (rs6000_override_options): Rename to
13756         rs6000_option_override_internal.  Make static.  Commented
13757         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
13758         (rs6000_option_override): New.
13759         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
13760         instead of OVERRIDE_OPTIONS.
13761         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13762         * config/s390/s390-protos.h (override_options): Remove.
13763         * config/s390/s390.c (override_options): Rename to
13764         s390_option_override.  Make static.
13765         (TARGET_OPTION_OVERRIDE): Define.
13766         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
13767         * config/score/score-protos.h (score_override_options): Remove.
13768         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
13769         (score_override_options): Rename to score_option_override.  Make
13770         static.
13771         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
13772         Update comment referring to override_options.
13773         * config/score/score3.c (score3_override_options): Rename to
13774         score3_option_override.
13775         * config/score/score3.h (score3_override_options): Rename to
13776         score3_option_override.
13777         * config/score/score7.c (score7_override_options): Rename to
13778         score7_option_override.
13779         * config/score/score7.h (score7_override_options): Rename to
13780         score7_option_override.
13781         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
13782         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
13783         (sparc_override_options): Rename to sparc_option_override.  Make
13784         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13785         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
13786         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13787         instead of OVERRIDE_OPTIONS.
13788         * config/spu/spu-protos.h (spu_override_options): Remove.
13789         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
13790         (spu_override_options): Rename to spu_option_override.  Make
13791         static.
13792         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
13793         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
13794         OVERRIDE_OPTIONS.
13795         * config/vax/vax-protos.h (override_options): Remove.
13796         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
13797         (override_options): Rename to vax_option_override.  Make static.
13798         Call SUBTARGET_OVERRIDE_OPTIONS.
13799         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
13800         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
13801         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
13802         * config/xtensa/xtensa-protos.h (override_options): Remove.
13803         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
13804         (override_options): Rename to xtensa_option_override.  Make static.
13805         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
13806
13807 2010-09-16  Richard Guenther  <rguenther@suse.de>
13808
13809         PR tree-optimization/45623
13810         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
13811         (get_constraint_for_component_ref): If computing a constraint
13812         for the rhs handle type punning through unions.
13813         (get_constraint_for_address_of): Adjust.
13814         (get_constraint_for_1): Likewise.
13815         (get_constraint_for): Likewise.
13816         (get_constraint_for_rhs): New function.
13817         (do_structure_copy): Adjust.
13818         (make_constraint_to): Likewise.
13819         (handle_const_call): Likewise.
13820         (find_func_aliases): Likewise.
13821         (process_ipa_clobber): Likewise.
13822         (create_variable_info_for): Likewise.
13823
13824 2010-09-16  Ira Rosen  <irar@il.ibm.com>
13825
13826         * tree-vectorizer.c: Fix documentation.
13827         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
13828         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
13829         is_pattern_stmt_p, is_loop_header_bb_p,
13830         stmt_vinfo_set_inside_of_loop_cost,
13831         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
13832         known_alignment_for_access_p): Likewise.
13833         * tree-vect-loop.c: Fix documentation.
13834         (vect_get_cost): Start function name from new line.
13835         * tree-vect-data-refs.c: Fix documentation.
13836         * tree-vect_stmts.c: Likewise.
13837         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
13838         (vectorizable_store): Free vec_oprnds if allocated.
13839         (vectorizable_condition): Initialize several variables to avoid
13840         warnings.
13841         * tree-vect-slp.c: Fix documentation.
13842
13843 2010-09-16  Richard Guenther  <rguenther@suse.de>
13844
13845         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
13846         is TS_TRANSLATION_UNIT_DECL.
13847         (initialize_tree_contains_struct): Adjust.
13848         (all_translation_units): New global vector.
13849         (build_translation_unit_decl): New function.
13850         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
13851         (struct tree_translation_unit_decl): New.
13852         (all_translation_units): Declare.
13853         (union tree_node): Add translation_unit_decl member.
13854         (build_translation_unit_decl): Declare.
13855         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
13856         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
13857         New function.
13858         (pack_value_fields): Call it.
13859         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
13860         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
13861         (lto_output_tree_pointers): Call it.
13862         * lto-streamer-in.c (lto_input_tree_ref): Handle references
13863         to TRANSLATION_UNIT_DECL.
13864         (unpack_ts_translation_unit_decl_value_fields): New function.
13865         (unpack_value_fields): Call it.
13866         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
13867         (lto_input_tree_pointers): Call it.
13868         * lto-streamer.c (check_handled_ts_structures): Adjust.
13869         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
13870         * c-decl.c (all_translation_units): Remove.
13871         (pop_scope): Use build_translation_unit_decl.
13872         (collect_all_refs): Adjust.
13873         (for_each_global_decl): Likewise.
13874         (c_write_global_declarations): Likewise.
13875
13876 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
13877
13878         PR bootstrap/45686
13879         * fold-const.c (fold_checksum_tree): Change slot from const void **
13880         to void **, use CONST_CAST_TREE to store into *slot.
13881
13882 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
13883
13884         * config/i386/i386.md: Remove unneeded empty conditions and
13885         preparation statements from expanders.
13886         * config/i386/mmx.md: Ditto.
13887         * config/i386/sse.md: Ditto.
13888
13889 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
13890
13891         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
13892
13893 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13894
13895         PR rtl-optimization/45593
13896         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
13897         insns that were in delay slots as stand-alone insns.
13898
13899 2010-09-15  Ian Lance Taylor  <iant@google.com>
13900
13901         * incpath.c (remove_duplicates): If name is not a directory, issue
13902         a warning rather than an error.
13903
13904 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13905
13906         PR middle-end/45644
13907         * tree-sra.c (create_access): Check for bit-fields directly.
13908
13909 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
13910
13911         PR tree-optimization/45633
13912         * tree-cfg.c (verify_gimple_assign_binary): Allow
13913         MINUS_EXPR with lhs and rhs1 pointer vector and
13914         rhs2 sizetype vector.
13915         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
13916         or vector pointer use TER to optimize pointer subtraction.
13917
13918 2010-09-15  Jie Zhang  <jie@codesourcery.com>
13919
13920         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
13921         fcmpd to fcmps.
13922
13923 2010-09-15  Ian Lance Taylor  <iant@google.com>
13924
13925         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
13926
13927 2010-09-15  Ian Lance Taylor  <iant@google.com>
13928
13929         * function.c (get_arg_pointer_save_area): Set
13930         arg_pointer_save_area_init to true.
13931
13932 2010-09-15  Martin Jambor  <mjambor@suse.cz>
13933
13934         * tree-sra.c (generate_subtree_copies): Updated comment.
13935         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
13936         obtained from the statement iterator instead.
13937         (load_assign_lhs_subreplacements): Removed parameters lhs and
13938         right_offset, which is obtained from top_racc instead.  Parameter lacc
13939         is now expected to be the root of the processed tree rather than root's
13940         first child.  Updated all callers.
13941
13942 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
13943
13944         * config/pdp11/pdp11.c (register_move_cost): Rename to
13945         pdp11_register_move_cost.
13946         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
13947         pdp11_register_move_cost.
13948         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
13949         pdp11_register_move_cost instead of register_move_cost.
13950
13951 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
13952
13953         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
13954         pattern for vmovn. Expansion in case of non
13955         -mvectorize-with-neon-quad.
13956         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
13957         non- -mvectorize-with-neon-quad case.
13958         (move_lo_quad_<mode>): New expansion to vmov into low part.
13959         (move_hi_quad_<mode>): New expansion to vmov into high part.
13960         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
13961         (move_lo_quad_v4sf): Likewise.
13962         (move_lo_quad_v8hi): Likewise.
13963         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
13964         low part.
13965         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
13966         high part.
13967         * config/arm/iterators.md (ANY128): New mode iterator.
13968         (V_narrow_pack): New mode attribute.
13969         (V_HALF): Add attribute.
13970         (V_DOUBLE): Add attribute.
13971         (V_mode_nunits): Add attribute.
13972
13973 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
13974
13975         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
13976         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
13977
13978 2010-09-15  Olivier Hainque  <hainque@adacore.com>
13979             Jose Ruiz  <ruiz@adacore.com>
13980
13981         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
13982         * config/alpha/osf5-unwind.h: New file.
13983
13984 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13985
13986         PR bootstrap/45672
13987         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
13988         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
13989         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
13990
13991 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13992
13993         * c-lang.h (struct lang_type): Add variable_size GTY option.
13994
13995 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
13996
13997         PR bootstrap/45672
13998         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
13999
14000 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14001
14002         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
14003         result isn't used in memory address.
14004
14005 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14006
14007         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
14008         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
14009         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
14010         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
14011         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
14012         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
14013
14014         * target.def: Add units_per_simd_word to vectorize.
14015
14016         * targhooks.c (default_units_per_simd_word): New.
14017         * targhooks.h (default_units_per_simd_word): Likewise.
14018         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
14019         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14020         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
14021         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14022         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
14023         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14024         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
14025         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14026
14027         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
14028         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
14029
14030         * tree-vect-stmts.c: Don't include "tm_p.h".
14031         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
14032         with targetm.vectorize.units_per_simd_word.
14033
14034         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
14035
14036         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
14037
14038         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
14039         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
14040
14041         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
14042         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
14043
14044         * doc/tm.texi: Regenerated.
14045
14046 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14047
14048         * tree-vect-stmts.c: Include "tm_p.h".
14049
14050         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
14051         out of RTX_CODE.
14052
14053 2010-09-14  Martin Jambor  <mjambor@suse.cz>
14054
14055         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
14056         location of generated statement.  Changed all callers.
14057         (build_ref_for_model): New parameter loc which used to set location of
14058         all generated expressions.  Changed all callers.
14059         (generate_subtree_copies): Likewise.
14060         (init_subtree_with_zero): Likewise.
14061         (sra_modify_expr): Set locations of all generated statements and
14062         expressions to the location the original statement.
14063         (handle_unscalarized_data_in_subtree): Likewise.
14064         (load_assign_lhs_subreplacements): Likewise.
14065         (sra_modify_constructor_assign): Likewise.
14066         (sra_modify_assign): Likewise.
14067
14068 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
14069
14070         PR target/45277
14071         PR target/45363
14072         PR target/45407
14073         * doc/install.texi (sparc*-*-*): New section.
14074         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
14075
14076 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
14077
14078         PR middle-end/45567
14079         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
14080         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
14081         (expand_builtin): Adjust caller.
14082         (expand_builtin_unop): Only use subtarget if it has the right mode.
14083
14084 2010-09-14  Tristan Gingold  <gingold@adacore.com>
14085
14086         * configure.ac (plugins): Fix typos.
14087         * configure: Regenerate.
14088
14089 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
14090
14091         PR debug/45660
14092         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
14093         gen_type_die for function/method return type.
14094
14095 2010-09-14  Ira Rosen  <irar@il.ibm.com>
14096
14097         PR tree-optimization/45470
14098         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
14099         can throw an exception.
14100         * tree-vect-stmts.c (vectorizable_call): Likewise.
14101
14102 2010-09-14  DJ Delorie  <dj@redhat.com>
14103
14104         PR target/44749
14105         * config/mep/mep-protos.h (mep_save_register_info,
14106         mep_reinit_regs, mep_init_regs): Declare.
14107
14108         * config/mep/mep.c: Move all target definitions to the end of the
14109         file to avoid the need for duplicate declarations.
14110         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
14111         (mep_reorg_erepeat): Remove unused variables.
14112         (mep_expand_builtin): Likewise.
14113
14114         * config/mep/mep-pragma.c: Don't include rtl.h.
14115         (INVALID_REGNUM): New.
14116         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
14117         functions.
14118         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
14119         Avoid enum/integer math.
14120
14121 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
14122
14123         PR target/44749
14124         * config/mep/t-mep (GTM_H): Add insn-constants.h.
14125         * config/mep/mep.c (mep_conditional_register_usage): Take no
14126         parameters.
14127         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
14128         prototype.
14129         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
14130         call to mep_conditional_register_usage.
14131
14132 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
14133
14134         PR debug/43937
14135         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
14136         the DECL as well.
14137
14138 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
14139
14140         PR rtl-optimization/45617
14141         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
14142         even if low N bits of X aren't known to be zero.
14143
14144 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
14145
14146         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
14147
14148         * config/i386/i386.c (initial_ix86_tune_features): Add
14149         X86_TUNE_VECTORIZE_DOUBLE.
14150         (ix86_units_per_simd_word): New.
14151
14152         * config/i386/i386.h (ix86_tune_indices): Add
14153         X86_TUNE_VECTORIZE_DOUBLE.
14154         (TARGET_VECTORIZE_DOUBLE): New.
14155         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
14156
14157 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
14158
14159         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
14160         (new_temp_expr_table): Allocate call_cnt vector.
14161         (free_temp_expr_table): Free it.
14162         (process_replaceable): Add call_cnt parm and set in vector.
14163         (find_replaceable_in_bb): Skip replacement if def/use span a call.
14164         (debug_ter): Dump call_cnt value, remove stderr uses.
14165
14166 2010-09-13  Jan Hubicka  <jh@suse.cz>
14167
14168         * tree.c (build_zero_cst): New.
14169         * tree.h (build_zero_cst): Declare.
14170         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
14171         (get_base_constructor): Break out from ...
14172         (fold_const_aggregate_ref): Here; handle empty constructors.
14173
14174 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14175
14176         * config/arm/arm.md: (define_attr "conds"): Update comment.
14177         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
14178         conds attribute to clob.
14179         (arm_sync_compare_and_swapsi): Likewise.
14180         (arm_sync_compare_and_swap<mode>): Likewise.
14181         (arm_sync_lock_test_and_setsi): Likewise.
14182         (arm_sync_lock_test_and_set<mode>): Likewise.
14183         (arm_sync_new_<sync_optab>si): Likewise.
14184         (arm_sync_new_nandsi): Likewise.
14185         (arm_sync_new_<sync_optab><mode>): Likewise.
14186         (arm_sync_new_nand<mode>): Likewise.
14187         (arm_sync_old_<sync_optab>si): Likewise.
14188         (arm_sync_old_nandsi): Likewise.
14189         (arm_sync_old_<sync_optab><mode>): Likewise.
14190         (arm_sync_old_nand<mode>): Likewise.
14191
14192 2010-09-13  Olivier Hainque  <hainque@adacore.com>
14193
14194         * fwprop.c (forward_propagate_and_simplify): Only attach a
14195         REG_EQUAL note to an insn if the destination is a register.
14196         * gcse.c (try_replace_reg): Likewise.
14197
14198 2010-09-13  Richard Guenther  <rguenther@suse.de>
14199
14200         PR tree-optimization/45611
14201         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
14202         (copy_ref_info): Likewise.
14203
14204 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
14205
14206         PR debug/45604
14207         PR debug/45419
14208         PR debug/45408
14209         * tree-pretty-print.c (dump_generic_node): Disregard top-level
14210         types of MEM_REF pointer types to the same type.
14211
14212 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
14213
14214         PR rtl-optimization/41087
14215         * ifcvt.c (noce_get_condition): Don't allow conditions with
14216         side-effects.
14217
14218 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
14219
14220         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14221         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
14222         * config/frv/frv.c (frv_register_move_cost): Make static. Change
14223         arguments type to reg_class_t. Add mode argument.
14224         (frv_memory_move_cost): New.
14225         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
14226
14227 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
14228
14229         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
14230         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
14231
14232 2010-09-10  Jan Hubicka  <jh@suse.cz>
14233
14234         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
14235
14236 2010-09-10  Richard Guenther  <rguenther@suse.de>
14237
14238         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
14239         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
14240         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
14241         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
14242         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
14243
14244 2010-09-10  Richard Guenther  <rguenther@suse.de>
14245
14246         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
14247         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
14248         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
14249         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
14250
14251 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
14252
14253         PR middle-end/45634
14254         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
14255         of string folding is of integral type.
14256
14257 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
14258
14259         * doc/invoke.texi (-x): Fix typo.
14260
14261 2010-09-10  Richard Guenther  <rguenther@suse.de>
14262
14263         PR debug/44115
14264         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
14265         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14266         Output DECL_DEBUG_EXPR.
14267         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14268         Input DECL_DEBUG_EXPR.
14269
14270 2010-09-10  Richard Guenther  <rguenther@suse.de>
14271
14272         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
14273         (build_index_type): Implement in terms of build_range_type.
14274         (build_range_type): Do not allow NULL_TREE type, improve
14275         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
14276         if we didn't hash.
14277         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
14278         create a distinct copy of the type.
14279
14280 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
14281
14282         * configure: Regenerated.
14283         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
14284
14285 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14286
14287         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
14288         * config/arm/cortex-a9-neon.md: New and partially generated.
14289         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
14290
14291 2010-09-10  Richard Guenther  <rguenther@suse.de>
14292
14293         * tree.h (build_index_2_type): Remove.
14294         * tree.c (build_index_2_type): Remove.
14295
14296 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
14297
14298         PR bootstrap/45630
14299         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
14300         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
14301         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
14302
14303 2010-09-10  Martin Jambor  <mjambor@suse.cz>
14304
14305         PR tree-optimization/44972
14306         * tree-sra.c: Include toplev.h.
14307         (build_ref_for_offset): Entirely reimplemented.
14308         (build_ref_for_model): New function.
14309         (build_user_friendly_ref_for_offset): New function.
14310         (analyze_access_subtree): Removed build_ref_for_offset check.
14311         (propagate_subaccesses_across_link): Likewise.
14312         (create_artificial_child_access): Use
14313         build_user_friendly_ref_for_offset.
14314         (propagate_subaccesses_across_link): Likewise.
14315         (ref_expr_for_all_replacements_p): Removed.
14316         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
14317         (sra_modify_expr): Use build_ref_for_model.
14318         (load_assign_lhs_subreplacements): Likewise.
14319         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
14320         checks for return values of build_ref_for_offset.
14321         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
14322         build_ref_for_offset.
14323         * ipa-prop.h: Include gimple.h
14324         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
14325         (ipa_analyze_indirect_call_uses): Update comment.
14326         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
14327         (IPA_PROP_H): Likewise.
14328
14329 2010-09-10  Martin Jambor  <mjambor@suse.cz>
14330
14331         PR tree-optimization/44972
14332         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
14333         calling build_ref_for_offset.
14334
14335 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14336
14337         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
14338         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
14339         * config/arm/arm-tune.md: Regenerate.
14340         * doc/invoke.texi (ARM Options): Document it.
14341
14342 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
14343
14344         * config/i386/i386.c: Include sched-int.h.
14345         (TARGET_SCHED_DISPATCH): Defined.
14346         (TARGET_SCHED_DISPATCH_DO): Defined.
14347         (DISPATCH_WINDOW_SIZE): Defined.
14348         (MAX_DISPATCH_WINDOWS): Defined.
14349         (MAX_INSN): Defined.
14350         (MAX_IMM): Defined.
14351         (MAX_IMM_SIZE): Defined.
14352         (MAX_IMM_32): Defined.
14353         (MAX_IMM_64): Defined.
14354         (MAX_LOAD): Defined.
14355         (MAX_STORE): Defined.
14356         (BIG): Defined.
14357         (dispatch_group): New.
14358         (num_allowable_groups): New.
14359         (group_name): New.
14360         (sched_insn_info_s): New.
14361         (dispatch_windows_s): New.
14362         (imm_info_s): New.
14363         (dispatch_window_list): New.
14364         (dispatch_window_list1): New.
14365         (get_mem_group): New.
14366         (is_cmp): New.
14367         (dispatch_violation): New.
14368         (is_branch): New.
14369         (is_prefetch): New.
14370         (init_window): New.
14371         (allocate_window): New.
14372         (init_dispatch_sched): New.
14373         (is_end_basic_block): New.
14374         (process_end_window): New.
14375         (allocate_next_window): New.
14376         (find_constant_1): New.
14377         (find_constant): New.
14378         (get_num_immediates): New.
14379         (has_immediate): New.
14380         (get_insn_path): New.
14381         (get_insn_group): New.
14382         (count_num_restricted): New.
14383         (fits_dispatch_window): New.
14384         (add_insn_window): New.
14385         (add_to_dispatch_window): New.
14386         (debug_dispatch_window_file): New.
14387         (debug_dispatch_window): New.
14388         (debug_insn_dispatch_info_file): New.
14389         (debug_ready_dispatch): New.
14390         (do_dispatch): New.
14391         (has_dispatch): New.
14392         * config/i386/i386.h (debug_ready_dispatch): Declared.
14393         (debug_dispatch_window): Declared.
14394         * config/i386/i386.opt (mdispatch-scheduler): New flag.
14395         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
14396         (TARGET_SCHED_DISPATCH_DO): New.
14397         * doc/tm.texi: Regererated.
14398         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
14399         ready_remove_first_dispatch
14400         (schedule_block): Call targetm.sched.dispatch and
14401         targetm.sched.dispatch_do.
14402         (sched_init): Call targetm.sched.dispatch and
14403         targetm.sched.dispatch_do.
14404         (ready_remove_first_dispatch): New.
14405         (number_in_ready): New.
14406         (get_ready_element): New.
14407         * hooks.c (hook_bool_rtx_int_false): New.
14408         (hook_void_rtx_int): New.
14409         * hooks.h (hook_bool_rtx_int_false): Declared.
14410         (hook_void_rtx_int): Declared.
14411         * sched-int.h (IS_DISPATCH_ON): Defined.
14412         (IS_CMP): Defined.
14413         (DISPATCH_VIOLATION): Defined.
14414         (FITS_DISPATCH_WINDOW): Defined.
14415         (DISPATCH_INIT): Defined.
14416         (ADD_TO_DISPATCH_WINDOW): Defined.
14417         (get_ready_element): Declared.
14418         (number_in_ready): Declared.
14419         * target.def (dispatch): Defined.
14420         (dispatch_do): Defined.
14421
14422 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14423
14424         PR middle-end/45312
14425         * reload1.c (merge_assigned_reloads): Remove.
14426         (reload_as_needed): Don't call it.
14427
14428 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
14429
14430         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
14431         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14432         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14433
14434 2010-09-09  Matthias Klose  <doko@ubuntu.com>
14435
14436         PR bootstrap/43847
14437         * configure.ac (--enable-plugin): Enhance for cross builds.
14438         * configure: Regenerate.
14439
14440 2010-09-09  Jan Hubicka  <jh@suse.cz>
14441
14442         PR tree-optimization/45598
14443         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
14444         string folding is of integral type.
14445
14446 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
14447
14448         * configure.ac (gnu_indirect_function): New test.
14449         * configure: Rebuilt.
14450         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
14451         * defaults.h (IFUNC_ASM_TYPE): Provide default.
14452
14453         * doc/extend.texi (Function Attributes): Document ifunc.
14454         * varasm.c (do_assemble_alias): Deal with ifuncs too.
14455
14456 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
14457
14458         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
14459         epilogue instruction move.
14460
14461 2010-09-09  Jan Hubicka  <jh@suse.cz>
14462
14463         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
14464         command line to allow more partitions than input files.
14465
14466 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14467
14468         PR middle-end/44554
14469         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
14470
14471 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14472
14473         PR middle-end/40386
14474         * ira.c (pseudo_for_reload_consideration_p): Don't use
14475         flag_ira_share_spill_slots.
14476
14477 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14478
14479         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
14480         point zero operands that fit into a single GPR.
14481         (s390_preferred_reload_class): Ensure we only return general-purpose
14482         register classes.
14483         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
14484         floating-point zero operands into GPRs.
14485         ("*mov<mode>_64"): Likewise.
14486         ("mov<mode>"): Likewise using lhi.
14487
14488 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14489
14490         * config/s390/s390.c (s390_symref_operand_p): Return false for
14491         literal pool references.
14492         (s390_check_qrst_address): Update caller.
14493
14494 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
14495
14496         * config/i386/predicates.md (ext_register_operand): Check that
14497         SUBREG_REG is really a register before looking for REGNO.
14498         (reg_not_xmm0_operand): Handle SUBREGs correctly.
14499         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
14500
14501 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
14502
14503         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
14504         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
14505         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
14506         * print-rtl.c (print_rtx): Likewise.
14507         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
14508         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
14509         for ADDR_EXPR with non-addressable object.
14510         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
14511         (struct dw_val_struct): Add v.val_decl_ref.
14512         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
14513         Handle DW_OP_GNU_implicit_pointer.
14514         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
14515         (get_ref_die_offset_label): New function.
14516         (implicit_ptr_descriptor): New function.
14517         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
14518         (loc_descriptor): Likewise.
14519         (gen_variable_die): Put even definitions into decl_die_table.
14520         (resolve_addr_in_expr): Resolve still unresolved
14521         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
14522         return false.
14523         (dwarf2out_finish): Call output_location_lists after outputting
14524         .debug_info and .debug_abbrev instead of before.
14525
14526 2010-09-09  Roland McGrath  <roland@redhat.com>
14527
14528         * dwarf2out.c (DWARF_REF_SIZE): Define.
14529         (size_of_loc_descr): Use it for DW_OP_call_ref.
14530
14531 2010-09-09  Alan Modra  <amodra@gmail.com>
14532
14533         * doc/invoke.text: Reinstate mcmodel=medium.
14534         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
14535         CMODEL_MEDIUM as default.
14536         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
14537         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
14538         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
14539         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
14540
14541 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14542
14543         PR target/45250
14544         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
14545         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
14546         (builtin_longjmp): Likewise.
14547         (allocate_stack): Use hard_frame_pointer_rtx instead of
14548         frame_pointer_rtx.
14549         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
14550         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
14551         (pa_can_eliminate): Likewise.
14552         (TARGET_INTERNAL_ARG_POINTER): Define.
14553         (TARGET_CAN_ELIMINATE): Define.
14554         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
14555         pointer.
14556         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
14557         (pa_internal_arg_pointer, pa_can_eliminate,
14558         pa_initial_elimination_offset): New.
14559         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
14560         (HARD_FRAME_POINTER_REGNUM): Set to register three.
14561         (INITIAL_FRAME_POINTER_OFFSET): Delete.
14562         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
14563         Define.
14564         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
14565         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
14566         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
14567         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
14568         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
14569         new soft frame pointer.
14570         * config/pa/pa64-regs.h: Likewise.
14571
14572 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14573
14574         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
14575         numerical constant.
14576         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
14577
14578 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14579
14580         PR debug/45531
14581         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
14582
14583 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14584
14585         PR debug/45419
14586         PR debug/45408
14587         * tree-pretty-print.c (dump_generic_node): Disregard top-level
14588         qualifiers in otherwise equal MEM_REF pointer types.
14589         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
14590         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
14591
14592 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14593
14594         PR target/44392
14595         * config/arm/arm.md (bswapsi2): Handle condition correctly
14596         for armv6 and optimize_size.
14597
14598 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14599
14600         PR other/18555
14601         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
14602
14603 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14604
14605         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
14606         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
14607         ix86_expand_strlen, legitimate_pic_address_disp_p,
14608         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
14609         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
14610         ix86_check_movabs, ix86_secondary_memory_needed): Change function
14611         prototype to bool.
14612         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
14613         return_in_memory_ms_64, ix86_check_movabs,
14614         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
14615         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
14616         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
14617         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
14618         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
14619         ix86_secondary_memory_needed): Change to bool.  Return
14620         "true" and "false" values.
14621         * config/i386/i386.md: Return "true" and "false" values.
14622
14623 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14624
14625         * doc/sourcebuild.texi (Effective-Target Keywords): Document
14626         run_expensive_tests.
14627
14628 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14629
14630         * toplev.c (output_stack_usage): Use lbasename instead of basename.
14631
14632 2010-09-08  Martin Jambor  <mjambor@suse.cz>
14633
14634         PR other/45443
14635         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
14636         at -O3.
14637
14638 2010-09-08  Richard Guenther  <rguenther@suse.de>
14639
14640         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
14641         (visit): Adjust.
14642         (iterative_hash_gimple_type): Likewise.
14643         (gimple_type_hash): Likewise.
14644         (gimple_register_type): Likewise.
14645         (print_gimple_types_stats): Likewise.
14646         (free_gimple_type_tables): Likewise.
14647
14648 2010-09-08  Michael Matz  <matz@suse.de>
14649
14650         PR tree-optimization/43430
14651         * tree-vect-stmts.c (vectorizable_condition): Support multiple
14652         copies for conditional statements if it's not part of a reduction.
14653
14654 2010-09-08  Michael Matz  <matz@suse.de>
14655
14656         PR tree-optimization/33244
14657         * tree-ssa-sink.c (statement_sink_location): Don't sink into
14658         empty loop latches.
14659
14660 2010-09-08  Richard Guenther  <rguenther@suse.de>
14661
14662         PR tree-optimization/45578
14663         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
14664         Be more careful when transfering alignment information to
14665         the new induction variable.
14666         (copy_ref_info): Likewise.
14667
14668 2010-09-08  Richard Guenther  <rguenther@suse.de>
14669
14670         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
14671         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
14672
14673 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
14674
14675         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
14676         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
14677
14678 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
14679
14680         PR doc/45587
14681         * doc/md.texi: Fixed modes on several standard pattern names.
14682
14683 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
14684
14685         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
14686         (ashl<mode>3): ...this.
14687         (loongson_psra<V_suffix>): Rename to...
14688         (ashr<mode>3): ...this.
14689         (loongson_psrl<V_suffix>): Rename to...
14690         (lshr<mode>3): ...this.
14691         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
14692         (CODE_FOR_loongson_psllw): Define.
14693         (CODE_FOR_loongson_psrlh): Define.
14694         (CODE_FOR_loongson_psrlw): Define.
14695         (CODE_FOR_loongson_psrah): Define.
14696         (CODE_FOR_loongson_psraw): Define.
14697
14698 2010-09-07  Richard Henderson  <rth@redhat.com>
14699
14700         * tree-vect-data-refs.c: Include tm_p.h.
14701         * Makefile.in (tree-vect-data-refs.o): Update deps.
14702         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
14703         Move delarations outside #ifdef RTX_CODE.
14704
14705 2010-09-07  Richard Henderson  <rth@redhat.com>
14706
14707         * final.c (rest_of_handle_final): Unconditionally do
14708         output_function_exception_table before assemble_end_function.
14709
14710 2010-09-07  Jan Hubicka  <jh@suse.cz>
14711
14712         * tree-inline.c (tree_inlinable_function_p): Do not test
14713         DECL_REPLACEABLE_P.
14714         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
14715         update_callee_keys, cgraph_decide_inlining): Test function availability.
14716         * cif-code.def (OVERWRITABLE): New code.
14717
14718 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
14719             Jack Howarth  <howarth@bromo.med.uc.edu>
14720
14721         PR target/36502
14722         PR target/42313
14723         PR target/44651
14724         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
14725         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
14726         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
14727         MAX macro.
14728
14729 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14730
14731         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
14732         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
14733
14734 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14735
14736         * config.gcc: Don't append t-android for Android targets.
14737
14738         * config/t-android: Removed.
14739
14740 2010-09-07  Richard Henderson  <rth@redhat.com>
14741
14742         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
14743         * doc/tm.texi.in: Add doc marker.
14744         * doc/tm.texi: Rebuild.
14745         * except.c (switch_to_exception_section): Always build.
14746         (output_one_function_exception_table): Move section switch,
14747         personality output, and label output ...
14748         (output_function_exception_table): ... here.  Use the new
14749         personality hook.
14750
14751         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
14752         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
14753         TARGET_ASM_INIT_SECTIONS): New.
14754         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
14755         make static.
14756         (TARGET_ASM_UNWIND_EMIT): Update to match.
14757         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
14758
14759         * config/arm/arm.c (arm_asm_emit_except_personality): New.
14760         (arm_asm_init_sections): New.
14761         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
14762
14763 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14764
14765         * config/arm/arm.md: Remove unused variable.
14766
14767 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
14768
14769         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14770         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
14771         (m32r_memory_move_cost): New function.
14772
14773 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14774
14775         * config.gcc: Append t-android for Android targets.
14776
14777         * config/t-android: New.
14778
14779 2010-09-07  Richard Henderson  <rth@redhat.com>
14780
14781         * target.def (unwind_emit_before_insn): New hook.
14782         * doc/tm.texi.in: Add @hook marker for it.
14783         * doc/tm.texi: Rebuild.
14784         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
14785
14786 2010-09-07  Martin Jambor  <mjambor@suse.cz>
14787
14788         PR fortran/43665
14789         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
14790         are any type attributes.
14791
14792 2010-09-07  Jan Hubicka  <jh@suse.cz>
14793
14794         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
14795         array_ref_low_bound in string access folding.
14796
14797 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
14798
14799         PR target/45206
14800         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
14801         eh_return fixup sequence.
14802
14803 2010-09-07  Jan Hubicka  <jh@suse.cz>
14804
14805         * gimple-fold.c (maybe_fold_reference): Verify that operand is
14806         gimple_min_invariant.
14807
14808 2010-09-07  Richard Guenther  <rguenther@suse.de>
14809
14810         PR middle-end/45569
14811         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
14812         nor CONSTRUCTOR can trap.
14813         * tree-complex.c (update_complex_assignment): Update EH info.
14814
14815 2010-09-07  Richard Guenther  <rguenther@suse.de>
14816
14817         PR middle-end/45569
14818         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
14819         * passes.c (execute_function_todo): Do not verify anything if
14820         we saw errors.
14821
14822 2010-09-07  Richard Guenther  <rguenther@suse.de>
14823
14824         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
14825
14826 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
14827
14828         PR target/43137
14829         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
14830         New define_mode_attrs.
14831         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
14832         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
14833         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
14834         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
14835         Remove pool_range attribute.
14836         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
14837         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
14838         pool_range and neg_pool_range attributes.
14839         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
14840         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
14841         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
14842
14843 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14844
14845         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
14846         check glibc.
14847
14848 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
14849
14850         PR target/22152
14851         * config/i386/mmx.md (*mov<mode>_internal_rex64,
14852         *mov<mode>_internal_avx, *mov<mode>_internal,
14853         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
14854         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
14855
14856 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
14857
14858         * c-typeck.c (do_warn_double_promotion): Remove.
14859         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
14860         Objective-C++ too.
14861
14862 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
14863
14864         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
14865         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
14866         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
14867         argument type to reg_class_t. Change result type to bool.
14868         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
14869
14870 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
14871
14872         PR libobjc/19850
14873         * gthr-posix.h (__gthread_objc_thread_detach): Use
14874         _objc_thread_attribs when detaching a thread.
14875         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
14876
14877 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
14878
14879         PR target/45524
14880         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
14881         * configure: Regenerated.
14882
14883 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14884
14885         * combine.c (try_combine): Set subst_low_luid to i0.
14886
14887 2010-09-06  Richard Guenther  <rguenther@suse.de>
14888
14889         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
14890         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
14891         (build_aligned_type): Declare.
14892         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
14893         (check_aligned_type): New function.
14894         (build_aligned_type): Likewise.
14895         * expr.c (expand_assignment): Handle misaligned stores via
14896         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
14897         (expand_expr_real_1): Likewise.
14898         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
14899         * tree-vect-stmts.c (vectorizable_store): Do not build
14900         MISALIGNED_INDIRECT_REF but initialize alignment information.
14901         (vectorizable_load): Likewise.
14902         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
14903         handling.
14904         * cfgexpand.c (expand_debug_expr): Likewise.
14905         * dwarf2out.c (loc_list_from_tree): Likewise.
14906         * fold-const.c (maybe_lvalue_p): Likewise.
14907         (operand_equal_p): Likewise.
14908         (build_fold_addr_expr_with_type_loc): Likewise.
14909         * gimplify.c (gimplify_addr_expr): Likewise.
14910         (gimplify_expr): Likewise.
14911         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
14912         (verify_gimple_assign_single): Likewise.
14913         * tree-dump.c (dequeue_and_dump): Likewise.
14914         (tree_could_trap_p): Likewise.
14915         * tree-predcom.c (ref_at_iteration): Likewise.
14916         * tree-pretty-print.c (dump_generic_node): Likewise.
14917         (op_code_prio): Likewise.
14918         (op_symbol_code): Likewise.
14919         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
14920         * tree-ssa-loop-im.c (for_each_index): Likewise.
14921         (gen_lsm_tmp_name): Likewise.
14922         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
14923         (find_interesting_uses_address): Likewise.
14924         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
14925         * tree-ssa-operands.c (get_expr_operands): Likewise.
14926         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14927         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
14928         (ao_ref_init_from_vn_reference): Likewise.
14929         * tree.c (staticp): Likewise.
14930         (build1_stat): Likewise.
14931         (reference_alias_ptr_type): Likewise.
14932         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
14933         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
14934         MISALIGNED_INDIRECT_REF handling.
14935
14936 2010-09-06  Richard Guenther  <rguenther@suse.de>
14937
14938         PR tree-optimization/45534
14939         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
14940         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
14941         on the target.
14942         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
14943         valid on the target.
14944
14945 2010-09-06  Andreas Schwab  <schwab@redhat.com>
14946
14947         * configure.ac: Quote argument of AC_MSG_WARN.
14948         * configure: Regenerate.
14949
14950 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
14951
14952         * sel-sched.c (move_cond_jump): Correct arguments to
14953         maybe_tidy_empty_bb.
14954         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
14955
14956 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
14957
14958         PR rtl-optimization/44919
14959         * sel-sched.c (move_cond_jump): Remove assert, check that
14960         the several blocks case can only happen with mutually exclusive
14961         insns instead.  Rewrite the movement code to support moving through
14962         several basic blocks.
14963
14964 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
14965
14966         * config/i386/i386.md (iptrsize): New mode attribute.
14967         (tp_seg): Ditto.
14968         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
14969         mode iterator.
14970         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
14971         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
14972         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
14973         (stack_tls_protect_set_<mode>): Ditto from
14974         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
14975         of thread base pointer load.
14976         (stack_tls_protect_test_<mode>): Ditto from
14977         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
14978         of thread base pointer load.
14979         (stack_protect_set): Rewrite using indirect functions.
14980         (stack_protect_test): Ditto.
14981         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
14982         (ix86_print_operand): Handle '@'.
14983
14984 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
14985
14986         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
14987         MINUS_EXPR.
14988
14989 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
14990
14991         * doc/invoke.texi: Document -Wdouble-promotion.
14992         * c-typeck.c (convert_arguments): Check for implicit conversions
14993         from float to double.
14994         (do_warn_double_promotion): New function.
14995         (build_conditional_expr): Use it.
14996         (build_binary_op): Likewise.
14997
14998 2010-09-05  Richard Guenther  <rguenther@suse.de>
14999
15000         PR tree-optimization/45535
15001         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
15002         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
15003         dereferencing it.
15004         (indirect_refs_may_alias_p): Likewise.
15005
15006 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
15007
15008         * config/sh/sh.c (sh_option_override): Make static.
15009         Adjust comments.  Declare.
15010         (sh_function_value_regno_p): Likewise.
15011         (sh_register_move_cost): Modify the arguments, make static.
15012         Adjust comments.  Declare.
15013         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
15014         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15015         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
15016         REGISTER_MOVE_COST): Delete.
15017         * config/sh/sh-protos.h (sh_override_options): Delete.
15018         (sh_register_move_cost): Delete.
15019         (sh_function_value_regno_p): Delete.
15020
15021 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
15022
15023         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
15024         m32r_function_value_regno_p): New functions.
15025         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15026         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
15027         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
15028         FUNCTION_VALUE_REGNO_P): Remove.
15029
15030 2010-09-04  Jan Hubicka  <jh@suse.cz>
15031
15032         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
15033         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
15034         fold_read_from_constant_string.
15035
15036         * gimple.h (canonicalize_constructor_val): Declare.
15037         * gimple-fold.c (canonicalize_constructor_val): New function.
15038         (get_symbol_constant_value):Use it.
15039         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
15040
15041 2010-09-04  Jan Hubicka  <jh@suse.cz>
15042
15043         * tree-switch-conversion.c (build_one_array): Set constructor to be
15044         static.
15045         * varpool.c (varpool_finalize_decl): Compute const_value_known.
15046
15047 2010-09-04  Richard Guenther  <rguenther@suse.de>
15048
15049         PR bootstrap/45519
15050         * tree-flow.h (force_gimple_operand_1): Declare.
15051         (force_gimple_operand_gsi_1): Likewise.
15052         * gimplify.c (force_gimple_operand_1): New worker taking a
15053         gimple predicate for ...
15054         (force_gimple_operand): ... which now wraps it.
15055         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
15056         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
15057         last change.
15058         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
15059         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
15060         (create_mem_ref): Likewise.
15061
15062 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
15063
15064         * config/i386/predicates.md (sse_reg_operand): New predicate.
15065         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
15066         predicate for operand 1.
15067         (XFmode push splitter): Use fp_register_operand predicate
15068         for operand 1.
15069         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
15070         (SF-DF float_extend push splitter): Add reload_completed insn
15071         predicate.
15072         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
15073         MODEF mode macro.  Add reload_completed insn predicate.
15074
15075 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
15076
15077         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
15078         (struct df_extract_ref): Remove.
15079         (union df_ref_d): Remove extract_ref member.
15080         (df_ref_create): Remove last three arguments.
15081         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
15082         * df-scan.c (df_ref_record): Remove last three arguments, do not
15083         pass them to df_ref_create_structure.
15084         (df_uses_record): Remove first and last three arguments.  Replace
15085         first argument with DF_REF_REGULAR, adjust calls to remove the
15086         width, offset and mode.  Always call recursively on the second
15087         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
15088         (df_ref_create_structure): Remove first argument.
15089         (struct df_scan_problem_data): Remove ref_extract_pool.
15090         (df_scan_free_internal): Do not free it.
15091         (df_scan_alloc): Do not allocate it.
15092         (df_ref_create): Remove last three arguments, do not pass them to
15093         df_ref_create_structure.
15094         (df_free_ref): Remove DF_REF_EXTRACT case.
15095         (df_notes_rescan): Adjust call to df_uses_record.
15096         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
15097         Remove DF_REF_EXTRACT case.
15098         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
15099         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
15100         and SUBREG definitions.
15101         (df_get_conditional_uses): Remove references to width/offset/mode,
15102         adjust call to df_ref_create_structure.
15103         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
15104         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
15105         calls to df_uses_record and df_ref_record.
15106         * fwprop.c (update_df): Remove references to width/offset/mode,
15107         adjust call to df_ref_create.
15108
15109 2010-09-03  Jan Hubicka  <jh@suse.cz>
15110
15111         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
15112         (build_cdtor_fns): Update use of build_cdtor.
15113
15114 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
15115
15116         * doc/options.texi (SeparateAlias): Document.
15117         * opt-functions.awk (switch_flags): Handle SeparateAlias.
15118         * opth-gen.awk: Generate enumeration names for options marked
15119         SeparateAlias, but not for those marked Ignore.
15120         * opts-common.c (generate_canonical_option): Don't output separate
15121         argument for options marked CL_SEPARATE_ALIAS.
15122         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
15123         * opts.h (CL_SEPARATE_ALIAS): New.
15124         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15125         CL_COMMON): Adjust definitions.
15126         * config/i386/darwin.opt, config/mips/sde.opt: New.
15127         * common.opt (fdump-final-insns): New.
15128         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
15129         i386/darwin.opt.
15130         (mips*-sde-elf*): Add mips/sde.opt.
15131         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
15132         -mno-data-in-code and -mcode-xonly here.
15133         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
15134         * gcc.c (option_map): Add "j" to --dump entry.
15135         (translate_options): Don't translate -d to -foutput-class-dir= here.
15136
15137 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
15138
15139         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
15140         DR_IS_WRITE.
15141         (compute_all_dependences): Same.
15142         (create_rdg_edge_for_ddr): Same.
15143         * tree-data-ref.h (DR_IS_WRITE): New.
15144         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
15145         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
15146         (write_memrefs_written_at_least_once): Same.
15147         * tree-predcom.c (suitable_component_p): Same.
15148         (determine_roots_comp): Same.
15149         (execute_load_motion): Same.
15150         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
15151         (vect_enhance_data_refs_alignment): Same.
15152         (vect_analyze_group_access): Same.
15153
15154 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
15155
15156         PR testsuite/42843
15157         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
15158         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
15159
15160 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
15161
15162         * dwarf2out.c (file scope): Remove #if0'd code.
15163         (gen_subprogram_die): Same.
15164
15165 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
15166
15167         PR middle-end/45484
15168         * dwarf2out.c (flush_queued_reg_saves): Rename to...
15169         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
15170         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
15171         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
15172         * config/i386/i386.c (output_set_got): Call it.
15173
15174 2010-09-03  Michael Matz  <matz@suse.de>
15175
15176         PR middle-end/45415
15177         * tree-sra.c (sra_modify_assign): If we modify the statement,
15178         say so.
15179
15180         * tree-ssa.c (verify_ssa): Check number of operands and links
15181         per statement to agree.
15182
15183 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
15184             Iain Sandoe  <iains@gcc.gnu.org>
15185
15186         PR target/45476
15187         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
15188         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
15189         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
15190
15191 2010-09-03  Richard Guenther  <rguenther@suse.de>
15192
15193         * lto-streamer-out.c (output_function): Output function
15194         start and end loci.
15195         * lto-streamer-in.c (input_function): Input function start
15196         and end loci.
15197
15198 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15199
15200         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
15201         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
15202         * configure: Regenerate.
15203         * aclocal.m4: Regenerate.
15204
15205 2010-09-03  Jan Hubicka  <jh@suse.cz>
15206
15207         PR lto/44812
15208         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
15209         on functions/variables in other partition.
15210
15211 2010-09-03  Jan Hubicka  <jh@suse.cz>
15212
15213         * cgraph.h (struct varpool_node): Add const_value_known.
15214         (varpool_decide_const_value_known): Declare.
15215         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
15216         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
15217         (input_varpool_node): Restore const_value_known.
15218         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
15219         initializer folding.
15220         * ipa.c (ipa_discover_readonly_nonaddressable_var,
15221         function_and_variable_visibility): Compute const_value_known.
15222         * gimple-fold.c (get_symbol_constant_value): Use varpool for
15223         initializer folding.
15224         * varpool.c (varpool_decide_const_value_known): New function.
15225
15226 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
15227
15228         * config/i386/i386.md: Remove empty preparation statements
15229         from splitters.
15230
15231 2010-09-03  Jan Hubicka  <jh@suse.cz>
15232
15233         * passes.c (rest_of_decl_compilation): Do not add local vars into
15234         varpool.
15235         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
15236         static or extern vars are in varpool.
15237         (varpool_finalize_decl): Sanity check that only static vars are
15238         finalized.
15239
15240 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
15241
15242         PR debug/45500
15243         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
15244         not just generic vectors with BLKmode.
15245
15246 2010-09-03  Richard Guenther  <rguenther@suse.de>
15247
15248         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
15249         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
15250         * tree.h (TMR_SYMBOL): Remove.
15251         (TMR_BASE, TMR_OFFSET): Adjust.
15252         (TMR_INDEX2): New.
15253         * alias.c (ao_ref_from_mem): Use TMR_BASE.
15254         * builtins.c (get_object_alignment): Merge TMR_BASE and
15255         TMR_SYMBOL handling.
15256         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
15257         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
15258         handling.  Also allow TARGET_MEM_REF as base address.
15259         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
15260         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
15261         base.  Gimplify TMR_INDEX2.
15262         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
15263         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15264         (get_addr_base_and_unit_offset): Likewise.
15265         * tree-eh.c (tree_could_trap_p): Likewise.
15266         * tree-pretty-print.c (dump_generic_node): Likewise.
15267         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
15268         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
15269         base to index2.
15270         (get_address_description): Reconstruct addres description
15271         from merged TMR_BASE and TMR_INDEX2.
15272         (maybe_fold_tmr): Fold propagated addresses.
15273         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
15274         MEM_REF and TARGET_MEM_REF paths.
15275         (indirect_refs_may_alias_p): Likewise.
15276         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
15277         instead of TMR_SYMBOL.
15278         * tree-ssa-operands.c (get_tmr_operands): Simplify.
15279         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
15280         according to changes ...
15281         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
15282         Split TARGET_MEM_REF into two fields plus the base.
15283         * tree.c (mem_ref_offset): Simplify.
15284         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
15285         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
15286         Strip NOPs when folding MEM_REF addresses.
15287         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
15288         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
15289         (fold_gimple_assign): ... not here.
15290
15291 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
15292
15293         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
15294         * config/mips/mips.c (mips_shift_truncation_mask): New function.
15295         (TARGET_SHIFT_TRUNCATION_MASK): Define.
15296
15297 2010-09-02  Richard Henderson  <rth@redhat.com>
15298
15299         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
15300         instead of readelf in the test.
15301         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
15302         in the .debug_frame section for coff targets.
15303         * configure: Rebuild.
15304
15305 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
15306
15307         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
15308         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
15309         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15310         (m32c_class_likely_spilled_p): Make static. Change argument type to
15311         reg_class_t. Change result type to bool.
15312
15313 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
15314
15315         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
15316         to convert (double)(long) into a single FRIZ instruction or not
15317         when -ffast-math is used.
15318
15319         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
15320         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
15321         or FRIZ instruction if -ffast-math.
15322         * config/rs6000/rs6000.md (friz): Ditto.
15323
15324         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
15325
15326 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15327
15328         * opth-gen.awk (quote, comma): Remove unused variables.
15329
15330 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
15331
15332         * arm.c (arm_override_options): Correct fall-back code to use
15333         SUBTARGET_CPU_DEFAULT.
15334
15335 2010-09-02  Julian Brown  <julian@codesourcery.com>
15336
15337         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
15338         unspecs.
15339         (vcond<mode>, vcondu<mode>): New expanders.
15340         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
15341         comparisons with zero.
15342         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
15343         * config/arm/constraints.md (Dz): New constraint.
15344
15345 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
15346
15347         * target.def (class_likely_spilled_p): New hook.
15348         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
15349         * doc/tm.texi: Regenerate.
15350         * targhooks.c (default_class_likely_spilled_p): New function.
15351         * targhooks.h (default_class_likely_spilled_p): Declare.
15352         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
15353         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
15354         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
15355         Use fixed_reg_set instead of fixed_regs.
15356         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
15357         * calls.c (avoid_likely_spilled_reg): Ditto.
15358         * ira-conflicts.c (ira_build_conflicts): Ditto.
15359         * ira.c (update_equiv_regs): Ditto.
15360         * mode-switching.c (create_pre_exit): Ditto.
15361         * regmove.c (find_matches): Ditto.
15362         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
15363         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
15364         (small_register_class_p): New inline function.
15365         (push_secondary_reload, find_reusable_reload, find_reloads): Use
15366         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
15367
15368         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
15369         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
15370         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15371
15372 2010-09-02  Richard Guenther  <rguenther@suse.de>
15373
15374         PR tree-optimization/44937
15375         PR tree-optimization/45412
15376         * ipa-split.c (split_function): Properly remove PHI nodes.
15377
15378 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15379
15380         * opts.h (struct cl_option): Add warn_message field.
15381         (struct cl_decoded_option): Add warn_message field.
15382         * doc/options.texi (Ignore, Warn): Document.
15383         * opt-functions.awk (needs_state_p): Don't consider aliases or
15384         ignored options to need state saved.
15385         * optc-gen.awk: Handle Warn and Ignore.
15386         * opth-gen.awk: Output OPT_SPECIAL_ignore.
15387         * opts-common.c (decode_cmdline_option): Set warn_message field.
15388         Handle ignored options.
15389         (decode_cmdline_options_to_array, generate_option,
15390         generate_option_input_file): Set warn_message field.
15391         (read_cmdline_option): Generate warnings from warn_message field.
15392         Handle ignored options.
15393         * common.opt (Wunreachable-code, fargument-alias,
15394         fargument-noalias, fargument-noalias-global,
15395         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
15396         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
15397         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
15398         ftree-salias): Mark Ignore.
15399         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
15400         -mintel-syntax and -mno-intel-syntax here.
15401         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
15402         using Warn.
15403         * opts.c (common_handle_option): Don't handle options marked as
15404         ignored.
15405         (enable_warning_as_error): Handle ignored options.
15406
15407 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15408
15409         PR driver/44076
15410         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
15411         alias_target fields.
15412         * opt-functions.awk (opt_sanitized_name): Don't handle
15413         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
15414         * optc-gen.awk: Generate alias fields.
15415         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
15416         Don't generate such constants for aliases.
15417         * opts-common.c (generate_canonical_option): New.
15418         (decode_cmdline_option): Handle aliases.  Use
15419         generate_canonical_option for known options instead of copying the
15420         input option text.
15421         * doc/options.texi (Alias): Document.
15422         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
15423         fstack-check, specs): Mark as aliases.
15424         * gcc.c (driver_handle_option): Canonicalize -L options to joined
15425         arguments.
15426         (driver_handle_option): Don't handle OPT_specs.
15427         * opts.c (common_handle_option): Don't handle options marked as
15428         aliases.
15429         (enable_warning_as_error): Handle aliases.
15430         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
15431         OPT_Wlarger_than_eq.
15432         * tree-optimize.c (tree_rest_of_compilation): Use
15433         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
15434
15435 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15436
15437         * config/i386/i386.md (nonmemory_operand): New mode attribute.
15438         (push memory peephole2): Macroize peepholes using SWI mode iterator.
15439         (move immediate to memory peephole2): Macroize peepholes using
15440         SWI124 mode iterator.
15441         (non-pairable NOT peephole2): Macroize peepholes using SWI124
15442         mode iterator.
15443         (simple lea add peephole2): Macroize peepholes using SWI48
15444         mode iterator.
15445         (simple lea mult peephole2): Ditto.
15446         (imul by 3,5,9 to lea peephole2): Ditto.
15447         (mov $-1, reg peephole2): Macroize peepholes using SWI248
15448         mode iterator.
15449         (imul $32bit_imm,mem,reg peephole2): Ditto.
15450         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
15451
15452 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
15453
15454         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
15455
15456 2010-09-02  Olivier Hainque  <hainque@adacore.com>
15457
15458         PR middle-end/44763
15459         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
15460         (allocno_priority_compare_func): Use it instead of a straight
15461         difference computation over priorities.
15462
15463 2010-09-02  Andi Kleen  <ak@linux.intel.com>
15464
15465         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
15466
15467 2010-09-02  Ira Rosen  <irar@il.ibm.com>
15468
15469         * tree-vectorizer.h (get_later_stmt): New function.
15470         (vect_analyze_data_ref_dependences): Add argument.
15471         * tree-vect-loop.c (vect_analyze_loop): Update call to
15472         vect_analyze_data_ref_dependences.
15473         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
15474         New function.
15475         (vect_analyze_data_ref_dependence): Add argument for basic block
15476         dependencies. Check dependencies in basic block vectorization.
15477         (vect_analyze_data_ref_dependences): Add argument and update call to
15478         vect_analyze_data_ref_dependences.
15479         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
15480         (vect_bb_vectorizable_with_dependencies): New.
15481         (vect_slp_analyze_bb): Check dependencies in basic block.
15482         (vect_schedule_slp_instance): Insert stores before the last store in
15483         SLP instance.
15484
15485 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15486
15487         PR target/45476
15488         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
15489         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
15490
15491 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
15492
15493         PR middle-end/45458
15494         * bb-reorder.c (add_labels_and_missing_jumps): Treat
15495         bbs ending with throwing insns like blocks ending with a call.
15496         (fix_up_fall_thru_edges): Likewise.
15497
15498 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
15499
15500         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
15501         (m32c_function_arg_advance): Delete.
15502         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15503         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
15504         comments.  Take a const_tree and a bool.  Declare.
15505         (m32c_function_arg_advance): Likewise.
15506         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15507
15508 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15509
15510         PR target/45476
15511         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
15512         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
15513         * config/i386/mingw32.h: ... here.
15514
15515 2010-09-01  Andi Kleen  <ak@linux.intel.com>
15516
15517         PR lto/45475
15518         * lto-streamer-in.c (lto_input_ts_target_option): Add.
15519         (lto_input_tree_pointers): Call lto_input_ts_target_option.
15520         * lto-streamer-out (lto_output_ts_target_option): Add.
15521         (lto_output_tree_pointers): Call lto_output_ts_target_option.
15522
15523 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
15524
15525         PR/target 45452
15526         * config/i386/cygwin.h: Change order of specified import libraries.
15527         * config/i386/mingw32.h: Likewise.
15528         * config/i386/t-cygwin: Likewise.
15529         * config/i386/t-mingw32: Likewise.
15530         * config/i386/t-mingw-w32: Likewise.
15531         * config/i386/t-mingw-w64: Likewise.
15532
15533 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15534
15535         * config/arm/neon-schedgen.ml (core): New type.
15536         (allCores): List of supported cores.
15537         (availability_table): Add supported cores.
15538         (collate_bypasses): Accept core as a parameter.
15539         (worst_case_latencies_and_bypasses): Accept core as a parameter.
15540         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
15541         and coreStr to get tune attribute and prefix for functional units.
15542         (emit_bypasses): Accept core name and use it.
15543         (calculate_per_core_availability_table): New.
15544         (filter_core): New.
15545         (calculate_core_availability_table): New.
15546         (main): Use calculate_core_availablity_table.
15547         * config/arm/cortex-a8-neon.md: Update copyright year.
15548         Regenerated from ml file and merged in.
15549         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
15550         cortex_a8_neon_mrc.
15551
15552 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
15553
15554         * Makefile.in (tree-switch-conversion.o): Update dependencies.
15555
15556 2010-09-01  Richard Guenther  <rguenther@suse.de>
15557
15558         * alias.c (ao_ref_from_mem): Adjust.
15559         * builtins.c (get_object_alignment): Likewise.
15560         * cfgexpand.c (expand_debug_expr): Likewise.
15561         * gimple.c (get_base_address): Likewise.
15562         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15563         (get_addr_base_and_unit_offset): Likewise.  Fix for
15564         both TMR_SYMBOL and TMR_BASE being set.
15565         * tree-eh.c (tree_could_trap_p): Likewise.
15566         * gimplify.c (gimplify_expr): Do not attempt to gimplify
15567         TMR_SYMBOL.  Always gimplify TMR_BASE.
15568         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15569         TMR_BASE if there is a TMR_SYMBOL.
15570         * tree-pretty-print.c (dump_generic_node): Adjust.
15571         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
15572         (tree_mem_ref_addr): Likewise.
15573         (create_mem_ref_raw): Likewise.
15574         (move_fixed_address_to_symbol): Likewise.
15575         (create_mem_ref): Likewise.
15576         (dump_mem_address): Likewise.
15577         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
15578         Fix for both TMR_SYMBOL and TMR_BASE being set.
15579         (indirect_refs_may_alias_p): Likewise.
15580         * tree-ssa-operands.c (get_tmr_operands): Adjust.
15581         * tree.def (TARGET_MEM_REF): Adjust documentation.
15582
15583 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15584
15585         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
15586         Rename from X86_TUNE_ADD_ESP_4.
15587         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
15588         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
15589         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
15590         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
15591         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
15592         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
15593         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
15594         * config/i386/i386.c (initial_ix86_tune_features)
15595         <X86_TUNE_SINGLE_POP>: Invert members.
15596         <X86_TUNE_DOUBLE_POP>: Ditto.
15597         <X86_TUNE_SINGLE_PUSH>: Ditto.
15598         <X86_TUNE_DOUBLE_PUSH>: Ditto.
15599         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
15600         No longer exported.
15601         (push peephole2 patterns): Macroize peepholes using P mode iterator.
15602         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
15603         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
15604         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
15605
15606 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
15607
15608         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
15609         a volatile LHS if the constructor has only one element.
15610
15611 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
15612
15613         PR bootstrap/45321
15614         * tree.c (stdarg_p): Make fntype parameter const.
15615         * tree.h (stdarg_p): Likewise.
15616         (function_args_iterator): Remove unused fntype field.
15617         (function_args_iter_init): Do not initialize fntype
15618         field.  Make fntype parameter const.
15619
15620 2010-09-01  Richard Guenther  <rguenther@suse.de>
15621
15622         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
15623         estimate.
15624         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
15625         (execute_vrp): Compute number of iteration estimates.
15626         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
15627         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
15628         * tree-data-ref.c (estimated_loop_iterations): Adjust.
15629         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
15630         Infer loop bounds from undefined behavior based on a new parameter.
15631         (estimate_numbers_of_iterations): Likewise.
15632         (scev_probably_wraps_p): Adjust.
15633         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
15634
15635 2010-09-01  Nick Clifton  <nickc@redhat.com>
15636
15637         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
15638         where appropriate.
15639         (xstormy16_legitimate_address_p): Use true and false instead of 1
15640         and 0.
15641         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
15642         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
15643         magic constant 2.
15644         (xstormy16_expand_call): Fix comment at start of function.
15645
15646 2010-09-01  Nick Clifton  <nickc@redhat.com>
15647
15648         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
15649         when pushing accumulator register.
15650         (rx_get_stack_layout): Always save call clobbered registers inside
15651         interrupt handlers.
15652         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
15653
15654 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15655
15656         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
15657         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
15658
15659         * libgcc-std.ver (GCC_4.6.0): Define version.
15660
15661 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15662
15663         * tree-nested.c (convert_all_function_calls): Iterate until after the
15664         sum of static chains in the nest doesn't change.
15665
15666 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
15667
15668         * config/m32c/m32c.c (classes_intersect): Remove.
15669         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
15670         reg_classes_intersect_p instead of classes_intersect.
15671         (class_can_hold_mode): Change arguments type from enum reg_class to
15672         reg_class_t.  Use reg_class_contents instead of class_contents.
15673         (m32c_register_move_cost): Make static. Change arguments type from
15674         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
15675         classes_intersect. Use reg_class_contents instead of class_contents.
15676         (m32c_memory_move_cost): Make static. Change arguments type from
15677         enum reg_class to reg_class_t.
15678         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15679         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15680         * config/m32c/m32c-protos.h (m32c_register_move_cost,
15681         m32c_memory_move_cost): Remove.
15682
15683 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15684
15685         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
15686         (arm_function_arg): Delete.
15687         (arm_needs_doubleword_align): Take a const_tree.
15688         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15689         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
15690         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
15691         (arm_function_arg): Make static.  Take a const_tree and a bool.
15692         (arm_function_arg_advance): Likewise.
15693         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15694
15695 2010-08-31  Andi Kleen  <ak@linux.intel.com>
15696
15697         * common.opt (fwhopr=): Update for -fwhopr=jobserver
15698         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
15699         * lto-wrapper.c (run_gcc): Add jobserver mode.
15700         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
15701         argument.
15702
15703 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
15704
15705         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
15706         (popsi1): Ditto.
15707         (*popdi1_epilogue): Ditto.
15708         (*popsi1_epilogue): Ditto.
15709         (popsi, popdi peephole2 patterns): Update peepholes for changed
15710         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
15711
15712         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
15713         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
15714
15715         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
15716         (override_options): Do not initialize removed ix86_gen_pop1.
15717         (gen_pop): New static function.
15718         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
15719         (release_scratch_register_on_entry): Ditto.
15720         (ix86_restore_reg_using_pop): Ditto.
15721         (ix86_expand_epilogue): Ditto.
15722
15723 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
15724
15725         PR middle-end/45461
15726         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
15727
15728 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15729
15730         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
15731         semicolons.
15732
15733 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15734
15735         * doc/extend.texi: Fix documentation of the return value of
15736         __builtin_choose_expr.
15737
15738 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15739
15740         * config/v850/v850-protos.h (function_arg): Delete.
15741         * config/v850/v850.h (FUNCTION_ARG): Delete.
15742         (FUNCTION_ARG_ADVANCE): Move code to...
15743         * config/v850/v850.c (v850_function_arg_advance): ...here.
15744         (v850_function_arg): Make static.  Take a const_tree and a bool.
15745         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15746
15747 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15748
15749         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
15750         these...
15751         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15752         ...and these...
15753         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
15754         ..to here..
15755         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15756         ...and here.
15757         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15758
15759 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15760
15761         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
15762         Delete.
15763         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15764         * config/rx/rx.c (rx_function_arg_size): Make static.
15765         (rx_function_arg): Likewise.
15766         (rx_function_arg_advance): New function.
15767         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15768
15769 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
15770
15771         * config/arm/arm.c (arm_override_options): Remove superfluous test.
15772         Fix indentation.
15773
15774 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15775
15776         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
15777         (dwarf2out_decl) <CONST_DECL>: Likewise.
15778
15779 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
15780
15781         Stack usage support
15782         * common.opt (-fstack-usage): New option.
15783         * doc/invoke.texi (Debugging options): Document it.
15784         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
15785         allocate_dynamic_stack_space.
15786         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
15787         and propagate it to allocate_dynamic_stack_space.
15788         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
15789         * calls.c (initialize_argument_information): Pass TRUE as 4th
15790         argument to allocate_dynamic_stack_space.
15791         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
15792         to 1 when pushing a variable-sized argument onto the stack.  Pass
15793         TRUE as 4th argument to allocate_dynamic_stack_space.
15794         Update current_function_pushed_stack_size.
15795         (emit_library_call_value_1): Likewise.
15796         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
15797         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
15798         attempt to find an upper bound.  Remove redundant code for the
15799         SETJMP_VIA_SAVE_AREA case.
15800         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
15801         * function.h (struct stack_usage): New structure.
15802         (current_function_static_stack_size): New macro.
15803         (current_function_dynamic_stack_size): Likewise.
15804         (current_function_pushed_stack_size): Likewise.
15805         (current_function_dynamic_alloc_count): Likewise.
15806         (current_function_has_unbounded_dynamic_stack_size): Likewise.
15807         (current_function_allocates_dynamic_stack_space): Likewise.
15808         (struct function): Add new field 'su'.
15809         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
15810         add the value of the dynamic offset to the dynamic stack usage.
15811         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
15812         for variable-sized objects.
15813         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
15814         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
15815         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
15816         BUILT_IN_ALLOCA for variable-sized objects.
15817         * output.h (output_stack_usage): Declare.
15818         * toplev.c (stack_usage_file): New file pointer.
15819         (output_stack_usage): New function.
15820         (open_auxiliary_file): Likewise.
15821         (lang_dependent_init): Open file if flag_stack_usage is set.
15822         (finalize): Close file if stack_usage_file is not null.
15823         * tree.h (ALLOCA_FOR_VAR_P): New macro.
15824         * config/alpha/alpha.c (compute_frame_size): New function.
15825         (alpha_expand_prologue): Use it.
15826         (alpha_start_function): Likewise.
15827         (alpha_expand_epilogue): Likewise.  Set stack usage info.
15828         * config/i386/i386.c (ix86_expand_prologue): Likewise.
15829         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
15830         * config/mips/mips.c (mips_expand_prologue): Likewise.
15831         * config/pa/pa.c (hppa_expand_prologue): Likewise.
15832         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
15833         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
15834
15835 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
15836
15837         PR tree-optimization/45427
15838         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
15839         Handle the case that the exit is never taken correctly.
15840         (number_of_iterations_ne): Pass exit_must_be_taken to
15841         number_of_iterations_ne_max.
15842
15843 2010-08-30  Catherine Moore  <clm@codesourcery.com>
15844
15845         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
15846         Infer -mdspr2 for the the 74K.
15847
15848 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
15849
15850         PR debug/45419
15851         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
15852
15853         PR middle-end/45423
15854         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
15855         and TRUTH_{AND,OR,XOR}_EXPR.
15856         * c-parser.c (c_parser_omp_atomic): Handle boolean
15857         {PRE,POST}_{INC,DEC}REMENT.
15858
15859 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
15860
15861         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
15862         (function_arg): Delete.
15863         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15864         (FUNCTION_INCOMING_ARG): Delete.
15865         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
15866         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
15867         and a bool.
15868         (function_arg): Rename to...
15869         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
15870         a bool.
15871         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
15872         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15873         (TARGET_FUNCTION_INCOMING_ARG): Define.
15874
15875 2010-08-30  Richard Guenther  <rguenther@suse.de>
15876
15877         PR tree-optimization/21602
15878         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
15879         using points-to information.
15880
15881 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
15882
15883         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
15884
15885 2010-08-30  Richard Guenther  <rguenther@suse.de>
15886
15887         PR tree-optimization/45449
15888         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
15889         variables.
15890
15891 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
15892
15893         * opts.h (CL_ERR_NEGATIVE): Define.
15894         * opts.c (unknown_option_callback): Don't postpone warnings for
15895         options marked with CL_ERR_NEGATIVE.
15896         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
15897         for negative versions of CL_REJECT_NEGATIVE options.
15898
15899 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
15900
15901         * config/i386/i386.md (zero_extendsidi2_1): Rename from
15902         zero_extendsidi2_32.
15903         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
15904         using SWI12 mode iterator.
15905         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
15906         to define_insn_and_split pattern.
15907         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
15908         using SWI24 mode iterator.
15909         (*zero_extendqi<mode>2_and): Macroize insn from
15910         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
15911         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
15912         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
15913         SWI24 mode iterator.
15914         (*zero_extendqi<mode>2_movzbl): Ditto from
15915         *zero_extendqi{hi,si}2_movzbl.
15916         (extendsidi2_1): Rename from extendsidi2_32.
15917         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
15918         SWI12 mode iterator.
15919
15920 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
15921
15922         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
15923         general purpose registers.
15924         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
15925         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
15926         with general purpose registers and memory operands.  Add associated
15927         CCImode post-reload splitter.
15928         * config/ia64/div.md: Change BImode to CCImode throughout.
15929
15930 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
15931
15932         * config/ia64/ia64.md (cstorebi4): Fix thinko.
15933
15934 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
15935
15936         * config/picochip/picochip.c (reorder_var_tracking_notes): This
15937         function was dropping debug insns which caused PR45299.
15938
15939 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
15940
15941         * config/i386/sse.md (extsuffix): New code attribute.
15942         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
15943         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
15944         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
15945         and sse4_1_zero_extendv4qiv4si2.
15946         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
15947         and sse4_1_zero_extendv2qiv2di2.
15948         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
15949         and sse4_1_zero_extendv4hiv4si2.
15950         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
15951         and sse4_1_zero_extendv2hiv2di2.
15952         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
15953         and sse4_1_zero_extendv2siv2di2
15954
15955         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
15956         using any_extend code iterator.
15957         (*avx_<s>mulv8hi3_highpart): Macroize insn from
15958         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
15959         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
15960
15961         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
15962         gen_sse4_1_sign_extend* functions.
15963         (struct builtin_description bdesc_args): Ditto.
15964
15965 2010-08-27  Xinliang David Li  <davidxl@google.com>
15966
15967         PR/45422
15968         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
15969         (iv_ca_set_no_cp): Update used inv expr count.
15970         (iv_ca_set_cp): Ditto.
15971         (iv_ca_new): Initialize new member.
15972         (iv_ca_free): Free memory.
15973
15974 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
15975
15976         * config/sh/sh-protos.h (sh_function_arg): Delete.
15977         (sh_function_arg_advance): Delete.
15978         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15979         (PASS_IN_REG_P): Eliminate cast.
15980         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
15981         const_tree and a bool.
15982         (sh_function_arg): Likewise.
15983         (sh_output_mi_thunk): Call sh_function_arg_advance) and
15984         sh_function_arg.
15985         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15986
15987 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
15988             Kaz Kojima  <kkojima@gcc.gnu.org>
15989
15990         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
15991         when possible.
15992         (sh_expand_epilogue): Likewise.
15993         * config/sh/sh.md (movml_push_banked): New insn.
15994         (movml_pop_banked): Likewise.
15995
15996 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
15997
15998         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
15999         gen_regexp_oneof, gen_regexp_sequence): Use the string found
16000         in vector element 0 rather than the original string when there's
16001         only one element.
16002         (gen_regexp): Remove extra semicolon.
16003
16004         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
16005         thumb2_movsf_vfp): Set attribute "insn".
16006         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
16007         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
16008         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
16009         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
16010         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
16011         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
16012         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
16013         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
16014         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
16015         if_not_arith, if_arith_not, cond_move_not): Likewise.
16016
16017 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16018
16019         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
16020         New declaration.
16021         (rs6000_allocate_stack_temp): Ditto.
16022         (rs6000_expand_convert_si_to_sfdf): Ditto.
16023
16024         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
16025         line.  Update the options set if power6 or power7 server/embedded
16026         type options are used.  If we give a warning for no vsx under
16027         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
16028         (rs6000_allocate_stack_temp): New function to allocate a stack
16029         tempoary and adjust the address so it meets either REG+OFFSET or
16030         REG+REG addressing requirements.
16031         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
16032         that they can be used with the LFIWAX/LFIWZX instrucitons.
16033         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
16034         converting signed/unsigned SImode to either SFmode/DFmode.
16035
16036         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
16037         whether certain instructions can be generated.
16038         (TARGET_FCTIDZ): Ditto.
16039         (TARGET_STFIWX): Ditto.
16040         (TARGET_LFIWAX): Ditto.
16041         (TARGET_LFIWZX): Ditto.
16042         (TARGET_FCFIDS): Ditto.
16043         (TARGET_FCFIDU): Ditto.
16044         (TARGET_FCFIDUS): Ditto.
16045         (TARGET_FCTIDUZ): Ditto.
16046         (TARGET_FCTIWUZ): Ditto.
16047
16048         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
16049         (UNSPEC_FCTID): Ditto.
16050         (UNSPEC_LFIWAX): Ditto.
16051         (UNSPEC_LFIWZX): Ditto.
16052         (UNSPEC_FCTIWUZ): Ditto.
16053         (rreg): Use correct constraints.
16054         (SI_CONVERT_FP): New mode attribute for floating point conversion
16055         tests.
16056         (E500_CONVERT): Ditto.
16057         (lfiwax): New insns for converting from integer to floating point
16058         utilizing newer instructions.  Attempt to optimize conversions
16059         that come from memory so that we don't load the value into a GPR,
16060         spill it to the stack and reload it into a FPR.
16061         (floatsi<mode>2_lfiwax): Ditto.
16062         (floatsi<mode>2_lfiwax_mem): Ditto.
16063         (floatsi<mode>2_lfiwax_mem2): Ditto.
16064         (lfiwzx): Ditto.
16065         (floatunssi<mode>2_lfiwzx): Ditto.
16066         (floatunssi<mode>2_lfiwzx_mem): Ditto.
16067         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
16068         (floatdidf2_mem): Ditto.
16069         (floatunsdidf2_fcfidu): Ditto.
16070         (floatunsdidf2_mem): Ditto.
16071         (floatunsdisf2): Ditto.
16072         (floatunsdisf2_fcfidus): Ditto.
16073         (floatunsdisf2_mem): Ditto.
16074         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
16075         Use FCFID on 32-bit hosts that support it.
16076         (floatsidf2_internal): Ditto.
16077         (floatunssisf2): Ditto.
16078         (floatunssidf2): Ditto.
16079         (floatunssidf2_internal): Ditto.
16080         (floatsisf2): Ditto.
16081         (floatdidf2): Ditto.
16082         (floatdidf2_fpr): Ditto.
16083         (floatunsdidf2): Ditto.
16084         (floatdisf2): Ditto.
16085         (floatdisf2_fcfids): Ditto.
16086         (floatdisf2_internal1): Ditto.
16087         (fixuns_truncsfsi2): Delete, merge into common pattern for both
16088         SF/DF.  Add power7 support.
16089         (fix_truncsfsi2): Ditto.
16090         (fixuns_truncdfsi2): Ditto.
16091         (fixuns_truncdfdi2): Ditto.
16092         (fix_truncdfsi2): Ditto.
16093         (fix_truncdfsi2_internal): Ditto.
16094         (fix_truncdfsi2_internal_gfxopt): Ditto.
16095         (fix_truncdfsi2_mfpgpr): Ditto.
16096         (fctiwz): Ditto.
16097         (btruncdf2): Ditto.
16098         (btruncdf2_fpr): Ditto.
16099         (btructsf2): Ditto.
16100         (ceildf2): Ditto.
16101         (ceildf2_fpr): Ditto.
16102         (ceilsf2): Ditto.
16103         (floordf2): Ditto.
16104         (floordf2_fpr): Ditto.
16105         (floorsf2): Ditto.
16106         (rounddf2): Ditto.
16107         (rounddf2_fpr): Ditto.
16108         (roundsf2): Ditto.
16109         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
16110         (fix_trunc<mode>di2): Ditto.
16111         (fixuns_trunc<mode>si2): Ditto.
16112         (fixuns_trunc<mode>di2): Ditto.
16113         (fctiwz_<mode>): Ditto.
16114         (btrunc<mode>2): Ditto.
16115         (btrunc<mode>2_fpr): Ditto.
16116         (ceil<mode>2): Ditto.
16117         (ceil<mode>2_fpr): Ditto.
16118         (floor<mode>2): Ditto.
16119         (float<mode>2_fpr): Ditto.
16120         (round<mode>2): Ditto.
16121         (round<mode>2_fpr): Ditto.
16122         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
16123         (fixuns_trunc<mode>si2_stfiwx): Ditto.
16124         (fix_truncdfsi2_internal): Ditto.
16125         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
16126         converted value on stack, loaded into GPR, and then stored into
16127         the final destination.
16128         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
16129         FCTIDZ.
16130         (lrint<mode>di2): New insn, provide the lrint builtin functions.
16131         (ftruncdf2): Delete, unused.
16132         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
16133
16134         * config/rs6000/vsx.md (toplevel): Update copyright year.
16135         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
16136         (VSr3): Ditto.
16137
16138 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
16139             Jeremie Salvucci  <jeremie.salvucci@free.fr>
16140
16141         * gengtype.c (output_type_enum): Test the right union member.
16142
16143 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
16144
16145         PR target/41484
16146         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
16147         operands for operand 1.
16148         (sse4_1_extendv4qiv4si2): Ditto.
16149         (sse4_1_extendv2qiv2di2): Ditto.
16150         (sse4_1_extendv4hiv4si2): Ditto.
16151         (sse4_1_extendv2hiv2di2): Ditto.
16152         (sse4_1_extendv2siv2di2): Ditto.
16153         (sse4_1_zero_extendv8qiv8hi2): Ditto.
16154         (sse4_1_zero_extendv4qiv4si2): Ditto.
16155         (sse4_1_zero_extendv2qiv2di2): Ditto.
16156         (sse4_1_zero_extendv4hiv4si2): Ditto.
16157         (sse4_1_zero_extendv2hiv2di2): Ditto.
16158         (sse4_1_zero_extendv2siv2di2): Ditto.
16159         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
16160         (*sse4_1_extendv4qiv4si2): Ditto.
16161         (*sse4_1_extendv2qiv2di2): Ditto.
16162         (*sse4_1_extendv4hiv4si2): Ditto.
16163         (*sse4_1_extendv2hiv2di2): Ditto.
16164         (*sse4_1_extendv2siv2di2): Ditto.
16165         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
16166         (*sse4_1_zero_extendv4qiv4si2): Ditto.
16167         (*sse4_1_zero_extendv2qiv2di2): Ditto.
16168         (*sse4_1_zero_extendv4hiv4si2): Ditto.
16169         (*sse4_1_zero_extendv2hiv2di2): Ditto.
16170         (*sse4_1_zero_extendv2siv2di2): Ditto.
16171
16172 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
16173
16174         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
16175         (mips_function_arg): Delete.
16176         (mips_function_arg_boundary): Take a const_tree.
16177         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
16178         (mips_arg_info): Likewise.
16179         (mips_setup_incoming_varargs): Call mips_function_arg_advance
16180         instead of FUNCTION_ARG_ADVANCE.
16181         (mips_function_arg_advance): Adjust prototype.  Make static.
16182         (mips_function_arg): Likewise.
16183         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16184         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
16185
16186 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
16187
16188         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
16189         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
16190         (function_arg): Delete.
16191         (function_arg_boundary): Take a const_tree.
16192         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
16193         (rs6000_spe_function_arg): Likewise.
16194         (rs6000_parm_start): Likewise.
16195         (rs6000_arg_size): Likewise.
16196         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
16197         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
16198         (rs6000_mixed_function_arg): Likewise.
16199         (function_arg): Rename to...
16200         (rs6000_function_arg): ...this.
16201         (function_arg_advance): Rename to...
16202         (rs6000_function_arg_advance_1): ...this
16203         (rs6000_function_arg_advance): New function.  Call it.
16204         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
16205         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
16206         (rs6000_function_value): Likewise.
16207         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16208
16209 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16210
16211         * config/arm/arm.md (enabled): Test the value of arch_enabled
16212         rather than just using it.
16213
16214 2010-08-27  Olivier Hainque  <hainque@adacore.com>
16215             Eric Botcazou  <ebotcazou@adacore.com>
16216
16217         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
16218         cover all the possible offsets from this base.
16219         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
16220
16221 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
16222
16223         PR tree-optimization/44485
16224         * calls.c (flags_from_decl_or_type): For const or pure
16225         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
16226         together with ECF_CONST resp. ECF_PURE.
16227         * builtins.c (expand_builtin): Use flags_from_decl_or_type
16228         instead of querying flags directly.
16229         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
16230         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
16231
16232 2010-08-26  Richard Guenther  <rguenther@suse.de>
16233
16234         PR tree-optimization/45255
16235         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
16236         and externals are also invariant.
16237
16238 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
16239
16240         PR rtl-optimization/44858
16241         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
16242         newi2pat, make sure they don't affect newpat.
16243
16244         PR rtl-optimization/45400
16245         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
16246         SUBREG_REG if both modes are of MODE_INT class.
16247
16248 2010-08-25  Julian Brown  <julian@codesourcery.com>
16249
16250         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
16251         * config/arm/arm.md (generic_sched): No for Cortex-A5.
16252         (generic_vfp): Likewise.
16253         (cortex-a5.md): Include.
16254         * config/arm/cortex-a5.md: New.
16255
16256 2010-08-25  Richard Guenther  <rguenther@suse.de>
16257
16258         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
16259         * gimple.c (gimple_get_alias_set): Remove special handling
16260         for pointers.
16261
16262 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
16263
16264         PR middle-end/45355
16265         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
16266         dead_or_set_p when computing i0_feeds_i2_n.
16267
16268         * combine.c (find_split_point): Undo canonicalization of multiply-add
16269         to (minus x (mult)) when it seems likely that this will increase the
16270         chances of a split.
16271
16272 2010-08-25  Richard Guenther  <rguenther@suse.de>
16273
16274         PR lto/44562
16275         * lto-streamer.c (lto_record_common_node): Do not mess with
16276         TYPE_CANONICAL when not in lto.
16277         * gimple.c (gimple_register_type): Likewise.
16278
16279 2010-08-25  Richard Guenther  <rguenther@suse.de>
16280
16281         PR tree-optimization/45316
16282         * tree-ssa-pre.c (eliminate): Properly clean EH info.
16283
16284 2010-08-25  Richard Guenther  <rguenther@suse.de>
16285
16286         PR tree-optimization/45393
16287         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
16288         and clean EH info.  Avoid SSA update.
16289         (execute_cse_sincos): Cleanup the CFG if it has changed.
16290
16291 2010-08-25  Richard Guenther  <rguenther@suse.de>
16292
16293         PR middle-end/45379
16294         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
16295         TARGET_MEM_REF in alignment computation.
16296
16297 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
16298
16299         PR tree-optimization/45059
16300         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
16301         type conversions from newop{1,2}.  Assert t is a comparison and
16302         newop{1,2} after the stripping are gimple vals.
16303
16304 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
16305
16306         * config/arm/iterators.md (VU, SE, V_widen_l): New.
16307         (V_unpack, US): New.
16308         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
16309         (vec_unpack<US>_lo_<mode>): Likewise.
16310         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
16311         (neon_vec_unpack<US>_lo_<mode>): Likewise.
16312         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
16313         (vec_widen_<US>mult_hi_<mode>): Likewise.
16314         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
16315         (neon_vec_<US>mult_hi_<mode>"): Likewise.
16316         (neon_unpack<US>_<mode>): Widening move intermediate step for
16317         vectorizing without -mvectorize-with-neon-quad.
16318         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
16319         for vectorizing without -mvectorize-with-neon-quad.
16320         * config/arm/predicates.md (vect_par_constant_high): Check for
16321         high-half lanes of a vector.
16322         (vect_par_constant_low): Check for low-half lanes of a vector.
16323
16324 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16325
16326         * tree-if-conv.c (struct ifc_dr): New.
16327         (IFC_DR): New.
16328         (DR_WRITTEN_AT_LEAST_ONCE): New.
16329         (DR_RW_UNCONDITIONALLY): New.
16330         (memref_read_or_written_unconditionally): Use the cached values
16331         when possible.
16332         (write_memref_written_at_least_once): Same.
16333         (if_convertible_loop_p): Initialize and free DR->aux fields.
16334
16335 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16336
16337         * gimple.c (gimple_could_trap_p_1): Not static anymore.
16338         Pass an extra bool parameter include_mem.
16339         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
16340         (gimple_assign_rhs_could_trap_p): Same.
16341         * gimple.h (gimple_could_trap_p_1): Declared.
16342         * tree-data-ref.h (same_data_refs_base_objects): New.
16343         (same_data_refs): New.
16344         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
16345         (write_memrefs_written_at_least_once): New.
16346         (ifcvt_memrefs_wont_trap): New.
16347         (operations_could_trap): New.
16348         (ifcvt_could_trap_p): New.
16349         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
16350         Gets a vector of data refs.
16351         (if_convertible_stmt_p): Same.
16352         (if_convertible_loop_p_1): New.
16353         (if_convertible_loop_p): Call if_convertible_loop_p_1.
16354
16355 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16356
16357         * common.opt (ftree-loop-if-convert-stores): New flag.
16358         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
16359         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
16360         the created statement before GSI.
16361         (if_convertible_phi_p): Allow virtual phi nodes when
16362         flag_loop_if_convert_stores is set.
16363         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
16364         Do not handle types that do not match is_gimple_reg_type.
16365         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
16366         when flag_loop_if_convert_stores is set, as LHS can contain
16367         memory refs.
16368         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
16369         to if_convertible_gimple_assign_stmt_p.
16370         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
16371         (replace_phi_with_cond_gimple_assign_stmt): Renamed
16372         predicate_scalar_phi.  Do not handle virtual phi nodes.
16373         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
16374         Call predicate_scalar_phi.
16375         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
16376         just after the labels for flag_loop_if_convert_stores, otherwise
16377         insert the predicate in the end of the BB.
16378         (predicate_mem_writes): New.
16379         (combine_blocks): Call predicate_all_scalar_phis.  When
16380         flag_loop_if_convert_stores is set, call predicate_mem_writes.
16381         (tree_if_conversion): Call mark_sym_for_renaming when
16382         flag_loop_if_convert_stores is set.
16383         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
16384         flag_loop_if_convert_stores is set.
16385
16386 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
16387
16388         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
16389         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
16390         (pa_function_value): Make static.
16391         (override_options): Rename to...
16392         (pa_option_override): ...this. Make static.
16393         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
16394         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
16395         TARGET_OPTION_OVERRIDE): Define.
16396         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
16397         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
16398         Remove.
16399         * config/pa/pa-protos.h (override_options): Remove.
16400
16401 2010-08-24  Richard Guenther  <rguenther@suse.de>
16402
16403         PR middle-end/45379
16404         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
16405         if addr->index is NULL or zero.
16406         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
16407         TARGET_MEM_REF more properly.
16408         (indirect_ref_may_alias_decl_p): Likewise.
16409         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
16410         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
16411
16412 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
16413
16414         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
16415         (m32c_override_options): Rename to...
16416         (m32c_option_override): ...this. Make static.
16417         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
16418         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
16419         Remove.
16420         * config/m32c/m32c-protos.h (m32c_override_options,
16421         m32c_function_value_regno_p): Remove.
16422
16423 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16424
16425         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
16426         Fix a typo in a previous commit.
16427
16428 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
16429
16430         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
16431         Pre-initialize innerloop_iters to one.
16432
16433 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16434
16435         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
16436         existing static function global.
16437
16438         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
16439         is changed to global.
16440
16441         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
16442         may_be_nonaddressable_p on base, and don't collect this reference
16443         if the address of the base could not be taken.
16444
16445 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16446
16447         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
16448         enable the compiler to autovectorize mathmetical functions for
16449         power7 using the Mathematical Acceleration Subsystem library.
16450
16451         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
16452         handle which vector math library we have.
16453         (rs6000_override_options): Add -mveclibabi=mass support.
16454         (rs6000_builtin_vectorized_libmass): New function to handle auto
16455         vectorizing math functions that are in the MASS library.
16456         (rs6000_builtin_vectorized_function): Call it.
16457
16458         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
16459         -mveclibabi=mass.
16460
16461 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16462
16463         PR boehm-gc/34544
16464         * gthr-posix.h (__gthread_active_init): Delete.
16465         (__gthread_active_p): Do activity check here.
16466         Don't include errno.h on hppa-hpux.  Update comment.
16467         * gthr-posix95.h (__gthread_active_init): Delete.
16468         (__gthread_active_p): Do activity check here.
16469         Don't include errno.h on hppa-hpux.  Update comment.
16470         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
16471         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
16472         add -lpthread when -mt or -pthread is specified.
16473         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
16474         (LINK_GCC_C_SEQUENCE_SPEC): Define.
16475         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
16476         (stublib.c, pthread_default_stacksize_np-stub.o,
16477         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
16478         $(T)libgcc_stub.a): Add methods.
16479         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
16480         (stublib.c, pthread_default_stacksize_np-stub.o,
16481         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
16482         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
16483         pthread_mutex_unlock): New stubs.
16484
16485 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
16486
16487         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
16488         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
16489         options.
16490         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
16491         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
16492         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
16493         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
16494         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
16495         "-l".
16496         * cppspec.c: Include opts.h.
16497         (lang_specific_driver): Use cl_decoded_option structures.
16498         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
16499         * doc/tm.texi: Regenerate.
16500         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
16501         (driver_handle_option): Allow driver options needing no special
16502         processing.
16503         (process_command): Decode options before call to
16504         lang_specific_driver.  Pass decoded options to
16505         lang_specific_driver.
16506         * gcc.h (lang_specific_driver): Update prototype.
16507         * gccspec.c: Include opts.h.
16508         (lang_specific_driver): Use cl_decoded_option structures.
16509         * opts-common.c (option_ok_for_language, generate_option,
16510         generate_option_input_file): New.
16511         (decode_cmdline_option): Use option_ok_for_language.
16512         (decode_cmdline_options_to_array): Use generate_option_input_file.
16513         (handle_generated_option): Use generate_option.
16514         * opts.h (generate_option, generate_option_input_file): Declare.
16515
16516 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
16517
16518         * config/mips/mips.c (mips_override_options): Rename to...
16519         (mips_option_override): ...this. Make static.
16520         (TARGET_OPTION_OVERRIDE): Define.
16521         (mips_in_small_data_p): Update comment.
16522         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
16523         (FIXED_REGISTERS): Update comment.
16524         * config/mips/mips-protos.h (mips_override_options): Remove.
16525
16526 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16527
16528         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
16529
16530 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16531
16532         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
16533         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
16534
16535 2010-08-20  Jan Hubicka  <jh@suse.cz>
16536
16537         * tree-pass.h (pass_ipa_cdtor_merge): New function.
16538         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
16539         heap allocated.
16540         (record_cdtor_fn): Move to ipa.c; do not test for
16541         have_ctors_dtors.
16542         (build_cdtor): Move to ipa.c; add code avoiding construction
16543         when target have ctors/dtors and there is only one ctor/dtor at given
16544         priority.
16545         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
16546         sort; reverse order of constructors.
16547         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
16548         (cgraph_finalize_function): Do not call record_cdtor_fn.
16549         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
16550         (cgraph_build_static_cdtor): Move to ipa.c.
16551         * ipa.c: Include target.h and tree-iterator.h.
16552         (cgraph_build_static_cdtor, static_ctors, static_dtors,
16553         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
16554         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
16555         pass_ipa_cdtor_merge): New.
16556         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
16557         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
16558         bounds access.
16559
16560 2010-08-20  Jan Hubicka  <jh@suse.cz>
16561
16562         PR c++/45307
16563         PR c++/17736
16564         * cgraph.h (cgraph_only_called_directly_p,
16565         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
16566         static cdtors.
16567         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
16568         are not needed.
16569         (cgraph_finalize_function): Static cdtors are reachable.
16570         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
16571
16572 2010-08-20  Jan Hubicka  <jh@suse.cz>
16573
16574         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
16575         flag_wpa.
16576         * lto-streamer-out.c (lto_output): Likewise.
16577         * passes.c (ipa_write_optimization_summaries): Initialize statement
16578         uids.
16579
16580 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16581
16582         * tree.h (alias_diag_flags): New enum.
16583         (alias_pair): Add an 'emitted_diags' field.
16584         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
16585         (assemble_alias): Initialize emitted_diags of new pairs.
16586
16587 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
16588
16589         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
16590         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16591         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16592         (STACK_CHECK_PROTECT): Define.
16593         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
16594         (output_probe_stack_range): Likewise.
16595         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
16596         builtin stack checking is enabled.
16597         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
16598         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
16599         (probe_stack_range): New insn.
16600
16601 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
16602
16603         PR target/45336
16604         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
16605         short first.
16606
16607         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
16608         char first.
16609
16610 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16611
16612         PR target/45336
16613         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
16614         to cover zero extension into 64-bit register.
16615         (*sse2_pextrw): Likewise.
16616         (*sse4_1_pextrd_zext): New insn.
16617
16618 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16619
16620         revert r163410, partially revert r163267.
16621         * config/rs6000/darwin.h (LIB_SPEC): Remove.
16622         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
16623         Darwin versions.
16624
16625 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16626
16627         PR middle-end/44974
16628         * builtins.c (expand_builtin): Don't optimize away
16629         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
16630
16631 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
16632
16633         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
16634         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
16635         alternative 1 of operand 2.
16636
16637 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16638             Paolo Bonzini  <bonzini@gnu.org>
16639
16640         * simplify-rtx.c (simplify_unary_operation_1): Optimize
16641         (sign_extend (zero_extend (...)) and
16642         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
16643
16644 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16645
16646         PR rtl-optimization/45353
16647         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
16648         after bb_note is a BARRIER.
16649
16650 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16651
16652         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
16653         linking libgcc.a.
16654
16655 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16656             Michael Matz  <matz@suse.de>
16657
16658         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
16659
16660 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16661
16662         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
16663         (ggc_mark_roots): ...here.
16664
16665 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16666
16667         * vec.h (FOR_EACH_VEC_ELT): Define.
16668         * c-decl.c: Use it.
16669         * cfgloop.c: Likewise.
16670         * cfgloopmanip.c: Likewise.
16671         * cgraph.c: Likewise.
16672         * cgraphunit.c: Likewise.
16673         * combine.c: Likewise.
16674         * config/bfin/bfin.c: Likewise.
16675         * config/mips/mips.c: Likewise.
16676         * config/rs6000/rs6000.c: Likewise.
16677         * dbxout.c: Likewise.
16678         * df-scan.c: Likewise.
16679         * dominance.c: Likewise.
16680         * dse.c: Likewise.
16681         * dwarf2out.c: Likewise.
16682         * except.c: Likewise.
16683         * expr.c: Likewise.
16684         * function.c: Likewise.
16685         * gcse.c: Likewise.
16686         * genattr.c: Likewise.
16687         * ggc-common.c: Likewise.
16688         * gimplify.c: Likewise.
16689         * graphite-blocking.c: Likewise.
16690         * graphite-clast-to-gimple.c: Likewise.
16691         * graphite-dependences.c: Likewise.
16692         * graphite-interchange.c: Likewise.
16693         * graphite-poly.c: Likewise.
16694         * graphite-scop-detection.c: Likewise.
16695         * graphite-sese-to-poly.c: Likewise.
16696         * graphite.c: Likewise.
16697         * haifa-sched.c: Likewise.
16698         * ifcvt.c: Likewise.
16699         * implicit-zee.c: Likewise.
16700         * ipa-prop.c: Likewise.
16701         * ipa-struct-reorg.c: Likewise.
16702         * ipa.c: Likewise.
16703         * ira-build.c: Likewise.
16704         * ira-color.c: Likewise.
16705         * ira-emit.c: Likewise.
16706         * lambda-code.c: Likewise.
16707         * loop-invariant.c: Likewise.
16708         * loop-unroll.c: Likewise.
16709         * lower-subreg.c: Likewise.
16710         * lto-cgraph.c: Likewise.
16711         * lto-opts.c: Likewise.
16712         * lto-streamer-in.c: Likewise.
16713         * lto-streamer-out.c: Likewise.
16714         * lto-streamer.c: Likewise.
16715         * lto-symtab.c: Likewise.
16716         * matrix-reorg.c: Likewise.
16717         * opts.c: Likewise.
16718         * predict.c: Likewise.
16719         * print-tree.c: Likewise.
16720         * sdbout.c: Likewise.
16721         * sel-sched-dump.c: Likewise.
16722         * sel-sched-ir.c: Likewise.
16723         * sel-sched.c: Likewise.
16724         * sese.c: Likewise.
16725         * stor-layout.c: Likewise.
16726         * tree-cfg.c: Likewise.
16727         * tree-cfgcleanup.c: Likewise.
16728         * tree-chrec.c: Likewise.
16729         * tree-data-ref.c: Likewise.
16730         * tree-emutls.c: Likewise.
16731         * tree-inline.c: Likewise.
16732         * tree-into-ssa.c: Likewise.
16733         * tree-loop-distribution.c: Likewise.
16734         * tree-loop-linear.c: Likewise.
16735         * tree-mudflap.c: Likewise.
16736         * tree-outof-ssa.c: Likewise.
16737         * tree-parloops.c: Likewise.
16738         * tree-predcom.c: Likewise.
16739         * tree-pretty-print.c: Likewise.
16740         * tree-scalar-evolution.c: Likewise.
16741         * tree-ssa-live.c: Likewise.
16742         * tree-ssa-loop-im.c: Likewise.
16743         * tree-ssa-loop-ivcanon.c: Likewise.
16744         * tree-ssa-loop-ivopts.c: Likewise.
16745         * tree-ssa-loop-manip.c: Likewise.
16746         * tree-ssa-loop-niter.c: Likewise.
16747         * tree-ssa-loop-prefetch.c: Likewise.
16748         * tree-ssa-phiprop.c: Likewise.
16749         * tree-ssa-pre.c: Likewise.
16750         * tree-ssa-reassoc.c: Likewise.
16751         * tree-ssa-sccvn.c: Likewise.
16752         * tree-ssa-structalias.c: Likewise.
16753         * tree-ssa.c: Likewise.
16754         * tree-vect-data-refs.c: Likewise.
16755         * tree-vect-loop-manip.c: Likewise.
16756         * tree-vect-loop.c: Likewise.
16757         * tree-vect-patterns.c: Likewise.
16758         * tree-vect-slp.c: Likewise.
16759         * tree-vect-stmts.c: Likewise.
16760         * tree-vrp.c: Likewise.
16761         * tree.c: Likewise.
16762         * value-prof.c: Likewise.
16763         * var-tracking.c: Likewise.
16764         * varasm.c: Likewise.
16765         * vmsdbgout.c: Likewise.
16766
16767 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
16768             Richard Guenther  <richard.guenther@gmail.com>
16769
16770         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
16771         copy the src value and return a copy.
16772         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
16773         (C++ Volatiles): Adjust to describe C++ semantics only.
16774
16775 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
16776
16777         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
16778         be zero or nonzero.
16779         * doc/tm.texi: Regenerate.
16780         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
16781         * df-scan.c (df_get_exit_block_use_set), reginfo.c
16782         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
16783         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
16784         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
16785         to 1.
16786
16787 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16788
16789         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
16790         an extra nop past a sibling call at the very end.
16791
16792 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
16793
16794         PR bootstrap/45350
16795         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
16796         a comment.
16797
16798 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
16799
16800         * target.def (function_arg, function_incoming_arg): Remove const
16801         qualifier on CUMULATIVE_ARGS parameter.
16802         * targhooks.h (default_function_arg, default_function_incoming_arg):
16803         Likewise.
16804         * targhooks.c (default_function_arg, default_function_incoming_arg):
16805         Likewise.
16806         * config/i386/i386.c (ix86_function_arg): Likewise.
16807
16808 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
16809
16810         PR target/45336
16811         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
16812         SIGN_EXTENDs or ZERO_EXTENDs.
16813
16814 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
16815
16816         PR target/42172
16817         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
16818         Take its cost into account if nonnull.
16819         (insn_a_feeds_b): New static function.
16820         (combine_instructions): Look for four-insn combinations.
16821         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
16822         them into account when computing all_adjacent and looking for other
16823         uses.
16824         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
16825         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
16826         (try_combine): New arg I0.  Handle four-insn combinations.
16827         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
16828         like ELIM_I1.
16829
16830 2010-08-19  Jason Merrill  <jason@redhat.com>
16831
16832         PR c++/45307
16833         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
16834         if ctor is empty.
16835         (gimplify_modify_expr_rhs): Adjust.
16836
16837 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
16838
16839         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
16840         bitmap_bit_p.
16841         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
16842         * dominance.c (iterate_fix_dominators): Likewise.
16843         * dse.c (set_usage_bits): Likewise.
16844         (set_position_unneeded, record_store): Likewise.
16845         * gimple-fold.c (get_maxval_strlen): Likewise.
16846         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
16847         * ipa-inline.c (update_caller_keys): Likewise.
16848         * ipa-split.c (verify_non_ssa_vars): Likewise.
16849         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
16850         (close_type_exposed_parameter, close_type_full_escape): Likewise.
16851         (close_addressof_down): Likewise.
16852         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
16853         (setup_allocno_left_conflicts_size): Likewise.
16854         (ira_reassign_conflict_allocnos): Likewise.
16855         (ira_reassign_pseudos): Likewise.
16856         * ira-emit.c (change_loop): Likewise.
16857         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
16858         * lto-streamer-out.c (write_symbol): Likewise.
16859         * predict.c (expr_expected_value_1): Likewise.
16860         * regstat.c (regstat_bb_compute_ri): Likewise.
16861         * sel-sched.c (create_block_for_bookkeeping): Likewise.
16862         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
16863         * stmt.c (expand_case): Likewise.
16864         * tree-eh.c (emit_eh_dispatch): Likewise.
16865         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
16866         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
16867         Likewise.
16868         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
16869         (rdg_build_components): Likewise.
16870         * tree-object-size.c (collect_object_sizes_for): Likewise.
16871         * tree-sra.c (convert_callers): Likewise.
16872         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
16873         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
16874         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
16875
16876 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
16877
16878         * config/i386/i386.md (*lea_1): Use P mode iterator.
16879         (lea add splitter): Also handle DImode operands.
16880         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
16881         predicate.  Do not use ix86_lea_for_add_ok.
16882         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
16883         (lea ashift splitter): Also handle DImode operands.
16884         (DImode lea ashift splitter): Remove splitter.
16885
16886 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
16887
16888         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
16889         ix86_binary_operator_ok.
16890
16891 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
16892
16893         PR rtl-optimization/44691
16894         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
16895         is not a register.
16896
16897 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16898
16899         PR target/45070
16900         * config/arm/arm.c (arm_output_epilogue): Ensure that return
16901          value of size 1-3 is handled correctly.
16902
16903 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
16904
16905         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
16906         type for the conditional has wide enough range.
16907
16908 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
16909
16910         PR target/45327
16911         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
16912         ix86_binary_operator_ok.
16913
16914 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
16915
16916         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
16917         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
16918         code to output insn mnemonic.  Fix comment.
16919         (*addsi_1_zext): Add r-r-0 alternative 1.
16920         <TYPE_LEA>: Split insn to lea.
16921         <default>: Handle alternative 1.
16922         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
16923         multi-level if_then_else RTX to set "type" attribute.
16924         <default>: Handle alternative 2.
16925         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
16926         Use cond RTX instead of multi-level if_then_else RTX to set
16927         "type" attribute.
16928         <default>: Handle alternatives 2 and 4.
16929         (lea splitters): Update calls to ix86_lea_for_add_ok.
16930
16931         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
16932         argument.
16933         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
16934
16935 2010-08-18  Richard Guenther  <rguenther@suse.de>
16936
16937         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
16938         use operand helpers.
16939
16940 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
16941
16942         PR middle-end/45292
16943         * optabs.c (expand_bool_compare_and_swap): Expand pending
16944         pops before trying the optab.
16945
16946 2010-08-18  Yao Qi  <yao@codesourcery.com>
16947
16948         PR target/45094
16949         * config/arm/arm.c (output_move_double): Fix typo generating
16950         instructions ('ldr'->'str').
16951
16952 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16953
16954         PR rtl-optimization/42575
16955         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
16956         live ranges.
16957
16958 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16959
16960         * config/arm/arm-protos.h (arm_expand_sync): New.
16961         (arm_output_memory_barrier, arm_output_sync_insn): New.
16962         (arm_sync_loop_insns): New.
16963         * config/arm/arm.c (FL_ARCH7): New.
16964         (FL_FOR_ARCH7): Include FL_ARCH7.
16965         (arm_arch7): New.
16966         (arm_print_operand): Support %C markup.
16967         (arm_legitimize_sync_memory): New.
16968         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
16969         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
16970         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
16971         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
16972         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
16973         (arm_process_output_sync_insn, arm_output_sync_insn): New.
16974         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
16975         * config/arm/arm.h (struct arm_sync_generator): New.
16976         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
16977         (TARGET_HAVE_MEMORY_BARRIER): New.
16978         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
16979         * config/arm/arm.md: Include sync.md.
16980         (UNSPEC_MEMORY_BARRIER): New.
16981         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
16982         (VUNSPEC_SYNC_OP):New.
16983         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
16984         (sync_result, sync_memory, sync_required_value): New attributes.
16985         (sync_new_value, sync_t1, sync_t2): Likewise.
16986         (sync_release_barrier, sync_op): Likewise.
16987         (length): Add logic to length attribute defintion to call
16988         arm_sync_loop_insns when appropriate.
16989         * config/arm/sync.md: New file.
16990
16991 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
16992
16993         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
16994         ENABLE_TREE_CHECKING.
16995         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
16996         and GCC >= 4.3.
16997
16998 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
16999
17000         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
17001         or optimizing for size, always avoid lea if possible.
17002
17003         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
17004
17005 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
17006
17007         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
17008         Dunmmy function with NULL return unless the target is
17009         OSX >= 10.6 (Darwin10).
17010
17011 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
17012
17013         * gcc.c (spec_function): Add remove-outfile.
17014         (remove_outfile_spec_function): New function.
17015         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
17016         * invoke.texi (replace-outfile): Document.
17017
17018 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
17019
17020         PR target/45296
17021         * reginfo.c (globalize_reg): Reject stack registers.
17022
17023 2010-08-17  Richard Guenther  <rguenther@suse.de>
17024
17025         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
17026         list of conditional equivalences.
17027         (free_all_edge_infos): Adjust.
17028         (record_equivalences_from_incoming_edge): Likewise.
17029         (record_cond): Likewise.
17030         (build_and_record_new_cond): Likewise.
17031         (record_conditions): Likewise.
17032         (dom_opt_leave_block): Likewise.
17033
17034 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
17035
17036         * doc/invoke.texi (ms-extension): Add documentation.
17037
17038 2010-08-17  Richard Guenther  <rguenther@suse.de>
17039
17040         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
17041
17042 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
17043
17044         PR c/40563
17045         * c-decl.c (diagnose_uninitialized_cst_member): New function.
17046         (finish_decl): Use it to issue a -Wc++-compat warning about
17047         uninitialized const field in struct or union.
17048
17049         (finish_struct): Use strip_array_types.
17050
17051 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
17052
17053         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
17054         functions.
17055         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
17056         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
17057         call block_nreverse here.
17058         (blocks_nreverse): Rename decl temporary to block.
17059
17060 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
17061
17062         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
17063         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
17064         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
17065         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
17066         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
17067         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
17068         thumb2_iorsi3): Delete.
17069         (orsi_notsi_si): No longer a named pattern.
17070         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
17071         * config/arm/predicates.md (shift_amount_operand): New.
17072         (mult_operator): New.
17073         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
17074         attr enabled): New.
17075         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
17076         arch matches t2.
17077         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
17078         (not_shiftsi_compare0): Likewise, renamed from
17079         arm_notsi_shiftsi_compare0.
17080         (not_shiftsi_compare0_scratch): Likweise, renamed from
17081         arm_notsi_shiftsi_compare0_scratch.
17082         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
17083         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
17084         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
17085         so that the register alternative is disabled when the shift_operator
17086         is MULT.  Use "M" as the constraint for constants.
17087         (arith_shiftsi splitter): Enable for TARGET_32BIT.
17088         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
17089         constraint for constants.
17090         (arith_shiftsi_compare0_scratch): Likewise.
17091         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
17092         Handle Thumb2 alternative.
17093
17094 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
17095
17096         * doc/options.texi (NoDriverArg): Document.
17097         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
17098         -MDX and -MMDX.
17099         * opt-functions.awk (switch_flags): Handle NoDriverArg.
17100         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
17101         marking for CL_NO_DRIVER_ARG options when in the driver.
17102         * opts.h (CL_NO_DRIVER_ARG): Define.
17103         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
17104         CL_COMMON): Update values.
17105
17106 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
17107
17108         * common.opt: Add driver options.
17109         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
17110         * doc/options.texi (Driver, RejectDriver): Document.
17111         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
17112         print_prog_name, print_multi_directory, print_sysroot,
17113         print_multi_os_directory, print_multi_lib,
17114         print_sysroot_headers_suffix, report_times, combine_flag,
17115         use_pipes, wrapper_string): Remove.
17116         (save_switch, driver_unknown_option_callback,
17117         driver_wrong_lang_callback, driver_post_handling_callback,
17118         driver_handle_option): New.
17119         (spec_lang, last_language_n_infiles): Make file-scope static
17120         instead of local to process_command.
17121         (process_command): Use decode_cmdline_options_to_array and
17122         read_cmdline_option for option processing.  Compute have_c in
17123         prescan of decoded options.
17124         * opt-functions.awk (switch_flags): Handle Driver and
17125         RejectDriver.
17126         (var_type, var_type_struct): Handle Separate options as generating
17127         const char * variables.
17128         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
17129         CL_TARGET to be passed by caller if required.
17130         (decode_cmdline_options_to_array): Update comment.
17131         * opts.c (complain_wrong_lang): Handle options only valid for the
17132         driver.
17133         (decode_options): Update call to decode_cmdline_options_to_array.
17134         (print_filtered_help): Ignore driver-only options.
17135         (print_specific_help): Ignore CL_DRIVER.
17136         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
17137         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
17138         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
17139         Update values.
17140
17141 2010-08-16  Richard Guenther  <rguenther@suse.de>
17142
17143         * tree-cfg.c (verify_types_in_gimple_reference): Verify
17144         TARGET_MEM_REF a bit.
17145         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
17146         (create_mem_ref_raw): Always create TMR_OFFSET, store the
17147         alias pointer type via it.
17148         (copy_mem_ref_info): Adjust.
17149         (maybe_fold_tmr): Likewise.
17150         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
17151         (reference_alias_ptr_type): Likewise.
17152         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
17153         adjust documentation of TMR_OFFSET operand.
17154         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
17155         use the alias pointer type.
17156         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
17157         initialize mem attrs but the TMR itself.
17158         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
17159         similar to MEM_REF.
17160         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
17161         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
17162         (unshare_and_remove_ssa_names): Likewise.
17163         (copy_ref_info): Adjust.
17164         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
17165         TARGET_MEM_REF case.
17166         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
17167         at TMR_ORIGINAL.
17168         * tree.h (TMR_ORIGINAL): Remove.
17169         * gimple.c (get_base_address): For TARGET_MEM_REF with a
17170         symbol return that.
17171         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
17172         with a symbol.
17173         (get_addr_base_and_unit_offset): Likewise.
17174         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
17175         TARGET_MEM_REFs.
17176         (indirect_ref_may_alias_decl_p): Likewise.
17177         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
17178
17179 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
17180
17181         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
17182         with GCC version 4.6, the default setting (when not optimizing
17183         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
17184         been changed to -fomit-frame-pointer.
17185
17186 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
17187
17188         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
17189         Darwin10.  Do not link libgcc.a for Darwin >= 9.
17190
17191 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
17192
17193         * doc/invoke.texi (Warning Options): Fix terminology and markup
17194         in the description of how unknown warning options are handled.
17195
17196 2010-08-15  Ira Rosen  <irar@il.ibm.com>
17197
17198         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
17199         in basic blocks.
17200         (vect_supportable_dr_alignment): Check alignment for basic blocks.
17201         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
17202         data references.
17203         (vect_bb_vectorization_profitable_p): New function.
17204         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
17205         check if it's worthwhile to vectorize the basic block.
17206
17207 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
17208
17209         * reload.h (register_move_cost, memory_move_secondary_cost,
17210         secondary_reload_class): Adjust prototype.
17211         * rtl.h (reg_class_subset_p): Adjust prototype.
17212         * reload.c (secondary_reload_class): Change arguments type from
17213         enum reg_class to reg_class_t. Change result type to reg_class_t.
17214         * reginfo.c (register_move_cost, reg_class_subset_p): Change
17215         arguments type from enum reg_class to reg_class_t.
17216         (memory_move_secondary_cost): Change arguments type from
17217         enum reg_class to reg_class_t. Change type of saved_flags to
17218         reg_class_t.
17219
17220         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17221         Remove macros.
17222         (mips_cost): Remove.
17223         (struct mips_rtx_cost_data): Moved to mips.c.
17224         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
17225         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
17226         (mips_cost): Make static.
17227         (mips_canonicalize_move_class): Change argument type to reg_class_t.
17228         Change result type to reg_class_t.
17229         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
17230         type from enum reg_class to reg_class_t.
17231         (mips_register_move_cost): Make static. Change arguments
17232         type from enum reg_class to reg_class_t.
17233         (mips_memory_move_cost): New function.
17234         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
17235
17236 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
17237
17238         PR rtl-optimization/43358
17239         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
17240         of a single hard register, using simplify_subreg_regno to decide
17241         what that register should be.
17242
17243 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
17244
17245         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
17246         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
17247         (loongson_pmull<V_suffix>): Rename to...
17248         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
17249
17250 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
17251
17252         * configure.ac: Enable -fomit-frame-pointer on darwin
17253         which support dwarf2.
17254         * config/i386/i386.c (override_options): Same.
17255
17256 2010-08-13  Jie Zhang  <jie@codesourcery.com>
17257
17258         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
17259
17260 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
17261
17262         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
17263         -MMD.
17264
17265 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
17266
17267         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
17268         up dot_prod pattern searching if a stmt is outside the loop.
17269
17270 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
17271             Uros Bizjak  <ubizjak@gmail.com>
17272
17273         * config.gcc: Handle --enable-frame-pointer.
17274
17275         * configure.ac: Add --enable-frame-pointer.
17276         * configure: Regenerated.
17277
17278         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
17279         (override_options): If not configured with --enable-frame-pointer,
17280         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
17281         optimizing for size), -fasynchronous-unwind-tables and
17282         -maccumulate-outgoing-args by default.
17283
17284 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
17285
17286         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
17287
17288         PR middle-end/45262
17289         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
17290         -a overflows.  Normalize the range.
17291
17292 2010-08-12  Richard Guenther  <rguenther@suse.de>
17293
17294         PR tree-optimization/45232
17295         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
17296         for types with undefined overflow.
17297         (reassociate_bb): Allow re-associating of bit and min/max
17298         operations for types with undefined overflow.
17299         * tree-ssa-forwprop.c (associate_plusminus): New function.
17300         (tree_ssa_forward_propagate_single_use_vars): Call it.
17301
17302 2010-08-12  Richard Guenther  <rguenther@suse.de>
17303
17304         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
17305         * tree-ssa-alias.c (get_ptr_info): Move ...
17306         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
17307         align and misalign fields conservatively.
17308         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
17309         derive alignment information.
17310         (evaluate_stmt): Derive alignment information from memory
17311         allocation functions.
17312         * tree.h (get_pointer_alignment): Make unsigned.
17313         * builtins.c (get_object_alignment): Use alignment information we
17314         have computed for pointers.
17315         (get_pointer_alignment): Likewise.  Make conservative, return
17316         and unsigned value.
17317         (expand_builtin_strlen): Adjust.
17318         (expand_builtin_memcmp): Likewise.
17319         (expand_builtin_strcmp): Likewise.
17320         (expand_builtin_strncmp): Likewise.
17321         (get_builtin_sync_mem): Use at least mode alignment.
17322         (fold_builtin_memset): Adjust.
17323         (fold_builtin_memory_op): Likewise.
17324         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
17325         information also dump pointer alignment knowledge.
17326         (dump_gimple_stmt): Likewise.
17327
17328 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
17329
17330         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
17331         (EMPTY_FIELD_BOUNDARY): Remove.
17332         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
17333
17334 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
17335
17336         PR debug/45259
17337         * caller-save.c (save_call_clobbered_regs): Only swap notes with
17338         DEBUG_INSNs if n_regs_saved.
17339
17340 2010-08-12  Wei Guozhi  <carrot@google.com>
17341
17342         PR target/44999
17343         * config/arm/arm.md (andsi3): Change to zero extension if possible.
17344         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
17345
17346 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
17347
17348         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
17349
17350         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
17351
17352 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17353
17354         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
17355         the case removed in the previous patch, when the only phi argument
17356         is defined in the same loop as the phi node itself.  Handle it
17357         separately from the invariant case by both propagating it outside
17358         the region and replacing the phi node with an assign.
17359
17360 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17361
17362         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
17363         constant phi nodes with one argument are is_gimple_min_invariant
17364         and SSA_NAME_IS_DEFAULT_DEF.
17365
17366 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17367
17368         * graphite-cloog-util.c (oppose_constraint):
17369         Extend loop counter's value range (CLOOG_ORG).
17370         (cloog_matrix_to_ppl_constraint): Same.
17371         (new_Constraint_System_from_Cloog_matrix): Same.
17372         * graphite-cloog-compat.h (matrix_num_type): New.
17373
17374 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17375
17376         * graphite.c (graphite_initialize): Do not initialize
17377         CLooG and initialize the Parma Polyhedra Library
17378         manually when using CLOOG_ORG.
17379         (graphite_finalize): Do not finalize CLooG and finalize
17380         the Parma Polyhedra Library manually when using CLOOG_ORG.
17381         * graphite-cloog-compat.h (cloog_initialize): Hide function
17382         when using CLOOG_ORG.
17383         (cloog_finalize): Same.
17384
17385 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17386
17387         * graphite-clast-to-gimple.c (free_scattering): Change
17388         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
17389         (CLOOG_ORG).
17390         (build_cloog_prog): Same.
17391         * graphite-cloog-compat.h (cloog_domain): Removed.
17392         (cloog_scattering): New.
17393         (cloog_set_domain): Removed.
17394         (cloog_set_scattering): New.
17395         (cloog_next_domain): Removed.
17396         (cloog_next_scattering): New.
17397         (cloog_set_next_domain): Removed.
17398         (cloog_set_next_scattering): New.
17399         (CloogScatteringList): New.
17400         (CloogScattering): New.
17401         (cloog_scattering_free): New.
17402         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
17403         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
17404         New.
17405
17406 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17407
17408         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
17409         CloogState.
17410         (set_cloog_options): Same.
17411         (print_clast_stmt): Same.
17412         (scop_to_clast): Same.
17413         (print_generated_program): Same.
17414         (gloog): Same.
17415         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
17416         (scop_to_clast): Extend with CloogState.
17417         * graphite-cloog-util.c: Include graphite-cloog-compat.h
17418         (new_Cloog_Domain_from_ppl_Polyhedron):
17419         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
17420         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
17421         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17422         * graphite-cloog-util.h (build_cloog_prog): Same.
17423         * graphite-cloog-copat.h (build_cloog_prog): New.
17424         (CloogState): New.
17425         (cloog_state_malloc): New.
17426         (cloog_state_free): New.
17427         (cloog_loop_malloc): New.
17428         (cloog_options_malloc): New.
17429         (cloog_statement_alloc): New.
17430         (cloog_domain_from_cloog_matrix): New.
17431         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
17432         (new_Cloog_Domain_from_ppl_Polyhedron): New.
17433
17434 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17435
17436         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
17437         type of NAME now depends on used CLooG version.
17438         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
17439         (gcc_type_for_clast_expr): Same.
17440         (print_clast_stmt): Replace pprint with clast_pprint.
17441         * graphite-cloog-compat.h: Provide compatibility macros for
17442         CLooG Legacy.
17443         (clast_name_p): New.
17444         (clast_expr_term): New.
17445         (clast_expr_red): New.
17446         (clast_expr_bin): New.
17447         (clast_pprint): New.
17448
17449 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17450
17451         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
17452         compatible to newer CLooG releases (CLOOG_ORG).
17453         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
17454         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
17455         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
17456         (build_cloog_prog) : New.
17457         (cloog_program_extract_scalars): New.
17458         (cloog_program_scatter): New.
17459
17460 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17461
17462         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
17463         conditionally (CLOOG_ORG).
17464         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
17465         (cloog_statement_usr): New.
17466         (cloog_domain): Same.
17467         (cloog_set_domain): Same.
17468         (cloog_next_domain): Same.
17469         (cloog_set_next_domain): Same.
17470         (cloog_program_nb_scattdims): Same.
17471         (cloog_program_set_nb_scattdims): Same.
17472         (cloog_program_names): Same.
17473         (cloog_program_set_names): Same.
17474         (cloog_program_set_context): Same.
17475         (cloog_program_set_loop): Same.
17476         (cloog_program_blocklist): Same.
17477         (cloog_program_set_blocklist): Same.
17478         (cloog_program_scaldims): Same.
17479         (cloog_program_set_scaldims): Same.
17480         (cloog_names_nb_parameters): Same.
17481         (cloog_names_set_nb_parameters): Same.
17482         (cloog_names_parameters): Same.
17483         (cloog_names_set_parameters): Same.
17484         (cloog_names_set_nb_iterators): Same.
17485         (cloog_names_set_iterators): Same.
17486         (cloog_names_set_nb_scattering): Same.
17487         (cloog_names_set_scattering): Same.
17488         (cloog_statement_set_usr): Same.
17489         (cloog_loop_set_next): Same.
17490         (cloog_loop_set_domain): Same.
17491         (cloog_loop_set_block): Same.
17492         (cloog_block_list_next): Same.
17493         (cloog_block_list_set_next):
17494         (cloog_block_list_set_block): Same.
17495
17496 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17497
17498         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
17499         a bool.
17500         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
17501         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
17502         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
17503         when something has been changed.
17504         (rewrite_commutative_reductions_out_of_ssa): Same.
17505
17506 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17507
17508         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
17509         handle the case when def is in the sese region.
17510         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
17511         for invariant expressions.
17512         (rewrite_cross_bb_phi_deps): Removed.
17513         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
17514         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
17515         rewrite_cross_bb_phi_deps.
17516
17517 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17518
17519         * graphite-sese-to-poly.c
17520         (rewrite_commutative_reductions_out_of_ssa_loop): Call
17521         scev_analyzable_p only on is_gimple_reg
17522
17523 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17524
17525         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
17526         (rewrite_close_phi_out_of_ssa): Propagate constant values or
17527         parametric expressions outside the scop region.
17528         (rewrite_cross_bb_scalar_deps): Same.
17529         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
17530
17531 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17532
17533         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
17534         SSA_NAME_DEF_STMT only on SSA_NAMEs.
17535
17536 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17537
17538         * tree-scalar-evolution.c (instantiate_scev_name): Do not
17539         instantiate default definitions.
17540
17541 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
17542             Sebastian Pop  <sebastian.pop@amd.com>
17543
17544         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
17545         (loop_exits_from_bb_p): New.
17546         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
17547         (loop_exits_from_bb_p): Declared.
17548         * graphite-scop-detection.c (scopdet_basic_block_info): Call
17549         loop_exits_to_bb_p.
17550
17551 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17552
17553         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
17554         extra parameter for the region.  Call scev_analyzable_p.
17555         (rewrite_reductions_out_of_ssa): Update call to
17556         rewrite_close_phi_out_of_ssa.
17557         (rewrite_cross_bb_phi_deps): Same.
17558         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
17559         parameter for the region.  Call scev_analyzable_p.
17560         (rewrite_commutative_reductions_out_of_ssa): Update call to
17561         rewrite_commutative_reductions_out_of_ssa_loop.
17562
17563 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17564
17565         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
17566
17567 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17568
17569         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
17570         SSA scalar phi nodes that can be scev_analyzable_p.
17571
17572 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17573
17574         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
17575         handle SSA_NAME_IS_DEFAULT_DEF.
17576
17577 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17578
17579         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
17580
17581 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17582
17583         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
17584         case non close-phi nodes with one argument.
17585
17586 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17587
17588         * sese.h (scev_analyzable_p): Scevs could be expressions without
17589         chrecs and still be scev_analyzable_p.
17590
17591 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17592
17593         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17594
17595 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17596
17597         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
17598         * cfgloop.h (struct loop): Remove single_iv field.
17599         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
17600         (scop_canonicalize_loops): Removed.
17601         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
17602         over all the loop phi nodes in loop->header.
17603         (build_poly_scop): Remove use of scop_canonicalize_loops.
17604
17605 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17606
17607         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
17608         handle GIMPLE_CALL.
17609
17610 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17611
17612         * tree-chrec.c (chrec_apply): Should only apply to the specified
17613         variable.  Also handle multivariate chains of recurrences that
17614         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
17615
17616 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17617
17618         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
17619         (debug_clast_name_indexes_1): Removed.
17620         (debug_clast_name_indexes): Removed.
17621         (pbb_to_depth_to_oldiv): Removed.
17622         (build_iv_mapping): Replace the use of rename_map with iv_map.
17623         (translate_clast_user): Remove uses of rename_map.  Allocate and
17624         free iv_map.
17625         (translate_clast_for_loop): Remove uses of rename_map.
17626         (translate_clast_for): Same.
17627         (translate_clast_guard): Same.
17628         (translate_clast): Same.
17629         (gloog): Same.
17630         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
17631         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
17632         * sese.c (set_rename): Now static.
17633         (rename_variables_in_stmt): Removed.
17634         (rename_uses): New.
17635         (is_parameter): Removed.
17636         (is_iv): Removed.
17637         (expand_scalar_variables_call): Removed.
17638         (expand_scalar_variables_ssa_name): Removed.
17639         (expand_scalar_variables_expr): Removed.
17640         (expand_scalar_variables_stmt): Removed.
17641         (expand_scalar_variables): Removed.
17642         (rename_variables): Removed.
17643         (remove_condition): Removed.
17644         (get_true_edge_from_guard_bb): Removed.
17645         (get_false_edge_from_guard_bb): Removed.
17646         (struct igp): Removed.
17647         (default_before_guard): Removed.
17648         (convert_for_phi_arg): Removed.
17649         (add_guard_exit_phis): Removed.
17650         (insert_guard_phis): Removed.
17651         (graphite_copy_stmts_from_block): Now also uses iv_map and a
17652         region.  Do not copy conditions.  Do not copy induction variables.
17653         Call rename_uses.
17654         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
17655         the translated statement.  Use the iv_map for the induction
17656         variable renaming.
17657         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
17658         (set_rename): Removed declaration.
17659         (scev_analyzable_p): ...here.
17660         * tree-chrec.c (chrec_apply_map): New.
17661         * tree-chrec.h (chrec_apply_map): Declared.
17662
17663 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17664
17665         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
17666         insert_loop_close_phis.
17667         * sese.c (name_defined_in_loop_p): Removed.
17668         (expr_defined_in_loop_p): Removed.
17669         (alive_after_loop): Removed.
17670         (close_phi_not_yet_inserted_p): Removed.
17671         (struct alep): Removed.
17672         (add_loop_exit_phis): Removed.
17673         (insert_loop_close_phis): Removed.
17674
17675 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17676
17677         * graphite-cloog-util.c
17678         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
17679         * graphite-poly.c
17680         (psct_scattering_dim_for_loop_depth): Same.
17681
17682 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17683
17684         * graphite-cloog-util.h: Added cloog.h.
17685         * graphite-blocking.c: Removed cloog.h.
17686         * graphite-dependences.c: Same.
17687         * graphite-interchange.c: Same.
17688         * graphite-poly.c: Same.
17689         * graphite-ppl.c: Same.
17690         * graphite-scop-detection.c: Same.
17691         * graphite-sese-to-poly.c:
17692         Removed cloog.h.
17693         Removed graphite-clast-to-gimple.h.
17694         (check_poly_representation): Removed (unused).
17695         * graphite-sese-to-poly.h
17696         (check_poly_representation): Removed (unused).
17697
17698 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17699
17700         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
17701         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
17702         (graphite-cloog-util.o): New.
17703         (graphite-ppl.o): Added graphite-cloog-util.h.
17704         * graphite-clast-to-gimple.c:
17705         Added graphite-cloog-util.h to include statements.
17706         * graphite-cloog-util.c: New.
17707         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
17708         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17709         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17710         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17711         (insert_constraint_into_matrix): Same.
17712         (ppl_Constrain_System_number_of_constraints): Same.
17713         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17714         (oppose_constraint): Same.
17715         (cloog_matrix_to_ppl_constraint): Same.
17716         (new_Constraint_System_from_Cloog_Matrix): Same.
17717         * graphite-cloog-util.h: New.
17718         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
17719         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17720         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17721         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17722         (insert_constraint_into_matrix): Same.
17723         * graphite-ppl.c:
17724         Added graphite-cloog-util.h to include statements.
17725         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
17726         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17727         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17728         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17729         (insert_constraint_into_matrix): Same.
17730         (ppl_Constrain_System_number_of_constraints): Same.
17731         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17732         (oppose_constraint): Same.
17733         (cloog_matrix_to_ppl_constraint): Same.
17734         (new_Constraint_System_from_Cloog_Matrix): Same.
17735         * graphite-ppl.h:
17736         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
17737         graphite-cloog-util.h.
17738         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17739         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17740         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17741         (insert_constraint_into_matrix): Same.
17742
17743 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17744
17745         * graphite-clast-to-gimple.c
17746         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
17747         (precision_for_interval): Same.
17748         (gcc_type_for_interval): Same.
17749         (compute_type_for_level): Same.
17750         * graphite-interchange.c
17751         (lst_interchange_profitable_p): Same.
17752         * graphite-poly.c
17753         (psct_scattering_dim_for_loop_depth): Same.
17754         * graphite-ppl.c
17755         (ppl_max_for_le_pointset): Same.
17756         (ppl_min_for_le_pointset): Same.
17757
17758 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17759
17760         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
17761         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
17762
17763 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17764
17765         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
17766         rewrite_close_phi_out_of_ssa.
17767
17768 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17769
17770         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
17771
17772 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17773
17774         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
17775         rename_map.
17776         * sese.c (debug_rename_map): Same.
17777         (get_rename): Same.
17778         (set_rename): Same.
17779         (rename_variables_in_stmt): Same.
17780         (expand_scalar_variables_call): Same.
17781         (expand_scalar_variables_ssa_name): Same.
17782         (expand_scalar_variables_expr): Same.
17783         (expand_scalar_variables_stmt): Same.
17784         (expand_scalar_variables): Same.
17785         (rename_variables): Same.
17786         (graphite_copy_stmts_from_block): Same.
17787         (copy_bb_and_scalar_dependences): Same.
17788
17789 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17790
17791         * graphite-clast-to-gimple.c (copy_renames): Removed.
17792         (translate_clast_for): Do not call copy_renames.
17793         (translate_clast_guard): Same.
17794
17795 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17796
17797         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
17798         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
17799         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
17800         before rewrite_cross_bb_scalar_deps.
17801
17802 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17803
17804         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
17805         Early return in when flag_associative_math is not set.
17806
17807 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17808
17809         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
17810         of SSA copies on edges except for loop->latch.
17811
17812 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17813
17814         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
17815         Split out of rewrite_reductions_out_of_ssa.
17816         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
17817         Declared.
17818         * graphite.c (graphite_transform_loops): Call it.
17819
17820 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17821
17822         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
17823
17824 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
17825
17826         * dbgcnt.def (graphite_scop): New counter.
17827         * graphite.c: Include dbgcnt.h.
17828         (graphite_transform_loops): Use new counter to limit transformations.
17829         * Makefile.in (graphite.o): Depend on DBGCNT_H.
17830
17831 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17832
17833         * passes.c (init_optimization_passes): Add pass_graphite.
17834         Schedule a pass_copy_prop before pass_graphite_transforms.
17835         * timevar.def (TV_GRAPHITE): Declared.
17836         * tree-pass.h (pass_graphite): Declared.
17837         * tree-ssa-loop.c (pass_graphite): New.
17838
17839 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17840
17841         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
17842         Remove calls to rename_nb_iterations and rename_sese_parameters.
17843         * graphite-clast-to-gimple.h (gloog): Update declaration.
17844         * graphite.c (graphite_transform_loops): Update call to gloog.
17845         * sese.c (rename_variables_in_expr): Removed.
17846         (rename_nb_iterations): Removed.
17847         (rename_sese_parameters): Removed.
17848         * sese.h (rename_nb_iterations): Removed.
17849         (rename_sese_parameters): Removed.
17850
17851 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17852
17853         * graphite-clast-to-gimple.c (gloog): Remove call to
17854         sese_adjust_liveout_phis.
17855         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
17856         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
17857         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
17858         rewrite_phi_out_of_ssa.
17859         * sese.c (get_vdef_before_sese): Removed.
17860         (sese_adjust_vphi): Removed.
17861         (sese_adjust_liveout_phis): Removed.
17862         * sese.h (sese_adjust_liveout_phis): Removed.
17863
17864 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17865
17866         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
17867         argument for the place after which to insert the out of SSA copy.
17868         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
17869         (rewrite_phi_out_of_ssa): Same.
17870         (rewrite_cross_bb_scalar_deps): Same.
17871         (insert_copyout): Removed.
17872         (insert_copyin): Removed.
17873         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
17874         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
17875         insert_copyin.
17876
17877 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17878
17879         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
17880         (rewrite_reductions_out_of_ssa): Same.
17881         (rewrite_commutative_reductions_out_of_ssa): Same.
17882         (build_poly_scop): Do not call these functions.
17883         * graphite-sese-to-poly.h (build_poly_scop): Declared.
17884         (rewrite_reductions_out_of_ssa): Declared.
17885         (rewrite_commutative_reductions_out_of_ssa): Declared.
17886         * graphite.c (graphite_transform_loops): Call on every scop
17887         rewrite_commutative_reductions_out_of_ssa before calling
17888         rewrite_reductions_out_of_ssa and build_scop_bbs.
17889
17890 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17891
17892         * graphite-dependences.c (dot_deps): Make system call to dotty run
17893         in background.
17894         (dot_deps_stmt): Same.
17895         * graphite-poly.c (dot_lst): Same.
17896
17897 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17898
17899         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
17900         phi_arg_in_outermost_loop.
17901         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
17902         (remove_invariant_phi): Same.
17903
17904 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
17905
17906         * target.def (output_addr_const_extra): New hook.
17907         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
17908         * doc/tm.texi: Regenerate.
17909         * targhooks.c (default_asm_output_addr_const_extra): New function.
17910         * targhooks.h (default_asm_output_addr_const_extra): Declare.
17911         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
17912         target hook.
17913
17914         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
17915         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
17916         * config/i386/i386.h (output_addr_const_extra): Rename to...
17917         (i386_asm_output_addr_const_extra): ...this. Make static.
17918         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
17919
17920 2010-08-11  Richard Henderson  <rth@redhat.com>
17921
17922         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
17923
17924 2010-08-11  Nick Clifton  <nickc@redhat.com>
17925
17926         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
17927         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
17928         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
17929         stormy16-lib2-cmpsi.c.
17930
17931         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
17932         -O2.
17933
17934 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
17935
17936         * opts.h (struct cl_option_handler_func): Make handler take
17937         cl_decoded_option structure as parameter, not individual elements.
17938         (struct cl_option_handlers): Make callbacks take cl_decoded_option
17939         structure as parameter, not individual elements.
17940         (handle_option): Take cl_decoded_option structure as parameter,
17941         not individual elements.
17942         (handle_generated_option): Declare.
17943         * opts-common.c (handle_option): Take cl_decoded_option structure
17944         as parameter, not individual elements.  Update calls to callback
17945         and handler functions.
17946         (handle_generated_option): New.
17947         (read_cmdline_option): Update calls to callback functions and
17948         handle_option.
17949         * opts.c (common_handle_option, complain_wrong_lang,
17950         unknown_option_callback, post_handling_callback,
17951         lang_handle_option, target_handle_option): Take cl_decoded_option
17952         structure as parameter, not individual elements.
17953         (lang_handle_option, target_handle_option, common_handle_option):
17954         Assert option has at most one argument.
17955         (enable_warning_as_error): Call handle_generated_option instead of
17956         handle_option.  Do not pass -Werror argument as argument of
17957         generated option.
17958
17959 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17960
17961         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
17962         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
17963         (SUBWORD_BOOL_CAS): Likewise.
17964         (SUBWORD_SYNC_OP): Likewise.
17965         (SUBWORD_TEST_AND_SET): Likewise.
17966         (FETCH_AND_OP_WORD): Parenthesise INF_OP
17967         (SUBWORD_SYNC_OP): Likewise.
17968         (OP_AND_FETCH_WORD): Likewise.
17969
17970 2010-08-10  Xinliang David Li  <davidxl@google.com>
17971
17972         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
17973         compute max/min offset in address.
17974
17975 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
17976
17977         * ira-live.c: Include sbitmap.h.
17978         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
17979         Compress live ranges even more.
17980
17981 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17982
17983         * coverage.c (ctr_labels): Delete.
17984
17985 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
17986
17987         PR bootstrap/45177
17988         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
17989         test here from arm_gen_load_multiple_1.
17990         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
17991         multiple_operation_profitable_p.
17992
17993 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
17994
17995         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
17996         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
17997
17998 2010-08-10  Richard Henderson  <rth@redhat.com>
17999
18000         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
18001         after saving registers.  Assert that SSE registers are only saved
18002         with a sufficiently aligned frame.
18003         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
18004         remove stack_realign_fp handling.
18005         (ix86_expand_prologue): Save int registers before stack_realign_fp,
18006         and do not mark the stack alignment as frame related.
18007         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
18008
18009         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
18010         saves when re-aligning the stack.
18011
18012 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
18013
18014         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
18015         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
18016         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
18017
18018 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
18019
18020         * dwarf2out.c (struct die_struct): Move die_tag to the end.
18021
18022 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
18023
18024         * config/arm/iterators.md: New file.
18025         * config/arm/arm.md: Include iterators.md.
18026         (QHSI): Move to new file.
18027         (LTUGEU, cnb, optab, ior_xor): Likewise.
18028         * config/arm/iwmmxt.md (VMMX): Move to new file.
18029         (VSHFT, MMX_char): Likewise.
18030         * config/arm/neon.md (VD): Move to new file.
18031         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
18032         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
18033         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
18034         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
18035         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
18036         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
18037         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
18038         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
18039         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
18040         (Is_d_reg, V_mode_nunits): Likewise.
18041         * config/arm/vec-common.md (VALL): Move to new file.
18042         (VALLW, VINT, VINTW): Likewise.
18043
18044 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
18045
18046         PR middle-end/45182
18047         * combine.c (make_compound_operation): Don't try to convert
18048         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
18049
18050 2010-08-10  Richard Guenther  <rguenther@suse.de>
18051
18052         * tree.h (get_object_alignment): Adjust prototype.
18053         * builtins.c (get_object_alignment): Return unsigned int,
18054         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
18055         and TARGET_MEM_REF properly.
18056         (get_pointer_alignment): Adjust.
18057         * emit-rtl.c (get_mem_align_offset): Adjust comment.
18058         (set_mem_attributes_minus_bitpos): Adjust.
18059         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
18060
18061 2010-08-10  Richard Guenther  <rguenther@suse.de>
18062
18063         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
18064         (copy_prop_visit_assignment): Simplify.
18065         (copy_prop_visit_stmt): Also visit assignments from
18066         constants.
18067         (copy_prop_visit_phi_node): Use operand_equal_p.
18068
18069 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18070
18071         * ipa-split.c (find_split_points): Free stack.
18072
18073 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18074
18075         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
18076         * tree.c (tree_node_kind): Delete corresponding entries.
18077
18078 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
18079
18080         * alias.c (may_alias_p): Remove unused ret.
18081
18082 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
18083
18084         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
18085         alias_sets_conflict_p.
18086         (walk_mems_1): Moved from alias.c.
18087         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
18088         in alias.c.
18089         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
18090         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
18091         * alias.c (walk_mems_2): Moved to ddg.c.
18092         (walk_mems_1): Ditto.
18093         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
18094         to ddg.c.
18095         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
18096         disambiguation.
18097         *(may_alias_p): New function to check whether two memory expression
18098         may alias or not. Currently used in buidling inter-iteration memory
18099         dependence.
18100         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
18101         (insn_alias_sets_conflict_p): Removed
18102         *rtl.h (may_alias_p): New function prototype.
18103
18104 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18105
18106         * tree.c (nreverse): Assert that we don't have a BLOCK.
18107
18108 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18109
18110         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
18111         * config/arm/arm.c (arm_get_pcs_model): Likewise.
18112         * config/avr/avr.c (init_cumulative_args): Likewise.
18113         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
18114         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
18115         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
18116         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
18117         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
18118         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18119         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
18120         * dwarf2out.c (gen_subprogram_die): Likewise.
18121         * function.c (allocate_struct_function): Likewise.
18122         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
18123         (deserves_ellipsis): Delete.
18124
18125 2010-08-09  Richard Guenther  <rguenther@suse.de>
18126
18127         * tree-ssa-copy.c (cached_last_copy_of): Remove.
18128         (valueize_val): New function.
18129         (get_last_copy_of): Remove.
18130         (set_copy_of_val): Simplify.
18131         (dump_copy_of): Likewise.
18132         (copy_prop_visit_cond_stmt): Use valueize_val.
18133         (copy_prop_visit_phi_node): Properly handle unvisited names.
18134         Drop code managing copy-of chains.
18135         (init_copy_prop): Adjust.
18136         (fini_copy_prop): Likewise.
18137         (execute_copy_prop): Remove obsolete comment.
18138
18139 2010-08-09  Richard Guenther  <rguenther@suse.de>
18140
18141         PR middle-end/44632
18142         * function.c (gimplify_parameters): Do not clear addressable
18143         bit of the original parameter.
18144
18145 2010-08-09  Richard Guenther  <rguenther@suse.de>
18146
18147         PR middle-end/45212
18148         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
18149         alignment from MEM_REF offset only if we took it from the
18150         base object.
18151
18152 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
18153
18154         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
18155
18156 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18157
18158         * c-tree.h (build_arg_info): Declare.
18159         * c-decl.c (build_arg_info): Define.
18160         (get_parm_info): Call it.  Delete initialization code.
18161         * c-parser.c (c_parser_parms_declarator): Likewise.
18162         (c_parser_parms_list_declaractor): Likewise.
18163
18164 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18165
18166         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
18167         (struct c_arg_info): Change type of tags field.
18168         * c-decl.c (grokdeclarator): Update for changed type of tags field.
18169         (get_parm_info): Likewise.
18170         (store_parm_decls_newstyle): Likewise.
18171
18172 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18173
18174         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
18175         (branch_island_list): Delete.
18176         (branch_islands): Declare.
18177         (add_compiler_branch_island): Adjust for branch_islands instead of
18178         branch_island_list.
18179         (macho_branch_islands): Likewise.
18180         (no_previous_def): Likewise.
18181         (get_prev_label): Likewise.
18182
18183 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18184
18185         PR boehm-gc/34544
18186         * gthr-posix.h (__gthread_start): Delete.
18187         (__gthread_active_init): Use pthread_default_stacksize_np instead of
18188         pthread_create to determine if hpux pthreads are active.
18189         * gthr-posix95.h (__gthread_start): Delete.
18190         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
18191
18192 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
18193
18194         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
18195         _WIN64 not expanded.
18196
18197 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
18198             H.J. Lu  <hongjiu.lu@intel.com>
18199
18200         PR target/45213
18201         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
18202         to output 32bit SFmode immediate as 8 byte sign extended value.
18203
18204 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18205
18206         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
18207         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
18208         (SUBWORD_BOOL_CAS): Likewise.
18209         (SUBWORD_SYNC_OP): Likewise.
18210         (SUBWORD_TEST_AND_SET): Likewise.
18211         (FETCH_AND_OP_WORD): Parenthesise INF_OP
18212         (SUBWORD_SYNC_OP): Likewise.
18213         (OP_AND_FETCH_WORD): Likewise.
18214
18215 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18216
18217         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
18218         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
18219         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
18220         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
18221         generic part.
18222         (cortex_a9_sched_adjust_cost): New function.
18223         (xscale_sched_adjust_cost): New function.
18224         * config/arm/arm-protos.h (struct tune_params): New field
18225         sched_adjust_cost.
18226         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
18227
18228 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
18229
18230         PR target/44942
18231         * config/sparc/sparc.c (function_arg_advance): Always take into account
18232         the padding, if any.
18233
18234 2010-08-06  Richard Guenther  <rguenther@suse.de>
18235
18236         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
18237         (dump_lattice_value): Dump it.
18238         (get_default_value): Adjust.
18239         (get_constant_value): Likewise.
18240         (set_value_varying): Likewise.
18241         (set_lattice_value): Make sure to not go up the lattice
18242         with bitwise constant values.
18243         (get_value_for_expr): Handle ADDR_EXPRs.
18244         (value_to_double_int): New function.
18245         (get_value_from_alignment): Likewise.
18246         (do_dbg_cnt): Adjust.
18247         (ccp_lattice_meet): Handle partially constant values.
18248         (bit_value_unop_1): New function.
18249         (bit_value_binop_1): Likewise.
18250         (bit_value_unop): Likewise.
18251         (bit_value_binop): Likewise.
18252         (evaluate_stmt): Track partially constant values if
18253         flag_tree_bit_ccp is set.
18254         (ccp_fold_stmt): Dump if we folded a predicate.
18255         (ccp_visit_stmt): Adjust.
18256         * common.opt (ftree-bit-ccp): New flag.
18257         * doc/invoke.texi (ftree-bit-ccp): Document.
18258         * opts.c (decode_options): Enable bit-CCP at -O1.
18259
18260 2010-08-06  Alan Modra  <amodra@gmail.com>
18261
18262         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
18263         and -mrelocatable-lib description.
18264
18265 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
18266
18267         From Martin Thuresson  <martint@google.com>
18268         * postreload.c (reload_cse_simplify_operands): Use
18269         SET_REGNO_RAW instead of SET_REGNO.
18270         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
18271         SET_REGNO.
18272         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
18273         instead of SET_REGNO.
18274         * rtl.h (SET_REGNO_RAW): New macro.
18275
18276 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
18277
18278         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
18279         computations.  Fix formatting issues.
18280         (num_sign_bit_copies1): Likewise.
18281         (canonicalize_condition): Likewise.
18282
18283 2010-08-05  Richard Henderson  <rth@redhat.com>
18284
18285         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
18286         (floor_log2): Use clz_hwi.
18287         (exact_log2): Use ctz_hwi.
18288         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
18289         * builtins.c (fold_builtin_bitop): Use them.
18290         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
18291         * combine.c (get_pos_from_mask): Use ctz_hwi.
18292         * double-int.c (double_int_ctz): Likewise.
18293         * explow.c (force_reg): Likewise.
18294         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
18295
18296 2010-08-05  Richard Henderson  <rth@redhat.com>
18297
18298         PR target/45189
18299         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
18300         the alignment constant is properly sign-extended.
18301
18302 2010-08-05  Richard Guenther  <rguenther@suse.de>
18303
18304         * expr.c (store_expr): Use emit_block_move only if both
18305         source and target are MEMs.  Use store_bit_field if only
18306         the target is a MEM.
18307
18308 2010-08-05  Richard Henderson  <rth@redhat.com>
18309
18310         PR debug/45188
18311         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
18312         (INCOMING_RETURN_ADDR_RTX): Likewise.
18313         (dwarf2out_do_frame): Remove conditional compilation.
18314         (dwarf2out_frame_init): Likewise.
18315
18316 2010-08-05  Nicolas Setton  <setton@adacore.com>
18317
18318         * gcov.c (flag_display_progress): New static variable.
18319         (main): Display progress info on standard output if requested.
18320         (options): Add -d/--display-progress.
18321         (print_usage): Print them.
18322         (process_args): Handle them.
18323         * doc/gcov.texi: Document them.
18324
18325 2010-08-05  Martin Jambor  <mjambor@suse.cz>
18326
18327         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
18328         (ipcp_insert_stage): Redirect only edges not flagged with
18329         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
18330         discovered constants.
18331
18332 2010-08-05  Martin Jambor  <mjambor@suse.cz>
18333
18334         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
18335         (struct ipa_param_descriptor): New fields types and
18336         cannot_devirtualize.
18337         (ipa_param_cannot_devirtualize_p): New function.
18338         (ipa_param_types_vec_empty): Likewise.
18339         (ipa_make_edge_direct_to_target): Declare.
18340         * ipa-cp.c: Fixed first stage driver name in initial comment,
18341         described devirtualization there too.
18342         (ipcp_analyze_node): Call ipa_analyze_params_uses.
18343         (ipcp_print_all_lattices): Print devirtualization info.
18344         (ipa_set_param_cannot_devirtualize): New function.
18345         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
18346         lattice to BOTTOM.
18347         (ipcp_init_stage): Merged into...
18348         (ipcp_generate_summary): ...its caller.
18349         (ipcp_change_tops_to_bottom): Also process type lists.
18350         (ipcp_add_param_type): New function.
18351         (ipcp_copy_types): Likewise.
18352         (ipcp_propagate_types): Likewise.
18353         (ipcp_propagate_stage): Also propagate types.
18354         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
18355         Also return true if propagated types require it.
18356         (ipcp_update_callgraph): Dump redirection info.
18357         (ipcp_process_devirtualization_opportunities): New function.
18358         (ipcp_const_param_count): Include known type information.
18359         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
18360         on new node.  Fixed formatting.
18361         * ipa-prop.c (make_edge_direct_to_target): Renamed to
18362         ipa_make_edge_direct_to_target and changed all callers.  Made
18363         externally visible.
18364         (ipa_node_duplication_hook): Duplicate types vector.
18365         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
18366         redirect outgoing calls for which we can't get a decl from the
18367         statement.  Check that we can get a decl from the call statement.
18368         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
18369         ipa_analyze_params_uses only when ipa-cp is disabled.
18370         * tree-inline.c (get_indirect_callee_fndecl): Removed.
18371         (expand_call_inline): Do not call get_indirect_callee_fndecl.
18372         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
18373         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
18374
18375 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
18376
18377         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
18378         temporary. Emit move from temporary to accum, so REG_EQUAL note will
18379         be attached to this insn in correct mode.
18380
18381 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
18382
18383         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
18384         using REGNO of base_reg directly.
18385
18386 2010-08-05  Jie Zhang  <jie@codesourcery.com>
18387
18388         PR tree-optimization/45144
18389         * tree-sra.c (type_consists_of_records_p): Return false
18390         if the record contains bit-field.
18391
18392 2010-08-04  Richard Henderson  <rth@redhat.com>
18393
18394         * config/i386/i386.c (struct ix86_frame): Remove padding and
18395         to_allocate members.
18396         (ix86_compute_frame_layout): Don't store them.
18397         (ix86_can_use_return_insn_p): Use a more direct and more obviously
18398         correct condition for the position of the stack pointer.
18399         (ix86_expand_prologue): Compute remaining stack allocation based
18400         on the ultimate stack pointer offset.
18401         (ix86_expand_epilogue): Use more obvious expressions testing for
18402         the stack pointer already pointing to the saved registers.
18403
18404         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
18405         duplication deconstructing the frame pointer.  Simplify
18406         deallocation of the local stack frame.
18407
18408         * reg-notes.def (CFA_EXPRESSION): New.
18409         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
18410         (dwarf2out_frame_debug_cfa_expression): New.
18411         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
18412
18413         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
18414         * config/i386/i386.c (ix86_expand_prologue): Set it.
18415         (ix86_expand_epilogue): Clear it.
18416         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
18417         context, add REG_CFA_EXPRESSION notes.
18418
18419         * config/i386/i386.h (struct machine_frame_state): Rename from
18420         machine_cfa_state.  Add members tracking SP and FP regardless
18421         of the current CFA register.
18422         (ix86_cfa_state): Remove.
18423         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
18424         and sse_reg_save_offset members.
18425         (ix86_compute_frame_layout): Set them.
18426         (gen_push): Increment sp_offset too.
18427         (choose_baseaddr_len, choose_baseaddr): New.
18428         (ix86_emit_save_reg_using_mov): New.
18429         (ix86_emit_save_regs_using_mov): Use it.
18430         (ix86_emit_save_sse_regs_using_mov): Likewise.
18431         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
18432         compare vs the saved red_zone_offset.
18433         (pro_epilogue_adjust_stack): Adjust sp_offset.
18434         (ix86_adjust_stack_and_probe): Likewise.
18435         (ix86_expand_prologue): Set up, use, and validate the new
18436         frame_state_info members.  Use gen_frame_mem.
18437         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
18438         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
18439         new frame_state_info members.
18440         (ix86_emit_leave): Likewise.
18441         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
18442         out-of-range stack pointer offsets here.
18443         (ix86_emit_restore_sse_regs_using_mov): Likewise.
18444         (ix86_expand_epilogue): Use and validate the new frame_state_info
18445         members.  Break up and simplify the logic selecting the
18446         restore_regs_via_mov code path.  Ensure that there will be no
18447         out-of-range stack pointer offsets.
18448
18449         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
18450
18451         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
18452         argument name to reflect the expected tree; fix indentation.
18453         (ix86_asm_output_function_label): Output the entire 32-bit
18454         ms_hook here as bytes ...
18455         (ix86_expand_prologue): ... not here as insns.  Attach the
18456         unwind info for the ms_hook to a blockage insn.
18457         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
18458         (ix86_ms_bitfield_layout_p): Fix indentation.
18459         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
18460
18461         * config/i386/i386.c (ix86_using_red_zone): New.
18462         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
18463         ix86_expand_prologue, ix86_force_to_memory): Use it.
18464
18465         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
18466         saving the int registers.
18467
18468         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
18469         and DWARF2_UNWIND_INFO conditional compilation.
18470
18471 2010-08-04  Richard Henderson  <rth@redhat.com>
18472
18473         PR debug/45171
18474         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
18475         an is_naming_typedef_decl.
18476
18477 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
18478
18479         PR rtl-optimization/45162
18480         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
18481         * dce.c (word_dce_process_block): Likewise.
18482
18483 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
18484
18485         PR target/44583
18486         * config/ia64/constraints.md (Z): New.
18487         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
18488         (xfreg_or_signed_fp01_operand): New.
18489         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
18490         with fr_reg_or_signed_fp01_operand and constraint G with Z.
18491         (subsf3): Ditto.
18492         (*maddsf4): Ditto.
18493         (*msubsf4): Ditto.
18494         (adddf3): Ditto.
18495         (adddf3_trunc): Ditto.
18496         (subdf3): Ditto.
18497         (*subdf3_trunc): Ditto.
18498         (*madddf4): Ditto.
18499         (*madddf4_trunc): Ditto.
18500         (*msubdf4): Ditto.
18501         (*msubdf4_trunc): Ditto.
18502         (addxf3): Replace xfreg_or_fp01_operand with
18503         xfreg_or_signed_fp01_operand and constraint G with Z.
18504         (*addxf3_truncsf): Ditto.
18505         (*addxf3_truncdf): Ditto.
18506         (subxf3): Ditto.
18507         (*subxf3_truncsf): Ditto.
18508         (*subxf3_truncdf): Ditto.
18509         (*maddxf4): Ditto.
18510         (*maddxf4_truncsf): Ditto.
18511         (*maddxf4_truncdf): Ditto.
18512         (*msubxf4): Ditto.
18513         (*msubxf4_truncsf): Ditto.
18514         (*msubxf4_truncdf): Ditto.
18515
18516 2010-08-04  Richard Guenther  <rguenther@suse.de>
18517
18518         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
18519         if either alias-set is zero.
18520
18521 2010-08-04  Richard Guenther  <rguenther@suse.de>
18522
18523         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
18524         * tree-ssa-ccp.c: ... here.
18525         * tree-ssa-copy.c: ... and here.
18526         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
18527         value_range_t): Move ...
18528         * tree-vrp.c: ... here.
18529         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
18530         (substitute_and_fold): Adjust prototype.
18531         * tree-ssa-propagate.c (replace_uses_in): Adjust.
18532         (replace_phi_args_in): Likewise.
18533         (substitute_and_fold): Take callback to query lattice instead
18534         of pointer to lattice.  Replace SSA name defs with lattice
18535         values first.
18536         * tree-ssa-ccp.c (ccp_finalize): Adjust.
18537         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
18538         (get_value): New function.
18539         (fini_copy_prop): Adjust.
18540         * tree-vrp.c (vrp_finalize): Adjust.
18541
18542 2010-08-04  Richard Guenther  <rguenther@suse.de>
18543
18544         PR middle-end/45176
18545         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
18546         points-to set for original MEM_REF.
18547
18548 2010-08-04  Richard Guenther  <rguenther@suse.de>
18549
18550         * tree-ssa-ccp.c (get_constant_value): New function.
18551         (get_rhs_assign_op_for_ccp): Remove.
18552         (valueize_op): New function.
18553         (ccp_fold): Use get_constant_value and valueize_op.
18554         (fold_const_aggregate_ref): Likewise.
18555         (ccp_fold_stmt): Likewise.
18556         (visit_assignment): Simplify.
18557
18558 2010-08-04  Richard Guenther  <rguenther@suse.de>
18559
18560         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
18561         * double-int.h (double_int_ctz): Declare.
18562         * double-int.c (double_int_ctz): New function.
18563
18564 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
18565
18566         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
18567         Define.
18568         picochip_expand_movmemhi : Expand movmem pattern.
18569         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
18570         Declare.
18571         * config/picochip/picochip.md (movmemhi) : New pattern.
18572
18573 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18574
18575         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
18576
18577 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
18578
18579         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
18580         NEG as operand of a MULT by merging it with the other operand.
18581         * combine.c (make_compound_operation): Use trunc_int_for_mode when
18582         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
18583         MULT.
18584         * config/arm/constraints.md (M): Examine only 32 bits of a
18585         HOST_WIDE_INT.
18586         * config/arm/predicates.md (power_of_two_operand): Likewise.
18587
18588 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18589
18590         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
18591         non-NOTE insns.
18592
18593 2010-08-03  Jan Hubicka  <jh@suse.cz>
18594
18595         * ipa-split.c (struct split_point): Add split_part_set_retval.
18596         (find_retval): Forward declare.
18597         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
18598         (consider_split): Compute current->split_part_set_retval.
18599         (visit_bb): Do not look into return value.
18600         (split_function): Handle !split_part_set_retval
18601
18602 2010-08-03  Martin Jambor  <mjambor@suse.cz>
18603
18604         * tree-sra.c (completely_scalarize_record): New parameter REF, create
18605         its own access->expr intead of using build_ref_for_offset.
18606
18607 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
18608
18609         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
18610         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
18611         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
18612         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
18613         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
18614         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
18615         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
18616         DEFAULT_SWITCH_TAKES_ARG.
18617         * config/rx/rx.opt (-patch=): Remove option.
18618         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
18619         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
18620         * doc/invoke.texi (RX Options): Remove -patch=.
18621         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
18622         (option_map): Remove --profile-blocks, --quiet and --silent.
18623
18624 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18625
18626         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
18627         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
18628         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
18629         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18630         Update calls to ix86_expand_compare and ix86_expand_branch.
18631         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
18632         ix86_expand_compare.
18633         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
18634         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18635         Make static.
18636         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
18637         and ix86_compare_op1.  Update calls to ix86_expand_compare.
18638         (ix86_expand_int_movcc): Ditto.
18639         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
18640         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
18641         (ix86_expand_setcc): Ditto.
18642         (ix86_expand_compare): Remove prototype.
18643         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
18644         ix86_compare_op0 and ix86_compare_op1.  Update calls
18645         to ix86_expand_branch to directly pass operands[1] and operands[2].
18646         (cbranchxf4): Ditto.
18647         (cbranch<MODEF:mode>4): Ditto.
18648         (cbranchcc4): Ditto.
18649         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
18650         Update calls to ix86_expand_setcc to directly pass operands[2] and
18651         operands[3].
18652         (cstorexf4): Ditto.
18653         (cstore<MODEF:mode>4): Ditto.
18654         (cstorecc4): Ditto.
18655
18656 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18657
18658         PR target/45063
18659         * caller-save.c (save_call_clobbered_regs): Remove regs from
18660         hard_regs_saved when they are set.
18661
18662 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
18663
18664         PR target/41089
18665         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
18666         as volatile.
18667
18668 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
18669
18670         * common.opt (ftree-loop-distribute-patterns): New.
18671         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
18672         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
18673         at -O3.
18674         * tree-data-ref.c (stores_zero_from_loop): New.
18675         * tree-data-ref.h (stores_zero_from_loop): Declared.
18676         * tree-loop-distribution.c (tree_loop_distribution): Call
18677         stores_zero_from_loop.
18678         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
18679
18680 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18681
18682         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
18683         into account.
18684
18685         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
18686         * config/arm/arm.c (thumb1_code): New variable.
18687         (arm_override_options): Set it.
18688         (thumb1_final_prescan_insn): Keep track of condition code status.
18689         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
18690         jumps that depend on them.
18691         * config/arm/arm.h (thumb1_code): Declare variable.
18692         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
18693         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
18694         thumb1_cc_mode.
18695         (CC_STATUS_INIT): New macro.
18696         * config/arm/constraints.md (Pd): New constraint.
18697         * config/arm/predicates.md (noov_comparison_operator): New predicate.
18698         * config/arm/arm.md (is_thumb1): New define_attr.
18699         (conds): Set default to "clob" when generating Thumb1 code.
18700         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
18701         code are set.  Use two-operand assembly syntax.
18702         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
18703         pattern.
18704         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
18705         codes are set.  Use two-operand assembly syntax.
18706         (zero_extendhisi splitter): Remove constraints.
18707         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
18708         thumb1_movsf_insn): Set conds attribute as appropriate.
18709         (cbranchsi4_insn): Use condition code status from struct
18710         machine_function to determine whether the comparison can be eliminated.
18711         Discourage the alternative using high registers.
18712         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
18713         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
18714         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
18715         subsi3_cbranch): Delete.
18716         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
18717         one subtract and one cbranch insn.
18718
18719         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
18720         thumb2_movdf_soft_insn): Delete patterns.
18721         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
18722         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
18723         (pool_range, neg_pool_range): Use them to define defaults.
18724         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
18725         and allow for TARGET_32BIT.
18726
18727         PR target/40457
18728         * config/arm/arm.h (arm_regs_in_sequence): Declare.
18729         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
18730         load_multiple_sequence, store_multiple_sequence): Delete
18731         declarations.
18732         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
18733         declarations.
18734         * config/arm/ldmstm.md: New file.
18735         * config/arm/arm.c (arm_regs_in_sequence): New array.
18736         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
18737         CHECK_REGS.  All callers changed.
18738         If SAVED_ORDER is nonnull, copy the computed order into it.
18739         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
18740         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
18741         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
18742         If SAVED_ORDER is nonnull, copy the computed order into it.
18743         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
18744         like REGS.  Handle Thumb mode.
18745         (arm_gen_load_multiple_1): New function, broken out of
18746         arm_gen_load_multiple.
18747         (arm_gen_store_multiple_1): New function, broken out of
18748         arm_gen_store_multiple.
18749         (arm_gen_multiple_op): New function, with code from
18750         arm_gen_load_multiple and arm_gen_store_multiple moved here.
18751         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
18752         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
18753         changed.
18754         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
18755         * config/arm/predicates.md (commutative_binary_operator): New.
18756         (load_multiple_operation, store_multiple_operation): Handle more
18757         variants of these patterns with different starting offsets.  Handle
18758         Thumb-1.
18759         * config/arm/arm.md: Include "ldmstm.md".
18760         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
18761         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
18762         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
18763         peepholes): Delete.
18764         * config/arm/ldmstm.md: New file.
18765         * config/arm/arm-ldmstm.ml: New file.
18766
18767         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
18768         if statement which adds extra costs to frame-related expressions.
18769
18770 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18771
18772         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
18773
18774 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
18775
18776         PR target/45142
18777         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
18778         alternative 2.
18779         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
18780         split V4SI operands.
18781
18782 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
18783
18784         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18785         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
18786         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
18787         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
18788
18789 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
18790
18791         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
18792         LOCAL_INCLUDE_DIR.
18793
18794 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
18795
18796         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
18797         used in the call to optab_for_tree_code.  Fix the second
18798         is_widening_mult_p call.  Check that both unwidened operands
18799         have the same sign.
18800
18801 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
18802
18803         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
18804
18805 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
18806
18807         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18808
18809 2010-07-30  DJ Delorie  <dj@redhat.com>
18810
18811         * config/rx/predicates.md (rx_constshift_operand): New.
18812         * config/rx/rx.md (zs_cond): New.
18813         (cbranchsi4): Remove mode.
18814         (*cbranchsi4_<code>): Likewise.
18815         (*tstbranchsi4_<code>): New.
18816         (*tstbranchsi4r_<code>): New.
18817         (*tstbranchsi4m_eq): New.
18818         (*tstbranchsi4m_ne): New.
18819         (cbranchsf4): Remove mode.
18820         (*cbranchsf4_<code>): Likewise.
18821
18822 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
18823
18824         * rtlanal.c (simplify_subreg_regno): Don't treat
18825         HARD_FRAME_POINTER_REGNUM specially.
18826
18827 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
18828
18829         * common.opt (-G): Don't define option here.
18830         * config/g.opt: New.
18831         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
18832         rs6000/powerpc and score targets.
18833         * opts.c (common_handle_option): Don't handle -G here.
18834         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
18835         * config/frv/frv.c (frv_handle_option): Handle -G.
18836         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
18837         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
18838         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
18839         * config/mips/mips.c (mips_handle_option): Handle -G.
18840         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
18841         * config/score/score.c (score_handle_option): Handle -G.
18842
18843 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
18844
18845         * config/mmix/mmix.c: Include basic-block.h.
18846
18847 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
18848
18849         PR debug/45055
18850         PR rtl-optimization/45137
18851         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
18852         prototypes.
18853         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
18854         New functions.
18855         * combine.c (next_nonnote_nondebug_insn): Removed.
18856         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
18857         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
18858         * sched-deps.c (sched_analyze_insn): Likewise.
18859         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
18860         * rtlanal.c (canonicalize_condition): Likewise.
18861         * postreload.c (reload_combine_recognize_pattern): Likewise.
18862         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
18863
18864 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
18865
18866         * config/i386/i386.md (int_cond): Remove code iterator.
18867         (fp_cond): Ditto.
18868         (cbranch<mode>4): Use ordered_comparison_operator predicate
18869         for operator0.
18870         (cstore<mode>4): Ditto for operator1.
18871         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
18872         (add<mode>cc): ditto.
18873
18874 2010-07-30  Richard Guenther  <rguenther@suse.de>
18875
18876         PR middle-end/45141
18877         * expr.c (expand_expr_real_1): Check for not handled base address.
18878
18879 2010-07-30  Richard Guenther  <rguenther@suse.de>
18880
18881         * ipa-prop.c (ipa_modify_formal_parameters): Use
18882         build_distinct_type_copy.
18883
18884 2010-07-30  Anthony Green  <green@moxielogic.com>
18885
18886         * config/moxie/rtems.h: New file.
18887         * config.gcc: Add moxie-rtems support.
18888
18889 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
18890
18891         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
18892         df flags as in run_fast_df_dce.
18893
18894 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
18895
18896         Revert:
18897         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
18898
18899         * rtl.def (NOTE): Swap operands 4 and 5.
18900         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
18901         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
18902         Adjust accordingly.
18903         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
18904
18905 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
18906
18907         PR debug/45110
18908         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
18909         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
18910         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
18911         formal parameters.
18912         (gen_decl_die): Change return type to dw_die_ref, return what
18913         gen_formal_parameter_die returned.
18914
18915 2010-07-29  Martin Jambor  <mjambor@suse.cz>
18916
18917         * dbgcnt.def (eipa_sra): New counter.
18918         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
18919
18920 2010-07-29  Xinliang David Li  <davidxl@google.com>
18921
18922         PR bootstrap/45119
18923         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
18924         in revision 162652.
18925
18926 2010-07-29  Richard Guenther  <rguenther@suse.de>
18927
18928         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
18929         (TV_TREE_STORE_CCP): Likewise.
18930         (TV_TREE_REDPHI): Likewise.
18931
18932 2010-07-29  Richard Guenther  <rguenther@suse.de>
18933
18934         * double-int.h (double_int_and_not): New function.
18935         * combine.c (try_combine): Use it.
18936         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
18937
18938 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
18939
18940         PR rtl-optimization/42575
18941         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
18942         Argument AU removed.  All callers changed.  Ignore artificial refs.
18943         Use return value of df_word_lr_simulate_defs to decide whether an insn
18944         is necessary.
18945         (fast_dce): Rename arg to WORD_LEVEL.
18946         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
18947         static.
18948         (pass_fast_rtl_byte_dce): Delete.
18949         * dce.h (run_word_dce): Declare.
18950         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
18951         All callers changed.  Simplify code to only deal with two-word regs.
18952         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
18953         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
18954         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
18955         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
18956         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
18957         (df_word_lr_mark_ref): Declare.
18958         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
18959         df_word_lr_simulate_uses): Declare or rename from byte variants.
18960         (df_byte_lr_simulate_artificial_refs_at_top,
18961         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
18962         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
18963         declarations.
18964         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
18965         (enum df_mm): Delete.
18966         * df-byte-scan.c: Delete file.
18967         * df-problems.c (df_word_lr_problem_data): Renamed from
18968         df_byte_lr_problem_data, all members deleted except for
18969         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
18970         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
18971         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
18972         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
18973         df_byte_lr_confluence_0): Delete functions.
18974         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
18975         callers changed.
18976         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
18977         Don't initialize members that were deleted, don't try to discover data
18978         about registers.  Ignore hard regs.
18979         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
18980         (df_word_lr_mark_ref): New function.
18981         (df_word_lr_bb_local_compute): Renamed from
18982         df_byte_bb_lr_local_compute; all callers changed.  Use
18983         df_word_lr_mark_ref.  Assert that artificial refs don't include
18984         pseudos.  Ignore hard registers.
18985         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
18986         Assert that exit block uses don't contain pseudos.
18987         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
18988         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
18989         callers changed.  Ignore hard regs.
18990         (df_word_lr_transfer_function): Renamed from
18991         df_byte_lr_transfer_function; all callers changed.
18992         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
18993         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
18994         changed.
18995         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
18996         callers changed.
18997         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
18998         confluence operator 0 set to NULL.
18999         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
19000         callers changed.
19001         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
19002         Return bool, true if bitmap changed or insn otherwise necessary.
19003         All callers changed.  Simplify using df_word_lr_mark_ref.
19004         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
19005         all callers changed.  Simplify using df_word_lr_mark_ref.
19006         * lower-subreg.c: Include "dce.h"
19007         (decompose_multiword_subregs): Call run_word_dce if df available.
19008         * Makefile.in (lower-subreg.o): Adjust dependencies.
19009         (df-byte-scan.o): Delete.
19010         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
19011
19012 2010-07-29  Richard Guenther  <rguenther@suse.de>
19013
19014         * tree.c (build_vector): Assert that the vector constant
19015         has enough elements.
19016         (build_vector_from_ctor): Pad with trailing zeros.
19017
19018 2010-07-29  Richard Guenther  <rguenther@suse.de>
19019
19020         PR tree-optimization/45120
19021         * tree-ssa-structalias.c (get_constraint_for_component_ref):
19022         Handle offset in DEREFs properly.
19023         (get_constraint_for_1): Handle MEM_REF offset properly.
19024
19025 2010-07-29  Richard Guenther  <rguenther@suse.de>
19026
19027         PR middle-end/45034
19028         * convert.c (convert_to_integer): Always use an unsigned
19029         type for narrowed negate and bitwise not.
19030
19031 2010-07-29  Ira Rosen  <irar@il.ibm.com>
19032
19033         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
19034         to outer loop when creating reduction epilogue for double reduction,
19035         and switch back to the inner loop when updating the phi nodes.
19036         Update uses of outer loop exit phi nodes in double reduction (instead
19037         of uses of reduction).
19038
19039 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
19040
19041         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
19042         popcount on power7 and parity on power6 systems.
19043         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
19044         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
19045         instructions.
19046
19047         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
19048         (UNSPEC_PARITY): Ditto.
19049         (SFDF): New iterator for SF/DF.
19050         (rreg2): New mode attribute for floating register constraint.
19051         (TARGET_FLOAT): New mode attribute for whether single/double float
19052         is supported.
19053         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
19054         pattern.
19055         (parity<mode>2_cmpb): New insn for parity on power6 and newer
19056         machines.
19057         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
19058         pattern.  Add support for fcpsgn instruction added in power6.
19059         (copysignsf3): Delete.
19060         (copysigndf3): Delete.
19061         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
19062         instead of if_then_else in RTL to avoid problems with -0.
19063
19064         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
19065         of if_then_else to mirror scalar code.
19066         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
19067         rs6000.md.
19068
19069         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
19070         instead of if_then_else.
19071
19072 2010-07-28  Xinliang David Li  <davidxl@google.com>
19073
19074         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
19075         (dump_cand): Dump var_before/after.
19076         (htab_inv_expr_eq): New function.
19077         (htab_inv_expr_hash): New function.
19078         (tree_ssa_iv_optimize_init): Support pseudo invariants.
19079         (add_candidate_1): consider base type precision.
19080         (set_use_iv_cost): New parameter.
19081         (adjust_setup_cost): Use profile information.
19082         (get_address_cost): Do not hard code width in computing address
19083         offset limits.
19084         (compare_aff_trees): New function.
19085         (get_loop_invariant_expr_id): New function.
19086         (get_computation_cost_at): New parameter and use profile information.
19087         (get_computation_cost): New parameter.
19088         (determine_use_iv_cost_generic): Pass new parameter.
19089         (determine_use_iv_cost_address): Ditto.
19090         (determine_use_iv_cost_condition): Ditto.
19091         (autoinc_possible_for_pair): Ditto.
19092         (determine_use_iv_costs): More dumps.
19093         (iv_ca_get_num_inv_exprs): New function.
19094         (iv_ca_recount_cost): Consider loop invariants in register pressure
19095         cost.
19096         (iv_ca_add_use): New parameter.
19097         (iv_ca_dump): Better dumping.
19098         (iv_ca_extend): New parameter.
19099         (try_add_cand_for): Attempt to get better partial solution.
19100         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
19101         (create_new-ivs): More dumps.
19102         (rewrite_use_compare): Ditto.
19103         (free_loop_data): More cleanup.
19104         (treee_ssa_iv_optimize_finalize): Ditto.
19105
19106 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
19107
19108         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
19109         * config/i386/i386.c (ix86_profile_before_prologue): New.
19110         (override_options): Add special handling for -mfentry.
19111         (ix86_function_regparm): Likewise.
19112         (ix86_function_sseregparm): Likewise.
19113         (ix86_frame_pointer_required): Likewise.
19114         (ix86_expand_prologue): Check for ms_hook_prologue.
19115         (x86_function_profiler): Adjust mcount output.
19116         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
19117         * config/i386/i386.opt (mfentry): New.
19118         * doc/invoke.texi (mfentry): Add documentation.
19119         * doc/tm.texi: Regenerated..
19120         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
19121         * final.c (final_start_function): Replace macro
19122         PROFILE_BEFORE_PROLOGUE by target hook.
19123         * function.c (thread_prologue_and_epilogue_insns): Likewise.
19124         * target.def (profile_before_prologue): New hook.
19125         * targhooks.c (default_profile_before_prologue): New.
19126         * targhooks.h (default_profile_before_prologue): New.
19127
19128 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
19129
19130         PR debug/45105
19131         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
19132
19133         PR debug/45103
19134         * dwarf2out.c (dwarf2out_var_location): Always consider
19135         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
19136
19137 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
19138
19139         PR rtl-optimization/45107
19140         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
19141
19142 2010-07-28  Richard Guenther  <rguenther@suse.de>
19143
19144         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
19145         (set_lattice_value): Do not query an old default value.
19146         (get_value_for_expr): New function.  Properly canonicalize
19147         float values.
19148         (ccp_visit_phi_node): Use it.
19149
19150 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
19151
19152         * config/arm/arm.c (arm_pcs_default): Remove static.
19153         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
19154         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
19155         (arm_pcs_default): Declare.
19156
19157 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
19158
19159         * config/rs6000/rs6000.c (rs6000_override_options):
19160         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
19161         ... to darwin_rs6000_override_options.
19162         (rs6000_return_in_memory): Update preceding comment for darwin
19163         64 bit ABI.  Use TARGET_MACHO inline.
19164         (rs6000_darwin64_struct_check_p): New.
19165         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
19166         (function_arg): Likewise.
19167         (rs6000_arg_partial_bytes): Likewise.
19168         (rs6000_function_value): Likewise.
19169
19170 2010-07-28  Andi Kleen  <ak@linux.intel.com>
19171
19172         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
19173
19174 2010-07-28  Richard Guenther  <rguenther@suse.de>
19175
19176         PR middle-end/44903
19177         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
19178         targets try harder to not generate unaligned accesses.
19179
19180 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
19181
19182         PR rtl-optimization/45101
19183         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
19184         for gcse-las.
19185
19186 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
19187
19188         PR tree-optimization/44885
19189         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
19190         with non-aliased component.
19191
19192 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
19193
19194         * config/darwin-driver.c (SWITCH_TAKES_ARG,
19195         WORD_SWITCH_TAKES_ARG): Remove.
19196         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
19197         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
19198         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
19199         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
19200         definitions from gcc.c.
19201         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
19202         defaults.h.
19203         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
19204         Move to defaults.h.
19205         * opts-common.c: Include tm.h.
19206         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
19207         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
19208         Handle more than one argument.  Set canonical_option_num_elements.
19209         (decode_cmdline_options_to_array): Set
19210         canonical_option_num_elements and trailing elements of
19211         canonical_option.
19212         * opts.h (struct cl_decoded_option): Allow four elements in
19213         canonical_option.  Add field canonical_option_num_elements.
19214         * Makefile.in (opts-common.o): Update dependencies.
19215
19216 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
19217
19218         PR middle-end/44790
19219         PR middle-end/44993
19220         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
19221         sure the base has address_mode before adding the offset.
19222
19223 2010-07-27  Xinliang David Li  <davidxl@google.com>
19224
19225         * tree-flow.h (create_mem_ref): Add one new parameter.
19226         * tree-ssa-address.c (create_mem_ref): New parameter.
19227         (addr_to_parts): Ditto.
19228         (move_variant_to_index): New function.
19229         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
19230
19231 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19232
19233         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
19234         4 and 5.
19235         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
19236         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
19237         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
19238         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
19239         CODE_LABELs and NOTEs.
19240         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
19241         * combine.c (try_combine): Likewise.
19242         * ira.c (setup_prohibited_mode_move_regs): Likewise.
19243         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
19244
19245 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19246
19247         * coretypes.h (struct cl_option_handlers): Declare.
19248         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
19249         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
19250         * langhooks-def.h (lhd_handle_option): Declare.
19251         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
19252         * langhooks.c (lhd_handle_option): New.
19253         * langhooks.h (struct lang_hooks): Update prototype and return
19254         value type of handle_option hook.
19255         * optc-gen.awk: Generate target_flags_explicit definition for the
19256         driver.
19257         * opts-common.c: Include diagnostic.h.
19258         (handle_option): Move from opts.c.  Update prototype and return
19259         value type.  Use handlers structure.
19260         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
19261         handlers structure.
19262         (set_option): Move from opts.c.
19263         * opts.c (common_handle_option): Update prototype and return value
19264         type.  Update calls to handle_option and enable_warning_as_error.
19265         (unknown_option_callback, post_handling_callback,
19266         lang_handle_option, target_handle_option): New.
19267         (handle_option, read_cmdline_option): Move to opts-common.c.
19268         (read_cmdline_options): Update prototype.  Update call to
19269         read_cmdline_option.
19270         (decode_options): Initialize and use handlers structure.
19271         (set_option): Move to opts-common.c.
19272         (enable_warning_as_error): Update prototype.  Update call to
19273         handle_option.
19274         * opts.h (struct cl_option_handler_func, struct
19275         cl_option_handlers): New.
19276         (handle_option, enable_warning_as_error): Update prototypes.
19277         (read_cmdline_option): Declare.
19278         * Makefile.in (opts-common.o): Update dependencies.
19279
19280 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19281
19282         * config/arm/arm.c (params.h): Include.
19283         (arm_override_options): Tune gcse-unrestricted-cost.
19284         * config/arm/t-arm (arm.o): Define dependencies.
19285
19286 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19287
19288         PR target/42495
19289         PR middle-end/42574
19290         * basic-block.h (get_dominated_to_depth): Declare.
19291         * dominance.c (get_dominated_to_depth): New function, use
19292         get_all_dominated_blocks as a base.
19293         (get_all_dominated_blocks): Use get_dominated_to_depth.
19294
19295         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
19296         (hoist_exprs): Remove.
19297         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
19298         (compute_code_hoist_vbeinout): Add debug print outs.
19299         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
19300
19301         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
19302         quadratic behavior.
19303         * params.h (MAX_HOIST_DEPTH): New macro.
19304         * doc/invoke.texi (max-hoist-depth): Document.
19305
19306 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19307
19308         PR rtl-optimization/40956
19309         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
19310         constants.
19311
19312 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19313
19314         PR target/42495
19315         PR middle-end/42574
19316         * config/arm/arm.c (legitimize_pic_address): Use
19317         gen_calculate_pic_address pattern to emit calculation of PIC address.
19318         (will_be_in_index_register): New function.
19319         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
19320         (thumb1_legitimate_address_p): Use it provided !strict_p.
19321         * config/arm/arm.md (calculate_pic_address): New expand and split.
19322
19323 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19324
19325         PR target/42495
19326         PR middle-end/42574
19327         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
19328         * config/arm/arm.md (define_split "J", define_split "K"): Make
19329         IRA/reload friendly.
19330
19331 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19332
19333         * gcse.c (insert_insn_end_basic_block): Update signature, remove
19334         unused checks.
19335         (pre_edge_insert, hoist_code): Update.
19336
19337 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19338
19339         PR target/42495
19340         PR middle-end/42574
19341         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
19342
19343 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19344
19345         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
19346
19347 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19348
19349         PR rtl-optimization/40956
19350         PR target/42495
19351         PR middle-end/42574
19352         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
19353         for hoisting.
19354         (hoist_code): Count occurences in current block too.
19355
19356 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19357
19358         * gcse.c (struct expr:max_distance): New field.
19359         (doing_code_hoisting_p): New static variable.
19360         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
19361         simple expressions, don't change behavior for PRE.  Set max_distance.
19362         (insert_expr_in_table): Set new max_distance field.
19363         (hash_scan_set): Update.
19364         (hoist_expr_reaches_here_p): Stop search after max_distance
19365         instructions.
19366         (find_occr_in_bb): New static function.  Use it in ...
19367         (hoist_code): Calculate sizes of basic block before any changes are
19368         done.  Pass max_distance to hoist_expr_reaches_here_p.
19369         (one_code_hoisting_pass): Set doing_code_hoisting_p.
19370
19371         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
19372         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
19373         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
19374         macros.
19375         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
19376         Document.
19377
19378 2010-07-27  Jeff Law  <law@redhat.com>
19379             Maxim Kuvyrkov  <maxim@codesourcery.com>
19380
19381         * gcse.c (compute_transpout, transpout): Remove, move logic
19382         to prune_expressions.
19383         (compute_pre_data): Move pruning of trapping expressions ...
19384         (prune_expressions): ... here.  New static function.
19385         (compute_code_hoist_data): Use it.
19386         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
19387
19388 2010-07-27  Xinliang David Li  <davidxl@google.com>
19389
19390         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
19391         (rewrite_use_address): Adjust iv update position when needed.
19392
19393 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19394
19395         * dbgcnt.def (hoist_insn): New debug counter.
19396         * gcse.c (hoist_code): Use it.
19397
19398 2010-07-27  Xinliang David Li  <davidxl@google.com>
19399
19400         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
19401         (niter_for_single_dom_exit): Passes additional parameter.
19402         (iv_period): Fix comments.
19403         (may_eliminate_iv): Handles multiple exit loops properly.
19404         (free_tree_niter_desc): New function.
19405         (free_loop_data): Frees up loop iteration descriptors.
19406
19407 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19408
19409         PR target/44542
19410         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
19411         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
19412         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
19413         (expand_one_var): Don't consider DECL_ALIGN for variables for
19414         which expand_one_stack_var_at has been already called.
19415
19416         PR testsuite/44701
19417         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
19418         constraints on IA-64.
19419
19420 2010-07-27  Jie Zhang  <jie@codesourcery.com>
19421
19422         PR target/44290
19423         Revert:
19424         2010-07-23  Jie Zhang  <jie@codesourcery.com>
19425
19426         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19427         false if ! tree_versionable_function_p.
19428
19429 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19430
19431         * dwarf2out.c (add_data_member_location_attribute): Use
19432         add_AT_unsigned instead of add_AT_int if offset is non-negative.
19433
19434 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19435
19436         * postreload.c (try_replace_in_use): New static function.
19437         (reload_combine_recognize_const_pattern): Use it here.  Allow
19438         substituting into a final add insn, and substituting into a memory
19439         reference in an insn that sets the reg.
19440
19441 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19442
19443         * common.opt (o): Add MissingArgError.
19444         * doc/options.texi (MissingArgError): Document.
19445         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
19446         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
19447         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
19448         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
19449         * langhooks.h (struct lang_hooks): Remove missing_argument.
19450         * optc-gen.awk: Handle MissingArgError and output new structure
19451         field initializers.
19452         * opts.c (read_cmdline_option): Use missing_argument_error field
19453         instead of missing_argument langhook.
19454         * opts.h (struct cl_option): Add missing_argument_error field.
19455         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
19456
19457 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19458
19459         PR target/29090
19460         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
19461         Darwin64 ABI, for zero-sized objects.
19462
19463 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19464
19465         PR target/35491
19466         PR target/29090
19467
19468         Merge from Apple local 4.2.1.
19469         2005-05-11  Stan Shebs  <shebs@apple.com>
19470         Fix 64-bit varargs for Darwin (Radar 4028089).
19471         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
19472         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
19473         Add argument, add case for 8-byte register half-filled with a float.
19474         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
19475         single-precision floats specially.
19476
19477 2010-07-27  Ira Rosen  <irar@il.ibm.com>
19478
19479         PR tree-optimization/44152
19480         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
19481         complex numbers for further check.
19482         (vect_supported_load_permutation_p): Check nodes with
19483         complex numbers.
19484
19485 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19486
19487         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
19488         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
19489         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
19490         (LANG_HOOKS_INITIALIZER): Add new hooks.
19491         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
19492         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
19493         and complain_wrong_lang_p.  Update init_options prototype.
19494         * c-objc-common.c (c_initialize_diagnostics): First call
19495         c_common_initialize_diagnostics.
19496         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
19497         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
19498         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
19499         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
19500         (hook_uint_void_0): New.
19501         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
19502         (hook_uint_void_0): New.
19503         * opts-common.c (decode_cmdline_option,
19504         decode_cmdline_options_to_array): Also fill in canonical_option field.
19505         * opts.c (complain_wrong_lang): Use langhook to determine whether
19506         to complain instead of special-casing LTO.
19507         (decode_options): Separate lang_mask determination with
19508         option_lang_mask hook from call of init_options hook.
19509         * opts.h (struct cl_decoded_option): Add canonical_option.
19510
19511 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19512
19513         PR tree-optimization/45083
19514         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
19515
19516 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19517
19518         * postreload.c (reload_combine_recognize_const_pattern): Move test
19519         for limiting the insn movement to the right scope.
19520
19521         PR rtl-optimization/45051
19522         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
19523         than reg_mentioned_p.
19524
19525 2010-07-26  Richard Henderson  <rth@redhat.com>
19526
19527         PR target/44132
19528         * tree-emutls.c: New file.
19529         * Makefile.in (OBJS-common): Add it.
19530         * tree-pass.h (pass_ipa_lower_emutls): Declare.
19531         * passes.c (init_optimization_passes): Add it.
19532
19533         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
19534         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
19535         * expr.c (emutls_var_address): Delete.
19536         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
19537         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
19538         (emutls_finish): Delete.
19539         * toplev.c (compile_file): Don't call it.
19540         * tree.h (emutls_decl): Delete.
19541         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
19542         (emutls_finish, emutls_finalize_control_var): Delete.
19543         (emutls_object_type): Move to tree-emutls.c.
19544         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
19545         default_emutls_var_fields, get_emutls_object_type,
19546         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
19547         default_emutls_var_init): Likewise.
19548         (get_variable_section): Don't special case emutls.
19549         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
19550         default_elf_select_section, default_unique_section,
19551         default_encode_section_info): Likewise.
19552         * varpool.c (decide_is_variable_needed): Likewise.
19553         * gimple-iterator.c (update_call_edge_frequencies): New
19554         (gsi_insert_on_edge_immediate): Use it.
19555         (gsi_insert_seq_on_edge_immediate): Likewise.
19556         (gsi_commit_one_edge_insert): Likewise.
19557
19558         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
19559         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
19560         (x86_64_elf_unique_section): Likewise.
19561
19562 2010-07-26  Jan Hubicka  <jh@suse.cz>
19563
19564         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
19565         GTY((skip)).
19566
19567 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
19568
19569         * target.def (output_source_filename): New hook.
19570         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
19571         * doc/tm.texi: Regenerate.
19572         * toplev.c (output_file_directive) Remove function.
19573         * toplev.h (output_file_directive) Remove.
19574         * output.h (default_asm_output_source_filename,
19575         output_file_directive): Declare.
19576         * varasm.h (default_asm_output_source_filename,
19577         output_file_directive): New functions.
19578
19579         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
19580         * config/mips/mips-protos.h (mips_output_filename): Remove.
19581         * config/mips/mips.c (mips_output_filename): Make Static.
19582         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
19583
19584 2010-07-26  Richard Guenther  <rguenther@suse.de>
19585
19586         PR tree-optimization/43784
19587         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
19588         if the destination is used by the call.
19589
19590 2010-07-26  Richard Guenther  <rguenther@suse.de>
19591
19592         PR middle-end/45073
19593         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
19594         SSA updating on being in SSA form.
19595
19596 2010-07-26  Richard Guenther  <rguenther@suse.de>
19597
19598         PR middle-end/45056
19599         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
19600
19601 2010-07-26  Richard Guenther  <rguenther@suse.de>
19602
19603         PR tree-optimization/45071
19604         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
19605         adjust op->opcode.
19606
19607 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
19608
19609         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
19610         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
19611         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
19612         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
19613         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
19614         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
19615         save_r31, return_r31, save_interrupt, return_interrupt,
19616         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
19617         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
19618         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
19619         new ABI requirements.
19620         (save_r6_r9, L_callt_save_r6_r9): Remove.
19621         * config/v850/predicates.md (even_reg_operand, disp23_operand,
19622         const_float_1_operand const_float_0_operand): New Predicates.
19623         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
19624         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
19625         * config/v850/t-v850: Update multilibs for new target variants.
19626         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
19627         * config/v850/t-v850e: Likewise.
19628         * config/v850/v850.c (v850_issue_rate): New.
19629         (v850_strict_argument_naming): New.
19630         (function_arg): Modify to generate a different ABI.
19631         (print_operand): Update case 'z' to support float modes.
19632         (output_move_single): Modify to generate appropriate and better
19633         assembly.
19634         (v850_float_z_comparison_operator, v850_select_cc_mode,
19635         v850_float_nz_comparison_operator,  v850_gen_float_compare,
19636         v850_gen_compare): New functions to support comparison of float values.
19637         (ep_memory_offset): Add support for V850E2 targets.
19638         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
19639         (INTERRUPT_REGPARM_NUM): Remove.
19640         (compute_register_save_size): Add extra case to save/restore long call.
19641         (use_prolog_function): New function to support prologue.
19642         (expand_prologue): Add support for V850E2 targets and modified
19643         as per the current ABI requirements.
19644         (expand_epilogue): Likewise.
19645         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
19646         (construct_save_jarl): Likewise.
19647         (construct_dispose_instruction): Update as per the current ABI
19648         requirements.
19649         (construct_prepare_instruction): Likewise.
19650         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
19651         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
19652         (CPP_SPEC): Updated to support v850e2 targets.
19653         (STRICT_ALIGNMENT): Modified.
19654         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
19655         (FIXED_REGISTERS): Likewise.
19656         (CALL_USED_REGISTERS): Likewise.
19657         (CONDITIONAL_REGISTER_USAGE): Updated.
19658         (HARD_REGNO_MODE_OK): Updated.
19659         (reg_class): Updated to add even registers.
19660         (REG_CLASS_NAMES): Likewise.
19661         (REG_CLASS_CONTENTS): Likewise.
19662         (REGNO_REG_CLASS): Updated for CC registers.
19663         (REG_CLASS_FROM_LETTER): Added support for even registers.
19664         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
19665         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
19666         ARG_POINTER_REGNUM): Updated.
19667         (FUNCTION_ARG_ADVANCE): Define.
19668         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
19669         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
19670         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
19671         (GO_IF_LEGITIMATE_ADDRESS): Updated.
19672         (SELECT_CC_MODE): Define.
19673         (REGISTER_NAMES): Updated to add psw and fcc registers.
19674         (ADDITIONAL_REGISTER_NAMES): Updated.
19675         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
19676         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
19677         * config/v850/v850.md (define_constants): Define new constants.
19678         (type): Update store,bit1,macc,div,fpu and single attributes.
19679         (cpu): New attribute.
19680         (cc): Add set_z attribute.
19681         (unsign23byte_load, sign23byte_load, unsign23hword_load,
19682         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
19683         23word_store): New instructions for 23-bit displacement load and store.
19684         (movqi_internal, movhi_internal): Update the attributes.
19685         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
19686         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
19687         the attributes.
19688         (v850_tst1): Modified using CC_REGNUM.
19689         (tstsi): Remove.
19690         (cmpsi): Modified as define_expand from define_insn.
19691         (cmpsi_insn, cmpsf, cmpdf): New instructions.
19692         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
19693         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
19694         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
19695         one_cmplsi2): Clobber the CC_REGNUM register.
19696         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
19697         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
19698         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
19699         (setf_insn, set_z_insn, set_nz_insn): New instructions for
19700         v850e2v3 target.
19701         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
19702         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
19703         targets.
19704         (sasf_1, sasf_2): Remove.
19705         (sasf): New instruction.
19706         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
19707         targets. CC_REGNUM register is clobbered and attributes are
19708         updated.
19709         (branch_z_normal, branch_z_invert, branch_nz_normal,
19710         branch_nz_invert): New branch related instructions.
19711         (jump): Updated the attributes.
19712         (switch): Update to support new targets. CC_REGNUM register is
19713         clobbered and attributes are updated.
19714         (call_internal_short, call_internal_long, call_value_internal_short,
19715         call_value_internal_long): Updated the attributes.
19716         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
19717         clobbered and attributes are updated.
19718         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
19719         Update to support new targets. CC_REGNUM register is clobbered.
19720         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
19721         instructions.
19722         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
19723         are updated.
19724         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
19725         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
19726         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
19727         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
19728         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
19729         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
19730         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
19731         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
19732         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
19733         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
19734         point instructions defined for V850e2v3 target.
19735         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
19736         Add support for V850E2 targets and CC_REGNUM register is clobbered.
19737         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
19738         support for new targets.
19739         * config/v850/v850-modes.def: New file.
19740         * config/v850/v850.opt(mstrict-align): Remove.
19741         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
19742         mv850e2v3): New command line options for V850.
19743         * config.gcc: Update the newly added files.
19744         * doc/invoke.texi: Update the newly added command line options for
19745         V850 target.
19746
19747 2010-07-26  Richard Guenther  <rguenther@suse.de>
19748
19749         PR tree-optimization/45052
19750         * ipa-pure-const.c (check_stmt): Check volatileness.
19751
19752 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19753
19754         PR target/44707
19755         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
19756         * config/sparc/sparc.c: Include reload.h.
19757         (legitimize_tls_address): Rename into...
19758         (sparc_legitimize_tls_address): ...this.
19759         (legitimize_pic_address): Rename into...
19760         (sparc_legitimize_pic_address): ...this.
19761         (sparc_expand_move): Adjust to above renaming.
19762         (sparc_tls_referenced_p): Likewise.
19763         (sparc_legitimize_tls_address): Likewise.
19764         (sparc_legitimize_pic_address): Likewise.
19765         (sparc_legitimize_address): Likewise.
19766         (sparc_output_mi_thunk): Likewise.
19767         (sparc_legitimize_reload_address): New global function.  Recognize
19768         (lo_sum (high ...) ...) patterns generated by earlier passes.
19769         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
19770
19771 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19772
19773         PR target/44484
19774         * config/sparc/predicates.md (memory_reg_operand): Delete.
19775         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
19776         (*sync_compare_and_swap): Encode the address form in the pattern.
19777         (*sync_compare_and_swapdi_v8plus): Likewise.
19778
19779 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
19780
19781         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
19782         Streamline paragraph on compatibility with the system compiler.
19783
19784 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
19785
19786         PR middle-end/45035
19787         * alias.c (true_dependence_1): Fix thinko in merge of old
19788         true_dependence and canon_true_dependence.
19789
19790 2010-07-23  Jan Hubicka  <jh@suse.cz>
19791
19792         * lto-streamer-out.c (write_symbol): Fix visibilities of external
19793         references.
19794
19795 2010-07-23  Le-Chun Wu  <lcwu@google.com>
19796
19797         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
19798         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
19799         and an unnecessary assignment.
19800         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
19801         self-assign warning.
19802         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
19803         unnecessary self-init.
19804
19805 2010-07-23  Richard Guenther  <rguenther@suse.de>
19806
19807         PR lto/43071
19808         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
19809         for -flto and -fwhopr.
19810
19811 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
19812
19813         PR target/41943
19814         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
19815         (stmp-int-hdrs): Prefix/postfix headers by include_next.
19816         * config.gcc (user_headers_inc_next_pre): New.
19817         (user_headers_inc_next_post): Likewise.
19818         (*-w64-mingw*): Use for float.h post-fixing, and for
19819         stddef.h/stdarg.h pre-fixing by include_next.
19820         * configure.ac (user_headers_inc_next_post): New.
19821         (user_headers_inc_next_pre): New.
19822         * configure: Regenerated.
19823
19824 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19825
19826         * configure.ac: Don't disable TLS on Solaris 8/9 by default
19827         Set tga_func for Solaris 2/x86 resp. SPARC.
19828         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
19829         (LIB_THREAD_LDFLAGS_SPEC): Define.
19830         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
19831         * configure: Regenerate.
19832         * config.in: Regenerate.
19833         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
19834         -pthread, -threads, LIB_TLS_SPEC with -pthread.
19835         * doc/install.texi (Specific, *-*-solaris2*): Document use of
19836         alternate thread libraries on Solaris 8.
19837         Document TLS patch requirements.
19838         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
19839         Document tls.
19840
19841         PR target/18788
19842         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
19843         -shared.
19844
19845 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
19846
19847         * tree.h (struct tree_base): Add nameless_flag bitfield.
19848         (TYPE_NAMELESS, DECL_NAMELESS): Define.
19849         * omp-low.c (create_omp_child_function, scan_omp_parallel,
19850         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
19851         DECL_ARTIFICIAL where needed.
19852         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
19853         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
19854         has DECL_NAMELESS set.
19855
19856 2010-07-23  Martin Jambor  <mjambor@suse.cz>
19857
19858         PR tree-optimization/44915
19859         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
19860         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
19861         (analyze_function): Likewise.
19862
19863 2010-07-23  Martin Jambor  <mjambor@suse.cz>
19864
19865         PR tree-optimization/44914
19866         * tree-sra.c (sra_modify_function_body): Return true if CFG was
19867         changed, add purging dead eh edges.
19868         (ipa_sra_modify_function_body): Return true if CFG was changed,
19869         simplify purging dead eh edges.
19870         (modify_function): Return true if CFG was changed.
19871         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
19872         was changed.
19873         (ipa_early_sra): Likewise.
19874
19875 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19876
19877         PR target/44290
19878         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
19879         if "naked".
19880         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19881         false if ! tree_versionable_function_p.
19882
19883 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
19884
19885         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
19886         * ipa-pure-const.c (special_builtlin_state): Remove
19887         BUILT_IN_ARGS_INFO case.
19888         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
19889         * builtins.c (expand_builtin): Likewise.
19890         (expand_builtin_args_info): Remove.
19891         * doc/tm.texi (__builtin_args_info): Remove.
19892         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
19893         * doc/tm.text.in: Likewise.
19894
19895 2010-07-23  Richard Guenther  <rguenther@suse.de>
19896
19897         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
19898         (lto_symtab_merge_decls_2): Likewise.
19899         * tree-ssa.c (useless_type_conversion_p): Likewise.
19900         * lto-streamer-in.c (input_gimple_stmt): Likewise.
19901         * gimple.c (gtc_visited2, gtc_ob2): Remove.
19902         (struct type_pair_d): Make same_p an array indexed by mode.
19903         Update comment.
19904         (lookup_type_pair): Update initialization.
19905         (struct sccs): Adjust same_p type.
19906         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
19907         Adjust.
19908         (print_gimple_types_stats): Likewise.
19909         * gimple.h (enum gtc_mode): New.
19910         (gimple_types_compatible_p): Adjust prototype.
19911
19912 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
19913
19914         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
19915         again after processing insn.
19916
19917 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19918
19919         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
19920         proper words when !tree_versionable_function_p.
19921
19922 2010-07-23  Richard Guenther  <rguenther@suse.de>
19923
19924         PR tree-optimization/45037
19925         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
19926
19927 2010-07-23  Jie Zhang  <jie@codesourcery.com>
19928
19929         * doc/extend.texi: Remove IP2K from the description of naked attribute.
19930         Add MCORE instead.
19931
19932 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19933
19934         PR lto/44992
19935         * lto-opts.c (lto_write_options): Add NULL file_data argument to
19936         lto_get_section_name.
19937         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
19938         * lto-streamer-out.c (produce_asm): Likewise.
19939         (copy_function): Likewise.
19940         (produce_symtab): Likewise.
19941         (produce_asm_for_decls): Likewise.
19942         * lto-streamer.c (lto_get_section_name): Add file_data argument.
19943         Rewrite to add random postfix to LTO sections.
19944         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
19945         (lto_get_section_name): Add file_data argument to prototype.
19946
19947 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19948
19949         * lto-section-in.c (lto_section_name): Synchronize names
19950         with lto_get_section_name.
19951
19952 2010-07-10  Andi Kleen  <ak@linux.intel.com>
19953
19954         * lto-opts.c (lto_read_file_options): Check for missing section.
19955
19956 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
19957
19958         * ira.c (check_allocation): Correctly handle the case where an allocno
19959         with two objects was allocated to a single reg.
19960
19961 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
19962
19963         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
19964         (is_widening_mult_p): Likewise.
19965         (convert_to_widen): Use them.
19966         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
19967         well as integer ones.
19968
19969 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
19970
19971         * alias.c (true_dependence_1): New function, merged version of
19972         true_dependence and canon_true_dependence.
19973         (true_dependence): Simplify.
19974         (canon_true_dependence): Simplify.
19975
19976 2010-07-22  Richard Henderson  <rth@redhat.com>
19977
19978         PR target/45027
19979         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
19980         of V4SFmode for the SSE saves; increase stack alignment if needed.
19981         (ix86_gimplify_va_arg): Don't increase stack alignment here.
19982
19983 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
19984
19985         PR bootstrap/45028
19986         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
19987         call cprop_find_used_regs again via note_uses.
19988
19989 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
19990
19991         * alias.c (get_alias_set): Fix formatting issues.
19992
19993 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
19994
19995         PR middle-end/44878
19996         * stmt.c (expand_value_return):  Call promote_function_mode with
19997         a for_return argument of 2 when returning by reference.
19998
19999 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
20000
20001         PR debug/45024
20002         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
20003         unit DIE if we can find the scope DIE.
20004
20005 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
20006
20007         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
20008         changed.  Initialize OBJECT_SUBWORD.
20009         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
20010         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
20011         all callers changed.
20012         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
20013         (finish_allocno): Likewise.
20014         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
20015         (remove_low_level_allocnos): Likewise.
20016         (update_bad_spill_attribute): Likewise.
20017         (setup_min_max_allocno_live_range_point): Likewise.
20018         (sort_conflict_id_map): Likewise.
20019         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
20020         (ior_hard_reg_conflicts): New function.
20021         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
20022         (compress_conflict_vecs): Iterate over objects, not allocnos.
20023         (ira_add_live_range_to_object): New function.
20024         (object_range_compare_func): Renamed from allocno_range_compare_func.
20025         All callers changed.
20026         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
20027         subobjects, widen the min/max range of the lowest-order object to
20028         potentially include all other such low-order objects.
20029         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
20030         (check_allocation): Likewise.  Use more fine-grained tests for register
20031         conflicts.
20032         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
20033         allocno subobjects.
20034         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
20035         choices about which bits to set in each set.  Don't use
20036         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
20037         using the multiple sets we computed.
20038         (push_allocno_to_stack): Iterate over allocno subobjects.
20039         (all_conflicting_hard_regs_coalesced): New static function.
20040         (setup_allocno_available_regs_num): Use it.
20041         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
20042         subobjects.
20043         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
20044         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
20045         by ALLOCNO_NUM_OBJECTS.
20046         (calculate_spill_cost): Likewise.
20047         (color_pass): Express if statement in a more normal way.
20048         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
20049         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
20050         (setup_slot_coalesced_allocno_live_ranges): Likewise.
20051         (allocno_reload_assign): Likewise.
20052         (ira_reassign_pseudos): Likewise.
20053         (fast_allocation): Likewise.
20054         * ira-conflicts.c (build_conflict_bit_table): Likewise.
20055         (print_allocno_conflicts): Likewise.
20056         (ira_build_conflicts): Likewise.
20057         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
20058         callers changed.  Test subword 0 of each allocno for conflicts.
20059         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
20060         callers changed.  Iterate over allocno subobjects.
20061         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
20062         * ira-int.h (struct ira_allocno): New member: num_objects.
20063         Rename object to objects and change it into an array.
20064         (ALLOCNO_OBJECT): Add new argument N.
20065         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
20066         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
20067         (ior_hard_reg_conflicts): Declare.
20068         (ira_add_live_range_to_object): Declare.
20069         (ira_allocno_object_iterator): New.
20070         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
20071         (FOR_EACH_ALLOCNO_OBJECT): New macro.
20072         * ira-lives.c (objects_live): Renamed from allocnos_live; all
20073         uses changed.
20074         (allocnos_processed): New sparseset.
20075         (make_object_born): Renamed from make_allocno_born; take an
20076         ira_object_t argument.  All callers changed.
20077         (make_object_dead): Renamed from make_allocno_dead; take an
20078         ira_object_t argument.  All callers changed.
20079         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
20080         All callers changed.
20081         (mark_pseudo_regno_live): Iterate over allocno subobjects.
20082         (mark_pseudo_regno_dead): Likewise.
20083         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
20084         functions.
20085         (mark_ref_live): Detect subword accesses and call
20086         mark_pseudo_regno_subword_live as appropriate.
20087         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
20088         (process_bb_nodes_live): Deal with object-related updates first; set
20089         and test bits in allocnos_processed to avoid computing allocno
20090         statistics more than once.
20091         (create_start_finish_chains): Iterate over objects, not allocnos.
20092         (print_object_live_ranges): New function.
20093         (print_allocno_live_ranges): Use it.
20094         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
20095         and objects_live.
20096
20097 2010-07-22  Richard Guenther  <rguenther@suse.de>
20098
20099         PR lto/42451
20100         * gimple.c (gtc_next_dfs_num): New global.
20101         (struct sccs): Make value a union, add integer same_p member.
20102         (gtc_visit): New function.
20103         (gimple_types_compatible_p_1): New function, split out from ...
20104         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
20105         (iterative_hash_gimple_type): Adjust for sccs change.
20106
20107 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20108
20109         PR tree-optimization/44891
20110         * tree-sra.c: Include gimple-pretty-print.h.
20111         (replace_uses_with_default_def_ssa_name): Renamed to
20112         get_repl_default_def_ssa_name, return the new SSA name instead of
20113         replacing the old one.
20114         (sra_modify_assign): Dump a message when removing a load, if the LHS
20115         is an SSA_NAME, do not do any propagation, just set the RHS to a
20116         default definition SSA NAME, type convert if necessary.
20117         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
20118
20119 2010-07-22  Richard Guenther  <rguenther@suse.de>
20120
20121         PR tree-optimization/45017
20122         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
20123         TYPE_PRECISION of integral types in addition to size.
20124
20125 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
20126
20127         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
20128         when no C library is specified.
20129
20130 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20131
20132         * ipa-prop.h (struct ipa_node_params): Updated comment.
20133         (struct ipa_edge_args): Likewise.
20134         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
20135
20136 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20137
20138         * cgraphunit.c (verify_edge_count_and_frequency): New function.
20139         (verify_cgraph_node): Verify frequencies of indirect edges.
20140         * tree-inline.c (tree_function_versioning): Update frequencies of
20141         indirect edges.
20142
20143 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20144
20145         PR target/43698
20146         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
20147         Set *arm_rev to be predicable.
20148
20149 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
20150
20151         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
20152         (LINK_COMMAND_SPEC_A): New.
20153         (DSYMUTIL): New.
20154         (DSYMUTIL_SPEC): New.
20155         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
20156         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
20157
20158 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
20159
20160         * calls.c (load_register_parameters): Move check for zero
20161         sized items so that only the call to
20162         mem_overlaps_already_clobbered_arg_p () is protected.
20163
20164 2010-07-22  Jan Hubicka  <jh@suse.cz>
20165
20166         * ipa-pure-const.c (varying_state): Break out from ...
20167         (get_function_state): ... here; always return varying_state
20168         when state would be NULL otherwise.
20169         (remove_node_data): Do not free varying state.
20170
20171 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
20172
20173         PR bootstrap/44970
20174         PR middle-end/45009
20175         * postreload.c: Include "target.h".
20176         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
20177         into account.
20178         (fixup_debug_insns): Don't copy the rtx.
20179         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
20180         Don't copy when replacing.  Call fixup_debug_insns in the case where
20181         we merged one add with another.
20182         (reload_combine_recognize_pattern): Fail if there aren't any uses.
20183         Try harder to determine whether we're picking a valid index register.
20184         Don't set store_ruid for an insn we're going to scan in the
20185         next iteration.
20186         (reload_combine): Remove unused code.
20187         (reload_combine_note_use): When updating use information for
20188         an old insn, ignore a use that occurs after store_ruid.
20189         * Makefile.in (postreload.o): Update dependencies.
20190
20191         * function.c (record_hard_reg_sets): Restrict the previous change
20192         to cases where the incoming nominal mode is the same as the
20193         incoming promoted mode and everything happens in MODE_INT.
20194
20195 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
20196
20197         PR debug/45015
20198         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
20199         ASM_OPERANDS_OUTPUT_IDX.
20200         (adjust_insn): For inline asm with multiple sets ensure first
20201         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
20202         the insn.
20203
20204 2010-07-21  Richard Henderson  <rth@redhat.com>
20205
20206         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
20207         comparison for avoiding xmm register saves.  Emit the xmm register
20208         saves explicitly.
20209         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
20210         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
20211         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
20212         Remove patterns and the associated splitters.
20213
20214 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
20215
20216         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
20217         and imagine parts of a complex, so that they can have the same
20218         base and fall into the same group.
20219
20220 2010-07-21  Richard Guenther  <rguenther@suse.de>
20221
20222         PR lto/45018
20223         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
20224         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
20225         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
20226
20227 2010-07-21  Martin Jambor  <mjambor@suse.cz>
20228
20229         PR tree-optimization/44900
20230         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
20231         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
20232
20233 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
20234
20235         PR middle-end/44738
20236         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
20237
20238 2010-07-21  Richard Guenther  <rguenther@suse.de>
20239
20240         PR middle-end/45013
20241         * tree-ssa.c (useless_type_conversion_p): Dispatch to
20242         gimple_types_compatible_p only when in lto.
20243         * gimple.c (gimple_types_compatible_p): Use canonical types
20244         to speed up comparison.
20245
20246 2010-07-21  Richard Guenther  <rguenther@suse.de>
20247
20248         * tree-flow.h (referenced_var): Move define ...
20249         * tree-flow-inline.h (referenced_var): ... here as an inline
20250         function.  Assert here ...
20251         * tree-dfa.c (referenced_var_lookup): ... instead of here.
20252         * tree-ssa.c (maybe_optimize_var): Check if the variable
20253         is in referenced vars.
20254         (execute_update_addresses_taken): Remove old broken check.
20255         * gimple-pretty-print.c (pp_points_to_solution): Use
20256         referenced_var_lookup.
20257         * tree-into-ssa.c (dump_decl_set): Likewise.
20258
20259 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
20260
20261         PR debug/45003
20262         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
20263         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
20264         ZERO_EXTEND here.
20265
20266 2010-07-20  Richard Henderson  <rth@redhat.com>
20267
20268         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
20269
20270 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
20271
20272         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
20273         computing the sum of the stack pointer and a large constant.
20274         * config/arm/constraints.md (M): Remove superfluous parentheses.
20275         (Pc): New constraint.
20276
20277 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
20278
20279         PR debug/45006
20280         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
20281         operand's type if exp is tcc_unary class tree.
20282
20283 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
20284
20285         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
20286         Reverse sense of if_then_else condition.
20287
20288 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
20289
20290         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
20291         * config/rs6000/rs6000.c (rs6000_override_options): Set
20292         rs6000_block_move_inline_limit appropriately.
20293         (expand_block_move): Use rs6000_block_move_inline_limit.
20294         * doc/invoke.texi (mblock-move-inline-limit): Document.
20295
20296 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
20297
20298         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
20299         FROM and TO.  All callers changed.  Don't look for tracked uses,
20300         just scan the RTL for DEBUG_INSNs and substitute.
20301         (reload_combine_recognize_pattern): Call fixup_debug_insns.
20302         (reload_combine): Ignore DEBUG_INSNs.
20303
20304 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
20305
20306         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
20307         depth to 8 from 5.
20308
20309         PR debug/45003
20310         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
20311         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
20312         instead of the result's type.
20313
20314 2010-07-20  Richard Guenther  <rguenther@suse.de>
20315
20316         PR tree-optimization/44977
20317         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
20318         SSA form.
20319
20320 2010-07-20  Richard Guenther  <rguenther@suse.de>
20321
20322         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
20323         (lto_symtab_merge_decls_2): Likewise.
20324         * gimple.h (gimple_types_compatible_p): Declare.
20325         * gimple.c (gimple_queue_type_fixup): Remove.
20326         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
20327         (gimple_compatible_complete_and_incomplete_type_p): New function.
20328         (gimple_types_compatible_p): Adjust.
20329         (gimple_register_type): Remove type fixup code.
20330         (print_gimple_types_stats): Adjust.
20331         (free_gimple_type_tables): Likewise.
20332         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
20333         * tree-ssa.c (useless_type_conversion_p): Likewise.
20334
20335 2010-07-20  Richard Guenther  <rguenther@suse.de>
20336
20337         PR middle-end/44971
20338         PR middle-end/44988
20339         * tree-ssa.c (maybe_optimize_var): New function split out from ...
20340         (execute_update_addresses_taken): ... here.
20341         (non_rewritable_mem_ref_base): Likewise.
20342         (execute_update_addresses_taken): Do not iterate over all referenced
20343         vars but just all local decls and parms.
20344         Properly check call and asm arguments and rewrite call arguments.
20345
20346 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
20347
20348         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
20349         to top level.
20350         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
20351         definitions ...
20352         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
20353         New macro.
20354         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
20355
20356 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
20357
20358         * gengtype.c (start_root_entry): New function, split out from
20359         write_root.  Check whether V is null and raise an error if so.
20360         (write_field_root): Check for V being null.  Don't raise an error here;
20361         set V to null instead.
20362         (write_root): Update comment above function.  Use start_root_entry.
20363
20364 2010-07-19  Xinliang David Li  <davidxl@google.com>
20365
20366         PR testsuite/44932
20367         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
20368         def edges.
20369         (find_uninit_use): Add dump.
20370         (is_use_properly_guarded): Ditto.
20371         (warn_uninitialized_phi): Ditto.
20372         (execute_late_warn_uninitialized): Ditto.
20373
20374 2010-07-19  Richard Guenther  <rguenther@suse.de>
20375
20376         PR middle-end/44941
20377         * expr.c (emit_block_move_hints): Move zero size check first.
20378         Move asserts to more useful places.
20379         * calls.c (load_register_parameters): Check for zero size.
20380
20381 2010-07-19  Richard Henderson  <rth@redhat.com>
20382
20383         * tree-optimize.c (execute_all_early_local_passes): New.  Change
20384         cgraph_state here ...
20385         (execute_early_local_optimizations): ... not here.  Remove.
20386         (pass_early_local_passes, pass_all_early_optimizations): Update.
20387
20388 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
20389
20390         * postreload.c (reload_combine_closest_single_use): Ignore the
20391         number of uses for DEBUG_INSNs.
20392         (fixup_debug_insns): New static function.
20393         (reload_combine_recognize_const_pattern): Use it.  Don't let the
20394         main loop be affected by DEBUG_INSNs.
20395         Really disallow moving adds past a jump insn.
20396         (reload_combine_recognize_pattern): Don't update use_ruid here.
20397         (reload_combine_note_use): Do it here.
20398         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
20399
20400 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
20401
20402         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
20403         of a loop.
20404         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
20405
20406 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
20407
20408         * config/i386/darwin.h: Define darwin_emit_branch_islands.
20409         (TARGET_MACHO_BRANCH_ISLANDS): New.
20410         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
20411         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
20412         default value.
20413         * config/i386/i386.c (output_pic_addr_const): Do not emit
20414         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
20415         (x86_output_mi_thunk): Adjust symbol creation.
20416         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
20417         Remove out of date comment.
20418         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
20419         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20420         (DARWIN_GENERATE_ISLANDS): Ditto.
20421         (output_call):  Do not emit branch islands unless
20422         darwin_emit_branch_islands is set.
20423         * config/darwin.c: Declare darwin_emit_branch_islands.
20424         (machopic_indirect_data_reference): Do not emit unless
20425         darwin_emit_branch_islands is set.
20426         (darwin_override_options): Set darwin_emit_branch_islands
20427         where it is needed.
20428         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20429
20430 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20431
20432         * doc/sourcebuild.texi (Effective-Target Keywords): Document
20433         sse_runtime, sse2_runtime.
20434
20435 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
20436
20437         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
20438         low half of a single-register SCmode return value before ORing
20439         it with the high half.
20440         * config/mips/mips16.S (MERGE_GPRf): Likewise.
20441
20442 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20443
20444         PR target/44805
20445         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
20446         on all targets.
20447
20448 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
20449
20450         PR target/42235
20451         * postreload.c (reload_cse_move2add): Return bool, true if anything.
20452         changed.  All callers changed.
20453         (move2add_use_add2_insn): Likewise.
20454         (move2add_use_add3_insn): Likewise.
20455         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
20456         reload_combine.
20457         (RELOAD_COMBINE_MAX_USES): Bump to 16.
20458         (last_jump_ruid): New static variable.
20459         (struct reg_use): New members CONTAINING_MEM and RUID.
20460         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
20461         (reload_combine_split_one_ruid, reload_combine_split_ruids,
20462         reload_combine_purge_insn_uses, reload_combine_closest_single_use
20463         reload_combine_purge_reg_uses_after_ruid,
20464         reload_combine_recognize_const_pattern): New static functions.
20465         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
20466         is true for our reg and that we have available index regs.
20467         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
20468         callers changed.  Use them to initialize fields in struct reg_use.
20469         (reload_combine): Initialize last_jump_ruid.  Be careful when to
20470         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
20471         Call reload_combine_recognize_const_pattern.
20472         (reload_combine_note_store): Update REAL_STORE_RUID field.
20473
20474 2010-07-16  Jason Merrill  <jason@redhat.com>
20475
20476         * Makefile.in (opts-common.o): Depend on options.h.
20477
20478 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20479
20480         * tree.c (build_common_builtin_nodes): Use build_function_type_list
20481         instead of build_function_type.
20482         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
20483         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
20484
20485 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20486
20487         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
20488         do all the work.
20489         (rs6000_emit_int_cmove): Use function pointers for insn generation.
20490         Don't force values into registers unnecessarily.
20491         (output_isel): Assert that we're not given conditions we can't handle.
20492         Delete corresponding code.
20493         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
20494         scc_comparison_operator constraint.  Permit 0 for the consequent
20495         operand.  Permit any GPR for the alternative operand.
20496         (isel_unsigned_<mode>): Likewise.
20497
20498 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
20499
20500         PR target/44942
20501         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
20502         argument to const_tree.
20503         * config/i386/i386.c (function_arg_advance): If padding needs to be
20504         inserted before argument, increment cum->words by number of padding
20505         words as well.
20506         (contains_aligned_value_p): Change argument to const_tree.
20507         (ix86_function_arg_boundary): Change second argument to const_tree.
20508
20509 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
20510
20511         PR target/42235
20512         * function.c (record_hard_reg_sets): New static function.
20513         (assign_parm_setup_reg): If an optab for extending exists and the
20514         generated code clobbbers no hard regs, emit the insn directly and
20515         create a REG_EQUIV note.
20516
20517 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20518
20519         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
20520         TREE_CHAIN.
20521         * c-typeck.c (push_init_level): Likewise.
20522         (process_init_element): Likewise.
20523
20524 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
20525
20526         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
20527         (integer_three_node): Add.
20528         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
20529         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
20530         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
20531         of call build_int_cst.
20532         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
20533         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
20534         (find_interesting_uses_address): Ditto.
20535         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
20536         * tree-eh.c (lower_eh_constructs_2): Ditto.
20537         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
20538         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
20539         * expmed.c (expand_divmod): Ditto.
20540         * tree-mudflap.c (mx_register_decls): Ditto.
20541         * varasm.c (array_size_for_constructor): Ditto.
20542         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
20543         * c-parser.c (c_parser_postfix_expression): Ditto.
20544
20545 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
20546
20547         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
20548         New static variables.
20549         (reload_combine_recognize_pattern): New static function, broken out
20550         of reload_combine.
20551         (reload_combine): Use it.  Only initialize first_index_reg and
20552         last_index_reg once.
20553
20554 2010-07-15  Richard Henderson  <rth@redhat.com>
20555
20556         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
20557         when done.
20558
20559 2010-07-15  Jan Hubicka  <jh@suse.cz>
20560
20561         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
20562         comdats for broken gold.
20563         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
20564
20565 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20566
20567         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
20568
20569 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20570
20571         * tree.h (DECL_CHAIN): Define.
20572         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
20573         * c-decl.c: Likewise.
20574         * c-parser.c: Likewise.
20575         * c-typeck.c: Likewise.
20576         * cfgexpand.c: Likewise.
20577         * cgraph.c: Likewise.
20578         * cgraphunit.c: Likewise.
20579         * combine.c: Likewise.
20580         * config/alpha/alpha.c: Likewise.
20581         * config/arm/arm.c: Likewise.
20582         * config/frv/frv.c: Likewise.
20583         * config/i386/i386.c: Likewise.
20584         * config/i386/winnt-cxx.c: Likewise.
20585         * config/ia64/ia64.c: Likewise.
20586         * config/iq2000/iq2000.c: Likewise.
20587         * config/mep/mep.c: Likewise.
20588         * config/mips/mips.c: Likewise.
20589         * config/pa/som.h: Likewise.
20590         * config/rs6000/rs6000.c: Likewise.
20591         * config/s390/s390.c: Likewise.
20592         * config/sh/sh.c: Likewise.
20593         * config/sh/symbian-cxx.c: Likewise.
20594         * config/sparc/sparc.c: Likewise.
20595         * config/spu/spu.c: Likewise.
20596         * config/stormy16/stormy16.c: Likewise.
20597         * config/vxworks.c: Likewise.
20598         * config/xtensa/xtensa.c: Likewise.
20599         * coverage.c: Likewise.
20600         * dbxout.c: Likewise.
20601         * dwarf2out.c: Likewise.
20602         * emit-rtl.c: Likewise.
20603         * expr.c: Likewise.
20604         * function.c: Likewise.
20605         * gimple-low.c: Likewise.
20606         * gimple-pretty-print.c: Likewise.
20607         * gimplify.c: Likewise.
20608         * integrate.c: Likewise.
20609         * ipa-inline.c: Likewise.
20610         * ipa-prop.c: Likewise.
20611         * ipa-split.c: Likewise.
20612         * ipa-struct-reorg.c: Likewise.
20613         * ipa-type-escape.c: Likewise.
20614         * langhooks.c: Likewise.
20615         * lto-cgraph.c: Likewise.
20616         * omp-low.c: Likewise.
20617         * stor-layout.c: Likewise.
20618         * tree-cfg.c: Likewise.
20619         * tree-complex.c: Likewise.
20620         * tree-dfa.c: Likewise.
20621         * tree-dump.c: Likewise.
20622         * tree-inline.c: Likewise.
20623         * tree-mudflap.c: Likewise.
20624         * tree-nested.c: Likewise.
20625         * tree-object-size.c: Likewise.
20626         * tree-pretty-print.c: Likewise.
20627         * tree-sra.c: Likewise.
20628         * tree-ssa-live.c: Likewise.
20629         * tree-ssa-loop-niter.c: Likewise.
20630         * tree-ssa-math-opts.c: Likewise.
20631         * tree-ssa-reassoc.c: Likewise.
20632         * tree-ssa-sccvn.c: Likewise.
20633         * tree-ssa-structalias.c: Likewise.
20634         * tree-tailcall.c: Likewise.
20635         * tree-vrp.c: Likewise.
20636         * tree.c: Likewise.
20637         * var-tracking.c: Likewise.
20638         * varasm.c: Likewise.
20639
20640 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20641
20642         PR target/44877
20643         * config/spu/spu.c (spu_expand_builtin_1): Allow references
20644         (as well as pointers) as argument to mask_for_load builtins.
20645
20646 2010-07-15  Richard Guenther  <rguenther@suse.de>
20647
20648         PR tree-optimization/44946
20649         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
20650         with accessing only padding properly.
20651
20652 2010-07-15  Jan Hubicka  <jh@suse.cz>
20653
20654         * ipa.c (function_and_variable_visibility): Variables marked as used
20655         should not be localized.
20656
20657 2010-07-15  Jan Hubicka  <jh@suse.cz>
20658
20659         * cgraph.c: Include lto-streamer.h
20660         (change_decl_assembler_name): Work when assembler name hash is at place.
20661         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
20662         be sure to rename it to avoid name clash.
20663         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
20664         Localize hidden symbols only when locally defined.
20665
20666 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
20667
20668         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
20669
20670 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
20671             Kevin F. Quinn  <kevquinn@gentoo.org>
20672
20673         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
20674         * common.opt: Add -Wtrampolines.
20675         * doc/invoke.texi: Add -Wtrampolines.
20676
20677 2010-07-15  Jie Zhang  <jie@codesourcery.com>
20678
20679         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
20680         cortex_a8_issue_ls.
20681
20682 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
20683
20684         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
20685         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
20686
20687 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20688
20689         * config/spu/spu.c (reg_names): Remove prototype.
20690         (call_used_regs): Likewise.
20691
20692 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
20693
20694         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
20695         "unused" with attribute "used".
20696         (__JCR_END__): Likewise.
20697         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
20698         "used" attribute.
20699         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
20700
20701 2010-07-14  Richard Guenther  <rguenther@suse.de>
20702
20703         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
20704         (maybe_fixup_decls): Likewise.
20705         (input_gimple_stmt): Do not fixup anything.
20706         * lto-streamer-out.c (output_gimple_stmt): Make sure all
20707         non-automatic variable uses are wrapped inside a MEM_REF.
20708
20709 2010-07-14  Richard Henderson  <rth@redhat.com>
20710
20711         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
20712         for functions.
20713         * varasm.c (assemble_variable): Remove early exit for functions;
20714         assert that we're given a variable.
20715
20716 2010-07-14  Jie Zhang  <jie@codesourcery.com>
20717
20718         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
20719         cortex_a8_default when neon_type is not none.
20720
20721 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20722
20723         * lower-subreg.c (subreg_context): New static bitmap.
20724         (decompose_multiword_subregs): Allocate and free it.
20725         (find_decomposable_subregs): Set a bit in it for a register that
20726         occurs in a subreg that changes mode but not size.
20727         (can_decompose_p): Test it instead of non_decomposable_context.
20728
20729 2010-07-14  Richard Guenther  <rguenther@suse.de>
20730
20731         PR tree-optimization/44824
20732         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
20733         is_gimple_mem_ref_addr.
20734         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
20735         non-decl_address_invariant_p addresses.
20736
20737 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20738
20739         * reload.c (find_reloads): Revert code to penalize small register
20740         classes that was brought in with the IRA merge.
20741
20742 2010-07-14  Richard Guenther  <rguenther@suse.de>
20743
20744         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
20745         as base of ARRAY_REFs.
20746
20747 2010-07-14  Richard Guenther  <rguenther@suse.de>
20748
20749         PR middle-end/44930
20750         * tree-pretty-print.c (do_niy): Do not print a newline.
20751
20752 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20753
20754         * ira-int.h (struct ira_object): New.
20755         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
20756         (struct ira_allocno): Remove members min, max,
20757         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
20758         conflict_allocnos_num and conflict_vec_p.  Add new member object.
20759         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
20760         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
20761         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
20762         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
20763         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
20764         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
20765         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
20766         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
20767         an ira_object_t rather than ira_allocno_t.  All uses changed.
20768         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20769         contains a vector of ira_object_t; all uses changed.
20770         (ira_objects_num): Declare variable.
20771         (ira_create_allocno_object): Declare function.
20772         (ira_conflict_vector_profitable_p): Adjust prototype.
20773         (ira_allocate_conflict_vec): Renamed from
20774         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
20775         (ira_allocate_object_conflicts): Renamed from
20776         ira_allocate_allocno_conflicts; first arg now ira_object_t.
20777         (struct ira_object_iterator): New.
20778         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
20779         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
20780         to conflict_vec_p.  All uses changed.
20781         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
20782         Changed to take into account that conflicts are now tracked for
20783         objects.
20784         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
20785         Args changed to accept ira_object_t.  All uses changed.
20786         (allocnos_conflict_p): New static function.
20787         (collected_conflict_objects): Renamed from collected_allocno_objects;
20788         now a vector of ira_object_t.  All uses changed.
20789         (build_conflict_bit_table): Changed to take into account that
20790         conflicts are now tracked for objects.
20791         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
20792         (print_allocno_conflicts, ira_build_conflicts): Likewise.
20793         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
20794         setup_allocno_left_conflicts_size, allocno_reload_assign,
20795         fast_allocation): Likewise.
20796         * ira-lives.c (make_hard_regno_born, make_allocno_born)
20797         process_single_reg_class_operands, process_bb_node_lives): Likewise.
20798         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
20799         Likewise.
20800         * ira-build.c (ira_objects_num): New variable.
20801         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20802         contains a vector of ira_object_t; all uses changed.
20803         (ira_object_id_map_vec): Corresponding change.
20804         (object_pool): New static variable.
20805         (initiate_allocnos): Initialize it.
20806         (finish_allocnos): Free it.
20807         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
20808         New functions.
20809         (ira_create_allocno): Don't set members that were removed.
20810         (ira_set_allocno_cover_class): Don't change conflict hard regs.
20811         (merge_hard_reg_conflicts): Changed to take into account that
20812         conflicts are now tracked for objects.
20813         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
20814         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
20815         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
20816         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
20817         setup_min_max_conflict_allocno_ids, ):  Likewise.
20818         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
20819         to ira_object_t; all callers changed.
20820         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
20821         to ira_object_t, all callers changed.
20822         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
20823         to ira_object_t, all callers changed.
20824         (conflict_check, curr_conflict_check_tick): Renamed from
20825         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
20826         changed.
20827         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
20828         arg changed to ira_object_t, all callers changed.
20829         (create_cap_allocno): Call ira_create_allocno_object.
20830         (finish_allocno): Free the corresponding object.
20831         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
20832         callers changed.  Adjusted for dealing with objects.
20833         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
20834         dealing with objects.
20835         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
20836
20837         * ira-int.h (struct live_range): Rename allocno member to object
20838         and change type to ira_object_t.
20839         (struct ira_object): New member live_ranges.
20840         (struct ira_allocno): Remove member live_ranges.
20841         (ALLOCNO_LIVE_RANGES): Remove.
20842         (OBJECT_LIVE_RANGES): New macro.
20843         (ira_create_live_range, ira_copy_live_range_list,
20844         ira_merge_live_range_list, ira_live_ranges_intersect_p,
20845         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
20846         * ira-build.c (ira_create_object): Initialize live ranges here.
20847         (ira_create_allocno): Not here.
20848         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
20849         changed to ira_object_t, all callers changed.
20850         (copy_live_range): Rename from copy_allocno_live_range, all callers
20851         changed.
20852         (ira_copy_live_range_list): Rename from
20853         ira_copy_allocno_live_range_list, all callers changed.
20854         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
20855         all callers changed.
20856         (ira_live_ranges_intersect_p): Rename from
20857         ira_allocno_live_ranges_intersect_p, all callers changed.
20858         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
20859         callers changed.
20860         (ira_finish_live_range_list): Rename from
20861         ira_finish_allocno_live_range_list, all callers changed.
20862         (change_object_in_range_list): Rename from change_allocno_in_range_list,
20863         last arg changed to ira_object_t, all callers changed.
20864         (finish_allocno): Changed to expect live ranges in the allocno's object.
20865         (move_allocno_live_ranges, copy_allocno_live_ranges,
20866         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
20867         ira_flattening, ira_build): Likewise.
20868         * ira-color.c (allocnos_have_intersected_live_ranges_p,
20869         slot_coalesced_allocno_live_ranges_intersect,
20870         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
20871         * ira-conflicts.c (build_conflict_bit_table): Likewise.
20872         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
20873         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
20874         make_allocno_dead, create_start_finish_chains,
20875         remove_some_program_points_and_update_live_ranges,
20876         ira_debug_live_range_list): Likewise.
20877
20878         * ira-int.h (ira_object_conflict_iterator): Rename from
20879         ira_allocno_conflict_iterator.
20880         (ira_object_conflict_iter_init): Rename from
20881         ira_allocno_conflict_iter_init, second arg changed to
20882         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
20883         FOR_EACH_ALLOCNO_CONFLICT.
20884         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
20885         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
20886         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
20887         * ira-conflicts.c (print_allocno_conflicts): Likewise.
20888
20889 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
20890
20891         PR other/44874
20892         * tree-dump.c (dump_options): Add enumerate_locals entry.
20893         Add TDF_NOID exclusion to all entry.
20894         * tree-dump.h (dump_enumerated_decls): Declare.
20895         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
20896         Don't display type uid.
20897         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
20898         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
20899         * tree-ssa-live.c: Include gimple.h.
20900         (numbered_tree_d): New struct.
20901         (numbered_tree): New typedef.
20902         (DEF_VEC_O (numbered_tree): New.
20903         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
20904         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
20905         (dump_enumerated_decls): Likewise.
20906         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
20907         debug info and flag_dump_final_insns, call dump_enumerated_decls.
20908         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
20909         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
20910
20911 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
20912
20913         * expmed.h (MAX_BITS_PER_WORD): Move to...
20914         * defaults.h (MAX_BITS_PER_WORD): ...here.
20915
20916 2010-07-13  DJ Delorie  <dj@redhat.com>
20917
20918         * config/h8300/h8300.c (h8300_init_once): Default to
20919         -fstrict_volatile_bitfields.
20920
20921         * config/sh/sh.c (sh_override_options): Default to
20922         -fstrict_volatile_bitfields.
20923
20924         * config/rx/rx.c (rx_option_override): New.
20925
20926         * config/m32c/m32c.c (m32c_override_options): Default to
20927         -fstrict_volatile_bitfields.
20928
20929 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
20930
20931         * tree.h (build_function_call_expr): Delete.
20932         (build_call_expr_loc_array): New function.
20933         (build_call_expr_loc_vec): New function.
20934         * tree-flow.h (struct omp_region): Change type of ws_args field
20935         to a VEC.
20936         * builtins.c (build_function_call_expr): Delete.
20937         (build_call_expr_loc_array): New function.
20938         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
20939         (build_call_expr): Likewise.
20940         (build_call_expr_loc_vec): New function.
20941         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
20942         build_function_call_expr.
20943         * expr.c (emutls_var_address): Likewise.
20944         * varasm.c (emutls_common_1): Likewise.
20945         * omp-low.c (expand_omp_atomic_mutex): Likewise.
20946         (expand_omp_taskreg): Adjust for new type of region->ws_args.
20947         (get_ws_args_for): Return a VEC instead of a tree.
20948         (expand_parallel_call): Call build_call_expr_loc_vec instead of
20949         build_function_call_expr.
20950         * stor-layout.c (self_referential_size): Likewise.
20951
20952 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
20953
20954         PR testsuite/44701
20955         * recog.c (constrain_operands): Allow side-effects in memory
20956         operands if either < or > constraint is used, rather than if
20957         both < and > is used.
20958
20959 2010-07-13  Richard Guenther  <rguenther@suse.de>
20960
20961         PR middle-end/44911
20962         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
20963         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
20964         without name.
20965
20966 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
20967
20968         PR target/44761
20969         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
20970         to variable emited.
20971         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
20972         * config/sh/sh.md (symGOT_load): Likewise.
20973         (symDTPOFF2reg): Likewise.
20974         (symTPOFF2reg): Likewise.
20975
20976 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20977
20978         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
20979         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
20980
20981 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20982
20983         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
20984         explanation.
20985         Find ucontext_t * on Solaris 11.
20986         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
20987         Handle new Solaris 11 __sighndlr patterns.
20988
20989 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
20990
20991         PR debug/44901
20992         * vec.h (VEC_block_remove): Fix comment.
20993         * tree-ssa-live.c (remove_unused_locals): Don't use
20994         VEC_unordered_remove on local_decls, instead replace a single
20995         vector element in each iteration if at least one element had
20996         to be removed and VEC_truncate at the end.
20997         * omp-low.c (expand_omp_taskreg): Likewise.
20998
20999 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21000
21001         * c-decl.c (finish_function): Fix typo in comment.
21002
21003 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
21004
21005         PR bootstrap/44921
21006         * postreload.c (move2add_use_add3_insn): Silence gcc warning
21007         on min_regno.
21008
21009 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
21010
21011         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
21012         (simplify_stmt_using_ranges): Use it.
21013
21014 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21015
21016         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
21017         member.  Do not mark as GTY(()).
21018         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
21019         (spu_builtin_decls): New static variable.
21020         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
21021         (spu_init_builtins): Likewise.
21022         (spu_builtin_mul_widen_even): Likewise.
21023         (spu_builtin_mul_widen_odd): Likewise.
21024         (spu_builtin_mask_for_load): Likewise.
21025         (spu_builtin_vec_perm): Likewise.
21026         * config/spu/spu-c.c: Include "target.h".
21027         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
21028         of using spu_builtins[].fndecl.
21029
21030 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21031
21032         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
21033         imply -minterlink-mips16.
21034
21035 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21036
21037         * config/mips/mips.h (mips16_globals): Declare.
21038         (SWITCHABLE_TARGET): Define.
21039         * config/mips/mips.c: Include target-globals.h.
21040         (mips16_globals): New variable.
21041         (mips_set_mips16_mode): Use save_target_globals and
21042         restore_target_globals instead of target_reinit.
21043
21044 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21045
21046         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
21047         to say that the function can be called more than once.
21048         * target-globals.c (save_target_globals): Call init_reg_sets.
21049
21050 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21051
21052         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
21053         * bb-reorder.h: New file.
21054         * bb-reorder.c (default_target_bb_reorder): New variable.
21055         (this_target_bb_reorder): New conditional variable.
21056         (uncond_jump_length): Redefine as a macro.
21057         * target-globals.h (this_target_bb_reorder): Declare.
21058         (target_globals): Add a bb_reorder field.
21059         (restore_target_globals): Copy the bb_reorder field to
21060         this_target_bb-reorder.
21061         * target-globals.c: Include bb-reorder.h.
21062         (default_target_globals): Initialize the bb_reorder field.
21063         (save_target_globals): Likewise.
21064
21065 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21066
21067         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
21068         * gcse.h: New file.
21069         * gcse.c: Include gcse.h.
21070         (default_target_gcse): New variable.
21071         (this_target_gcse): New conditional variable.
21072         (can_copy): Redefine as a macro.
21073         (can_copy_init_p): New macro.
21074         (can_copy_p): Remove can_copy_init_p.
21075         * target-globals.h (this_target_gcse): Declare.
21076         (target_globals): Add a gcse field.
21077         (restore_target_globals): Copy the gcse field to this_target_gcse.
21078         * target-globals.c: Include gcse.h.
21079         (default_target_globals): Initialize the gcse field.
21080         (save_target_globals): Likewise.
21081
21082 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21083
21084         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
21085         and x_ira_prohibited_mode_move_regs_initialized_p.
21086         (ira_prohibited_mode_move_regs): Redefine as a macro.
21087         * ira.c (ira_prohibited_mode_move_regs): Delete.
21088         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
21089
21090 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21091
21092         * reload.h (target_reload): Add x_cached_reg_save_code and
21093         x_cached_reg_restore_code.
21094         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
21095         Redefine as macros.
21096
21097 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21098
21099         * Makefile.in (target-globals.o): Depend on builtins.h.
21100         * builtins.h: New file.
21101         * builtins.c: Include builtins.h.
21102         (default_target_builtins): New variable.
21103         (this_target_builtins): New conditional variable.
21104         (apply_args_mode, apply_result_mode): Redefine as macros.
21105         * target-globals.h (this_target_builtins): Declare.
21106         (target_globals): Add a builtins field.
21107         (restore_target_globals): Copy the builtins field to
21108         this_target_builtins.
21109         * target-globals.c: Include builtins.h.
21110         (default_target_globals): Initialize the builtins field.
21111         (save_target_globals): Likewise.
21112
21113 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21114
21115         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
21116         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
21117         from expmed.c.
21118         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
21119         (alg_hash, alg_hash_used_p): New macros.
21120         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
21121         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
21122         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
21123
21124 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21125
21126         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
21127         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
21128         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
21129         (this_op_costs, costs_classes): Redefine as macros.
21130         (record_reg_classes): Don't take op_costs as a parameter.
21131         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
21132         (scan_one_insn): Update call to record_operand_costs.
21133
21134 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21135
21136         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
21137         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
21138         (target_ira_int): New structure.
21139         (default_target_ira_int): Declare.
21140         (this_target_ira_int): Declare as a variable or define as a macro.
21141         (ira_reg_mode_hard_regset, ira_register_move_cost)
21142         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
21143         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
21144         (prohibited_class_mode_regs, ira_important_classes_num)
21145         (ira_important_classes, ira_reg_class_intersect)
21146         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
21147         (ira_reg_class_union): Redefine as macros.
21148         * ira.h (target_ira): New structure.
21149         (default_target_ira): Declare.
21150         (this_target_ira): Declare as a variable or define as a macro.
21151         (ira_available_class_regs, ira_hard_regno_cover_class)
21152         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
21153         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
21154         (ira_class_hard_regs_num): Redefine as macros.
21155         * ira.c (default_target_ira, default_target_ira_int): New variables.
21156         (this_target_ira, this_target_ira_int): New conditional variables.
21157         (ira_reg_mode_hard_regset, ira_memory_move_cost)
21158         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
21159         (ira_class_subset_p): Delete.
21160         (no_unit_alloc_regs): Redefine as a macro.
21161         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
21162         (ira_class_hard_regs_num, ira_class_hard_reg_index)
21163         (ira_available_class_regs): Delete.
21164         (alloc_reg_class_subclasses): Redefine as a macro.
21165         (ira_reg_class_cover_size, ira_reg_class_cover)
21166         (ira_important_classes_num, ira_important_classes)
21167         (ira_important_class_nums, ira_class_translate): Delete.
21168         (cover_class_order): Document the variable's lifetime.
21169         (reorder_important_classes): Don't set ira_important_class_nums.
21170         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
21171         (ira_reg_class_super_classes, ira_reg_class_union)
21172         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
21173         Delete.
21174         (setup_reg_class_nregs): Don't set ira_max_regs.
21175         (prohibited_class_mode_regs): Delete.
21176         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
21177         (target_globals): Add ira and ira_int fields.
21178         (restore_target_globals): Copy the ira field to this_target_ira
21179         and the ira_int field to this_target_ira_int.
21180         * target-globals.c: Include ira-int.h.
21181         (default_target_globals): Initialize the ira and ira_int fields.
21182         (save_target_globals): Likewise.
21183
21184 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21185
21186         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
21187         * cfgloop.h (target_cfgloop): New structure.
21188         (default_target_cfgloop): Declare.
21189         (this_target_cfgloop): Declare as a variable or define as a macro.
21190         (target_avail_regs, target_clobbered_regs, target_res_regs)
21191         (target_reg_cost, target_spill_cost): Redefine as macros.
21192         * cfgloopanal.c (default_target_cfgloop): New variable.
21193         (this_target_cfgloop): New conditional variable.
21194         (target_avail_regs, target_clobbered_regs, target_res_regs)
21195         (target_reg_cost, target_spill_cost): Delete.
21196         * target-globals.h (this_target_cfgloop): Declare.
21197         (target_globals): Add a cfgloop field.
21198         (restore_target_globals): Copy the cfgloop field to
21199         this_target_cfgloop.
21200         * target-globals.c: Include cfgloop.h.
21201         (default_target_globals): Initialize the cfgloop field.
21202         (save_target_globals): Likewise.
21203
21204 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21205
21206         * regs.h (target_regs): Add x_direct_load, x_direct_store and
21207         x_float_extend_from_mem.
21208         (direct_load, direct_store, float_extend_from_mem): New macros.
21209         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
21210
21211 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21212
21213         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
21214         (target-globals.o): Depend on $(LIBFUNCS_H).
21215         * libfuncs.h: Include hashtab.h.
21216         (libfunc_entry): Moved from optabs.c.
21217         (target_libfuncs): New structure.
21218         (default_target_libfuncs): Declare.
21219         (this_target_libfuncs): Declare as a variable or define as a macro.
21220         (libfunc_table): Redefine as a macro.
21221         * optabs.c (default_target_libfuncs): New variable.
21222         (this_target_libfuncs): New conditional variable.
21223         (libfunc_table): Delete.
21224         (libfunc_entry): Moved to optabs.h.
21225         (libfunc_hash): Redefine as a macro.
21226         (hash_libfunc, eq_libfunc): Fix comments.
21227         (init_optabs): Use libfunc_hash to detect cases where the function
21228         has already been called.  Clear the hash table instead of
21229         recreating it.
21230         * target-globals.h (this_target_libfuncs): Declare.
21231         (target_globals): Add a libfuncs field.
21232         (restore_target_globals): Copy the libfuncs field to
21233         this_target_libfuncs.
21234         * target-globals.c: Include libfuncs.h.
21235         (default_target_globals): Initialize the libfuncs field.
21236         (save_target_globals): Likewise.
21237
21238 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21239
21240         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
21241         in all dependency lists.
21242
21243 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21244
21245         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
21246         * optabs.h (target_optabs): New structure.
21247         (default_target_optabs): Declare.
21248         (this_target_optabs): Declare as a variable or define as a macro.
21249         (optab_table, convert_optab_table, direct_optab_table): Redefine
21250         as macros.
21251         * optabs.c (default_target_optabs): New variable.
21252         (this_target_optabs): New conditional variable.
21253         (optab_table, convert_optab_table, direct_optab_table): Delete.
21254         * target-globals.h (this_target_optabs): Declare.
21255         (target_globals): Add a optabs field.
21256         (restore_target_globals): Copy the optabs field to
21257         this_target_optabs.
21258         * target-globals.c: Include expr.h and optabs.h.
21259         (default_target_globals): Initialize the optabs field.
21260         (save_target_globals): Likewise.
21261
21262 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21263
21264         * flags.h (target_flagstate): Add x_flag_excess_precision.
21265         (flag_excess_precision): Redefine as a macro.
21266         * toplev.c (flag_excess_precision): Delete.
21267
21268 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21269
21270         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
21271         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
21272         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
21273         (no_caller_save_reg_set): Redefine as a macro.
21274         * reload.h (target_reload): Add x_caller_save_initialized_p and
21275         x_regno_save_mode.
21276         (caller_save_initialized_p): Redefine as a macro.
21277         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
21278         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
21279         (regno_save_mode): Redefine as a macro.
21280
21281 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21282
21283         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
21284         * expmed.h: New file.
21285         * expmed.c (default_target_costs): New variable.
21286         (this_target_costs): New conditional variable.
21287         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
21288         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
21289         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
21290         * target-globals.h (this_target_expmed): Declare.
21291         (target_globals): Add a expmed field.
21292         (restore_target_globals): Copy the expmed field to
21293         this_target_expmed.
21294         * target-globals.c: Include expmed.h.
21295         (default_target_globals): Initialize the expmed field.
21296         (save_target_globals): Likewise.
21297
21298 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21299
21300         * Makefile.in (target-globals.o): Depend on reload.h.
21301         * reload.h (target_reload): New structure.
21302         (default_target_reload): Declare.
21303         (this_target_reload): Declare as a variable or define as a macro.
21304         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
21305         * reload1.c (default_target_reload): New variable
21306         (this_target_reload): New conditional variable.
21307         (indirect_symref_ok, double_reg_address_ok): Delete.
21308         (spill_indirect_levels): Redefine as a macro.
21309         * target-globals.h (this_target_reload): Declare.
21310         (target_globals): Add a reload field.
21311         (restore_target_globals): Copy the reload field to
21312         this_target_reload.
21313         * target-globals.c: Include hard-reg-set.h.
21314         (default_target_globals): Initialize the reload field.
21315         (save_target_globals): Likewise.
21316
21317 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21318
21319         * rtl.h (target_rtl): Add x_static_reg_base_value.
21320         * alias.c (static_reg_base_value): Redefine as a macro.
21321
21322 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21323
21324         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
21325         (GTFILES): Remove reginfo.c.
21326         * rtl.h (target_rtl): Add x_top_of_stack.
21327         (top_of_stack): New macro.
21328         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
21329         (top_of_stack): Delete.
21330
21331 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21332
21333         * regs.h (target_regs): Add x_hard_regs_of_mode,
21334         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
21335         x_may_move_out_cost and x_last_mode_for_init_move_cost.
21336         (have_regs_of_mode, contains_reg_of_mode, move_cost)
21337         (may_move_in_cost, may_move_out_cost): Redefine as macros.
21338         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
21339         (may_move_in_cost, may_move_out_cost): Delete.
21340         (last_mode_for_init_move_cost): Redefine as a macro.
21341
21342 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21343
21344         * hard-reg-set.h (target_hard_regs): New structure.
21345         (default_target_hard_regs): Declare.
21346         (this_target_hard_regs): Declare as a variable or define as a macro.
21347         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
21348         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
21349         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
21350         (reg_class_size, reg_class_subclasses, reg_class_subunion)
21351         (reg_class_superunion, reg_names): Redefine as macros.
21352         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
21353         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
21354         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
21355         (reg_class_contents, reg_class_size, reg_class_subclasses)
21356         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
21357         (default_target_hard_regs): New variable
21358         (this_target_hard_regs, initial_call_really_used_regs)
21359         (initial_reg_alloc_order): New conditional variables.
21360         (initial_reg_names): New variable.
21361         (init_reg_sets): Assert that initial_call_really_used_regs,
21362         initial_reg_alloc_order and initial_reg_names
21363         are all the same size as their variable counterparts.  Use them to
21364         initialize those counterparts.
21365         * target-globals.h (this_target_hard_regs): Declare.
21366         (target_globals): Add a hard_regs field.
21367         (restore_target_globals): Copy the hard_regs field to
21368         this_target_hard_regs.
21369         * target-globals.c: Include hard-reg-set.h.
21370         (default_target_globals): Initialize the hard_regs field.
21371         (save_target_globals): Likewise.
21372
21373 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21374
21375         * Makefile.in (target-globals.o): Depend on $(RTL_H).
21376         * rtl.h (target_rtl): New structure.
21377         (default_target_rtl): Declare.
21378         (this_target_rtl): Declare as a variable or define as a macro.
21379         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
21380         Redefine as macros.
21381         * emit-rtl.c (default_target_rtl): New variable.
21382         (this_target_rtl): New conditional variable.
21383         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
21384         (return_address_pointer_rtx): Delete.
21385         (initial_regno_reg_rtx): New macro.
21386         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
21387         (init_emit_regs): Likewise.
21388         * target-globals.h (this_target_rtl): Declare.
21389         (target_globals): Add a rtl field.
21390         (restore_target_globals): Copy the rtl field to this_target_rtl.
21391         * target-globals.c: Include rtl.h.
21392         (default_target_globals): Initialize the rtl field.
21393         (save_target_globals): Likewise.
21394
21395 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21396
21397         * Makefile.in (target-globals.o): Depend on $(REGS_H).
21398         * regs.h (target_reg_modes): New structure.
21399         (default_target_reg_modes): Declare.
21400         (this_target_reg_modes): Declare as a variable or define as a macro.
21401         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
21402         * reginfo.c (default_target_reg_modes): New variable.
21403         (this_target_reg_modes): New conditional variable.
21404         (hard_regno_nregs, reg_raw_mode): Delete.
21405         * target-globals.h (this_target_regs): Declare.
21406         (target_globals): Add a regs field.
21407         (restore_target_globals): Copy the regs field to this_target_regs.
21408         * target-globals.c: Include regs.h.
21409         (default_target_globals): Initialize the regs field.
21410         (save_target_globals): Likewise.
21411
21412 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21413
21414         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
21415         * doc/tm.texi: Regenerate.
21416         * Makefile.in (OBJS-common): Add target-globals.o.
21417         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
21418         and target-globals.h.
21419         (target-globals.o): New rule.
21420         (GTFILES): Include $(srcdir)/target-globals.h.
21421         * defaults.h (SWITCHABLE_TARGET): Define.
21422         * gengtype.c (open_base_files): Add target-globals.h to the
21423         list of includes.
21424         * target-globals.h: New file.
21425         * target-globals.c: Likewise.
21426
21427         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
21428         * flags.h (target_flag_state): New structure.
21429         (default_target_flag_state): Declare.
21430         (this_target_flag_state): Declare as a variable or define as a macro.
21431         (align_loops_log): Redefine as a macro.
21432         (align_loops_max_skip, align_jumps_log): Likewise.
21433         (align_jumps_max_skip, align_labels_log): Likewise.
21434         (align_labels_max_skip, align_functions_log): Likewise.
21435         * toplev.c (default_target_flag_state): New variable.
21436         (this_target_flag_state): New conditional variable.
21437         (align_loops_log): Delete.
21438         (align_loops_max_skip, align_jumps_log): Likewise.
21439         (align_jumps_max_skip, align_labels_log): Likewise.
21440         (align_labels_max_skip, align_functions_log): Likewise.
21441         * target-globals.h (this_target_flag_state): Declare.
21442         (target_globals): Add a flag_state field.
21443         (restore_target_globals): Copy the flag_state field to
21444         this_target_flag_state.
21445         * target-globals.c: Include flags.h.
21446         (default_target_globals): Initialize the flag_state field.
21447         (save_target_globals): Likewise.
21448
21449 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21450
21451         * postreload.c (reg_symbol_ref[]): New.
21452         (move2add_use_add2_insn): New.
21453         (move2add_use_add3_insn): New.
21454         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
21455         (move2add_note_store): Likewise.
21456
21457 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
21458
21459         PR rtl-optimization/44752
21460         * genautomata.c (main): Don't emit an empty file even if there
21461         is no automaton.
21462
21463 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21464
21465         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
21466         ix86_solaris_return_in_memory.
21467         * config/i386-protos.h: Reflect this.
21468         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21469         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21470         Move ...
21471         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
21472
21473 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21474
21475         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
21476         align the stack when it's going to be saved.
21477
21478 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21479
21480         PR pch/14940
21481         * config/host-solaris.c (mmap_fixed): New function.
21482         (sol_gt_pch_get_address): Use it.
21483         (sol_gt_pch_use_address): Likewise.
21484
21485 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21486
21487         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
21488         pentiumpro on Solaris 8 and 9/x86.
21489         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
21490         Document SSE/SSE2 support.
21491         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
21492
21493 2010-07-12  Andi Kleen  <ak@linux.intel.com>
21494
21495         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
21496         instead of gcc_assert to print better error message for multiple
21497         prevailing defs.
21498
21499 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
21500
21501         * config/i386/i386.c (ix86_asm_output_function_label): Change format
21502         string placeholder from 0x%x to %#x.
21503         (ix86_code_end): Use putc to output '\n'.
21504         (ix86_print_operand) <case ';'>: Use putc to output ';'.
21505
21506 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
21507
21508         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
21509         in directive -export.
21510
21511 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
21512
21513         * reginfo.h (reg_classes_intersect_p): Change arguments type to
21514         reg_class_t.
21515         * rtl.h (reg_classes_intersect_p): Adjust prototype.
21516
21517         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21518         Remove macros.
21519         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
21520         rs6000_memory_move_cost): Remove
21521         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
21522         TARGET_MEMORY_MOVE_COST): Define.
21523         (rs6000_register_move_cost): Make static. Change arguments type from
21524         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
21525         (rs6000_memory_move_cost): Make static. Change arguments type from
21526         'enum reg_class' to reg_class_t.
21527
21528 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
21529
21530         PR middle-end/42505
21531         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
21532         lookup code into....
21533         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
21534         new functions.
21535         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
21536         * cfgloopanal.c (target_clobbered_regs): Define.
21537         (init_set_costs): Initialize target_clobbered_regs.
21538         (estimate_reg_pressure_cost): Add call_p argument.  When true,
21539         adjust the number of available registers to exclude the
21540         call-clobbered registers.
21541         * cfgloop.h (target_clobbered_regs): Declare.
21542         (estimate_reg_pressure_cost): Adjust declaration.
21543         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
21544         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
21545         (determine_set_costs): Dump target_clobbered_regs.
21546         (loop_body_includes_call): New function.
21547         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
21548         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
21549         call_p flag through.
21550         (best_gain_for_invariant): Likewise.
21551         (find_invariants_to_move): Likewise.
21552         (move_single_loop_invariants): Likewise, using already-computed
21553         has_call field.
21554
21555 2010-07-10  Richard Guenther  <rguenther@suse.de>
21556             Joern Rennecke  <joern.rennecke@embecosm.com>
21557
21558         PR debug/44832
21559         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
21560         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
21561         unless they have DECL_IGNORED_P set.
21562
21563 2010-07-10  Richard Guenther  <rguenther@suse.de>
21564
21565         PR lto/44889
21566         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
21567         helper function.
21568         (gimple_types_compatible_p): Similar to pointed-to
21569         types allow and merge a mix of complete and incomplete aggregate.
21570         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
21571         (iterative_hash_gimple_type): Adjust for that.
21572
21573 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
21574
21575         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
21576
21577 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
21578
21579         PR objc/44140
21580         * config/darwin.c (output_objc_section_asm_op): Save and restore
21581         section when outputting ObjC section list.
21582
21583 2010-07-09  Jan Hubicka  <jh@suse.cz>
21584
21585         * lto-streamer-out.c (produce_symtab): Do not write alias
21586         cgraph/varpool nodes.
21587
21588 2010-07-09  Jan Hubicka  <jh@suse.cz>
21589
21590         * tree-inline.c (declare_return_variable): Fix ICE while
21591         inlining DECL_BY_VALUE function not in SSA form
21592
21593 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
21594
21595         PR tree-optimization/44576
21596         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
21597         New.  Pull out from is_loop_prefetching_profitable to implement
21598         the trip count to ahead ratio heuristic.
21599         (mem_ref_count_reasonable_p): New.  Pull out from
21600         is_loop_prefetching_profitable to implement the instruction to
21601         memory reference ratio heuristic.  Also consider not reasonable if
21602         the memory reference count is above a threshold (to avoid
21603         explosive compilation time.
21604         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
21605         is_loop_prefetching_profitable to implement the instruction to
21606         prefetch ratio heuristic.
21607         (is_loop_prefetching_profitable): Removed.
21608         (loop_prefetch_arrays): Distribute the cost analysis across the
21609         function to allow early exit of the prefetch analysis.
21610         is_loop_prefetching_profitable is splitted into three functions,
21611         with each one called as early as possible.
21612         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
21613         number of memory references in a loop is considered too many.
21614
21615 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21616
21617         * reload.c (find_reloads): Don't clear badop if we have a winreg
21618         alternative, but not win, and the class only has fixed regs.
21619         * hard-reg-set.h (class_only_fixed_regs): Declare.
21620         * reginfo.c (class_only_fixed_regs): New array.
21621         (init_reg_sets_1): Initialize it.
21622         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
21623         discourage alternatives using the stack pointer.
21624
21625         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
21626
21627         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
21628
21629         * config/arm/arm.md (cbranchqi4): Fix array size.
21630         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
21631         calculating length.
21632
21633 2010-07-09  Richard Guenther  <rguenther@suse.de>
21634
21635         * gimple.c (struct type_fixup_s): New struct and VEC type.
21636         (gimple_register_type_fixups): New static global.
21637         (gimple_queue_type_fixup): New function.
21638         (gimple_types_compatible_p): Queue type fixups instead of
21639         applying them here.
21640         (gimple_register_type): Apply queued fixups for the
21641         canonical type.  Empty the type fixup queue.
21642
21643 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21644
21645         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
21646         * configure: Regenerate.
21647         * config.in: Ditto.
21648
21649 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21650             Denys Vlasenko  <dvlasenk@redhat.com>
21651             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
21652
21653         PR tree-optimization/28632
21654         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
21655         (extract_range_from_binary_expr): Further optimize
21656         BIT_AND_EXPR and BIT_IOR_EXPR.
21657
21658 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
21659
21660         * tree-if-conv.c (fold_or_predicates): New.
21661         (add_to_predicate_list): Call it.
21662
21663 2010-07-09  Richard Guenther  <rguenther@suse.de>
21664
21665         PR middle-end/44890
21666         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
21667         if base is a pointer.
21668         * tree-cfg.c (verify_expr): Update MEM_REF checking.
21669
21670 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
21671
21672         PR target/44877
21673         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
21674         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
21675         builtin mask for load/store builtins.
21676
21677 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21678
21679         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
21680         for "lock addl".
21681         * configure: Regenerate.
21682         * config/i386/i386.c (ix86_print_operand) <case ';'>:
21683         Remove TARGET_MACHO.
21684
21685 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
21686
21687         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
21688         default ISA flags.
21689         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
21690
21691 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
21692
21693         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
21694
21695 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21696
21697         * config/picochip/picochip.md (commsTestPort): Emit more
21698         efficient sequence for tstport instruction.
21699
21700 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21701
21702         * config/i386/i386.c (ix86_veclib_handler): Make static.
21703
21704 2010-07-09  Richard Guenther  <rguenther@suse.de>
21705
21706         PR tree-optimization/44852
21707         * tree-ssa-alias.c: Include toplev.h for exact_log2.
21708         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
21709         in MEM_REF.
21710         (indirect_refs_may_alias_p): Likewise.
21711         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
21712
21713 2010-07-09  Richard Guenther  <rguenther@suse.de>
21714
21715         PR tree-optimization/44882
21716         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
21717         sets do conflict.
21718         (vectorizable_load): Likewise.
21719
21720 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21721
21722         PR target/40657
21723         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
21724         All callers changed.
21725         Handle the case when we're called for the epilogue.
21726         (thumb_unexpanded_epilogue): Use it.
21727         (thumb1_expand_epilogue): Likewise.
21728
21729 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21730
21731         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
21732         both ranges are range_int_cst_p with non-negative minimum,
21733         try harder to derive smaller range.
21734
21735 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21736
21737         * genrecog.c: Include diagnostic-core.h before toplev.h.
21738         * genoutput.c: Likewise.
21739         * genextract.c: Likewise.
21740         * genautomata.c: Likewise.
21741         * genemit.c: Likewise.
21742         * genpeep.c: Likewise.
21743         * genattrtab.c: Likewise.
21744         * genconditions.c: Likewise.
21745         * genpreds.c: Likewise.
21746
21747 2010-07-08  Andi Kleen  <ak@linux.intel.com>
21748
21749         * lto-section-in.c (lto_section_name): Add missing comma.
21750
21751 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
21752
21753         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
21754         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
21755         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
21756         (ia64_override_options): Rename to...
21757         (ia64_option_override): ... this one. Make static.
21758
21759 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21760
21761         PR middle-end/44843
21762         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
21763         pointed-to type of the offset in a MEM_REF to compute the alignment.
21764
21765 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
21766
21767         * final.c (final_scan_insn): Replace
21768         TARGET_UNWIND_INFO macro check by unwind_emit
21769         hook NULL check.
21770         * targhooks.c (default_unwind_emit): Removed.
21771         * targhooks.h (default_unwind_emit): Likewise.
21772         * target.def (unwind_emit): Set default value to NULL.
21773
21774         * config/i386/i386-protos.h (ix86_asm_output_function_label):
21775         New prototype.
21776         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
21777         for NULL fntype argument and allow 64-bit targets.
21778         (ix86_asm_output_function_label): New function.
21779         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
21780         (ix86_handle_fndecl_attribute): Likewise.
21781         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
21782         * doc/doc/tm.texi: Regenerated.
21783         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
21784         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
21785         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
21786         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
21787         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21788         * config/elfos.h: Likewise.
21789         * config/i386/cygming.h: Likewise.
21790         * config/netbsd-aout.h: Likewise.
21791         * config/openbsd.h: Likewise.
21792         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
21793         by ix86_asm_output_function_label function call.
21794         * varasm.c (assemble_start_function): Use
21795         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21796
21797 2010-07-08  Jan Hubicka  <jh@suse.cz>
21798
21799         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
21800         New function.
21801         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
21802         Declare.
21803         * ipa-cp.c (ipcp_estimate_growth): Use it.
21804         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
21805         Likewise.
21806
21807 2010-07-08  Jan Hubicka  <jh@suse.cz>
21808
21809         * tree-inline.c (declare_return_variable): Allocate annotation for new
21810         temporary.
21811
21812 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
21813
21814         PR tree-optimization/44710
21815         * tree-if-conv.c (parse_predicate): New.
21816         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
21817         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
21818
21819 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
21820
21821         * common.opt (ftree-loop-if-convert): New flag.
21822         * doc/invoke.texi (ftree-loop-if-convert): Documented.
21823         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
21824         when flag_tree_loop_if_convert is set.
21825
21826 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
21827
21828         * config/i386/i386.c: Use short syntax for function calls
21829         through function pointers.
21830         * config/i386/i386.md: Ditto.
21831
21832 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21833
21834         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
21835
21836 2010-07-08  Richard Guenther  <rguenther@suse.de>
21837
21838         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
21839         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
21840
21841 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
21842
21843         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
21844         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
21845         (loc_list_from_tree): Likewise.
21846         (output_loc_operands): Handle outputting DW_OP_const[48]u
21847         with loc->dtprel set.
21848         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
21849
21850 2010-07-08  Jan Hubicka  <jh@suse.cz>
21851
21852         * ipa.c: Include pointer-set.h
21853         (cgraph_externally_visible_p): New attribute ALIASED;
21854         when in LTO, hidden symbols are local unless they are aliased.
21855         (function_and_variable_visibility): Compute aliased nodes;
21856         handle LTO and hidden symbol on functions and vars.
21857         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
21858         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
21859
21860 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21861
21862         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
21863         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21864         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21865         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21866         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
21867         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
21868         (ix86_gen_probe_stack_range): Likewise.
21869         (override_options): Set them.
21870         (ix86_target_stack_probe): New function.
21871         (ix86_compute_frame_layout): Force use of push instructions to
21872         save registers if stack checking with probes is enabled.
21873         (get_scratch_register_on_entry): New function.
21874         (release_scratch_register_on_entry): Likewise.
21875         (ix86_adjust_stack_and_probe): Likewise.
21876         (output_adjust_stack_and_probe): Likewise.
21877         (ix86_emit_probe_stack_range): Likewise.
21878         (output_probe_stack_range): Likewise.
21879         (ix86_expand_prologue): Emit stack checking code if static built-in
21880         stack checking is enabled.
21881         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
21882         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
21883         (output_adjust_stack_and_probe): Likewise.
21884         (output_probe_stack_range): Likewise.
21885         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
21886         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
21887         TARGET_STACK_PROBE.
21888         (allocate_stack_worker_64): Likewise.
21889         (allocate_stack): Likewise.
21890         (adjust_stack_and_probe): New insn.
21891         (probe_stack_range): Likewise.
21892
21893 2010-07-08  Richard Guenther  <rguenther@suse.de>
21894
21895         PR tree-optimization/44831
21896         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
21897         a MEM_REF preserving TBAA info of the original dereference.
21898         Dereference the original pointer if the address is not invariant.
21899         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
21900         at least one invariant address that we are going to dereference.
21901
21902 2010-07-08  Richard Guenther  <rguenther@suse.de>
21903
21904         PR tree-optimization/44861
21905         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
21906         information when building MEM_REFs.
21907         (vectorizable_load): Likewise.
21908         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
21909
21910 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21911
21912         * config/sol2-c.c: Do not include diagnostic-core.h.
21913
21914 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21915
21916         PR bootstrap/44768
21917         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
21918         with respect to current_function_decl. Pass decl of the function.
21919         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
21920         * ipa-inline.c (compute_inline_parameters): Pass decl to
21921         estimated_stack_frame_size.
21922
21923 2010-07-08  Richard Guenther  <rguenther@suse.de>
21924
21925         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
21926         New function.
21927         (valueize_refs): Call it.
21928
21929 2010-07-08  Richard Guenther  <rguenther@suse.de>
21930
21931         PR rtl-optimization/44838
21932         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
21933         SSA form do not use pointer equivalence.
21934
21935 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21936
21937         * dwarf2out.c (AT_linkage_name): Delete.
21938         (add_linkage_attr): New function.
21939         (add_linkage_name): Call it to emit the linkage attribute.
21940         (dwarf2out_finish): Likewise.
21941         (move_linkage_attr): Explicitly accept both attribute variants.
21942
21943 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21944
21945         * toplev.h: Do not include diagnostic-core.h.
21946         Include diagnostic-core.h in every file that includes toplev.h.
21947         * c-tree.h: Do not include toplev.h.
21948         * pretty-print.h: Update comment.
21949         * Makefile.in: Update dependencies.
21950         * alias.c: Include diagnostic-core.h in every file that includes
21951         toplev.h.
21952         * attribs.c: Likewise.
21953         * auto-inc-dec.c: Likewise.
21954         * bb-reorder.c: Likewise.
21955         * bt-load.c: Likewise.
21956         * caller-save.c: Likewise.
21957         * calls.c: Likewise.
21958         * cfg.c: Likewise.
21959         * cfganal.c: Likewise.
21960         * cfgbuild.c: Likewise.
21961         * cfgcleanup.c: Likewise.
21962         * cfghooks.c: Likewise.
21963         * cfgloop.c: Likewise.
21964         * combine.c: Likewise.
21965         * config/alpha/alpha.c: Likewise.
21966         * config/arc/arc.c: Likewise.
21967         * config/arm/arm.c: Likewise.
21968         * config/arm/pe.c: Likewise.
21969         * config/avr/avr.c: Likewise.
21970         * config/bfin/bfin.c: Likewise.
21971         * config/cris/cris.c: Likewise.
21972         * config/crx/crx.c: Likewise.
21973         * config/darwin-c.c: Likewise.
21974         * config/darwin.c: Likewise.
21975         * config/fr30/fr30.c: Likewise.
21976         * config/frv/frv.c: Likewise.
21977         * config/h8300/h8300.c: Likewise.
21978         * config/host-darwin.c: Likewise.
21979         * config/i386/i386.c: Likewise.
21980         * config/i386/netware.c: Likewise.
21981         * config/i386/nwld.c: Likewise.
21982         * config/i386/winnt-cxx.c: Likewise.
21983         * config/i386/winnt-stubs.c: Likewise.
21984         * config/i386/winnt.c: Likewise.
21985         * config/ia64/ia64-c.c: Likewise.
21986         * config/ia64/ia64.c: Likewise.
21987         * config/iq2000/iq2000.c: Likewise.
21988         * config/lm32/lm32.c: Likewise.
21989         * config/m32c/m32c-pragma.c: Likewise.
21990         * config/m32c/m32c.c: Likewise.
21991         * config/m32r/m32r.c: Likewise.
21992         * config/m68hc11/m68hc11.c: Likewise.
21993         * config/m68k/m68k.c: Likewise.
21994         * config/mcore/mcore.c: Likewise.
21995         * config/mep/mep-pragma.c: Likewise.
21996         * config/mep/mep.c: Likewise.
21997         * config/mmix/mmix.c: Likewise.
21998         * config/mn10300/mn10300.c: Likewise.
21999         * config/moxie/moxie.c: Likewise.
22000         * config/pa/pa.c: Likewise.
22001         * config/pdp11/pdp11.c: Likewise.
22002         * config/picochip/picochip.c: Likewise.
22003         * config/rs6000/rs6000-c.c: Likewise.
22004         * config/rs6000/rs6000.c: Likewise.
22005         * config/rx/rx.c: Likewise.
22006         * config/s390/s390.c: Likewise.
22007         * config/score/score.c: Likewise.
22008         * config/score/score3.c: Likewise.
22009         * config/score/score7.c: Likewise.
22010         * config/sh/sh.c: Likewise.
22011         * config/sh/symbian-base.c: Likewise.
22012         * config/sh/symbian-c.c: Likewise.
22013         * config/sh/symbian-cxx.c: Likewise.
22014         * config/sol2-c.c: Likewise.
22015         * config/sol2.c: Likewise.
22016         * config/sparc/sparc.c: Likewise.
22017         * config/spu/spu.c: Likewise.
22018         * config/stormy16/stormy16.c: Likewise.
22019         * config/v850/v850-c.c: Likewise.
22020         * config/v850/v850.c: Likewise.
22021         * config/vax/vax.c: Likewise.
22022         * config/vxworks.c: Likewise.
22023         * config/xtensa/xtensa.c: Likewise.
22024         * convert.c: Likewise.
22025         * cse.c: Likewise.
22026         * cselib.c: Likewise.
22027         * dbgcnt.c: Likewise.
22028         * dbxout.c: Likewise.
22029         * ddg.c: Likewise.
22030         * dominance.c: Likewise.
22031         * emit-rtl.c: Likewise.
22032         * explow.c: Likewise.
22033         * expmed.c: Likewise.
22034         * fixed-value.c: Likewise.
22035         * fold-const.c: Likewise.
22036         * fwprop.c: Likewise.
22037         * gcse.c: Likewise.
22038         * ggc-common.c: Likewise.
22039         * ggc-page.c: Likewise.
22040         * ggc-zone.c: Likewise.
22041         * gimple-low.c: Likewise.
22042         * gimplify.c: Likewise.
22043         * graph.c: Likewise.
22044         * haifa-sched.c: Likewise.
22045         * ifcvt.c: Likewise.
22046         * implicit-zee.c: Likewise.
22047         * integrate.c: Likewise.
22048         * ira-build.c: Likewise.
22049         * ira-color.c: Likewise.
22050         * ira-conflicts.c: Likewise.
22051         * ira-costs.c: Likewise.
22052         * ira-lives.c: Likewise.
22053         * ira.c: Likewise.
22054         * lists.c: Likewise.
22055         * loop-doloop.c: Likewise.
22056         * loop-iv.c: Likewise.
22057         * lto-opts.c: Likewise.
22058         * lto-symtab.c: Likewise.
22059         * main.c: Likewise.
22060         * modulo-sched.c: Likewise.
22061         * optabs.c: Likewise.
22062         * params.c: Likewise.
22063         * plugin.c: Likewise.
22064         * postreload-gcse.c: Likewise.
22065         * postreload.c: Likewise.
22066         * predict.c: Likewise.
22067         * profile.c: Likewise.
22068         * real.c: Likewise.
22069         * regcprop.c: Likewise.
22070         * reginfo.c: Likewise.
22071         * regmove.c: Likewise.
22072         * reorg.c: Likewise.
22073         * resource.c: Likewise.
22074         * rtl.c: Likewise.
22075         * rtlanal.c: Likewise.
22076         * sched-deps.c: Likewise.
22077         * sched-ebb.c: Likewise.
22078         * sched-rgn.c: Likewise.
22079         * sdbout.c: Likewise.
22080         * sel-sched-dump.c: Likewise.
22081         * sel-sched-ir.c: Likewise.
22082         * simplify-rtx.c: Likewise.
22083         * stmt.c: Likewise.
22084         * stor-layout.c: Likewise.
22085         * store-motion.c: Likewise.
22086         * targhooks.c: Likewise.
22087         * tree-cfg.c: Likewise.
22088         * tree-cfgcleanup.c: Likewise.
22089         * tree-dump.c: Likewise.
22090         * tree-eh.c: Likewise.
22091         * tree-inline.c: Likewise.
22092         * tree-nomudflap.c: Likewise.
22093         * tree-object-size.c: Likewise.
22094         * tree-optimize.c: Likewise.
22095         * tree-outof-ssa.c: Likewise.
22096         * tree-phinodes.c: Likewise.
22097         * tree-profile.c: Likewise.
22098         * tree-ssa-ccp.c: Likewise.
22099         * tree-ssa-coalesce.c: Likewise.
22100         * tree-ssa-live.c: Likewise.
22101         * tree-ssa-loop-niter.c: Likewise.
22102         * tree-ssa-loop-prefetch.c: Likewise.
22103         * tree-ssa-loop.c: Likewise.
22104         * tree-ssa-structalias.c: Likewise.
22105         * tree-ssa-uninit.c: Likewise.
22106         * tree-ssa.c: Likewise.
22107         * tree-vect-data-refs.c: Likewise.
22108         * tree-vect-loop-manip.c: Likewise.
22109         * tree-vect-loop.c: Likewise.
22110         * tree-vect-patterns.c: Likewise.
22111         * tree-vect-stmts.c: Likewise.
22112         * tree-vrp.c: Likewise.
22113         * varasm.c: Likewise.
22114         * vec.c: Likewise.
22115         * web.c: Likewise.
22116         * xcoffout.c: Likewise.
22117
22118 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
22119
22120         * gengtype.c (write_field_root): New function.
22121         (write_root): Use it.
22122
22123 2010-07-07  Wei Guozhi  <carrot@google.com>
22124
22125         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
22126         of lowest bits to lshift/compare): Add a missing line.
22127
22128 2010-07-07  Wei Guozhi  <carrot@google.com>
22129
22130         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
22131         of lowest bits to lshift/compare): New.
22132
22133 2010-07-07  Tom Tromey  <tromey@redhat.com>
22134
22135         * doc/tm.texi: Update.
22136         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
22137         Add @hook.
22138         * target.def (want_debug_pub_sections): New hook.
22139         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
22140         * dwarf2out.c (add_pubname_string): Check
22141         targetm.want_debug_pub_sections.
22142         (add_pubname): Likewise.
22143         (add_pubtype): Likewise.
22144
22145 2010-07-07  Jie Zhang  <jie@codesourcery.com>
22146
22147         * genautomata.c (output_automata_list_min_issue_delay_code):
22148         Correctly decompress min_issue_delay.
22149
22150 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
22151
22152         PR rtl-optimization/44404
22153         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
22154         possible, use reg_overlap_mentioned_p instead.
22155
22156 2010-07-07  Duncan Sands  <baldrick@free.fr>
22157
22158         PR middle-end/41355
22159         * tree.c (build_function_type_skip_args): Copy the original type using
22160         build_distinct_type_copy rather than copy_node.
22161
22162 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
22163
22164         PR target/44850
22165         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
22166         revision 161876.
22167         (ix86_expand_prologue): Likewise.
22168         (ix86_handle_fndecl_attribute): Likewise.
22169         (ix86_asm_declare_function_name): Likewise.
22170         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22171         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22172         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
22173         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
22174         * doc/extend.texi: Likewise.
22175
22176 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
22177
22178         PR target/44844
22179         * config/i386/i386.md (rdrand<mode>): Changed to expand to
22180         retry if the carry flag isn't valid.
22181         (rdrand<mode>_1): New.
22182
22183 2010-07-07  Richard Guenther  <rguenther@suse.de>
22184
22185         PR middle-end/44790
22186         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
22187         for expanding the constant offset for MEM_REFs.
22188
22189 2010-07-07  Richard Guenther  <rguenther@suse.de>
22190
22191         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
22192         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
22193         * gimple.h (is_gimple_operand): Remove.
22194         * gimple.c (is_gimple_operand): Likewise.
22195         (walk_gimple_op): Fix wi->val_only setting for calls.
22196         * tree-cfg.c (verify_gimple_call): Fix argument validation.
22197         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
22198         invalid gimple calls.
22199
22200 2010-07-06  Jan Hubicka  <jh@suse.cz>
22201
22202         * lto-cgraph.c (output_cgraph): Add missing declaration.
22203
22204 2010-07-06  Jan Hubicka  <jh@suse.cz>
22205
22206         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
22207         partition.
22208
22209 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
22210
22211         * doc/gimple.texi (GIMPLE_DEBUG): Document.
22212         * doc/rtl.texi (Debug Information): New node.
22213         (NOTE_INSN_VAR_LOCATION): Document.
22214         (debug_insn): Likewise.
22215         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
22216
22217 2010-07-07  Jan Hubicka  <jh@suse.cz>
22218
22219         With parts by Richard Guenther.
22220
22221         PR middle-end/44813
22222         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
22223         for functions passed by reference.
22224         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
22225         in memory when passed by reference.
22226         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
22227         beggining.
22228         * ipa-split.c (split_function): Cleanup way return value is passed;
22229         handle SSA DECL_BY_REFERENCE retvals.
22230         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
22231         DECL_BY_REFERENCE is set.
22232         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
22233         find_what_p_points_to): Handle RESULT_DECL.
22234         * tree-inline.c (declare_return_variable): Get new entry_block argument;
22235         when passing by reference ensure that RESULT_DECL is gimple_val.
22236         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
22237         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
22238
22239 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
22240
22241         PR rtl-optimization/44787
22242         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
22243         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
22244
22245 2010-07-06  Jan Hubicka  <jh@suse.cz>
22246
22247         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
22248         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
22249         with body can prevail.
22250         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
22251         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
22252         * cgraph.c (cgraph_get_node_or_alias): New function.
22253         * cgraph.h (cgraph_get_node_or_alias): Declare.
22254
22255 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
22256
22257         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
22258         support.
22259         (ix86_expand_prologue): Likewise.
22260         (ix86_handle_fndecl_attribute): Likewise.
22261         (ix86_asm_declare_function_name): New function for
22262         ASM_DECLARE_FUNCTION_NAME.
22263         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
22264         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
22265         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
22266         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
22267         * doc/extend.texi: Adjust documentation about ms_hook_prologue
22268         attribute.
22269
22270 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22271
22272         * config/i386/i386.md (immediate_operand): New mode attribute.
22273
22274         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
22275         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
22276         using P mode iterator.
22277         (pro_epilogue_adjust_stack_di_2): Rename from
22278         pro_epilogue_adjust_stack_rex64_2.
22279
22280         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
22281
22282 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22283
22284         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
22285         through gen_mov_insv_1 function pointer.
22286         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
22287         gen_truncxf<mode>2 through gen_truncxf function pointer.
22288         (remainder<mode>3): Ditto.
22289         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
22290         (allocate_stack): Call gen_allocate_stack_worker_64 or
22291         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
22292         function pointer.
22293         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
22294         function pointer.
22295
22296 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22297
22298         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
22299         operand constraint instead of <r><i>m.
22300
22301 2010-07-06  Richard Guenther  <rguenther@suse.de>
22302
22303         PR middle-end/44828
22304         * convert.c (convert_to_integer): Watch out for overflowing
22305         MULT_EXPR as well.
22306
22307 2010-07-05  Jan Hubicka  <jh@suse.cz>
22308
22309         * lto-streamer.c (write_symbol_vec): Rename to ...
22310         (write_symbol) ... this one; write only symbol given and when
22311         present in cache. Sanity check that what is defined is present
22312         in cgraph/varpool with body/finalized decl.
22313         (write_symbols_of_kind): Remove.
22314         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
22315         pairs to produce symtab.
22316         (produce_asm_for_decls): Update call of produce_symtab; don't do so
22317         when doing WPA streaming.
22318
22319 2010-07-05  Jan Hubicka  <jh@suse.cz>
22320
22321         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
22322         function is still available to fold into.
22323
22324 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22325
22326         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
22327         * function.h (struct_function): Change type of local_decls field
22328         to a VEC.
22329         (add_local_decl): New function.
22330         (FOR_EACH_LOCAL_DECL): New macro.
22331         * cfgexpand.c (init_vars_expansion): Adjust for new type of
22332         cfun->local_decls.
22333         (estimated_stack_frame_size): Likewise.
22334         (expand_used_vars): Likewise.
22335         * cgraphbuild.c (build_cgraph_edges): Likewise.
22336         * function.c (instantiate_decls_1): Likewise.
22337         * ipa-struct-reorg.c (build_data_structure): Likewise.
22338         * ipa-type-escape.c (analyze_function): Likewise.
22339         * lto-streamer-in.c (input_function): Likewise.
22340         * lto-streamer-out.c (output_function): Likewise.
22341         * tree-ssa-live.c (remove_unused_locals): Likewise.
22342         * tree.c (free_lang_data_in_decl): Likewise.
22343         (find_decls_types_in_node): Likewise.
22344         * omp-low.c (remove_exit_barrier): Likewise.
22345         (expand_omp_taskreg): Likewise.
22346         (list2chain): Rename to...
22347         (vec2chain): ...this.  Adjust.
22348         * cgraphunit.c (assemble_thunk): Call add_local_decl.
22349         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
22350         * gimple-low.c (record_vars_into): Likewise.
22351         * tree-inline.c (remap_decls): Likewise.
22352         (declare_return_variable): Likewise.
22353         (declare_inline_vars): Likewise.
22354         (copy_forbidden): Adjust for new type of cfun->local_decls.
22355         (add_local_variables): New function.
22356         (expand_call_inline): Call it.
22357         (tree_function_versioning): Likewise.
22358
22359 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
22360
22361         AVX Programming Reference (June, 2010)
22362         * config/i386/cpuid.h (bit_F16C): New.
22363         (bit_RDRND): Likewise.
22364         (bit_FSGSBASE): Likewise.
22365
22366         * config/i386/i386-builtin-types.def: Add
22367         "DEF_FUNCTION_TYPE (UINT16)", function types for
22368         float16 <-> float conversions and
22369         "DEF_FUNCTION_TYPE (VOID, UINT64)".
22370
22371         * config/i386/i386-c.c (ix86_target_macros_internal): Support
22372         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
22373         OPTION_MASK_ISA_F16C.
22374
22375         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
22376         (OPTION_MASK_ISA_RDRND_SET): Likewise.
22377         (OPTION_MASK_ISA_F16C_SET): Likewise.
22378         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
22379         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
22380         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
22381         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
22382         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
22383         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
22384         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
22385         (override_options): Handle them.
22386         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
22387         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
22388         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
22389         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
22390         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
22391         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
22392         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
22393         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
22394         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
22395         (bdesc_args): Likewise.
22396         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
22397         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
22398         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
22399         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
22400         Handle non-memory store.
22401
22402         * config/i386/i386.h (TARGET_FSGSBASE): New.
22403         (TARGET_RDRND): Likewise.
22404         (TARGET_F12C): Likewise.
22405
22406         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
22407         (UNSPEC_VCVTPS2PH): Likewise.
22408         (UNSPECV_RDFSBASE): Likewise.
22409         (UNSPECV_RDGSBASE): Likewise.
22410         (UNSPECV_WRFSBASE): Likewise.
22411         (UNSPECV_WRGSBASE): Likewise.
22412         (UNSPECV_RDRAND): Likewise.
22413         (rdfsbase<mode>): Likewise.
22414         (rdgsbase<mode>): Likewise.
22415         (wrfsbase<mode>): Likewise.
22416         (wrgsbase<mode>): Likewise.
22417         (rdrand<mode>): Likewise.
22418
22419         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
22420
22421         * config/i386/immintrin.h (_rdrand_u16): New.
22422         (_rdrand_u32): Likewise.
22423         (_readfsbase_u32): Likewise.
22424         (_readfsbase_u64): Likewise.
22425         (_readgsbase_u32): Likewise.
22426         (_readgsbase_u64): Likewise.
22427         (_writefsbase_u32): Likewise.
22428         (_writefsbase_u64): Likewise.
22429         (_writegsbase_u32): Likewise.
22430         (_writegsbase_u64): Likewise.
22431         (_rdrand_u64): Likewise.
22432         (_cvtsh_ss): Likewise.
22433         (_mm_cvtph_ps): Likewise.
22434         (_mm256_cvtph_ps): Likewise.
22435         (_cvtss_sh): Likewise.
22436         (_mm_cvtps_ph): Likewise.
22437         (_mm256_cvtps_ph): Likewise.
22438
22439         * config/i386/sse.md (vcvtph2ps): New.
22440         (*vcvtph2ps_load): Likewise.
22441         (vcvtph2ps256): Likewise.
22442         (vcvtps2ph): Likewise.
22443         (*vcvtps2ph): Likewise.
22444         (*vcvtps2ph_store): Likewise.
22445         (vcvtps2ph256): Likewise.
22446
22447         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
22448
22449         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
22450
22451 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
22452
22453         PR bootstrap/44512
22454         * genenums.c (main): Output include of insn-constants.h
22455         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
22456
22457 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
22458
22459         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
22460         (override_options): Initialize it.
22461         (ix86_expand_prologue): Use it.
22462
22463 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22464
22465         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
22466
22467 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22468
22469         * double-int.h (fit_double_type): Remove declaration.
22470         * double-int.c (fit_double_type): Remove function.
22471         * tree.h (int_fits_type_p): Adjust prototype.
22472         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
22473         instead of fit_double_type.
22474         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
22475         instead of fit_double_type and build_int_cst_wide.
22476         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
22477         instead of fit_double_type and build_int_cst_wide.
22478         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
22479         of fit_double_type.
22480
22481 2010-07-05  Jan Hubicka  <jh@suse.cz>
22482
22483         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
22484         in_other_partition.
22485         * lto-cgraph.c (referenced_from_other_partition_p,
22486         reachable_from_other_partition_p): Use in_other_partition flags.
22487         (output_node, output_varpool_node): COMDAT nodes always have private
22488         copies and thus are never used from other partition.
22489
22490 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22491
22492         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22493         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
22494         * config/ia64/ia64.c Include reload.h.
22495         (ia64_memory_move_cost): New function.
22496         (TARGET_MEMORY_MOVE_COST): Define.
22497         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
22498         memory_move_cost.
22499
22500 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
22501
22502         PR middle-end/42505
22503         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
22504         comments about cost model.
22505         (try_add_cand_for):  Add second strategy for choosing initial set
22506         based on original IVs, controlled by ORIGINALP argument.
22507         (get_initial_solution): Add ORIGINALP argument.
22508         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
22509         (find_optimal_iv_set): Try two different strategies for choosing
22510         the IV set, and return the one with lower cost.
22511
22512 2010-07-05  Richard Guenther  <rguenther@suse.de>
22513
22514         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
22515
22516 2010-07-05  Richard Guenther  <rguenther@suse.de>
22517
22518         * tree.c (reference_alias_ptr_type): New function.
22519         * tree.h (reference_alias_ptr_type): Declare.
22520         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
22521         allow non-TARGET_MEM_REF new refs.
22522         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
22523         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
22524         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
22525         (create_mem_ref): Get alias pointer type.  Adjust calls to
22526         create_mem_ref_raw.
22527         (maybe_fold_tmr): Likewise.
22528         * tree-flow.h (create_mem_ref): Adjust prototype.
22529
22530 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22531
22532         PR c++/44808
22533         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
22534         *from_p is VAR_DECL.
22535
22536 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22537
22538         * tree.h (build_call_list): Remove.
22539         * tree.c (build_call_list): Remove.
22540
22541 2010-07-05  Richard Guenther  <rguenther@suse.de>
22542
22543         * double-int.h (double_int_sub): Declare.
22544         * double-int.c (double_int_sub): New function.
22545         * dwarf2out.c (field_byte_offset): Use it.
22546         * fixed-value.c (do_fixed_add): Likewise.
22547         (do_fixed_multiply): Likewise.
22548         (do_fixed_divide): Likewise.
22549         * tree-predcom.c (add_ref_to_chain): Likewise.
22550         (determine_roots_comp): Likewise.
22551         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
22552
22553 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22554
22555         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
22556         implementations.
22557
22558 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
22559
22560         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
22561         * arm-modes.def (CC_NOTB): Don't define.
22562         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
22563         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
22564         (LTUGEU): New code_iterator.
22565         (cnb, optab): New corresponding code_attrs.
22566         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
22567         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
22568         using LTUGEU.
22569         (addsi3_carryin_shift_<optab>): Likewise.
22570         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
22571         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
22572         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
22573         (subsi3_compare): Renamed from subsi3_compare0_c.
22574         Change CC_NOTB to CC.
22575         (arm_subsi3_insn): Allow constants for operand 0.
22576         (compare_scc peephole for eq case): New.
22577         (compare_scc splitters): Change CC_NOTB to CC.
22578
22579 2010-07-05  Richard Guenther  <rguenther@suse.de>
22580
22581         * tree-ssa-loop-im.c (for_each_index): Do not handle
22582         ALIGN_INDIRECT_REF.
22583         (gen_lsm_tmp_name): Likewise.
22584         * tree-dump.c (dequeue_and_dump): Likewise.
22585         * tree-pretty-print.c (dump_generic_node): Likewise.
22586         (op_code_prio): Likewise.
22587         (op_symbol_code): Likewise.
22588         * tree.c (staticp): Likewise.
22589         (build1_stat): Likewise.
22590         * tree.h (INDIRECT_REF_P): Likewise.
22591         * fold-const.c (maybe_lvalue_p): Likewise.
22592         (operand_equal_p): Likewise.
22593         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
22594         (ao_ref_init_from_vn_reference): Likewise.
22595         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
22596         (find_interesting_uses_address): Likewise.
22597         * dwarf2out.c (loc_list_from_tree): Likewise.
22598         * gimplify.c (gimplify_expr): Likewise.
22599         * tree-eh.c (tree_could_trap_p): Likewise.
22600         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22601         * cfgexpand.c (expand_debug_expr): Likewise.
22602         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
22603         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
22604         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
22605         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
22606         * tree-ssa-operands.c (get_expr_operands): Likewise.
22607         * expr.c (safe_from_p): Likewise.
22608         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
22609         * tree-vect-data-refs.c (vect_setup_realignment): Build
22610         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
22611         * tree-vect-stmts.c (vectorizable_load): Likewise.
22612         * tree.def (ALIGN_INDIRECT_REF): Remove.
22613
22614 2010-07-05  Richard Guenther  <rguenther@suse.de>
22615
22616         PR tree-optimization/44784
22617         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
22618         for inserted stmts.
22619         (find_or_generate_expression): Fix SCCVN insertion check.
22620
22621 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
22622
22623         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
22624         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
22625         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
22626         directives.
22627
22628 2010-07-05  Ira Rosen  <irar@il.ibm.com>
22629
22630         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
22631         statements that are not vectorized.
22632         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
22633         in INSIDE_COST.
22634
22635 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
22636
22637         PR bootstrap/44820
22638         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
22639
22640 2010-07-05  Richard Guenther  <rguenther@suse.de>
22641
22642         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
22643         RESULT_DECLs properly.
22644
22645 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
22646
22647         PR rtl-optimization/44695
22648         * config/i386/i386.md (extract_code): Removed.
22649         (<u>divmodqi4): Likewise.
22650         (divmodqi4): New.
22651         (udivmodqi4): Likewise.
22652         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
22653         (udivmodhiqi3): Likewise.
22654
22655 2010-07-04  Jan Hubicka  <jh@suse.cz>
22656
22657         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
22658
22659 2010-07-04  Jan Hubicka  <jh@suse.cz>
22660
22661         * cgraphunit.c (init_cgraph): Only initialize dump file if it
22662         is not already initialized.
22663
22664 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22665
22666         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
22667         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
22668         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
22669         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
22670         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
22671         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
22672         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
22673         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
22674         (sync_new_nand_optab): Redefine as macros.
22675         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
22676         Delete.
22677         (direct_optab_index): New enum.
22678         (direct_optab_d): New structure.
22679         (direct_optab): New typedef.
22680         (direct_optab_table): Declare.
22681         (direct_optab_handler, set_direct_optab_handler): New functions.
22682         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
22683         (sync_lock_release_optab): New macros.
22684         * optabs.c (direct_optab_table): New variable.
22685         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
22686         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
22687         cmpstr_optab and cmpstrn_optab.
22688         (emit_conditional_move): Likewise for movcc_optab.
22689         (can_conditionally_move_p): Likewise for movcc_gen_code.
22690         (init_insn_codes): Clear direct_optab_table.
22691         (init_optabs): Don't initialize the new "direct optabs" here.
22692         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
22693         vcond_gen_code.
22694         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
22695         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
22696         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
22697         (expand_sync_operation): Likewise other sync_*_optabs.
22698         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
22699         to sync_compare_and_swap_optab.
22700         (expand_sync_lock_test_and_set): Use direct_optab_handler for
22701         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
22702         to the names of both.
22703         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
22704         cmpstr_optab and cmpstrn_optab.
22705         (expand_builtin_lock_release): Likewise sync_lock_release.
22706         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
22707         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
22708         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
22709         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
22710         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
22711         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
22712         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
22713         (sync_lock_test_and_set, sync_lock_release): Delete.
22714         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
22715         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
22716         * genopinit.c (optabs): Use set_direct_optab_handler for the new
22717         macro optabs.
22718         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
22719         the "optab" local variable.  Use direct_optab_handler for optab and
22720         sync_compare_and_swap_optab.
22721         * reload1.c (reload_in_optab, reload_out_optab): Delete.
22722         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
22723         reload_in_optab and reload_out_optab.
22724         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
22725         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
22726         * config/pa/pa.c (pa_secondary_reload): Likewise.
22727         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
22728         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
22729         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
22730         (VMSupportsCS8_builtin): Likewise.
22731
22732 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22733
22734         * optabs.h (optab_handlers): Change type of insn_code to int.
22735         (optab_handler, set_optab_handler, convert_optab_handler)
22736         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
22737         CODE_FOR_nothing".
22738         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
22739         (init_insn_codes): Zero both the above arrays.
22740         (init_optabs): Never call init_insn_codes first time around.
22741
22742 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22743
22744         * optabs.h (optab_handler, convert_optab_handler): Turn into
22745         inline functions that return an insn code.
22746         (set_optab_handler, set_convert_optab_handler): New functions.
22747         * builtins.c: Replace optab_handler(X)->insn_code with
22748         optab_handler or set_optab_handler thoughout.  Likewise
22749         convert_optab_handler(X)->insn_code with convert_optab_handler
22750         and set_convert_optab_handler.
22751         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
22752         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
22753         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
22754         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
22755         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
22756         config/spu/spu.c: Likewise.
22757
22758 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
22759
22760         PR target/44531
22761         * config.gcc (sh*-*-*): Use regular expressions instead of
22762         the 'i' modifier for sed substitutions.
22763
22764 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
22765
22766         * gimple.c (gimple_body): Comments added.
22767
22768 2010-07-04  Richard Guenther  <rguenther@suse.de>
22769
22770         PR middle-end/44809
22771         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
22772         of an INDIRECT_REF.
22773
22774 2010-07-04  Richard Guenther  <rguenther@suse.de>
22775
22776         PR tree-optimization/44479
22777         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
22778         extra SSA name copy statements which preserves points-to
22779         information.
22780         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22781         Copy points-to information for all pointers.  Properly handle
22782         MEM_REFs.
22783         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
22784         copy statements.
22785         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
22786         dependency.
22787
22788 2010-07-04  Richard Guenther  <rguenther@suse.de>
22789
22790         PR middle-end/44785
22791         * tree-inline.c (initialize_inlined_parameters): Do not
22792         re-use pointer-map slot over remap_type call.
22793
22794 2010-07-04  Richard Guenther  <rguenther@suse.de>
22795
22796         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
22797
22798 2010-07-04  Richard Guenther  <rguenther@suse.de>
22799
22800         PR tree-optimization/44656
22801         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
22802         again after value-replacing in the defintions lhs.
22803
22804 2010-07-04  Ira Rosen  <irar@il.ibm.com>
22805             Revital Eres  <eres@il.ibm.com>
22806
22807         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
22808         Document new arguments.
22809         * doc/tm.texi: Regenerate.
22810         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
22811         Handle unaligned store.
22812         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
22813         * target.def (builtin_vectorization_cost): Add new arguments.
22814         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
22815         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
22816         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
22817         (vect_vfa_segment_size): Fix indentation.
22818         * tree-vectorizer.h (struct _vect_peel_info): New.
22819         (struct _vect_peel_extended_info): New.
22820         (struct _loop_vec_info): Add new field for peeling hash table and a
22821         macro for its access.
22822         (VECT_MAX_COST): Define.
22823         (vect_get_load_cost): Declare.
22824         (vect_get_store_cost, vect_get_known_peeling_cost,
22825         vect_get_single_scalar_iteraion_cost): Likewise.
22826         (vect_supportable_dr_alignment): Add new argument.
22827         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
22828         field.
22829         (destroy_loop_vec_info): Free peeling hash table.
22830         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
22831         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
22832         vect_analyze_slp. Fix indentation.
22833         (vect_get_single_scalar_iteraion_cost): New function.
22834         (vect_get_known_peeling_cost): Likewise.
22835         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
22836         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
22837         statement. Move outside cost calculation inside unknown peeling case.
22838         Call vect_get_known_peeling_cost for known amount of peeling.
22839         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
22840         reference to the print message of forced alignment.
22841         (vect_verify_datarefs_alignment): Update call to
22842         vect_supportable_dr_alignment.
22843         (vect_get_data_access_cost): New function.
22844         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
22845         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
22846         vect_peeling_hash_choose_best_peeling): Likewise.
22847         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
22848         to store all the accesses in the loop and find best possible access to
22849         align using peeling for known alignment case. For unknown alignment
22850         check if stores are preferred or if peeling is worthy.
22851         (vect_find_same_alignment_drs): Analyze pairs of loads too.
22852         (vect_supportable_dr_alignment): Add new argument and check aligned
22853         accesses according to it.
22854         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
22855         (cost_for_stmt): Call vect_get_stmt_cost.
22856         (vect_model_simple_cost): Likewise.
22857         (vect_model_store_cost): Call vect_get_stmt_cost. Call
22858         vect_get_store_cost to calculate the cost of the statement.
22859         (vect_get_store_cost): New function.
22860         (vect_model_load_cost): Call vect_get_stmt_cost. Call
22861         vect_get_load_cost to calculate the cost of the statement.
22862         (vect_get_load_cost): New function.
22863         (vectorizable_store): Update call to vect_supportable_dr_alignment.
22864         (vectorizable_load): Likewise.
22865         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
22866         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
22867         arguments. Handle unaligned store.
22868         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
22869         (rs6000_builtin_support_vector_misalignment): Return true for word and
22870         double word alignments for VSX.
22871         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
22872         vect_supportable_dr_alignment and builtin_vectorization_cost.
22873
22874 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22875
22876         PR target/44597
22877         * config/pa/predicates.md (prefetch_cc_operand): Remove.
22878         (prefetch_nocc_operand): Likewise.
22879         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
22880         (prefetch_20): New insn.
22881         (prefetch_cc): Remove.
22882         (prefetch_nocc): Likewise.
22883
22884 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22885
22886         * expr.c (vector_mode_valid_p): Move to c-common.c.
22887         * expr.h (vector_mode_valid_p): Do not declare here.
22888         * system.h: Poison GCC_EXPR_H in front-ends.
22889         * Makefile.in: Update dependencies.
22890
22891 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22892
22893         PR target/44705
22894         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
22895
22896 2010-07-03  Jan Hubicka  <jh@suse.cz>
22897
22898         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
22899         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
22900         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
22901         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
22902         Likewise.
22903
22904         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
22905         Update timevars.V
22906         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
22907         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
22908         TV_IPA_LTO_DECL_OUT): New.
22909         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
22910
22911 2010-07-03  Jan Hubicka  <jh@suse.cz>
22912
22913         * ipa-inline.c (update_edge_key): Break out from ...
22914         update_callers_keys): ... here;
22915         (update_callee_keys): Update only the edges from caller to callee.
22916         (update_all_calle_keys): Do what update_calle_keys did.
22917         (decide_inlining_of_small_functions): Avoid recomputing of all
22918         callees when badness increase.
22919
22920 2010-07-03  Jie Zhang  <jie@codesourcery.com>
22921
22922         * config/arm/arm.c (arm_attr_length_move_neon): New.
22923         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
22924         * config/arm/neon.md (define_mode_attr V_slen): Remove.
22925         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
22926         to compute length attribute.
22927
22928 2010-07-03  Jie Zhang  <jie@codesourcery.com>
22929
22930         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
22931         as predicate for operand 1 and remove its constraint.
22932         * config/arm/predicates.md (vfp_register_operand): New.
22933         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
22934         (*push_fp_multi): Likewise.
22935
22936 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
22937
22938         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
22939
22940 2010-07-03  Jan Hubicka  <jh@suse.cz>
22941
22942         * config/i386/i386.c (override_options): Revert accidental commit.
22943
22944 2010-07-02  Le-Chun Wu  <lcwu@google.com>
22945
22946         PR c++/44128
22947         * doc/invoke.texi: Update documentation of -Wshadow.
22948
22949 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
22950             Julian Brown  <julian@codesourcery.com>
22951             Sandra Loosemore  <sandra@codesourcery.com>
22952
22953         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
22954         comparisons.  Adjust to take both operands.
22955         (arm_select_cc_mode): Handle DImode comparisons.
22956         (arm_gen_compare_reg): Generate a scratch register for DImode
22957         comparisons which require one.  Use xor for Thumb equality checks.
22958         (arm_const_double_by_immediates): New.
22959         (arm_print_operand): Allow 'Q' and 'R' for constants.
22960         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
22961         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
22962         arm_canonicalize_comparison.
22963         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
22964         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
22965         prototype.
22966         (arm_const_double_by_immediates): Declare.
22967         * config/arm/constraints.md (Di): New constraint.
22968         * config/arm/predicates.md (arm_immediate_di_operand)
22969         (arm_di_operand, cmpdi_operand): New.
22970         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
22971         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
22972         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
22973         (cstoredi4): Handle non-Cirrus also.
22974
22975 2010-07-02  Julian Brown  <julian@codesourcery.com>
22976             Sandra Loosemore  <sandra@codesourcery.com>
22977
22978         PR target/43703
22979         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
22980         (smax<mode>3): Disable for NEON float modes when
22981         flag_unsafe_math_optimizations is false.
22982         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
22983         (*mul<mode>3_neon)
22984         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
22985         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
22986         for NEON float modes when flag_unsafe_math_optimizations is false.
22987         (quad_halves_<code>v4sf): Only enable if
22988         flag_unsafe_math_optimizations is true.
22989         * doc/invoke.texi (ARM Options): Add note about floating point
22990         vectorization requiring -funsafe-math-optimizations.
22991
22992 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
22993             Julian Brown  <julian@codesourcery.com>
22994
22995         * config/arm/neon.md (UNSPEC_VABA): Delete.
22996         (UNSPEC_VABAL): Delete.
22997         (UNSPEC_VABS): Delete.
22998         (UNSPEC_VMUL_N): Delete.
22999         (adddi3_neon): New.
23000         (subdi3_neon): New.
23001         (mul<mode>3add<mode>_neon): Make the pattern named.
23002         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
23003         (neon_vadd<mode>): Replace with define_expand, and move the remaining
23004         unspec parts...
23005         (neon_vadd<mode>_unspec): ...to this.
23006         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
23007         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
23008         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
23009         (neon_vaba<mode>): Rewrite in terms of vabd.
23010         (neon_vabal<mode>): Rewrite in terms of vabdl.
23011         (neon_vabs<mode>): Rewrite without unspec.
23012         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
23013         (*arm_subdi3): Likewise.
23014         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
23015         No_op attribute to disable assembly output checks.
23016         * config/arm/arm_neon.h: Regenerated.
23017         * doc/arm-neon-intrinsics.texi: Regenerated.
23018
23019 2010-07-02  Jan Hubicka  <jh@suse.cz>
23020
23021         * ipa-split.c (split_function): For aggregate values, set the return
23022         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
23023         *<retval> = fncall.part ().
23024         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
23025
23026 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23027
23028         * config/arm/neon.md (UNSPEC_VAND): Delete.
23029         (UNSPEC_VBIC): Delete.
23030         (UNSPEC_VCLZ): Delete.
23031         (UNSPEC_VCNT): Delete.
23032         (UNSPEC_VEOR): Delete.
23033         (UNSPEC_VORN): Delete.
23034         (UNSPEC_VORR): Delete.
23035         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
23036         core registers too.
23037         (anddi3_neon): Likewise.
23038         (orndi3_neon): Likewise.
23039         (bicdi3_neon): Likewise.
23040         (xordi3_neon): Likewise.
23041         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
23042         rid of unspec and handle unused operand.
23043         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
23044         * config/arm/predicates.md (imm_for_neon_logic_operand):
23045         Require TARGET_NEON.
23046         (imm_for_neon_inv_logic_operand): Likewise.
23047         * config/arm/arm.md (define_split for logical_binary_operator):
23048         Disable for NEON registers.
23049         (anddi3): Add new define_expand, and rename the insn.  Disable
23050         this insn for NEON, where anddi3_neon now applies.
23051         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
23052         (iordi3): As for anddi3.
23053         (xordi3): Likewise.
23054         * config/arm/neon.ml (Vand): Split DImode variants and mark them
23055         as No_op to disable testing for exact instruction match.
23056         (Vorr): Likewise.
23057         (Veor): Likewise.
23058         (Vbic): Likewise.
23059         (Vorn): Likewise.
23060         * config/arm/arm_neon.h: Regenerated.
23061         * doc/arm-neon-intrinsics.texi: Regenerated.
23062
23063 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
23064
23065         * expr.h (emit_stack_probe): Declare.
23066         * explow.c (emit_stack_probe): Make global.
23067         (anti_adjust_stack_and_probe): Fix comments.
23068         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
23069         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
23070         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
23071         * config/sparc/sparc.c: Include except.h.
23072         (sparc_emit_probe_stack_range): New function.
23073         (output_probe_stack_range): Likewise.
23074         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
23075         built-in stack checking is enabled.
23076         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
23077         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
23078         (probe_stack_range): New insn.
23079
23080 2010-07-02  Richard Guenther  <rguenther@suse.de>
23081
23082         PR target/43958
23083         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
23084         for argument alignment.
23085
23086 2010-07-02  Jan Hubicka  <jh@suse.cz>
23087
23088         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
23089         walk backwards from entry_bb to check only those basic block of header
23090         that might lead to execution of split part.
23091         (consider_split) ... here.
23092         (find_return_bb): Allow assignment in return BB.
23093         (find_retval): New.
23094         (split_function): Fix name of cloned function; take care of updating
23095         return value in return_bb containing move.
23096
23097 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
23098
23099         PR target/44771
23100         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
23101         used variable insn.
23102
23103 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
23104
23105         * implicit-zee.c (combine_reaching_defs): Fix long lines.
23106         (is_set_with_extension_DI): Delete.
23107         (struct zero_extend_info): New structure.
23108         (add_removable_zero_extend): New function.
23109         (find_removable_zero_extends): Use note_stores to find SETs.
23110         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
23111
23112 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
23113
23114         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
23115         is_miss_rate_acceptable. Pull total_positions computation
23116         out of the loops.  Early return if miss_positions exceeds
23117         the acceptable threshold.
23118         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
23119         is_miss_rate_acceptable after renaming of compute_miss_rate.
23120
23121 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
23122
23123         PR middle-end/44576
23124         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
23125         of 1000) for miss rate if the address diference is greater than or
23126         equal to the cache line size (the two reference will never hit the
23127         same cache line).
23128
23129 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
23130
23131         PR target/42835
23132         * config/arm/arm-modes.def (CC_NOTB): New mode.
23133         * config/arm/arm.c (get_arm_condition_code): Handle it.
23134         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
23135         * config/arm/arm.md (subsi3_compare0_c): New pattern.
23136         (compare_scc): Now a define_and_split.  Add a number of extra
23137         splitters before it.
23138
23139         PR target/42172
23140         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
23141         and ZERO_EXTEND.
23142         (arm_rtx_costs_1): Likewise.
23143         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
23144         * config/arm/arm.md (is_arch6): New attribute.
23145         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
23146         extendqisi2): Tighten the code somewhat, avoiding invalid
23147         RTL to occur in the expander patterns.
23148         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
23149         (thumb1_zero_extendhisi2_v6): Delete.
23150         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
23151         (thumb1_extendhisi2_v6): Delete.
23152         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
23153         (thumb1_extendqisi2_v6): Delete.
23154         (zero_extendhisi2 for register input splitter): New.
23155         (zero_extendqisi2 for register input splitter): New.
23156         (thumb1_extendhisi2 for register input splitter): New.
23157         (extendhisi2 for register input splitter): New.
23158         (extendqisi2 for register input splitter): New.
23159         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
23160         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
23161         and add support for a register alternative requiring a split.
23162         (thumb1_zero_extendqisi2): Likewise.
23163         (arm_zero_extendqisi2): Likewise.
23164         (arm_extendhisi2): Likewise.
23165         (arm_extendqisi2): Likewise.
23166
23167 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23168
23169         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
23170         instead of an unspec.
23171         (neon_expand_vector_init): Likewise.
23172         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
23173         (UNSPEC_VDUP_LANE): Delete.
23174         (UNSPEC VDUP_N): Delete.
23175         (UNSPEC_VGET_HIGH): Delete.
23176         (UNSPEC_VGET_LANE): Delete.
23177         (UNSPEC_VGET_LOW): Delete.
23178         (UNSPEC_VMVN): Delete.
23179         (UNSPEC_VSET_LANE): Delete.
23180         (V_double_vector_mode): New.
23181         (vec_set<mode>_internal): Make code emitted match that for the
23182         corresponding intrinsics.
23183         (vec_setv2di_internal): Likewise.
23184         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
23185         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
23186         (neon_vset_lane<mode>): Combine double and quad patterns and
23187         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
23188         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
23189         (neon_vdup_n<mode>): Rewrite RTL without unspec.
23190         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
23191         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
23192         with neon_vdup_lanev2di, adjusting the pattern from the latter
23193         to be predicable for consistency.
23194         (neon_vdup_lane<mode>_internal): New.
23195         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
23196         to avoid using an unspec.
23197         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
23198         (neon_vdup_lanev2di): Turn into a define_expand.
23199         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
23200         (neon_vget_high<mode>): Replace with....
23201         (neon_vget_highv16qi): New pattern using canonical RTL.
23202         (neon_vget_highv8hi): Likewise.
23203         (neon_vget_highv4si): Likewise.
23204         (neon_vget_highv4sf): Likewise.
23205         (neon_vget_highv2di): Likewise.
23206         (neon_vget_low<mode>): Replace with....
23207         (neon_vget_lowv16qi): New pattern using canonical RTL.
23208         (neon_vget_lowv8hi): Likewise.
23209         (neon_vget_lowv4si): Likewise.
23210         (neon_vget_lowv4sf): Likewise.
23211         (neon_vget_lowv2di): Likewise.
23212
23213         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
23214         test for this emitting vmov.
23215         (Vset_lane): Likewise.
23216         (Vdup_n): Likewise.
23217         (Vmov_n): Likewise.
23218
23219         * doc/arm-neon-intrinsics.texi: Regenerated.
23220
23221 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23222
23223         * config/arm/neon.md (vec_extractv2di): Correct error in register
23224         numbering to reconcile with neon_vget_lanev2di.
23225
23226 2010-07-02  Richard Guenther  <rguenther@suse.de>
23227
23228         * tree-ssa-structalias.c (pt_solution_set_var): New function.
23229         * tree-ssa-alias.h (pt_solution_set_var): Declare.
23230         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
23231         points-to information.
23232
23233 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
23234
23235         * config/s390/s390.c (override_options): Adopt prefetching
23236         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
23237
23238 2010-07-02  Jan Hubicka  <jh@suse.cz>
23239
23240         * df-problems.c (df_kill_notes): Do not collect dead  notes.
23241         (df_set_note): Just call add_reg_note.
23242         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
23243         df_create_unused_note): Do not deal with lists of old notes.
23244         (df_note_bb_compute): Likewise.
23245
23246 2010-07-02  Richard Guenther  <rguenther@suse.de>
23247
23248         * tree-ssa-structalias.c (find_func_aliases): Handle
23249         pointer alignment via BIT_AND_EXPR.
23250         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
23251
23252 2010-07-02  Richard Guenther  <rguenther@suse.de>
23253
23254         * tree-data-ref.c (initialize_data_dependence_relation): Handle
23255         mismatching number of dimensions properly.
23256
23257 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23258
23259         PR target/44707
23260         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
23261         (lo_sum (high ...) ...) patterns generated by earlier passes.
23262
23263 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23264
23265         * doc/install.texi (Prerequisites): Document Perl requirement on
23266         Solaris 2.
23267         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
23268
23269 2010-07-02  Richard Guenther  <rguenther@suse.de>
23270
23271         PR middle-end/44777
23272         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
23273
23274 2010-07-02  Jan Hubicka  <jh@suse.cz>
23275
23276         PR middle-end/44706
23277         * predict.c (predict_paths_for_bb): Handle case when control dependence
23278         BB has only abnormal edges.
23279
23280 2010-07-02  Richard Guenther  <rguenther@suse.de>
23281
23282         PR tree-optimization/44748
23283         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
23284         the embedded conversion in MEM_REFs.
23285
23286 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
23287
23288         * reload.c: Include toplev.h.
23289         * recog.c:  Likewise.
23290         * Makefile.in: Adjust dependencies.
23291
23292 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
23293
23294         PR debug/44694
23295         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
23296         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
23297
23298 2010-07-01  Richard Guenther  <rguenther@suse.de>
23299
23300         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
23301         types for offsets.
23302
23303 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
23304
23305         PR target/44732
23306         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
23307         Fix argument types.
23308
23309 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
23310
23311         PR target/44727
23312         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23313         Make sure operand 0 dies.
23314
23315 2010-07-01  Richard Guenther  <rguenther@suse.de>
23316
23317         PR middle-end/42834
23318         PR middle-end/44468
23319         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
23320         * doc/generic.texi (References to storage): Document MEM_REF.
23321         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
23322         (print_call_name): Likewise.
23323         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
23324         (build_simple_mem_ref_loc): New function.
23325         (mem_ref_offset): Likewise.
23326         * tree.h (build_simple_mem_ref_loc): Declare.
23327         (build_simple_mem_ref): Define.
23328         (mem_ref_offset): Declare.
23329         * fold-const.c: Include tree-flow.h.
23330         (operand_equal_p): Handle MEM_REF.
23331         (build_fold_addr_expr_with_type_loc): Likewise.
23332         (fold_comparison): Likewise.
23333         (fold_unary_loc): Fold
23334         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
23335         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
23336         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
23337         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
23338         (ptr_deref_may_alias_ref_p_1): Likewise.
23339         (ao_ref_base_alias_set): Properly differentiate base object for
23340         offset and TBAA.
23341         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
23342         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
23343         (indirect_refs_may_alias_p): Likewise.
23344         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
23345         chasing code.
23346         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
23347         (call_may_clobber_ref_p_1): Likewise.
23348         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
23349         * expr.c (expand_assignment): Handle MEM_REF.
23350         (store_expr): Handle MEM_REFs from STRING_CSTs.
23351         (store_field): If expanding a MEM_REF of a non-addressable
23352         decl use bitfield operations.
23353         (get_inner_reference): Handle MEM_REF.
23354         (expand_expr_addr_expr_1): Likewise.
23355         (expand_expr_real_1): Likewise.
23356         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
23357         * alias.c (ao_ref_from_mem): Handle MEM_REF.
23358         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
23359         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
23360         (dr_analyze_indices): Likewise.
23361         (dr_analyze_alias): Likewise.
23362         (object_address_invariant_in_loop_p): Likewise.
23363         * gimplify.c (mark_addressable): Handle MEM_REF.
23364         (gimplify_cond_expr): Build MEM_REFs.
23365         (gimplify_modify_expr_to_memcpy): Likewise.
23366         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
23367         (gimple_fold_indirect_ref): Adjust.
23368         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
23369         * tree.def (MEM_REF): New tree code.
23370         * tree-dfa.c: Include toplev.h.
23371         (get_ref_base_and_extent): Handle MEM_REF.
23372         (get_addr_base_and_unit_offset): New function.
23373         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
23374         * gimple-fold.c (may_propagate_address_into_dereference): Handle
23375         MEM_REF.
23376         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
23377         accesses if the array has just one dimension.  Remove always true
23378         parameter.  Do not require type compatibility here.
23379         (maybe_fold_offset_to_component_ref): Remove.
23380         (maybe_fold_stmt_indirect): Remove.
23381         (maybe_fold_reference): Remove INDIRECT_REF handling.
23382         Fold back to non-MEM_REF.
23383         (maybe_fold_offset_to_address): Simplify.  Deal with type
23384         mismatches here.
23385         (maybe_fold_reference): Likewise.
23386         (maybe_fold_stmt_addition): Likewise.  Also handle
23387         &ARRAY + I in addition to &ARRAY[0] + I.
23388         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
23389         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
23390         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
23391         * tree-ssa.c (useless_type_conversion_p): Make most pointer
23392         conversions useless.
23393         (warn_uninitialized_var): Handle MEM_REF.
23394         (maybe_rewrite_mem_ref_base): New function.
23395         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
23396         to SSA form.
23397         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
23398         INDIRECT_REF handling.
23399         (copy_tree_body_r): Handle MEM_REF.
23400         * gimple.c (is_gimple_addressable): Adjust.
23401         (is_gimple_address): Likewise.
23402         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
23403         invariant base are invariant.
23404         (is_gimple_min_lval): Adjust.
23405         (is_gimple_mem_ref_addr): New function.
23406         (get_base_address): Handle MEM_REF.
23407         (count_ptr_derefs): Likewise.
23408         (get_base_loadstore): Likewise.
23409         * gimple.h (is_gimple_mem_ref_addr): Declare.
23410         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
23411         * tree-cfg.c (verify_address): New function, split out from ...
23412         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
23413         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
23414         INDIRECT_REFs.
23415         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
23416         INDIRECT_REF.  Allow conversions.
23417         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
23418         a register does not change its size.
23419         (verify_types_in_gimple_reference): Verify MEM_REF.
23420         (verify_gimple_assign_single): Disallow INDIRECT_REF.
23421         Handle MEM_REF.
23422         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
23423         New.
23424         (mark_address_taken): Handle MEM_REF.
23425         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
23426         (get_asm_expr_operands): Pass opf_not_non_addressable.
23427         (get_expr_operands): Handle opf_[not_]non_addressable.
23428         Handle MEM_REF.  Remove INDIRECT_REF handling.
23429         * tree-vrp.c (check_array_ref): Handle MEM_REF.
23430         (search_for_addr_array): Likewise.
23431         (check_array_bounds): Likewise.
23432         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
23433         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
23434         (ref_always_accessed_p): Likewise.
23435         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
23436         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
23437         Handle MEM_REF.
23438         * cgraphbuild.c (mark_load): Properly check for NULL result
23439         from get_base_address.
23440         (mark_store): Likewise.
23441         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
23442         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
23443         handling for MEM_REF.
23444         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
23445         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
23446         * builtins.c (stabilize_va_list_loc): Use the function ABI
23447         valist type if we couldn't canonicalize the argument type.
23448         Always dereference with the canonical va-list type.
23449         (maybe_emit_free_warning): Handle MEM_REF.
23450         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
23451         memmove to memcpy.
23452         * builtins.c (fold_builtin_memory_op): Use ref-all types
23453         for all memcpy foldings.
23454         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
23455         (build_outer_var_ref): Likewise.
23456         (scan_omp_1_op): Likewise.
23457         (lower_rec_input_clauses): Likewise.
23458         (lower_lastprivate_clauses): Likewise.
23459         (lower_reduction_clauses): Likewise.
23460         (lower_copyprivate_clauses): Likewise.
23461         (expand_omp_atomic_pipeline): Likewise.
23462         (expand_omp_atomic_mutex): Likewise.
23463         (create_task_copyfn): Likewise.
23464         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
23465         Remove old union trick.  Initialize constant offsets.
23466         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
23467         INDIRECT_REF.  Init base_alias_set properly.
23468         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
23469         (vn_reference_fold_indirect): Adjust for MEM_REFs.
23470         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
23471         for ARRAY_REFs.
23472         (may_insert): Remove.
23473         (visit_reference_op_load): Do not test may_insert.
23474         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
23475         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
23476         a field to store the constant offset this op applies.
23477         (run_scc_vn): Adjust prototype.
23478         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
23479         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
23480         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
23481         bother about volatile qualifiers on pointers.
23482         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
23483         * tree-ssa-loop-ivopts.c
23484         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
23485         (strip_offset_1): Likewise.
23486         (find_interesting_uses_address): Replace INDIRECT_REF handling with
23487         MEM_REF handling.
23488         (get_computation_cost_at): Likewise.
23489         * ipa-pure-const.c (check_op): Handle MEM_REF.
23490         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
23491         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
23492         and constants.
23493         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
23494         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
23495         (eliminate_local_variables_1): Likewise.
23496         (create_call_for_reduction_1): Likewise.
23497         (create_loads_for_reductions): Likewise.
23498         (create_loads_and_stores_for_name): Likewise.
23499         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
23500         (ssa_accessed_in_tree): Handle MEM_REF.
23501         (ssa_accessed_in_assign_rhs): Likewise.
23502         (update_type_size): Likewise.
23503         (analyze_accesses_for_call_stmt): Likewise.
23504         (analyze_accesses_for_assign_stmt): Likewise.
23505         (transform_access_sites): Likewise.
23506         (transform_allocation_sites): Likewise.
23507         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
23508         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
23509         not handle INDIRECT_REF.
23510         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
23511         (cond_store_replacement): Likewise.
23512         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
23513         MEM_REF, no not handle INDIRECT_REFs.
23514         (insert_into_preds_of_block): Properly initialize avail.
23515         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
23516         for ARRAY_REFs.  Properly handle reference lookups that
23517         require a bit re-interpretation.
23518         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
23519         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
23520         (build_ref_for_offset_1): Remove.
23521         (build_ref_for_offset): Build MEM_REFs.
23522         (gate_intra_sra): Disable for now.
23523         (sra_ipa_modify_expr): Handle MEM_REF.
23524         (ipa_early_sra_gate): Disable for now.
23525         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
23526         MEM_REF handling.
23527         (disqualify_base_of_expr): Likewise.
23528         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
23529         MEM_REF handling.
23530         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
23531         Use mem_ref_offset.  Remove bogus folding.
23532         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
23533         (make_fancy_name_1): Add support for MEM_REF.
23534         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
23535         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
23536         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
23537         (compute_complex_ancestor_jump_func): Likewise.
23538         (ipa_analyze_virtual_call_uses): Likewise.
23539         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
23540         INDIRECT_REF folding with more generalized MEM_REF folding.
23541         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
23542         (forward_propagate_addr_into_variable_array_index): Also handle
23543         &ARRAY + I in addition to &ARRAY[0] + I.
23544         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
23545         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
23546         creates assignments with overlap.
23547         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
23548         (get_frame_field): Likewise.
23549         (get_nonlocal_debug_decl): Likewise.
23550         (convert_nonlocal_reference_op): Likewise.
23551         (struct nesting_info): Add mem_refs pointer-set.
23552         (create_nesting_tree): Allocate it.
23553         (convert_local_reference_op): Insert to be folded mem-refs.
23554         (fold_mem_refs): New function.
23555         (finalize_nesting_tree_1): Perform defered folding of mem-refs
23556         (free_nesting_tree): Free the pointer-set.
23557         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
23558         (vectorizable_load): Likewise.
23559         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
23560         (propagate_with_phi): Likewise.
23561         * tree-object-size.c (addr_object_size): Handle MEM_REFs
23562         instead of INDIRECT_REFs.
23563         (compute_object_offset): Handle MEM_REF.
23564         (plus_stmt_object_size): Handle MEM_REF.
23565         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
23566         for &MEM_REF.
23567         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
23568         (symbol_marked_for_renaming): Likewise.
23569         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
23570         (fold-const.o): Add $(TREE_FLOW_H).
23571         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
23572         (find_func_clobbers): Likewise.
23573         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
23574         (decompose_access): Likewise.
23575         (replace_field_acc): Likewise.
23576         (replace_field_access_stmt): Likewise.
23577         (insert_new_var_in_stmt): Likewise.
23578         (get_stmt_accesses): Likewise.
23579         (reorg_structs_drive): Disable.
23580         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
23581         (ix86_canonical_va_list_type): Likewise.
23582
23583 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23584
23585         PR other/44566
23586         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
23587         * target.def (struct gcc_target): Replace enum reg_class with
23588         reg_class_t in hook argument / return types.
23589         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
23590         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
23591         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
23592         * targhooks.h (default_branch_target_register_class): Likewise.
23593         (default_ira_cover_classes, default_secondary_reload): Likewise.
23594         (default_memory_move_cost, default_register_move_cost): Likewise.
23595         * targhooks.c (default_branch_target_register_class): Likewise.
23596         (default_ira_cover_classes, default_secondary_reload): Likewise.
23597         (default_memory_move_cost, default_register_move_cost): Likewise.
23598         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
23599         * bt-load.c (branch_target_load_optimize): Likewise.
23600         * ira.c (setup_cover_and_important_classes): Likewise.
23601         * ira-costs.c (copy_cost): Likewise.
23602         * reload1.c (emit_input_reload_insns): Likewise.
23603         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
23604         * config/frv/frv.c (frv_secondary_reload): Likewise.
23605         * config/s390/s390.c (s390_secondary_reload): Likewise.
23606         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
23607         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
23608         (ix86_register_move_cost): Likewise.
23609         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
23610         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
23611         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
23612         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
23613         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
23614         (rs6000_ira_cover_classes): Likewise.
23615         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
23616         * config/picochip/picochip-protos.h (picochip_secondary_reload):
23617         Likewise.
23618         * config/pa/pa.c (pa_secondary_reload): Likewise.
23619         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
23620         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
23621         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
23622         * doc/tm.texi: Regenerate.
23623
23624 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
23625
23626         PR bootstrrap/44726
23627         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
23628         use.
23629         (build_alias_set_optimal_p): Likewise.
23630         (build_base_obj_set_for_drs): Likewise.
23631
23632 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23633
23634         * target.def: Remove comment about licensing problems of function
23635         declarations.
23636
23637         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
23638         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
23639         * doc/tm.texi: Regenerate.
23640
23641         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
23642         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
23643
23644         * target.def (enum_va_list_p): Use DEFHOOK.
23645         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
23646         Rename ptype to ptree.
23647         * doc/tm.texi: Regenerate.
23648
23649         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
23650         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
23651         * doc/tm.texi: Regenerate.
23652
23653         * target.def (memory_move_cost): Use DEFHOOK.
23654         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
23655         Rename regclass AKA class to rclass.
23656         * doc/tm.texi: Regenerate.
23657
23658         * target.def (pragma_parse): Use DEFHOOK.
23659         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
23660         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
23661         * doc/tm.texi: Regenerate.
23662
23663         * target.def (pass_by_reference): Use DEFHOOK.
23664         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
23665         * doc/tm.texi: Regenerate.
23666
23667         * target.def (resolve_overloaded_builtin): Rename params to arglist.
23668         Use DEFHOOK.
23669         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
23670         * doc/tm.texi: Regenerate.
23671
23672         * target.def (return_pops_args): Use DEFHOOK.
23673         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
23674         Rename stack-size to size.
23675         * doc/tm.texi: Regenerate.
23676
23677         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
23678         last-sched_cycle to last_clock, cur_cycle to clock.
23679         * doc/tm.texi.in: Use @hook.
23680         * doc/tm.texi: Regenerate.
23681
23682         * target.def (print_operand, print_operand_address): Update comment.
23683         (print_operand_punct_valid_p): Likewise.
23684
23685 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23686
23687         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
23688         to rtl.h.
23689         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
23690         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
23691         * rtl-error.h: New.
23692         * regrename.c: Do not include toplev.h. Include rtl-error.h.
23693         * rtl-error.c: Likewise.
23694         * reload.c: Likewise.
23695         * recog.c:  Likewise.
23696         * sel-sched.c: Likewise.
23697         * function.c: Likewise.
23698         * reg-stack.c: Likewise.
23699         * cfgrtl.c: Likewise.
23700         * reload1.c: Likewise.
23701         * final.c: Include rtl-error.
23702         * Makefile.in: Adjust dependencies.
23703
23704 2010-06-30  Jan Hubicka  <jh@suse.cz>
23705
23706         PR middle-end/PR44706
23707         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
23708         to return the value.
23709
23710 2010-06-30  Michael Matz  <matz@suse.de>
23711
23712         PR bootstrap/44699
23713         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
23714         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
23715         a gimple reg, attach the original VDEF to the last store in the
23716         sequence.
23717
23718 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
23719
23720         PR other/44034
23721         * config/darwin.c (darwin_override_options): Use renamed
23722         targetm.asm_out.emit_unwind_label.
23723
23724 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23725
23726         PR tree-optimization/39799
23727         * tree-inline.c (remap_ssa_name): Initialize variable only if
23728         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
23729
23730 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
23731
23732         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
23733
23734 2010-06-30  Richard Guenther  <rguenther@suse.de>
23735
23736         PR target/44722
23737         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
23738         against oscillation with reverse peephole2.
23739
23740 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
23741
23742         PR target/44721
23743         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23744         Fix last commit.
23745
23746 2010-06-30  Nick Clifton  <nickc@redhat.com>
23747
23748         * config/rx/rx-modes.def: New file.
23749         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
23750         (CC_REGNUM): Define.
23751         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
23752         register.
23753         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
23754         (SELECT_CC_MODE): Define.
23755         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
23756         (reg:CC CC_REG) instead of (cc0).
23757         (attr "cc"): Delete.
23758         (cbranchsi4): Do not split compare and branch here. Instead move
23759         it to...
23760         (cbranchsi4_<code>): ... here.  New patterns.
23761         (cmpsi): Call rx-compare_redundant to find out if it is necessary
23762         to emit the compare instruction.
23763         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
23764         cc_status flags.
23765         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
23766         FIRST_PSEUDO_REGNUM.
23767         (rx_expand_prologue, rx_expand_epilogue): Likewise.
23768         (rx_notice_update_cc): Delete.
23769         (rx_cc_modes_compatible): New function.
23770         (flags_needed_for_conditional): New function.
23771         (flags_from_mode): New function.
23772         (rx_compare_redundant): New function - scans backwards through
23773         insn list to find out if condition flags are already set correctly.
23774         (TARGET_CC_MODES_COMPATIBLE): Define.
23775         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
23776
23777         * config/rx/rx.h (BRANCH_COST): Define.
23778         (REGISTER_MOVE_COST): Define.
23779         * config/rx/predicates (rx_source_operand): Allow all constant types.
23780         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
23781         (tstsi4): New pattern.
23782         * config/rx/rx.c (rx_memory_move_cost): Define.
23783         (TARGET_MEMORY_MOVE_COST): Define.
23784
23785 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23786
23787         * tree.h (block_may_fallthru): Declare here.
23788         * tree-flow.h (block_may_fallthru): Do not declare here.
23789         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
23790         bitmap.h
23791         * Makefile.in (c-typeck.o): Update dependencies.
23792
23793 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
23794
23795         PR debug/44694
23796         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
23797         * cselib.c (cfa_base_preserved_regno): New static variable.
23798         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
23799         of REGNO (cfa_base_preserved_val->locs->loc).
23800         (cselib_preserve_cfa_base_value): Add regno argument, set
23801         cfa_base_preserved_regno to it.
23802         (cselib_invalidate_regno): Allow removal of registers other than
23803         cfa_base_preserved_regno from cfa_base_preserved_val.
23804         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
23805         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
23806         of MEM addresses, if not on LHS.
23807         (reverse_op): Don't add reverse ops for cfa_base_rtx.
23808         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
23809
23810 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23811
23812         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
23813         static variables.
23814         (peep2_buf_position): New static function.
23815         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
23816         peephole2_optimize): Use it.
23817         (peep2_attempt, peep2_update_life): New static functions, broken out
23818         of peephole2_optimize.
23819         (peep2_fill_buffer): New static function.
23820         (peephole2_optimize): Change the main loop to try to fill the buffer
23821         with the maximum number of insns before matching them against
23822         peepholes.  Use a forward scan.  Remove special case for targets with
23823         conditional execution.
23824         * genrecog.c (change_state): Delete dead code.
23825         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23826         Rewrite so as not to expect the second insn to have had a peephole
23827         applied yet.
23828
23829 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23830
23831         * genhooks.c (emit_findices): Cast field precision to int.
23832         (emit_documentation): Likewise.
23833
23834 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
23835
23836         PR tree-optimization/43801
23837         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
23838         if old_decl was DECL_ONE_ONLY.
23839
23840         PR debug/44668
23841         * dwarf2out.c (add_accessibility_attribute): New function.
23842         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
23843         instead of adding DW_AT_accessibility manually.
23844         (gen_enumeration_type_die, gen_struct_or_union_type_die,
23845         gen_typedef_die): Use it.
23846
23847 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23848
23849         * vmsdbgout.c (full_name): Just output the file name if not native.
23850
23851 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23852
23853         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
23854         (funcnam_table): New static table.
23855         (funcnum_table): New static table.
23856         (write_rtnbeg): Write value saved in funcnum_table.
23857         (write_rtnend): Write value saved in funcnum_table.
23858         (vmsdbgout_begin_function): Save current function info in
23859         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
23860         (vmsdbgout_finish): Iterate over funcnum_table.
23861
23862 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23863
23864         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
23865         (vmsdbgout_type_decl): Declare
23866         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
23867         (FUNC_EPILOGUE_LABEL): New macro
23868         (vmsdbgout_begin_epilogue): New function.
23869         (vmsdbgout_type_decl): New function.
23870
23871 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23872
23873         * vmsdbg.h: Update copyright.
23874
23875 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
23876
23877         * vmsdbg.h (DST_K_TBG): New DST constant.
23878         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
23879         (write_modbeg): Cast module_language to avoid warning.
23880         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
23881
23882 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
23883
23884         PR other/44034
23885         * target.def, doc/tm.texi.in, genhooks.c: New files.
23886         * target.h: Instead of defining individual hook members,
23887         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
23888         include target.def.
23889         * target-def.h: Instead of defining individual hook initializers,
23890         include target-hooks-def.h.
23891         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
23892         targetm.live_on_entry -> targetm.extra_live_on_entry
23893         targetm.sched.md_finish ->targetm.sched.finish
23894         targetm.sched.md_init -> targetm.sched.init
23895         targetm.sched.md_init_global -> targetm.sched.init_global
23896         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
23897         targetm.asm_out.except_table_label ->
23898           targetm.asm_out.emit_except_table_label
23899         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
23900         targetm.target_help -> targetm.help
23901         targetm.vectorize.builtin_support_vector_misalignment ->
23902           targetm.vectorize.support_vector_misalignment
23903         targetm.file_start_app_off -> targetm.asm_file_start_app_off
23904         targetm.file_start_file_directive ->
23905          targetm.asm_file_start_file_directive
23906         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
23907         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
23908         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
23909         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
23910           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
23911         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
23912           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
23913         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
23914         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
23915         * Makefile.in (TARGET_H): Depend on target.def.
23916         (TARGET_DEF_H): Depend on target-hooks-def.h.
23917         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
23918         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
23919         * doc/tm.texi: Regenerate.
23920
23921         * Makefile.in (s-tm-texi): Remove stray tab / rule.
23922
23923         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
23924         (targetm.sched.init): Likewise.
23925
23926 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23927
23928         PR bootstrap/44713
23929         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
23930         (function_arg_advance_32): Const-ify TYPE parameter.
23931         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
23932         (ix86_function_arg_advance): Change type of NAMED to bool.
23933         (function_arg_32): Const-ify CUM and TYPE parameters.
23934         (function_arg_64): Likewise.  Change type of NAMED to bool.
23935         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
23936         to bool.
23937         (ix86_function_arg): Change type of NAMED to bool.
23938         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
23939         last argument as a bool.
23940
23941 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
23942
23943         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
23944         (OVERRIDE_OPTIONS): Add note of obsolescence.
23945         Replace references with references to TARGET_OPTION_OVERRIDE.
23946         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
23947          the macro).
23948         * targhooks.c (default_target_option_override): New function.
23949         * targhooks.h (default_target_option_override): Declare.
23950         * target.h (struct gcc_target): Add override member to
23951         target_option member.
23952         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
23953         targetm.target_option.override call.
23954         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
23955         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
23956
23957 2010-06-29  Jan Hubicka  <jh@suse.cz>
23958
23959         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
23960
23961 2010-06-29  Jan Hubicka  <jh@suse.cz>
23962
23963         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
23964         unreachable.
23965         (rebuild_frequencies): New function.
23966         * predict.h (rebuild_frequencies): Declare.
23967         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
23968         entry block and edge reaching new_entry.
23969         (tree_function_versioning): When doing partial cloning, rebuild
23970         frequencies when done.
23971         * passes.c (execute_function_todo): Use rebild_frequencies.
23972
23973 2010-06-29  Richard Guenther  <rguenther@suse.de>
23974
23975         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
23976         * tree-flow.h (enum noalias_state): Remove.
23977         (struct var_ann_d): Remove noalias_state member.
23978
23979 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
23980
23981         PR target/43902
23982         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
23983         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
23984         (maddhidi4): Likewise.
23985
23986         Revert parts of the change for PR25130.
23987         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
23988         MEM_ALIAS_SET.
23989
23990 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
23991
23992         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
23993         targetm.calls.function_incoming_arg, and
23994         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
23995         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
23996         * target.h (struct gcc_target): Add function_arg_advance,
23997         function_arg, and function_incoming_arg fields.
23998         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
23999         (TARGET_FUNCTION_INCOMING_ARG): Define.
24000         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
24001         and TARGET_FUNCTION_INCOMING_ARG.
24002         * targhooks.h (default_function_arg_advance): Declare.
24003         (default_function_arg, default_function_incoming_arg): Declare.
24004         * targhooks.c (default_function_arg_advance): New function.
24005         (default_function_arg, default_function_incoming_arg): New function.
24006         * config/i386/i386.c (function_arg_advance): Rename to...
24007         (ix86_function_arg_advance): ...this.  Make static.
24008         (function_arg): Rename to...
24009         (ix86_function_arg): ...this.  Make static.
24010         (TARGET_FUNCTION_ARG_ADVANCE): Define.
24011         (TARGET_FUNCTION_ARG): Define.
24012         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
24013         (FUNCTION_ARG): Delete.
24014         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
24015         (function_arg): Delete prototype.
24016
24017 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
24018
24019         * reginfo.c (init_reg_sets_1): Adjust comments.
24020         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
24021         * calls.c (prepare_call_address): Likewise.
24022         (emit_call_1): Use targetm.calls.return_pops_args.
24023         (expand_call): Likewise.
24024         * function.c (assign_parms): Likewise.
24025         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
24026         * target.h (struct gcc_target) [struct calls]: Add
24027         return_pops_args field.
24028         * targhooks.h (default_return_pops_args): Declare.
24029         * targhooks.c (default_return_pops_args): Define.
24030         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
24031         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
24032         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
24033         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
24034         documentation.
24035         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
24036         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
24037         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
24038         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
24039         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
24040         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
24041         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
24042         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
24043         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
24044         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
24045         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
24046         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
24047         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
24048         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
24049         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
24050         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
24051         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
24052         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
24053         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
24054         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
24055         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
24056         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
24057         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
24058         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
24059         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
24060         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
24061         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
24062         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
24063         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
24064         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
24065         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
24066         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
24067         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
24068         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
24069         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
24070         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
24071         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
24072         * config/i386/i386.c (ix86_return_pops_args): Make static.
24073         Constify arguments.
24074         (TARGET_RETURN_POPS_ARGS): Define.
24075         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
24076         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
24077         (TARGET_RETURN_POPS_ARGS): Define.
24078         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
24079         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
24080         (TARGET_RETURN_POPS_ARGS): Define.
24081
24082 2010-06-29  Richard Guenther  <rguenther@suse.de>
24083
24084         PR middle-end/44667
24085         * tree-inline.c (initialize_inlined_parameters): Make sure
24086         to remap the inlined parameter variable substitutions types.
24087
24088 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
24089
24090         PR rtl-optimization/44659
24091         * combine.c (make_compound_operation) <SUBREG>: Do not return the
24092         result of force_to_mode if it partially re-expanded the compound.
24093
24094 2010-06-28  Jan Hubicka  <jh@suse.cz>
24095
24096         PR middle-end/44671
24097         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
24098         RESULT_DECL.
24099
24100 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
24101
24102         * double-int.h (force_fit_type_double): Remove declaration.
24103         * double-int.c (force_fit_type_double): Move to tree.c.
24104         * tree.h (force_fit_type_double): Declare.
24105         * tree.h (force_fit_type_double): Moved from double-int.c. Use
24106         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
24107         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
24108         * convert.c (convert_to_pointer): Adjust call to
24109         force_fit_type_double.
24110         * tree-vrp.c (extract_range_from_assert,
24111         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
24112         * fold-const.c: Update comment.
24113         (int_const_binop, fold_convert_const_int_from_int,
24114         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
24115         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
24116         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
24117         round_up_loc): Adjust call to force_fit_type_double.
24118
24119 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24120
24121         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
24122
24123 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24124
24125         * tree-sra.c (convert_callers): New parameter, change fndecls of
24126         recursive calls.
24127         (modify_function): Pass the old decl to convert_callers.
24128
24129 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24130
24131         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
24132         ipa_check_create_node_params and ipa_initialize_node_params with
24133         checking asserts they are not necessary.
24134
24135 2010-06-28  Jan Hubicka  <jh@suse.cz>
24136
24137         PR tree-optimization/44687
24138         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
24139
24140 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24141
24142         PR c++/44535
24143         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
24144         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
24145         instead of BINFO_BASE_BINFO.
24146
24147 2010-06-28  Michael Matz  <matz@suse.de>
24148
24149         PR middle-end/44592
24150         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
24151         proper VDEF chain for intermediate stores in the sequence.
24152
24153 2010-06-28  Jan Hubicka  <jh@suse.cz>
24154
24155         PR tree-optimization/44357
24156         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
24157         uninlinable functions.
24158
24159 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24160
24161         * config.gcc (powerpc*-*-*): Handle titan.
24162         * config/rs6000/rs6000.c (titan_cost): New costs.
24163         (rs6000_override_options): Add "titan" to processor_target_table.
24164         Add Titan to branch alignment logic.
24165         Correctly set rs6000_cost for titan.
24166         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
24167         * config/rs6000/titan.md: New file.
24168         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
24169
24170 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
24171
24172         * tree-browser.c (TB_history_stack): Convert to a VEC.
24173         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
24174         (TB_history_prev): Likewise.
24175
24176 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
24177
24178         * vec.h (vec_heap_free): Add parentheses around free.
24179
24180 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
24181
24182         * system.h: Poison GCC_EXCEPT_H for front-end files.
24183
24184         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
24185         langhook.
24186         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
24187         Define to NULL by default.
24188         * except.h: Define GCC_EXCEPT_H.
24189         (doing_eh): Remove prototype.
24190         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
24191         (lang_protect_cleanup_actions): Remove.
24192         * except.c (lang_protect_cleanup_actions): Remove.
24193         (doing_eh): Remove.
24194         (gen_eh_region): Don't check doing_eh here.
24195         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
24196         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
24197         instead of lang_protect_cleanup_actions.
24198         * omp-low.c (maybe_catch_exception): Likewise.
24199         * Makefile.in: Update dependencies.
24200
24201 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
24202
24203         * cgraph.h (struct varpool_node): new used_from_object_file flag.
24204         (struct cgraph_local_info): new used_from_object_file flag.
24205         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
24206         (cgraph_clone_node): initialize used_from_object_file.
24207         (cgraph_create_virtual_clone): initialize used_from_object_file.
24208         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
24209         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
24210         when compiling with -fwhole-program.
24211         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
24212         internal resolver.
24213         * ipa.c (function_and_variable_visibility): Set externally_visible
24214         flag of varpool_node if used_from_object_file flag is set.
24215         (cgraph_externally_visible_p): check used_from_object_file flag.
24216         * doc/invoke.texi (-fwhole-program option): Change description of
24217         externally_visible attribute accordingly.
24218         * doc/extend.texi (externally_visible): Ditto.
24219
24220 2010-06-27  Jan Hubicka  <jh@suse.cz>
24221
24222         * params.def (max-inline-insns-auto): Default to 40.
24223         * doc/invoke.texi (max-inline-insns-auto): Document the change.
24224
24225 2010-06-27  Jan Hubicka  <jh@suse.cz>
24226
24227         PR middle-end/44671
24228         PR middle-end/44686
24229         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
24230         signature change.
24231         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
24232         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
24233
24234 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
24235
24236         * target.h (struct gcc_target): Add register_move_cost field.
24237         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
24238         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
24239         * targhooks.c (default_register_move_cost): New function.
24240         * targhooks.h (default_register_move_cost): Declare function.
24241         * defaults.h (REGISTER_MOVE_COST): Delete.
24242         * ira-int.h (ira_register_move_cost): Update comment.
24243         * ira.c (ira_register_move_cost): Update comment.
24244         * reload.h (register_move_cost): Declare.
24245         * reginfo.c (register_move_cost): New function.
24246         (move_cost): Update comment.
24247         (init_move_cost, memory_move_secondary_cost): Replace
24248         REGISTER_MOVE_COST with register_move_cost.
24249         * postreload.c (reload_cse_simplify_set): (Ditto.).
24250         * reload.c (find_valid_class, find_reloads): (Ditto.).
24251         * reload1.c (choose_reload_regs): (Ditto.).
24252         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
24253         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
24254         * doc/md.texi (can_create_pseudo_p): Update documentation.
24255
24256         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
24257         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
24258         * config/i386/i386.h (ix86_memory_move_cost): Make static.
24259         (TARGET_MEMORY_MOVE_COST): Define.
24260
24261         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
24262         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
24263         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
24264         (TARGET_MEMORY_MOVE_COST): Define.
24265
24266 2010-06-27  Richard Guenther  <rguenther@suse.de>
24267
24268         PR tree-optimization/44683
24269         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
24270         false edge from the inverted condition.
24271
24272 2010-06-27  Richard Guenther  <rguenther@suse.de>
24273
24274         PR middle-end/44684
24275         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
24276         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
24277         for register LHS.  Or non-store assignments.
24278
24279 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
24280
24281         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
24282         (sparc_emit_set_const64): Likewise.  Remove disabled code.
24283         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
24284         (sparc_emit_set_const64): Likewise.
24285
24286 2010-06-26  Catherine Moore  <clm@codesourcery.com>
24287
24288         * config/mips/mips.md (alu_type): New attribute.
24289         (type): Infer type from alu_type.
24290         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
24291         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
24292         *subsi3_extended, negsi2, negdi2, *low<mode>,
24293         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
24294         xor<mode>3, *nor<mode>3,
24295         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
24296         *zero_extendhi_truncqi):  Set alu_type instead of type.
24297
24298 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
24299
24300         * config/alpha/alpha.c (alpha_need_linkage): Adjust
24301         splay_tree_new_ggc call.
24302         (alpha_use_linkage): Likewise.
24303
24304 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
24305
24306         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
24307         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
24308         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
24309         (static_specs): Remove switches_need_spaces.
24310         (process_command, do_self_spec): Hardcode handling "-o" instead of
24311         checking switches_need_spaces.
24312         * system.h (SWITCHES_NEED_SPACES): Poison.
24313
24314 2010-06-26  Richard Guenther  <rguenther@suse.de>
24315
24316         PR tree-optimization/44393
24317         * tree-loop-distribution.c (generate_loops_for_partition): Fix
24318         stmt removal and VOP renaming.
24319         (generate_memset_zero): Remove redundant stmt updating.
24320         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
24321         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
24322
24323 2010-06-26  Jan Hubicka  <jh@suse.cz>
24324
24325         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
24326         edges comming from header are equivalent.
24327         (visit_bb): Handle PHIs correctly.
24328         * tree-inline.c (copy_phis_for_bb): Be able to copy
24329         PHI from entry edge.
24330         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
24331
24332 2010-06-26  Richard Guenther  <rguenther@suse.de>
24333
24334         PR middle-end/44674
24335         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
24336         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
24337
24338 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
24339
24340         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
24341         add_infile, alloc_switch): New.
24342         (process_command): Remove variable lang_n_infiles.  Process
24343         options in a single pass.  Use new functions for allocating
24344         infiles and switches arrays.  Properly skip operands of
24345         -Xpreprocessor and -Xassembler.
24346
24347 2010-06-26  Jan Hubicka  <jh@suse.cz>
24348
24349         PR middle-end/44671
24350         * cgraphunit.c (cgraph_function_versioning): Remove wrong
24351         cgraph_make_decl_local call; fix typo copying RTL data.
24352
24353 2010-06-25  DJ Delorie  <dj@redhat.com>
24354
24355         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
24356         (m32c_output_aligned_common): Likewise.
24357         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
24358         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
24359         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
24360         (m32c_register_pragmas): Register it.
24361         * config/m32c/m32c.c (m32c_get_pragma_address): New.
24362         (m32c_insert_attributes): Set #pragma address decls volatile.
24363         (pragma_entry_eq): New.
24364         (pragma_entry_hash): New.
24365         (m32c_note_pragma_address): New.
24366         (m32c_get_pragma_address): New.
24367         (m32c_output_aligned_common): New.
24368         * doc/extend.texi: Document the new pragma.
24369
24370         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
24371         also.
24372         * config/m32c/predicates.md (m32c_any_operand): Check the code
24373         instead of memory_operand so as to allow matching volatile MEMs.
24374         (m32c_nonimmediate_operand): Likewise.
24375         (mra_operand): Allow volatiles.
24376
24377 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
24378
24379         PR debug/44610
24380         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
24381         address if the offset is unknown.
24382
24383 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
24384
24385         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
24386         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
24387         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
24388         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
24389         to ia64_start_function. Invoke it.
24390         * config/ia64/ia64.c (ia64_start_function): Call new function
24391         dwarf2out_vms_debug_main_pointer.
24392
24393 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24394
24395         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
24396         statements computing the true predicate.
24397
24398 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24399
24400         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
24401         to boolean_true_node.
24402         (reset_bb_predicate): New.
24403         (predicate_bbs): Call reset_bb_predicate.
24404
24405 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24406
24407         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
24408         (tree_if_conversion): Returns true when something has been changed.
24409         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
24410         changed something.
24411
24412 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24413
24414         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
24415         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
24416         * tree-if-conv.c: Include dbgcnt.h.
24417         (tree_if_conversion): Use if_conversion_tree to count the number of
24418         if-convertible loops.
24419
24420 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
24421
24422         * common.opt (fprefetch-loop-arrays): Re-define
24423         -fprefetch-loop-arrays as a tri-state option with the initial
24424         value of -1.
24425         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
24426         pass only when flag_prefetch_loop_arrays > 0.
24427         * toplev.c (process_options): Note that, with tri-states,
24428         flag_prefetch_loop_arrays>0 means prefetching is enabled.
24429         * config/i386/i386.c (override_options): Enable prefetching at -O3
24430         for a set of CPUs that sw prefetching is helpful.
24431         (software_prefetching_beneficial_p): New.  Return TRUE if software
24432         prefetching is beneficial for the given CPU.
24433
24434 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
24435
24436         PR rtl-optimization/44326
24437         * implicit-zee.c (find_removable_zero_extends): Replace
24438         INSN_P with NONDEBUG_INSN_P.
24439
24440 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24441
24442         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
24443         (struct ipa_node_params): Removed the modification_analysis_done flag.
24444         (ipa_is_param_modified): Removed.
24445         (ipa_analyze_node): Declare.
24446         (ipa_compute_jump_functions): Remove declaration.
24447         (ipa_count_arguments): Likewise.
24448         (ipa_detect_param_modifications): Likewise.
24449         (ipa_analyze_params_uses): Likewise.
24450         * ipa-prop.c (struct param_analysis_info): New type.
24451         (visit_store_addr_for_mod_analysis): Removed.
24452         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
24453         moved down in the file.
24454         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
24455         (ipa_count_arguments): Made static.
24456         (mark_modified): New function.
24457         (is_parm_modified_before_call): New function.
24458         (compute_pass_through_member_ptrs): New parameter parms_info, call
24459         is_parm_modified_before_call instead of ipa_is_param_modified.
24460         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
24461         it to compute_pass_through_member_ptrs.
24462         (ipa_compute_jump_functions): New parameter parms_info, pass it to
24463         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
24464         on the callee if it is analyzed.  Made static.
24465         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
24466         is_parm_modified_before_call instead of ipa_is_param_modified.
24467         (ipa_analyze_call_uses): New parameter parms_info, pass it to
24468         ipa_analyze_indirect_call_uses.
24469         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
24470         ipa_analyze_call_uses.
24471         (ipa_analyze_params_uses): New parameter parms_info, pass it to
24472         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
24473         (ipa_analyze_node): New function.
24474         (ipa_print_node_params): Do not dump the modified flag.
24475         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
24476         it.  Do not stream the modified parameter flag.
24477         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
24478         it.  Do not stream the modified parameter flag.
24479         * ipa-cp.c (ipcp_analyze_node): Removed.
24480         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
24481         with only a call to ipa_analyze_node.
24482         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
24483         node with only a call to ipa_analyze_node.
24484
24485 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24486
24487         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
24488
24489 2010-06-25  Jan Hubicka  <jh@suse.cz>
24490
24491         * tree-pass.h (pass_split_functions): Declare.
24492         * opts.c (decode_options): Enable function splitting at -O2
24493         * timevar.def (TV_IPA_FNSPLIT): New macro.
24494         * ipa-split.c: New file.
24495         * common.opt (-fpartial-inlining): New flag.
24496         * Makefile.in (ipa-split.o): New object file.
24497         * passes.c (init_optimization_passes): Add ipa-split.
24498         * params.def (partial-inlining-entry-probability): New parameters.
24499         * doc/invoke.texi (-fpartial-inlining): New.
24500
24501 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24502
24503         PR 44665
24504         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
24505         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
24506         (gimplify_expr): Likewise.
24507
24508 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24509
24510         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
24511         statements instead of bailing out on them.
24512         (ipa_analyze_indirect_call_uses): Do not require that loads from the
24513         parameter are in the same BB as the condition.  Update comments.
24514
24515 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
24516
24517         PR middle-end/43866
24518         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
24519         true or always false, return NULL_TREE.
24520         (tree_unswitch_single_loop): Optimize conditions even when reaching
24521         max-unswitch-level parameter.  If num > 0, optimize first all conditions
24522         using entry checks, then do still reachable block discovery and consider
24523         only conditions in still reachable basic blocks in the loop.
24524
24525         PR tree-optimization/44539
24526         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
24527         the call doesn't have LHS, but has VDEF.
24528
24529 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24530
24531         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
24532         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
24533         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
24534         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
24535         * system.h (MODIFY_TARGET_NAME): Poison.
24536
24537 2010-06-25  Alan Modra  <amodra@gmail.com>
24538
24539         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
24540         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
24541         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
24542         CMODEL_LARGE as default.
24543         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
24544         (offsettable_ok_by_alignment): Delete.
24545         (rs6000_emit_move): Remove mcmodel=medium optimization.
24546
24547 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24548
24549         With large parts from Jim Wilson:
24550         PR target/43902
24551         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
24552         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24553         * optabs.c (optab_for_tree_code): Likewise.
24554         (expand_widen_pattern_expr): Likewise.
24555         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
24556         out of execute_optimize_widening_mul.
24557         (convert_plusminus_to_widen): New function.
24558         (execute_optimize_widening_mul): Use the two new functions.
24559         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
24560         Remove code to generate widening multiply-accumulate.  Add support
24561         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24562         * gimple-pretty-print.c (dump_ternary_rhs): New function.
24563         (dump_gimple_assign): Call it when appropriate.
24564         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
24565         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
24566         (expand_gimple_stmt_1): Likewise.
24567         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
24568         WIDEN_MULT_MINUS_EXPR.
24569         * tree-ssa-operands.c (get_expr_operands): Likewise.
24570         * tree-inline.c (estimate_operator_cost): Likewise.
24571         * gimple.c (extract_ops_from_tree_1): Renamed from
24572         extract_ops_from_tree.  Add new arg for a third operand; fill it.
24573         (gimple_build_assign_stat): Support operations with three operands.
24574         (gimple_build_assign_with_ops_stat): Likewise.
24575         (gimple_assign_set_rhs_from_tree): Likewise.
24576         (gimple_assign_set_rhs_with_ops_1): Renamed from
24577         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
24578         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
24579         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
24580         WIDEN_MULT_MINUS_EXPR.
24581         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
24582         (extract_ops_from_tree_1): Adjust declaration.
24583         (gimple_assign_set_rhs_with_ops_1): Likewise.
24584         (gimple_build_assign_with_ops): Pass NULL for last operand.
24585         (gimple_build_assign_with_ops3): New macro.
24586         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
24587         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
24588         functions.
24589         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
24590         (verify_gimple_assign): Call it.
24591         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
24592         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
24593         functions for dealing with three-operand statements.
24594         * tree.c (commutative_ternary_tree_code): New function.
24595         * tree.h (commutative_ternary_tree_code): Declare it.
24596         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
24597         ternary statements.
24598         (gimple_assign_nonzero_warnv_p): Likewise.
24599         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
24600         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
24601         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
24602         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
24603         (struct hashtable_expr): New member ternary in the union.
24604         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
24605         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
24606         (iterative_hash_hashable_expr): Likewise.
24607         (print_expr_hash_elt): Handle EXPR_TERNARY.
24608         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
24609         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
24610         statements.  Handle GIMPLE_TERNARY_RHS.
24611
24612 2010-06-25  Jan Hubicka  <jh@suse.cz>
24613
24614         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
24615
24616 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
24617
24618         PR c/44517
24619         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
24620         parameters are not good.
24621         (c_parser_parameter_declaration): Error unknown type name if the type
24622         name can't start declaration specifiers.
24623
24624 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24625
24626         * gcc.c (translate_options): Don't mention +e in comment.
24627         (process_command): Don't handle +e specially.
24628
24629 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24630
24631         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
24632
24633         * ira-build.c (merge_hard_reg_conflicts): New function.
24634         (create_cap_allocno, copy_info_to_removed_store_destinations,
24635         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
24636         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
24637         (remove_unnecessary_allocnos, remove_low_level_allocnos)
24638         copy_nifo_to_removed_store_destination): Use them.
24639         * ira-lives.c (make_hard_regno_born): New function, split out of
24640         make_regno_born.
24641         (make_allocno_born): Likewise.
24642         (make_hard_regno_dead): New function, split out of make_regno_dead.
24643         (make_allocno_dead): Likewise.
24644         (inc_register_pressure): New function, split out of set_allocno_live.
24645         (dec_register_pressure): New function, split out of clear_allocno_live.
24646         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
24647         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
24648         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
24649         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
24650         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
24651         mark_pseudo_regno_live.
24652         (process_bb_node_lives): Use mark_pseudo_regno_live,
24653         make_hard_regno_born and make_allocno_dead.
24654         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
24655         set_allocno_live, clear_allocno_live): Delete functions.
24656
24657         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
24658         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
24659         functions.
24660         (ira_flattening): Use ira_parent_allocno.
24661         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
24662         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
24663
24664         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
24665         statement.
24666
24667         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
24668         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
24669         minmax_set_iter_cond, minmax_set_iter_next,
24670         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
24671         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
24672         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
24673         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
24674         uses changed.
24675
24676         * ira-int.h (struct live_range, live_range_t): Renamed from struct
24677         ira_allocno_live_range and allocno_live_range_t; all uses changed.
24678         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
24679         All uses changed.
24680
24681 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
24682
24683         * thumb2.md (thumb2_tlobits_cbranch): Delete.
24684         (peephole2 to convert zero_extract/compare of single bit to
24685          lshift/compare): New.
24686
24687 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
24688
24689         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
24690         recursive call and call to 'int_const_binop'.
24691         (build_range_check, fold_cond_expr_with_comparison, unextend,
24692         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
24693         multiple_of_p): Adjust call to const_binop.
24694
24695 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
24696
24697         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
24698         determine size of XFmode operand.
24699         (XFmode extended DFmode push splitter): Ditto.
24700         (XFmode extended SFmode push splitter): Ditto.
24701
24702 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
24703
24704         PR target/44588
24705         * config/i386/i386.md (extract_code): New.
24706         (<u>divmodqi4): Likewise.
24707         (divmodhiqi3): Likewise.
24708         (udivmodhiqi3): Likewise.
24709         (<u>divqi3): Remvoved.
24710
24711 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
24712
24713         PR middle-end/44492
24714         * recog.h (struct recog_data): Add is_asm field.
24715         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
24716         present in constraints of inline-asm operand and memory operand
24717         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
24718         (extract_insn): Initialize recog_data.is_asm.
24719         * doc/md.texi (Constraints): Document operand side-effect rules.
24720
24721 2010-06-24  Andi Kleen  <ak@linux.intel.com>
24722
24723         * c-parser.c (c_parser_conditional_expression): Call
24724         warn_for_omitted_condop.
24725         * doc/invoke.texi: Document omitted condop warning.
24726
24727 2010-06-24  Nick Clifton<nickc@redhat.com>
24728
24729         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
24730         insn in the sequence is a jump insn before setting its label.
24731
24732 2010-06-24  Alan Modra  <amodra@gmail.com>
24733
24734         * collect2.c (main): Match exactly --version and --help.
24735
24736 2010-06-24  DJ Delorie  <dj@redhat.com>
24737
24738         * config/m32c/m32c-pragma.c: Don't include rtl.h.
24739
24740 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
24741
24742         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
24743         using X87MODEF mode iterator.
24744         (pushsf splitter): Macroize splitter using P mode iterator.
24745         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
24746         mode iterator.
24747
24748         (*movxf_internal): Rename from *movxf_integer.
24749         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
24750         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
24751         (*movdf_internal): Rename from *movdf_integer.
24752         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
24753         (*movsf_internal): Rename from *movdf_1.
24754
24755 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
24756
24757         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
24758         (const_gimple_seq_node): Removed typedefs.
24759
24760         * gimple.h (gimple_seq_node_d, gimple_seq_node)
24761         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
24762
24763 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
24764
24765         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
24766         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
24767         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
24768         and CODE_FOR_vec_extract_lo_v4df.
24769
24770         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
24771         Changed to define_insn_and_split.
24772         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
24773         (vec_extract_lo_v16hi): Likewise.
24774         (vec_extract_lo_v32qi): Likewise.
24775         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
24776         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
24777
24778 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
24779
24780         PR target/44640
24781         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
24782         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
24783         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
24784         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
24785         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
24786
24787         PR target/44640
24788         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
24789
24790         PR other/44644
24791         * df-core.c (struct df): Rename to df_d.
24792         * df.h (struct df): Likewise.
24793         * dse.h (struct df): Remove forward declaration.
24794         * recog.h (struct insn_data): Rename to:
24795         (struct_insn_data_d).  Adjusted all users.
24796
24797 2010-06-23  Arnaud Charlet  <charlet@adacore.com
24798
24799         PR ada/22220
24800         * doc/install.texi: Update requirements to build GNAT.
24801
24802 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
24803
24804         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
24805         enum type.
24806         (m68k_sched_attr_opx_type): Remove unreachable return.
24807         (m68k_sched_attr_opy_type): Likewise.
24808         (m68k_sched_attr_size): Likewise.
24809         (sched_get_opxy_mem_type): Likewise.
24810         (m68k_sched_attr_op_mem): Likewise.
24811
24812 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
24813
24814         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
24815         new statement and adjust VDEF only if necessary.  Remove superfluous
24816         call to maybe_clean_or_replace_eh_stmt.
24817         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
24818         copy the flags.
24819         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
24820         * tree-inline.c (copy_bb): ...and not there.
24821
24822 2010-06-22  Cary Coutant  <ccoutant@google.com>
24823
24824         * dwarf2out.c (is_nested_in_subprogram): New function.
24825         (should_move_die_to_comdat): Use it.
24826         (copy_ancestor_tree): Don't mark DIEs here.
24827         (copy_decls_walk): Start walk from root of newly-added tree;
24828         mark DIEs here instead.
24829
24830 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
24831
24832         * config/i386/i386.md (unit): Also check sseishft1.
24833
24834 2010-06-22  Jan Hubicka  <jh@suse.cz>
24835
24836         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
24837         enabled.
24838
24839 2010-06-22  Jan Hubicka  <jh@suse.cz>
24840
24841         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
24842         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
24843         Return true if something changed.
24844         * df.h (df_confluence_function_n): Return bool.
24845         * df-core.c (df_worklist_propagate_forward,
24846         df_worklist_propagate_backward): Track changes and ages.
24847         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
24848         track ages.
24849         * dse.c (dse_confluence_n): Return always true.
24850
24851 2010-06-22  Jan Hubicka  <jh@suse.cz>
24852
24853         * bitmap.c (bitmap_clear_bit): Micro optimize.
24854
24855 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
24856
24857         * config/i386/i386.md (SWI1248x): New mode iterator.
24858         (SWI48x): Ditto.
24859         (SWI12): Ditto.
24860         (SWI24): Ditto.
24861
24862         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
24863         SWI1248x mode iterator.
24864         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
24865         using SWI124 mode iterator.
24866         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
24867         mode iterator.
24868         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
24869         *pushdi2_prologue_rex64 using P mode iterator.
24870         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
24871         using SWI48 mode iterator.
24872         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
24873         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
24874         using SWI1248x mode iterator.
24875         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
24876         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
24877         SWI48 mode iterator.
24878         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
24879         iterator.
24880         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
24881         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
24882         SWI12 mode iterator.
24883         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
24884         SWI12 mode iterator.
24885         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
24886         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
24887         SWI24 mode iterator.
24888         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
24889         SWI48 mode iterator.
24890         (mov<mode>_insn_1): New expander.
24891         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
24892         using SWI48x mode iterator.
24893
24894         (*movoi_internal_avx): Rename from *movoi_internal.
24895         (*movti_internal_rex64): Rename from *movti_rex64.
24896         (*movti_internal_sse): Rename from *movti_sse.
24897         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
24898         (*movdi_internal): Rename from *movdi_2.
24899         (*movsi_internal): Rename from *movsi_1.
24900         (*movhi_internal): Rename from *movhi_1.
24901         (*movqi_internal): Rename from *movqi_1.
24902
24903         (insv): Update the call to gen_movsi_insv_1 for rename.
24904         * config/i386/i386.c (promote_duplicated_reg): Ditto.
24905
24906 2010-06-22  Jan Hubicka  <jh@suse.cz>
24907
24908         * passes.c (execute_function_todo): Move call of statistics_fini_pass
24909         to ...
24910         (execute_todo) ... this one.
24911
24912 2010-06-22  Alan Modra  <amodra@gmail.com>
24913
24914         PR target/44364
24915         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
24916         * caller-save.c (insert_restore, insert_save): Use non-validate
24917         form of adjust_address.
24918
24919 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24920
24921         PR target/39690
24922         * config/pa/pa.c (override_options): Disable
24923         -freorder-blocks-and-partition.
24924
24925 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
24926
24927         PR target/44615
24928         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
24929
24930         * config/i386/i386.md (type): Add sseishft1
24931
24932         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
24933         (ppro_insn_load): Likewise.
24934         (ppro_insn_store): Likewise.
24935         (ppro_insn_both): Likewise.
24936
24937         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
24938         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
24939         for type.
24940         (*vec_extractv2di_1_avx): Likewise.
24941         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
24942         type.  Remove atom_unit.
24943         (*vec_extractv2di_1_sse2): Likewise.
24944
24945 2010-06-21  DJ Delorie  <dj@redhat.com>
24946
24947         * diagnostic.h (diagnostic_classification_change_t): New.
24948         (diagnostic_context): Add history and push/pop list.
24949         (diagnostic_push_diagnostics): Declare.
24950         (diagnostic_pop_diagnostics): Declare.
24951         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
24952         from pragmas in a history chain instead of the global table.
24953         (diagnostic_push_diagnostics): New.
24954         (diagnostic_pop_diagnostics): New.
24955         (diagnostic_report_diagnostic): Scan history chain to find state
24956         of diagnostics as of the diagnostic location.
24957         * opts.c (set_option): Pass UNKNOWN_LOCATION to
24958         diagnostic_classify_diagnostic.
24959         (enable_warning_as_error): Likewise.
24960         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
24961         use in the history chain.
24962         * doc/extend.texi: Document pragma GCC diagnostic changes.
24963
24964 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
24965
24966         * dwarf2out.c (add_linkage_name): New function.  Don't add
24967         anything to DW_TAG_member DIEs.
24968         (add_name_and_src_coords_attributes): Use it.
24969         (gen_variable_die): Call it for C++ static data members if
24970         specification is DW_TAG_member.
24971
24972         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
24973         C++ char16_t and char32_t.
24974
24975         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
24976         * genattrtab.c: Include vecprim.h.
24977         (cached_attrs, cached_attr_count, attrs_seen_once,
24978         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
24979         attrs_cached_after): New variables.
24980         (find_attrs_to_cache): New function.
24981         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
24982         (write_test_expr): Add attrs_cached argument, return it too,
24983         attempt to cache non-const attributes used more than once in
24984         a single case handling.
24985         (write_attr_get): Use find_attrs_to_cache, for caching candidates
24986         emit cached_* variables.  Adjust write_attr_set callers.
24987         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
24988         to find attributes that should be cached in this block.  Adjust
24989         write_test_expr callers.
24990         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
24991         callers.
24992         (make_automaton_attrs): Adjust write_test_expr caller.
24993
24994         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
24995         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
24996         (make_automaton_attrs): If find_tune_attr returns non-NULL,
24997         write separate internal_dfa_insn_code_* and insn_default_latency_*
24998         functions for each attribute's value and emit init_sched_attrs
24999         function and function pointers.
25000         * genattr.c (const_attrs, reservations): New variables.
25001         (gen_attr): Add const attributes to const_attrs vector.
25002         (check_tune_attr, find_tune_attr): New functions.
25003         (main): Add reservations to reservations vector.  If find_tune_attr
25004         returns true, add prototype for init_sched_attrs and make
25005         internal_dfa_insn_code and insn_default_latency function pointers,
25006         otherwise define init_sched_attrs as dummy macro.
25007         * cfgexpand.c: Include insn-attr.h.
25008         (gimple_expand_cfg): Call init_sched_attrs.
25009
25010         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
25011
25012         PR target/44575
25013         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
25014         va_arg from a set of register save slots into a temporary,
25015         if the container is bigger than type size, do the copying
25016         using smaller mode or using memcpy.
25017
25018         PR bootstrap/44426
25019         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
25020         prototype.
25021         (sel_print_to_dot): Remove macro.
25022         (sel_print): Likewise.  New prototype.
25023         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
25024         (sel_print): New function.
25025
25026 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25027
25028         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
25029         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
25030
25031 2010-06-21  Nick Clifton  <nickc@redhat.com>
25032
25033         * config/rx/rx.h (PTRDIFF_TYPE): Define.
25034         (SMALL_REGISTER_CLASS): Define (to zero).
25035         (PRINT_OPERAND): Delete.
25036         (PRINT_OPERAND_ADDRESS): Delete.
25037         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
25038         (rx_print_operand_address): Delete prototype.
25039         * config/rx/rx.c (rx_print_operand): Make static.
25040         Allow %H and %L to handle CONST_DOUBLEs.
25041         (rx_print_operand_address): Make static.
25042         (rx_gen_move_template): Rename local variable 'template' to
25043         out_template.
25044         (rx_function_arg): Do not pass unknown sized objects in registers.
25045         (TARGET_PRINT_OPERAND): Define.
25046         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25047
25048 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
25049
25050         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
25051
25052 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
25053
25054         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
25055         stack-alignment for simple leaf-functions.
25056
25057 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
25058
25059         * doc/install.texi: Document bootstrap-lto.
25060
25061 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
25062
25063         PR debug/44248
25064         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
25065         (input_function): Drop them here, if VTA is disabled.
25066
25067 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
25068
25069         PR target/44546
25070         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
25071         New predicate.
25072         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
25073         ix86_swapped_fp_comparsion_operator instead of
25074         ix86_fp_comparison_operator.
25075
25076         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
25077         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
25078         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
25079         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
25080         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
25081         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
25082
25083 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
25084
25085         PR other/32998
25086         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
25087         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
25088         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
25089         (decode_cmdline_option): Update for this return value.  Set
25090         orig_option_with_args_text field.  Set arg field for unknown
25091         options.  Make static.
25092         (decode_cmdline_options_to_array): New.
25093         (prune_options): Update handling of find_opt return value.
25094         * opts.c (read_cmdline_option): Take decoded option.  Return void.
25095         (read_cmdline_options): Take decoded options.
25096         (decode_options): Add parameters for decoded options.  Use
25097         decode_cmdline_options_to_array.  Use decoded options for -O
25098         scan.  Use integral_argument for -O parameters.  Update call to
25099         read_cmdline_options.
25100         (enable_warning_as_error): Update handling of find_opt return value.
25101         * opts.h: Update comment on unknown options.
25102         (struct cl_decoded_option): Update comments on opt_index and arg.
25103         Add orig_option_with_args_text.
25104         (decode_cmdline_option): Remove.
25105         (decode_cmdline_options_to_array): Declare.
25106         (decode_options): Update prototype.
25107         * toplev.c (save_argv): Remove.
25108         (save_decoded_options, save_decoded_options_count): New.
25109         (read_integral_parameter): Remove.
25110         (print_switch_values): Use decoded options.
25111         (toplev_main): Don't set save_argv.  Update call to decode_options.
25112         * toplev.h (read_integral_parameter): Remove.
25113         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
25114
25115 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
25116
25117         PR target/44072
25118         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
25119         immediate.
25120         * constraints.md (Pw, Px): New constraints.
25121         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
25122
25123 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
25124
25125         * config/i386/sse.md (fma4modesuffixf4): Removed.
25126         (ssemodesuffixf2s): Likewise.
25127         (ssemodesuffixf4): Likewise.
25128         (ssemodesuffixf2c): Likewise.
25129         (ssescalarmodesuffix2s): Likewise.
25130         (avxmodesuffixf2c): Likewise.
25131         (ssemodesuffix): New.
25132         (ssescalarmodesuffix): Likewise.
25133         Update patterns with ssemodesuffix and ssescalarmodesuffix.
25134
25135 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
25136
25137         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
25138
25139 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
25140
25141         * stor-layout.c (debug_rli): Remove unused local variables.
25142
25143 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
25144
25145         PR rtl-optimization/40900
25146         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
25147         original expression for later reuse.
25148         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
25149         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
25150
25151 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
25152
25153         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
25154         double_int_fits_in_uhwi_p): Implement as static inline.
25155         (double_int_xor): New inline function.
25156         (double_int_lrotate, double_int_rrotate, double_int_max,
25157         double_int_umax, double_int_smax, double_int_min, double_int_umin,
25158         double_int_smin): Declare.
25159         (lrotate_double, rrotate_double): Remove declaration.
25160         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
25161         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
25162         (double_int_lrotate, double_int_rrotate, double_int_max,
25163         double_int_umax, double_int_smax, double_int_min, double_int_umin,
25164         double_int_smin): New function.
25165         * fold-const.c (int_const_binop): Clean up, use double_int_*
25166         functions.
25167         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
25168         double_int_* and immed_double_int_const functions.
25169
25170 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
25171
25172         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
25173         * function.c (types_used_by_cur_var_decl): Likewise.
25174         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
25175
25176 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
25177
25178         * tree.h (record_layout_info): Change type of pending_statics field
25179         to a VEC.
25180         * stor-layout.c (start_record_layout): Store NULL into
25181         pending_statics.
25182         (debug_rli): Call debug_vec_tree instead of debug_tree.
25183         (place_field): Likewise.
25184         (finish_record_layout): Likewise.
25185
25186 2010-06-18  Alan Modra  <amodra@gmail.com>
25187
25188         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
25189
25190 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25191
25192         PR target/43740
25193         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
25194         for SET source operand from SET destination operand.
25195
25196 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
25197
25198         PR rtl-optimization/39871
25199         * reload1.c (init_eliminable_invariants): For flag_pic, disable
25200         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
25201         (function_invariant_p): Rule out a plus of frame or arg pointer with
25202         a SYMBOL_REF.
25203         * ira.c (find_reg_equiv_invariant_const): Likewise.
25204
25205 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
25206
25207         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
25208         print_operand_address and puts to output the operand for CONST.
25209
25210 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
25211
25212         PR debug/44572
25213         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
25214         hook.
25215
25216 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25217
25218         * v850-protos.h (print_operand): Delete.
25219         (print_operand_address): Delete.
25220         * v850.h (PRINT_OPERAND): Delete.
25221         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25222         (PRINT_OPERAND_ADDRESS): Delete.
25223         * v850.c (print_operand_address): Rename to...
25224         (v850_print_operand_address): ...this.  Make static. Call
25225         v850_print_operand.
25226         (print_operand): Rename to...
25227         (v850_print_operand): ...this.  Make static.  Call
25228         v850_print_operand_address.
25229         (v850_print_operand_punct_valid_p): New function.
25230         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25231         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25232
25233 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25234
25235         * config/sh/sh-protos.h (print_operand): Delete.
25236         (print_operand_address): Delete.
25237         * config/sh/sh.h (PRINT_OPERAND): Delete.
25238         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25239         (PRINT_OPERAND_ADDRESS): Delete.
25240         * config/sh/sh.c (sh_print_operand_address): Make static.
25241         (sh_print_operand): Make static.  Call sh_print_operand_address
25242         and sh_print_operand.
25243         (sh_print_operand_punct_valid_p): New function.
25244         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25245         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25246
25247 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25248
25249         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
25250         (mcore_print_operand_address): Delete.
25251         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
25252         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25253         (PRINT_OPERAND_ADDRESS): Delete.
25254         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
25255         (mcore_print_operand): Make static.
25256         (mcore_print_operand_punct_valid_p): New function.
25257         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
25258         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25259
25260 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25261
25262         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
25263         (print_operand_address): Delete.
25264         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
25265         (PRINT_OPERAND_ADDRESS): Delete.
25266         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
25267         static.
25268         (m68hc11_print_operand): Make static.
25269         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25270
25271 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25272
25273         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
25274         (m32r_print_operand_address): Delete.
25275         * config/m32r/m32r.h (m32r_punct_chars): Delete.
25276         (PRINT_OPERAND): Delete.
25277         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25278         (PRINT_OPERAND_ADDRESS): Delete.
25279         * config/m32r/m32r.c (m32r_punct_chars): Make static.
25280         (m32r_print_operand_address): Make static.
25281         (m32r_print_operand): Make static.
25282         (m32r_print_operand_punct_valid_p): New function.
25283         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25284         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25285
25286 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25287
25288         * config/iq2000/iq2000-protos.h (print_operand): Delete.
25289         (print_operand_address): Delete.
25290         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
25291         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25292         (PRINT_OPERAND_ADDRESS): Delete.
25293         (iq2000_print_operand_punct): Delete.
25294         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
25295         (iq2000_print_operand_address): Make static.
25296         (iq2000_print_operand): Make static.
25297         (iq2000_print_operand_punct_valid_p): New function.
25298         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25299         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25300
25301 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25302
25303         * config/frv/frv-protos.h (frv_print_operand): Delete.
25304         (frv_print_operand_address): Delete.
25305         * config/frv/frv.h (PRINT_OPERAND): Delete.
25306         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25307         (PRINT_OPERAND_ADDRESS): Delete.
25308         * config/frv/frv.c (frv_print_operand_address): Make static.
25309         (frv_print_operand): Make static.
25310         (frv_print_operand_punct_valid_p): New function.
25311         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25312         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25313
25314 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25315
25316         * tree.h (vec_member): Declare.
25317         * tree.c (vec_member): Define.
25318
25319 2010-06-17  Richard Guenther  <rguenther@suse.de>
25320
25321         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
25322         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
25323
25324 2010-06-17  Richard Guenther  <rguenther@suse.de>
25325
25326         * tree-inline.c (declare_return_variable): Remove bogus code.
25327
25328 2010-06-17  Richard Guenther  <rguenther@suse.de>
25329
25330         * gimplify.c (gimplify_bind_expr): Always promote complex
25331         and vector variables to registers if possible.
25332
25333 2010-06-17  Richard Guenther  <rguenther@suse.de>
25334
25335         * expr.c (get_inner_reference): Use double_int for bit_offset
25336         calculation.
25337
25338 2010-06-16  DJ Delorie  <dj@redhat.com>
25339
25340         * common.opt (-fstrict-volatile-bitfields): new.
25341         * doc/invoke.texi: Document it.
25342         * fold-const.c (optimize_bit_field_compare): For volatile
25343         bitfields, use the field's type to determine the mode, not the
25344         field's size.
25345         * expr.c (expand_assignment): Likewise.
25346         (get_inner_reference): Likewise.
25347         (expand_expr_real_1): Likewise.
25348         * expmed.c (store_fixed_bit_field): Likewise.
25349         (extract_bit_field_1): Likewise.
25350         (extract_fixed_bit_field): Likewise.
25351
25352 2010-06-16  Richard Guenther  <rguenther@suse.de>
25353
25354         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
25355
25356 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
25357
25358         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
25359         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
25360         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
25361         * debug.c: Likewise.
25362         * sdbout.c: Likewise.
25363         * vmsdbgout.c: Likewise.
25364         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
25365         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
25366         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
25367         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
25368         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
25369         * dwarf2out.c (dw_fde_struct): New fields
25370         dw_fde_vms_{end,begin}_prologue.
25371         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
25372         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
25373         (dwarf2out_vms_end_prologue): New function.
25374         (dwarf2out_vms_begin_epilogue): New function.
25375         (dw_val_struct): New value dw_val_class_vms_delta.
25376         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
25377         begin_epilogue for VMS.
25378         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
25379         new static functions.
25380         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
25381         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
25382         static functions.
25383         (print_die): New case dw_val_class_vms_delta.
25384         (attr_checksum): Likewise.
25385         (same_dw_val_p: Likewise.
25386         (size_of_die): Likewise.
25387         (value_format): Likewise.
25388         (output_die): Likewise.
25389         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
25390         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
25391         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
25392         dwarf2out_cfi_begin_epilogue
25393         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
25394
25395 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25396
25397         * config/cris/cris-protos.h (cris_print_operand): Delete.
25398         (cris_print_operand_address): Delete.
25399         * config/cris/cris.h (PRINT_OPERAND): Delete.
25400         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25401         (PRINT_OPERAND_ADDRESS): Delete.
25402         * config/cris/cris.c (cris_print_operand_address): Make static.
25403         (cris_print_operand): Make static.
25404         (cris_print_operand_punct_valid_p): New function.
25405         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25406         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25407
25408 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25409
25410         * config/arm/arm-protos.h (arm_print_operand): Delete.
25411         (arm_print_operand_address): Delete.
25412         * config/arm/arm.h (PRINT_OPERAND): Delete.
25413         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25414         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
25415         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
25416         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
25417         (arm_print_operand): Make static.
25418         (arm_print_operand_punct_valid_p): New function.
25419         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25420         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25421
25422 2010-06-16  Nick Clifton  <nickc@redhat.com>
25423
25424         * config/rx/constraints.md (NEGint4): New constraint.
25425         * config/rx/rx.md (attr cc): Add set_zsc.
25426         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
25427         initialised.
25428         (cmpsf): Likewise.
25429         (call_internal): Clobber the cc0 register.
25430         (call_value_internal): Likewise.
25431         (cstoresi4): Likewise.
25432         (movsieq): Likewise.
25433         (movsine): Likewise.
25434         (addsi3): Add alternative to handle small negative constants.
25435         (sunsi3): Likewise.
25436         (addsi3): Do not set the O bit in the cc0 register.
25437         (adddi3): Likewise.
25438         (subsi3): Likewise.
25439         (subdi3): Likewise.
25440         (andsi3): Reorder alternatives to prefer shorter forms.
25441         (mulsi3): Likewise.
25442         (iorsi3): Likewise.
25443         (negsi2): Note that the cc0 flags are set.
25444         (rotlsi3): Note that only the Z and S bits are set in cc0.
25445         (lshrsi3): Likewise.
25446         (ashlsi3): Likewise.
25447         (subsf3): Use %Q for the MEM operand.
25448         (fix_truncsfsi2): Likewise.
25449         (floatsisf2): Likewise.
25450         (bitset): Remove early clobber from destination.
25451         (bitset_in_memory): Likewise.
25452         (lrintsf2): Clobber the cc0 register.
25453         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
25454         (rx_print_operand): Handle %N.
25455
25456 2010-06-16  Jan Hubicka  <jh@suse.cz>
25457
25458         * df-core.c (df_compact_blocks): Free problem_temps vector.
25459
25460 2010-06-16  Martin Jambor  <mjambor@suse.cz>
25461
25462         PR tree-optimization/43905
25463         * tree-sra.c: Include tree-inline.h.
25464         (create_abstract_origin): Removed.
25465         (modify_function): Version the call graph node instead of creating
25466         abstract origins and dealing with same_body aliases.
25467         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
25468         function is versionable.
25469         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
25470
25471 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
25472
25473         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
25474         (CHOOSE_DYNAMIC_LINKER): Update.
25475
25476 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
25477
25478         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
25479         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
25480         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
25481         *prefetch_3dnow_rex.
25482
25483 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
25484
25485         * target.h (struct asm_out):Add declare_constant_name field.
25486         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25487         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
25488         * output.h (default_asm_declare_constant_name): Declare.
25489         (assemble_label): Update prototype.
25490         * varasm.c (assemble_constant_contents): Use
25491         targetm.asm_out.declare_constant_name target hook.
25492         (assemble_label): Add 'file' argument.
25493         (default_asm_declare_constant_name): New function.
25494         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
25495         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
25496         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
25497
25498         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
25499         * config/darwin.c (darwin_asm_declare_constant_name): New function.
25500         (machopic_output_indirection): Update assemble_label argument list.
25501         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
25502         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25503
25504 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
25505
25506         PR middle-end/44391
25507         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
25508         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
25509
25510 2010-06-15  Richard Guenther  <rguenther@suse.de>
25511
25512         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
25513
25514 2010-06-15  Paul Brook  <paul@codesourcery.com>
25515
25516         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
25517         hard-float ABI.
25518
25519 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
25520
25521         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
25522         don't get a vector type for output.
25523
25524 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
25525
25526         PR fortran/44536
25527         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
25528         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
25529         (LANG_HOOKS_DECLS): Add it.
25530         * gimplify.c (omp_notice_variable): Call
25531         lang_hooks.decls.omp_report_decl.
25532
25533 2010-06-15  Martin Jambor  <mjambor@suse.cz>
25534
25535         PR lto/44464
25536         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
25537         on the newly dead SSA name.
25538
25539 2010-06-15  Alan Modra  <amodra@gmail.com>
25540
25541         * doc/invoke.texi: Add mcmodel to powerpc options.
25542         * configure.ac: Add HAVE_LD_LARGE_TOC test.
25543         * configure: Regenerate.
25544         * config.in: Regenerate.
25545         * config/rs6000/linux64.opt (mcmodel): New.
25546         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
25547         (TARGET_CMODEL, SET_CMODEL): Define.
25548         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
25549         select CMODEL_MEDIUM default.
25550         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
25551         (TARGET_CMODEL): Define default.
25552         * config/rs6000/rs6000.c (cmodel): New variable.
25553         (rs6000_explicit_options): Add cmodel field.
25554         (rs6000_handle_option): Handle -mcmodel.
25555         (create_TOC_reference): Add largetoc_reg param.  Generate high,
25556         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
25557         (rs6000_delegitimize_address): Recognise new toc reference rtl
25558         and minimal-toc rtl.
25559         (rs6000_legitimize_reload_address): Handle new toc references.
25560         (print_operand_address): Handle legitimate_constant_pool_address_p
25561         match before lo_sum.
25562         (rs6000_eliminate_indexed_memrefs): Tidy.
25563         (rs6000_emit_move): Tweak threshold for inlining constants.
25564         Keep rs6000_emit_allocate_stack large stack frame offsets
25565         loaded into r0 inline.
25566         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
25567         (tocrel_base, tocrel_offset): New variables.
25568         (toc_relative_expr_p): Set them here.
25569         (print_operand_address): Skip over any offset on constant pool address.
25570         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
25571         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
25572         (offsettable_ok_by_alignment): New function.
25573         (rs6000_emit_move): Address suitably aligned local symbol_refs
25574         relative to the toc pointer for -mcmodel=medium.
25575         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
25576         strict param.  Allow lo_sum version of addressing.  Verify reg
25577         used for -mminimal-toc and -mcmodel != small.  Update all callers.
25578         * config/rs6000/constraints.md: Update for above change.
25579         * config/rs6000/predicates.md: Likewise.
25580         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
25581         code.
25582         (tls_gd): Split for -mcmodel=medium/large.
25583         (tls_gd_high, tls_gd_low): New.
25584         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
25585         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
25586         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
25587         (largetoc_high, largetoc_low): New.
25588         (cmptf_internal2): Add clobber.
25589         * config/rs6000/rs6000-protos.h: Update.
25590
25591 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
25592
25593         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
25594         true if no prefetch is going to be generated for a given group.
25595         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
25596         estimate the prefetch_count.
25597         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
25598         prefetch count by considering the unroll_factor and prefetch_mod
25599         for is_loop_prefetching_profitable.
25600
25601 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
25602
25603         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
25604         anything if the argument is not a MEM.
25605
25606 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25607
25608         PR debug/43650
25609         PR debug/44181
25610         PR debug/44247
25611         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
25612         debug stmts.
25613         (canonicalize_loop_ivs): Likewise.
25614
25615 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25616
25617         PR debug/43656
25618         * haifa-sched.c (setup_insn_reg_pressure_info,
25619         update_register_pressure): Reject debug insns.
25620         (ready_sort): Don't setup reg pressure for debug insns.
25621         (schedule_insn): Don't update reg pressure for debug insns.
25622
25623 2010-06-14  Richard Guenther  <rguenther@suse.de>
25624
25625         * lto-streamer.c (cached_bp): Remove.
25626         (bitpack_delete): Likewise.
25627         (bitpack_create): Likewise.
25628         (bp_get_next_word): Likewise.
25629         (bp_pack_value, bp_unpack_value): Move ...
25630         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
25631         Re-implement.
25632         (struct bitpack_d): Likewise.
25633         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
25634         New inline functions.
25635         * lto-streamer-out.c (lto_output_bitpack): Remove.
25636         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25637         (pack_value_fields): Adjust.
25638         (lto_write_tree): Likewise.
25639         (output_gimple_stmt): Likewise.
25640         (output_function): Likewise.
25641         * lto-streamer-in.c (input_gimple_stmt): Adjust.
25642         (input_function): Likewise.
25643         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25644         (lto_input_bitpack): Remove.
25645         (lto_materialize_tree): Adjust.
25646         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
25647         * lto-cgraph.c (lto_output_edge): Adjust.
25648         (lto_output_node): Likewise.
25649         (lto_output_varpool_node): Likewise.
25650         (lto_output_ref): Likewise.
25651         (input_node): Likewise.
25652         (input_varpool_node): Likewise.
25653         (input_ref): Likewise.
25654         (input_edge): Likewise.
25655         (output_node_opt_summary): Likewise.
25656         (input_node_opt_summary): Likewise.
25657         * ipa-pure-const.c (pure_const_write_summary): Likewise.
25658         (pure_const_read_summary): Likewise.
25659         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
25660         (ipa_read_indirect_edge_info): Likewise.
25661         (ipa_write_node_info): Likewise.
25662         (ipa_read_node_info): Likewise.
25663
25664 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
25665
25666         PR target/44534
25667         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
25668         (vec_extract_lo_v16hi): Likewise.
25669         (vec_extract_lo_v32qi): Likewise.
25670
25671 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25672
25673         PR bootstrap/44426
25674         * tree.h (build_call_expr): Don't define as vararg macro, instead
25675         add a prototype.
25676         * builtins.c (build_call_nofold): Remove.
25677         (expand_builtin_int_roundingfn, expand_builtin_pow,
25678         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
25679         expand_builtin_memset_args, expand_builtin_strcmp,
25680         expand_builtin_strncmp, expand_builtin_memory_chk): Use
25681         build_call_nofold_loc instead of build_call_nofold.
25682         (build_call_expr): New function.
25683
25684         PR tree-optimization/44508
25685         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
25686         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
25687         don't eliminate trivially dead stmts.
25688         * tree-vrp.c (vrp_finalize): Pass false as last argument
25689         to substitute_and_fold.
25690         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
25691         to substitute_and_fold.
25692         * tree-ssa-ccp.c (ccp_finalize): Likewise.
25693
25694         PR bootstrap/44509
25695         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
25696
25697 2010-06-14  Ira Rosen  <irar@il.ibm.com>
25698
25699         PR tree-optimization/44507
25700         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
25701         to build initial vector for BIT_AND_EXPR.
25702         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
25703
25704 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25705
25706         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
25707         adjust z10prop set_attr.
25708
25709 2010-06-13  Jan Hubicka  <jh@suse.cz>
25710
25711         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
25712         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
25713         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
25714         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
25715         datastructure checks into checking asserts.
25716         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
25717         * tree-ssa-sccvn.c (VN_INFO): Likewise.
25718         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
25719         df_ref_create_structure): Likewise.
25720         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
25721         pool_free): Use gcc_checking_assert.
25722         * alias.c (get_alias_set): Likewise.
25723         * var-tracking.c (variable_htab_free, shared_hash_copy,
25724         canonicalize_values_mark, variable_merge_over_cur): Likewise.
25725         * lto-streamer.c (bp_unpack_value): Likewise.
25726
25727 2010-06-13  Richard Guenther  <rguenther@suse.de>
25728
25729         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
25730         Do not stream but initialize TYPE_CANONICAL to NULL.
25731         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
25732         * gimple.c (gimple_types_compatible_p): Disregard
25733         TYPE_STRUCTURAL_EQUALITY_P.
25734         (gimple_register_type): Use TYPE_CANONICAL as cache.
25735         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
25736         before registering common types.
25737         * config/i386/i386.c (ix86_function_arg_boundary): Do not
25738         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
25739         * tree.h (TYPE_CANONICAL): Clarify documentation.
25740
25741 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
25742
25743         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
25744         LIBCALL_VALUE): Remove macros.
25745         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
25746         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25747         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25748         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
25749         (ia64_function_value): Make static. Handle receiving the function
25750         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
25751
25752 2010-06-12  Jan Hubicka  <jh@suse.cz>
25753
25754         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
25755         at correct place.
25756
25757 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
25758
25759         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
25760
25761 2010-06-12  Jan Hubicka  <jh@suse.cz>
25762
25763         * df-core.c (df_clear_bb_info): New function.
25764         (df_set_blocks): bb_info is always allocated.
25765         (df_get_bb_info): Use block_info_elt_size.
25766         (df_set_bb_info): Likewise.
25767         (df_compact_blocks): Update for new block_info.
25768         (grow_bb_info): New function.
25769         * df-problems.c (df_grow_bb_info): Move to df-core.c
25770         (df_rd_set_bb_info): Remove.
25771         (df_rd_free_bb_info): Do not free block pool.
25772         (df_rd_alloc): Do not create pool, use check for
25773         obstack presence instead of NULL pointer for new blocks.
25774         (df_rd_free): DO not free alloc pool; clear block_info.
25775         (problem_RD): Add size of block info structure.
25776         (df_lr_set_bb_info): Remove.
25777         (df_lr_free_bb_info): Do not free block pool.
25778         (df_lr_alloc): Do not create pool, use check for
25779         obstack presence instead of NULL pointer for new blocks.
25780         (df_lr_free): DO not free alloc pool; clear block_info.
25781         (problem_LR): Add size of block info structure.
25782         (df_live_set_bb_info): Remove.
25783         (df_live_free_bb_info): Do not free block pool.
25784         (df_live_alloc): Do not create pool, use check for
25785         obstack presence instead of NULL pointer for new blocks.
25786         (df_live_free): DO not free alloc pool; clear block_info.
25787         (problem_LIVE): Add size of block info structure.
25788         (problem_CHAIN): Add size of block info structure.
25789         (df_byte_lr_set_bb_info): Remove.
25790         (df_byte_lr_free_bb_info): Do not free block pool.
25791         (df_byte_lr_alloc): Do not create pool, use check for
25792         obstack presence instead of NULL pointer for new blocks.
25793         (df_byte_lr_free): DO not free alloc pool; clear block_info.
25794         (problem_BYTE_LR): Add size of block info structure.
25795         (problem_NOTE): Add size of block info structure.
25796         (df_byte_MD_set_bb_info): Remove.
25797         (df_byte_MD_free_bb_info): Do not free block pool.
25798         (df_byte_MD_alloc): Do not create pool, use check for
25799         obstack presence instead of NULL pointer for new blocks.
25800         (df_byte_MD_free): DO not free alloc pool; clear block_info.
25801         (problem_BD): Add size of block info structure.
25802         * df-scan.c (df_scan_free_internal): Free block pool.
25803         (df_scan_set_bb_info): Remove.
25804         (df_scan_free_bb_info): Check for artificial_defs instead
25805         of bb_info being non-NULL.
25806         (df_scan_alloc): DO not create df_scan_block pool.
25807         (problem_SCAN): Set size of block info.
25808         (df_bb_refs_record): Do not allocate bb_info.
25809         * df.h (df_problem): Add block_info_elt_size.
25810         (struct dataflow): Change block_info to void *.
25811         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
25812         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
25813         in-line structures.
25814
25815 2010-06-12  Jan Hubicka  <jh@suse.cz>
25816
25817         PR tree-optimize/44485
25818         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
25819         containing use of return value of noreturn function.
25820
25821 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
25822
25823         * targhooks.c (default_function_value): Don't use
25824         FUNCTION_OUTGOING_VALUE.
25825         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
25826         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
25827
25828 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
25829
25830         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
25831         Add crtfastmath.o to extra_parts.
25832         * config/mips/crtfastmath.c: New.
25833         * config/mips/linux.h (ENDFILE_SPEC): New.
25834
25835 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
25836
25837         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
25838         old_type in parameter.
25839         (gcc_type_for_value): Update call to gcc_type_for_interval.
25840         (compute_type_for_level_1): Renamed compute_type_for_level.
25841         Update call to gcc_type_for_interval.
25842
25843 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
25844
25845         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
25846         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
25847
25848 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
25849
25850         * opts-common.c: Include options.h.
25851         (integral_argument): Move from opts.c.
25852         (decode_cmdline_option): New.  Based on read_cmdline_option.
25853         * opts.c (integral_argument): Move to opts-common.c.
25854         (read_cmdline_option): Move most contents to
25855         decode_cmdline_option.  Use %qs in diagnostics.
25856         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
25857         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
25858         decode_cmdline_option): New.
25859
25860 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25861
25862         PR target/44481
25863         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
25864         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
25865         (partiysi2_cmp): Ditto.
25866         (*partiyhi2_cmp): Ditto.
25867         (*parityqi2_cmp): Remove.
25868
25869 2010-06-11  Jan Hubicka  <jh@suse.cz>
25870
25871         * bitmap.h (bmp_iter_next_bit): New.
25872         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
25873
25874 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
25875             Eric Botcazou  <ebotcazou@adacore.com>
25876
25877         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
25878         computed cost.
25879
25880 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25881
25882         * config/i386/i386.md (unspec): New define_c_enum.
25883         (unspecv): Ditto.
25884
25885 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
25886
25887         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
25888
25889 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
25890
25891         PR middle-end/44483
25892         * tree-if-conv.c (bb_predicate_s): New struct.
25893         (bb_predicate_p): New.
25894         (bb_has_predicate): New.
25895         (bb_predicate): New.
25896         (set_bb_predicate): New.
25897         (bb_predicate_gimplified_stmts): New.
25898         (set_bb_predicate_gimplified_stmts): New.
25899         (add_bb_predicate_gimplified_stmts): New.
25900         (init_bb_predicate): New.
25901         (free_bb_predicate): New.
25902         (is_predicated): Use bb_predicate.
25903         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
25904         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
25905         before processing their successors.
25906         (clean_predicate_lists): Removed.
25907         (find_phi_replacement_condition): Use bb_predicate.
25908         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
25909         computations.
25910         (insert_gimplified_predicates): New.
25911         (combine_blocks): Call insert_gimplified_predicates.
25912         (tree_if_conversion): Call free_bb_predicate instead of
25913         clean_predicate_lists.
25914
25915 2010-10-11  Paul Brook  <paul@codesourcery.com>
25916
25917         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
25918         * config/arm/arm.c (all_architectures): Change v7e-m default to
25919         cortexm4.
25920         * config/arm/arm-cores.def: Add cortex-m4.
25921         * config/arm/arm-tune.md: Regenerate.
25922
25923 2010-06-11  Jan Hubicka  <jh@suse.cz>
25924
25925         * ipa-pure-const.c (special_builtlin_state): New function.
25926         (check_call): Use it instead of special casign BUILT_IN_RETURN.
25927         (propagate_pure_const): Use it.
25928
25929 2010-06-11  Jan Hubicka  <jh@suse.cz>
25930
25931         * df-problems.c (df_live_scratch): Convert to bitmap_head.
25932         (df_live_alloc): Initialize df_live_scratch when initializing
25933         problem_data.
25934         (df_live_transfer_function): Update uses of df_live_scratch.
25935         (df_live_free): Free problem_data; clear df_live_scratch before
25936         releasing the obstack.
25937         (df_md_free): Free problem data.
25938
25939 2010-06-11  Jan Hubicka  <jh@suse.cz>
25940
25941         * doc/invoke.texi (Wsuggest-attribute): Document.
25942         (Wmissing-noreturn): Remove.
25943         * ipa-pure-const.c (warn_function_noreturn): New function.
25944         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
25945         warn_missing_noreturn.
25946         * common.opt (Wsuggest-attribute=noreturn): New.
25947         * tree-flow.h (warn_function_noreturn): Declare.
25948         * tree-cfg.c (execute_warn_function_noreturn): Use
25949         warn_function_noreturn.
25950         (gate_warn_function_noreturn): New.
25951         (pass_warn_function_noreturn): Update.
25952
25953 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25954
25955         * c-typeck.c (handle_warn_cast_qual): Add loc
25956         parameter. Improve warning message.
25957         (build_c_cast): Pass location to handle_warn_cast_qual.
25958
25959 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
25960
25961         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
25962         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
25963         insn mnemonic.
25964         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
25965
25966 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
25967
25968         Fix bootstap on mips
25969         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
25970         be naming typedefs.
25971
25972 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
25973
25974         * system.h (helper_const_non_const_cast): New inline for
25975         gcc version <= 4.0.
25976         (CONST_CAST2): For gcc version <= 4.0 use
25977         new helper to do const/non-const casting.
25978
25979 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25980
25981         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
25982         * Makefile.in (OBJS-common): Include insn-enums.o.
25983         (insn-enums.o): New rule.
25984         (simple_generated_c): Add insn-enums.c.
25985         (build/genenums.o): New rule.
25986         (genprogmd): Add "enums".
25987         * genconstants.c (print_enum_type): Declare a C string array
25988         for each enum.
25989         * genenums.c: New file.
25990         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
25991         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
25992         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
25993
25994 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
25995
25996         * doc/md.texi (define_enum_attr): Document.
25997         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
25998         * read-md.h (lookup_enum_type): Declare.
25999         * read-md.c (lookup_enum_type): New function.
26000         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
26001         * genattrtab.c (attr_desc): Add an enum_name field.
26002         (evaluate_eq_attr): Take the associated attribute as argument.
26003         Get the enum prefix from the enum_name field, if defined.
26004         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
26005         (simplify_test_exp): Pass attr to evaluate_eq_attr.
26006         (add_attr_value): New function, split out from...
26007         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
26008         (write_test_expr): Pass attr to evaluate_eq_attr.
26009         (write_attr_get): Use the enum_name as the enum tag, if defined.
26010         (write_attr_valueq): Use the enum_name as a prefix, if defined.
26011         (find_attr): Initialize enum_name.
26012         (main): Handle DEFINE_ENUM_ATTR.
26013         * gensupport.c (process_rtx): Likewise.
26014         * config/mips/mips.h (mips_tune_attr): Delete.
26015         * config/mips/mips.md (cpu): Use define_attr_enum.
26016
26017 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26018
26019         * doc/md.texi (define_c_enum, define_enum): Document.
26020         * read-md.h (md_constant): Add a parent_enum field.
26021         (enum_value, enum_type): New structures.
26022         (upcase_string, traverse_enum_types): Declare.
26023         * read-md.c (enum_types): New variable.
26024         (upcase_string, add_constant): New functions.
26025         (handle_constants): Don't create the hash table here.
26026         Use add_constant.
26027         (traverse_md_constants): Don't check for a null md_constants.
26028         (decimal_string, handle_enum, traverse_enum_types): New functions.
26029         (read_md_files): Initialize md_constants and md_enums.
26030         * genconstants.c (print_md_constant): Ignore info argument.
26031         Only print constants that belong to no enum.
26032         (print_enum_type): New function.
26033         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
26034         for each defined enum type.
26035         * config/mips/mips.md (processor): New define_enum.
26036         (unspec): New define_c_enum.
26037         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
26038         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
26039         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
26040         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
26041         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
26042         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
26043         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
26044         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
26045         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
26046         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
26047         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
26048         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
26049         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
26050         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
26051         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
26052         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
26053         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
26054         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
26055         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
26056         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
26057         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
26058         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
26059         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
26060         (UNSPEC_RDDSP): Move to mips-dsp.md.
26061         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
26062         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
26063         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
26064         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
26065         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
26066         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
26067         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
26068         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
26069         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
26070         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
26071         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
26072         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
26073         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
26074         Moved to mips-dspr2.md.
26075         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
26076         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
26077         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
26078         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
26079         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
26080         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
26081         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
26082         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
26083         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
26084         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
26085         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
26086         UNSPEC_LOONGSON_PSADBH)
26087         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
26088         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
26089         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
26090         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
26091         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
26092         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
26093         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
26094         (cpu): Update comment.
26095         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
26096         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
26097         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
26098         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
26099         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
26100         UNSPEC_LOONGSON_PCMPEQ)
26101         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
26102         UNSPEC_LOONGSON_PINSR_0)
26103         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
26104         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
26105         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
26106         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
26107         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
26108         UNSPEC_LOONGSON_PSADBH)
26109         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
26110         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
26111         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
26112         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
26113         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
26114         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
26115         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
26116         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
26117         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
26118         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
26119         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
26120         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
26121         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
26122         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
26123         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
26124         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
26125         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
26126         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
26127         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
26128         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
26129         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
26130         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
26131         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
26132         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
26133         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
26134         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
26135         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
26136         (UNSPEC_RDDSP): Moved from mips.md.
26137         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
26138         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
26139         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
26140         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
26141         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
26142         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
26143         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
26144         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
26145         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
26146         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
26147         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
26148         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
26149         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
26150         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
26151         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
26152         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
26153         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
26154         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
26155         (UNSPEC_SCC): Moved from mips.md.
26156         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
26157         "processor_type" to "processor".
26158         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
26159         * config/mips/mips.h (processor_type): Delete.
26160         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
26161         "processor_type" to "processor".
26162
26163 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26164
26165         * configure.ac (tm_include_list): Add insn-constants.h.
26166         * configure: Regenerate.
26167         * Makefile.in (GTM_H): Move insn-constants.h here from...
26168         (TM_H): ...here.
26169         * mkconfig.sh: Remove special handling for insn-constants.h.
26170
26171 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26172
26173         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
26174         (BUILD_MD): ...this new variable.
26175         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
26176         that include the old contents of simple_generated_h and
26177         simple_generated_c.
26178         (simple_generated_h, simple_generated_c): Include them.  Add
26179         insn-constants.h.
26180         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
26181         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
26182         Remove these dependencies from the main rule and include
26183         insn-conditions.md in the command line only if it appears
26184         in the dependency list.
26185         (insn-constants.h, s-constants): Delete.
26186         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
26187         or gensupport.h.
26188         (build/genmddeps.o): Likewise.
26189         (genprogrtl): New variable that contains everything from genprogmd
26190         except mddeps and constants.
26191         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
26192         depend on $(BUILD_MD)
26193         (genprog): New variable.  Make these programs depend on
26194         $(BUILD_ERRORS).
26195         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
26196         (main): Use read_md_files instead of init_rtx_reader_args.
26197         * genconstants.c: As for genmddeps.c.
26198         * read-md.h (read_skip_construct): Declare.
26199         * read-md.c (read_skip_construct): New function.
26200         (handle_file): Allow a null handle_directive, skipping the
26201         construct if so.
26202         (parse_include): Update the comment accordingly.
26203
26204 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26205
26206         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
26207         * genmddeps.c: Include read-md.h.
26208         (main): Call init_rtx_reader_args instead of init_md_reader_args.
26209         * genattr.c (main): Likewise.
26210         * genattrtab.c (main): Likewise.
26211         * genautomata.c (main): Likewise.
26212         * gencodes.c (main): Likewise.
26213         * genconditions.c (main): Likewise.
26214         * genconfig.c (main): Likewise.
26215         * genconstants.c (main): Likewise.
26216         * genemit.c (main): Likewise.
26217         * genextract.c (main): Likewise.
26218         * genflags.c (main): Likewise.
26219         * genopinit.c (main): Likewise.
26220         * genoutput.c (main): Likewise.
26221         * genpeep.c (main): Likewise.
26222         * genrecog.c (main): Likewise.
26223         * genpreds.c (main): Likewise.
26224         * gensupport.h (in_fname): Move to read-md.h.
26225         (init_md_reader_args_cb): Rename to...
26226         (init_rtx_reader_args_cb): ...this and return a bool.
26227         (init_md_reader_args): Rename to...
26228         (init_rtx_reader_args): ...this and return a bool.
26229         (include_callback): Move to read-md.h.
26230         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
26231         (file_name_list, first_dir_md_include): Move to read-md.c
26232         (first_bracket_include): Delete unused variable.
26233         (last_dir_md_include): Move to read-md.c.
26234         (process_include): Delete, moving code to read-md.c:handle_include.
26235         (process_rtx): Don't handle INCLUDE.
26236         (save_string): Delete.
26237         (rtx_handle_directive): New function.
26238         (init_md_reader_args_cb): Rename to...
26239         (init_rtx_reader_args_cb): ...this and return a boolean success value.
26240         Use read_md_args.
26241         (init_md_reader_args): Rename to...
26242         (init_rtx_reader_args): ...this and return a boolean success value.
26243         * rtl.def (INCLUDE): Delete.
26244         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
26245         argument.
26246         * read-rtl.c (read_conditions): Don't gobble ')' here.
26247         (read_mapping): Likewise.
26248         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
26249         Handle top-level non-rtx constructs here rather than in read_rtx_1.
26250         Store the whole queue in *X.  Remove call to init_md_reader.
26251         (read_rtx_1): Rename to...
26252         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
26253         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
26254         here.
26255         (read_nested_rtx): New function.  Handle (nil) here rather than
26256         in read_rtx_code.
26257         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
26258         gobble ')' here.
26259         * read-md.h (directive_handler_t): New type.
26260         (in_fname, include_callback): Moved from read-md.h.
26261         (read_constants, init_md_reader): Delete.
26262         (read_md_files): Declare.
26263         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
26264         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
26265         from gensupport.c.
26266         (read_constants): Rename to...
26267         (handle_constants): ...this.  Don't gobble ')' here.
26268         (handle_include, handle_file, handle_toplevel_file)
26269         (parse_include): New functions, mostly taken from gensupport.c.
26270         (init_md_reader): Subsume into...
26271         (read_md_files): ...this new function.
26272
26273 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26274
26275         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
26276         (unread_char): Decrement read_md_lineno after putting back '\n'.
26277         * read-md.c (fatal_with_file_and_line): Push back any characters
26278         that we decide not to add to the context.
26279         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
26280         fatal_expected_char in cases where '/' ends a line (for example).
26281         (read_name): Don't increment read_md_lineno here.
26282         (read_escape): Likewise.
26283         (read_quoted_string): Likewise.
26284         (read_braced_string): Likewise.
26285
26286 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26287
26288         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
26289         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
26290         * genconstants.c: Include read-md.h.
26291         * read-rtl.c (md_constants): Move to read-md.c.
26292         (md_name): Move to read-md.h.
26293         (initialize_iterators): Use leading_string_hash instead of def_hash
26294         and leading_string_eq_p instead of def_name_eq_p.
26295         (read_name): Move to read-md.c.
26296         (def_hash, def_name_eq_p): Delete.
26297         (read_constants, traverse_md_constants): Move to read-md.c.
26298         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
26299         * read-md.h: Include hashtab.h.
26300         (md_name): Moved from read-rtl.c.
26301         (md_constant): Moved from read-md.h.
26302         (leading_string_hash, leading_string_eq_p, read_name)
26303         (read_constants, traverse_md_constants): Declare.
26304         * read-md.c (md_constants): Moved from read-rtl.c.
26305         (leading_string_hash, leading_string_eq_p): New functions.
26306         (read_name, read_constants, traverse_md_constants): Moved from
26307         read-rtl.c.
26308
26309 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26310
26311         * read-rtl.c (md_name): New structure.
26312         (read_name): Take an md_name instead of a buffer pointer.
26313         Use the "string" field instead of strcpy when expanding constants.
26314         (read_constants): Remove the tmp_char argument.  Update the calls
26315         to read_name, using two local name buffers instead of the tmp_char
26316         argument.  Merge the constant-creation code.
26317         (read_conditions): Remove the tmp_char argument.  Update the calls
26318         to read_name, using a local name buffer instead of the tmp_char
26319         argument.
26320         (read_mapping): Replace tmp_char variable with a local name buffer.
26321         Update the calls to read_name.
26322         (read_rtx_1): Likewise.  Update the calls to read_constants and
26323         read_conditions.
26324
26325 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26326
26327         * Makefile.in (build/read-md.o): Depend on errors.h.
26328         * read-md.h (error_with_line): Declare.
26329         * read-md.c: Include errors.h.
26330         (message_with_line_1): New function, extracted from...
26331         (message_with_line): ...here.
26332         (error_with_line): New function.
26333         * genattrtab.c: If a call to message_with_line is followed by
26334         "have_error = 1;", replace both statements with a call to
26335         error_with_line.
26336         * genoutput.c: Likewise.
26337         * genpreds.c: Likewise.
26338         * genrecog.c: If a call to message_with_line is followed by
26339         "error_count++;", replace both statements with a call to
26340         error_with_line.
26341         (errorcount): Delete.
26342         (main): Don't check it.
26343         * gensupport.c: If a call to message_with_line is followed by
26344         "errors = 1;", replace both statements with a call to error_with_line.
26345         (errors): Delete.
26346         (process_define_cond_exec): Check have_error instead of errors.
26347         (init_md_reader_args_cb): Likewise.  Don't set errors.
26348
26349 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26350
26351         * read-md.h (read_md_file): Declare.
26352         (read_char, unread_char): New functions.
26353         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
26354         (read_quoted_string, read_string): Remove FILE * argument.
26355         * read-md.c (read_md_file): New variable.
26356         (read_md_filename, read_md_lineno): Update comments and remove
26357         unnecessary initialization.
26358         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
26359         (read_escape, read_quoted_string, read_braced_string, read_string):
26360         Remove FILE * argument.  Update calls accordingly, using read_char
26361         and unread_char instead of getc and ungetc.
26362         * rtl.h (read_rtx): Remove FILE * argument.
26363         * read-rtl.c (iterator_group): Remove FILE * argument from
26364         "find_builtin".
26365         (iterator_traverse_data): Remove "infile" field.
26366         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
26367         (add_mapping, read_name, read_constants, read_conditions)
26368         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
26369         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
26370         Remove file arguments from all calls, using read_char and unread_char
26371         instead of getc and ungetc.
26372         * gensupport.c (process_include): Preserve read_md_file around
26373         the include.  Set read_md_file to the handle of the included file.
26374         Update call to read_rtx.
26375         (init_md_reader_args_cb): Set read_md_file to the handle of the file
26376         and remove local FILE *.  Update calls to read_rtx.
26377
26378 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26379
26380         * read-md.h (read_rtx_lineno): Rename to...
26381         (read_md_lineno): ...this.
26382         (read_rtx_filename): Rename to...
26383         (read_md_filename): ...this.
26384         (copy_rtx_ptr_loc): Rename to...
26385         (copy_md_ptr_loc): ...this.
26386         (print_rtx_ptr_loc): Rename to...
26387         (print_md_ptr_loc): ...this.
26388         * read-md.c: Likewise.  Update references after renaming.
26389         (string_obstack): Replace RTL with MD in comment.
26390         (set_rtx_ptr_loc): Rename to...
26391         (set_md_ptr_loc): ...this.
26392         (get_rtx_ptr_loc): Rename to...
26393         (get_md_ptr_loc): ...this.
26394         * genconditions.c: Update references after renaming.
26395         * genemit.c: Likewise.
26396         * genoutput.c: Likewise.
26397         * genpreds.c: Likewise.
26398         * gensupport.c: Likewise.
26399         * read-rtl.c: Likewise.
26400
26401 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26402
26403         * Makefile.in (READ_MD_H): New variable.
26404         (BUILD_RTL): Add build/read-md.o.
26405         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
26406         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
26407         (build/genattrtab.o, build/genconditions.o build/genemit.o)
26408         (build/genextract.o, build/genflags.o, build/genoutput.o)
26409         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
26410         (build/read-md.o): New rule.
26411         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
26412         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
26413         * coretypes.h: ...here.
26414         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
26415         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
26416         * genattr.c: Include read-md.h.
26417         * genattrtab.c: Likewise.
26418         * genconditions.c: Likewise.
26419         * genemit.c: Likewise.
26420         * genextract.c: Likewise.
26421         * genflags.c: Likewise.
26422         * genoutput.c: Likewise.
26423         * genpreds.c: Likewise.
26424         * genrecog.c: Likewise.
26425         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
26426         (join_c_conditions, print_c_condition, read_rtx_filename)
26427         (read_rtx_lineno): Move to read-md.h.
26428         * read-rtl.c: Include read-md.h.
26429         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
26430         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
26431         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
26432         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
26433         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
26434         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
26435         (read_braced_string, read_string): Move to read-md.c.
26436         (read_rtx): Move some initialization to init_md_reader and call
26437         init_md_reader here.
26438         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
26439         Move to read-md.h.
26440         * gensupport.c: Include read-md.h.
26441         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
26442         * read-md.h, read-md.c: New files.
26443
26444 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
26445
26446         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26447         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26448         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
26449         * config/moxie/moxie.c (moxie_function_value): Make static.
26450         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
26451         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26452
26453 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26454
26455         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
26456         * dbgcnt.def (tree_sra): New counter.
26457         * tree-sra.c: Include dbgcnt.h.
26458         (gate_intra_sra): Check tree_sra debug counter.
26459
26460 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26461
26462         PR tree-optimization/44258
26463         * tree-sra.c (build_access_subtree): Return false iff there is a
26464         partial overlap.
26465         (build_access_trees): Likewise.
26466         (analyze_all_variable_accesses): Disqualify candidates if
26467         build_access_trees returns true for them.
26468
26469 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
26470
26471         PR debug/41371
26472         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
26473         tail-recurse into canonical node.  Fast-forward over
26474         non-canonical VALUEs.
26475
26476 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
26477
26478         PR boostrap/44470
26479         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
26480         (*addsi_1_zext) <TYPE_LEA>: Likewise.
26481         (add lea splitter): Likewise.
26482         (add_zext lea splitter): Likewise.
26483
26484 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
26485
26486         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
26487
26488 2010-06-10  Jan Hubicka  <jh@suse.cz>
26489
26490         * df-problems.c (df_live_problem_data): Add live_bitmaps.
26491         (df_live_alloc): Initialize problem data and live_osbtacks.
26492         (df_live_finalize): Remove obstack, problem data; do not
26493         clear all bitmaps.
26494         (df_live_top_dump, df_live_bottom_dump): Do not dump old
26495         data when not allocated.
26496         (df_live_verify_solution_start): Do not allocate problem data.
26497         (df_live_verify_solution_end): Check if out is allocated.
26498         (struct df_md_problem_data): New structure.
26499         (df_md_alloc): Allocate problem data.
26500         (df_md_free): Free problem data; do not clear bitmaps.
26501
26502 2010-06-10  Jan Beulich  <jbeulich@novell.com>
26503
26504         PR bootstrap/37304
26505         * configure.ac: Replace $() with ${} when intending to expand
26506         variables rather than invoking commands.
26507         * configure: Re-generate.
26508
26509 2010-06-10  Jan Hubicka  <jh@suse.cz>
26510
26511         PR rtl-optimization/44460
26512         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
26513         TYPE_NEEDS_CONSTRUCTING sanity check.
26514
26515 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
26516
26517         * doc/include/fdl.texi: Move to GFDL version 1.3.
26518
26519         * doc/cpp.texi: Move to GFDL version 1.3.
26520         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
26521         * doc/gccint.texi: Move to GFDL version 1.3.
26522         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
26523         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
26524         * doc/invoke.texi: Move to GFDL version 1.3.
26525
26526 2010-06-09  Jan Hubicka  <jh@suse.cz>
26527
26528         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
26529         Break out from ...
26530         (propagate) ... here; swap the order.
26531
26532 2010-06-09  Jan Hubicka  <jh@suse.cz>
26533
26534         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
26535         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
26536         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
26537         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
26538
26539 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26540
26541         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
26542         Do not the gather memory reference in the outer loop if the step
26543         is not a constant.
26544
26545 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26546
26547         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
26548         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
26549         8 to 4.  Minor change of the related comments.
26550
26551 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26552
26553         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
26554         the scev analysis when the variable is not used outside the loop
26555         in a close phi node: call compute_overall_effect_of_inner_loop.
26556
26557 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26558
26559         * graphite-sese-to-poly.c (single_pred_cond): Renamed
26560         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
26561         (build_sese_conditions_before): Renamed call to single_pred_cond.
26562         (build_sese_conditions_after): Same.
26563
26564 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26565
26566         * graphite-poly.h: Fix comments and indentation.
26567         * graphite-sese-to-poly.c: Same.
26568         (build_sese_conditions_before): Compute stmt and gbb only when needed.
26569         * tree-chrec.c: Fix comments and indentation.
26570         (tree-ssa-loop-niter.c): Same.
26571
26572 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
26573
26574         PR rtl-optimization/42461
26575         * dce.c (deletable_insn_p): Return true for const or pure calls again.
26576         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
26577
26578 2010-06-09  Jan Hubicka  <jh@suse.cz>
26579
26580         * bitmap.c (bitmap_and): Walk array forward.
26581         (bitmap_and_compl_into): Likewise.
26582         (bitmap_xor): Likewise.
26583         (bitmap_xor_into):  Likewise.
26584         (bitmap_equal_p): Likewise.
26585         (bitmap_intersect_p): Likewise.
26586         (bitmap_intersect_compl_p): Likewise.
26587         (bitmap_ior_and_into): Likewise.
26588         (bitmap_elt_copy): Likewise.
26589         (bitmap_and_compl): Likewise.
26590         (bitmap_elt_ior): Likewise.
26591
26592 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
26593
26594         * opts-common.c (prune_options): Ensure replacement argv array
26595         is correctly terminated by a NULL entry.
26596
26597 2010-06-09  Jan Hubicka  <jh@suse.cz>
26598
26599         * cgraph.h (varpool_first_static_initializer,
26600         varpool_next_static_initializer): Make checking only when
26601         checking enabled.
26602         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
26603         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
26604         gcc_assert to gcc_checking_assert.
26605         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
26606         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
26607         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
26608         op_iter_init_phiuse, op_iter_init_phidef,
26609         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
26610         gcc_checking_assert.
26611         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
26612         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
26613         partition_is_global, live_on_entry, live_on_exit,
26614         live_merge_and_clear): Likewise.
26615         * system.h (gcc_checking_assert): New macro.
26616         * gimple.h (set_bb_seq): Use gcc_checking_assert.
26617
26618 2010-06-09  Jason Merrill  <jason@redhat.com>
26619
26620         * Makefile.in (TAGS): Collect tags info from c-family.
26621
26622 2010-06-09  Jan Hubicka  <jh@suse.cz>
26623
26624         * gimple.h (gcc_gimple_checking_assert): New macro.
26625         (gimple_set_def_ops, gimple_set_use_ops,
26626         gimple_set_vuse, gimple_set_vdef,
26627         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
26628         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
26629         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
26630         gimple_asm_output_op, gimple_asm_output_op_ptr,
26631         gimple_asm_set_output_op, gimple_asm_clobber_op,
26632         gimple_asm_set_clobber_op, gimple_asm_label_op,
26633         gimple_asm_set_label_op, gimple_try_set_kind,
26634         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
26635         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
26636         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
26637         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
26638         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
26639         gimple_omp_for_set_initial, gimple_omp_for_final,
26640         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
26641         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
26642         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
26643         conditional with ENABLE_GIMPLE_CHECKING.
26644         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
26645
26646 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
26647
26648         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
26649         (get_computation_cost_at): Use it.
26650         (determine_use_iv_cost_condition): Likewise.
26651         (determine_iv_cost): Likewise.
26652
26653 2010-06-09  Richard Guenther  <rguenther@suse.de>
26654
26655         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
26656         replace constants.
26657
26658 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
26659
26660         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
26661
26662 2010-06-09  Martin Jambor  <mjambor@suse.cz>
26663
26664         PR tree-optimization/44423
26665         * tree-sra.c (dump_access): Dump also grp_assignment_read.
26666         (analyze_access_subtree): Pass negative allow_replacements to children
26667         if the current type is scalar.
26668
26669 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26670
26671         PR testsuite/42843
26672         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
26673         * doc/plugins.texi (Plugin license check): Update information
26674         on type of plugin_is_GPL_compatible.
26675         * Makefile.in (PLUGINCC): Define as $(COMPILER).
26676         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
26677
26678 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
26679
26680         * config/arm/arm.c (thumb2_reorg): New function.
26681         (arm_reorg): Call it.
26682         * config/arm/thumb2.md (define_peephole2 for flag clobbering
26683         arithmetic operations): Delete.
26684
26685 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
26686
26687         PR target/44067
26688         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
26689         e500v2 target.
26690
26691 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26692
26693         PR plugins/44459
26694         * gcc-plugin.h: Encapsulate all declarations in extern "C".
26695
26696 2010-06-08  Jan Hubicka  <jh@suse.cz>
26697
26698         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
26699         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
26700
26701 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
26702
26703         PR tree-optimization/39874
26704         PR middle-end/28685
26705         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
26706         Declare.
26707         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
26708         same_bool_result_p): New.
26709         (and_var_with_comparison, and_var_with_comparison_1,
26710         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
26711         (or_var_with_comparison, or_var_with_comparison_1,
26712         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
26713         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
26714         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
26715         of combine_comparisons.
26716         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
26717
26718 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
26719
26720         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26721         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26722         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
26723         pdp11_function_value_regno_p): New functions.
26724         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26725         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26726
26727 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
26728
26729         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
26730         Thumb-2 in the MINUS case.
26731
26732 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26733
26734         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
26735
26736         * doc/gty.texi (GTY Options): Document typed GC allocation and
26737         variable_size GTY option.
26738
26739         * ggc-internal.h: New.
26740
26741         * ggc.h: Update copyright year.
26742         (digit_string): Move to stringpool.c.
26743         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
26744         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
26745         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
26746         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
26747         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
26748         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
26749         (ggc_force_collect, ggc_get_size, ggc_statistics)
26750         (ggc_print_common_statistics): Move to ggc-internal.h.
26751         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
26752         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
26753         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
26754         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
26755         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
26756         (ggc_alloc_zone_pass_stat): Remove.
26757         (ggc_internal_alloc_stat, ggc_internal_alloc)
26758         (ggc_internal_cleared_alloc_stat): New.
26759         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
26760         (ggc_internal_vec_alloc_stat)
26761         (ggc_internal_cleared_vec_alloc_stat)
26762         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
26763         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
26764         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
26765         (ggc_cleared_alloc_ptr_array_two_args): New.
26766         (htab_create_ggc, splay_tree_new_ggc): Redefine.
26767         (ggc_splay_alloc): Change the type of the first argument to
26768         enum gt_types_enum.
26769         (ggc_alloc_string): Make macro.
26770         (ggc_alloc_string_stat): New.
26771         (ggc_strdup): Redefine.
26772         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
26773         (ggc_alloc_rtvec_sized): New.
26774         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
26775         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
26776         (ggc_internal_cleared_alloc_zone_stat)
26777         (ggc_internal_zone_alloc_stat)
26778         (ggc_internal_zone_cleared_alloc_stat)
26779         (ggc_internal_zone_vec_alloc_stat)
26780         (ggc_alloc_zone_rtx_def_stat)
26781         (ggc_alloc_zone_tree_node_stat)
26782         (ggc_alloc_zone_cleared_tree_node_stat)
26783         (ggc_alloc_cleared_gimple_statement_d_stat): New.
26784
26785         * ggc-common.c: Include ggc-internal.h.
26786         (ggc_internal_cleared_alloc_stat): Rename from
26787         ggc_alloc_cleared_stat.
26788         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
26789         (ggc_calloc): Remove.
26790         (ggc_cleared_alloc_htab_ignore_args): New.
26791         (ggc_cleared_alloc_ptr_array_two_args): New.
26792         (ggc_splay_alloc): Add obj_type parameter.
26793         (init_ggc_heuristics): Formatting fixes.
26794
26795         * ggc-none.c: Update copyright year.
26796         (ggc_alloc_stat): Rename to ggc_alloc_stat.
26797         (ggc_alloc_cleared_stat): Rename to
26798         ggc_internal_cleared_alloc_stat.
26799         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
26800
26801         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
26802         Remove references to ggc_alloc in comments.
26803         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
26804         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
26805         (new_ggc_zone, destroy_ggc_zone): Remove.
26806         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
26807
26808         * ggc-zone.c: Include ggc-internal.h.  Remove references to
26809         ggc_alloc in comments.
26810         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
26811         (ggc_internal_alloc_zone_pass_stat): New.
26812         (ggc_internal_cleared_alloc_zone_stat): New.
26813         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
26814         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
26815         (new_ggc_zone, destroy_ggc_zone): Remove.
26816
26817         * stringpool.c: Update copyright year.  Include ggc-internal.h
26818         (digit_vector): Make static.
26819         (digit_string): Moved from ggc.h.
26820         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
26821         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
26822
26823         * Makefile.in (GGC_INTERNAL_H): New.
26824         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
26825         $(GGC_INTERNAL_H) to dependencies.
26826
26827         * gengtype.c: Update copyright year.
26828         (walk_type): Accept variable_size GTY option.
26829         (USED_BY_TYPED_GC_P): New macro.
26830         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
26831         whitespace at the end of strings.
26832         (get_type_specifier, variable_size_p): New functions.
26833         (alloc_quantity, alloc_zone): New enums.
26834         (write_typed_alloc_def): New function.
26835         (write_typed_struct_alloc_def): Likewise.
26836         (write_typed_typed_typedef_alloc_def): Likewise.
26837         (write_typed_alloc_defns): Likewise.
26838         (output_typename, write_splay_tree_allocator_def): Likewise.
26839         (write_splay_tree_allocators): Likewise.
26840         (main): Call write_typed_alloc_defns and
26841         write_splay_tree_allocators.
26842
26843         * lto-streamer.h (lto_file_decl_data_ptr): New.
26844
26845         * passes.c (order): Define using cgraph_node_ptr.
26846
26847         * strinpool.c (struct string_pool_data): Declare nested_ptr using
26848         ht_identifier_ptr.
26849
26850         * gimple.h (union gimple_statement_d): Likewise.
26851
26852         * rtl.h (struct rtx_def): Likewise.
26853         (struct rtvec_def): Likewise.
26854
26855         * tree.h (union tree_node): Likewise.
26856
26857         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
26858
26859         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
26860
26861         * tree-scalar-evolution.c (scev_initialize): Likewise.
26862
26863         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
26864
26865         * dwarf2asm.c (dw2_force_const_mem): Likewise.
26866
26867         * omp-low.c (lower_omp_critical): Likewise.
26868
26869         * bitmap.h (struct bitmap_head_def): Update comment to not
26870         reference ggc_alloc.
26871
26872         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
26873
26874         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
26875
26876         * ipa-prop.c (duplicate_ggc_array): Rename to
26877         duplicate_ipa_jump_func_array.  Use typed GC allocation.
26878         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
26879
26880         * gimple.c (gimple_alloc_stat): Use
26881         ggc_alloc_cleared_gimple_statement_d_stat.
26882
26883         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
26884
26885         * tree.c (make_node_stat): Use
26886         ggc_alloc_zone_cleared_tree_node_stat.
26887         (make_tree_vec_stat): Likewise.
26888         (build_vl_exp_stat): Likewise.
26889         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
26890         (make_tree_binfo_stat): Likewise.
26891         (tree_cons_stat): Likewise.
26892
26893         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
26894         (shallow_copy_rtx_stat): Likewise.
26895         (make_node_stat): Likewise.
26896
26897         * lto-symtab.c: Fix comment.
26898
26899         * tree-cfg.c (create_bb): Update comment to not reference
26900         ggc_alloc_cleared.
26901         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
26902
26903         * varpool.c (varpool_node): Use typed GC allocation.
26904         (varpool_extra_name_alias): Likewise.
26905
26906         * varasm.c (emutls_decl): Likewise.
26907         (get_unnamed_section): Likewise.
26908         (get_noswitch_section): Likewise.
26909         (get_section): Likewise.
26910         (get_block_for_section): Likewise.
26911         (build_constant_desc): Likewise.
26912         (create_constant_pool): Likewise.
26913         (force_const_mem): Likewise.
26914
26915         * tree.c (build_vl_exp_stat): Likewise.
26916         (build_real): Likewise.
26917         (build_string): Likewise.
26918         (decl_debug_expr_insert): Likewise.
26919         (decl_value_expr_insert): Likewise.
26920         (type_hash_add): Likewise.
26921         (build_omp_clause): Likewise.
26922
26923         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
26924
26925         * tree-ssa.c (init_tree_ssa): Likewise.
26926
26927         * tree-ssa-structalias.c (heapvar_insert): Likewise.
26928
26929         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
26930
26931         * tree-ssa-loop-niter.c (record_estimate): Likewise.
26932
26933         * tree-ssa-alias.c (get_ptr_info): Likewise.
26934
26935         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
26936
26937         * tree-phinodes.c (allocate_phi_node): Likewise.
26938
26939         * tree-iterator.c (tsi_link_before): Likewise.
26940         (tsi_link_after): Likewise.
26941
26942         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
26943
26944         * tree-dfa.c (create_var_ann): Likewise.
26945
26946         * tree-cfg.c (create_bb): Likewise.
26947
26948         * toplev.c (alloc_for_identifier_to_locale): Likewise.
26949         (general_init): Likewise.
26950
26951         * stringpool.c (stringpool_ggc_alloc): Likewise.
26952         (gt_pch_save_stringpool): Likewise.
26953
26954         * sese.c (if_region_set_false_region): Likewise.
26955
26956         * passes.c (do_per_function_toporder): Likewise.
26957
26958         * optabs.c (set_optab_libfunc): Likewise.
26959         (set_conv_libfunc): Likewise.
26960
26961         * lto-symtab.c (lto_symtab_register_decl): Likewise.
26962
26963         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
26964         (input_eh_region): Likewise.
26965         (input_eh_lp): Likewise.
26966         (make_new_block): Likewise.
26967         (unpack_ts_real_cst_value_fields): Likewise.
26968
26969         * lto-section-in.c (lto_new_in_decl_state): Likewise.
26970
26971         * lto-cgraph.c (input_node_opt_summary): Likewise.
26972
26973         * loop-init.c (loop_optimizer_init): Likewise.
26974
26975         * lambda.h (lambda_vector_new): Likewise.
26976
26977         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
26978
26979         * ira.c (update_equiv_regs): Likewise.
26980
26981         * ipa.c (cgraph_node_set_new): Likewise.
26982         (cgraph_node_set_add): Likewise.
26983         (varpool_node_set_new): Likewise.
26984         (varpool_node_set_add): Likewise.
26985
26986         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
26987         (duplicate_ipa_jump_func_array): Likewise.
26988         (ipa_read_node_info): Likewise.
26989
26990         * ipa-cp.c (ipcp_create_replace_map): Likewise.
26991
26992         * integrate.c (get_hard_reg_initial_val): Likewise.
26993
26994         * gimple.c (gimple_alloc_stat): Likewise.
26995         (gimple_build_omp_for): Likewise.
26996         (gimple_seq_alloc): Likewise.
26997         (gimple_copy): Likewise.
26998
26999         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
27000         (gsi_insert_after_without_update): Likewise.
27001
27002         * function.c (add_frame_space): Likewise.
27003         (insert_temp_slot_address): Likewise.
27004         (assign_stack_temp_for_type): Likewise.
27005         (allocate_struct_function): Likewise.
27006         (types_used_by_var_decl_insert): Likewise.
27007
27008         * except.c (init_eh_for_function): Likewise.
27009         (gen_eh_region): Likewise.
27010         (gen_eh_region_catch): Likewise.
27011         (gen_eh_landing_pad): Likewise.
27012         (add_call_site): Likewise.
27013
27014         * emit-rtl.c (get_mem_attrs): Likewise.
27015         (get_reg_attrs): Likewise.
27016         (start_sequence): Likewise.
27017         (init_emit): Likewise.
27018
27019         * dwarf2out.c (new_cfi): Likewise.
27020         (queue_reg_save): Likewise.
27021         (dwarf2out_frame_init): Likewise.
27022         (new_loc_descr): Likewise.
27023         (find_AT_string): Likewise.
27024         (new_die): Likewise.
27025         (add_var_loc_to_decl): Likewise.
27026         (clone_die): Likewise.
27027         (clone_as_declaration): Likewise.
27028         (break_out_comdat_types): Likewise.
27029         (new_loc_list): Likewise.
27030         (loc_descriptor): Likewise.
27031         (add_loc_descr_to_each): Likewise.
27032         (add_const_value_attribute): Likewise.
27033         (tree_add_const_value_attribute): Likewise.
27034         (add_comp_dir_attribute): Likewise.
27035         (add_name_and_src_coords_attributes): Likewise.
27036         (lookup_filename): Likewise.
27037         (store_vcall_insn): Likewise.
27038         (dwarf2out_init): Likewise.
27039
27040         * dbxout.c (dbxout_init): Likewise.
27041
27042         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
27043
27044         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
27045
27046         * config/score/score7.c (score7_output_external): Likewise.
27047
27048         * config/score/score3.c (score3_output_external): Likewise.
27049
27050         * config/s390/s390.c (s390_init_machine_status): Likewise.
27051
27052         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
27053         (rs6000_init_machine_status): Likewise.
27054         (output_toc): Likewise.
27055
27056         * config/pa/pa.c (pa_init_machine_status): Likewise.
27057         (get_deferred_plabel): Likewise.
27058
27059         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
27060
27061         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
27062
27063         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
27064
27065         * config/mep/mep.c (mep_init_machine_status): Likewise.
27066         (mep_note_pragma_flag): Likewise.
27067
27068         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
27069
27070         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
27071
27072         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
27073
27074         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
27075         (i386_pe_maybe_record_exported_symbol): Likewise.
27076
27077         * config/i386/i386.c (get_dllimport_decl): Likewise.
27078         (ix86_init_machine_status): Likewise.
27079         (assign_386_stack_local): Likewise.
27080
27081         * config/frv/frv.c (frv_init_machine_status): Likewise.
27082
27083         * config/darwin.c (machopic_indirection_name): Likewise.
27084
27085         * config/cris/cris.c (cris_init_machine_status): Likewise.
27086
27087         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
27088
27089         * config/avr/avr.c (avr_init_machine_status): Likewise.
27090
27091         * config/arm/arm.c (arm_init_machine_status): Likewise.
27092
27093         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
27094         (alpha_need_linkage): Likewise.
27095         (alpha_use_linkage): Likewise.
27096
27097         * cgraph.c (cgraph_allocate_node): Likewise.
27098         (cgraph_create_edge_1): Likewise.
27099         (cgraph_create_indirect_edge): Likewise.
27100         (cgraph_add_asm_node): Likewise.
27101
27102         * cfgrtl.c (init_rtl_bb_info): Likewise.
27103
27104         * cfgloop.c (alloc_loop): Likewise.
27105         (rescan_loop_exit): Likewise.
27106
27107         * cfg.c (init_flow): Likewise.
27108         (alloc_block): Likewise.
27109         (unchecked_make_edge): Likewise.
27110
27111         * c-parser.c (c_parse_init): Likewise.
27112         (c_parse_file): Likewise.
27113
27114         * c-decl.c (bind): Likewise.
27115         (record_inline_static): Likewise.
27116         (push_scope): Likewise.
27117         (make_label): Likewise.
27118         (lookup_label_for_goto): Likewise.
27119         (finish_struct): Likewise.
27120         (finish_enum): Likewise.
27121         (c_push_function_context): Likewise.
27122
27123         * bitmap.c (bitmap_element_allocate): Likewise.
27124         (bitmap_gc_alloc_stat): Likewise.
27125
27126         * alias.c (record_alias_subset): Likewise.
27127         (init_alias_analysis): Likewise.
27128
27129 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
27130
27131         * fold-const.c (fold_comparison): Remove redundant parenthesis.
27132         * tree-inline.c (expand_call_inline): Pass translated return value of
27133         cgraph_inline_failed_string to diagnostic function.
27134
27135 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
27136             Shujing Zhao  <pearly.zhao@oracle.com>
27137
27138         PR c/37724
27139         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
27140         implicit bad conversions is initialization.
27141         (error_init): Use gmsgid instead of msgid for argument name and change
27142         the call for error.
27143         (pedwarn_init): Use gmsgid instead of msgid for argument name and
27144         change the call for pedwarn.
27145         (warning_init): Use gmsgid instead of msgid for argument name and
27146         change the call for warning.
27147
27148 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
27149
27150         * config/mips/mips-protos.h (mips_print_operand): Delete.
27151         (mips_print_operand_address): Delete.
27152         * config/mips/mips.h (mips_print_operand_punct): Delete.
27153         (PRINT_OPERAND): Delete.
27154         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
27155         (PRINT_OPERAND_ADDRESS): Delete.
27156         * config/mips/mips.c (mips_print_operand_punct): Make static.
27157         (mips_print_operand_address): Make static.
27158         (mips_print_operand): Make static.  Call
27159         mips_print_operand_punct_valid_p.
27160         (mips_print_operand_punct_valid_p): New function.
27161         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
27162         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
27163
27164 2010-06-07  Jan Hubicka  <jh@suse.cz>
27165
27166         PR middle-end/44454
27167         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
27168         are allocated.
27169
27170 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
27171
27172         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
27173         name of RECORD.
27174
27175 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27176
27177         * doc/sourcebuild.texi (Effective-Target Keywords, Other
27178         attributes): Document gas.
27179
27180 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
27181
27182         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
27183         <TYPE_LEA>: Split instruction.
27184         <default>: Remove alternative 2 handling.
27185         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
27186         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
27187         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
27188
27189         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
27190         (ashift_zext lea splitter): Use DImode for multiplication.
27191
27192         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
27193         to generate addition.
27194
27195 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
27196
27197         * common.opt (fira-verbose): Use Var.
27198         (fpcc-struct-return): Use Init instead of VarExists.
27199         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
27200         toplev.c.
27201         * flags.h (flag_signed_char, flag_short_enums,
27202         flag_pcc_struct_return, flag_ira_verbose,
27203         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
27204         * toplev.c (flag_detailed_statistics, flag_signed_char,
27205         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
27206         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
27207         * toplev.h (flag_crossjumping, flag_if_conversion,
27208         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
27209         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
27210         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
27211         flag_cprop_registers, time_report, flag_ira_loop_pressure,
27212         flag_ira_coalesce, flag_ira_move_spills,
27213         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
27214
27215 2010-06-07  Jan Hubicka  <jh@suse.cz>
27216
27217         * df-core.c (df_analyze_problem): Do verification after allocation.
27218
27219         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
27220         (df_lr_alloc): Initialize problem data; move bitmaps to
27221         lr_bitmaps obstack.
27222         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
27223         (df_lr_verify_solution_start): Do not initialize problem data;
27224         allocate bitmaps in lr_bitmaps.
27225         (df_lr_verify_solution_end): Do not free problem data.
27226
27227 2010-06-07  Jan Hubicka  <jh@suse.cz>
27228
27229         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
27230         if caller is noreturn.
27231         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
27232         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
27233         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
27234         * ipa-pure-const.c (check_decl): Add IPA parameter.
27235         (state_from_flags): New function.
27236         (better_state, worse_state): New functions.
27237         (check_call): When in IPA mode, do not care about callees.
27238         (check_load, check_store): Update.
27239         (check_ipa_load, check_ipa_store): New.
27240         (check_stmt): When in IPA mode, use IPA checkers.
27241         (analyze_function): Use state_from_flags.
27242         (propagate): Check indirect edges and references.
27243
27244 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
27245
27246         PR rtl-optimization/44404
27247         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
27248         of count_occurrences to see if it's safe to modify mem_insn.
27249
27250 2010-06-07  Richard Guenther  <rguenther@suse.de>
27251
27252         * gimplify.c (gimplify_cleanup_point_expr): For empty body
27253         and EH-only cleanup drop the cleanup instead of inserting it
27254         unconditionally.
27255
27256 2010-06-07  Ira Rosen  <irar@il.ibm.com>
27257
27258         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
27259         documentation.
27260         * targhooks.c (default_builtin_vectorization_cost): New function.
27261         * targhooks.h (default_builtin_vectorization_cost): Declare.
27262         * target.h (enum vect_cost_for_stmt): Define.
27263         (builtin_vectorization_cost): Change argument and comment.
27264         * tree-vectorizer.h: Remove cost model macros.
27265         * tree-vect-loop.c: Include target.h.
27266         (vect_get_cost): New function.
27267         (vect_estimate_min_profitable_iters): Replace cost model macros with
27268         calls to vect_get_cost.
27269         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
27270         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
27271         default implementation.
27272         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
27273         calls to target hook builtin_vectorization_cost.
27274         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
27275         Likewise.
27276         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
27277         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
27278         implementation to return costs.
27279         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
27280         * config/spu/spu.h: Remove vectorizer cost model macros.
27281         * config/i386/i386.h: Likewise.
27282         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
27283         a call to target hook builtin_vectorization_cost.
27284
27285 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
27286
27287         PR target/44319
27288         * config/i386/i386.c (override_options): Turn zee pass on for level 2
27289         and above and defer till target is known.
27290         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
27291         turn off otherwise.
27292
27293 2010-05-25  Jan Hubicka  <jh@suse.cz>
27294
27295         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
27296         (df_compact_blocks): Likewise.
27297         * df.h (struct df): Turn hardware_regs_used,
27298         regular_block_artificial_uses, eh_block_artificial_uses,
27299         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
27300         bitmap_head.
27301         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
27302         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
27303         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
27304         df_scan_blocks, df_insn_delete, df_insn_rescan,
27305         df_insn_rescan_debug_internal, df_insn_rescan_all,
27306         df_process_deferred_rescans, df_process_deferred_rescans,
27307         df_notes_rescan, df_get_call_refs, df_get_call_refs,
27308         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
27309         df_record_entry_block_defs, df_record_exit_block_uses,
27310         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
27311         df_scan_verify): Update.
27312
27313 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27314
27315         PR c++/44188
27316         * c-common.c (is_typedef_decl): Move this definition ...
27317         * tree.c (is_typedef_decl): ... here.
27318         (typdef_variant_p): Move definition here from cp/tree.c.
27319         * c-common.h (is_typedef_decl): Move this declaration ...
27320         * tree.h (is_typedef_decl): ... here.
27321         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27322         * dwarf2out.c (is_naming_typedef_decl): New function.
27323         (gen_tagged_type_die): Split out of ...
27324         (gen_type_die_with_usage): ... this function. When an anonymous
27325         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27326         is emitted for the typedef.
27327         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27328         anonymous tagged types.
27329
27330 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27331
27332         PR c/20000
27333         * c-decl.c (grokdeclarator): Delete warning.
27334
27335 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
27336
27337         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
27338         newly built CALL_EXPR.
27339         * tree-profile.c (tree_profiling): Don't profile functions produced
27340         for built-in stuff.
27341
27342 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
27343
27344         PR bootstrap/44427
27345         PR bootstrap/44428
27346         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
27347         endianness-independent.
27348
27349 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
27350
27351         * c-common.c: Move to c-family/.
27352         * c-common.def: Likewise.
27353         * c-common.h: Likewise.
27354         * c-cppbuiltin.c: Likewise.
27355         * c-dump.c: Likewise.
27356         * c-format.c: Likewise.
27357         * c-format.h : Likewise.
27358         * c-gimplify.c: Likewise.
27359         * c-lex.c: Likewise.
27360         * c-omp.c: Likewise.
27361         * c.opt: Likewise.
27362         * c-opts.c: Likewise.
27363         * c-pch.c: Likewise.
27364         * c-ppoutput.c: Likewise.
27365         * c-pragma.c: Likewise.
27366         * c-pragma.h: Likewise.
27367         * c-pretty-print.c: Likewise.
27368         * c-pretty-print.h: Likewise.
27369         * c-semantics.c: Likewise.
27370         * stub-objc.c: Likewise.
27371
27372         * gengtype.c (get_file_langdir): Special-case files in c-family/.
27373         (get_output_file_with_visibility): Fix name for c-common.h.
27374         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
27375
27376         * c-tree.h: Update include path for moved files.
27377         * c-lang.c: Likewise.
27378         * c-lang.h: Likewise.
27379         * c-parser.c: Likewise.
27380         * c-convert.c: Likewise.
27381         * c-decl.c: Likewise.
27382         * c-objc-common.c: Likewise.
27383         * configure.ac: Make sure c-family/ exists in the build directory.
27384         * configure: Regenerate.
27385         * Makefile.in: Update paths for moved files.  Regroup files per
27386         location and update dependencies.  Move generated_files down after
27387         ALL_GTFILES_H.
27388
27389         * config/spu/spu-c.c: Update paths for moved files.
27390         * config/mep/mep-pragma.c: Likewise.
27391         * config/darwin-c.c: Likewise.
27392         * config/i386/msformat-c.c: Likewise.
27393         * config/i386/i386-c.c: Likewise.
27394         * config/avr/avr-c.c: Likewise.
27395         * config/sol2-c.c: Likewise.
27396         * config/ia64/ia64-c.c: Likewise.
27397         * config/rs6000/rs6000-c.c: Likewise.
27398         * config/arm/arm.c: Likewise.
27399         * config/arm/arm-c.c: Likewise.
27400         * config/h8300/h8300.c: Likewise.
27401         * config/v850/v850-c.c: Likewise.
27402
27403         * config/t-darwin: Fix dependencies for moved files.
27404         * config/t-sol2: Fix dependencies for moved files.
27405         * config/mep/t-mep: Fix dependencies for moved files.
27406         * config/ia64/t-ia64: Fix dependencies for moved files.
27407         * config/rs6000/t-rs6000: Fix dependencies for moved files.
27408         * config/v850/t-v850: Fix dependencies for moved files.
27409         * config/v850/t-v850e: Fix dependencies for moved files.
27410
27411         * config/m32c/m32c-pragma.c
27412
27413         * po/exgettext: Look in c-family/ also.
27414
27415 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
27416
27417         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
27418         (mark_control_dependent_edges_necessary): Call it instead of marking
27419         the last statement manually.
27420         (propagate_necessity): Likewise.
27421
27422 2010-06-05  Jan Hubicka  <jh@suse.cz>
27423
27424         * basic-block.h (compute_dominance_frontiers): Updated.
27425         (compute_idf): Likewise.
27426
27427         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
27428         for dominance frontiers.
27429         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
27430         (insert_updated_phi_nodes_for): Likewise.
27431         (update_ssa): Likewise.
27432         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27433         (compute_dominance_frontiers): Likewise.
27434         (compute_idf): Likewise.
27435         * df-problems.c (df_md_local_compute): Likewise.
27436
27437 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
27438
27439         * target.h (struct gcc_target): Add memory_move_cost field.
27440         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
27441         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
27442         * targhooks.c (default_memory_move_cost): New function.
27443         * targhooks.h (default_memory_move_cost): Declare function.
27444         * reload.h (memory_move_cost): Declare.
27445         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27446         * reginfo.c (memory_move_cost): New function.
27447         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27448         * ira.h (ira_memory_move_cost): Update comment.
27449         * ira.c (ira_memory_move_cost): Update comment.
27450         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
27451         with memory_move_cost.
27452         * postreload.c (reload_cse_simplify_set): (Ditto.).
27453         * reload1.c (choose_reload_regs): (Ditto.).
27454         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
27455         (MEMORY_MOVE_COST):  Revise documentation.
27456
27457         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
27458         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
27459         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
27460         type of 'in' argument to bool.
27461         (TARGET_MEMORY_MOVE_COST): Define.
27462
27463 2010-06-05  Jan Hubicka  <jh@suse.cz>
27464
27465         * ipa-pure-const.c (propagate): Fix typo in handling of functions
27466         that cannot return.  Be more careful when merging the results with
27467         previously known ones.
27468
27469 2010-06-05  Matthias Klose  <doko@ubuntu.com>
27470
27471         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
27472         function to add the -iplugindir option.
27473         (find_plugindir_spec_function): Add new declaration and function.
27474         (static_spec_func): Use it for "find-plugindir".
27475
27476 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
27477
27478         PR c++/44361
27479         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
27480         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
27481         statement expression.
27482
27483 2010-06-05  Jan Hubicka  <jh@suse.cz>
27484
27485         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
27486         (df_rd_problem_data): Convert sparse_invalidated_by_call,
27487         dense_invalidated_by_call to bitmap head.
27488         (df_rd_alloc, df_rd_bb_local_compute_process_def,
27489         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
27490         df_rd_start_dump, df_lr_verify_transfer_functions,
27491         df_live_verify_transfer_functions, df_chain_create_bb,
27492         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
27493         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
27494         df_simulate_one_insn_forwards, df_md_alloc,
27495         df_md_bb_local_compute_process_def,
27496         df_md_bb_local_compute_process_def, df_md_local_compute,
27497         df_md_transfer_function df_md_free): Update.
27498
27499 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
27500
27501         PR c/44322
27502         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
27503         target type for ADDR_EXPR; require no changes to qualifiers except
27504         for function types.
27505         * c-tree.h (c_build_type_variant): Remove.
27506
27507 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27508
27509         * genautomata.c (get_excl_set): Do work per element, not per char.
27510         (check_presence_pattern_sets): Similar.
27511         (check_absence_pattern_sets): Similar.
27512
27513 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27514
27515         * genautomata.c (curr_state_pass_num): Delete.
27516         (min_issue_delay_pass_states): Delete.
27517         (min_issue_delay): Delete.
27518         (initiate_min_issue_delay_pass_states): Delete.
27519         (output_min_issue_delay_table): Compute min_issue_delay_vect
27520         using a breadth-first search variant.
27521         (output_tables): Don't call initiate_min_issue_delay_pass_states.
27522
27523 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
27524
27525         PR boostrap/44421
27526         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
27527         (df_byte_lr_bb_local_compute): Likewise.
27528
27529 2010-06-03  Jason Merrill  <jason@redhat.com>
27530
27531         Implement noexcept operator (5.3.7)
27532         * c-common.c (c_common_reswords): Add noexcept.
27533         * c-common.h (enum rid): Add RID_NOEXCEPT.
27534
27535 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
27536
27537         * config/darwin-driver.c (darwin_default_min_version): Use
27538         GCC-specific formats in diagnostics.
27539         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
27540         diagnostics.
27541         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
27542         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
27543         eval_spec_function, handle_braces, process_brace_body, main,
27544         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
27545         getenv_spec_function, compare_version_strings,
27546         version_compare_spec_function): Use GCC-specific formats in
27547         diagnostics.
27548
27549 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27550
27551         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
27552         that operand 0 and operand 1 are equal.
27553         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
27554         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
27555         and operand 1 are equal.
27556         <default>: Ditto.  Remove ??? comment.
27557         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
27558         and operand 1 are equal.
27559         <default>: Ditto.  Remove ??? comment.
27560         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
27561         are equal.
27562         (*add<mode>_4) <default>: Ditto.
27563         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
27564
27565 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
27566
27567         * config/i386/i386-protos.h (ix86_print_operand): Declare.
27568         * config/i386/i386.c (ix86_print_operand): Make non-static.
27569         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
27570         * output.h (output_operand): Declare.
27571         * final.c (output_operand): Make non-static.
27572
27573 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
27574
27575         PR rtl-optimization/44013
27576         * sched-deps.c (add_dependence_list_and_free): Don't free lists
27577         when processing debug insns.
27578
27579         PR debug/41371
27580         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
27581         recursing.  Check that recursion is bounded.  Rename inner var
27582         to avoid hiding incoming argument.
27583
27584 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27585
27586         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
27587         operands[2] == 255.
27588         (*addqi_3): Ditto.
27589         (*addqi_4): Ditto.
27590         (*addqi_5): Ditto.
27591         (*addqi_ext_1_rex64): Ditto.
27592         (*addqi_ext_1): Ditto.
27593
27594         (*addqi_4): Check for incdec_operand in QImode.
27595
27596         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
27597         using SWI mode iterator.
27598         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
27599         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
27600         mode iterator.
27601         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
27602         using SWI mode iterator.
27603
27604 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27605
27606         PR c/25880
27607         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
27608         * c-format.c (gcc_diag_flag_specs): Add hash.
27609         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
27610         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
27611         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
27612         pp_c_cv_qualifiers. Handle qualifiers spelling here.
27613         (pp_c_type_qualifier_list): Call the function above.
27614         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
27615         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
27616         (WARN_FOR_QUALIFIERS): New macro.
27617         (convert_for_assignment): Use it.
27618
27619 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
27620
27621         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
27622
27623 2010-06-04  Jan Hubicka  <jh@suse.cz>
27624
27625         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
27626         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
27627         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
27628         DF_BYTE_LR_OUT): Update for embedded bitmaps.
27629         * fwprop.c (single_def_use_enter_block): Likewise.
27630         * ddg.c (create_ddg_dep_from_intra_loop_link,
27631         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
27632         * loop-iv.c (latch_dominating_def): Likewise.
27633         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
27634         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
27635         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
27636         df_rd_transfer_function, df_rd_top_dump,
27637         df_rd_bottom_dump): Update.
27638         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
27639         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
27640         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
27641         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
27642         df_lr_verify_solution_start, df_lr_verify_solution_end,
27643         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
27644         df_live_free_bb_info, df_live_alloc, df_live_reset,
27645         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
27646         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
27647         df_live_verify_solution_start, df_live_verify_solution_end,
27648         df_live_verify_transfer_functions, df_chain_create_bb,
27649         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
27650         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27651         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27652         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
27653         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
27654         df_byte_lr_transfer_function, df_byte_lr_top_dump,
27655         df_byte_lr_bottom_dump, df_create_unused_note,
27656         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
27657         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
27658         df_md_transfer_function, df_md_init, df_md_confluence_0,
27659         df_md_confluence_n,
27660         df_md_top_dump, df_md_bottom_dump): Update.
27661         (struct df_lr_problem_data): Embedd bitmap headers.
27662
27663 2010-06-04  Jan Hubicka  <jh@suse.cz>
27664
27665         * dce.c (dce_process_block): Do not re-scan already marked
27666         instructions.
27667
27668 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
27669
27670         PR rtl-optimization/39871
27671         PR rtl-optimization/40615
27672         PR rtl-optimization/42500
27673         PR rtl-optimization/42502
27674         * ira.c (init_reg_equiv_memory_loc: New function.
27675         (ira): Call it twice.
27676         * reload.h (calculate_elim_costs_all_insns): Declare.
27677         * ira-costs.c: Include "reload.h".
27678         (regno_equiv_gains): New static variable.
27679         (init_costs): Allocate it.
27680         (finish_costs): Free it.
27681         (ira_costs): Call calculate_elim_costs_all_insns.
27682         (find_costs_and_classes): Take estimated elimination costs
27683         into account.
27684         (ira_adjust_equiv_reg_cost): New function.
27685         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
27686         * reload1.c (init_eliminable_invariants, free_reg_equiv,
27687         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
27688         (elim_bb): New static variable.
27689         (reload): Move code out of here into init_eliminable_invariants and
27690         free_reg_equiv.  Call them.
27691         (calculate_elim_costs_all_insns): New function.
27692         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
27693         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
27694         but call note_reg_elim_costly if we turned a valid memory address
27695         into an invalid one.
27696         * Makefile.in (ira-costs.o): Depend on reload.h.
27697
27698 2010-06-04  Julian Brown  <julian@codesourcery.com>
27699
27700         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
27701         for pool ranges.
27702
27703 2010-06-04  Richard Guenther  <rguenther@suse.de>
27704
27705         PR lto/41584
27706         * cgraph.h (struct varpool_node): Add lto_file_data field.
27707         * lto-cgraph.c (input_varpool_node): Initialize it.
27708
27709 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27710
27711         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
27712         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
27713         predicate in "type" attribute calculation.
27714         (*addsi_1_zext): Ditto.
27715         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
27716         (*addsi_2_zext): Ditto.
27717         (*add<mode>_3): Ditto.
27718         (*addsi_3_zext): Ditto.
27719         (*add<mode>_5): Ditto.
27720
27721 2010-06-03  Jan Hubicka  <jh@suse.cz>
27722
27723         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
27724         of bitmap_bit_p.
27725         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27726
27727 2010-06-03  Jan Hubicka  <jh@suse.cz>
27728
27729         * df-problems.c (df_create_unused_note, df_note_bb_compute):
27730         micro-optimize the checks when to add new note.
27731
27732 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
27733
27734         * final.c (output_asm_insn): Call
27735         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
27736         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
27737         (output_address): Call targetm.asm_out.print_operand_address.
27738         Update comments.
27739         * target.h (struct gcc_target): Add print_operand,
27740         print_operand_address, and print_operand_punct_valid_p fields.
27741         * targhooks.h (default_print_operand): Declare.
27742         (default_print_operand_address): Declare.
27743         (default_print_operand_punct_valid_p): Declare.
27744         * targhooks.c (default_print_operand): Define.
27745         (default_print_operand_address): Define.
27746         (default_print_operand_punct_valid_p): Define.
27747         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
27748         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
27749         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
27750         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
27751         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
27752         * vmsdbgout.c (addr_const_to_string): Update comment.
27753         * config/i386/i386.c (print_operand): Rename to...
27754         (ix86_print_operand): ...this.  Make static.
27755         (print_operand_address): Rename to...
27756         (ix86_print_operand_address): ...this.  Make static.  Call
27757         ix86_print_operand instead of PRINT_OPERAND.
27758         (ix86_print_operand_punct_valid_p): New function.
27759         (TARGET_PRINT_OPERAND): Define.
27760         (TARGET_PRINT_OPERAND_ADDRESS): Define.
27761         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
27762         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
27763         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
27764         (PRINT_OPERAND): Delete.
27765         (PRINT_OPERAND_ADDRESS): Delete.
27766         * config/i386/i386-protos.h (print_operand): Delete prototype.
27767         (print_operand_address): Delete prototype.
27768
27769 2010-06-03  Richard Guenther  <rguenther@suse.de>
27770
27771         PR tree-optimization/44403
27772         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
27773         Preserve pointer qualifiers.
27774         (vect_create_data_ref_ptr): Likewise.
27775
27776 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
27777
27778         PR c++/44294
27779         * defaults.h (MAX_FIXED_MODE_SIZE): New.
27780
27781         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
27782
27783 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
27784
27785         PR debug/44375
27786         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
27787         return false if merging the bbs would lead to goto_locus
27788         location being lost from the IL.
27789
27790 2010-06-03  Jan Hubicka  <jh@suse.cz>
27791             Jakub Jelinek  <jakub@redhat.com>
27792
27793         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
27794         set->regs[i] is NULL or has just one entry.
27795
27796 2010-06-03  Jan Hubicka  <jh@suse.cz>
27797
27798         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
27799         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
27800
27801 2010-06-03  Paul Brook  <paul@codesourcery.com>
27802
27803         * config/arm/arm.c (FL_TUNE): Define.
27804         (arm_default_cpu, arm_cpu_select): Remove.
27805         (all_cores): Populate core field.
27806         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
27807         (arm_find_cpu): New function.
27808         (arm_handle_option): Lookup cpu/architecture names.
27809         (arm_override_options): Cleanup mcpu/march/mtune handling.
27810         (arm_file_start): Ditto.
27811
27812 2010-06-03  Alan Modra  <amodra@gmail.com>
27813
27814         PR target/44169
27815         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
27816         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
27817         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
27818         (rs6000_emit_load_toc_table): Likewise.
27819
27820 2010-06-02  Jan Hubicka  <jh@suse.cz>
27821
27822         * passes.c (init_optimization_passes): Put ipa reference
27823         after ipa pure-const.
27824
27825 2010-06-02  Jan Hubicka  <jh@suse.cz>
27826
27827         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
27828         calls_read_all and calls_write_all.
27829         (get_reference_optimization_summary): Fix formatting.
27830         (is_proper_for_analysis): Check that decl is not readonly.
27831         (propagate_bits): Check CONST/PURE/noreturn flags.
27832         (ipa_init): Move all_module_statics to optimization_summary_obstack.
27833         (analyze_function): Ignore indirect edges.
27834         (copy_global_bitmap): For all module statics, do nothing.
27835         (generate_summary): Do not print calls_read_all/calls_write_all.
27836         (read_write_all_from_decl): Take node as argument; check
27837         cgraph_node_cannot_return.
27838         (propagate): Reorganize read_all/write_all computation;
27839         check indirect edges; check ecf flags; use all_module_statics
27840         in the results; do not free all_module_statics.
27841         (stream_out_bitmap): Handle all_module_statics.
27842         (ipa_reference_write_optimization_summary): Likewise; use
27843         varpool/cgraph encoders to get boundaries.
27844         (ipa_reference_read_optimization_summary): Read in all_module_statics;
27845         use it when possible.
27846
27847 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27848
27849         PR target/44218
27850         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
27851         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
27852
27853         * doc/extend.texi (powerpc builtins): Document vec_recip,
27854         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
27855
27856         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
27857         (rs6000_emit_swrsqrt): Ditto.
27858         (rs6000_emit_swdivsf): Delete.
27859         (rs6000_emit_swdivdf): Ditto.
27860         (rs6000_emit_swrsqrtsf): Ditto.
27861
27862         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
27863         describe the reciprocal estimate support for each type.
27864         (recip_options): Map -mrecip=<opt> into option bits.
27865         (gen_2arg_fn_t): New typedef for binary rtx gen function.
27866         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
27867         reciprocal estimate instructions.
27868         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
27869         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
27870         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
27871         cost information if -mdebug=cost or -mdebug=reg.
27872         (rs6000_override_options): Set -mrecip-precision for power6, and
27873         power7 machines.  If -mvsx or -mdfp, enable various options that
27874         came in previous instruction set ISAs, unless the option was
27875         explicitly disabled by the command line option.  Parse
27876         -mrecip=<opt> options.
27877         (rs6000_builtin_vectorized_function): Add support for vectorizing
27878         the reciprocal estimate builtins and expansions.
27879         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
27880         (bdesc_2arg): Add reciprocal estimate builtins.
27881         (bdesc_1arg): Add reciprocal square root estimate builtins.
27882         (rs6000_expand_builtin): Rewrite to use a switch statement,
27883         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
27884         (rs6000_init_builtins): Create declarations for reciprocal
27885         estimate builtins.
27886         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
27887         sized, prefer traditional floating point registers, if integer
27888         vector types, prefer altivec registers.  Don't actually look at
27889         the memory address any more.
27890         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
27891         builtins.
27892         (rs6000_load_constant_and_splat): New helper function to load up
27893         the constant for reciprocal estimate instructions.
27894         (rs6000_emit_madd): New helper function for generating
27895         multiply/add type instructions, based on the current switches.
27896         (rs6000_emit_msub): Ditto.
27897         (rs6000_emit_mnsub): Ditto.
27898         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
27899         replace a divide with a reciprocal estimate and fixup, adding
27900         support for machines with high precision and vectors.
27901         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
27902         low precision machines.
27903         (rs6000_emit_swdiv): New common function to be called to replace a
27904         division with reciprocal estimate and fixup.
27905         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
27906         for double and vector types.  Add support for high precision machines.
27907
27908         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
27909         the reciprocal estimate instructions can be generated.
27910         (TARGET_FRE): Ditto.
27911         (TARGET_FRSQRTES): Ditto.
27912         (TARGET_FRSQRTE): Ditto.
27913         (RS6000_RECIP_*): New macros for reciprocal estimate support.
27914
27915         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
27916         square root estimate on vectors.
27917         (re<mode>2): New insn for reciprocal division estimate on vectors.
27918
27919         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
27920         New builtin.
27921         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
27922         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
27923         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
27924         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
27925         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
27926         (RS6000_BUILTIN_RSQRT): Ditto.
27927         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
27928         floating point builtin.
27929
27930         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27931         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
27932         __RECIP_PRECISION__ based on the command line switches.
27933         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
27934
27935         * config/rs6000/rs6000.opt (-mrecip): Document add support for
27936         replacing division instructions with reciprocal estimate and fixup.
27937         (-mrecip=<opt>): New option.
27938         (-mrecip-precision): Ditto.
27939
27940         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
27941         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
27942         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
27943         precision scalar.
27944
27945         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
27946         (UNSPEC_VREFP): Ditto.
27947         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
27948         conterparts with regard to support of -mno-fused-madd and -ffast-math.
27949         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
27950         reciprocal estimate instructions to be generated.
27951         (altivec_vrefp): Ditto.
27952
27953         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
27954         estimate support.
27955         (rreg): New mode attribute for reciprocal estimate support.
27956         (recip<mode>3): New insn for division using reciprocal estimate
27957         and fixup builtins.
27958         (divide define_split): New define_split to convert floating point
27959         division to use reciprocal estimate if the user used the
27960         appropriate options and the split is run when we can add new
27961         pseudo registers for the fixup.
27962         (rsqrt<mode>2): New insn for reciprocal square root support.
27963         (recipsf3): Move into recip<mode>3.
27964         (recipdf3): Ditto.
27965         (fres): Use TARGET_FRES.
27966         (rsqrtsf2): Move into rsqrt<mode>2.
27967         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
27968         (copysignsf3): Add support for VSX.
27969         (fred): Use TARGET_FRE.
27970         (fred_fpr): Ditto.
27971         (rsqrtdf_internal1): New function for frsqrte instruciton.
27972
27973         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
27974         (vec_rsqrt): Ditto.
27975
27976 2010-06-03  Richard Guenther  <rguenther@suse.de>
27977
27978         PR middle-end/44291
27979         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
27980         (set_user_assembler_libfunc): Likewise.
27981
27982 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
27983
27984         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
27985         defaults.h.
27986         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
27987         to defaults.h
27988         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
27989         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
27990         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
27991         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
27992         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
27993         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
27994         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
27995         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
27996         * defaults.h: Updated for above mentioned changes.
27997
27998 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
27999
28000         * c-common.c: Remove header include of tm_p.h.
28001         * Makefile.in (c-common.o): Remove TM_P_H dependency.
28002
28003 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
28004
28005         * tree.h (struct tree_decl_map): New type.
28006         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
28007         (tree_decl_map_hash): New prototype.
28008         (debug_expr_for_decl, value_expr_for_decl): Change into
28009         tree_decl_map hashtab from tree_map.
28010         (init_ttree): Adjust initialization.
28011         (tree_decl_map_hash): New function.
28012         (decl_debug_expr_lookup, decl_debug_expr_insert,
28013         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
28014
28015 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28016
28017         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
28018         linker emulations.
28019         * configure: Regenerate.
28020         * config.in: Regenerate.
28021
28022         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
28023         (X86_64_EMULATION): Define.
28024         (TARGET_LD_EMULATION): Use them.
28025
28026         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
28027         (SPARC64_EMULATION): Define.
28028         (LINK_ARCH_SPEC): Use them.
28029
28030 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28031
28032         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
28033         smallest_mode_for_size for computing the precision types of new
28034         graphite IVs.  Do not call lang_hooks.types.type_for_size.
28035
28036 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28037
28038         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
28039         information.
28040         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
28041
28042 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28043
28044         PR middle-end/44363
28045         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
28046         return false instead.
28047
28048 2010-06-02  Jan Hubicka  <jh@suse.cz>
28049
28050         PR middle-end/44295
28051         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
28052         create new cgraph node to check callee.
28053
28054 2010-06-02  Richard Guenther  <rguenther@suse.de>
28055
28056         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
28057
28058 2010-06-02  Richard Guenther  <rguenther@suse.de>
28059
28060         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
28061         (lto_wrapper_cleanup): ... this.  Do not exit.
28062         (fatal): Adjust.  Exit here.
28063         (fatal_perror): Likewise.
28064         (fatal_signal): New function.
28065         (main): Set up signal handlers to cleanup temporary files.
28066         * Makefile.in (lto-wrapper.o): Adjust dependencies.
28067
28068 2010-06-02  Richard Guenther  <rguenther@suse.de>
28069
28070         PR tree-optimization/44377
28071         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
28072
28073 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28074
28075         * config/s390/2097.md (z10_fhex): Remove insn reservation.
28076         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
28077         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
28078         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
28079         instruction.
28080         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
28081
28082 2010-06-02  Jan Hubicka  <jh@suse.cz>
28083
28084         * bitmap.c (bitmap_descriptor): Add search_iter.
28085         (bitmap_find_bit): Increment it.
28086         (print_statistics): Print it.
28087
28088 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
28089
28090         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
28091         instead of gimple_build_call_vec.  Delete unnecessary local variable.
28092
28093 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
28094
28095         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
28096         change from yesterday.
28097
28098 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
28099
28100         * c-ada-spec.c: Clean up redundant includes.
28101
28102 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
28103
28104         * gimplify.c: Do not include except.h and optabs.h.
28105         (gimplify_body): Do not initialize RTL profiling.
28106         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
28107         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
28108         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
28109         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
28110         langhooks.h.
28111
28112         * tree-pretty-print.h: Include pretty-print.h.
28113         * gimple-pretty-print.h: Include pretty-print.h.
28114
28115         * tree-pretty-print.c: Do not include diagnostic.h.
28116         * tree-vrp.c: Likewise.
28117         * tree-tailcall.c: Likewise
28118         * tree-scalar-evolution.c: Likewise
28119         * tree-ssa-dse.c: Likewise
28120         * tree-chrec.c: Likewise
28121         * tree-ssa-sccvn.c: Likewise
28122         * tree-ssa-copyrename.c: Likewise
28123         * tree-nomudflap.c: Likewise
28124         * tree-call-cdce.c: Likewise
28125         * tree-stdarg.c: Likewise
28126         * tree-ssa-math-opts.c: Likewise
28127         * tree-nrv.c: Likewise
28128         * tree-ssa-sink.c: Likewise
28129         * tree-browser.c: Likewise
28130         * tree-ssa-loop-ivcanon.c: Likewise
28131         * tree-ssa-loop.c: Likewise
28132         * tree-parloops.c: Likewise
28133         * tree-ssa-address.c: Likewise
28134         * tree-ssa-ifcombine.c: Likewise
28135         * tree-if-conv.c: Likewise
28136         * tree-data-ref.c: Likewise
28137         * tree-affine.c: Likewise
28138         * tree-ssa-phiopt.c: Likewise
28139         * tree-ssa-coalesce.c: Likewise
28140         * tree-ssa-pre.c: Likewise
28141         * tree-ssa-live.c: Likewise
28142         * tree-predcom.c: Likewise
28143         * tree-ssa-forwprop.c: Likewise
28144         * tree-ssa-dce.c: Likewise
28145         * tree-ssa-ter.c: Likewise
28146         * tree-ssa-loop-prefetch.c: Likewise
28147         * tree-optimize.c: Likewise
28148         * tree-ssa-phiprop.c: Likewise
28149         * tree-object-size.c: Likewise
28150         * tree-outof-ssa.c: Likewise
28151         * tree-ssa-structalias.c: Likewise
28152         * tree-switch-conversion.c: Likewise
28153         * tree-ssa-reassoc.c: Likewise
28154         * tree-ssa-operands.c: Likewise
28155         * tree-vectorizer.c: Likewise
28156         * tree-vect-data-refs.c: Likewise
28157         * tree-vect-generic.c: Likewise
28158         * tree-vect-stmts.c: Likewise
28159         * tree-vect-patterns.c: Likewise
28160         * tree-vect-slp.c: Likewise
28161         * tree-vect-loop.c: Likewise
28162         * tree-ssa-loop-ivopts.c: Likewise
28163         * tree-ssa-loop-im.c: Likewise
28164         * tree-ssa-loop-niter.c: Likewise
28165         * tree-ssa-loop-unswitch.c: Likewise
28166         * tree-ssa-loop-manip.c: Likewise
28167         * tree-ssa-loop-ch.c: Likewise
28168         * tree-dump.c: Likewise
28169         * tree-complex.c: Likewise
28170
28171         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
28172         * tree-ssa-uninit.c: Likewise
28173         * tree-ssa-threadupdate.c: Likewise
28174         * tree-ssa-uncprop.c: Likewise
28175         * tree-ssa-ccp.c: Likewise
28176         * tree-ssa-dom.c: Likewise
28177         * tree-ssa-propagate.c: Likewise
28178         * tree-ssa-alias.c: Likewise
28179         * tree-dfa.c: Likewise
28180         * tree-cfgcleanup.c: Likewise
28181         * tree-sra.c: Likewise
28182         * tree-ssa-copy.c: Likewise
28183         * tree-ssa.c: Likewise
28184         * tree-profile.c: Likewise
28185         * tree-cfg.c: Likewise
28186         * tree-ssa-threadedge.c: Likewise
28187         * tree-vect-loop-manip.c: Likewise
28188
28189         * tree-inline.c: Do not include diagnostic.h and expr.h.
28190         Include rtl.h.
28191         (copy_decl_for_dup_finish): Do not use NULL_RTX.
28192
28193         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
28194         * tree-loop-distribution.c: Likewise.
28195
28196 2010-06-01  Jan Hubicka  <jh@suse.cz>
28197
28198         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
28199
28200 2010-06-01  Jan Hubicka  <jh@suse.cz>
28201
28202         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
28203         remove return value.
28204         (split_bbs_on_noreturn_calls) .... here.
28205         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
28206         * tree-flow.h (fixup_noreturn_call): New.
28207
28208 2010-06-01  Jan Hubicka  <jh@suse.cz>
28209
28210         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
28211
28212 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
28213
28214         * tree.h (build_nt_call_list): Delete.
28215         * tree.c (build_nt_call_list): Delete.
28216
28217 2010-06-01  Jan Hubicka  <jh@suse.cz>
28218
28219         * fwprop.c: Make emit-rtl.h include last.
28220         * rtlanal.c: Include emit-rtl.h.
28221         * genautomata.c: Output emit-rtl include into insn-automata.c
28222         * df-scan.c: Include emit-rtl.h.
28223         * haifa-sched.c: Indlude emit-rtl.h.
28224         * mode-switching.c: Indlude emit-rtl.h.
28225         * graph.c: Indlude emit-rtl.h.
28226         * sel-sched.c: Include emit-rtl.h.
28227         * sel-sched-ir.c: Include emit-rtl.h.
28228         * ira-build.c: Include emit-rtl.h.
28229         * emit-rtl.c (first_insn, last_insn): Remove defines.
28230         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
28231         Move to emit-rtl.h.
28232         (set_new_first_and_last_insn, get_last_insn_anywhere,
28233         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
28234         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
28235         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
28236         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
28237         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
28238         Use accessor functions.
28239         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
28240          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
28241         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
28242         mem_expr_equal_p): Move here from rtl.h.
28243         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
28244         Move here from emit-rtl.c; make inline.
28245         * cfglayout.h: Include emit-rtl.h.
28246         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
28247          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
28248         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
28249         mem_expr_equal_p, get_insns, set_first-insn,
28250         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
28251         * reg-stack.c: Include emit-rtl.h.
28252         * dce.c: Likewise.
28253
28254 2010-06-01  Jan Hubicka  <jh@suse.cz>
28255
28256         * cgraph.h (tree_function_versioning): Update prototype.
28257         (cgraph_function_versioning): Update prototype.
28258         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
28259         bitmap.
28260         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
28261         (cgraph_materialize_clone, save_inline_function_body): Update use of
28262         tree_function_versioning.
28263         * tree-inline.c (copy_bb): Look for previous copied block to link
28264         after; fix debug output.
28265         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
28266         (copy_body): Likewise.
28267         (expand_call_inline): Update use of copy_body.
28268         (tree_function_versioning): Update use of copy body; accept
28269         blocks_to_copy and new_entry.
28270
28271 2010-06-01  Jan Hubicka  <jh@suse.cz>
28272
28273         * gegenrtl.c: Remove unnecesary prototypes.
28274         (gendecl): Remove.
28275         (gendef): Produce static inline.
28276         (gencode): Remove.
28277         (main): Do not decode parameters; generate header only.
28278         * Makefile.in (genrtl.c): Remove.
28279
28280 2010-06-01  Jan Hubicka  <jh@suse.cz>
28281
28282         * tree-switch-conversion.c (build_one_array): Make it readonly.
28283
28284 2010-06-01  Richard Guenther  <rguenther@suse.de>
28285
28286         * optabs.c (init_optabs): Guard all accesses to reinit.
28287         * ipa-pure-const.c (propagate): Fix another typo.
28288         * opts.c (common_handle_option): Split assignment to bool.
28289         * c-opts.c (c_common_handle_option): Likewise.
28290
28291 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
28292             Matthew Gingell  <gingell@adacore.com>
28293
28294         * doc/invoke.texi: Mention -fdump-ada-spec.
28295         * tree-dump.c (dump_files): Add ada-spec.
28296         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
28297         * tree-pass.h (tree_dump_index): Add TDI_ada.
28298         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
28299         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
28300         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
28301         * c-decl.c: Include c-ada-spec.h.
28302         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
28303         functions.
28304         (c_write_global_declarations): Add handling of -fdump-ada-spec.
28305         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
28306         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
28307         * c-ada-spec.h, c-ada-spec.c: New files.
28308
28309 2010-06-01  Richard Guenther  <rguenther@suse.de>
28310
28311         PR lto/43853
28312         * ipa-pure-const.c (get_function_state): Hand back varying state
28313         if we do not have one.
28314         (has_function_state): New function.
28315         (duplicate_node_data): Adjust.
28316         (remove_node_data): Likewise.
28317         (pure_const_write_summary): Likewise.
28318         (propagate): Likewise.  Fix typo.
28319
28320 2010-06-01  Jan Hubicka  <jh@suse.cz>
28321
28322         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
28323         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
28324         (execute_all_ipa_transforms): Do not play with the states.
28325
28326 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
28327
28328         * config/arm/t-linux-androideabi: New.
28329         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
28330
28331 2010-06-01  Jan Hubicka  <jh@suse.cz>
28332
28333         * tree-inline.c (estimate_num_insns): For stdarg functions look
28334         into call statement to count cost of argument passing.
28335
28336 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
28337
28338         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
28339         argument for fprintf.
28340         (ix86_output_addr_diff_elt): Likewise.
28341         (x86_function_profiler): Likewise.
28342         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
28343         (LPREFIX): Likewise.
28344         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
28345
28346 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
28347
28348         PR target/44338
28349         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
28350         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
28351         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
28352         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
28353         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
28354         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
28355         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
28356         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
28357         TARGET_FUSED_MADD.
28358
28359 2010-05-31  Jan Hubicka  <jh@suse.cz>
28360
28361         * tree.h (tree_range_check_failed): Declare noreturn.
28362
28363 2010-05-31  Jan Hubicka  <jh@suse.cz>
28364
28365         * gimple.c (gimple_call_builtin_p): New function.
28366         * gimple.h (gimple_call_builtin_p): Declare.
28367         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
28368         to exit.
28369         (execute_warn_function_return): BUILT_IN_RETURN is return.
28370         (split_critical_edges): Return edges are not critical.
28371         (is_ctrl_altering_stmt): Builtin_in_return is altering.
28372         (gimple_verify_flow_info): Handle built_in_return.
28373         (execute_warn_function_return): Handle built_in_return.
28374         * ipa-pure-const.c (check_call): Ignore builtin_return.
28375
28376 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
28377
28378         PR middle-end/44337
28379         * expr.c (expand_assignment): Don't store anything for out-of-bounds
28380         array accesses with non-MEM.
28381
28382         PR tree-optimization/44182
28383         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
28384         newly needs to end a bb is followed by debug stmts, instead return
28385         true from the function at the end.
28386         (maybe_move_debug_stmts_to_successors): New function.
28387         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
28388
28389 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
28390
28391         PR target/44161
28392         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
28393
28394 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
28395
28396         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
28397         for nested functions in non-optimized compilation.
28398
28399 2010-05-31  Richard Guenther  <rguenther@suse.de>
28400
28401         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
28402
28403 2010-05-30  Jan Hubicka  <jh@suse.cz>
28404
28405         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
28406
28407 2010-05-30  Richard Guenther  <rguenther@suse.de>
28408
28409         PR lto/42975
28410         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
28411         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
28412         no longer needed.
28413
28414 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
28415
28416         * config/darwin.c (output_objc_section_asm_op): Add comment.
28417         (name_needs_quotes): Add '_' to list of valid comment chars.
28418         (machopic_output_function_base_name): Remove unneeded quotes.
28419         (darwin_encode_section_info): Adjust asm whitespace.
28420         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
28421         (ASM_OUTPUT_LOCAL): Ditto.
28422         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
28423         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
28424         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
28425
28426 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
28427
28428         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
28429         RS6000_OUTPUT_BASENAME unconditionally.
28430         (rs6000_output_function_epilogue): Likewise.
28431
28432 2010-05-30  Jan Hubicka  <jh@suse.cz>
28433
28434         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
28435         nodes.
28436
28437 2010-05-30  Richard Guenther  <rguenther@suse.de>
28438
28439         * tree-cfg.c (verify_gimple_assign_single): Implement
28440         verification for COND_EXPR rhs.
28441
28442 2010-05-30  Jan Hubicka  <jh@suse.cz>
28443
28444         * cgraph.h (cgraph_dump_file): Declare.
28445         * cgraphunit.c (cgraph_dump_file): Export.
28446         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
28447
28448 2010-05-30  Jan Hubicka  <jh@suse.cz>
28449
28450         * dwarf2out.c (reference_to_unused,
28451         premark_types_used_by_global_vars_helper): Avoid creation of new
28452         varpool nodes.
28453
28454 2010-05-30  Jan Hubicka  <jh@suse.cz>
28455
28456         * cgraph.h (cgraph_node_cannot_return,
28457         cgraph_edge_cannot_lead_to_return): New functions.
28458         * cgraph.c (cgraph_node_cannot_return,
28459         cgraph_edge_cannot_lead_to_return): Use them.
28460         * ipa-pure-const.c (pure_const_names): New static var.
28461         (check_call): Handle calls not leading to return.
28462         (pure_const_read_summary): Dump info read.
28463         (propagate): Dump info about propagation process; ignore side effects
28464         of functions not leading to exit; fix handling of pure functions.
28465
28466 2010-05-30  Jan Hubicka  <jh@suse.cz>
28467
28468         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
28469         for tail call epilogues.
28470
28471 2010-05-30  Jan Hubicka  <jh@suse.cz>
28472
28473         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
28474         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
28475         dump files.
28476
28477 2010-05-29  Jan Hubicka  <jh@suse.cz>
28478
28479         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
28480         node; remove references in node we no longer keep in cgrpah but need
28481         body of.
28482
28483 2010-05-29  Jan Hubicka  <jh@suse.cz>
28484
28485         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
28486
28487 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28488
28489         PR target/44165
28490         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
28491
28492 2010-05-29  Jan Hubicka  <jh@suse.cz>
28493
28494         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
28495         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
28496         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
28497         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
28498         debug_names_replaced_by, debug_update_ssa): Likewise.
28499         * sbitmap.c (debug_sbitmap): Likewise.
28500         * genrecog.c (debug_decision, debug_decision_list): Likewise.
28501         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
28502         debug_tree_chain): Likewise.
28503         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
28504         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
28505         * optabs.c (debug_optab_libfuncs): Likewise.
28506         (verify_loop_closed_ssa): Likewise.
28507         * value-prof.c (verify_histograms): Likewise.
28508         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
28509         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
28510         * cfghooks.c (verify_flow_info): Likewise.
28511         * fold-const.c (debug_fold_checksum): Likewise.
28512         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
28513         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
28514         Likewise.
28515         * omega.c (debug_omega_problem): Likewise.
28516         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
28517         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
28518         * dominance.c (verify_dominators, debug_dominance_info,
28519         debug_dominance_tree): Likewise.
28520         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
28521         * df_regno_debug, df_ref_debug,
28522         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
28523         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
28524         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
28525         * sel-sched.c (debug_state): Likewise.
28526         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
28527         Likewise.
28528         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
28529         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
28530         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
28531         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
28532         Likewise.
28533         * c-pretty-print.c (debug_c_tree): Likewise.
28534         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
28535         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
28536         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
28537         * ebitmap.c (debug_ebitmap): Likewise.
28538         * function.c (debug_find_var_in_block_tree): Likewise.
28539         * print-rtl.c (debug_rtx): Likewise.
28540         (debug_rtx_count): Likewise.
28541         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
28542         * stor-layout.c (debug_rli): Likewise.
28543         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
28544         * tree-data-ref.c (debug_data_references,
28545         debug_data_dependence_relations, debug_data_reference,
28546         debug_data_dependence_relation, debug_rdg_vertex,
28547         debug_rdg_component, debug_rdg): Likewise.
28548         * tree-affine.c (debug_aff): Likewise.
28549         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
28550         Likewise.
28551         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
28552         * emit-rtl.c (verify_rtl_sharing): Likewise.
28553         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
28554         debug_value_expressions): Likewise.
28555         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
28556         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
28557         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
28558         * cfglayout.c (verify_insn_chain): Likewise.
28559         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
28560         debug_clast_stmt, debug_generated_program): Likewise.
28561         * ggc-page.c (debug_print_page_list): Likewise.
28562         * tree-ssa-ter.c (debug_ter): Likewise.
28563         * graphite-dependences.c (debug_pddr): Likewise.
28564         * sched-deps.c (debug_ds): Likewise.
28565         * tree-ssa.c (verify_ssa): Likewise.
28566         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
28567         debug_scattering_functions, debug_iteration_domains, debug_pdr,
28568         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
28569         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
28570         * tree-inline.c (debug_find_tree): Likewise.
28571         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
28572         debug_ppl_powerset_matrix): Likewise.
28573         * var-tracking.c (debug_dv): Likewise.
28574         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
28575         * cfgloop.c (verify_loop_structure): Likewise.
28576         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
28577         * c-common.c (verify_sequence_points): Likewise.
28578         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
28579         debug_candidates, debug_rgn_dependencies): Likewise.
28580         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
28581         * debug_constraint_graph, debug_solution_for_var,
28582         debug_sa_points_to_info): Likewise.
28583         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
28584         Likewie.
28585         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
28586         debug_loops, debug_loop, debug_loop_num): Likewise.
28587         * passes.c (debug_pass): Likewise.
28588         (dump_properties): Likewise; add cfglayout property.
28589         (debug_properties): Likewise.
28590         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
28591         * varpool.c (debug_varpool): Likewise.
28592         * regcprop.c (debug_value_data): Likewise.
28593         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
28594         debug_immediate_uses_for): Likewise.
28595
28596 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28597
28598         PR bootstrap/44315
28599         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
28600         Filter out insn-flags.h.
28601
28602 2010-05-29  Jan Hubicka  <jh@suse.cz>
28603
28604         * cgraph.h (struct varpool_node_set_def,
28605         struct cgraph_node_set_def): Remove unused AUX pointer.
28606         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
28607         VEC_empty macro.
28608
28609 2010-05-29  Jan Hubicka  <jh@suse.cz>
28610
28611         PR middle-end/44324
28612         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
28613
28614 2010-05-29  Richard Guenther  <rguenther@suse.de>
28615
28616         * lto-streamer.c (cached_bp): New global variable.
28617         (bitpack_create): Return the cached bitpack, if available.
28618         (bitpack_delete): Clear and cache the bitpack, if appropriate.
28619         (bp_pack_value): Remove redundant asserts.
28620
28621 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28622
28623         PR middle-end/44306
28624         * tree-if-conv.c (is_true_predicate): New.
28625         (is_predicated): Use is_true_predicate.
28626         (add_to_predicate_list): Same.  Do not use unshare_expr.
28627         (add_to_dst_predicate_list): Same.
28628
28629 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28630
28631         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
28632         field on edges.
28633         (predicate_bbs): Same.
28634         (clean_predicate_lists): Same.
28635         (find_phi_replacement_condition): Do not AND the predicate from
28636         edge->aux.
28637
28638 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28639
28640         PR bootstrap/44315
28641         * Makefile.in (build/gencondmd.o): Add a missing `\'.
28642
28643 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28644
28645         PR target/44261
28646         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
28647         (negdf2): Adjust expander pattern and use negdf2_slow.
28648         (negsf2): Likewise.
28649
28650 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
28651
28652         * basic-block.h (struct control_flow_graph): Move last_label_uid field
28653         up.
28654         * df.h (struct df_base_ref): Move regno field up.
28655         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
28656         * expr.h (struct separate_ops): Move location field up.
28657         * optabs.h (struct optab_d): Move libcall_basename field down.
28658         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
28659         * config/i386/i386.h (struct machine_function): Convert call_abi field
28660         into a bitfield.  Move cfa field to the end of the structure.
28661
28662 2010-05-29  Jan Hubicka  <jh@suse.cz>
28663
28664         * varpool.c (varpool_get_node): Fix lookup.
28665
28666 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28667
28668         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
28669         RTL specific prototypes with #ifdef RTX_CODE.
28670         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
28671         * config/spu/t-spu-elf: Fix dependencies.
28672
28673         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
28674
28675 2010-05-29  Mike Stump  <mikestump@comcast.net>
28676
28677         PR bootstrap/44315
28678         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
28679         TM_H when building to avoid dependency loops.
28680
28681 2010-05-29  Jan Hubicka  <jh@suse.cz>
28682
28683         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
28684         refs and body; not the whole node for masters of materialized clones.
28685
28686 2010-05-29  Mike Stump  <mikestump@comcast.net>
28687
28688         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
28689
28690 2010-05-29  Jan Hubicka  <jh@suse.cz>
28691
28692         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
28693         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
28694         use of clone_function_name.
28695         * cgraph.h (cgraph_create_virtual_clone,
28696         cgraph_function_versioning): update prototypes.
28697         (clone_function_name): Declare.
28698         * ipa-cp.c (ipcp_insert_stage): Update call of
28699         cgraph_create_virtual_clone.
28700         * omp-low.c (create_omp_child_function_name): Use
28701         cgraph_create_virtual_clone.
28702         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
28703         (cgraph_function_versioning): Take SUFFIX argument; produce new name
28704         and make decl local.
28705
28706 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28707
28708         * vec.h: Include statistics.h
28709         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
28710         with VEC_H.
28711
28712 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28713
28714         * c-lex.c: Do not include c-tree.h.
28715         * c-pretty-print.c: Likewise.
28716         * c-opts.c: Likewise.
28717         * c-gimplify.c: Likewise.
28718         * c-common.c: Likewise.
28719         * c-dump.c: Likewise.  Include c-common.h.
28720
28721 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28722
28723         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
28724         before including diagnostic-core.h.
28725         (c_cpp_error): New prototype moved from c-tree.h.
28726         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
28727         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
28728         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
28729         (c_cpp_error): Prototype moved to c-common.h.
28730         * Makefile.in: Update dependency for C_COMMON_H.
28731
28732 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28733
28734         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
28735         * c-common.c (c_register_addr_space): Remove here.
28736         * c-decl.c (c_register_addr_space): Re-add here.
28737
28738 2010-05-28  Mike Stump  <mikestump@comcast.net>
28739
28740         * config/darwin-c.c: Remove c-tree.h include.
28741
28742 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28743
28744         * gcc.c: Include diagnostic.h.
28745         (error_count): Remove.  All users changed to use errorcount.
28746         (programname): Remove.  All users changed to use progname.
28747         (fancy_abort, internal_error, fatal_error, error, warning, inform,
28748         fnotice): Remove.
28749         (execute): Don't include "Internal error" and bug reporting
28750         information in argument of internal_error call.
28751         (process_command): Don't increment error_count after calling
28752         perror_with_name.
28753         (input_filename): Rename to gcc_input_filename.  All users
28754         changed.
28755         (main): Call diagnostic_initialize.  Register delete_temp_files
28756         with atexit.  Use seen_error to test for errors.
28757         * gcc.h: Include diagnostic-core.h.
28758         (fatal_error, error, warning): Remove.
28759         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
28760         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
28761         (gcc.o): Update dependencies.
28762
28763 2010-05-28  Jeff Law  <law@redhat.com>
28764
28765         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
28766         functions.
28767         * ira.h (ira_bad_reload_regno): Declare
28768         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
28769
28770         * ira-color.c (update_curr_costs): Free updated hard reg costs.
28771         (ira_reassign_conflict_allocnos): Remove bogus asserts.
28772         (allocno_reload_assign): Likewise.
28773
28774 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
28775
28776         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
28777         build1_stat.
28778
28779 2010-05-28  Richard Guenther  <rguenther@suse.de>
28780
28781         PR lto/44312
28782         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
28783         Stream fixed-point constants mode.
28784         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
28785         and TYPE_PRECISION.
28786         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
28787         Stream fixed-point constants mode.
28788         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
28789         and TYPE_PRECISION.
28790
28791 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28792
28793         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
28794         only place it was called from.
28795         (number_of_latch_executions): Do not return chrec_dont_know when the
28796         may_be_zero is a runtime condition: instead, return a COND_EXPR
28797         including the may_be_zero condition.
28798         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
28799         of nb_iterations.
28800         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
28801         COND_EXPRs.
28802
28803 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28804
28805         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
28806         generate COND_EXPRs for degenerate_phi_result.
28807
28808 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
28809
28810         PR middle-end/44293
28811         * tree-if-conv.c (if_convertible_loop_p): Check the
28812         if-convertibility of phi nodes in non predicated BBs.
28813
28814 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28815
28816         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
28817
28818 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28819
28820         PR driver/15303
28821         * gcc.c (inform, warning, inform): New functions.
28822         (fatal_ice): Rename to internal_error; change cmsgid parameter to
28823         gmsgid.  All callers changed.
28824         (notice): Rename to fnotice; add parameter fp.  All callers changed.
28825         (fatal_error): Rename to fatal_signal.  All users changed.
28826         (fatal): Rename to fatal_error; change cmsgid parameter to
28827         gmsgid.  All callers changed.
28828         (process_command): Use warning instead of error for warnings.
28829         (end_going_arg): Don't use _() around argument of error.
28830         (do_spec_1): Use inform for message from %n specs.  Use warning
28831         instead of error for warnings.
28832         (main): Use inform for comparison messages.  Use warning for
28833         message about unused linker input.
28834         (error): Increment error_count.  Print "error: ".
28835         * gcc.h (fatal): Change to fatal_error.
28836         (warning): Declare.
28837         * config/darwin-driver.c (darwin_default_min_version): Use warning
28838         instead of fprintf for warnings.
28839         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
28840
28841 2010-05-28  Julian Brown  <julian@codesourcery.com>
28842
28843         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
28844         (*thumb2_addsi3_compare0_scratch): New.
28845         * config/arm/constraints.md (Pv): New.
28846         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
28847         for ARM mode only.
28848         (*addsi3_compare0_scratch): Likewise.
28849
28850 2010-05-28  Jan Hubicka  <jh@suse.cz>
28851
28852         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
28853         check.
28854         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
28855         only on local statics.
28856
28857 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
28858
28859         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
28860
28861 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
28862
28863         PR bootstrap/44314
28864         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
28865         (OPTION_GLIBC): Define.
28866
28867 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
28868
28869         PR debug/41048
28870         * dwarf2out.c (double_int_type_size_in_bits): New function.
28871         (round_up_to_align): Change first argument and return value to
28872         double_int.
28873         (field_byte_offset): Work internally on double_ints.
28874
28875         PR target/43636
28876         * builtins.c (expand_movstr): Use a temporary pseudo instead
28877         of target even when target is not NULL and not const0_rtx, but
28878         fails movstr predicate.
28879         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
28880
28881 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28882
28883         * final.c (rest_of_clean_state): Use %m in errors instead of
28884         strerror (errno).
28885         * gengtype.c (read_input_list, close_output_files): Use xstrerror
28886         instead of strerror.
28887         * toplev.c (process_options): Use %m in errors instead of strerror
28888         (errno).
28889         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
28890         (errno).
28891
28892 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
28893
28894         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
28895         (ix86_canonical_va_list_type): Make static.  Add declaration.
28896         (ix86_enum_va_list): Make static.  Reindent.
28897         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
28898         (ix86_canonical_va_list_type): Ditto.
28899         (ix86_enum_va_list): Ditto.
28900
28901 2010-05-28  Richard Guenther  <rguenther@suse.de>
28902
28903         * lto-wrapper.c (run_gcc): With -save-temps generate a
28904         user-visible ltrans filename.  Fixup ltrans unit numbering.
28905
28906 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
28907
28908         * c-common.c (c_common_nodes_and_builtins): Replace use
28909         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
28910         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
28911         to ix86_enum_va_list.
28912         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
28913         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
28914         (TARGET_ENUM_VA_LIST_P): Add hook description.
28915         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
28916         * target.h (gcc_target): Add enum_va_list hook.
28917
28918         PR bootstrap/44299
28919         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
28920         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
28921         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
28922
28923 2010-05-28  Alan Modra  <amodra@gmail.com>
28924
28925         PR target/44266
28926         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
28927         emit_library_call machinery to set up __tls_get_addr calls.
28928
28929 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28930
28931         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
28932
28933 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
28934
28935         Revert fix for PR c++/44188
28936         * c-common.c (is_typedef_decl): Revert the moving of  this
28937         definition ...
28938         * tree.c (is_typedef_decl): ... here.
28939         (typdef_variant_p): Revert the moving of this  definition
28940         here from cp/tree.c.
28941         * c-common.h (is_typedef_decl): Revert the moving of this
28942         declaration ...
28943         * tree.h (is_typedef_decl): ... here.
28944         (typedef_variant_p): Revert the moving of this  declaration here
28945         from cp/cp-tree.h
28946         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
28947         (gen_tagged_type_die): Revert the splitting out of ...
28948         (gen_type_die_with_usage): ... this function. Revert the anonymous
28949         tagged type handling.
28950         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
28951         typedefs naming anonymous tagged types.
28952
28953 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
28954
28955         * config/rs6000/rs6000-modes.def (PSImode): Delete.
28956
28957 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
28958
28959         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
28960         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
28961         throughout.
28962         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
28963         "xer" to "ca".
28964         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
28965         XER_REGS to CA_REGS throughout.
28966         * config/rs6000/rs6000.h: Same.
28967         (ADDITIONAL_REGISTER_NAMES): Add "xer".
28968         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
28969         that mode_iterator "P" is the size for arithmetic carries as well.
28970         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
28971
28972 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
28973
28974         PR bootstrap/44255
28975         * combine.c (struct rtx_subst_pair): Define unconditionally.
28976         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
28977         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
28978         Call make_compound_operation on pair->to.
28979         (propagate_for_debug): Don't call make_compound_operation here.
28980         Always use simplify_replace_fn_rtx.
28981
28982 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
28983
28984         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
28985         * config/xtensa/xtensa.c (override_options): Check
28986           TARGET_FORCE_NO_PIC and set flag_pic.
28987         * config/xtensa/xtensa.opt: Document -mforce-no-pic
28988
28989 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
28990
28991         PR bootstrap/44299
28992         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
28993         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
28994
28995 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
28996
28997         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
28998         toplev.h.
28999         * diagnostic.c: Don't include toplev.h.
29000         (progname): Define.  Moved from toplev.c.
29001         (seen_error): New function.
29002         * diagnostic.h: Include diagnostic-core.h.
29003         (diagnostic_t, emit_diagnostic): Don't declare here.
29004         * toplev.c (progname): Move to toplev.c.
29005         (emit_debug_global_declarations, compile_file, finalize,
29006         do_compile, toplev_main): Use seen_error.
29007         * toplev.h: Include diagnostic-core.h.
29008         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
29009         internal_error, warning, warning_at, error, error_n, error_at,
29010         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
29011         verbatim, fnotice, progname): Move to diagnostic-core.h.
29012         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
29013         (expand_builtin_expect): Use seen_error.
29014         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
29015         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
29016         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
29017         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
29018         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
29019         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
29020         errorcount for errors.
29021         * c-opts.c (c_common_finish): Use seen_error.
29022         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
29023         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
29024         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
29025         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
29026         (get_coverage_counts): Use seen_error.
29027         * dwarf2out.c (dwarf2out_finish): Use seen_error.
29028         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
29029         gimplify_body): Use seen_error.
29030         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
29031         * ipa-pure-const.c (gate_pure_const): Use seen_error.
29032         * ipa-reference.c (gate_reference): Use seen_error.
29033         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
29034         * lambda-code.c: Include diagnostic-core.h instead of
29035         diagnostic.h.
29036         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
29037         * lto-compress.c: Include diagnostic-core.h instead of
29038         diagnostic.h.
29039         * lto-section-in.c: Include diagnostic-core.h instead of
29040         diagnostic.h.
29041         * lto-streamer-out.c: Include diagnostic-core.h instead of
29042         diagnostic.h.
29043         * lto-streamer.c: Include diagnostic-core.h instead of
29044         diagnostic.h.
29045         (gate_lto_out): Use seen_error.
29046         * matrix-reorg.c: Include diagnostic-core.h instead of
29047         diagnostic.h.
29048         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
29049         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
29050         (gate_expand_omp, lower_omp_1): Use seen_error.
29051         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
29052         (rest_of_decl_compilation, rest_of_type_compilation,
29053         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
29054         * tree-cfg.c (label_to_block_fn): Use seen_error.
29055         * tree-inline.c (optimize_inline_calls): Use seen_error.
29056         * tree-mudflap.c (mudflap_finish_file): Use
29057         seen_error.
29058         * tree-optimize.c (gate_all_optimizations,
29059         gate_all_early_local_passes, gate_all_early_optimizations): Use
29060         seen_error.
29061         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
29062         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
29063         (varpool_remove_unreferenced_decls,
29064         varpool_assemble_pending_decls): Use seen_error.
29065         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
29066         (TOPLEV_H, DIAGNOSTIC_H): Update.
29067         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
29068         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
29069         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
29070         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
29071         coverage.o, lambda-code.o): Update dependencies.
29072
29073 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
29074
29075         PR c++/44188
29076         * c-common.c (is_typedef_decl): Move this definition ...
29077         * tree.c (is_typedef_decl): ... here.
29078         (typdef_variant_p): Move definition here from cp/tree.c.
29079         * c-common.h (is_typedef_decl): Move this declaration ...
29080         * tree.h (is_typedef_decl): ... here.
29081         (typedef_variant_p): Move declaration here from cp/cp-tree.h
29082         * dwarf2out.c (is_naming_typedef_decl): New function.
29083         (gen_tagged_type_die): Split out of ...
29084         (gen_type_die_with_usage): ... this function. When an anonymous
29085         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
29086         is emitted for the typedef.
29087         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
29088         anonymous tagged types.
29089
29090 2010-05-27  Jason Merrill  <jason@redhat.com>
29091
29092         * print-tree.c (debug_vec_tree): New fn.
29093         (print_vec_tree): New fn.
29094         * tree.h: Declare them.
29095         * gdbinit.in (pvt): New command.
29096
29097         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
29098
29099         * gdbinit.in (pdd): New command.
29100
29101 2010-05-27  Jan Hubicka  <jh@suse.cz>
29102
29103         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
29104         (update_caller_keys): Return early if there are no callers;
29105         only update fibheap when decresing the key.
29106         (update_callee_keys): Avoid recursion.
29107         (decide_inlining_of_small_functions): When badness does not match;
29108         re-insert into fibheap.
29109
29110 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
29111
29112         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
29113         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
29114         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
29115         (ALL_HOST_OBJS): Now a union of the above two.
29116         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
29117         all files in ALL_HOST_FRONTEND_OBJS.
29118         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
29119
29120         * c-common.c: Pretend to be a backend file by undefining
29121         IN_GCC_FRONTEND (still need rtl.h here).
29122
29123 2010-05-27  Jan Hubicka  <jh@suse.cz>
29124
29125         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
29126         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
29127
29128 2010-05-27  Jan Hubicka  <jh@suse.cz>
29129
29130         * sched-ebb.c: Rename struct deps to struct deps_desc.
29131         * ddg.c: Likewise.
29132         * sel-sched-ir.c: Likewise.
29133         * sched-deps.c: Likewise.
29134         * sched-int.h: Likewise.
29135         * sched-rgn.c: Likewise.
29136
29137 2010-05-27  Jon Beniston  <jon@beniston.com>
29138
29139         PR 43726
29140         * config/lm32/lm32.h: Remove definition of
29141         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
29142
29143 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
29144
29145         PR lto/44230
29146         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
29147
29148 2010-05-27  Richard Guenther  <rguenther@suse.de>
29149
29150         PR tree-optimization/44284
29151         * tree-vect-stmts.c (vectorizable_assignment): Handle
29152         sign-changing conversions as simple copy.
29153
29154 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29155
29156         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
29157         Bionic C library.
29158         (__gthread_active_p): Check for pthread_create if compiling against
29159         Bionic C library.
29160
29161 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29162
29163         Support compilation for Android platform.  Reimplement -mandroid.
29164
29165         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
29166         (*android*): Set ANDROID_DEFAULT.
29167         (arm*-*-linux*): Include linux-android.h.
29168         (arm*-*-eabi*): Don't include previous -mandroid implementation.
29169         * config/arm/eabi.h: Remove, move Android-specific parts ...
29170         * config/linux-android.h: ... here.  New file.
29171         * config/arm/eabi.opt: Rename to ...
29172         * config/linux-android.opt: ... this.
29173         (mandroid): Allow -mno-android option.  Initialize based on
29174         ANDROID_DEFAULT.
29175         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
29176         Move logic to corresponding LINUX_TARGET_* macros.
29177         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
29178         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
29179         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
29180         Android definitions.
29181         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
29182         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
29183         Document.
29184
29185 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29186
29187         Add support for Bionic C library
29188
29189         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
29190         macro.
29191         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
29192         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
29193
29194         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
29195         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
29196         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
29197         to support multiple C libraries.  Handle Bionic.
29198         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
29199         (BIONIC_DYNAMIC_LINKER64): Define.
29200         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
29201         Update.
29202         (TARGET_HAS_SINCOS): Enable for Bionic.
29203
29204         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
29205         the last option specified on command line take effect.
29206         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
29207         (mbionic): New.
29208         (mglibc, muclibc): Update.
29209
29210         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
29211         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
29212         DEFAULT_LIBC.
29213
29214         * doc/invoke.texi (-mglibc, -muclibc): Update.
29215         (-mbionic): Document.
29216
29217 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29218
29219         * c-common.h (c_register_addr_space): Add prototype.
29220         (ADDR_SPACE_KEYWORD): Remove.
29221         * c-common.c (c_register_addr_space): New function.
29222         (c_addr_space_name): Reimplement.
29223         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
29224
29225         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
29226         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
29227
29228         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
29229         Remove TARGET_ADDR_SPACE_KEYWORDS.
29230
29231 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
29232
29233         * input.c: New file.
29234         * input.h (main_input_filename): Move declaration to toplev.h.
29235         * toplev.c (input_location, line_table): Move to input.c
29236         * toplev.h (main_input_filename): Move declaration from input.h.
29237         * tree.c (expand_location): Move to input.c.
29238         * Makefile.in (OBJS-common): Add input.o.
29239         (input.o): Add dependencies.
29240
29241 2010-05-27  Richard Guenther  <rguenther@suse.de>
29242
29243         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
29244         for non-existant files.
29245         (fork_execute): Mark args_name file as deleted.
29246
29247 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
29248
29249         PR bootstrp/44287
29250         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
29251         (narrow_signed_type): Likewise.
29252
29253 2010-05-26  Jan Hubicka  <jh@suse.cz>
29254
29255         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
29256         edge only when checking is enabled; check using former_clone_of;
29257         check inline clones too.
29258         (cgraph_materialize_clone): Record former_clone_of pointer.
29259         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
29260         combining redirections; dump args_to_skip bitmap
29261         (cgraph_materialize_all_clones): Do no redirection here.
29262         * ipa-inline.c (inline_transform): Do redirection here.
29263         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
29264         cheking only).
29265
29266 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29267
29268         * config/avr/avr-c.c: Do not include regs.h.
29269         Include cpplib.h for cpp_define and tree.h for c-common.h.
29270         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
29271         * config/avr/t-avr: Fix dependencies for avr-c.o.
29272
29273 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29274
29275         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
29276         string instead of SYMBOL_REF rtx.
29277         * rtl.h (set_stack_check_libfunc): Move prototype from here...
29278         * libfuncs.h: ...to here.  Adjust for explow.c change.
29279
29280 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29281
29282         * pretty-print.c: Don't include ggc.h.
29283         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
29284         (identifier_to_locale): Use them for allocation.
29285         * pretty-print.h (identifier_to_locale_alloc,
29286         identifier_to_locale_free): Declare.
29287         * toplev.c (alloc_for_identifier_to_locale): New.
29288         (general_init): Set identifier_to_locale_alloc and
29289         identifier_to_locale_free.
29290         * Makefile.in (pretty-print.o): Update dependencies.
29291
29292 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
29293
29294         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
29295         pointer types if they have different alignment or mode.
29296
29297 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
29298
29299         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29300         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29301         * config/sparc/sparc-protos.h (function_value): Remove declaration.
29302         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
29303         sparc_function_value_regno_p): New functions.
29304         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29305         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29306         (function_value): Rename to...
29307         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
29308         argument to 'outgoing'.
29309         (function_arg_record_value, function_arg_union_value,
29310         function_arg_vector_value): Update comment.
29311
29312 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
29313
29314         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
29315         (fde_needed_for_eh_p): New predicate.
29316         (output_call_frame_info): Use it throughout to decide whether FDEs
29317         are needed for EH purpose.
29318         (dwarf2out_begin_prologue): Reorder assignments.
29319
29320 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29321
29322         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
29323         special case loop->header.
29324         (is_predicated): New.
29325         (if_convertible_loop_p): Call it.
29326
29327 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29328
29329         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
29330         iterator in parameter.  Do not generate code during the analysis.
29331         (tree_if_convert_cond_stmt): Removed.
29332         (tree_if_convert_stmt): Removed.
29333         (predicate_bbs): New.
29334         (if_convertible_loop_p): Call predicate_bbs.
29335         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
29336         now contains all the analysis part.
29337
29338 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29339
29340         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
29341         statements in the analysis part.
29342         (tree_if_convert_stmt): Update comment.
29343         (remove_conditions_and_labels): New.
29344         (combine_blocks): Call remove_conditions_and_labels.
29345         (tree_if_conversion): Update comment.
29346
29347 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29348
29349         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
29350         than 2 predecessors or more than 2 successors.
29351
29352 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29353
29354         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
29355         of loops in which the data dependence analysis fails.
29356
29357 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29358
29359         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
29360         CDI_POST_DOMINATORS.
29361         (tree_if_conversion): Same.
29362
29363 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29364
29365         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
29366
29367 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29368
29369         * tree-if-conv.c: Update copyright years.  Fix comments.
29370         Fix indentation.
29371
29372 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
29373
29374         * builtin-types.def (BT_INT128): New primitive type.
29375         (BT_UINT128): Likewise.
29376         * c-common.c (c_common_r): Add __int128 keyword.
29377         (c_common_type_for_size): Handle __int128.
29378         (c_common_type_for_mode): Likewise.
29379         (c_common_signed_or_unsigned_type): Likewise.
29380         (c_common_nodes_and_builtins): Add builtin type
29381         if target supports 128-bit integer scalar.
29382         * c-common.h (enum rid): Add RID_INT128.
29383         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
29384         if target supports 128-bit integer scalar.
29385         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
29386         (finish_declspecs): Likewise.
29387         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
29388         (c_token_starts_declspecs): Likewise.
29389         (c_parser_declspecs): Likewise.
29390         (c_parser_attributes): Likewise.
29391         (c_parser_objc_selector): Likewise.
29392         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
29393         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
29394         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
29395         * tree.c (make_or_reuse_type): Likewise.
29396         (make_unsigned_type): Likewise.
29397         (build_common_tree_nodes_2): Likewise.
29398         * tree.h (enum integer_type_kind): Add itk_int128 and
29399         itk_unsigned_int128.
29400         (int128_integer_type_node): New define.
29401         (int128_unsigned_type_node): New define.
29402         * doc/extend.texi: Add documentation about __int128 type.
29403
29404 2010-05-26  Richard Guenther  <rguenther@suse.de>
29405
29406         * tree-ssa-sccvn.c (copy_nary): Adjust.
29407         (copy_phis): Rename to ...
29408         (copy_phi): ... this.  Adjust.
29409         (copy_references): Rename to ...
29410         (copy_reference): ... this.  Adjust.
29411         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
29412         result into the valid table.
29413
29414 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29415
29416         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
29417         insn-config.h, insn-codes.h, recog.h, and optabs.h.
29418
29419 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29420
29421         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
29422
29423 2010-05-26  Richard Guenther  <rguenther@suse.de>
29424
29425         * opts.c (common_handle_option): Handle OPT_Ofast.
29426
29427 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29428
29429         * diagnostic.c: Don't include opts.h.
29430         (permissive_error_option): Define.
29431         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
29432         for classify_diagnostic.  Don't use memset for
29433         classify_diagnostic.  Initialize new and recently added fields.
29434         (diagnostic_classify_diagnostic): Use context->n_opts instead of
29435         N_OPTS.
29436         (diagnostic_report_diagnostic): Pass context parameter to
29437         diagnostic_report_warnings_p.  Use option_enabled and option_name
29438         hooks from context.
29439         (emit_diagnostic): Use permissive_error_option.
29440         (permerror): Likewise.
29441         * diagnostic.h: Don't include options.h.
29442         (struct diagnostic_context): Add n_opts, opt_permissive,
29443         inhibit_warnings, warn_system_headers, option_enabled and
29444         option_name fields.  Change classify_diagnostic to a pointer.
29445         * opts-diagnostic.h: New file.
29446         * opts.c: Include opts-diagnostic.h.
29447         (common_handle_option): Set global_dc fields for -Wfatal-errors,
29448         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
29449         (option_name): New function.
29450         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
29451         (c_common_handle_option): Set global_dc->permissive for
29452         -fpermissive.
29453         * c-common.c (c_cpp_error): Save and restore
29454         global_dc->warn_system_headers, not variable warn_system_headers.
29455         * toplev.c: Include opts-diagnostic.h.
29456         (general_init): Update call to diagnostic_initialize.  Set
29457         global_dc->show_column, global_dc->option_enabled and
29458         global_dc->option_name.
29459         (process_options): Don't set global_dc fields here.
29460         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
29461         (diagnostic.o, opts.o, toplev.o): Update dependencies.
29462
29463 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
29464
29465         * config/picochip/picochip.md (movsi): Split a movsi from a
29466         const after reload.
29467
29468 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29469
29470         * ggc-zone.c: Update copyright year.
29471         (poison_region): Mark memory for Valgrind as undefined before
29472         memset () call and inaccessible afterwards.
29473         (ggc_pch_total_size): Change type of i to int.
29474
29475 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29476
29477         * ggc-common.c (ggc_free_overhead): Allow empty slot.
29478
29479 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29480
29481         * ggc-common.c: Update copyright year.
29482         (ggc_rlimit_bound): Remove prototype.  Compile only if
29483         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
29484         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
29485         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
29486         (ggc_min_heapsize_heuristic): Likewise.
29487
29488 2010-05-26  Richard Guenther  <rguenther@suse.de>
29489
29490         PR rtl-optimization/44164
29491         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
29492         no-common access-path disambiguation.
29493         (indirect_ref_may_alias_decl_p): Adjust.
29494         (indirect_refs_may_alias_p): Likewise.
29495         (refs_may_alias_p_1): Likewise.
29496
29497 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29498
29499         * c-typeck.c: Do not include expr.h.
29500
29501 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29502
29503         * rtl.h (decl_default_tls_model): Move prototype from here...
29504         * output.h: ...to here.
29505         * c-decl.c: Do not include rtl.h.
29506         * c-pragma.c: Likewise.
29507         * c-parser.c: Likewise.
29508         * c-gimplify.c: Likewise.  And also not hard-reg-set.
29509         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
29510         FIXME note for it.  Add a FIXME note for expr.h.
29511         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
29512         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
29513         defined.
29514
29515 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
29516
29517         PR target/44199
29518         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
29519         or total_size is larger than red zone size for non-V4 ABI, emit a
29520         stack_tie resp. frame_tie insn before stack pointer restore.
29521         * config/rs6000/rs6000.md (frame_tie): New insn.
29522
29523 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
29524
29525         * function.h (struct function): Add can_throw_non_call_exceptions bit.
29526         * lto-streamer-in.c (input_function): Stream it in.
29527         * lto-streamer-out.c (output_function): Stream it out.
29528         * function.c (allocate_struct_function): Set it.
29529         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
29530         for flag_non_call_exceptions.
29531         * cfgbuild.c (control_flow_insn_p): Likewise.
29532         (make_edges): Likewise.
29533         * cfgexpand.c (expand_stack_alignment): Likewise.
29534         * combine.c (distribute_notes): Likewise.
29535         * cse.c (cse_extended_basic_block): Likewise.
29536         * except.c (insn_could_throw_p): Likewise.
29537         * gcse.c (simple_mem): Likewise.
29538         * ipa-pure-const.c (check_call): Likewise.
29539         (check_stmt ): Likewise.
29540         * lower-subreg.c (lower-subreg.c): Likewise.
29541         * optabs.c (emit_libcall_block): Likewise.
29542         (prepare_cmp_insn): Likewise.
29543         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
29544         * postreload.c (rest_of_handle_postreload): Likewise.
29545         * reload1.c (reload_as_needed): Likewise.
29546         (emit_input_reload_insns): Likewise.
29547         (emit_output_reload_insns): Likewise.
29548         (fixup_abnormal_edges): Likewise.
29549         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
29550         * store-motion.c (find_moveable_store): Likewise.
29551         * tree-eh.c (stmt_could_throw_p): Likewise.
29552         (tree_could_throw_p): Likewise.
29553         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
29554         * config/arm/arm.c (arm_expand_prologue): Likewise.
29555         (thumb1_expand_prologue): Likewise.
29556         * config/rx/rx.md (cbranchsf4): Likewise.
29557         (cmpsf): Likewise.
29558         * config/s390/s390.c (s390_emit_prologue): Likewise.
29559         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
29560         (inline_forbidden_into_p): New predicate.
29561         (expand_call_inline): Use it to forbid inlining.
29562         (tree_can_inline_p): Likewise.
29563
29564 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29565
29566         * config/i386/i386-c.c: Do not include rtl.h.
29567         * config/i386/t-i386: Update dependencies.
29568
29569 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29570
29571         * attribs.c: Do not include rtl.h.
29572         * Makefile.in: Update dependencies.
29573
29574 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
29575
29576         * double-int.h (double_int_and): New.
29577         * combine.c (try_combine): Clean up, use double_int_* and
29578         immed_double_int_const functions.
29579
29580 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29581
29582         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
29583         stderr to /dev/null instead of grep -q.
29584         * configure: Regenerate.
29585
29586 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29587
29588         * Makefile.in (EXCEPT_H): Fix typo.
29589
29590 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
29591
29592         * ira-build.c (update_conflict_hard_reg_costs): New.
29593         (ira_build): Call update_conflict_hard_reg_costs.
29594
29595 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29596
29597         PR debug/41371
29598         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
29599         ENABLE_CHECKING.
29600         (intersect_loc_chains): Walk the s2var's loc_chain together
29601         with s1node chain as long as the locations are equal, don't
29602         call find_loc_in_1pdv in that case.
29603
29604         PR debug/42801
29605         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
29606         (copy_bind_expr): ... instead of here.
29607         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
29608         if the block hasn't been remapped.
29609         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
29610         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
29611
29612 2010-05-25  Richard Guenther  <rguenther@suse.de>
29613
29614         PR middle-end/44069
29615         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
29616         out-of-bounds array accesses.
29617
29618 2010-05-25  Richard Guenther  <rguenther@suse.de>
29619
29620         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
29621         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
29622         (run_gcc): Re-organize to make cleanup easier.
29623
29624 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29625
29626         * config/s390/s390.c (optimization_options): Fix and move the
29627         flag_prefetch_loop_arrays override ...
29628         (override_options): ... here.
29629
29630 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
29631
29632         * diagnostic.c: Don't include plugin.h.
29633         (diagnostic_report_diagnostic): Don't handle plugins specially
29634         here.  Pass context to internal_error callback.
29635         * diagnostic.h (struct diagnostic_context): Add context parameter
29636         to internal_error callback.
29637         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
29638         * plugin.h (struct diagnostic_context): Declare.
29639         (warn_if_plugins, plugins_internal_error_function): Declare.
29640         * toplev.c (general_init): Set global_dc->internal_error.
29641         * Makefile.in (diagnostic.o): Update dependencies.
29642
29643 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
29644
29645         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
29646         * config/rs6000/t-darwin64: New.
29647         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
29648         build crt2.
29649
29650 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
29651
29652         PR 44203
29653         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
29654         match the original (and intended) behaviour before r159557.  This
29655         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
29656         in two ways.
29657
29658 2010-05-25  Richard Guenther  <rguenther@suse.de>
29659
29660         * doc/invoke.texi: Document -Ofast.
29661         * target.h (struct gcc_target): Add handle_ofast.
29662         * target-def.h (TARGET_HANDLE_OFAST): Add.
29663         (TARGET_INITIALIZER): Adjust.
29664         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
29665         * common.opt (Ofast): Add.
29666
29667 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29668
29669         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
29670         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
29671
29672 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29673
29674         PR target/43610
29675         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
29676         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
29677         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
29678         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
29679
29680 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29681
29682         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
29683         DW_OP_minus with negated offset instead of DW_OP_plus.
29684         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
29685
29686 2010-05-25  Wei Guozhi  <carrot@google.com>
29687
29688         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
29689         tst instruction and a new alternative.
29690         * config/arm/constraints.md (Pu): New constraint.
29691
29692 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
29693
29694         * function.c (assign_stack_local_1): Initialize variable
29695         to avoid warning when bootstrapping at -O3.
29696
29697 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
29698
29699         * configure.ac (all_lang_makefiles): Remove everything related to it.
29700         * configure: Regenerate.
29701         * Makefile.in: Fix reference to ada Make-lang.in.
29702         Remove support for LANG_MAKEFILES.
29703
29704 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
29705             Sandra Loosemore  <sandra@codesourcery.com>
29706
29707         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
29708         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
29709         description.  Add arm_neon_fp16_ok.
29710         (Add Options): Add arm_neon and arm_neon_fp16.
29711
29712 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
29713
29714         * diagnostic.c: Don't include flags.h.
29715         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
29716         context parameters.  Check flags in the context passed as a parameter.
29717         (diagnostic_build_prefix): Add context parameter.  Check
29718         show_column flag in context.
29719         (diagnostic_action_after_output): Check fatal_errors flag in context.
29720         (diagnostic_report_current_module): Check show_column flag in context.
29721         (default_diagnostic_starter): Update call to
29722         diagnostic_build_prefix.
29723         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
29724         (emit_diagnostic): Pass context to permissive_error_kind.
29725         (permerror): Pass context to permissive_error_kind.
29726         * diagnostic.h (struct diagnostic_context): Add show_column,
29727         pedantic_errors, permissive and fatal_errors fields.
29728         (diagnostic_build_prefix): Update prototype.
29729         * langhooks.c
29730         * toplev.c (process_options): Set flags in global_dc from
29731         flag_show_column, flag_pedantic_errors, flag_permissive,
29732         flag_fatal_errors.
29733         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
29734         to diagnostic_build_prefix.
29735         * Makefile.in (diagnostic.o): Update dependencies.
29736
29737 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
29738
29739         * config/i386/ia32intrin.h (__crc32q): Define only if
29740         __SSE4_2__ is defined.
29741
29742 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
29743
29744         PR target/44132
29745         PR middle-end/43602
29746         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
29747         DECL_VISIBILITY_SPECIFIED.
29748         (emutls_decl): Set DECL_PRESERVE_P and copy
29749         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
29750         (emutls_finalize_control_var): New callback.
29751         (emutls_finish): Finalize emutls control variables.
29752         * toplev.c (compile_file): Move the call to emutls_finish ()
29753         before varpool_assemble_pending_decls ().
29754
29755 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
29756
29757         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
29758         added to the preprocessor condition.
29759
29760 2010-05-24  Paul Brook  <paul@codesourcery.com>
29761
29762         * gengtype-lex.l: Add HARD_REG_SET.
29763         * expr.c (expand_expr_real_1): Record writes to hard registers.
29764         * function.c (rtl_data): Add asm_clobbers.
29765         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
29766         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
29767         Use crtl->asm_clobbers.
29768
29769 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29770
29771         * doc/makefile.texi (Makefile): Mention stages 'profile'
29772         and 'feedback' for profiledbootstrap.
29773
29774 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
29775
29776         PR target/44245
29777         * config/i386/i386.c (def_builtin): Properly check
29778         OPTION_MASK_ISA_64BIT.
29779
29780 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
29781
29782         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
29783         typedefs with different but compatible types.  Allow duplicate
29784         typedefs with the same type except for pedantic non-C1X, but give
29785         warning for variably modified types.
29786         * c-typeck.c (tagged_types_tu_compatible_p,
29787         function_types_compatible_p, type_lists_compatible_p,
29788         comptypes_internal): Add parameter different_types_p; set
29789         *different_types_p for different but compatible types.  All
29790         callers changed.
29791         (comptypes_check_different_types): New.
29792         * c-tree.h (comptypes_check_different_types): Declare.
29793
29794 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
29795
29796         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
29797         * jump.c: Include basic-block.h.
29798         * profile.c: Likewise.
29799         * tree-profile.c: Likewise.
29800         * coverage.c: Likewise.
29801         * basic-block.h (optimize_function_for_size_p): Move to function.h.
29802         (optimize_function_for_speed_p): Likewise.
29803         * function.h (optimize_function_for_size_p,
29804         optimize_function_for_speed_p): Moved here from basic-block.h.
29805         * Makefile.in: Update dependencies.
29806
29807 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29808
29809         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
29810         before calling make; allow override through $MAKE.
29811         * doc/invoke.texi (Optimize Options): Document override.
29812
29813 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
29814
29815         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
29816         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29817         (rs6000_mode_dependent_address_ptr): Make static.
29818         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29819         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
29820         Remove.
29821
29822 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
29823
29824         PR target/43869
29825         * config/i386/i386.c: Make sure that the correct regparm is passed.
29826
29827 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
29828
29829         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
29830         * sbitmap.c: ...to here to internalize sbitmap element access.
29831         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
29832         Explain why basic-block.h is included.
29833         * function.h: Include tm.h for CUMULATIVE_ARGS.
29834         * Makefile.in: Update dependencies.
29835
29836 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
29837
29838         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
29839         New core types.
29840         * sbitmap.h (struct sbitmap_def): Do not typedef here.
29841         * sbitmap.c: Include sbitmap.h.
29842         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
29843         hard-reg-set.h.  Split everything related to regsets out from here...
29844         * regset.h: ...to here.  New file.
29845         * df.h: Include regset.h and sbitmap.h.
29846         * tree-flow.h: Likewise.
29847         * cfgloop.h: Likewise.
29848         * except.h: Do not include sbitmap.h.  Include hashtab.h.
29849         * cgraph.h: Include vec.h and function.h.
29850         * reload.h (struct insn_chain): Change types of live_throughout
29851         and dead_or_set from regset_head to bitmap_head.
29852         (compute_use_by_pseudos): Be defined also if regset.h is not included.
29853         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
29854         spilled_regs from regset_head to bitmap_head to avoid dependency
29855         in regset.h.
29856         * sel-sched-ir.h: Include regset.h.
29857         * reload.c: Include df.h before reload.h.
29858         * caller-save.c: Likewise.
29859         * reload1.c: Likewise.
29860         * ira.c: Likewise.
29861         (mark_elimination): Update type of r to bitmap, consistent with
29862         DF_LR_IN.
29863         * dominance.c: Include bitmap.h.
29864         * modulo-sched.c: Include df.h.
29865         * cfganal.c: Include bitmap.h and sbitmap.h.
29866         * cfgbuild.c: Include sbitmap.h.
29867         * lcm.c: Include sbitmap.h.
29868         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
29869         * domwalk.c: Include sbitmap.h, exclude ggc.h.
29870         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
29871         * cselib.c: Include bitmap.h.
29872         * tree-optimize.c: Include regset.h.
29873         * stmt.c: Include bitmap.h.
29874         * Makefile.in: Update dependencies.
29875
29876 2010-05-22  Jan Hubicka  <jh@suse.cz>
29877
29878         * cgraph.h (struct varpool_node): Add same_comdat_group.
29879         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
29880         pointer.
29881         (output_varpool): Update call of lto_output_varpool_node.
29882         (input_varpool): Read same_comdat_group pointer.
29883         (input_varpool_1): Fixup same_comdat_group pointer.
29884         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
29885         group is needed, all are.
29886         * varpool.c (varpool_remove_node): Remove node from same comdat group
29887         linklist too.
29888         (varpool_analyze_pending_decls): Walk same comdat groups.
29889
29890 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
29891
29892         * rtl.h (union rtunion_def): Remove rt_bit member.
29893         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
29894         * print-rtl (print_rtx): Do not print the member.
29895         * gengtype.c (adjust_field_rtx_def): Do not handle it.
29896         * gengenrtl.c (type_from_format): Likewise.
29897         (accessor_from_format): Likewise.
29898
29899 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
29900
29901         * dbgcnt.c: Include toplev.h instead of errors.h.
29902         * ira-emit.c: Don't include errors.h.
29903         * ira.c: Include toplev.h instead of errors.h.
29904         * lto-compress.c: Include toplev.h instead of errors.h.
29905         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
29906         ira.o, dbgcnt.o): Update dependencies.
29907
29908 2010-05-22  Richard Guenther  <rguenther@suse.de>
29909
29910         * gimple.c (gimple_types_compatible_p): Check type qualifications
29911         before merging pointer to complete and pointer to incomplete type.
29912         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
29913         we use our own resolution algorithm.  The gold linker plugin
29914         doesn't do the job we want it to do here.
29915
29916 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
29917
29918         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
29919         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
29920         (sparc_mode_dependent_address_p): New function.
29921
29922 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
29923
29924         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
29925
29926         * timevar.c: Do not include any core headers.
29927         (timevar_print): De-i18n-ize.
29928         (print_time): Likewise.
29929         * timevar.h (timevar_push, timevar_pop): Make inline functions.
29930
29931 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
29932
29933         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
29934         langhooks-def.h.
29935         (diagnostic_initialize): Initialize x_data not last_function.
29936         (diagnostic_report_current_function): Move to tree-diagnostic.c.
29937         (default_diagnostic_starter): Call
29938         diagnostic_report_current_module not
29939         diagnostic_report_current_function.
29940         (diagnostic_report_diagnostic): Initialize x_data not
29941         abstract_origin.
29942         (verbatim): Likewise.
29943         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
29944         x_data.
29945         (struct diagnostic_context): Change last_function to x_data.
29946         (diagnostic_auxiliary_data): Replace with
29947         diagnostic_context_auxiliary_data and
29948         diagnostic_info_auxiliary_data.
29949         (diagnostic_last_function_changed, diagnostic_set_last_function,
29950         diagnostic_report_current_function): Move to tree-diagnostic.h.
29951         (print_declaration, dump_generic_node, print_generic_stmt,
29952         print_generic_stmt_indented, print_generic_expr,
29953         print_generic_decl, debug_c_tree, dump_omp_clauses,
29954         print_call_name, debug_generic_expr, debug_generic_stmt,
29955         debug_tree_chain, default_tree_printer): Move to
29956         tree-pretty-print.h.
29957         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
29958         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
29959         gimple-pretty-print.h.
29960         * pretty-print.c: Don't include tree.h
29961         (pp_base_format): Don't handle %K here.
29962         (pp_base_tree_identifier): Move to tree-pretty-print.c.
29963         * pretty-print.h (text_info): Change abstract_origin to x_data.
29964         (pp_tree_identifier, pp_unsupported_tree,
29965         pp_base_tree_identifier): Move to tree-pretty-print.h.
29966         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
29967         tree-pretty-print.h: New files.
29968         * tree-pretty-print.c: Include tree-pretty-print.h.
29969         (percent_K_format): New.  Moved from pretty-print.c.
29970         (pp_base_tree_identifier): Move from pretty-print.c.
29971         * c-objc-common.c: Include tree-pretty-print.h.
29972         (c_tree_printer): Handle %K here.
29973         * langhooks.c: Include tree-diagnostic.h.
29974         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
29975         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
29976         (default_tree_printer): Handle %K using percent_K_format.
29977         (general_init): Use default_tree_diagnostic_starter.
29978         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
29979         (free_lang_data): Use default_tree_diagnostic_starter.
29980         * c-pretty-print.c: Include tree-pretty-print.h.
29981         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29982         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29983         * dwarf2out.c: Include tree-pretty-print.h.
29984         * except.c: Include tree-pretty-print.h.
29985         * gimple-pretty-print.c: Include tree-pretty-print.h and
29986         gimple-pretty-print.h.
29987         * gimplify.c: Include tree-pretty-print.h.
29988         * graphite-poly.c: Include tree-pretty-print.h and
29989         gimple-pretty-print.h.
29990         * ipa-cp.c: Include tree-pretty-print.h.
29991         * ipa-inline.c: Include gimple-pretty-print.h.
29992         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
29993         * ipa-pure-const.c: Include gimple-pretty-print.h.
29994         * ipa-struct-reorg.c: Include tree-pretty-print.h and
29995         gimple-pretty-print.h.
29996         * ipa-type-escape.c: Include tree-pretty-print.h.
29997         * print-rtl.c: Include tree-pretty-print.h.
29998         * print-tree.c: Include gimple-pretty-print.h.
29999         * sese.c: Include tree-pretty-print.h.
30000         * tree-affine.c: Include tree-pretty-print.h.
30001         * tree-browser.c: Include tree-pretty-print.h.
30002         * tree-call-cdce.c: Include gimple-pretty-print.h.
30003         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
30004         * tree-chrec.c: Include tree-pretty-print.h.
30005         * tree-data-ref.c: Include tree-pretty-print.h and
30006         gimple-pretty-print.h.
30007         * tree-dfa.c: Include tree-pretty-print.h.
30008         * tree-if-conv.c: Include tree-pretty-print.h and
30009         gimple-pretty-print.h.
30010         * tree-inline.c: Include tree-pretty-print.h.
30011         * tree-into-ssa.c: Include tree-pretty-print.h and
30012         gimple-pretty-print.h.
30013         * tree-nrv.c: Include tree-pretty-print.h.
30014         * tree-object-size.c: Include tree-pretty-print.h and
30015         gimple-pretty-print.h.
30016         * tree-outof-ssa.c: Include tree-pretty-print.h and
30017         gimple-pretty-print.h.
30018         * tree-parloops.c: Include tree-pretty-print.h and
30019         gimple-pretty-print.h.
30020         * tree-predcom.c: Include tree-pretty-print.h and
30021         gimple-pretty-print.h.
30022         * tree-scalar-evolution.c: Include tree-pretty-print.h and
30023         gimple-pretty-print.h.
30024         * tree-sra.c: Include tree-pretty-print.h.
30025         * tree-ssa-address.c: Include tree-pretty-print.h.
30026         * tree-ssa-alias.c: Include tree-pretty-print.h.
30027         * tree-ssa-ccp.c: Include tree-pretty-print.h and
30028         gimple-pretty-print.h.
30029         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
30030         * tree-ssa-copy.c: Include tree-pretty-print.h and
30031         gimple-pretty-print.h.
30032         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
30033         * tree-ssa-dce.c: Include tree-pretty-print.h and
30034         gimple-pretty-print.h.
30035         * tree-ssa-dom.c: Include tree-pretty-print.h and
30036         gimple-pretty-print.h.
30037         * tree-ssa-dse.c: Include gimple-pretty-print.h.
30038         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
30039         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
30040         * tree-ssa-live.c: Include tree-pretty-print.h and
30041         gimple-pretty-print.h.
30042         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
30043         gimple-pretty-print.h.
30044         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
30045         gimple-pretty-print.h.
30046         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
30047         gimple-pretty-print.h.
30048         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
30049         gimple-pretty-print.h.
30050         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
30051         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
30052         * tree-ssa-operands.c: Include tree-pretty-print.h and
30053         gimple-pretty-print.h.
30054         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
30055         gimple-pretty-print.h.
30056         * tree-ssa-pre.c: Include tree-pretty-print.h and
30057         gimple-pretty-print.h.
30058         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
30059         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
30060         gimple-pretty-print.h.
30061         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
30062         gimple-pretty-print.h.
30063         * tree-ssa-sink.c: Include gimple-pretty-print.h.
30064         * tree-ssa-ter.c: Include tree-pretty-print.h and
30065         gimple-pretty-print.h.
30066         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
30067         * tree-ssa.c: Include tree-pretty-print.h and
30068         gimple-pretty-print.h.
30069         * tree-stdarg.c: Include gimple-pretty-print.h.
30070         * tree-switch-conversion.c: Include gimple-pretty-print.h.
30071         * tree-tailcall.c: Include tree-pretty-print.h and
30072         gimple-pretty-print.h.
30073         * tree-vect-data-refs.c: Include tree-pretty-print.h and
30074         gimple-pretty-print.h.
30075         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
30076         gimple-pretty-print.h.
30077         * tree-vect-loop.c: Include tree-pretty-print.h and
30078         gimple-pretty-print.h.
30079         * tree-vect-patterns.c: Include gimple-pretty-print.h.
30080         * tree-vect-slp.c: Include tree-pretty-print.h and
30081         gimple-pretty-print.h.
30082         * tree-vect-stmts.c: Include tree-pretty-print.h and
30083         gimple-pretty-print.h.
30084         * tree-vectorizer.c: Include tree-pretty-print.h.
30085         * tree-vrp.c: Include tree-pretty-print.h and
30086         gimple-pretty-print.h.
30087         * value-prof.c: Include tree-pretty-print.h and
30088         gimple-pretty-print.h.
30089         * var-tracking.c: Include tree-pretty-print.h.
30090         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
30091         (tree-diagnostic.o): New dependencies.
30092         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
30093         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
30094         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
30095         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
30096         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
30097         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
30098         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
30099         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
30100         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
30101         tree-ssa-address.o, tree-ssa-loop-niter.o,
30102         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
30103         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
30104         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
30105         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
30106         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
30107         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
30108         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
30109         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
30110         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
30111         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
30112         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
30113         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
30114         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
30115         tree-switch-conversion.o, var-tracking.o, value-prof.o,
30116         cfgexpand.o, pretty-print.o): Update dependencies.
30117
30118 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
30119
30120         * tree-ssa-structalias.c: Remove tm_p.h from include.
30121
30122 2010-05-21  Jeff Law  <law@redhat.com>
30123
30124         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
30125
30126 2010-05-21  Jason Merrill  <jason@redhat.com>
30127
30128         * tree-eh.c (cleanup_is_dead_in): New.
30129         (lower_try_finally): Don't generate a dead cleanup region.
30130         (lower_cleanup): Likewise.
30131
30132 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
30133
30134         PR debug/44223
30135         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
30136         unchain each use from the cyclic next_regno_use chain first.
30137
30138 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
30139
30140         * real: Do not include gmp.h, mpfr.h, and mpc.h.
30141         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
30142         (real_value_negate, real_value_abs): New prototypes.
30143         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
30144         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
30145         new include file for interface between MPFR and REAL_VALUE_TYPE.
30146         * real.c: Include realmpfr.h.
30147         (real_arithmetic2): Remove legacy function.
30148         (real_value_negate): New.
30149         (real_value_abs): New.
30150         (mfpr_from_real, real_from_mpfr): Move from here...
30151         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
30152         * builtins.c: Include realmpfr.h.
30153         * fold-const.c: Include realmpfr.h.
30154         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
30155         (fold_negate_const): Likewise.
30156         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
30157         * toplev.c: Include realmpfr.h.
30158         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
30159         and real_value_negate.
30160         * fixed-value.c (check_real_for_fixed_mode): Likewise.
30161         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
30162         (vfp3_const_double_index): Likewise.
30163         (arm_print_operand): Likewise.
30164         * Makefile.in: Update dependencies.
30165
30166 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30167
30168         * config/s390/s390.c (override_options): Increase the default
30169         of max-completely-peel-times.
30170
30171 2010-05-21  Julian Brown  <julian@codesourcery.com>
30172             Mark Mitchell  <mark@codesourcery.com>
30173
30174         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
30175         sibling calls for Thumb-1.
30176         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
30177         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
30178         Thumb-2.
30179         (*call_insn, *call_value_insn): Don't use for Thumb-2.
30180         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
30181         for Thumb-2.
30182         (return): New expander.
30183         (*arm_return): New name for ARM return insn.
30184         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
30185
30186 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
30187
30188         * config.gcc (sparc64-*-rtems*): New target.
30189
30190 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
30191
30192         * tree.c (build_function_decl_skip_args): Fix grammar.
30193         (build_function_type_list_1): Fix typos, adjust formatting.
30194
30195 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
30196
30197         * tree.h: Include real.h and fixed-value.h as basic datatypes.
30198         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
30199         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
30200         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
30201         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
30202         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
30203         tree-pretty-print.c, tree-loop-distribution.c,
30204         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
30205         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
30206         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
30207         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
30208         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
30209         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
30210         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
30211         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
30212         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
30213         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
30214         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
30215         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
30216         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
30217         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
30218         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
30219         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
30220         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
30221         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
30222         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
30223         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
30224         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
30225         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
30226         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
30227         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
30228         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
30229         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
30230         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
30231         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
30232         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
30233         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
30234         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
30235         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
30236         config/score/score7.c, config/score/score.c, config/arm/arm.c,
30237         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
30238         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
30239         config/bfin/bfin.c: Clean up redundant includes.
30240         * Makefile.in: Update accordingly.
30241
30242 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
30243
30244         PR middle-end/44204
30245         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
30246         statement has no arguments.
30247
30248 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
30249
30250         PR/44139
30251         * varasm.c (emutls_decl): Merge attributes to new decl.
30252
30253 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
30254
30255         PR middle-end/44101
30256         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
30257         around the uniquized constructor if its type requires a conversion.
30258
30259 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
30260
30261         PR debug/44205
30262         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
30263         at -O0 goto_locus of any of the incoming edges differs from
30264         goto_locus of outgoing edge, or gimple_location of any of the
30265         labels differs.
30266
30267 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
30268
30269         * ira.c (ira_non_ordered_class_hard_regs): Define.
30270         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
30271         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
30272         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
30273         cost of unaligned hard regs when allocating multi-reg pseudos.
30274
30275 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
30276
30277         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
30278         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
30279         for TARGET_NO_FLOAT.
30280         * config/mips/mips.c (mips_file_start): Expand conditional expression
30281         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
30282         (mips_override_options): Move -mno-float override -msoft-float and
30283         -mhard-float.
30284         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
30285         Condition(TARGET_SUPPORTS_NO_FLOAT).
30286         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
30287         __mips_no_float here.
30288         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
30289         (TARGET_SUPPORTS_NO_FLOAT): Define.
30290         * config/mips/sdemtk.opt: Delete.
30291
30292 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
30293
30294         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
30295
30296 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
30297
30298         PR target/43733
30299         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
30300         * configure: Regenerate.
30301         * config.in: Regenerate.
30302         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
30303         instead of sahf only for 64bit targets.
30304
30305 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
30306
30307         PR debug/44178
30308         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
30309         setup_ref_regs for DEBUG_INSNs.
30310
30311 2010-05-20  Jan Hubicka  <jh@suse.cz>
30312
30313         PR middle-end/44197
30314         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
30315
30316 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
30317
30318         PR bootstrap/43870
30319         * df-scan.c (df_ref_compare): Stabilize sort.
30320
30321 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
30322
30323         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
30324         argument.  Don't use DW_OP_piece if offset is non-zero,
30325         put offset into second DW_OP_bit_piece argument.
30326         (dw_sra_loc_expr): Adjust callers.  For memory expressions
30327         compute offset.
30328
30329 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
30330
30331         PR target/44202
30332         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
30333         settings for 16-bit-constant "addo" alternative.
30334
30335 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
30336
30337         * config/mips/mips-dsp.md (add<DSPV:mode>3,
30338         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
30339
30340         PR target/43764
30341         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
30342         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
30343         Use it.
30344
30345 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
30346
30347         * diagnostic.c (FLOAT, FFS): Don't undefine.
30348         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
30349         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
30350         include ordering.
30351
30352 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
30353
30354         * combine.c (propagate_for_debug): Call make_compound_operation
30355         on the source value.
30356         (try_combine): When implementing a split chosen by find_split_point,
30357         either copy i2src or set it to null.  Assert that i2src is not null
30358         before substituting into CALL_INSN_FUNCTION_USAGE.
30359
30360 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
30361
30362         * double-int.h (double_int_ior): New function.
30363         * tree.h (build_int_cst_wide_type): Remove.
30364         * tree.c (build_int_cst_wide_type): Remove.
30365         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
30366         of build_int_cst_wide_type.
30367         * stor-layout.c (set_sizetype): (Ditto.).
30368         * dojump.c (do_jump): Use build_int_cstu instead of
30369         build_int_cst_wide_type.
30370
30371 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
30372
30373         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
30374         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
30375         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
30376         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
30377         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
30378         propagate the 'data' argument to copy_tree_r.
30379         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
30380         Propagate 'data' argument to walk_tree.
30381         (copy_if_shared): New function.
30382         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
30383         (unmark_visited): New function.
30384         (unshare_body): Call copy_if_shared instead of doing it manually.
30385         (unvisit_body): Call unmark_visited instead of doing it manually.
30386
30387 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
30388
30389         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
30390         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
30391         * hooks.c: Likewise.
30392         * target-def.h (TARGET_FOLD_BUILTIN): Define to
30393         hook_tree_tree_int_treep_bool_null.
30394         * target.h (struct gcc_target): Update signature of fold_builtin
30395         field.
30396         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
30397         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
30398         instead of the call expression.
30399         (fold_builtin_call_array): Pass n and argarray directly.
30400         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
30401         consing a list.
30402         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
30403         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
30404         `i' and use it in place of `arity'.
30405         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
30406         Dereference `args' directly.
30407         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
30408
30409 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30410
30411         * doc/sourcebuild.texi (Effective-Target Keywords): Document
30412         3dnow, sse3, sse2.
30413         (Directives): Document optional dg-require-effective-target
30414         selector.
30415
30416 2010-05-19  Richard Guenther  <rguenther@suse.de>
30417
30418         PR lto/44196
30419         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
30420
30421 2010-05-19  Richard Guenther  <rguenther@suse.de>
30422
30423         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
30424         * common.opt (fwhopr=): New.
30425         * opts.c (common_handle_option): Handle OPT_fwhopr.
30426         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
30427         * collect2.c (main): Match -fwhopr*.
30428         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
30429         Execute ltrans stage in parallel when jobs is bigger than 1.
30430
30431 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30432
30433         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
30434         pentiumpro on Solaris 8/x86 with Sun as.
30435         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
30436         hidden alias bug.
30437         (gcc_cv_as_ix86_quad): Check for .quad directive.
30438         * configure: Regenerate.
30439         * config.in: Regenerate.
30440         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
30441
30442 2010-05-19  Martin Jambor  <mjambor@suse.cz>
30443
30444         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
30445         also for indirect edges.  Actual printing moved...
30446         (ipa_print_node_jump_functions_for_edge): ...here.
30447         (ipa_compute_jump_functions): Renamed to
30448         ipa_compute_jump_functions_for_edge and made static.
30449         (ipa_compute_jump_functions): New function.
30450         (make_edge_direct_to_target): Check if the number of arguments on
30451         the newly direct edge is the same as the number of parametrs of
30452         the callee.
30453         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
30454         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
30455         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
30456         analysis functions unconditionally, call the new
30457         ipa_analyze_params_uses on the node instead of every edge.
30458
30459 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
30460
30461         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
30462         to tree.
30463         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
30464         also checks for a constant int vs.  non-constant but
30465         loop-invariant steps.
30466         (find_or_create_group): Change the sort algorithm to only consider
30467         steps that are constant ints.
30468         (idx_analyze_ref): Adopt code to handle a tree instead of a
30469         HOST_WIDE_INT for step.
30470         (gather_memory_references_ref): Handle tree instead of int and be
30471         prepared to see a NULL_TREE.
30472         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
30473         prefetches if the step cannot be calculated at compile time.
30474         (issue_prefetch_ref): Issue prefetches for non-constant but
30475         loop-invariant steps.
30476
30477 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30478
30479         Revert:
30480         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30481
30482         * tree.h (build_call_list): Remove.
30483         * tree.c (build_call_list): Remove.
30484
30485 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30486
30487         * tree.h (build_call_list): Remove.
30488         * tree.c (build_call_list): Remove.
30489
30490 2010-05-18  Jan Hubicka  <jh@suse.cz>
30491
30492         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
30493
30494 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
30495
30496         PR rtl-optimization/43332
30497         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
30498
30499 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
30500
30501         * tree.h (build_int_cstu): Implement as static inline.
30502         * tree.c (build_int_cstu): Remove function.
30503         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
30504         sign extended.
30505
30506 2010-05-18  Richard Guenther  <rguenther@suse.de>
30507
30508         PR lto/44143
30509         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
30510         (debug): Initialize from -save-temps.
30511         (collect_execute): Print command-line when verbose.
30512         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
30513         for ltrans invocation.  Produce -dumpbase flag again.
30514         (process_args): Remove.
30515         (main): Simplify.
30516         * collect2.c (maybe_run_lto_and_relink): Only pass object
30517         files to lto-wrapper.
30518         * gcc.c (LINK_COMMAND_SPEC): Likewise.
30519
30520 2010-05-18  Jan Hubicka  <jh@suse.cz>
30521
30522         * opts.c (decode_options): Do not disable whopr at ipa_cp.
30523         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
30524
30525 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30526
30527         PR lto/44184
30528         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
30529         in a GIMPLE_ASM.
30530         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
30531         in a GIMPLE_ASM.
30532
30533 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
30534
30535         PR debug/41371
30536         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
30537         rtx_equal_p inline.
30538
30539 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30540
30541         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
30542         lto-macho as lto_binary_reader.
30543
30544         * darwin.c (darwin_asm_named_section): Do not add assembler comment
30545         after .section directive; just print it before the directive instead.
30546
30547 2010-05-17  Jan Hubicka  <jh@suse.cz>
30548
30549         * cgraph.c (cgraph_create_virtual_clone): Only check
30550         versionable_function_p when not in wpa and checking is enabled.
30551         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
30552         there are no more functions to materialize.
30553
30554 2010-05-17  Jan Hubicka  <jh@suse.cz>
30555
30556         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
30557         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
30558         New functions.
30559         (output_cgraph): Call output_cgraph_opt_summary.
30560         (input_cgrpah): Call input_cgraph_opt_summary.
30561         (output_cgraph_opt_summary_p, output_node_opt_summary,
30562         input_node_opt_summary, input_cgraph_opt_section): New functions.
30563         * lto-section-in.c (lto_section_name): Add cgraphopt.
30564         * tree-inline.c (tree_function_versioning): Handle parm_num.
30565         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
30566         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
30567
30568 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30569
30570         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
30571         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
30572         the insn to prefetch ratio heuristic to loops with known trip count.
30573
30574 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30575
30576         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
30577         (schedule_prefetches): Do not generate a prefetch if the unroll factor
30578         is far from what is required by the prefetch.
30579
30580 2010-05-17  Jan Hubicka  <jh@suse.cz>
30581
30582         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
30583         (ipcp_estimate_growth): Likewise.
30584         (ipcp_const_param_count): Likewise.
30585         (ipcp_insert_stage): Likewise.
30586         * ipa-prop.c (visit_load_for_mod_analysis): New function.
30587         (visit_store_addr_for_mod_analysis): Set used flag.
30588         (ipa_detect_param_modifications): Set used flag for SSE params;
30589         update use of walk_stmt_load_store_addr_ops.
30590         (ipa_print_node_params): Print used flag.
30591         (ipa_write_node_info): Stream used flag.
30592         (ipa_read_node_info): Likewise.
30593         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
30594         (ipa_is_param_used): New function.
30595         (lto_ipa_fixup_call_notes): Remove unused declaration.
30596
30597 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30598
30599         PR target/44074
30600         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
30601         * configure: Regenerate.
30602         * config.in: Regenerate.
30603         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
30604         !HAVE_AS_IX86_REP_LOCK_PREFIX.
30605         Don't emit whitespace.
30606         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
30607         (*rep_movsi): Likewise.
30608         (*rep_movsi_rex64): Likewise.
30609         (*rep_movqi): Likewise.
30610         (*rep_movqi_rex64): Likewise.
30611         (*rep_stosdi_rex64): Likewise.
30612         (*rep_stossi): Likewise.
30613         (*rep_stossi_rex64): Likewise.
30614         (*rep_stosqi): Likewise.
30615         (*rep_stosqi_rex64): Likewise.
30616         (*cmpstrnqi_nz_1): Use {%;} after repz.
30617         (*cmpstrnqi_nz_rex_1): Likewise.
30618         (*cmpstrnqi_1): Likewise.
30619         (*cmpstrnqi_rex_1): Likewise.
30620         (*strlenqi_1): Use {%;} after repnz.
30621         (*strlenqi_rex_1): Likewise.
30622         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
30623         (*sync_compare_and_swap<mode>): Likewise.
30624         (sync_double_compare_and_swap<mode>): Likewise.
30625         (*sync_double_compare_and_swapdi_pic): Likewise.
30626         (sync_old_add<mode>): Likewise.
30627         (sync_add<mode>): Likewise.
30628         (sync_sub<mode>): Likewise.
30629         (sync_<code><mode>): Likewise.
30630
30631 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30632
30633         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
30634         otr_token and polymorphic.
30635         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
30636         (cgraph_clone_edge): Copy the above fields.
30637         * tree.c (get_binfo_at_offset): New function.
30638         * tree.h (get_binfo_at_offset): Declare.
30639         * ipa-prop.h (enum jump_func_type): Added known_type jump function
30640         type, reordered items, updated comments.
30641         (union jump_func_value): Added base_type field, reordered fields.
30642         (enum ipa_lattice_type): Moved down in the file.
30643         (struct ipa_param_descriptor): New field polymorphic.
30644         (ipa_is_param_polymorphic): New function.
30645         * ipa-prop.c: Include gimple.h and gimple-fold.h.
30646         (ipa_print_node_jump_functions): Print known type jump functions.
30647         (compute_complex_pass_through): Renamed to...
30648         (compute_complex_assign_jump_func): this.
30649         (compute_complex_ancestor_jump_func): New function.
30650         (compute_known_type_jump_func): Likewise.
30651         (compute_scalar_jump_functions): Create known type and complex ancestor
30652         jump functions.
30653         (ipa_note_param_call): New parameter polymorphic, set the corresponding
30654         flag in the call note accordingly.
30655         (ipa_analyze_call_uses): Renamed to...
30656         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
30657         variable var only in the block where it is used.
30658         (ipa_analyze_virtual_call_uses): New function.
30659         (ipa_analyze_call_uses): Likewise.
30660         (combine_known_type_and_ancestor_jfs): Likewise.
30661         (update_jump_functions_after_inlining): Implemented handling of a
30662         number of new jump function types combination.
30663         (print_edge_addition_message): Removed.
30664         (make_edge_direct_to_target): New function.
30665         (try_make_edge_direct_simple_call): Likewise.
30666         (try_make_edge_direct_virtual_call): Likewise.
30667         (update_call_notes_after_inlining): Renamed to...
30668         (update_indirect_edges_after_inlining): this.  Moved edge creation for
30669         indirect calls to try_make_edge_direct_simple_call, also calls
30670         try_make_edge_direct_virtual_call for virtual calls.
30671         (ipa_print_node_params): Changed the header message.
30672         (ipa_write_jump_function): Stream also known type jump functions.
30673         (ipa_read_jump_function): Likewise.
30674         (ipa_write_indirect_edge_info): Stream new fields in
30675         cgraph_indirect_call_info.
30676         (ipa_read_indirect_edge_info): Likewise.
30677         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
30678         GIMPLE_FOLD_H.
30679
30680 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30681
30682         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
30683
30684 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30685
30686         * tree.h (CALL_EXPR_ARGS): Delete.
30687         (call_expr_arglist): Delete.
30688         * tree.c (call_expr_arglist): Delete.
30689         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
30690         targetm.fold_builtin.
30691         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
30692         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
30693         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
30694         arglist parameter.  Use CALL_EXPR_ARG.
30695         (picochip_expand_builtin_3op): Likewise.
30696         (picochip_expand_builtin_2opvoid): Likewise.
30697         (picochip_expand_array_get): Likewise.
30698         (picochip_expand_array_put): Likewise.
30699         (picochip_expand_array_testport): Likewise.
30700         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
30701         rather than arglist.
30702         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
30703         CALL_EXPR_ARGS.
30704         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
30705         than TREE_VALUE and TREE_CHAIN.
30706         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
30707         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
30708         the arglist.
30709
30710 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30711
30712         PR bootstrap/42347
30713         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
30714         to have no fallthru edge.
30715
30716         PR middle-end/44102
30717         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
30718         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
30719         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
30720         add BARRIER after previous bb if needed.
30721
30722 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30723
30724         * tree.c (build_function_type_list_1): Remove bogus assert condition.
30725
30726 2010-05-17  Alan Modra  <amodra@gmail.com>
30727
30728         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
30729         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
30730         with copy_reg rtx param.
30731         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
30732         Correct cases where code for ABI_V4 did not initialise the reg
30733         used to access frame.  Also leave frame_reg_rtx as sp for large
30734         frames that save no regs.
30735
30736 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30737
30738         PR middle-end/44133
30739         * tree-sra.c (create_access_replacement): New parameter rename, mark
30740         the replaement for renaming only when it is true.
30741         (get_access_replacement): Pass true in the rename parameter of
30742         create_access_replacement.
30743         (get_unrenamed_access_replacement): New function.
30744         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
30745         replacement declaration from it.
30746
30747 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
30748
30749         * function.c (try_fit_stack_local, add_frame_space): New static
30750         functions.
30751         (assign_stack_local_1): Use them.  Look for opportunities to use
30752         space previously wasted on alignment.
30753         * function.h (struct frame_space): New.
30754         (struct rtl_data): Add FRAME_SPACE_LIST member.
30755         * reload1.c (something_was_spilled): New static variable.
30756         (alter_reg): Set it.
30757         (reload): Test it in addition to testing if the frame size changed.
30758
30759 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
30760
30761         * config/s390/s390.c: Define sane prefetch settings and activate
30762         flag_prefetch_loop_arrays on -O3.
30763         * config/s390/s390.h: Declare that read can use write prefetch.
30764
30765 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30766
30767         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
30768         build.
30769
30770 2010-05-16  Jan Hubicka  <jh@suse.cz>
30771
30772         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
30773         function body; do not check stdarg field of struct function.
30774
30775 2010-05-16  Jan Hubicka  <jh@suse.cz>
30776
30777         * cgraph.c (dump_cgraph_node): Dump versionable flag.
30778         * cgraph.h (cgraph_local_info): Add versionable flag.
30779         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
30780         (ipcp_versionable_function_p): Use it.
30781         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
30782         versionable flag.
30783
30784 2010-05-16  Jan Hubicka  <jh@suse.cz>
30785
30786         * cgraph.c (cgraph_clone_node): Take decl argument and insert
30787         clone into hash when it is different from orig.
30788         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
30789         * cgraph.h (cgraph_clone_node): Update prototype.
30790         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
30791         (lto_cgraph_encoder_delete): Delete body map.
30792         (lto_cgraph_encoder_size): Move to header.
30793         (lto_cgraph_encoder_encode_body_p,
30794         lto_set_cgraph_encoder_encode_body): New.
30795         (lto_output_node): Do not take written_decls argument; output clone_of
30796         pointer.
30797         (add_node_to): Add include_body_argument; call
30798         lto_set_cgraph_encoder_encode_body on master of the clone.
30799         (add_references): Update use of add_node_to.
30800         (compute_ltrans_boundary): Likewise.
30801         (output_cgraph): Do not create written_decls bitmap.
30802         (input_node): Take nodes argument; stream in clone_of correctly.
30803         (input_cgraph_1): Update use of input_node.
30804         * lto-streamer-out.c (lto_output): Use encoder info to decide
30805         what bodies to output.
30806         * ipa-inline.c (cgraph_clone_inlined_nodes,
30807         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
30808         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
30809         (lto_cgraph_encoder_size): Define here.
30810         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
30811         Declare.
30812
30813 2010-05-16  Richard Guenther  <rguenther@suse.de>
30814
30815         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
30816         -fipa-type-escape.
30817         * ipa-type-escape.c (gate_type_escape_vars): Run when
30818         -fipa-struct-reorg runs.
30819         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
30820         * common.opt (fipa-type-escape): Remove.
30821
30822 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
30823
30824         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
30825         (decode_options): Likewise.
30826         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
30827
30828 2010-05-16  Jan Hubicka  <jh@suse.cz>
30829
30830         * ipa.c (function_and_variable_visibility): Also bring local all
30831         aliases.
30832
30833 2010-05-16  Richard Guenther  <rguenther@suse.de>
30834
30835         * alias.c (nonoverlapping_memrefs_p): Remove use of
30836         IPA type-escape information.
30837
30838 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
30839
30840         * c-common.c (c_common_reswords): Add _Static_assert for C.
30841         * c-parser.c (c_token_starts_declaration,
30842         c_parser_next_token_starts_declaration,
30843         c_parser_static_assert_declaration_no_semi,
30844         c_parser_static_assert_declaration): New.
30845         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
30846         Handle static assertions if static_assert_ok.
30847         (c_parser_external_declaration, c_parser_declaration_or_fndef,
30848         c_parser_compound_statement_nostart, c_parser_label,
30849         c_parser_for_statement, c_parser_objc_methodprotolist,
30850         c_parser_omp_for_loop): All callers of
30851         c_parser_declaration_or_fndef changed.
30852         (c_parser_struct_declaration): Handle static assertions.
30853         (c_parser_compound_statement_nostart): Use
30854         c_parser_next_token_starts_declaration and
30855         c_token_starts_declaration to detect start of declarations.
30856         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
30857         Likewise.
30858
30859 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
30860
30861         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
30862         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
30863         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
30864         TARGET_FUNCTION_VALUE_REGNO_P): Define.
30865         (mmix_function_outgoing_value): Rename to...
30866         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
30867         (mmix_function_value_regno_p): Make static.
30868         (mmix_libcall_value): New function.
30869         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
30870         mmix_function_value_regno_p): Remove declaration.
30871
30872 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
30873
30874         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
30875         BUILT_IN_ALLOCA if stack checking is enabled.
30876
30877 2010-05-16  Richard Guenther  <rguenther@suse.de>
30878
30879         * var-tracking.c (vars_copy_1): Inline ...
30880         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
30881         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
30882         (variable_merge_over_cur): Adjust.  Merge asserts.
30883         (variable_merge_over_src): Likewise.
30884         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
30885         (variable_post_merge_new_vals): Merge asserts.
30886         (variable_post_merge_perm_vals): Likewise.
30887         (find_mem_expr_in_1pdv): Likewise.
30888         (dataflow_set_different_value): Remove.
30889         (onepart_variable_different_p): Merge asserts.
30890         (variable_different_p): Likewise.
30891         (dataflow_set_different_1): Inline ...
30892         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
30893         (emit_notes_for_differences_1): Merge asserts.
30894
30895 2010-05-16  Richard Guenther  <rguenther@suse.de>
30896
30897         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
30898         * optabs.c (libfunc_decl_hash): Likewise.
30899         * varasm.c (emutls_decl): Likewise.
30900
30901 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
30902
30903         * c-decl.c: Don't include gimple.h.
30904         (merge_decls): Do not copy gimple_body.
30905
30906 2010-05-15  Jason Merrill  <jason@redhat.com>
30907
30908         * c.opt: Add -fnothrow-opt.
30909
30910 2010-05-15  Jan Hubicka  <jh@suse.cz>
30911
30912         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
30913         analyzed.
30914         * passes.c (ipa_write_summaries): Write all analyzed nodes.
30915
30916 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
30917
30918         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
30919         * Makefile.in: Add it.
30920         Fix all other Makefile dependencies for changes below.
30921         * tree.h: Include it instead of defining VEC primitives here.
30922         * gimple.h: Likewise.
30923         * rtl.h: Likewise.
30924         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
30925         * except.h: Include vecir.h, break dependence on tree.h.
30926
30927         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
30928         Move from here...
30929         * tree-iterator.c: ...to here.
30930         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
30931
30932         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
30933         tm_p.h.
30934         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
30935         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
30936         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
30937         tree-mudflap.h, and target.h.
30938         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
30939         predict.h, tree-inline.h, gimple.h, and langhooks.h.
30940         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
30941         Add FIXME for why gimple.h is still included (should be unnecessary
30942         since GCC 4.5 gimplification unit-at-a-time).
30943         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
30944         * c-pragma.c: Add FIXME for why function.h needs to be included just
30945         for cfun, at front-end level.
30946         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
30947         Do not include ggc.h, but include vecprim.h for VEC(char).
30948         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
30949         Explain why target.h is included.
30950         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
30951         Explain why gimple.h is included.
30952         * c-ppoutput.c: Do not include tm.h.
30953         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
30954         * c-parses.c: Explain why rtl.h is included, and that this (and only
30955         this) is also why tm.h must be included.
30956         Do not include except.h.
30957         * c-lang.c: Do not include ggc.h.
30958
30959 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
30960
30961         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
30962
30963 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
30964
30965         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
30966         unions by default if those structs and unions have no tags.  Do
30967         not condition anonymous struct and unions handling on flag_iso.
30968         Allow anonymous structs and unions for C1X.
30969         (finish_struct): Do not diagnose lack of named fields when
30970         anonymous structs and unions present for C1X.  Accept flexible
30971         array members in structure with anonymous structs or unions but no
30972         directly named fields.
30973         * doc/extend.texi (Unnamed Fields): Update.
30974
30975 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
30976
30977         * gimple.h (compare_field_offset): Rename into...
30978         (gimple_compare_field_offset): ...this.
30979         * gimple.c (compare_field_offset): Rename into...
30980         (gimple_compare_field_offset): ...this.  Compare the full access if
30981         the offset is self-referential.
30982         (gimple_types_compatible_p): Adjust for above renaming.
30983         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
30984         DECL_NONADDRESSABLE_P flag of fields before merging them.
30985
30986 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
30987
30988         * tree.h (ctor_to_list): Delete.
30989         * tree.c (ctor_to_list): Delete.
30990
30991 2010-05-15  Jan Hubicka  <jh@suse.cz>
30992
30993         * ipa-reference.c: Include toplev.h
30994         (is_proper_for_analysis): Only add to all_module_statics
30995         if it is allocated.
30996         (write_node_summary_p, stream_out_bitmap,
30997         ipa_reference_write_optimization_summary,
30998         ipa_reference_read_optimization_summary): New.
30999         (struct ipa_opt_pass_d pass_ipa_reference): Add
31000         optimization summary streaming.
31001         * lto-cgraph.c (referenced_from_this_partition_p,
31002         reachable_from_this_partition_p): New functions.
31003         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
31004         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
31005         * opts.c (decode_options): Enable ipa_reference.
31006         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
31007         * lto-streamer.h (referenced_from_this_partition_p,
31008         reachable_from_this_partition_p): Declare.
31009
31010 2010-05-15  Richard Guenther  <rguenther@suse.de>
31011
31012         PR tree-optimization/44038
31013         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
31014         taking the address of a V_C_E of a constant.
31015
31016 2010-05-14  Jan Hubicka  <jh@suse.cz>
31017
31018         * tree.h (memory_identifier_string): Remove.
31019         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
31020         (ipa_reference_global_vars_info_d): Remove statics_not_read and
31021         statics_not_written.
31022         (ipa_reference_optimization_summary_d): New structure.
31023         (ipa_reference_optimization_summary_t): New type and vector.
31024         (ipa_reference_vars_info_d): Embedd structures instead of using
31025         pointers.
31026         (reference_vars_to_consider): Remove out of GGC space.
31027         (module_statics_escape): Remove.
31028         (global_info_obstack): Rename to ...
31029         (optimization_summary_obstack): ... this one.
31030         (initialization_status_t): Remove.
31031         (memory_identifier_string): Remove.
31032         (get_reference_vars_info): Fix indenting.
31033         (set_reference_vars_info): Likewise.
31034         (get_reference_optimization_summary): New.
31035         (set_reference_optimization_summary): New.
31036         (get_global_reference_vars_info): Remove.
31037         (ipa_reference_get_read_global): Remove.
31038         (ipa_reference_get_written_global): Remove.
31039         (ipa_reference_get_not_read_global): Update.
31040         (ipa_reference_get_not_written_global): Update.
31041         (is_proper_for_analysis): Outlaw addressable.
31042         (propagate_bits): Update for new datastructures.
31043         (analyze_variable): Remove.
31044         (init_function_info): Update for new datastructures.
31045         (clean_function_local_data): Remove.
31046         (clean_function): Remove.
31047         (copy_global_bitmap): Use optimizations_summary_obstack.
31048         (duplicate_node_data): Duplicate optimization summary only.
31049         (remove_node_data): Remove optimization summary only.
31050         (generate_summary): Do not analyze variables; do not compute
31051         module_statics_escape; do not prune solutions by it.
31052         (read_write_all_from_decl): Fix typos in comments.
31053         (propagate): Doscover readonly and nonaddressable first;
31054         update for new datastructures; share global bitmaps.
31055         * ipa-reference.h (ipa_reference_get_read_global,
31056         ipa_reference_get_written_global): Remove.
31057         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
31058         * Makefile.in: Remove ipa-refereference from GT files.
31059
31060 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
31061
31062         PR debug/44112
31063         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
31064         for all SYMBOL_REF_DECLs.
31065
31066 2010-05-14  Jan Hubicka  <jh@suse.cz>
31067
31068         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
31069         (varpool_all_refs_explicit_p): New inline function.
31070         * ipa-reference.c: Update comment.
31071         (module_statics_written): Remove.
31072         (get_static_decl): Remove.
31073         (ipa_init): Do not initialize module_statics_written.
31074         (analyze_function): Likewise.
31075         (generate_summary): Likewise; do not compute module_statics_readonly
31076         and do not update variable flags.
31077         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
31078         * ipa.c: Inlucde flags.h
31079         (cgraph_local_node_p): New.
31080         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
31081         promote functions to local.
31082         (ipa_discover_readonly_nonaddressable_vars): New function.
31083         (function_and_variable_visibility): Use cgraph_local_node_p.
31084         * varpool.c (varpool_finalize_decl): Set force_output for
31085         DECL_PRESERVE_P vars.
31086
31087 2010-05-14  Jan Hubicka  <jh@suse.cz>
31088
31089         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
31090
31091 2010-05-14  Richard Guenther  <rguenther@suse.de>
31092
31093         PR tree-optimization/44119
31094         * tree-ssa-pre.c (eliminate): Properly mark replacement of
31095         a PHI node necessary.
31096
31097 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
31098
31099         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
31100
31101 2010-05-14  Jason Merrill  <jason@redhat.com>
31102
31103         PR c++/44127
31104         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
31105         (gimple_call_set_nothrow): New.
31106         * gimple.c (gimple_build_call_from_tree): Call it.
31107         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
31108
31109         PR c++/44127
31110         * gimplify.c (gimplify_seq_add_stmt): No longer static.
31111         * gimple.h: Declare it.
31112         * gimple.c (gimple_build_eh_filter): No ops.
31113
31114 2010-05-14  Jan Hubicka  <jh@suse.cz>
31115
31116         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
31117         nodes already in queue.
31118         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
31119         re-enqueueing node.
31120
31121 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
31122
31123         PR debug/44136
31124         * cfgexpand.c (expand_debug_expr): If non-memory op0
31125         has BLKmode, return NULL.
31126
31127 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
31128
31129         * config.gcc: Add support for --with-cpu option for bdver1.
31130         * config/i386/i386.h (TARGET_BDVER1): New macro.
31131         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
31132         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
31133         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
31134         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
31135         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
31136         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
31137         (processor_type): Add PROCESSOR_BDVER1.
31138         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
31139         processor_type in config/i386/i386.h.
31140         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
31141         movaps <reg, reg> instead of movapd <reg, reg> when replacing
31142         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
31143         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
31144         to emit packed xor instead of packed double/packed integer
31145         xor for SSE and AVX when moving a zero value.
31146         * config/i386/sse.md: Add check for
31147         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
31148         movapd/movdqa for SSE and AVX.
31149         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
31150         single logical operations i.e and, or and xor instead of packed double
31151         logical operations for SSE and AVX.
31152         * config/i386/i386-c.c (ix86_target_macros_internal):
31153         Add PROCESSOR_BDVER1.
31154         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
31155         (has_fma4, has_xop): New.
31156         * config/i386/i386.c (bdver1_cost): New variable.
31157         (m_BDVER1): New macro.
31158         (m_AMD_MULTIPLE): Add m_BDVER1.
31159         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
31160         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
31161         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
31162         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
31163         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
31164         x86_tune_sse_partial_reg_dependency,
31165         x86_tune_sse_unaligned_load_optimal,
31166         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
31167         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
31168         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
31169         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
31170         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
31171         Enable/disable for bdver1.
31172         (processor_target_table): Add bdver1_cost.
31173         (cpu_names): Add bdver1.
31174         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
31175          processor_alias_table.
31176         (ix86_expand_vector_move_misalign): Change.
31177         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
31178         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
31179         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
31180         of movupd/movdqu for SSE and AVX.
31181         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
31182         (ix86_tune_adjust_cost): Add code for bdver1.
31183         (standard_sse_constant_opcode): Add check for
31184         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
31185         of packed double xor for SSE and AVX.
31186
31187 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
31188
31189         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
31190         result to unsigned.
31191
31192 2010-05-14  Tristan Gingold  <gingold@adacore.com>
31193
31194         * toplev.c (default_debug_hooks): Remove this variable.
31195         (process_options): Remove assignments to default_debug_hooks.
31196
31197 2010-05-14  Martin Jambor  <mjambor@suse.cz>
31198
31199         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
31200         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
31201         * langhooks.h (struct lang_hooks_for_decls): Removed field
31202         fold_obj_type_ref.
31203         * tree.c (free_lang_data): Remove assignment to
31204         lang_hooks.fold_obj_type_ref.
31205         * tree.def (OBJ_TYPE_REF): Update comment.
31206
31207 2010-05-14  Richard Guenther  <rguenther@suse.de>
31208
31209         PR tree-optimization/44124
31210         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
31211
31212 2010-05-14  Alan Modra  <amodra@gmail.com>
31213
31214         PR target/44075
31215         * config/rs6000/rs6000.c (struct machine_function): Reorder
31216         fields for better packing.  Add lr_save_state.
31217         (rs6000_ra_ever_killed): Return lr_save_state if set.
31218         (rs6000_emit_eh_reg_restore): Set lr_save_state.
31219
31220 2010-05-13  Jan Hubicka  <jh@suse.cz>
31221
31222         * varpool.c (decide_is_variable_needed): Drop code checking
31223         TREE_SYMBOL_REFERENCED.
31224
31225 2010-05-13  Jan Hubicka  <jh@suse.cz>
31226
31227         * final.c (output_addr_const): Do not call mark_decl_referenced.
31228         * cgraphunit.c (process_function_and_variable_attributes): Use
31229         mark_needed_node dirrectly.
31230         (assemble_thunk): Do not call mark_decl_referenced.
31231
31232 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
31233
31234         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
31235
31236 2010-05-13  Jeff Law  <law@redhat.com>
31237
31238         * ira-conflicts.c (print_allocno_conflicts): New function broken out
31239         from...
31240         (print_conflicts): Call print_allocno_conflicts.
31241
31242 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
31243
31244         PR debug/44104
31245         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
31246         if it is NULL.
31247
31248 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
31249
31250         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
31251         t-mingw-w64 or t-mingw-w32 for multilib configuration.
31252         * config/i386/t-mingw-w32: New.
31253         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
31254
31255 2010-05-13  Martin Jambor  <mjambor@suse.cz>
31256
31257         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
31258         gimple-fold.c).
31259         * gimple-fold.c (get_base_binfo_for_type): New function.
31260         (gimple_get_relevant_ref_binfo): Likewise.
31261         (gimple_fold_obj_type_ref_known_binfo): Likewise.
31262         (gimple_fold_obj_type_ref): Likewise.
31263         (fold_gimple_call): Simplify condition for folding virtual calls
31264         and call gimple_fold_obj_type_ref.
31265         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
31266         (gimple_fold_obj_type_ref_known_binfo): Likewise.
31267
31268 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
31269
31270         * config/rs6000/rs6000-protos.h
31271         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
31272         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
31273         (rs6000_debug_mode_dependent_address)
31274         (rs6000_mode_dependent_address_ptr): Likewise.
31275
31276 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
31277
31278         PR debug/43983
31279         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
31280         by SRA.
31281         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
31282         * tree-sra.c (create_access_replacement): Call unshare_expr before
31283         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
31284         * dwarf2out.c: Include tree-flow.h.
31285         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
31286         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
31287         Handle DW_OP_bit_piece.
31288         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
31289         construct_piece_list, adjust_piece_list): New functions.
31290         (add_var_loc_to_decl): Handle SRA optimized variables.
31291         Adjust for var_loc_note to loc field renaming.
31292         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
31293         in VAR_LOCATION note.
31294         (new_loc_descr_op_bit_piece): New function.
31295         (dw_sra_loc_expr): New function.
31296         (dw_loc_list): Use it.  Don't handle the last range after the
31297         loop, handle it inside of the loop.  Adjust for var_loc_note
31298         to loc field renaming.
31299         (add_location_or_const_value_attribute): Only special case
31300         single entry loc lists if loc is NOTE_P.  Adjust for
31301         var_loc_note to loc field renaming.
31302         (dwarf2out_var_location): Don't set newloc->var_loc_note
31303         and newloc->next here.
31304
31305 2010-05-12  Jan Hubicka  <jh@suse.cz>
31306
31307         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
31308         flag.
31309         * cgraph.h (cgraph_only_called_directly_p,
31310         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
31311         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
31312         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
31313         (assemble
31314         * ipa.c (cgraph_remove_unreachable_nodes): Use
31315         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
31316         flags.
31317         * tree-inline.c (copy_bb): Check address_taken flag.
31318         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
31319         externally_visible flag.
31320
31321 2010-05-12  Jason Merrill  <jason@redhat.com>
31322
31323         PR bootstrap/44048
31324         PR target/44099
31325         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
31326         * sdbout.c (plain_type_1): Likewise.
31327         * dwarf2out.c (is_base_type): Likewise.
31328         (gen_type_die_with_usage): Likewise.  Generate
31329         DW_TAG_unspecified_type for any LANG_TYPE.
31330
31331 2010-05-12  Jan Hubicka  <jh@suse.cz>
31332
31333         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
31334         indrect edges too.
31335         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
31336         (cgraph_clone_edge): Update.
31337         (cgraph_node_remove_callees): Remove indirect calls too.
31338         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
31339         (cgraph_create_indirect_edge): Update prototype.
31340         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
31341         is_proper_for_analysis.
31342         (add_new_function, visited_nodes, function_insertion_hook_holder,
31343         get_local_reference_vars_info, mark_address_taken, mark_address,
31344         mark_load, mark_store, check_asm_memory_clobber, check_call,
31345         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
31346         (ipa_init): Do not initialize visited_nodes;
31347         function_insertion_hook_holder.
31348         (analyze_variable): Rewrite.
31349         (analyze_function): Rewrite.
31350         (copy_local_bitmap): Remove.
31351         (duplicate_node_dat): Do not duplicate local info.
31352         (generate_summary): Simplify to only walk cgraph.
31353         (write_node_summary_p, ipa_reference_write_summary,
31354         ipa_reference_read_summary): Remove.
31355         (propagate): Do not remove function insertion;
31356         generate summary.
31357         (pass_ipa_reference): NULLify summary handling fields.
31358         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
31359         (input_edge): Input ecf_flags.
31360         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
31361         (update_indirect_edges_after_inlining): Ignore edges with unknown
31362         param.
31363
31364 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
31365
31366         * implicit-zee.c: New file.
31367         * tree-pass.h (pass_implicit_zee): Declare.
31368         * passes.c (init_optimization_passes): Add zee pass.
31369         * common.opt (fzee): New flag.
31370         * timevar.def (TV_ZEE): Define.
31371         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
31372         and beyond.
31373         * Makefile.in (implicit-zee.o): Add new build file.
31374
31375 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31376             Nathan Froyd  <froydnj@codesourcery.com>
31377
31378         * c-common.c (sync_resolve_params): Remove write-only variable.
31379
31380 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
31381
31382         * target.h (struct gcc_target): Add mode_dependent_address_p field.
31383         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
31384         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
31385         * targhooks.c (default_mode_dependent_address_p): New function.
31386         * targhooks.h (default_mode_dependent_address_p): Declare function.
31387         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
31388         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
31389         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
31390         target hook. Change return type to bool.
31391         * recog.h (mode_dependent_address_p): Change return type to bool.
31392
31393 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31394             Nathan Froyd  <froydnj@codesourcery.com>
31395
31396         * tree-mudflap.c (build_function_type_0, build_function_type_1,
31397         build_function_type_2, build_function_type_3): Remove.
31398         (mudflap_init): Use build_function_type_list.
31399
31400 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31401             Nathan Froyd  <froydnj@codesourcery.com>
31402
31403         * coverage.c (build_fn_info_value): Call build_constructor instead of
31404         build_constructor_from_list.
31405         (build_ctr_info_value): Likewise.
31406         (build_gcov_info): Likewise.
31407
31408 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
31409
31410         * tree.c (build_constructor): Compute TREE_CONSTANT for the
31411         resultant constructor.
31412         (build_constructor_single): Don't set TREE_CONSTANT.
31413         (build_constructor_from_list): Don't compute TREE_CONSTANT.
31414
31415 2010-05-12  Jan Hubicka  <jh@suse.cz>
31416
31417         * cgraph.h (struct varpool_node): Add aux.
31418         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
31419         * varpool.c (varpool_remove_node): Do not remove initializer.
31420         (varpool_reset_queue): Export.
31421         (varpool_finalize_decl): Volatile vars are forced to be output.
31422         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
31423         replaced decl.
31424         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
31425         process_references, varpool_can_remove_if_no_refs): New functions.
31426         (cgraph_remove_unreachable_nodes): Handle variables too.
31427
31428 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
31429
31430         PR target/44088
31431         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
31432
31433 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
31434
31435         PR middle-end/44085
31436         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
31437         change value of ORT_TASK.
31438         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
31439         (omp_notice_threadprivate_variable): New function.
31440         (omp_notice_variable): Call it for threadprivate variables.
31441         If enclosing ctx is a task, print enclosing task rather than
31442         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
31443         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
31444         if task has untied clause.
31445
31446         PR debug/42278
31447         * dwarf2out.c (base_type_die): Don't add name attribute here.
31448         (modified_type_die): Instead of sizetype use
31449         its underlying original type.  If a DW_TAG_base_type doesn't
31450         have name added, add __unknown__.
31451         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
31452         always call force_type_die instead.
31453
31454 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
31455
31456         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
31457         for __stack_chk_guard.
31458
31459 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31460
31461         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
31462         don't call start_source_file debug hook here...
31463         (finish_options): ... but here, after outputting predefined and
31464         command line defines and undefs.
31465
31466         PR middle-end/44071
31467         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
31468         no fallthru edge.
31469         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
31470         optimizing away empty bb with no successors, move over its
31471         footer chain to fallthru predecessor.
31472         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
31473         (rtl_split_edge): For asm goto call patch_jump_insn even if
31474         splitting fallthru edge.
31475
31476         PR c++/44059
31477         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
31478         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
31479         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
31480         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
31481         on DW.ref.* decls.
31482
31483         PR c++/44062
31484         * c-parser.c (c_parser_expression): Mark LHS of a comma
31485         expression as read if it is a decl, handled component or
31486         COMPOUND_EXPR with that on the RHS.
31487         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
31488         if it is a decl or handled component.
31489
31490 2010-05-11  Jan Hubicka  <jh@suse.cz>
31491
31492         * lto-symtab.c (lto_symtab_free): New function.
31493         * lto-streamer.h (lto_symtab_free): Declare.
31494
31495 2010-05-11  Jan Hubicka  <jh@suse.cz>
31496
31497         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
31498         that if function is needed it is reachable.
31499         (lto_output_node): See if it the function is reachable or referenced.
31500         (output_cgraph): Update call of lto_output_node.
31501         * lto-streamer.h (reachable_from_other_partition_p): Declare.
31502
31503 2010-05-11  Jan Hubicka  <jh@suse.cz>
31504
31505         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
31506         Mark as used.
31507
31508 2010-05-11  Jan Hubicka  <jh@suse.cz>
31509
31510         PR tree-optimize/44063
31511         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
31512         queue.
31513         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
31514         limits.
31515         (estimate_function_body_sizes): Compute sizes even when disregarding.
31516
31517 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
31518
31519         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
31520
31521 2010-05-11  Jan Hubicka  <jh@suse.cz>
31522
31523         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
31524         into every boundary.
31525
31526 2010-05-11  Jan Hubicka  <jh@suse.cz>
31527
31528         * matrix-reorg.c (matrix_reorg): Rebuild edges.
31529
31530 2010-05-11  Jan Hubicka  <jh@suse.cz>
31531
31532         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
31533         lto_streamer_cache_delete): Put nodes into heap.
31534         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
31535         heap.
31536
31537 2010-05-11  Jan Hubicka  <jh@suse.cz>
31538
31539         * cgraphbuild.c (cgraph_rebuild_references): New.
31540         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
31541         out extern inlines.
31542         * cgraph.h (cgraph_rebuild_references): Declare.
31543         * tree-inline.c (tree_function_versioning): Use it.
31544         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
31545
31546 2010-05-11  Jan Hubicka  <jh@suse.cz>
31547
31548         * cgraph.c: Include ipa-utils.h
31549         (cgraph_create_virtual_clone): Update references.
31550         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
31551
31552 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31553
31554         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
31555         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
31556         cache size.
31557
31558 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31559
31560         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
31561
31562 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31563
31564         * gcc.c (execute): For -### don't quote arguments that
31565         contain just alphanumerics and _/-. characters.
31566         * doc/invoke.texi: Document that change for -###.
31567
31568         PR debug/44023
31569         * df-problems.c (struct dead_debug): Add to_rescan field.
31570         (dead_debug_init): Clear to_rescan field.
31571         (dead_debug_finish): Rescan all debug insns in to_rescan
31572         bitmap and free the bitmap.
31573         (dead_debug_insert_before): Instead of rescanning debug insns
31574         immediately queue their rescanning until dead_debug_finish.
31575         (df_note_bb_compute): After dead_debug_add do continue instead
31576         of break.
31577
31578 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
31579
31580         PR debug/44028
31581         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
31582         clear also INSN_REG_USE_LIST.
31583
31584 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31585
31586         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
31587
31588 2010-05-10  Jan Hubicka  <jh@suse.cz>
31589
31590         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
31591         commited change.
31592
31593 2010-05-10  Jan Hubicka  <jh@suse.cz>
31594
31595         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
31596         Allocate encoders.
31597         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
31598         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
31599         (lto_streamer_cache_create): Init alloc pool.
31600         (lto_streamer_cache_delete): Free alloc pool.
31601         * lto-streamer.h: Include alloc pool.
31602         (lto_streamer_cache_d): Use alloc pool.
31603         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
31604
31605 2010-05-10  Jan Hubicka  <jh@suse.cz>
31606
31607         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
31608         * cgraphbuild.c: Include except.h
31609         (record_type_list, record_eh_tables): New function.
31610         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
31611
31612 2010-05-10  Jan Hubicka  <jh@suse.cz>
31613
31614         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
31615         __frame_dummy_init_array_entry, force_to_data): Attribute as used
31616         rather than unused.
31617
31618 2010-05-10  Michael Matz  <matz@suse.de>
31619
31620         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
31621         (can_reassociate_p): Use FLOAT_TYPE_P.
31622         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
31623         (vect_force_simple_reduction): ... this.
31624         * tree-parloops.c (gather_scalar_reductions): Use
31625         vect_force_simple_reduction.
31626         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
31627         vect_is_simple_reduction, add modify argument, if true rewrite
31628         "a-b" into "a+(-b)".
31629         (vect_is_simple_reduction, vect_force_simple_reduction): New
31630         functions.
31631         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
31632
31633 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
31634             Vladimir Makarov  <vmakarov@redhat.com>
31635
31636         PR rtl-optimization/44012
31637         * ira-build.c (remove_unnecessary_allocnos): Nullify
31638         regno_allocno_map of the removed allocno.
31639
31640 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31641
31642         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
31643         to /dev/null.
31644         * configure: Regenerate.
31645
31646 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31647
31648         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
31649         unused.
31650         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
31651         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
31652         support in Sun ld.
31653         * configure: Regenerate.
31654
31655 2010-05-10  Richard Guenther  <rguenther@suse.de>
31656
31657         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
31658         marked if the entry identifier is marked.
31659
31660 2010-05-10  Richard Guenther  <rguenther@suse.de>
31661
31662         * c-common.c (struct c_common_attributes): Add fnspec attribute.
31663         (handle_fnspec_attribute): New function.
31664         * gimple.h (gimple_call_return_flags): Declare.
31665         (gimple_call_arg_flags): Likewise.
31666         * gimple.c (gimple_call_arg_flags): New function.
31667         (gimple_call_return_flags): Likewise.
31668         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
31669         New argument flags.
31670         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
31671         return value flags.
31672         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
31673         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
31674         main work to ...
31675         (make_heapvar_for): ... this new function.
31676         (handle_rhs_call): Handle fnspec attribute argument specifiers.
31677         (handle_lhs_call): Likewise.
31678         (find_func_aliases): Adjust.
31679
31680 2010-05-10  Richard Guenther  <rguenther@suse.de>
31681
31682         PR tree-optimization/44050
31683         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
31684
31685 2010-05-10  Wei Guozhi  <carrot@google.com>
31686
31687         PR target/42879
31688         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
31689
31690 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31691
31692         PR c/10676
31693         * c-typeck.c (lookup_field): Take a type directly.  Update
31694         recursive calls.
31695         (build_component_ref): Update call to lookup_field.
31696         (set_init_label): Use lookup_field to find initialized field.
31697         Handle returned list of fields like a sequence of designators.
31698
31699 2010-05-09  Richard Guenther  <rguenther@suse.de>
31700
31701         PR middle-end/44024
31702         * fold-const.c (tree_single_nonzero_warnv_p): Properly
31703         handle &FUNCTION_DECL.
31704
31705 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31706
31707         PR c/4784
31708         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
31709         structures and unions recursively.
31710         (detect_field_duplicates): Move duplicate detection with a hash to
31711         detect_field_duplicates_hash.  Always use a hash if anonymous
31712         structures or unions are present.
31713         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
31714         give errors.
31715
31716 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
31717
31718         PR target/44046
31719         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
31720         detect Atom, Core 2 and Core i7.
31721
31722 2010-05-09  Richard Guenther  <rguenther@suse.de>
31723
31724         * gcc.c (store_arg): Handle temporary file deletion for
31725         joined arguments.
31726
31727 2010-05-09  Richard Guenther  <rguenther@suse.de>
31728
31729         PR middle-end/44043
31730         * ipa-inline.c (estimate_function_body_sizes): Return after
31731         disregarding inline limits.
31732
31733 2010-05-09  Richard Guenther  <rguenther@suse.de>
31734
31735         * gcc.c (store_arg): Revert last change.
31736
31737 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
31738
31739         PR middle-end/28685
31740         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
31741         (optimize_ops_list): Call it.
31742
31743 2010-05-08  Richard Guenther  <rguenther@suse.de>
31744
31745         PR tree-optimization/44030
31746         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
31747         NECESSARY flag if we propagate from a inserted expression.
31748
31749 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
31750
31751         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
31752         domain types as equal if they are both PLACEHOLDER_EXPRs.
31753
31754 2010-05-08  Richard Guenther  <rguenther@suse.de>
31755
31756         * lto-wrapper.c (run_gcc): Remove linker output from
31757         command line for LTRANS invocation.
31758
31759 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31760
31761         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
31762         lto-macho as lto_binary_reader.
31763         * target.h (struct gcc_target): New hooks lto_start and lto_end.
31764         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
31765         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
31766         in lto_start and lto_end calls.
31767         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
31768         magic numbers.
31769         (scan_prog_file): Update is_elf_or_coff call.
31770         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
31771
31772         * collect2.c (main): Fix enum comparison.
31773
31774         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
31775         Add prototypes.
31776         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
31777         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
31778         and TARGET_ASM_LTO_END.
31779         * darwin.c: Include obstack.h and lto-streamer.h.
31780         (lto_section_names_offset, lto_section_names_obstack,
31781         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
31782         global variables.
31783         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
31784         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
31785         to a temporary file.
31786         (darwin_asm_lto_end): New function.  Restore asm_out_file.
31787         (darwin_asm_named_section): For LTO sections, replace the name with
31788         the offset of the section name in a string table, and build this
31789         table.
31790         (darwin_file_start): Initialize global vars for LTO support.
31791         (darwin_file_end): If output to asm_out_file was redirected, append it
31792         to the proper asm_out_file here.  Add the section names section.
31793
31794 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31795
31796         * c-pragma.c (pending_weak_d, pending_weak): New.
31797         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
31798         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
31799         handle_pragma_weak): Update the uses of pending_weaks.
31800
31801 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31802
31803         PR documentation/44016
31804         * doc/standards.texi (Standards): Link to unversioned
31805         cxx0x_status.html page.
31806
31807 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
31808
31809         PR target/43708
31810         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
31811         in addition to TREE_USED, to avoid "set but unused" warnings.
31812
31813 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31814
31815         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
31816         (is_loop_prefetching_profitable): Do not insert prefetches
31817         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
31818         times the prefetch ahead distance.
31819
31820 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31821
31822         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
31823         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
31824         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
31825         the unroll_factor.
31826
31827 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
31828
31829         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
31830         a diagnostic info when the insn-to-mem ratio is too small.
31831
31832 2010-05-07  Richard Guenther  <rguenther@suse.de>
31833
31834         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
31835         the linker plugin.
31836         (store_arg): Queue temp_filename for deletion instead of
31837         the whole argument.
31838
31839 2010-05-07  Richard Guenther  <rguenther@suse.de>
31840
31841         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
31842         (run_gcc): Handle LTRANS phase invocation.
31843         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
31844
31845 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
31846
31847         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
31848         this is also meaningful on PARM_DECLs and RESULT_DECLs.
31849
31850 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31851
31852         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
31853
31854 2010-05-07  Richard Guenther  <rguenther@suse.de>
31855
31856         PR tree-optimization/44020
31857         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
31858         code when PRE is not yet initialized.
31859
31860 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31861
31862         * config/mips/dbxmdebug.h: Remove.
31863         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
31864
31865 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
31866
31867         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
31868         with null pointer and also warn about ordered comparison of zero with
31869         pointer if -Wextra.
31870
31871 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
31872
31873         * graphite-blocking.c
31874         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
31875         * graphite-clast-to-gimple.c
31876         (clast_to_gcc_expression): Same.
31877         (precision_for_value): Same.
31878         (precision_for_interval): Same.
31879         (gcc_type_for_interval): Same.
31880         (graphite_create_new_guard): Same.
31881         (compute_bounds_for_level): Same.
31882         (graphite_create_new_loop_guard): Same.
31883         * graphite-interchange.c
31884         (build_linearized_memory_access): Same.
31885         (pdr_stride_in_loop): Same.
31886         (memory_strides_in_loop_1): Same.
31887         (memory_strides_in_loop): Same.
31888         (extend_scattering): Same.
31889         (psct_scattering_dim_for_loop_depth): Same.
31890         (pbb_number_of_iterations): Same.
31891         * graphite-poly.h
31892         (debug_iteration_domains): Same.
31893         * graphite-ppl.c
31894         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
31895         (ppl_set_inhomogeneous_gmp): Same.
31896         (ppl_strip_loop): Same.
31897         (ppl_lexico_compare_linear_expressions): Same.
31898         (ppl_read_polyhedron_matrix): Same.
31899         (ppl_max_for_le_pointset): Same.
31900         * graphite-ppl.h
31901         (ppl_read_polyhedron_matrix): Same.
31902         (tree_int_to_gmp): Same.
31903         (gmp_cst_to_tree): Same.
31904         (ppl_set_inhomogeneous): Same.
31905         (ppl_set_inhomogeneous_tree): Same.
31906         (ppl_set_coef): Same.
31907         (ppl_set_coef_tree): Same.
31908         * graphite-sese-to-poly.c
31909         (build_pbb_scattering_polyhedrons): Same.
31910         (build_scop_scattering): Same.
31911         (scan_tree_for_params_right_scev): Same.
31912         (scan_tree_for_params): Same.
31913         (find_params_in_bb): Same.
31914         (find_scop_parameters): Same.
31915         (add_upper_bounds_from_estimated_nit): Same.
31916         (build_loop_iteration_domains): Same.
31917         (add_condition_to_domain): Same.
31918         (pdr_add_memory_accesses): Same.
31919
31920 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
31921
31922         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
31923         CLooG's value_* macros to their respective mpz_* counterparts.
31924         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
31925         (graphite_create_new_loop_guard): Same.
31926         * graphite-interchange.c (build_linearized_memory_access): Same.
31927         (pdr_stride_in_loop): Same.
31928         (memory_strides_in_loop_1): Same.
31929         (1st_interchange_profitable_p): Same.
31930         * graphite-poly.c (extend_scattering): Same.
31931         (psct_scattering_dim_for_loop_depth): Same.
31932         (pbb_number_of_iterations): Same.
31933         (pbb_number_of_iterations_at_time): Same.
31934         * graphite-poly.h (new_1st_loop): Same.
31935         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
31936         (oppose_constraint): Same.
31937         (insert_constraint_into_matrix): Same.
31938         (ppl_set_inhomogeneous_gmp): Same.
31939         (ppl_set_coef_gmp): Same.
31940         (ppl_strip_loop): Same.
31941         (ppl_lexico_compare_linear_expressions): Same.
31942         (ppl_max_for_le_pointset): Same.
31943         (ppl_min_for_le_pointset): Same.
31944         (ppl_build_realtion): Same.
31945         * graphite-ppl.h (gmp_cst_to_tree): Same.
31946         (ppl_set_inhomogeneous): Same.
31947         (ppl_set_inhomogeneous_tree): Same.
31948         (ppl_set_coef): Same.
31949         (ppl_set_coef_tree): Same.
31950         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
31951         (build_scop_scattering): Same.
31952         (add_value_to_dim): Same.
31953         (scan_tree_for_params_right_scev): Same.
31954         (scan_tree_for_params_int): Same.
31955         (scan_tree_for_params): Same.
31956         (find_params_in_bb): Same.
31957         (find_scop_parameters): Same.
31958         (add_upper_bounds_from_estimated_nit): Same.
31959         (build_loop_iteration_domains): Same.
31960         (create_linear_expr_from_tree): Same.
31961         (add_condition_to_domain): Same.
31962         (pdr_add_memory_accesses): Same.
31963
31964 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
31965             Jason Merrill  <jason@redhat.com>
31966
31967         * c-common.c (c_common_reswords): Add nullptr.
31968         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
31969         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
31970         (gen_type_die_with_usage): Likewise.
31971         * dbxout.c (dbxout_type): Likewise.
31972         * sdbout.c (plain_type_1): Likewise.
31973
31974 2010-05-06  Jason Merrill  <jason@redhat.com>
31975
31976         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
31977         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
31978         ret appropriately.
31979         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
31980
31981         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
31982         stripping WITH_SIZE_EXPR.
31983         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
31984         change.
31985
31986 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31987
31988         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
31989         list of obsolete configurations.
31990         Disabled check for obsolete configurations.
31991         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
31992         Removed support for previous versions.
31993         * config/mips/iris.h: Removed.
31994         * config/mips/iris5.h: Removed.
31995         * config/mips/iris6.h: Merged old iris.h contents.
31996         (TARGET_IRIX): Removed.
31997         (DRIVER_SELF_SPECS): Removed mabi=32.
31998         (IDENT_ASM_OP): Removed undef.
31999         (STARTFILE_SPEC): Removed mabi=32.
32000         (ENDFILE_SPEC): Likewise.
32001         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
32002         (MACHINE_TYPE): Update for IRIX 6.5.
32003         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
32004         TARGET_IRIX by TARGET_IRIX6.
32005         (mips_file_start): Likewise.
32006         (mips_output_external): Remove IRIX 5/6 O32 support.
32007         (mips_output_function_prologue): Likewise.
32008         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
32009         TARGET_IRIX6.
32010         (TARGET_CPU_CPP_BUILTINS): Likewise.
32011         (TARGET_IRIX): Removed.
32012         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
32013         (MULTILIB_DIRNAMES): Removed 32.
32014         (MULTILIB_OSDIRNAMES): Removed ../lib.
32015         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
32016         (Specific, mips-sgi-irix5): Document removal.
32017         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
32018         Remove references to older IRIX 6 releases and the O32 ABI.
32019
32020 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
32021
32022         PR bootstrap/43994
32023         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
32024         instead of DF_REF_REAL_REG.
32025
32026 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
32027
32028         PR target/43888
32029         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
32030         handling to still return true for x64 targets.
32031
32032 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
32033
32034         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
32035
32036 2010-05-06  Jan Hubicka  <jh@suse.cz>
32037
32038         PR tree-optimization/43791
32039         * ipa-inline.c (update_caller_keys): Remove bogus
32040         disregard_inline_limits check.
32041
32042 2010-05-06  Michael Matz  <matz@suse.de>
32043
32044         PR tree-optimization/43984
32045         * tree-ssa-pre.c (inserted_phi_names): Remove.
32046         (inserted_exprs): Change to bitmap.
32047         (create_expression_by_pieces): Set bits, don't append to vector.
32048         (insert_into_preds_of_block): Don't handle inserted_phi_names.
32049         (eliminate): Don't look at inserted_phi_names, remove deleted
32050         insns from inserted_exprs.
32051         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
32052         (init_pre, fini_pre): Allocate and free bitmaps.
32053         (execute_pre): Insert insns on edges before elimination.
32054
32055 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
32056
32057         * tree.c (initializer_zerop): Handle STRING_CST.
32058
32059 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32060
32061         PR 40989
32062         * doc/invoke.texi (Wimplicit): Document as C only.
32063         * opts.c (common_handle_option): Add argument kind.
32064         (handle_option): Rename as read_cmdline_option. Factor out code to...
32065         (handle_option): ... here. New.
32066         (handle_options): Rename as read_cmdline_options.
32067         (decode_options): Update call.
32068         (set_option): Use option index instead of option pointer. Classify
32069         diagnostics correctly.
32070         (enable_warning_as_error): Call handle_option.
32071         * opts.h (set_option): Update declaration.
32072         (handle_option): Declare.
32073         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
32074         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
32075         * c-opts.c (set_Wimplicit): Delete.
32076         (c_family_lang_mask): New static constant.
32077         (c_common_handle_option): Add argument kind. Use handle_option
32078         instead of set_Wimplicit.
32079         (c_common_post_options): warn_implicit and warn_implicit_int
32080         are disabled by default.
32081         * c-common.c (warn_implicit): Do not define here.
32082         * c-common.h (warn_implicit): Do not declare here.
32083         (c_common_handle_option): Update declaration.
32084         * lto-opts.c (lto_reissue_options): Update call to set_option.
32085
32086 2010-05-06  Richard Guenther  <rguenther@suse.de>
32087
32088         PR tree-optimization/43571
32089         * domwalk.c (walk_dominator_tree): Walk the dominator
32090         sons in more optimal order.
32091
32092 2010-05-06  Richard Guenther  <rguenther@suse.de>
32093
32094         PR tree-optimization/43934
32095         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
32096         (stmt_cost): Likewise.
32097         (extract_true_false_args_from_phi): New helper.
32098         (determine_max_movement): For PHI nodes verify we can hoist them
32099         and compute their cost.
32100         (determine_invariantness_stmt): Handle PHI nodes.
32101         (move_computations_stmt): Likewise.  Hoist PHI nodes in
32102         if-converted form using COND_EXPRs.
32103         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
32104         (tree_ssa_lim): Likewise.
32105         * tree-flow.h (tree_ssa_lim): Adjust prototype.
32106         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
32107
32108 2010-05-06  Richard Guenther  <rguenther@suse.de>
32109
32110         PR tree-optimization/43987
32111         * tree-ssa-structalias.c (could_have_pointers): For possibly
32112         address-taken variables force pointers to be recorded.
32113         (create_variable_info_for_1): Likewise.
32114         (push_fields_onto_fieldstack): Pass in wheter all fields
32115         must have pointers.
32116         (find_func_aliases): Query types instead of vars whether
32117         they contain pointers where appropriate.
32118
32119 2010-05-06  Jan Hubicka  <jh@suse.cz>
32120
32121         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
32122         (record_reference, mark_address, mark_load, mark_store): Record
32123         references.
32124         (record_references_in_initializer): Update call of record_references.
32125         (rebuild_cgraph_edges): Remove all references before rebuiding.
32126         * cgraph.c (cgraph_create_node): Clear ref list.
32127         (cgraph_remove_node): Remove references.
32128         (dump_cgraph_node): Dump references.
32129         (cgraph_clone_node): Clone references.
32130         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
32131         (struct cgraph_node, varpool_node): Add ref_lst.
32132         * ipa-ref.c: New file.
32133         * ipa-ref.h: New file.
32134         * ipa-ref-inline.h: New file.
32135         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
32136         (referenced_from_other_partition_p): New function.
32137         (lto_output_varpool_node): Take set arugment; call
32138         referenced_from_other_partition.
32139         (lto_output_ref): New.
32140         (add_references): New.
32141         (output_refs): New.
32142         (output_cgraph): Compute boundary based on references; output refs.
32143         (output_varpool): Accept cgraph_node_set argument.
32144         (input_ref): New.
32145         (input_refs): New.
32146         (input_cgraph): Call input_refs.
32147         * lto-section-in.c (lto_section_name): Add refs.
32148         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
32149         (ipa-ref.o): New file.
32150         * varpool.c (varpool_node): Clear ipa ref list.
32151         (varpool_remove_node): Remove references.
32152         (dump_varpool_node): Dump references.
32153         (varpool_assemble_decl): Only compile finalized ones.
32154         (varpool_extra_name_alias): Initialize ref list.
32155         * lto-streamer.c (lto-get_section_name): Add .refs section.
32156         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
32157         (referenced_from_other_partition_p): Declared.
32158
32159 2010-05-06  Ira Rosen  <irar@il.ibm.com>
32160
32161         PR tree-optimization/43901
32162         * tree-vect-stmts.c (vectorizable_call): Assert that vector
32163         type is not NULL if it's transformation phase, and return
32164         FALSE if it's analysis.
32165         (vectorizable_conversion, vectorizable_operation,
32166         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
32167
32168 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
32169
32170         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
32171         Delete.
32172         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
32173         New define.
32174         * config/mips/mips-protos.h
32175         (mips_small_register_classes_for_mode_p): Delete prototype.
32176
32177 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
32178
32179         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
32180         * config/arm/arm.c (multiple_operation_profitable_p,
32181         compute_offset_order): New static functions.
32182         (load_multiple_sequence, store_multiple_sequence): Use them.
32183         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
32184         memory offsets, not register numbers.
32185         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
32186
32187 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
32188
32189         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
32190         (get_pending_sizes, put_pending_size, put_pending_sizes):
32191         Update the uses of pending_sizes.
32192         * c-decl.c (store_parm_decls): Likewise.
32193         * c-tree.h (struct c_arg_info): Likewise.
32194         * tree.h: Update the prototype for get_pending_sizes and
32195         put_pending_sizes.
32196
32197 2010-05-05  Jason Merrill  <jason@redhat.com>
32198
32199         PR debug/43370
32200         * c-common.c (handle_aligned_attribute): Respect
32201         ATTR_FLAG_TYPE_IN_PLACE.
32202
32203         PR testsuite/43758
32204         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
32205         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
32206         (TARGET_INITIALIZER): Use it.
32207         * c-common.c (attribute_takes_identifier_p): Call it.
32208         * c-common.h: Update prototype.
32209         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
32210         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
32211
32212 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
32213
32214         PR debug/43950
32215         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
32216         DW_ID_down_case for Fortran compilation units.
32217
32218 2010-05-05  Jan Hubicka  <jh@suse.cz>
32219
32220         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
32221         handle aliases.
32222
32223 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
32224
32225         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
32226         a variable-sized RESULT_DECL.
32227
32228 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
32229
32230         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
32231
32232 2010-05-05  Jason Merrill  <jason@redhat.com>
32233
32234         PR c++/43787
32235         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
32236         returns GS_OK.
32237         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
32238
32239 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
32240             Jakub Jelinek  <jakub@redhat.com>
32241
32242         PR debug/43478
32243         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
32244         (dead_debug_init, dead_debug_finish): New functions.
32245         (dead_debug_add, dead_debug_insert_before): Likewise.
32246         (df_note_bb_compute): Initialize a dead_debug object, add dead
32247         debug uses to it, insert debug bind insns before death insns,
32248         reset debug insns that refer to pending uses at the end.
32249         * rtl.h (make_debug_expr_from_rtl): New prototype.
32250         * varasm.c (make_debug_expr_from_rtl): New function.
32251
32252 2010-05-05  Jan Hubicka  <jh@suse.cz>
32253
32254         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
32255         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
32256         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
32257         lto_varpool_encoder_deref, lto_varpool_encoder_size,
32258         lto_varpool_encoder_encode_initializer_p,
32259         lto_set_varpool_encoder_encode_initializer): New functions.
32260         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
32261         call output_varpool.
32262         (input_varpool_node): Do not always set analyzed.
32263         (input_cgraph_1): Return vector of cgraph nodes.
32264         (input_varpool_1): Return vector of varpools.
32265         (input_cgraph): Free the vectors.
32266         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
32267         output only initializers needed.
32268         (lto_output): Only call output_cgraph.
32269         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
32270         * lto-section-out.c (lto_new_out_decl_state): Initialize
32271         state->varpool_node_encoder.
32272         * lto-streamer.h (lto_varpool_encoder_d): New.
32273         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
32274         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
32275         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
32276         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
32277         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
32278         Declare.
32279         (output_varpool, input_varpool): Remove declarations.
32280
32281 2010-05-05  Jan Hubicka  <jh@suse.cz>
32282
32283         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
32284         with body can prevail.
32285
32286 2010-05-05  Jan Hubicka  <jh@suse.cz>
32287
32288         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
32289         size.
32290
32291 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32292
32293         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
32294
32295         * gengtype.h (erro_at_line): Constify pos argument.
32296
32297         * gengtype.c: Include hashtab.h.
32298         (enum gc_used): Document GC_MAYBE_POINTED_TO.
32299         (error_at_line): Constify pos argument.
32300         (do_typedef): Initialize p->opt field.
32301         (get_file_gtfilename): Fix comment typo.
32302         (struct walk_type_data): Constify line field.
32303         (get_output_file_for_structure): New function.
32304         (write_local_func_for_structure): Constify orig_s argument.
32305         Use get_output_file_for_structure.
32306         (write_func_for_structure): Use get_output_file_for_structure.
32307         (INDENT): New define.
32308         (dump_pair, dump_type, dump_type_list, dump_typekind)
32309         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
32310         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
32311         functions.
32312         (seen_types): New variable.
32313         (main): New variable do_dump.  Process "-d" command line option.
32314         Call dump_everything if dump requested.
32315
32316 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
32317
32318         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
32319         in a temporary instead of invoking the macro multiple times.
32320         (track_expr_p): Likewise.
32321
32322 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
32323
32324         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
32325         per new semantics.
32326         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
32327         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
32328         conditions for printing notes.
32329         * common.opt (-Wcoverage-mismatch): Allow negative, default to
32330         true, update documentation.
32331         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
32332
32333 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
32334
32335         PR c/43981
32336         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
32337         on dimen.
32338
32339 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
32340
32341         PR target/43799
32342         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
32343         (*sse_prologue_save_insn1): Likewise.
32344         (SSE prologue save splitter): Likewise.
32345
32346 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
32347
32348         * tree.c (free_lang_data_in_one_sizepos): New inline function.
32349         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
32350         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
32351         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
32352         all decls.  Call it on DECL_FIELD_OFFSET of fields.
32353         (find_decls_types_r): Follow DECL_VALUE_EXPR.
32354         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
32355
32356 2010-05-04  Martin Jambor  <mjambor@suse.cz>
32357
32358         * tree-sra.c (build_access_from_expr_1): The first parameter type
32359         changed to simple tree.
32360         (build_access_from_expr): Likewise, gsi parameter was eliminated.
32361         (scan_assign_result): Renamed to assignment_mod_result, enum elements
32362         renamed as well.
32363         (build_accesses_from_assign): Removed all parameters except for a
32364         simple gimple statement.  Now returns a simple bool.
32365         (scan_function): All non-analysis parts moved to separate functions
32366         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
32367         parameters and updated both callers.
32368         (sra_modify_expr): Removed parameter data.
32369         (sra_modify_function_body): New function.
32370         (perform_intra_sra): Call sra_modify_function_body to modify the
32371         function body.
32372         (replace_removed_params_ssa_names): Parameter data changed into
32373         adjustments vector.
32374         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
32375         changed the parameter dont_convert to convert with the opposite
32376         meaning.
32377         (sra_ipa_modify_assign): Parameter data changed into adjustments
32378         vector, return value changed to bool.
32379         (ipa_sra_modify_function_body): New function.
32380         (sra_ipa_reset_debug_stmts): Updated a comment.
32381         (modify_function): Use ipa_sra_modify_function_body to modify function
32382         body.
32383
32384 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
32385
32386         PR middle-end/43671
32387         * alias.c (true_dependence): Handle the same VALUE in x and mem.
32388         (canon_true_dependence): Likewise.
32389         (write_dependence_p): Likewise.
32390
32391 2010-05-04  Jan Hubicka  <jh@suse.cz>
32392
32393         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
32394         * cgraphbuild.c: Include ipa-utils.h
32395         (record_reference_ctx): New struct.
32396         (record_reference): Simplify to work on initializers; not statements.
32397         (mark_address, mark_load, mark_store): New.
32398         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32399         walk PHI nodes too.
32400         (record_references_in_initializer): Update use of record_reference.
32401         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32402         walk PHI nodes too.
32403
32404 2010-05-04  Jan Hubicka  <jh@suse.cz>
32405
32406         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
32407         node will be removed anyway.
32408         (lto_varpool_replace_node): Allow also unanalyzed nodes;
32409         relink aliases of node into prevailing node.
32410         * varpool.c (varpool_remove_node): Remove aliases properly;
32411         when removing node, remove all its aliases too; remove DECL_INITIAL
32412         of removed node; ggc_free the varpool node.
32413
32414 2010-05-04  Richard Guenther  <rguenther@suse.de>
32415
32416         PR tree-optimization/43879
32417         * tree-ssa-structalias.c (alias_get_name): Use
32418         DECL_ASSEMBLER_NAME if available.
32419         (create_function_info_for): Return the varinfo node.
32420         (ipa_pta_execute): Associate same-body aliases and extra names
32421         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
32422
32423 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
32424
32425         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
32426
32427 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
32428
32429         PR bootstrap/43964
32430         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
32431         only if HONOR_REG_ALLOC_ORDER is not defined.
32432
32433 2010-05-04  Richard Guenther  <rguenther@suse.de>
32434
32435         PR tree-optimization/43949
32436         * tree-vrp.c (extract_range_from_binary_expr): Only handle
32437         TRUNC_MOD_EXPR.
32438
32439 2010-04-26  Jason Merrill  <jason@redhat.com>
32440
32441         * c.opt (-fstrict-enums): New.
32442         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
32443
32444 2010-05-03  David Ung  <davidu@mips.com>
32445             James E. Wilson  <wilson@codesourcery.com>
32446
32447         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
32448         emit the trap instruction before the divide for TUNE_74K.
32449
32450 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
32451
32452         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
32453         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
32454         based on the above, for new target hook.
32455
32456         * hooks.c (hook_bool_mode_true): New generic hook.
32457         * hooks.h (hook_bool_mode_true): Add prototype.
32458
32459         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
32460         target hook.
32461         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
32462         target hook, set to hook_bool_mode_false.
32463         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
32464         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
32465         with targetm.small_register_classes_for_mode_p.
32466         (find_reusable_reload): Likewise.
32467         (combine_reloads): Likewise.
32468         * reload1.c (reload_as_needed): Likewise.
32469         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
32470         * ifcvt.c (noce_process_if_block, check_cond_move_block,
32471         dead_or_predicable): Likewise.
32472         * regmove.c (optimize_reg_copy_1): Likewise.
32473         * calls.c (prepare_call_address): Likewise.
32474         (precompute_register_parameters): Likewise.
32475
32476         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
32477         hook definition.
32478         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
32479         implementation of the hook that considers all register classes
32480         small except for SH64.
32481         (sh_override_options): Use the new hook.
32482         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
32483         Add prototype.
32484
32485         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
32486         hook definition.
32487         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
32488         implementation of the hook that considers all register classes
32489         small for THUMB1.
32490         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
32491         Add prototype.
32492
32493         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
32494         hook definition.
32495         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
32496         implementation of the hook that considers all register classes
32497         small for MIPS16.
32498         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
32499         Add prototype.
32500
32501         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
32502         hook definition.
32503         * config/m32c/m32c.h: Likewise.
32504         * config/pdp11/pdp11.h: Likewise.
32505         * config/avr/avr.h: Likewise.
32506         * config/xtensa/xtensa.h: Likewise.
32507         * config/m68hc11/m68hc11.h: Likewise.
32508         * config/mn10300/mn10300.h: Likewise.
32509         * config/mcore/mcore.h: Likewise.
32510         * config/h8300/h8300.h: Likewise.
32511         * config/bfin/bfin.h: Likewise.
32512
32513         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
32514         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
32515
32516 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
32517
32518         * double-int.h (tree_to_double_int): Remove macro.
32519         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
32520         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32521         (tree_to_double_int): New function.
32522         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
32523         Move ...
32524         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32525
32526 2010-05-03  Richard Guenther  <rguenther@suse.de>
32527
32528         PR tree-optimization/43971
32529         * tree-ssa-structalias.c (get_constraint_for_1): Fix
32530         constraints in the !flag_delete_null_pointer_checks case.
32531
32532 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
32533
32534         PR debug/43972
32535         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
32536         result mode matches original rtl mode.
32537
32538 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
32539
32540         PR target/43888
32541         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
32542
32543 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32544
32545         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
32546         when processing flag options.
32547
32548 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32549
32550         * gcov-iov.c (main): Change format string placeholder
32551         from %#08x to 0x%08x.
32552         * genchecksum.c (dosum): Change format string placeholder
32553         from %#02x to 0x%02x.
32554
32555 2010-05-02  Richard Guenther  <rguenther@suse.de>
32556
32557         PR tree-optimization/43879
32558         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
32559
32560 2010-05-02  Bruno Haible  <bruno@clisp.org>
32561
32562         * doc/extend.texi (Function Attributes): Fix a typo.
32563
32564 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32565
32566         Revert:
32567         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
32568         placeholder from 0x%x to %#x.
32569         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32570         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
32571         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
32572         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
32573         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
32574         * config/i386/i386.c (ix86_target_string): Ditto.
32575         * config/i386/i386.c (output_pic_addr_const): Ditto.
32576         (print_operand): Ditto.
32577
32578 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32579
32580         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
32581         placeholder from 0x%x to %#x.
32582         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
32583         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
32584         (ASM_OUTPUT_DEBUG_DATA): Ditto.
32585         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
32586         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
32587         * optc-gen.awk: Ditto.
32588         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
32589         (HOST_WIDE_INT_PRINT_HEX): Ditto.
32590         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
32591         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32592
32593 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32594
32595         * target.h (struct calls): Add function_value_regno_p field.
32596         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
32597         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
32598         * targhooks.c (default_function_value_regno_p): New function.
32599         * targhooks.h (default_function_value_regno_p): Declare function.
32600         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
32601         * builtins.c. (apply_result_size): (Ditto.).
32602         * combine.c. (likely_spilled_retval_p): (Ditto.).
32603         * mode-switching.c. Include 'target.h'.
32604         (create_pre_exit): Use function_value_regno_p hook.
32605         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
32606         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
32607         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
32608
32609         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
32610         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
32611         (ix86_function_value_regno_p): Declare as static, change argument
32612         type to const unsigned int.
32613         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
32614
32615 2010-05-01  Richard Guenther  <rguenther@suse.de>
32616
32617         PR tree-optimization/43949
32618         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
32619         types.
32620         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
32621
32622 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32623
32624         * rtl.h (CONST_DOUBLE_P): Define.
32625         (rtx_to_double_int): Declare.
32626         * emit-rtl.c (rtx_to_double_int): New function.
32627         * dwarf2out.c (insert_double): New function.
32628         (loc_descriptor, add_const_value_attribute): Clean up, use
32629         rtx_to_double_int and insert_double functions.
32630
32631 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
32632
32633         * doc/extend.texi (Inline): Add missing return keyword to examples.
32634         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
32635         "command-line".
32636
32637 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
32638
32639         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
32640         the variable part of the offset as well.  Use highest_pow2_factor for
32641         all alignment checks.
32642
32643 2010-04-30  Richard Guenther  <rguenther@suse.de>
32644
32645         PR tree-optimization/43879
32646         * tree-ssa-structalias.c (type_could_have_pointers): Functions
32647         can have pointers.
32648
32649 2010-04-30  Jan Hubicka  <jh@suse.cz>
32650
32651         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
32652         varpool.
32653         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
32654
32655 2010-04-30  Jan Hubicka  <jh@suse.cz>
32656
32657         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
32658         New.
32659         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
32660         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
32661         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
32662         cgraph_node_set_needs_ltrans_p): Remove.
32663
32664 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32665
32666         * sdbout.c: Include vec.h, do not include varray.h.
32667         (deferred_global_decls, sdbout_global_decl,
32668         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
32669         * toplev.c: Do not include varray.h.
32670         (dump_memory_report): Do not dump VARRAY statistics.
32671         * gengtype.c (open_base_file): Ignore varray.h.
32672         * Makefile.in: Update for abovementioned changes.
32673         Remove all traces of varray.c and varray.h.
32674         * varray.c: Remove file.
32675         * varray.h: Remove file.
32676
32677 2010-04-30  Jan Hubicka  <jh@suse.cz>
32678
32679         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
32680         references.
32681
32682 2010-04-30  Jan Hubicka  <jh@suse.cz>
32683
32684         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
32685         needed.
32686
32687 2010-04-30  Richard Guenther  <rguenther@suse.de>
32688
32689         * tree-ssa-structalias.c (get_constraint_for_1): Generate
32690         constraints for CONSTRUCTOR.
32691
32692 2010-04-30  Richard Guenther  <rguenther@suse.de>
32693
32694         PR lto/43946
32695         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
32696         first after all lowering passes.
32697
32698 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32699
32700         * toplev.c: Include varray.h for statistics dumping.
32701         * tree.h: Do not declare varray_head_tag.
32702         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
32703         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
32704         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
32705         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
32706         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
32707         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
32708         c-common.c, c-common.h, reg-stack.c, basic-block.h,
32709         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
32710         include varray.h.
32711         * Makefile.in: Update for abovementioned changes.
32712
32713 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
32714
32715         PR debug/43942
32716         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
32717
32718 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
32719
32720         * config/picochip/picochip.c (picochip_legitimize_address): Define.
32721         Use this function to do machine-specific conversion.
32722         (picochip_legitimize_reload_address): Likewise.
32723         (picochip_legitimate_address_p): Check valid base register only if
32724         strict.
32725         (picochip_check_conditional_copy): Check for modw only if opnd is
32726         register.
32727         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
32728         to call the function in c.
32729         * config/picochip/picochip-protos.h
32730         (picochip_legitimize_reload_address): Define.
32731         * config/picochip/picochip.md (supported_compare1): Define.
32732
32733 2010-04-30  Jan Hubicka  <jh@suse.cz>
32734
32735         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
32736         (cgraph_global_info): Remove inlined.
32737         (LTO_cgraph_tag_names): Remove.
32738         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
32739         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
32740         simplify cgraph tags and document.
32741         (lto_output_node): Use only LTO_cgraph_unavail_node and
32742         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
32743         for_functions_valid, global info, process and output flags.
32744         (input_overwrite_node): Initialize estimated stack size and
32745         estimated growth.  Do not read flags we no longer store.
32746         (input_node): Likewise do not read info no longer stored.
32747         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
32748         flag.
32749
32750 2010-04-30  Richard Guenther  <rguenther@suse.de>
32751
32752         PR tree-optimization/43879
32753         * tree-ssa-structalias.c (get_constraint_for_1): Properly
32754         handle non-zero initializers.
32755
32756 2010-04-30  Richard Guenther  <rguenther@suse.de>
32757
32758         * builtins.c (fold_builtin_1): Delete free (0).
32759
32760 2010-04-29  Jan Hubicka  <jh@suse.cz>
32761
32762         * gengtype.c (open_base_files): Add lto-streamer.h
32763         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
32764         (pass_ipa_cp): GGC collect.
32765         * toplev. (compile_file): Do not output symbols.
32766         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
32767         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
32768         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
32769         * lto-section-in.c: Include ggc.h
32770         (lto_new_in_decl_state): Alloc in GGC.
32771         (lto_delete_in_decl_state): Likewise.
32772         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
32773         Collect.
32774
32775 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32776
32777         PR target/42895
32778         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
32779         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
32780         (HONOR_REG_ALLOC_ORDER): Describe new macro.
32781         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
32782         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
32783         account only if HONOR_REG_ALLOC_ORDER is not defined.
32784         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
32785         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
32786
32787 2010-04-29  Jon Grant  <04@jguk.org>
32788
32789         * collect2.c (vflag): Change type from int to bool.
32790         (debug): Likewise.
32791         (helpflag): New global bool.
32792         (main): Set vflag and debug with boolean, not integer truth values.
32793         Accept new "--help" option and output usage text if found.
32794         * collect2.h (vflag): Update prototype.
32795         (debug): Likewise.
32796
32797 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
32798
32799         PR bootstrap/43936
32800         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
32801
32802 2010-04-29  Richard Guenther  <rguenther@suse.de>
32803
32804         PR bootstrap/43935
32805         * plugin.h (invoke_plugin_callbacks): Annotate arguments
32806         with ATTRIBUTE_UNUSED.
32807
32808 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
32809
32810         PR target/43921
32811         * config/i386/i386.c (get_some_local_dynamic_name): Replace
32812         INSN_P with NONDEBUG_INSN_P.
32813         (distance_non_agu_define): Likewise.
32814         (distance_agu_use): Likewise.
32815
32816 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32817
32818         From Dominique d'Humieres  <dominiq@lps.ens.fr>
32819         PR bootstrap/43858
32820         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
32821         test_set.
32822
32823 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
32824
32825         * plugin.h (invoke_plugin_callbacks): New inline function.
32826         * plugin.c (flag_plugin_added): New global flag.
32827         (add_new_plugin): Initialize above flag.
32828         (invoke_plugin_callbacks): Rename to ...
32829         (invoke_plugin_callbacks_full): ... this.
32830
32831 2010-04-28  Jan Hubicka  <jh@suse.cz>
32832
32833         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
32834         (lto_varpool_replace_node): New.
32835         (lto_symtab_resolve_symbols): Resolve varpool nodes.
32836         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
32837         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
32838         * cgraph.h (varpool_node_ptr): New type.
32839         (varpool_node_ptr): New vector.
32840         (varpool_node_set_def): New structure.
32841         (varpool_node_set): New type.
32842         (varpool_node_set): New vector.
32843         (varpool_node_set_element_def): New structure.
32844         (varpool_node_set_element, const_varpool_node_set_element): New types.
32845         (varpool_node_set_iterator): New type.
32846         (varpool_node): Add prev pointers, add used_from_other_partition,
32847         in_other_partition.
32848         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
32849         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
32850         varpool_get_node, varpool_remove_node): Declare.
32851         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
32852         varpool_node_set_size): New inlines.
32853         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
32854         * tree-pass.h (varpool_node_set_def): Forward declare.
32855         (ipa_opt_pass_d): Summary writting takes vnode sets too.
32856         (ipa_write_optimization_summaries): Update prototype.
32857         * ipa-cp.c (ipcp_write_summary): Update.
32858         * ipa-reference.c (ipa_reference_write_summary): Update.
32859         * lto-cgraph.c (lto_output_varpool_node): New static function.
32860         (output_varpool): New function.
32861         (input_varpool_node): New static function.
32862         (input_varpool_1): New function.
32863         (input_cgraph): Input varpool.
32864         * ipa-pure-const.c (pure_const_write_summary): Update.
32865         * lto-streamer-out.c (lto_output): Update, output varpool too.
32866         (write_global_stream): Kill WPA hack.
32867         (produce_asm_for_decls): Update.
32868         (output_alias_pair_p): Handle variables.
32869         (output_unreferenced_globals): Output only needed partition of varpool.
32870         * ipa-inline.c (inline_write_summary): Update.
32871         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
32872         cgraph.
32873         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
32874         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
32875         varpool_node_set_new, varpool_node_set_add,
32876         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
32877         debug_varpool_node_set): New functions.
32878         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
32879         (execute_one_pass): Process new decls too.
32880         (ipa_write_summaries_2): Pass around vsets.
32881         (ipa_write_summaries_1): Likewise.
32882         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
32883         to add.
32884         (ipa_write_optimization_summaries_1): Pass around vsets.
32885         (ipa_write_optimization_summaries): Likewise.
32886         * varpool.c (varpool_get_node): New.
32887         (varpool_node): Update doubly linked lists.
32888         (varpool_remove_node): New.
32889         (dump_varpool_node): More dumping.
32890         (varpool_enqueue_needed_node): Update doubly linked lists.
32891         (decide_is_variable_needed): Kill ltrans hack.
32892         (varpool_finalize_decl): Kill lto hack.
32893         (varpool_assemble_decl): Skip decls in other partitions.
32894         (varpool_assemble_pending_decls): Update doubly linkes lists.
32895         (varpool_empty_needed_queue): Likewise.
32896         (varpool_extra_name_alias): Likewise.
32897         * lto-streamer.c (lto_get_section_name): Add vars section.
32898         * lto-streamer.h (lto_section_type): Update.
32899         (output_varpool, input_varpool): Declare.
32900
32901 2010-04-28  Mike Stump  <mikestump@comcast.net>
32902
32903         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
32904
32905 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32906
32907         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
32908         record or union type with RECORD_OR_UNION_TYPE_P predicate.
32909         (lto_input_ts_type_tree_pointers): Likewise.
32910         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
32911         (lto_output_ts_type_tree_pointers): Likewise.
32912
32913 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32914
32915         Uniquization of constants at the Tree level
32916         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
32917         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
32918         bit to the end.
32919         (tree_output_constant_def): Declare.
32920         * gimplify.c (gimplify_init_constructor): When using block copy, first
32921         uniquize the constant constructor on the RHS.
32922         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
32923         DECL_IN_CONSTANT_POOL flag.
32924         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
32925         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
32926         constant pool.
32927         (assemble_variable): Deal with symbols belonging to the tree constant
32928         pool.
32929         (get_constant_section): Add ALIGN parameter and simplify.
32930         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
32931         (assemble_constant_contents): Use the expression of the VAR_DECL.
32932         (output_constant_def_contents): Use the alignment of the VAR_DECL.
32933         (tree_output_constant_def): New global function.
32934         (mark_constant): Use the expression of the VAR_DECL.
32935         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
32936         its expression.
32937         (output_object_block): Likewise and assemble the expression.
32938
32939 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
32940
32941         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
32942         hash_tree, eq_tree): New tree hash table.
32943         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
32944         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
32945         lto_orig_address_remove): Reimplement.
32946
32947 2010-04-28  Xinliang David Li  <davidxl@google.com>
32948
32949         PR c/42643
32950         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
32951         (compute_uninit_opnds_pos): New function.
32952         (is_non_loop_exit_postdominating): New function.
32953         (compute_control_dep_chain): New function.
32954         (find_pdom): New function.
32955         (convert_control_dep_chain_into_preds): New function.
32956         (find_predicates): New function.
32957         (find_control_equiv_block): New function.
32958         (collect_phi_def_edges): New function.
32959         (find_def_preds): New function.
32960         (find_dom): New function.
32961         (dump_predicates): New function.
32962         (get_cmp_code): New function.
32963         (is_value_included_in): New function.
32964         (find_matching_predicate_in_rest_chains): New function.
32965         (use_pred_not_overlap_with_undef_path_pred): New function.
32966         (is_use_properly_guarded): New function.
32967         (normalize_cond_1): New function.
32968         (is_and_or_or): New function.
32969         (normalize_cond): New function.
32970         (is_gcond_subset_of): New function.
32971         (is_subset_of_any): New function.
32972         (is_or_set_subset_of): New function.
32973         (is_and_set_subset_of): New function.
32974         (is_norm_cond_subset_of): New function.
32975         (is_pred_expr_subset_of): New function.
32976         (is_pred_chain_subset_of): New function.
32977         (is_included_in): New function.
32978         (is_superset_of): New function.
32979         (find_uninit_use): New function.
32980         (warn_uninitialized_phi): New function.
32981         (compute_possibly_undefined_names): New function.
32982         (ssa_undefined_value_p): New function.
32983         (execute_late_warn_uninitialized): New function.
32984         * tree-ssa.c (ssa_undefined_value_p): Removed.
32985         (warn_uninit): Changed to extern.
32986         (warn_uninitialized_phi): Removed.
32987         (warn_uninitialized_vars): Changed to extern.
32988         (execute_late_warn_uninitialized): Removed
32989         * tree-flow.h: Add new prototypes.
32990         * timevar.def: Add new time variable.
32991         * Makefile.in: Add new build file.
32992
32993 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
32994
32995         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
32996         type if available.
32997
32998 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32999
33000         PR target/22224
33001         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
33002
33003 2010-04-28  Martin Jambor  <mjambor@suse.cz>
33004
33005         * cgraph.h (struct cgraph_node): New field indirect_calls.
33006         (struct cgraph_indirect_call_info): New type.
33007         (struct cgraph_edge): Removed field indirect_call. New fields
33008         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
33009         (cgraph_create_indirect_edge): Declare.
33010         (cgraph_make_edge_direct): Likewise.
33011         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
33012         * ipa-prop.h (struct ipa_param_call_note): Removed.
33013         (struct ipa_node_params): Removed field param_calls.
33014         (ipa_create_all_structures_for_iinln): Declare.
33015         * cgraph.c: Described indirect edges and uids in initial comment.
33016         (cgraph_add_edge_to_call_site_hash): New function.
33017         (cgraph_edge): Search also among the indirect edges, use
33018         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
33019         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
33020         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
33021         site hash.
33022         (initialize_inline_failed): Assign a reason to indirect edges.
33023         (cgraph_create_edge_1): New function.
33024         (cgraph_create_edge): Moved some functionality to
33025         cgraph_create_edge_1.
33026         (cgraph_create_indirect_edge): New function.
33027         (cgraph_edge_remove_callee): Add an assert checking for
33028         non-indirectness.
33029         (cgraph_edge_remove_caller): Special-case indirect edges.
33030         (cgraph_remove_edge): Likewise.
33031         (cgraph_set_edge_callee): New function.
33032         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
33033         (cgraph_make_edge_direct): New function.
33034         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
33035         the declaration of the call statement matches.
33036         (cgraph_node_remove_callees): Special-case indirect edges.
33037         (cgraph_clone_edge): Likewise.
33038         (cgraph_clone_node): Clone also the indirect edges.
33039         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
33040         indirect_call, dump count of indirect_calls edges.
33041         * ipa-prop.c (iinlining_processed_edges): New variable.
33042         (ipa_note_param_call): Create indirect edges instead of
33043         creating notes.  New parameter node.
33044         (ipa_analyze_call_uses): New parameter node, pass it on to
33045         ipa_note_param_call.
33046         (ipa_analyze_stmt_uses): Likewise.
33047         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
33048         (print_edge_addition_message): Work on edges rather than on notes.
33049         (update_call_notes_after_inlining): Likewise, renamed to
33050         update_indirect_edges_after_inlining.
33051         (ipa_create_all_structures_for_iinln): New function.
33052         (ipa_free_node_params_substructures): Do not free notes.
33053         (ipa_edge_duplication_hook): Propagate bits within
33054         iinlining_processed_edges bitmap.
33055         (ipa_node_duplication_hook): Do not duplicate notes.
33056         (free_all_ipa_structures_after_ipa_cp): Renamed to
33057         ipa_free_all_structures_after_ipa_cp.
33058         (free_all_ipa_structures_after_iinln): Renamed to
33059         ipa_free_all_structures_after_iinln.
33060         (ipa_write_param_call_note): Removed.
33061         (ipa_read_param_call_note): Removed.
33062         (ipa_write_indirect_edge_info): New function.
33063         (ipa_read_indirect_edge_info): Likewise.
33064         (ipa_write_node_info): Do not stream notes, do stream information
33065         in indirect edges.
33066         (ipa_read_node_info): Likewise.
33067         (lto_ipa_fixup_call_notes): Removed.
33068         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
33069         * ipa-inline.c (pass_ipa_inline): Likewise.
33070         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
33071         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
33072         * tree-inline.c (copy_bb): Removed an unnecessary double check for
33073         is_gimple_call.
33074         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
33075         edges.
33076         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
33077         (output_cgraph): Stream also indirect edges.
33078         (lto_output_edge): Added capability to stream indirect edges.
33079         (input_edge): Likewise.
33080         (input_cgraph_1): Likewise.
33081         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
33082         of indirect edges.
33083
33084 2010-04-28  Richard Guenther  <rguenther@suse.de>
33085
33086         PR tree-optimization/43879
33087         PR tree-optimization/43909
33088         * tree-ssa-structalias.c (struct variable_info): Add
33089         only_restrict_pointers flag.
33090         (new_var_info): Initialize it.  Increment stats.total_vars here.
33091         (create_function_info_for): Do not increment stats.total_vars here.
33092         (get_function_part_constraint): Fix build with C++.
33093         (insert_into_field_list): Remove.
33094         (push_fields_onto_fieldstack): Properly merge fields.
33095         (create_variable_info_for): Split and simplify.
33096         (create_variable_info_for_1): New piece.
33097         (intra_create_variable_infos): Properly make restrict constraints
33098         from parameters.
33099
33100 2010-04-28  Richard Guenther  <rguenther@suse.de>
33101
33102         PR c++/43880
33103         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
33104
33105 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33106             Jan Hubicka  <hubicka@ucw.cz>
33107
33108         * doc/invoke.texi (-Wsuggest-attribute=const,
33109         -Wsuggest-attribute=pure): Document.
33110         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
33111         (function_always_visible_to_compiler_p,
33112         suggest_attribute, warn_function_pure, warn_function_const):
33113         New functions.
33114         (check_call): Improve debug info.
33115         (analyze_function): Do not check availability.
33116         (add_new_function): Check availability.
33117         (propagate): Output warnings.
33118         (skip_function_for_local_pure_const): New function.
33119         (local_pure_const): Use it; output warnings.
33120         * common.opt (Wsuggest-attribute=const,
33121         Wsuggest-attribute=pure): New.
33122
33123 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
33124
33125         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
33126         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
33127         or DW_CFA_def_cfa_offset{,_sf}.
33128
33129 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
33130
33131         * tree.h: Fix truncated long macros.
33132
33133 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
33134
33135         * collect2.c (TARGET_64BIT): Redefine to target's default.
33136         * tlink.c: Likewise.
33137         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
33138         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
33139         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
33140         for underscoring __USER_LABEL_PREFIX__.
33141         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
33142         (SUB_LINK_ENTRY32): New.
33143         (SUB_LINK_ENTRY64): New.
33144         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
33145         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
33146         (SUB_LINK_ENTRY64): New.
33147         (SUB_LINK_ENTRY): New.
33148         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
33149         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
33150         x64 target is choosen.
33151         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
33152         * configure: Regenerated.
33153         * configure.ac (leading-mingw64-underscores): Option added.
33154
33155 2010-04-27  Jan Hubicka  <jh@suse.cz>
33156
33157         * doc/invoke.texi (-fipa-profile): Document.
33158         * opts.c (decode_options): Enable ipa-profile at -O1.
33159         * timevar.def (TV_IPA_PROFILE): Define.
33160         * common.opt (fipa-profile): Add.
33161         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
33162         flag for clones.
33163         (cgraph_propagate_frequency): Handle only local ones.
33164         * tree-pass.h (pass_ipa_profile): Declare.
33165         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
33166         (pass_ipa_profile): Use TV_IPA_PROFILE.
33167         * ipa.c (ipa_profile): New function.
33168         (gate_ipa_profile): Likewise.
33169         (pass_ipa_profile): New global variable.
33170         * passes.c (pass_ipa_profile): New.
33171
33172 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
33173
33174         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
33175
33176 2010-04-27  Martin Jambor  <mjambor@suse.cz>
33177
33178         PR middle-end/43812
33179         * ipa.c (dissolve_same_comdat_group_list): New function.
33180         (function_and_variable_visibility): Call
33181         dissolve_same_comdat_group_list when comdat group contains external or
33182         newly local nodes.
33183         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
33184         lists are circular and that they contain only DECL_ONE_ONLY nodes.
33185
33186 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
33187
33188         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
33189         (const_hash_1) <VECTOR_CST>: New case.
33190         (compare_constant) <VECTOR_CST>: Likewise.
33191         <ADDR_EXPR>: Deal with LABEL_REFs.
33192         (copy_constant) <VECTOR_CST>: New case.
33193
33194 2010-04-27  Jan Hubicka  <jh@suse.cz>
33195
33196         * cgraph.c (cgraph_propagate_frequency): New function.
33197         * cgraph.h (cgraph_propagate_frequency): Declare.
33198         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
33199         cgraph_propagate_frequency.
33200
33201 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
33202
33203         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
33204
33205 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
33206
33207         PR target/40657
33208         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
33209         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
33210         here to determine which regs to push and how much stack to reserve.
33211
33212 2010-04-27  Jie Zhang  <jie@codesourcery.com>
33213
33214         * doc/gimple.texi (gimple_statement_with_ops): Remove
33215         addresses_taken field.
33216         (gimple_statement_with_memory_ops): Likewise.
33217
33218 2010-04-27  Jan Hubicka  <jh@suse.cz>
33219
33220         * tree-inline.c (eni_inlining_weights): Remove.
33221         (estimate_num_insns): Special case more builtins.
33222
33223 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
33224
33225         PR c/32207
33226         * c-typeck.c (build_binary_op): Move forward check for comparison
33227         pointer with null pointer constant and adjust the diagnostic message.
33228
33229 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
33230
33231         PR lto/42776
33232         * configure.ac (gcc_cv_as_section_has_align): Set if installed
33233         binutils supports extended .section directive needed by LTO, or
33234         warn if older binutils found.
33235         (LTO_BINARY_READER): New AC_SUBST'd variable.
33236         (LTO_USE_LIBELF): Likewise.
33237         * config.gcc (lto_binary_reader): New target-specific configure
33238         variable.
33239         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
33240         (LTO_USE_LIBELF): Likewise.
33241         * configure: Regenerate.
33242
33243         * collect2.c (is_elf): Rename from this ...
33244         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
33245          object files in addition to ELF-formatted ones.
33246         (scan_prog_file): Caller updated.  Also allow for LTO info marker
33247         symbol to be prefixed or not by an extra underscore.
33248
33249         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
33250         * config/i386/winnt.c: Also #include lto-streamer.h
33251         (i386_pe_asm_named_section): Specify 1-byte section alignment for
33252         LTO named sections.
33253         (i386_pe_asm_output_aligned_decl_common): Add comment.
33254         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
33255
33256 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
33257
33258         PR target/43889
33259         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
33260         Add missing earlyclobber for second alternative.
33261
33262 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
33263
33264         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
33265         bits for artificial defs at the top of the block.
33266         * fwprop.c (single_def_use_enter_block): Don't call it.
33267
33268 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
33269
33270         PR 43715
33271         * configure.ac: Use "$gcc_cv_nm -g" on darwin
33272         instead of "$gcc_cv_objdump -T".
33273         Use "-undefined dynamic_lookup" on darwin.
33274         * configure: Regenerate.
33275
33276 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
33277
33278         PR c/43893
33279         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
33280
33281 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
33282
33283         * c-parser.c (struct c_token): Move location field up.
33284         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
33285         (struct c_declspecs): Convert typespec_word, storage_class, and
33286         default_int_p into bitfields.
33287         (struct c_declarator): Move loc field up.
33288
33289 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
33290
33291         * cfgloop.h (struct loop): Move can_be_parallel field up.
33292         * ipa-prop.h (struct ip_node_params): Move bitfields up.
33293         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
33294         down.
33295         (struct iv_cand): Convert pos field into a bitfield.
33296         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
33297         field up.
33298         (struct _stmt_vec_info): Shuffle fields for better packing.
33299
33300 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
33301
33302         * varasm.c (IN_NAMED_SECTION): Remove guard.
33303         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
33304         (IN_NAMED_SECTION_P): ...this.
33305         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
33306         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
33307
33308 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
33309
33310         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
33311         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
33312         of shadowing it.  Fix comments.
33313
33314 2010-04-26  Jan Hubicka  <jh@suse.cz>
33315
33316         * cgraph.c (cgraph_create_node): Set node frequency to normal.
33317         (cgraph_clone_node): Copy function frequency.
33318         * cgraph.h (node_frequency): New enum
33319         (struct cgraph_node): Add.
33320         * final.c (rest_of_clean_state): Update.
33321         * lto-cgraph.c (lto_output_node): Output node frequency.
33322         (input_overwrite_node): Input node frequency.
33323         * tre-ssa-loop-ivopts (computation_cost): Update.
33324         * lto-streamer-out.c (output_function): Do not output function
33325         frequency.
33326         * predict.c (maybe_hot_frequency_p): Update and handle functions
33327         executed once.
33328         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
33329         attribute lookup.
33330         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
33331         (compute_function_frequency): Set noreturn functions to be executed
33332         once.
33333         (choose_function_section): Update.
33334         * lto-streamer-in.c (input_function): Do not input function frequency.
33335         * function.c (allocate_struct_function): Do not initialize function
33336         frequency.
33337         * function.h (function_frequency): Remove.
33338         (struct function): Remove function frequency.
33339         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
33340         (try_update): Update.
33341         * tree-inline.c (initialize_cfun): Do not update function frequency.
33342         * passes.c (pass_init_dump_file): Update.
33343         * i386.c (ix86_compute_frame_layout): Update.
33344         (ix86_pad_returns): Update.
33345
33346 2010-04-26  Jie Zhang  <jie@codesourcery.com>
33347
33348         PR tree-optimization/43833
33349         * tree-vrp.c (range_int_cst_p): New.
33350         (range_int_cst_singleton_p): New.
33351         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
33352         when both operands are constants.  Use range_int_cst_p in
33353         BIT_IOR_EXPR case.
33354
33355 2010-04-26  Jan Hubicka  <jh@suse.cz>
33356
33357         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
33358
33359 2010-04-26  Richard Guenther  <rguenther@suse.de>
33360
33361         PR lto/43080
33362         * gimple.c (gimple_decl_printable_name): Deal gracefully
33363         with a NULL DECL_NAME.
33364
33365 2010-04-26  Richard Guenther  <rguenther@suse.de>
33366
33367         PR lto/42425
33368         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
33369         if emitting debug information and it is either a function
33370         or a namespace decl.
33371
33372 2010-04-26  Ira Rosen  <irar@il.ibm.com>
33373
33374         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
33375         determine if the statement is vectorizable, and a macro to access it.
33376         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33377         Skip statements that can't be vectorized. If the analysis fails,
33378         mark the statement as unvectorizable if vectorizing basic block.
33379         (vect_compute_data_refs_alignment): Likewise.
33380         (vect_verify_datarefs_alignment): Skip statements marked as
33381         unvectorizable. Add print.
33382         (vect_analyze_group_access): Skip statements that can't be
33383         vectorized. If the analysis fails, mark the statement as
33384         unvectorizable if vectorizing basic block.
33385         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
33386         * tree-vect-stmts.c (vectorizable_store): Fix the number of
33387         generated stmts for SLP.
33388         (new_stmt_vec_info): Initialize the new field.
33389         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
33390         statements marked as unvectorizable.
33391
33392 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
33393
33394         * c-common.c (flag_isoc1x): New.
33395         (flag_isoc99): Update comment.
33396         * c-common.h (flag_isoc1x): New.
33397         (flag_isoc99): Update comment.
33398         * c-cppbuiltin.c (builtin_define_float_constants): Also define
33399         __<type>_DECIMAL_DIG__.
33400         * c-opts.c (set_std_c1x): New.
33401         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
33402         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
33403         * c.opt (-std=c1x, -std=gnu1x): New options.
33404         * doc/cpp.texi: Mention -std=c1x.
33405         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
33406         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
33407         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
33408         * doc/standards.texi: Mention C1X.
33409         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
33410         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
33411         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
33412         Define for C1X.
33413
33414 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
33415
33416         * config/i386/gmon-sol2.c (_mcleanup): Change format string
33417         placeholder from 0x%x to %#x.
33418         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
33419         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
33420         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
33421         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
33422         * config/i386/i386.c (ix86_target_string): Ditto.
33423         (output_pic_addr_const): Ditto.
33424         (print_operand): Ditto.
33425
33426 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
33427
33428         * combine.c (find_split_point): Add third argument.  Use it
33429         to find nested multiply-accumulate instructions.  Adjust calls.
33430         (try_combine): Adjust call to find_split_point.
33431
33432 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
33433
33434         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
33435
33436 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
33437
33438         PR tree-optimization/41442
33439         * fold-const.c (merge_truthop_with_opposite_arm): New function.
33440         (fold_binary_loc): Call it.
33441
33442 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33443
33444         * toplev.c (general_init): Set default for fdiagnostics-show-option.
33445         * opts.c (common_handle_option): Allow disabling it.
33446         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
33447
33448 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
33449
33450         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
33451         between modes if both types are integral.
33452
33453 2010-04-23  Richard Guenther  <rguenther@suse.de>
33454
33455         PR tree-optimization/43572
33456         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
33457
33458 2010-04-23  Richard Guenther  <rguenther@suse.de>
33459
33460         PR lto/43455
33461         * tree-inline.c (tree_can_inline_p): Also check compatibility
33462         of return types.
33463
33464 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33465
33466         PR tree-optimization/43846
33467         * tree-sra.c (struct access): New flag grp_assignment_read.
33468         (build_accesses_from_assign): Set grp_assignment_read.
33469         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
33470         (enum mark_read_status): New type.
33471         (analyze_access_subtree): Propagate grp_assignment_read, create
33472         accesses also if both direct_read and root->grp_assignment_read.
33473
33474 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33475
33476         PR middle-end/43835
33477         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
33478         function does not have type attributes.
33479
33480 2010-04-23  Richard Guenther  <rguenther@suse.de>
33481
33482         PR lto/42653
33483         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
33484         of FUNCTION_DECLs.
33485
33486 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33487
33488         * sese.h (create_if_region_on_edge): Remove.
33489
33490         * sese.c (create_if_region_on_edge): Make static.
33491
33492         * tree-inline.c: Do not include ggc.h.
33493
33494         * expr.c: Do not include ggc.h.
33495
33496         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
33497         dependencies.
33498
33499 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
33500
33501         PR target/43744
33502         * config/sh/sh.c (find_barrier): Don't emit a constant pool
33503         in the middle of insns for casesi_worker_2.
33504
33505 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
33506
33507         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
33508
33509 2010-04-22  Ira Rosen  <irar@il.ibm.com>
33510
33511         PR tree-optimization/43842
33512         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
33513         loop unrolling in update of exit phis. Fix comment.
33514         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
33515         least two reduction statements in the loop before starting SLP
33516         analysis.
33517
33518 2010-04-22  Nick Clifton  <nickc@redhat.com>
33519
33520         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
33521
33522 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
33523
33524         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
33525         to simplify a + ~a.
33526
33527 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33528
33529         * tree-parloops.c (loop_parallel_p): New argument
33530         parloop_obstack.  Pass it down.
33531         (parallelize_loops): New variable parloop_obstack.  Initialize it,
33532         pass it down, free it.
33533
33534         * tree-loop-linear.c (linear_transform_loops): Pass down
33535         lambda_obstack.
33536
33537         * tree-data-ref.h (lambda_compute_access_matrices): New argument
33538         of type struct obstack *.
33539
33540         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
33541         scratch_obstack.  Initialize it, pass down, free it.
33542
33543         * lambda.h (lambda_loop_new): Remove.
33544         (lambda_matrix_new, lambda_matrix_inverse)
33545         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
33546         argument of type struct obstack *.
33547
33548         * lambda-trans.c (lambda_trans_matrix_new): New argument
33549         lambda_obstack.  Pass it down, use obstack allocation for ret.
33550         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
33551         it down.
33552
33553         * lambda-mat.c (lambda_matrix_get_column)
33554         (lambda_matrix_project_to_null): Remove.
33555         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
33556         allocation for mat.
33557         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
33558         lambda_obstack.
33559
33560         * lambda-code.c (lambda_loop_new): New function.
33561         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
33562         (lambda_compute_auxillary_space, lambda_compute_target_space)
33563         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
33564         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
33565         (build_access_matrix): New argument lambda_obstack.  Use obstack
33566         allocation for am.
33567         (lambda_compute_step_signs, lambda_compute_access_matrices): New
33568         argument lambda_obstack.  Pass it down.
33569
33570 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33571
33572         * optabs.h (expand_widening_mult): Declare.
33573
33574 2010-04-22  Richard Guenther  <rguenther@suse.de>
33575
33576         PR tree-optimization/43845
33577         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
33578         lookup the CALL_EXPR function and arguments.
33579
33580 2010-04-22  Nick Clifton  <nickc@redhat.com>
33581
33582         * config/stormy16/stormy16.c
33583         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
33584         * config/stormy16/stormy16.h: Tidy up formatting.
33585         (DONT_USE_BUILTIN_SETJMP): Remove definition.
33586         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
33587         (ineqbranchsi): Delete pattern.
33588         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
33589         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
33590         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
33591         stormy16-lib2-ucmpsi2.c.
33592
33593 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33594
33595         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
33596         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
33597         extra set merge_set_noclobber, and use it to relax the final test
33598         slightly.
33599         * df.h (df_simulate_find_noclobber_defs): Declare.
33600         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
33601         conditional defs.
33602         (df_simulate_find_noclobber_defs): New function.
33603
33604 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
33605
33606         * config/i386/i386.md: Use {} around multi-line preparation statements.
33607
33608 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33609
33610         * c-tree.h (push_init_level, pop_init_level, set_init_index)
33611         (process_init_element): New argument of type struct obstack *.
33612
33613         * c-typeck.c (push_init_level, pop_init_level, set_designator)
33614         (set_init_index, set_init_label, set_nonincremental_init)
33615         (set_nonincremental_init_from_string, find_init_member)
33616         (output_init_element, output_pending_init_elements)
33617         (process_init_element): New argument braced_init_obstack.  Pass it
33618         down.
33619         (push_range_stack, add_pending_init): New argument
33620         braced_init_obstack.  Use obstack allocation.
33621
33622         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
33623         braced_init_obstack.  Pass it down.
33624         (c_parser_braced_init): New variables ret, braced_init_obstack.
33625         Initialize obstack, pass it down and finally free it.
33626
33627 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33628
33629         PR middle-end/29274
33630         * tree-pass.h (pass_optimize_widening_mul): Declare.
33631         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
33632         gate_optimize_widening_mul): New static functions.
33633         (pass_optimize_widening_mul): New.
33634         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
33635         <case MULT_EXPR>: Remove support for widening multiplies.
33636         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
33637         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
33638         simplify_gen_unary rather than directly building extensions.
33639         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
33640         WIDEN_MULT_EXPR.
33641         * expmed.c (expand_widening_mult): New function.
33642         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
33643
33644 2010-04-21  Jan Hubicka  <jh@suse.cz>
33645
33646         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
33647         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
33648         * lto-wpa-fixup.c: Remove.
33649         * Makefile.in (lto-wpa-fixup.o): Remove.
33650         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
33651         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
33652         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
33653
33654 2010-04-21  Jan Hubicka  <jh@suse.cz>
33655
33656         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
33657         add write_optimization_summary, read_optimization_summary.
33658         (ipa_write_summaries_of_cgraph_node_set): Remove.
33659         (ipa_write_optimization_summaries): Declare.
33660         (ipa_read_optimization_summaries): Declare.
33661         * ipa-cp.c (pass_ipa_cp): Update.
33662         * ipa-reference.c (pass_ipa_reference): Update.
33663         * ipa-pure-const.c (pass_ipa_pure_const): Update.
33664         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
33665         Update.
33666         * ipa-inline.c (pass_ipa_inline): Update.
33667         * ipa.c (pass_ipa_whole_program): Update.
33668         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
33669         * passes.c (ipa_write_summaries_1): Do not test wpa.
33670         (ipa_write_optimization_summaries_1): New.
33671         (ipa_write_optimization_summaries): New.
33672         (ipa_read_summaries): Do not test ltrans.
33673         (ipa_read_optimization_summaries_1): New.
33674         (ipa_read_optimization_summaries): New.
33675
33676 2010-04-21  Jan Hubicka  <jh@suse.cz>
33677
33678         * lto-cgraph.c (lto_output_node): Do not output comdat groups
33679         for boundary nodes.
33680         (output_cgraph): Do not arrange comdat groups for boundary nodes.
33681
33682 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33683
33684         PR debug/40040
33685         * dwarf2out.c (add_name_and_src_coords_attributes): Add
33686         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
33687
33688 2010-04-21  Jan Hubicka  <jh@suse.cz>
33689
33690         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
33691
33692 2010-04-21  Jan Hubicka  <jh@suse.cz>
33693
33694         * varpool.c (decide_is_variable_needed): Variable is always needed
33695         during ltrans.
33696
33697 2010-04-21  Jan Hubicka  <jh@suse.cz>
33698
33699         * opts.c (decode_options): Enable pure-const pass for whopr.
33700
33701 2010-04-21  Jan Hubicka  <jh@suse.cz>
33702
33703         * cgraph.c (dump_cgraph_node): Dump also assembler name.
33704         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
33705         at WPA dumping.
33706         (cgraph_decide_inlining): Do not expect callee to be removed in all
33707         cases.
33708
33709 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
33710
33711         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
33712
33713 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33714
33715         * config/i386/i386.md (x86_shrd): Add athlon_decode and
33716         amdfam10_decode attributes.
33717
33718 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33719
33720         PR middle-end/43570
33721         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
33722         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
33723         (lower_copyprivate_clauses): Use private var in outer
33724         context instead of original var.  Make sure the types
33725         are correct for VLAs.
33726
33727 2010-04-21  Richard Guenther  <rguenther@suse.de>
33728
33729         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
33730         to non-pointer objects.
33731
33732 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33733
33734         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
33735         last chain entry if it starts with the still current label.
33736         (add_location_or_const_value_attribute): Check that
33737         loc_list->first->next is NULL instead of comparing ->first with ->last.
33738         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
33739         to add_var_loc_to_decl.
33740
33741         * dwarf2out.c (output_call_frame_info): For dw_cie_version
33742         >= 4 add also address size and segment size fields into CIE header.
33743
33744         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
33745         long as address size is the same as sizeof (void *) and
33746         segment size is 0.
33747         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
33748         address size or segment size is unexpected, return DW_EH_PE_omit.
33749         (classify_object_over_fdes): If get_cie_encoding returned
33750         DW_EH_PE_omit, return -1.
33751         (init_object): If classify_object_over_fdes returned -1,
33752         pretend there were no FDEs at all.
33753
33754 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33755
33756         * config/i386/i386.md (bswap<mode>2): Macroize expander from
33757         bswap{si,di}2 using SWI48 mode iterator.
33758         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
33759         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
33760         set modrm attribute of bswap insn to 0 and remove length attribute.
33761         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
33762         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
33763         set mode attribute to <MODE> and remove length attribute.
33764
33765 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
33766
33767         PR rtl-optimization/43520
33768         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
33769         zero available registers.
33770
33771 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33772
33773         * builtins.c (fold_builtin_cproj): Fold more cases.
33774
33775 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33776
33777         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
33778         (fold_builtin_1): Fold builtin cproj.
33779         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
33780         Use ATTR_CONST_NOTHROW_LIST.
33781
33782 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
33783
33784         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
33785         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
33786         ffsi2_no_cmove for !TARGET_CMOVE.
33787         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
33788         (ffssi2): Remove expander.
33789         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
33790         mode iterator.
33791         (ctz<mode>2): Ditto from ctz{si,di}2.
33792         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
33793         mode iterator.
33794         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
33795         mode iterator.
33796
33797 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
33798
33799         * dwarf2out.c (AT_linkage_name): Define.
33800         (clone_as_declaration): Handle DW_AT_linkage_name.
33801         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
33802         of DW_AT_MIPS_linkage_name.
33803         (move_linkage_attr): Likewise.
33804         (dwarf2out_finish): Likewise.
33805
33806 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
33807
33808         PR middle-end/41952
33809         * fold-const.c (fold_comparison): New folding rule.
33810
33811 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
33812
33813         * double-int.h (double_int_setbit): Declare.
33814         * double-int.c (double_int_setbit): New function.
33815         * rtl.h (immed_double_int_const): Declare.
33816         * emit-rtl.c (immed_double_int_const): New function.
33817         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
33818         and immed_double_int_const functions.
33819         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
33820         expand_copysign_bit): (Ditto.).
33821         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
33822         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
33823         * dojump.c (prefer_and_bit_test): (Ditto.).
33824         * expr.c (convert_modes, reduce_to_bit_field_precision,
33825         const_vector_from_tree): (Ditto.).
33826         * expmed.c (mask_rtx, lshift_value): (Ditto.).
33827
33828 2010-04-20  Jan Hubicka  <jh@suse.cz>
33829
33830         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
33831         (dump_cgraph_node): Dump new flags.
33832         * cgraph.h (struct cgraph_node): Add flags
33833         reachable_from_other_partition and in_other_partition.
33834         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
33835         other partition can not be removed.
33836         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
33837         the other partition must be output; silence sanity checking on
33838         leaking functions bodies from other paritition.
33839         * lto-cgraph.c (reachable_from_other_partition_p): New function.
33840         (lto_output_node): Output new flags; do not sanity check that inline
33841         clones are output; drop lto_forced_extern_inline_p code; do not mock
33842         visibility flags at partition boundaries.
33843         (add_node_to): New function.
33844         (output_cgraph): Use it to sort functions so masters appear before
33845         clones.
33846         (input_overwrite_node): Input new flags.
33847         * passes.c (ipa_write_summaries): Do not call
33848         lto_new_extern_inline_states.
33849         * lto-section-out.c (forced_extern_inline,
33850         lto_new_extern_inline_states lto_delete_extern_inline_states,
33851         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
33852         * lto-streamer.h (lto_new_extern_inline_states,
33853         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
33854         lto_forced_extern_inline_p): Kill.
33855
33856 2010-04-20  Richard Guenther  <rguenther@suse.de>
33857
33858         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
33859         from vars that can have pointers.
33860         (process_constraint): Dump useless constraints.
33861
33862 2010-04-20  Richard Guenther  <rguenther@suse.de>
33863
33864         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
33865         (dump_sa_points_to_info): Remove asserts.
33866         (init_base_vars): nothing_id isn't an escape point nor does it
33867         have pointers.
33868
33869 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
33870
33871         * tree.h (TYPE_REF_IS_RVALUE): Define.
33872         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
33873         should_move_die_to_comdat, prune_unused_types_walk): Handle
33874         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
33875         (modified_type_die, gen_reference_type_die): Emit
33876         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
33877         if TYPE_REF_IS_RVALUE and -gdwarf-4.
33878
33879 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33880
33881         PR target/43635
33882         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
33883         calls for -fpic -m31 if they have been sibcall optimized.
33884
33885 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
33886
33887         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
33888         ar.lc fixed and call-used.
33889
33890         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
33891
33892 2010-04-19  Jan Hubicka  <jh@suse.cz>
33893
33894         * opts.c (decode_options): Disable whpr incompatible passes.
33895         * lto/lto.c (lto_1_to_1_map): Skip clones.
33896         (read_cgraph_and_symbols): Do not mark everything as needed.
33897         (do_whole_program_analysis): Do map only after optimizing;
33898         set proper cgraph_state; use passmanager.
33899
33900 2010-04-19  DJ Delorie  <dj@redhat.com>
33901
33902         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
33903         POINTER_PLUS_EXPR and fix them.
33904
33905 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
33906
33907         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
33908         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
33909         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
33910         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
33911         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
33912         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
33913         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
33914         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
33915         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
33916         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
33917         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
33918
33919 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33920
33921         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
33922         (check_cond_move_block): Likewise.
33923         (cond_move_process_if_block): Likewise.
33924         (noce_find_if_block): Improve formatting.
33925         (find_if_header): Pass 0 to memset and tweak conditions.
33926         (cond_exec_find_if_block): Fix long lines and tweak conditions.
33927
33928 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
33929
33930         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
33931         for -gdwarf-4.
33932
33933         PR middle-end/43337
33934         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
33935         with non-local decl doesn't need chain.
33936
33937 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
33938
33939         * ira-color.c (allocno_reload_assign): Avoid accumulating
33940         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
33941
33942 2010-04-19  Martin Jambor  <mjambor@suse.cz>
33943
33944         * gimple.h (create_tmp_reg): Declare.
33945         * gimplify.c (create_tmp_reg): New function.
33946         (gimplify_return_expr): Use create_tmp_reg.
33947         (gimplify_omp_atomic): Likewise.
33948         (gimple_regimplify_operands): Likewise.
33949         * tree-dfa.c (make_rename_temp): Likewise.
33950         * tree-predcom.c (predcom_tmp_var): Likewise.
33951         (reassociate_to_the_same_stmt): Likewise.
33952         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
33953         (get_replaced_param_substitute): Likewise.
33954         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
33955         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
33956         * tree-ssa-pre.c (get_representative_for): Likewise.
33957         (create_expression_by_pieces): Likewise.
33958         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
33959         (create_tailcall_accumulator): Likewise.
33960
33961 2010-04-19  Martin Jambor  <mjambor@suse.cz>
33962
33963         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
33964         new_stmt.
33965         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
33966
33967 2010-04-19  Richard Guenther  <rguenther@suse.de>
33968
33969         PR tree-optimization/43796
33970         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
33971         from SCEV in the lattice.
33972         (vrp_visit_phi_node): Dump change.
33973
33974 2010-04-19  Richard Guenther  <rguenther@suse.de>
33975
33976         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
33977         * configure: Re-generated.
33978
33979 2010-04-19  Richard Guenther  <rguenther@suse.de>
33980
33981         PR tree-optimization/43783
33982         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
33983         constant ARRAY_REF operands two and three if possible.
33984
33985 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
33986
33987         PR target/43766
33988         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
33989
33990 2010-04-19  Jie Zhang  <jie@codesourcery.com>
33991
33992         PR target/43662
33993         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
33994
33995 2010-04-19  Ira Rosen  <irar@il.ibm.com>
33996
33997         PR tree-optimization/37027
33998         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
33999         and macro to access it.
34000         (vectorizable_reduction): Add argument.
34001         (vect_get_slp_defs): Likewise.
34002         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
34003         statements for possible use in SLP.
34004         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
34005         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
34006         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
34007         add new argument.
34008         (vectorizable_reduction): Likewise.
34009         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
34010         vect_get_slp_defs.
34011         (vectorizable_type_demotion, vectorizable_type_promotion,
34012         vectorizable_store): Likewise.
34013         (vect_analyze_stmt): Update call to vectorizable_reduction.
34014         (vect_transform_stmt): Likewise.
34015         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
34016         (vect_build_slp_tree): Fix indentation. Check that there are no loads
34017         from different interleaving chains in same node.
34018         (vect_slp_rearrange_stmts): New function.
34019         (vect_supported_load_permutation_p): Allow load permutations for
34020         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
34021         inside SLP nodes if necessary.
34022         (vect_analyze_slp_instance): Handle reductions.
34023         (vect_analyze_slp): Try to build SLP instances originating from groups
34024         of reductions.
34025         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
34026         (vect_get_constant_vectors): Create initial vectors for reductions
34027         according to reduction code. Add new argument.
34028         (vect_get_slp_defs): Add new argument, pass it to
34029         vect_get_constant_vectors.
34030         (vect_schedule_slp_instance): Remove SLP tree root statements.
34031
34032 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
34033
34034         * tree.h (ENUM_IS_SCOPED): Define.
34035         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
34036         for ENUM_IS_SCOPED enums.
34037
34038 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
34039
34040         * fold-const.c (fold_comparison): Use ssizetype.
34041         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
34042         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
34043         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
34044         * tree-object-size.c (compute_object_sizes): Use size_type_node.
34045
34046         * tree.h (initialize_sizetypes): Remove parameter.
34047         (build_common_tree_nodes): Remove second parameter.
34048         * stor-layout.c (initialize_sizetypes): Remove parameter.
34049         Always create an unsigned type.
34050         (set_sizetype): Assert that the passed type is unsigned and simplify.
34051         * tree.c (build_common_tree_nodes): Remove second parameter.
34052         Adjust call to initialize_sizetypes.
34053         * c-decl.c (c_init_decl_processing): Remove second argument in call to
34054         build_common_tree_nodes.
34055
34056 2010-04-18  Matthias Klose  <doko@ubuntu.com>
34057
34058         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
34059
34060 2010-04-18  Ira Rosen  <irar@il.ibm.com>
34061
34062         PR tree-optimization/43771
34063         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
34064         load permutation doesn't have gaps.
34065
34066 2010-04-18  Jan Hubicka  <jh@suse.cz>
34067
34068         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
34069         (sse_prologue_save_insn expander): Use new pattern.
34070         (sse_prologue_save_insn1): New pattern and splitter.
34071         (sse_prologue_save_insn): Update to deal also with 64bit aligned
34072         blocks.
34073         * i386.c (setup_incoming_varargs_64): Do not compute jump
34074         destination here.
34075         (ix86_gimplify_va_arg): Update alignment needed.
34076         (ix86_local_alignment): Do not align all local arrays to 128bit.
34077
34078 2010-04-17  Jan Hubicka  <jh@suse.cz>
34079
34080         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
34081
34082 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34083
34084         * arm.md (negdi2): Remove redundant code to force values into a
34085         register.
34086
34087 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34088
34089         * arm/bpabi.S: Add EABI alignment attributes to objects.
34090         * arm/bpabi-v6m.S: Likewise.
34091         * arm/crti.asm: Likewise.
34092         * arm/crtn.asm: Likewise.
34093         * arm/lib1funcs.asm: Likewise.
34094         * arm/libunwind.S: Likewise.
34095
34096 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34097
34098         * arm-protos.h (tune_params): New structure.
34099         * arm.c (current_tune): New variable.
34100         (arm_constant_limit): Delete.
34101         (struct processors): Add pointer to the tune parameters.
34102         (arm_slowmul_tune): New tuning option.
34103         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
34104         (all_cores): Adjust to pick up the tuning model.
34105         (arm_constant_limit): New function.
34106         (arm_override_options): Select the appropriate tuning model.  Delete
34107         initialization of arm_const_limit.
34108         (arm_split_constant): Use the new constant-limit model.
34109         (arm_rtx_costs): Pick up the current tuning model.
34110         * arm.md (is_strongarm, is_xscale): Delete.
34111         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
34112         for Xscale variant architectures.
34113         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
34114
34115 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34116
34117         * config/arm/arm.c (arm_gen_constant): Remove unused variable
34118         can_shift.
34119         (arm_rtx_costs_1): Remove unused variable extra_cost.
34120         (arm_unwind_emit_set): Use variable offset.
34121         (thumb1_output_casesi): Remove unused variable flags.
34122
34123 2010-04-16  Jeff Law  <law@redhat.com>
34124
34125         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
34126         needing assignment rather than doing a two-phase assignment.  Remove
34127         unused variable 'm'.
34128
34129 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34130
34131         PR bootstrap/43767
34132         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
34133
34134 2010-04-16  Doug Kwan  <dougkwan@google.com>
34135
34136         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
34137         (next_operand_entry_id): New static variable.
34138         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
34139         (add_to_ops_vec): Assigned unique ID to operand entry.
34140         (struct oecount_s): New field ID.
34141         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
34142         (undistribute_ops_list): Assign unique IDs to oecounts.
34143         (init_reassoc): reset next_operand_entry_id.
34144
34145 2010-04-16  Doug Kwan  <dougkwan@google.com>
34146
34147         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
34148         missing left parenthesis.
34149
34150 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
34151
34152         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
34153         *btdi_rex64 using SWI48 mode iterator.
34154         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
34155         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
34156         *jcc_btdi_mask_rex64.
34157
34158 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
34159
34160         * double-int.h (tree_to_double_int): Convert to macro.
34161         * double-int.c (tree_to_double_int): Remove.
34162
34163 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34164
34165         PR debug/43762
34166         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
34167         with want_address 2 and in case a single element list might be
34168         possible, call it again with want_address 0.
34169
34170 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34171
34172         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
34173         case 'W' print operands for HI mode.
34174         * config/h8300/h8300.h (Y0, Y2) : New constraints.
34175         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
34176         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
34177         * config/h8300/predicate.md (bit_register_indirect_operand): New.
34178
34179         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
34180
34181         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
34182         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
34183         #xx:3 and #xx:4 mode.
34184
34185         * config/h8300/h8300.md (inverted load with HImode dest): Add
34186         support for H8300SX.
34187
34188         * config/h8300/predicate.md (bit_operand): Allow immediate values that
34189         satisfy 'U' constraint.
34190
34191 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34192
34193         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
34194         * configure: Regenerate.
34195         * config.in: Regenerate.
34196         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
34197         works.
34198
34199 2010-04-16  Richard Guenther  <rguenther@suse.de>
34200
34201         * tree.h (struct tree_decl_minimal): Move pt_uid ...
34202         (struct tree_decl_common): ... here.
34203         (DECL_PT_UID): Adjust.
34204         (SET_DECL_PT_UID): Likewise.
34205         (DECL_PT_UID_SET_P): Likewise.
34206
34207 2010-04-16  Richard Guenther  <rguenther@suse.de>
34208
34209         PR tree-optimization/43572
34210         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
34211         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
34212         * tree-flow.h (is_call_clobbered): Remove.
34213         * tree-flow-inline.h (is_call_clobbered): Likewise.
34214         * tree-dfa.c (dump_variable): Do not dump call clobber state.
34215         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
34216         (execute_return_slot_opt): Adjust.
34217         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
34218         check for call clobbered vars here.
34219         (find_tail_calls): Move tailcall verification to the
34220         proper place.
34221
34222 2010-04-16  Diego Novillo  <dnovillo@google.com>
34223
34224         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
34225
34226 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
34227
34228         PR target/40603
34229         * config/arm/arm.md (cbranchqi4): New pattern.
34230         * config/arm/predicates.md (const0_operand,
34231         cbranchqi4_comparison_operator): New predicates.
34232
34233 2010-04-16  Richard Guenther  <rguenther@suse.de>
34234
34235         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
34236         (dump_gimple_stmt): Likewise.
34237
34238 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
34239
34240         * recog.h (struct recog_data): New field is_operator.
34241         (struct insn_operand_data): New field is_operator.
34242         * recog.c (extract_insn): Set recog_data.is_operator.
34243         * genoutput.c (output_operand_data): Emit code to set the
34244         is_operator field.
34245         * reload.c (find_reloads): Use it rather than testing for an
34246         empty constraint string.
34247
34248         PR target/41514
34249         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
34250         If the previous insn is a cbranchsi4_insn with the same arguments,
34251         omit the compare instruction.
34252
34253         * config/arm/arm.md (addsi3_cbranch): If destination is a high
34254         register, inputs must be low registers and we need a low register
34255         scratch.  Handle alternative 2 like alternative 3.
34256
34257 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34258
34259         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
34260         don't call get_addr on both.  If one expression is a VALUE and
34261         the other a REG, check VALUE's locs if the REG isn't among them.
34262
34263 2010-04-16  Christian Bruel  <christian.bruel@st.com>
34264
34265         * config/sh/sh.h (sh_frame_pointer_required): New function.
34266         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
34267         (flag_omit_frame_pointer) Set.
34268         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
34269         (rounded_frame_size): Adjust size with outgoing_args_size.
34270         (sh_set_return_address): Must return from stack pointer.
34271         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
34272         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
34273         (ACCUMULATE_OUTGOING_ARGS): Define.
34274         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
34275         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
34276
34277 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34278
34279         PR target/43471
34280         * config/sh/sh.c (sh_legitimize_reload_address): Use
34281         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
34282         Remove a unneeded check for offset_base.
34283
34284 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
34285
34286         * configure: Regenerated.
34287
34288 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34289
34290         * config/s390/s390.c (s390_call_save_register_used): Switch back
34291         to HARD_REGNO_NREGS.
34292
34293 2010-04-15  Richard Guenther  <rguenther@suse.de>
34294
34295         * alias.c (alias_set_subset_of): Handle alias-set zero
34296         child properly.
34297
34298 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
34299             Julian Brown  <julian@codesourcery.com>
34300
34301         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
34302         alternatives according to use of high and low regs.
34303         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
34304         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
34305         optimizing for size on Thumb-2.
34306
34307 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
34308
34309         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
34310
34311 2010-04-15  Richard Guenther  <rguenther@suse.de>
34312
34313         * tree-ssa-structalias.c (struct variable_info): Add
34314         is_fn_info flag.
34315         (new_var_info): Initialize it.
34316         (dump_constraints): Support printing last added constraints.
34317         (debug_constraints): Adjust.
34318         (dump_constraint_graph): Likewise.
34319         (make_heapvar_for): Check for NULL cfun.
34320         (get_function_part_constraint): New function.
34321         (get_fi_for_callee): Likewise.
34322         (find_func_aliases): Properly implement IPA PTA constraints.
34323         (process_ipa_clobber): New function.
34324         (find_func_clobbers): Likewise.
34325         (insert_into_field_list_sorted): Remove.
34326         (create_function_info_for): Properly allocate vars for IPA mode.
34327         Do not use insert_into_field_list_sorted.
34328         (create_variable_info_for): Properly generate constraints for
34329         global vars in IPA mode.
34330         (dump_solution_for_var): Always dump the solution.
34331         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
34332         (find_what_var_points_to): Adjust.
34333         (pt_solution_set): Change.
34334         (pt_solution_ior_into): New function.
34335         (pt_solution_empty_p): Export.
34336         (pt_solution_includes_global): Adjust.
34337         (pt_solution_includes_1): Likewise.
34338         (pt_solutions_intersect_1): Likewise.
34339         (dump_sa_points_to_info): Check some invariants.
34340         (solve_constraints): Move constraint dumping ...
34341         (compute_points_to_sets): ... here.
34342         (ipa_pta_execute): ... and here.
34343         (compute_may_aliases): Do not re-compute points-to info
34344         locally if IPA info is available.
34345         (ipa_escaped_pt): New global var.
34346         (ipa_pta_execute): Properly implement IPA PTA.
34347         * tree-into-ssa.c (dump_decl_set): Support dumping
34348         decls not in referenced-vars.
34349         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
34350         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
34351         (dump_points_to_solution): Likewise.
34352         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
34353         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
34354         (remap_gimple_stmt): Reset call clobber/use information if necessary.
34355         (copy_decl_to_var): Copy DECL_PT_UID.
34356         (copy_result_decl_to_var): Likewise.
34357         * tree.c (make_node_stat): Initialize DECL_PT_UID.
34358         (copy_node_stat): Copy it.
34359         * tree.h (DECL_PT_UID): New macro.
34360         (SET_DECL_PT_UID): Likewise.
34361         (DECL_PT_UID_SET_P): Likewise.
34362         (struct tree_decl_minimal): Add pt_uid member.
34363         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
34364         (pt_solution_empty_p): Declare.
34365         (pt_solution_set): Adjust.
34366         (ipa_escaped_pt): Declare.
34367         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
34368         * gimple-pretty-print.c (pp_points_to_solution): New function.
34369         (dump_gimple_call): Dump call clobber/use information.
34370         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
34371         * tree-pass.h (TDF_ALIAS): New dump option.
34372         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
34373         * doc/invoke.texi (-fipa-pta): Update documentation.
34374
34375 2010-04-15  Richard Guenther  <rguenther@suse.de>
34376
34377         * Makefile.in (OBJS-common): Add gimple-fold.o.
34378         (gimple-fold.o): New rule.
34379         * tree.h (maybe_fold_offset_to_reference,
34380         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
34381         prototypes ...
34382         * gimple.h: ... here.
34383         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
34384         may_propagate_address_into_dereference): Move prototypes ...
34385         * gimple.h: ... here.
34386         * tree-ssa-ccp.c (get_symbol_constant_value,
34387         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
34388         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
34389         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
34390         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
34391         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
34392         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
34393         gimplify_and_update_call_from_tree): Move ...
34394         * gimple-fold.c: ... here.  New file.
34395         (ccp_fold_builtin): Rename to ...
34396         (gimple_fold_builtin): ... this.
34397         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
34398
34399 2010-04-15  Richard Guenther  <rguenther@suse.de>
34400
34401         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
34402         fit_double_type, force_fit_type_double, add_double_with_sign,
34403         neg_double, mul_double_with_sign, lshift_double, rshift_double,
34404         lrotate_double, rrotate_double, div_and_round_double): Move ...
34405         * double-int.c: ... here.
34406         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
34407         add_double, neg_double, mul_double_with_sign, mul_double,
34408         lshift_double, rshift_double, lrotate_double, rrotate_double,
34409         div_and_round_double): Move prototypes ...
34410         * double-int.h: ... here.
34411
34412 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
34413
34414         PR target/43742
34415         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
34416         matching constraints to ensure inputs match the output.
34417
34418 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34419
34420         PR target/43742
34421         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
34422         in an input-only operand.
34423
34424 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
34425
34426         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
34427         (double_int_not, double_int_lshift, double_int_rshift): Declare.
34428         (double_int_negative_p): Convert to static inline function.
34429         * double-int.c (double_int_lshift, double_int_lshift): New functions.
34430         (double_int_negative_p): Remove.
34431         * tree.h (lshift_double, rshift_double):
34432         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
34433         * fold-const.c (fold_convert_const_int_from_real,
34434         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
34435         (lshift_double): Change type of arith argument to bool.
34436         (rshift_double): Change type of arith argument to bool. Correct
34437         comment.
34438         * expmed.c (mask_rtx, lshift_value): (Ditto.).
34439
34440 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
34441
34442         PR target/21803
34443         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
34444         at the start and end of the then/else blocks, and omit them from the
34445         conversion.
34446         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
34447         argument; all callers changed.  Pass zero to old_insns_match_p instead.
34448         (flow_find_head_matching_sequence): New function.
34449         (old_insns_match_p): Check REG_EH_REGION notes for calls.
34450         * basic-block.h (flow_find_cross_jump,
34451         flow_find_head_matching_sequence): Declare functions.
34452
34453 2010-04-14  Jason Merrill  <jason@redhat.com>
34454
34455         PR c++/36625
34456         * c-common.c (attribute_takes_identifier_p): New fn.
34457         * c-common.h: Declare it.
34458
34459 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34460
34461         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
34462         splitter condition.
34463         (*udivmod<mode>4): Ditto.
34464
34465 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34466
34467         * config/i386/i386.md (maxmin_int): Rename code attribute from
34468         maxminiprefix and update all users.
34469         (maxmin_float): Ditto from maxminfprefix.
34470         (logic): Ditto from logicprefix.
34471         (absneg_mnemonic): Ditto from absnegprefix.
34472         * config/i386/mmx.md: Update all users of maxminiprefix,
34473         maxminfprefix and logicprefix for rename.
34474         * config/i386/sse.md: Ditto.
34475         * config/i386/sync.md (sync_<code><mode>): Update for
34476         logicprefix rename.
34477
34478 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34479
34480         PR 42966
34481         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
34482         warnings converted to errors.
34483
34484 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34485
34486         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
34487         used insn_type variable.
34488         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
34489         to avoid set-but-not-used warning.
34490
34491 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34492
34493         * df-core.c (df_ref_debug): Change format string placeholder
34494         from 0x%x to %#x.
34495         * dwarf2asm.c (dw2_asm_output_data_raw,
34496         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
34497         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
34498         * dwarf2out.c (output_cfi, output_cfi_directive,
34499         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
34500         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
34501         Ditto.
34502         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
34503         * print-rtl.c (print_rtx): Ditto.
34504
34505 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
34506
34507         PR middle-end/42694
34508         * builtins.c (expand_builtin_pow_root): New function to expand pow
34509         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
34510         series of sqrt and cbrt calls under -ffast-math.
34511         (expand_builtin_pow): Call it.
34512
34513 2010-04-14  Michael Matz  <matz@suse.de>
34514
34515         PR tree-optimization/42963
34516         * tree-cfg.c (touched_switch_bbs): New static variable.
34517         (group_case_labels_stmt): New function broken out from ...
34518         (group_case_labels): ... here, use the above.
34519         (start_recording_case_labels): Allocate touched_switch_bbs.
34520         (end_recording_case_labels): Deallocate it, call
34521         group_case_labels_stmt.
34522         (gimple_redirect_edge_and_branch): Remember index of affected BB.
34523
34524 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34525
34526         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
34527         from insn template.
34528
34529 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34530
34531         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
34532
34533 2010-04-13  Jan Hubicka  <jh@suse.cz>
34534
34535         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
34536         of optimized out static functions.
34537         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
34538         cost computation.  Also sanity check for overflows.
34539         (update_caller_keys): Update cgraph_edge_badness call; properly
34540         update fibheap and sanity check that it is up to date.
34541         (add_new_edges_to_heap): Update cgraph_edge_badness.
34542         (cgraph_decide_inlining_of_small_function): Likewise;
34543         add sanity checking that badness in heap is up to date;
34544         improve dumping of reason; Update badness of calls to the
34545         offline copy of function currently inlined; dump badness
34546         of functions not inlined because of unit growth limits.
34547
34548 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34549
34550         PR middle-end/32628
34551         * c-common.c (pointer_int_sum): Disregard overflow that occured only
34552         because of sign-extension change when converting to sizetype here...
34553         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
34554
34555         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
34556         the folding to constants.  Remove redundant final conversion.
34557         (fold_binary) <associate>: Do not associate if the re-association of
34558         constants alone overflows.
34559         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
34560         to the end of the list.
34561         (multiple_of_p) <COND_EXPR>: New case.
34562
34563 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34564
34565         * opt-functions.awk (opt_sanitized_name): New.
34566         (opt_enum): New.
34567         * optc-gen.awk: Use it
34568         * opth-gen.awk: Use it.
34569
34570 2010-04-13  Martin Jambor  <mjambor@suse.cz>
34571
34572         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
34573         (sra_modify_assign): Delete stmts loading dead data even if racc has no
34574         children.  Call replace_uses_with_default_def_ssa_name to handle
34575         SSA_NAES on lhs.
34576
34577 2010-04-13  Michael Matz  <matz@suse.de>
34578
34579         PR middle-end/43730
34580         * builtins.c (expand_builtin_interclass_mathfn): Also create
34581         a register if the predicate doesn't match.
34582
34583 2010-04-13  Diego Novillo  <dnovillo@google.com>
34584
34585         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
34586         * c-pch.c: Include timevar.h.
34587         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
34588         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
34589         * ggc-common.c: Include timevar.h.
34590         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
34591         * timevar.def (TV_PCH_SAVE): Define.
34592         (TV_PCH_CPP_SAVE): Define.
34593         (TV_PCH_PTR_REALLOC): Define.
34594         (TV_PCH_PTR_SORT): Define.
34595         (TV_PCH_RESTORE): Define.
34596         (TV_PCH_CPP_RESTORE): Define.
34597
34598 2010-04-13  Michael Matz  <matz@suse.de>
34599
34600         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
34601         into MINUS_EXPRs.
34602         (can_reassociate_p): New function.
34603         (break_up_subtract_bb, reassociate_bb): Use it.
34604
34605 2010-04-13  Richard Guenther  <rguenther@suse.de>
34606
34607         PR bootstrap/43737
34608         * builtins.c (c_readstr): Fix assert.
34609
34610 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
34611
34612         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
34613         when generating cltd insn.
34614
34615         (*ashl<mode>3_1): Remove special handling for register operand 2.
34616         (*ashlsi3_1_zext): Ditto.
34617         (*ashlhi3_1): Ditto.
34618         (*ashlhi3_1_lea): Ditto.
34619         (*ashlqi3_1): Ditto.
34620         (*ashlqi3_1_lea): Ditto.
34621         (*<shiftrt_insn><mode>3_1): Ditto.
34622         (*<shiftrt_insn>si3_1_zext): Ditto.
34623         (*<shiftrt_insn>qi3_1_slp): Ditto.
34624         (*<rotate_insn><mode>3_1): Ditto.
34625         (*<rotate_insn>si3_1_zext): Ditto.
34626         (*<rotate_insn>qi3_1_slp): Ditto.
34627
34628 2010-04-13  Richard Guenther  <rguenther@suse.de>
34629
34630         * tree-ssa-structalias.c (callused_id): Remove.
34631         (call_stmt_vars): New.
34632         (get_call_vi): Likewise.
34633         (lookup_call_use_vi): Likewise.
34634         (lookup_call_clobber_vi): Likewise.
34635         (get_call_use_vi): Likewise.
34636         (get_call_clobber_vi): Likewise.
34637         (make_transitive_closure_constraints): Likewise.
34638         (handle_const_call): Adjust to do per-call call-used handling.
34639         (handle_pure_call): Likewise.
34640         (find_what_var_points_to): Remove general callused handling.
34641         (init_base_vars): Likewise.
34642         (init_alias_vars): Initialize call_stmt_vars.
34643         (compute_points_to_sets): Process call-used and call-clobbered
34644         vars for call statements.
34645         (delete_points_to_sets): Free call_stmt_vars.
34646
34647 2010-04-13  Richard Guenther  <rguenther@suse.de>
34648
34649         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
34650         Only add RW dependence for dependence distance zero.
34651         Adjust maximal vectorization factor according to dependences.
34652         Move alignment handling ...
34653         (vect_find_same_alignment_drs): ... here.  New function.
34654         (vect_analyze_data_ref_dependences): Adjust.
34655         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
34656         (vect_analyze_data_refs): Adjust minimal vectorization factor
34657         according to data references.
34658         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
34659         dependences before determining the vectorization factor.
34660         Analyze alignment after determining the vectorization factor.
34661         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
34662         dependences before alignment.
34663         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
34664         Adjust prototype.
34665         (vect_analyze_data_refs): Likewise.
34666         (MAX_VECTORIZATION_FACTOR): New define.
34667
34668 2010-04-13  Duncan Sands  <baldrick@free.fr>
34669
34670         * except.h (lang_eh_type_covers): Remove.
34671         * except.c (lang_eh_type_covers): Likewise.
34672
34673 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34674             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
34675
34676         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
34677         * config/s390/s390.c: Replace UNTIS_PER_WORD with
34678         UNITS_PER_LONG where it is ABI relevant.
34679         (s390_return_addr_rtx): Likewise.
34680         (s390_back_chain_rtx): Likewise.
34681         (s390_frame_area): Likewise.
34682         (s390_frame_info): Likewise.
34683         (s390_initial_elimination_offset): Likewise.
34684         (save_gprs): Likewise.
34685         (s390_emit_prologue): Likewise.
34686         (s390_emit_epilogue): Likewise.
34687         (s390_function_arg_advance): Likewise.
34688         (s390_function_arg): Likewise.
34689         (s390_va_start): Likewise.
34690         (s390_gimplify_va_arg): Likewise.
34691         (s390_function_profiler): Likewise.
34692         (s390_optimize_prologue): Likewise.
34693         (s390_rtx_costs): Likewise.
34694         (s390_secondary_reload): Likewise.
34695         (s390_promote_function_mode): Likewise.
34696         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
34697         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
34698         registers available.
34699         (s390_unwind_word_mode): New function.
34700         (s390_function_value): Split 64 bit values into register pair if
34701         used as return value.
34702         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
34703         function call parameters.  Handle parallels.
34704         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
34705         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
34706         (DWARF_CIE_DATA_ALIGNMENT): New macro.
34707         (s390_expand_setmem): Remove unused variable src_addr.
34708         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
34709         deal with 64 bit registers.
34710         * config/s390/s390.h: Define __zarch__ predefined macro.
34711         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
34712         (UNITS_PER_LONG): New macro.
34713         * libjava/include/s390-signal.h: Define extended ucontext
34714         structure containing the upper halfs of the 64 bit registers.
34715
34716 2010-04-13  Simon Baldwin  <simonb@google.com>
34717
34718         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
34719
34720 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34721
34722         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
34723         rvalue on the RHS if the LHS is of a non-renamable type.
34724         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
34725
34726 2010-04-13  Matthias Klose  <doko@ubuntu.com>
34727
34728         * gcc.c (cc1_options): Handle -iplugindir before processing
34729         the cc1 spec. Only add -iplugindir once.
34730         (cpp_unique_options): Add -iplugindir option if -fplugin* options
34731         found.
34732         * common.opt (iplugindir): Remove `Separate' property, initialize.
34733         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
34734         option.
34735         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
34736         (distclean): Remove plugin dir.
34737         * doc/invoke.texi: Document -iplugindir.
34738
34739 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
34740
34741         * doc/plugins.texi (Loading Plugins): Document short
34742         -fplugin=foo option.
34743         (Plugin API): Mention default_plugin_dir_name function.
34744
34745         * gcc.c (find_file_spec_function): Add new declaration.
34746         (static_spec_func): Use it for "find-file".
34747         (find_file_spec_function): Add new function.
34748         (cc1_options): Add -iplugindir option if -fplugin* options found.
34749
34750         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
34751
34752         * plugin.c (add_new_plugin): Updated comment, and handle short
34753         plugin name.
34754         (default_plugin_dir_name): Added new function.
34755
34756         * common.opt (iplugindir): New option to set the plugin directory.
34757
34758 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
34759
34760         * config/i386/i386.md (any_rotate): New code iterator.
34761         (rotate_insn): New code attribute.
34762         (rotate): Ditto.
34763         (SWIM124): New mode iterator.
34764         (<rotate_insn>ti3): New expander.
34765         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
34766         any_rotate code iterator.
34767         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
34768         using any_rotate code iterator and SWIM124 mode iterator.
34769         (ix86_rotlti3): New insn_and_split pattern.
34770         (ix86_rotrti3): Ditto.
34771         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
34772         ix86_rotl{di,ti}3 patterns.
34773         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
34774         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
34775         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
34776         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
34777         code iterator and SWI mode iterator.
34778         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
34779         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
34780         code iterator.
34781         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
34782         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
34783         (bswap rotatert splitter): Add splitter.
34784         (bswap splitter): Macroize splitter using any_rotate code iterator.
34785         Add insn predicate to split only for TARGET_USE_XCHGB or when
34786         optimizing function for size.
34787
34788 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34789
34790         * config/pa/pa.c (emit_move_sequence): Remove use of
34791         deleted variable flag_argument_noalias.
34792
34793 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34794
34795         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
34796         configurations.
34797         Add to unsupported targets list.
34798         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
34799         sparc*-sun-solaris2.[567]* from target lists.
34800         * configure: Regenerate.
34801         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
34802         removal.
34803         Remove Solaris 7 patch references.
34804         (Specific, sparc-sun-solaris2.7): Removed.
34805         (sparc-sun-solaris2*): Update Solaris 7 example.
34806         (sparc64-*-solaris2*): Likewise.
34807
34808 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34809
34810         * config.build (alpha*-dec-osf4*): Remove.
34811         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
34812         of obsolete configurations.
34813         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
34814         support.
34815         * config/alpha/t-osf4: Renamed to ...
34816         * config/alpha/t-osf5: ... this.
34817         * config/alpha/osf.h: Renamed to ...
34818         * config/alpha/osf5.h: ... this.
34819         Merged old osf5.h contents.
34820         Update comments.
34821         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
34822         (EXTRA_SPECS): Removed.
34823         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
34824         reflect removal of Tru64 UNIX V4.0/V5.0 support.
34825         Document that.
34826
34827 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34828
34829         * doc/contrib.texi (Contributors, Rainer Orth): Update.
34830
34831 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
34832
34833         PR/43702
34834         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
34835         __thiscall convention.
34836
34837 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34838
34839         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
34840         orig_base.
34841         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
34842
34843 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34844
34845         * function.c (assign_parms_initialize_all): Add unused attribute
34846         to fntype.
34847
34848 2010-04-12  Richard Guenther  <rguenther@suse.de>
34849
34850         * gsstruct.def (GSS_CALL): New.
34851         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
34852         * gimple.h: Include tree-ssa-alias.h.
34853         (struct gimple_statement_call): New.
34854         (union gimple_statement_struct_d): Add gimple_call member.
34855         (gimple_call_reset_alias_info): Declare.
34856         (gimple_call_use_set): New function.
34857         (gimple_call_clobber_set): Likewise.
34858         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
34859         * gimple.c (gimple_call_reset_alias_info): New function.
34860         (gimple_build_call_1): Call it.
34861         * lto-streamer-in.c (input_gimple_stmt): Likewise.
34862         * tree-inline.c (remap_gimple_stmt): Likewise.
34863         (expand_call_inline): Remove callused handling.
34864         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
34865         * tree-dfa.c (dump_variable): Likewise.
34866         * tree-parloops.c (parallelize_loops): Likewise.
34867         * tree-ssa.c (init_tree_ssa): Likewise.
34868         (delete_tree_ssa): Likewise.
34869         * tree-flow-inline.h (is_call_used): Remove.
34870         * tree-flow.h (struct gimple_df): Remove callused member.
34871         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
34872         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
34873         (ref_maybe_used_by_call_p_1): Simplify.
34874         (call_may_clobber_ref_p_1): Likewise.
34875         * tree-ssa-structalias.c (compute_points_to_sets): Set
34876         the call stmt used and clobbered sets.
34877         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
34878         (find_tail_calls): Verify the tail call.
34879
34880 2010-04-12  Richard Guenther  <rguenther@suse.de>
34881
34882         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
34883         single-iteration always-inline inlining.
34884         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
34885         (cgraph_decide_inlining): Do not handle always-inline specially.
34886         (try_inline): Remove always-inline cycle detection special case.
34887         Do not recurse on always-inlines.
34888         (cgraph_early_inlining): Do not iterate if not optimizing.
34889         (cgraph_gate_early_inlining): remove.
34890         (pass_early_inline): Run unconditionally.
34891         (gate_cgraph_decide_inlining): New function.
34892         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
34893         not inlining or optimizing.
34894         (cgraph_decide_inlining_of_small_functions): Also consider
34895         always-inline functions.
34896         (cgraph_default_inline_p): Return true for nodes which should
34897         disregard inline limits.
34898         (estimate_function_body_sizes): Assume zero size and time for
34899         nodes which are marked as disregarding inline limits.
34900         (cgraph_decide_recursive_inlining): Do not perform recursive
34901         inlining on always-inline nodes.
34902
34903 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
34904
34905         PR bootstrap/43699
34906         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
34907         for exprs satisfying handled_component_p.
34908
34909 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
34910
34911         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
34912         non-constant aggregate elements.
34913
34914         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
34915         is a real initialization.
34916
34917 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
34918
34919         PR c/36774
34920         * c-decl.c (start_function): Move forward check for nested function.
34921
34922 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
34923
34924         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
34925         * config/sh/sh.c: Include reload.h.
34926         (sh_legitimize_reload_address): New.
34927         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
34928         sh_legitimize_reload_address.
34929
34930 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34931
34932         * config/sh/sh.md (*movqi_pop): New insn pattern.
34933         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
34934
34935 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34936
34937         * config/i386/i386.md (any_shiftrt): New code iterator.
34938         (shiftrt_insn): New code attribute.
34939         (shiftrt): Ditto.
34940         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
34941         using any_shiftrt code iterator.
34942         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
34943         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
34944         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
34945         pattern from corresponding peephole2 patterns.
34946         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
34947         using any_shiftrt code iterator.
34948         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
34949         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
34950         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
34951         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
34952         *{ashr,lshr}<mode>3_cmp_zext.
34953         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
34954
34955 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34956
34957         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
34958         scratch register.
34959         (*lshr<mode>3_cconly): Ditto.
34960
34961 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
34962
34963         * config/i386/i386.md (lshr<mode>3): Macroize expander from
34964         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
34965         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34966         pattern from *lshr{di,ti}3_1 and corresponding splitters using
34967         DWI mode iterator.
34968         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
34969         from corresponding peephole2 patterns.
34970         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
34971         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
34972         and *lshrdi3_1_rex64 using SWI mode iterator.
34973         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
34974         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
34975         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
34976         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
34977         and *lshrdi3_cmp_rex64 using SWI mode iterator.
34978         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
34979         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
34980         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
34981         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
34982         SWI mode iterator.
34983
34984 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
34985
34986         * config/i386/i386.md (ashr<mode>3): Macroize expander from
34987         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
34988         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
34989         pattern from *ashr{di,ti}3_1 and corresponding splitters using
34990         DWI mode iterator.
34991         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
34992         from corresponding peephole2 patterns.
34993         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
34994         (ashrsi3_cvt): Rename from ashrsi3_31.
34995         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
34996         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
34997         and x86_64_shift_adj_3 using SWI48 mode iterator.
34998         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
34999         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
35000         and *ashrdi3_1_rex64 using SWI mode iterator.
35001         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
35002         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
35003         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
35004         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
35005         and *ashrdi3_cmp_rex64 using SWI mode iterator.
35006         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
35007         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
35008         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
35009         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
35010         SWI mode iterator.
35011         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
35012         * config/i386/i386.c (ix86_split_ashr): Update for renamed
35013         x86_shift<mode>_adj_3 expanders.
35014
35015 2010-04-10  Wei Guozhi  <carrot@google.com>
35016
35017         PR target/42601
35018         * config/arm/arm.c (arm_pic_static_addr): New function.
35019         (legitimize_pic_address): Call arm_pic_static_addr when it detects
35020         a static symbol.
35021         (arm_output_addr_const_extra): Output expression for new pattern.
35022         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
35023
35024 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
35025
35026         * ira-costs.c (record_reg_classes): Ignore alternatives that are
35027         not enabled.
35028
35029         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
35030         * web.c: Include "insn-config.h" and "recog.h".
35031         (union_match_dups): New function.
35032         (web_main): Call it.
35033         (union_defs): Don't try to recognize match_dups.
35034
35035         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
35036         if doing so would replace the entire pattern.
35037
35038 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
35039
35040         PR target/43707
35041         PR target/43709
35042         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
35043         and splitter pattern.  Change splitter operand 1 predicate to
35044         nonmemory_operand.
35045
35046 2010-04-09  Martin Jambor  <mjambor@suse.cz>
35047
35048         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
35049         lattices are addresses of CONST_DECLs with the same initial value.
35050         (ipcp_print_all_lattices): Print values of CONST_DECLs.
35051         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
35052
35053 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
35054             Bernd Schmidt  <bernds@codesourcery.com>
35055
35056         * loop-invariant.c (replace_uses): New static function.
35057         (move_invariant_reg): Use it to ensure we can replace the uses.
35058
35059 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
35060
35061         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
35062         function template.
35063         (picochip_override_options): Enable section anchors only above -O1.
35064         (picochip_reorg): Fixed a couple of build warnings.
35065
35066 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35067
35068         * configure.ac (plugin -rdynamic test): Log result.
35069         * configure: Regenerate.
35070         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
35071         (RDYNAMIC_SPEC): Define.
35072         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
35073
35074 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35075
35076         * configure.ac: Determine Sun ld version numbers.
35077         (comdat_group): Restrict GNU ld version checks to gld.
35078         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
35079         (enable_comdat): Support --enable-comdat.
35080         * configure: Regenerate.
35081         * doc/install.texi (Configuration): Document --enable-comdat.
35082
35083 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35084
35085         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
35086         * config/sol2-gld.h: ... here.
35087         * config.gcc (sparc*-*-solaris2*): Reflect this.
35088         (i[34567]86-*-solaris2*): Use it.
35089
35090 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
35091
35092         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
35093         setup_clocks_p.
35094         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
35095
35096 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35097
35098         PR 42965
35099         * diagnostic.c (diagnostic_initialize): Initialize
35100         some_warnings_are_errors.
35101         (diagnostic_finish): New.
35102         (diagnostic_action_after_output): Call it before exiting.
35103         (diagnostic_report_diagnostic): Do not print message here. Set
35104         some_warnings_are_errors.
35105         * diagnostic.h (diagnostic_context): Delete
35106         issue_warnings_are_errors_message. Add some_warnings_are_errors.
35107         (diagnostic_finish): Declare.
35108         * toplev.c (toplev_main): Call it before exit.
35109
35110 2010-04-09  Jason Merrill  <jason@redhat.com>
35111
35112         PR c++/42623
35113         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
35114         for incomplete type.
35115
35116         PR c++/41788
35117         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
35118         based on a warning flag.
35119
35120 2010-04-09  Richard Guenther  <rguenther@suse.de>
35121
35122         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
35123
35124 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
35125
35126         PR bootstrap/43684
35127         * varasm.c (default_assemble_visibility): Wrap vars that are
35128         set, but unused, by targets without GAS.
35129         * config/rs6000/rs6000.c (paired_emit_vector_compare):
35130         Remove set, but unused, vars.
35131         (rs6000_legitimize_tls_address): Likewise.
35132         (altivec_expand_dst_builtin): Likewise.
35133         * config/darwin.c (machopic_classify_symbol): Likewise.
35134         (machopic_indirection_name): Likewise.
35135
35136 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
35137
35138         * config/i386/i386.md (DWI): New mode iterator.
35139         (S): New mode attribute.
35140         (shift_operand): Ditto.
35141         (shift_immediate_operand): Ditto.
35142         (ashl_input_operand): Ditto.
35143         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
35144         using SDWIM mode iterator.
35145         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
35146         pattern from *ashl{di,ti}3_1 and corresponding splitters using
35147         DWI mode iterator.
35148         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
35149         from corresponding peephole2 patterns.
35150         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
35151         and x86_64_shift_adj_1 using SWI48 mode iterator.
35152         (x86_shift<mode>_adj_2): Ditto.
35153         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
35154         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
35155         using SWI48 mode iterator.
35156         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
35157         *ashldi3_cmp_rex64 using SWI mode iterator.
35158         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
35159         *ashldi3_cconly_rex64 using SWI mode iterator.
35160         * config/i386/i386.c (ix86_split_ashl): Update for renamed
35161         x86_shift<mode>_adj_{1,2}.
35162         (ix86_split_ashr): Ditto.
35163         (ix86_split_lshr): Ditto.
35164
35165 2010-04-09  Richard Guenther  <rguenther@suse.de>
35166
35167         * target.h (builtin_conversion): Pass in input and output types.
35168         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
35169         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
35170         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
35171         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
35172
35173         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
35174         Handle AVX modes.
35175         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
35176
35177 2010-04-09  Richard Guenther  <rguenther@suse.de>
35178
35179         PR target/43152
35180         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
35181
35182 2010-04-09  Richard Guenther  <rguenther@suse.de>
35183
35184         * tree-vectorizer.h (struct _stmt_vec_info): Document
35185         that vectype is the type of the LHS.
35186         (supportable_widening_operation, supportable_narrowing_operation):
35187         Get both input and output vector types as arguments.
35188         (vect_is_simple_use_1): Declare.
35189         (get_same_sized_vectype): Likewise.
35190         * tree-vect-loop.c (vect_determine_vectorization_factor):
35191         Set STMT_VINFO_VECTYPE to the vector type of the def.
35192         (vectorizable_reduction): Adjust.
35193         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
35194         Adjust.  Specify the output vector type.
35195         (vect_pattern_recog_1): Adjust.
35196         * tree-vect-stmts.c (get_same_sized_vectype): New function.
35197         (vectorizable_call): Adjust.
35198         (vectorizable_conversion): Likewise.
35199         (vectorizable_operation): Likewise.
35200         (vectorizable_type_demotion): Likewise.
35201         (vectorizable_type_promotion): Likewise.
35202         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
35203         the def.
35204         (vect_is_simple_use_1): New function.
35205         (supportable_widening_operation): Get both input and output
35206         vector types.
35207         (supportable_narrowing_operation): Likewise.
35208         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
35209
35210 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
35211
35212         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
35213         __thiscall and _thiscall as predefined macros.
35214         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
35215         thiscall attribute handling.
35216         (ix86_comp_type_attributes): Likewise.
35217         (ix86_function_regparm): Likewise.
35218         (ix86_return_pops_args): Likewise.
35219         (init_cumulative_args): Likewise.
35220         (find_drap_reg): Likewise.
35221         (ix86_static_chain): Likewise.
35222         (x86_this_parameter): Likewise.
35223         (x86_output_mi_thunk): Likewise.
35224         (ix86_attribute_table): Add description for thiscall attribute.
35225         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
35226         * doc/extend.texi: Add documentation for thiscall.
35227
35228 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35229
35230         PR c++/28584
35231         * c.opt (Wint-to-pointer-cast): Available in C++.
35232         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
35233
35234 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
35235
35236         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
35237         * calls.c (expand_call): Pass the function type to aggregate_value_p.
35238         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
35239         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
35240         function type instead.  Reorder and simplify checks.
35241
35242         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
35243
35244 2010-04-08  Jing Yu  <jingyu@google.com>
35245             Zdenek Dvorak  <ook@ucw.cz>
35246
35247         PR tree-optimization/42720
35248         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
35249         loop unswitch conditions here from ...
35250         (tree_unswitch_single_loop): ... here.
35251
35252 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
35253
35254         * tree-if-conv.c: Fix comments and simplify logic.
35255
35256 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
35257
35258         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
35259         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
35260         (main_tree_if_conversion): Update call to tree_if_conversion.
35261
35262 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35263
35264         PR 42485
35265         * doc/invoke.texi (-b,-V): Delete.
35266         * doc/tm.texi: Do not mention -b.
35267         * gcc.c (display_help): Delete -b and -V.
35268         (process_command): Delete -b and -V.
35269         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
35270
35271 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
35272             Wolfgang Gellerich  <gellerich@de.ibm.com>
35273
35274         Implement target hook for loop unrolling
35275         * target.h (loop_unroll_adjust): Add a new target hook function.
35276         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
35277         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
35278         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
35279         (s390_loop_unroll_adjust): Implement the new target hook for s390.
35280         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
35281         target hook.
35282         (decide_unroll_stupid): Likewise.
35283
35284 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35285
35286         PR target/43643
35287         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
35288
35289 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35290
35291         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
35292         (Specific, *-*-solaris2*): Likewise.
35293         Don't prefer Sun as over GNU as.
35294
35295 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
35296
35297         * config/s390/s390.c (override_options): Adjust the z10 defaults
35298         for max-unroll-times, max-completely-peeled-insns
35299         and max-completely-peel-times.
35300
35301 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35302
35303         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
35304         instructions for z10.
35305         (s390_expand_setmem): Likewise.
35306         (s390_expand_cmpmem): Likewise.
35307
35308 2010-04-08  Richard Guenther  <rguenther@suse.de>
35309
35310         PR tree-optimization/43679
35311         * tree-ssa-pre.c (eliminate): Only propagate copies.
35312
35313 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
35314
35315         PR bootstrap/43681
35316         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
35317         set but not used variable warning.
35318
35319 2010-04-08  Wei Guozhi  <carrot@google.com>
35320
35321         PR target/41653
35322         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
35323         (arm_size_rtx_costs): Call the new function when optimized for size.
35324
35325 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
35326
35327         PR debug/43670
35328         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
35329         op0 is not a MEM, just return NULL instead of assertion
35330         failure.
35331         (discover_nonconstant_array_refs): Don't walk debug stmts.
35332
35333 2010-04-08  Doug Kwan  <dougkwan@google.com>
35334
35335         * configure.ac: Recognize gold and do not use its version number
35336         to test ld features.
35337         * configure: Regenerate.
35338
35339 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
35340
35341         PR middle-end/40815
35342         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
35343         (negate_value): Move code to push elements to broken_up_substracts ...
35344         (eliminate_plus_minus_pair): ... here.  Push operands that have no
35345         negative pair to plus_negates.
35346         (repropagate_negates, init_reassoc, fini_reassoc): Update.
35347
35348 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35349
35350         * doc/install.texi (Configuration): Move description of
35351         --enable-lto, --with-libelf*, --enable-gold from Java section to
35352         general section.
35353
35354         * doc/generic.texi (Working with declarations)
35355         (Function Properties, C and C++ Trees): Fix typos.
35356         * doc/sourcebuild.texi (Top Level): Likewise.
35357
35358 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35359
35360         PR c/18624
35361         * tree.h (DECL_READ_P): Define.
35362         (struct tree_decl_common): Add decl_read_flag.
35363         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
35364         a set but not used warning.
35365         (merge_decls): Merge DECL_READ_P flag.
35366         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
35367         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
35368         * c-common.c (handle_used_attribute, handle_unused_attribute):
35369         Likewise.
35370         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
35371         New prototypes.
35372         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
35373         New functions.
35374         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
35375         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
35376         c_parser_binary_expression, c_parser_cast_expression,
35377         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
35378         Call default_function_array_read_conversion instead of
35379         default_function_array_conversion where needed.
35380         (c_parser_unary_expression, c_parser_conditional_expression,
35381         c_parser_postfix_expression_after_primary, c_parser_initelt):
35382         Likewise.  Call mark_exp_read where needed.
35383         (c_parser_statement_after_labels, c_parser_asm_operands,
35384         c_parser_typeof_specifier, c_parser_sizeof_expression,
35385         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
35386         where needed.
35387         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
35388         New.
35389         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
35390         (warn_unused_but_set_parameter): Default to warn_unused
35391         && extra_warnings.
35392         * doc/invoke.texi: Document -Wunused-but-set-variable and
35393         -Wunused-but-set-parameter.
35394
35395         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
35396         used count variable.
35397         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
35398         when operandN variables aren't used in the body of the expander
35399         or splitter.
35400         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
35401         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
35402         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
35403         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
35404         FOR_EACH_IMM_USE_ON_STMT): Likewise.
35405         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
35406         * tree.c (PROCESS_ARG): Likewise.
35407
35408 2010-04-07  Simon Baldwin  <simonb@google.com>
35409
35410         * diagnostic.h (diagnostic_override_option_index): New macro to
35411         set a diagnostic's option_index.
35412         * c-tree.h (c_cpp_error): Add warning reason argument.
35413         * opts.c (_warning_as_error_callback): New.
35414         (register_warning_as_error_callback): Store callback for
35415         warnings enabled via enable_warning_as_error.
35416         (enable_warning_as_error): Call callback, minor code tidy.
35417         * opts.h (register_warning_as_error_callback): Declare.
35418         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
35419         response to -Werror=.
35420         (c_common_init_options): Register warning_as_error_callback in opts.c.
35421         * common.opt: Add -Wno-cpp option.
35422         * c-common.c (struct reason_option_codes_t): Map cpp warning
35423         reason codes to gcc option indexes.
35424         * (c_option_controlling_cpp_error): New function, lookup the gcc
35425         option index for a cpp warning reason code.
35426         * (c_cpp_error): Add warning reason argument, call
35427         c_option_controlling_cpp_error for diagnostic_override_option_index.
35428         * doc/invoke.texi: Document -Wno-cpp.
35429
35430 2010-04-07  Richard Guenther  <rguenther@suse.de>
35431
35432         * ipa-reference.c (mark_load): Use get_base_address.
35433         (mark_store): Likewise.
35434
35435         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
35436         inserting GIMPLE_NOPs into the IL.
35437         * tree-ssa-structalias.c (get_constraint_for_component_ref):
35438         Explicitly strip handled components and indirect references.
35439
35440         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
35441         folding address expressions.
35442         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
35443         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
35444         operand_equal_p to compare decls.
35445         (ptr_deref_may_alias_decl_p): Likewise.
35446         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
35447         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
35448         Handle reversed comparison ops.
35449         * tree-sra.c (asm_visit_addr): Use get_base_address.
35450         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
35451         * ipa-reference.c (mark_address): Use get_base_address.
35452
35453 2010-04-07  Richard Guenther  <rguenther@suse.de>
35454
35455         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
35456         Propagate constants everywhere.
35457
35458 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35459
35460         PR debug/43516
35461         * tree.c (MAX_INT_CACHED_PREC): Define.
35462         (nonstandard_integer_type_cache): New array.
35463         (build_nonstandard_integer_type): Cache results for precision
35464         <= MAX_INT_CACHED_PREC.
35465
35466 2010-04-07  Richard Guenther  <rguenther@suse.de>
35467
35468         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
35469         -fargument-noalias-global, -fargument-noalias-anything): Remove.
35470         * common.opt: Likewise.
35471         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
35472         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
35473         (nonoverlapping_memrefs_p): Likewise.
35474         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
35475         * opts.c (common_handle_option): Handle OPT_fargument_alias,
35476         OPT_fargument_noalias, OPT_fargument_noalias_anything and
35477         OPT_fargument_noalias_global for backward compatibility.
35478
35479 2010-04-07  Richard Guenther  <rguenther@suse.de>
35480
35481         PR tree-optimization/43270
35482         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
35483         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
35484         * tree-ssa-pre.c (phi_translate_1): Adjust.
35485         (fully_constant_expression): Split out vn_reference handling to ...
35486         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
35487         Fold reads from constant strings.
35488         (vn_reference_lookup): Handle fully constant references.
35489         (vn_reference_lookup_pieces): Likewise.
35490         * Makefile.in (expmed.o-warn): Add -Wno-error.
35491
35492 2010-04-07  Martin Jambor  <mjambor@suse.cz>
35493
35494         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
35495
35496 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
35497
35498         PR driver/41594
35499         * gcc.c: Add -static-libstdc++ to list of recognized options.
35500
35501 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35502
35503         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
35504
35505 2010-04-07  Richard Guenther  <rguenther@suse.de>
35506
35507         PR middle-end/42617
35508         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
35509         bases build simple mem attributes to retain points-to information.
35510
35511 2010-04-07  Richard Guenther  <rguenther@suse.de>
35512
35513         PR middle-end/42617
35514         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
35515         preserve points-to related information.
35516
35517 2010-04-07  Richard Guenther  <rguenther@suse.de>
35518
35519         PR middle-end/42617
35520         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
35521         discard plain indirect references.
35522         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
35523         * tree.c (tree_nop_conversion): Likewise.
35524
35525 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
35526
35527         PR debug/43628
35528         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
35529
35530 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
35531
35532         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
35533         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
35534
35535 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35536
35537         * tree-if-conv.c: Fix indentation and comments.
35538
35539 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35540
35541         * tree-if-conv.c: Sort static functions in topological order.
35542
35543 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35544
35545         * tree-if-conv.c: Fix indentation and comments.
35546
35547 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35548
35549         PR middle-end/43519
35550         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
35551         lang_hooks.types.type_for_size instead of
35552         build_nonstandard_integer_type.
35553         When converting an unsigned type to signed, double its precision.
35554         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
35555         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
35556         (graphite_create_new_loop_guard): When ub + 1 wraps around,
35557         use lb <= ub.
35558
35559 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35560
35561         PR middle-end/43519
35562         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
35563         POINTER_PLUS_EXPR for pointer types.
35564
35565 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35566
35567         PR middle-end/43519
35568         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
35569         * graphite-clast-to-gimple.c: Include langhooks.h.
35570         (max_signed_precision_type): New.
35571         (max_precision_type): Takes two types as arguments.
35572         (precision_for_value): New.
35573         (precision_for_interval): New.
35574         (gcc_type_for_interval): New.
35575         (gcc_type_for_value): New.
35576         (gcc_type_for_clast_term): New.
35577         (gcc_type_for_clast_red): New.
35578         (gcc_type_for_clast_bin): New.
35579         (gcc_type_for_clast_expr): Split up into several functions.
35580         (gcc_type_for_clast_eq): Rewritten.
35581         (compute_bounds_for_level): New.
35582         (compute_type_for_level_1): New.
35583         (compute_type_for_level): New.
35584         (gcc_type_for_cloog_iv): Removed.
35585         (gcc_type_for_iv_of_clast_loop): Rewritten.
35586         (graphite_create_new_loop): Compute the lower and upper bound types
35587         with gcc_type_for_clast_expr.
35588         (graphite_create_new_loop_guard): Same.
35589         (find_cloog_iv_in_expr): Removed.
35590         (compute_cloog_iv_types_1): Removed.
35591         (compute_cloog_iv_types): Removed.
35592         (gloog): Do not call compute_cloog_iv_types.
35593         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
35594         GBB_CLOOG_IV_TYPES.
35595         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
35596         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
35597         (GBB_CLOOG_IV_TYPES): Removed.
35598
35599 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35600
35601         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
35602         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
35603         (detect_commutative_reduction): Same.
35604
35605 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35606
35607         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
35608         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
35609         argument.
35610         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
35611         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
35612         (rewrite_commutative_reductions_out_of_ssa): Same.
35613         * passes.c (execute_function_todo): Call verify_ssa for every pass
35614         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
35615         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
35616         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
35617         with an extra argument.
35618         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
35619         verify_ssa only when the extra argument is true.
35620         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
35621         with an extra argument.
35622         (tree_transform_and_unroll_loop): Same.
35623
35624 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35625
35626         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
35627         for all the passes of the LNO having LOOP_CLOSED_SSA.
35628         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
35629         * tree-loop-distribution.c (pass_loop_distribution): Same.
35630         * tree-pass.h (TODO_verify_loops): Removed.
35631         * tree-ssa-loop.c (pass_tree_loop_init): Same.
35632         (pass_lim): Same.
35633         (pass_tree_unswitch): Same.
35634         (pass_predcom): Same.
35635         (pass_vectorize): Same.
35636         (pass_linear_transform): Same.
35637         (pass_graphite_transforms): Same.
35638         (pass_iv_canon): Same.
35639         (pass_complete_unroll): Same.
35640         (pass_complete_unrolli): Same.
35641         (pass_parallelize_loops): Same.
35642         (pass_loop_prefetch): Same.
35643         (pass_iv_optimize): Same.
35644
35645 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
35646
35647         PR middle-end/32824
35648         * passes.c (init_optimization_passes): Move pass_lim before
35649         pass_copy_prop and pass_dce_loop.
35650
35651 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35652
35653         PR target/43667
35654         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
35655         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
35656         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
35657         MULTI_* defines for 4 argument vpermil2p* builtins.
35658
35659 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35660
35661         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
35662         * config/i386/i386.c (x86_maybe_negate_const_int): New.
35663         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
35664         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
35665         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
35666         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
35667         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
35668         Use x86_maybe_negate_const_int to output insn mnemonic.
35669         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
35670         check from instruction predicate.  Update comments.
35671         * config/i386/sync.md (sync_add<mode>): Use
35672         x86_maybe_negate_const_int to output insn mnemonic.
35673
35674 2010-04-06  Jan Hubicka  <jh@suse.cz>
35675
35676         PR tree-optimization/42906
35677         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
35678         IGNORE_SELF argument.  Set visited_control_parents for fully
35679         processed BBs.
35680         (find_obviously_necessary_stmts): Update call of
35681         mark_control_dependent_edges_necessary.
35682         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
35683
35684 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35685
35686         * config/i386/i386.md: Remove comment about 'e' and 'E'
35687         operand modifier.
35688
35689 2010-04-06  Richard Guenther  <rguenther@suse.de>
35690
35691         PR tree-optimization/43627
35692         * tree-vrp.c (extract_range_from_unary_expr): Widenings
35693         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
35694         not varying.
35695
35696 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35697
35698         * BASE-VER: Change to 4.6.0.
35699
35700         PR target/43638
35701         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
35702         handling.
35703
35704 2010-04-06  Richard Guenther  <rguenther@suse.de>
35705
35706         PR middle-end/43661
35707         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
35708
35709 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35710
35711         * doc/invoke.texi (Optimize Options): Document that LTO
35712         won't remove object access purely due to incompatible
35713         declarations.
35714
35715 2010-04-04  Matthias Klose  <doko@ubuntu.com>
35716
35717         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
35718         Initialize variable.
35719
35720 2010-04-03  Richard Guenther  <rguenther@suse.de>
35721
35722         PR middle-end/42509
35723         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
35724         require a non-NULL MEM_OFFSET.
35725
35726 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
35727
35728         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
35729         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
35730         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
35731         config/alpha/predicates.md, config/arm/arm.md,
35732         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
35733         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
35734         config/darwin9.h, config/darwin.c, config/darwin.h,
35735         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
35736         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
35737         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
35738         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
35739         config/mips/mips.md, config/mn10300/mn10300.c,
35740         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
35741         config/rs6000/aix.h, config/rs6000/dfp.md,
35742         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
35743         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
35744         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
35745         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
35746         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
35747         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
35748         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
35749         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
35750         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
35751         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
35752         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
35753         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
35754         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
35755         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
35756         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
35757         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
35758         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
35759         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
35760         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
35761         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
35762         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
35763         opt-functions.awk, opth-gen.awk, params.def, passes.c,
35764         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
35765         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
35766         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
35767         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
35768         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
35769         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
35770         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
35771         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
35772         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
35773         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
35774         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
35775         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
35776         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
35777         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
35778
35779 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35780
35781         PR other/43620
35782         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
35783         * aclocal.m4: Regenerate.
35784
35785 2010-04-02  Richard Guenther  <rguenther@suse.de>
35786
35787         PR tree-optimization/43629
35788         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
35789         if we have seen a constant value.
35790
35791 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
35792
35793         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
35794
35795 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
35796
35797         PR target/43469
35798         * arm.c (legitimize_tls_address): Adjust call to
35799         gen_tls_load_dot_plus_four.
35800         (arm_note_pic_base): New function.
35801         (arm_cannot_copy_insn_p): Use it.
35802         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
35803         constraint.
35804
35805 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35806
35807         PR bootstrap/43531
35808
35809         Revert:
35810         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35811
35812         * Makefile.in ($(out_object_file)): Depend on
35813         gt-$(basename $(notdir $(out_file))).h.
35814
35815 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
35816
35817         * config.gcc (lm32-*-rtems*): Add t-lm32.
35818
35819 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
35820
35821         * config.gcc: Add lm32-*-rtems*.
35822         * config/lm32/rtems.h: New file.
35823
35824 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
35825
35826         PR target/42609
35827         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
35828
35829 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
35830
35831         * dwarf2out.c (output_compilation_unit_header): For
35832         -gdwarf-4 use version 4 instead of version 3.
35833         (output_line_info): For version 4 and above emit additional
35834         maximum ops per insn header field.
35835         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
35836
35837         * dwarf2out.c (is_c_family, is_java): Remove.
35838         (lower_bound_default): New function.
35839         (add_bound_info, gen_descr_array_type_die): Use it.
35840
35841 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
35842
35843         PR debug/43325
35844         * dwarf2out.c (gen_variable_die): Allow debug info for variable
35845         re-declaration when it happens in a function.
35846
35847 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
35848
35849         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
35850         (cgraph_remove_function_insertion_hook): Same.
35851         (cgraph_call_function_insertion_hooks): Same.
35852
35853 2010-04-01  Richard Guenther  <rguenther@suse.de>
35854
35855         PR middle-end/43614
35856         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
35857         and TREE_THIS_VOLATILE.
35858         (copy_ref_info): Likewise.
35859         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
35860         * tree.c (build6_stat): Ignore side-effects of all but arg5
35861         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
35862         TARGET_MEM_REF.
35863
35864 2010-04-01  Richard Guenther  <rguenther@suse.de>
35865
35866         PR tree-optimization/43607
35867         * ipa-type-escape.c (check_call): Do not access non-existing
35868         arguments.
35869
35870 2010-04-01  Richard Guenther  <rguenther@suse.de>
35871
35872         PR middle-end/43602
35873         Revert
35874         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
35875                     Jack Howarth  <howarth@bromo.med.uc.edu>
35876
35877         * tree-profile.c (tree_init_ic_make_global_vars): Make static
35878         variables TLS.
35879
35880 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35881
35882         * doc/install.texi (Prerequisites): Document libelf usability on
35883         IRIX 5/6 and Solaris 2.
35884         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
35885         Update GNU as, GNU ld requirements.
35886         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
35887         Document Sun Studio compiler download.
35888         Update and simplify as, ld recommendations.
35889         (Specific, *-*-solaris2.7): Note obsoletion, removal.
35890
35891 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35892
35893         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
35894         with_tune_32 to pentium4.
35895
35896 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
35897
35898         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
35899
35900 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35901
35902         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
35903         obsoletion, removal.
35904         Update IDO URL.
35905         Document GNU as requirement.
35906         Update configure requirements.
35907         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
35908         Recomment IRIX 6.5.18+.
35909         Document IDF/IDL requirement.
35910         Document GNU as requirement.
35911         Document GNU ld bootstrap failure.
35912         Remove freeware.sgi.com reference.
35913
35914 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35915
35916         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
35917         UNIX V4.0, V5.0 obsoletion, removal.
35918         Remove --with-gc=simple reference.
35919         Update VM requirements during bootstrap.
35920         Remove -oldas bootstrap description.
35921         Update binutils reference.
35922         Remove comparison failure note.
35923
35924 2010-03-31  Richard Guenther  <rguenther@suse.de>
35925             Zdenek Dvorak  <ook@ucw.cz>
35926             Sebastian Pop  <sebastian.pop@amd.com>
35927
35928         PR middle-end/43464
35929         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
35930         with multiple arguments.
35931         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
35932
35933 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35934
35935         * graphite-dependences.c (print_pddr): Call print_pdr with an
35936         extra argument.
35937         * graphite-poly.c (debug_pdr): Add an extra argument for the
35938         verbosity level.
35939         (print_pdr): Same.
35940         (print_pbb_domain): Same.
35941         (print_pbb): Same.
35942         (print_scop_context): Same.
35943         (print_scop): Same.
35944         (print_cloog): Same.
35945         (debug_pbb_domain): Same.
35946         (debug_pbb): Same.
35947         (print_pdrs): Same.
35948         (debug_pdrs): Same.
35949         (debug_scop_context): Same.
35950         (debug_scop): Same.
35951         (debug_cloog): Same.
35952         (print_scop_params): Same.
35953         (debug_scop_params): Same.
35954         (print_iteration_domain): Same.
35955         (print_iteration_domains): Same.
35956         (debug_iteration_domain): Same.
35957         (debug_iteration_domains): Same.
35958         (print_scattering_function): Same.
35959         (print_scattering_functions): Same.
35960         (debug_scattering_function): Same.
35961         (debug_scattering_functions): Same.
35962         * graphite-poly.h (debug_pdr): Update declaration.
35963         (print_pdr): Same.
35964         (print_pbb_domain): Same.
35965         (print_pbb): Same.
35966         (print_scop_context): Same.
35967         (print_scop): Same.
35968         (print_cloog): Same.
35969         (debug_pbb_domain): Same.
35970         (debug_pbb): Same.
35971         (print_pdrs): Same.
35972         (debug_pdrs): Same.
35973         (debug_scop_context): Same.
35974         (debug_scop): Same.
35975         (debug_cloog): Same.
35976         (print_scop_params): Same.
35977         (debug_scop_params): Same.
35978         (print_iteration_domain): Same.
35979         (print_iteration_domains): Same.
35980         (debug_iteration_domain): Same.
35981         (debug_iteration_domains): Same.
35982         (print_scattering_function): Same.
35983         (print_scattering_functions): Same.
35984         (debug_scattering_function): Same.
35985         (debug_scattering_functions): Same.
35986
35987 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35988
35989         * graphite-poly.c (print_scattering_function_1): New.
35990         (print_scattering_function): Call it.
35991         (print_scop_params): Remove spaces at the end of lines.
35992         (print_cloog): New.
35993         (debug_cloog): New.
35994         * graphite-poly.h (print_cloog): Declared.
35995         (debug_cloog): Declared.
35996
35997 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
35998
35999         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
36000         in loop->header.
36001         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
36002         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
36003         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
36004         to switch between adding the IV bump in loop->latch or in loop->header.
36005
36006 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
36007
36008         * graphite-poly.c (print_scattering_function): Pretty print following
36009         the scoplib format.
36010         (print_pdr): Same.
36011         (print_pbb_domain): Same.
36012         (dump_gbb_cases): Same.
36013         (dump_gbb_conditions): Same.
36014         (print_pdrs): Same.
36015         (print_pbb): Same.
36016         (print_scop_params): Same.
36017         (print_scop_context): Same.
36018         (print_scop): Same.
36019         (print_pbb_body): New.
36020         (lst_indent_to): New.
36021         (print_lst): Start new lines with a #.
36022         * graphite-poly.h (pbb_bb): New.
36023         (pbb_index): Use pbb_bb.
36024         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
36025         disjuncts.
36026         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
36027
36028 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
36029
36030         * dwarf2out.c (size_of_die): For -gdwarf-4 use
36031         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
36032         and 0 instead of 1 for dw_val_class_flag.
36033         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
36034         dw_val_class_range_list, dw_val_class_loc_list,
36035         dw_val_class_lineptr and dw_val_class_macptr, use
36036         DW_FORM_flag_present for dw_val_class_flag and
36037         DW_FORM_exprloc for dw_val_class_loc.
36038         (output_die): For -gdwarf-4 print dw_val_class_loc
36039         size as uleb128 instead of 1 or 2 bytes and don't print
36040         anything for dw_val_class_flag.
36041
36042         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
36043         instead of cselib_lookup following by tweaking locs->setting_insn.
36044
36045         PR bootstrap/43596
36046         * cselib.c (cselib_process_insn): Clear cselib_current_insn
36047         even before returning from label, setjmp call or volatile asm
36048         handling.
36049
36050 2010-03-31  Richard Guenther  <rguenther@suse.de>
36051
36052         PR middle-end/43600
36053         * cgraphunit.c (cgraph_output_in_order): Do not allocate
36054         temporary data on stack.
36055
36056 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36057
36058         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
36059         (PUSHSECTION_ASM_OP): Remove.
36060         (POPSECTION_ASM_OP): Remove.
36061         (PUSHSECTION_FORMAT): Remove.
36062         * config/sol2.h (PUSHSECTION_FORMAT): Define.
36063         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
36064         * config/sol2.c (solaris_output_init_fini): Use it.
36065
36066 2010-03-31  Jie Zhang  <jie@codesourcery.com>
36067
36068         PR 43574
36069         * opt-functions.awk (var_type_struct): Use signed char type
36070         for simple variables.
36071
36072 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36073
36074         * config/sol2.c: Include output.h.
36075         (solaris_assemble_visibility): New function.
36076         * config/t-sol2 (sol2.o): Add output.h dependency.
36077         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
36078         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
36079         Redefine.
36080
36081 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
36082
36083         PR target/43580
36084         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
36085         V2SImode or XFmode on PRE_DEC.
36086
36087         PR debug/43557
36088         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
36089         BLKmode.
36090
36091 2010-03-31  Jie Zhang  <jie@codesourcery.com>
36092
36093         PR 43562
36094         * reload.h (caller_save_initialized_p): Declare.
36095         * toplev.c (backend_init_target): Don't call
36096         init_caller_save but set caller_save_initialized_p to false.
36097         * caller-save.c (caller_save_initialized_p): Define.
36098         (init_caller_save): Check caller_save_initialized_p.
36099         * ira.c (ira): Call init_caller_save if flag_caller_saves.
36100
36101 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36102
36103         PR target/39048
36104         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
36105         and soft-fp/t-softfp to tmake_file.
36106         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
36107         (LIBGCC2_TF_CEXT): Define.
36108         (TF_SIZE): Define.
36109
36110 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
36111
36112         PR debug/42977
36113         * cselib.c (n_useless_values): Document handling of debug locs.
36114         (n_useless_debug_values, n_debug_values): New variables.
36115         (new_elt_loc_list): Don't add to debug values, keep count.
36116         (promote_debug_loc): New.
36117         (cselib_reset_table): Zero new variables.
36118         (entry_and_rtx_equal_p): Promote debug locs.
36119         (discard_useless_locs): Increment n_useless_debug_values for
36120         debug values.
36121         (remove_useless_values): Adjust n_useless_values and n_debug_values
36122         with n_useless_debug_values.
36123         (add_mem_for_addr): Promote debug locs.
36124         (cselib_lookup_mem): Likewise.
36125         (cselib_lookup_addr): Renamed to...
36126         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
36127         (cselib_log_lookup): ... this.  Turn into...
36128         (cselib_lookup_addr): ... new wrapper.
36129         (cselib_lookup_from_insn): New.
36130         (cselib_invalidate_regno): Increment n_useless_debug_values for
36131         debug values.
36132         (cselib_invalidate_mem): Likewise.
36133         (cselib_process_insn): Take n_deleted and n_debug_values into
36134         account to guard remove_useless_value call.
36135         (cselib_finish): Zero n_useless_debug_values.
36136         * cselib.h (cselib_lookup_from_insn): Declare.
36137         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
36138         (sched_analyze_2): Likewise.
36139
36140 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
36141
36142         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
36143         functions.
36144         (adjust_mems): Replace narrowing SUBREG of expression containing
36145         just PLUS, MINUS, MULT and ASHIFT of registers and constants
36146         with operations in the narrower mode.
36147
36148         PR debug/43593
36149         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
36150         regs_invalidated_by_call instead all call_used_reg_set registers.
36151
36152 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
36153
36154         PR middle-end/43430
36155         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
36156         pointer comparisons with types_compatible_p.
36157         * tree-vect-stmts.c (vectorizable_call): Same.
36158         (vectorizable_condition): Same.
36159
36160 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36161
36162         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
36163         stack check if the mask would be zero.
36164
36165 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
36166             Jack Howarth  <howarth@bromo.med.uc.edu>
36167
36168         * tree-profile.c (tree_init_ic_make_global_vars): Make static
36169         variables TLS.
36170
36171 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
36172
36173         PR other/25232
36174         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
36175         and __unordtf2.
36176         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
36177         Include ___unordxf2 and ___unordtf2.
36178         * config/i386/libgcc-glibc.ver: Do not define inheritance from
36179         GCC_4.4.0 here.
36180
36181 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
36182
36183         * config/lm32/t-lm32: New file.
36184         * config.gcc: Use the above file when targetting lm32.
36185
36186 2010-03-28  Duncan Sands  <baldrick@free.fr>
36187
36188         * Makefile.in (PLUGIN_HEADERS): Add except.h.
36189
36190 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
36191
36192         PR middle-end/43431
36193         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
36194         Improve vectorization cost model diagnostic.
36195
36196 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
36197
36198         PR middle-end/43436
36199         * tree-vect-data-refs.c (vect_analyze_data_refs): When
36200         compute_data_dependences_for_loop returns false, early exit
36201         and output an extra diagnostic for the failed data reference
36202         analysis.
36203
36204 2010-03-29  Richard Guenther  <rguenther@suse.de>
36205
36206         PR tree-optimization/43560
36207         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
36208         (can_sm_ref_p): Treat stores to readonly locations as trapping.
36209
36210 2010-03-29  Jie Zhang  <jie@codesourcery.com>
36211
36212         PR 43564
36213         * toplev.c (process_options): Set optimization_default_node
36214         and optimization_current_node.
36215         * opts.c (decode_options): Don't set optimization_default_node
36216         and optimization_current_node.
36217
36218 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
36219
36220         * config/rtems.h: Abandon -qrtems_debug.
36221
36222 2010-03-28  Jan Hubicka  <jh@suse.cz>
36223
36224         PR tree-optimization/43505
36225         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
36226         map should not be copied.
36227
36228 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36229
36230         PR middle-end/41674
36231         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
36232         cdtors, set DECL_PRESERVE_P.
36233         * ipa.c (cgraph_externally_visible_p): Return true if declaration
36234         should be preseved.
36235
36236 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
36237
36238         PR tree-optimization/43528
36239         * stor-layout.c (place_field): Check that constant fits into
36240         unsigned HWI when skipping calculation of MS bitfield layout.
36241
36242 2010-03-27  Jan Hubicka  <jh@suse.cz>
36243
36244         PR middle-end/43391
36245         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
36246         notice_global_symbol work.
36247
36248 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
36249
36250         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
36251         instead of dwarf2out_decl.
36252         (struct var_loc_node): Remove section_label field.
36253         (dwarf2out_function_decl): New function.
36254         (dwarf2out_var_location): Don't set section_label field.
36255         (dwarf2out_begin_function): Don't empty decl_loc_table here.
36256
36257 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
36258
36259         PR tree-optimization/43544
36260         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36261         First argument for builtin vectorized function hook is now a
36262         tree to be able to distinguish between machine specific and
36263         standard builtins.
36264         * targhooks.c (default_builtin_vectorized_function): Ditto.
36265         * targhooks.h (default_builtin_vectorized_function): Ditto.
36266         * target.h (struct gcc_target): Ditto.
36267         * tree-vect-stmts.c (vectorizable_function): Ditto.
36268         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
36269         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
36270         Ditto.
36271
36272 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
36273
36274         PR c/43381
36275         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
36276         nested binding iff it is a FUNCTION_DECL.
36277         (store_parm_decls_newstyle): Pass nested=true to bind for
36278         FUNCTION_DECLs amongst parameters.
36279
36280 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
36281
36282         * var-tracking.c (vt_expand_loc_callback): Don't run
36283         cselib_expand_value_rtx_cb in dummy mode if
36284         cselib_dummy_expand_value_rtx_cb returned false.
36285
36286         * var-tracking.c (emit_note_insn_var_location): For one part
36287         notes with offset 0, don't add EXPR_LIST around the location.
36288         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
36289         add_location_or_const_value_attribute): Adjust for that change.
36290
36291         PR debug/43540
36292         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
36293         into first operand and location into second.
36294         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
36295         dw_cfi_oprnd_loc for DW_CFA_expression.
36296         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
36297         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
36298         assume first argument is regnum and second argument is location.
36299
36300 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
36301
36302         PR target/42113
36303         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
36304         of scratch register to DImode.  Split to DImode comparison operator.
36305         Use SImode subreg of scratch register in the multiplication.
36306         (*cmp_sadd_sidi): Ditto.
36307         (*cmp_ssub_si): Ditto.
36308         (*cmp_ssub_sidi): Ditto.
36309
36310 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
36311
36312         PR target/43524
36313         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
36314         Remove invalid assert and wrong comment.
36315
36316 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
36317
36318         PR debug/43516
36319         * flags.h (final_insns_dump_p): New extern.
36320         * final.c (final_insns_dump_p): New variable.
36321         (rest_of_clean_state): Set it before -fdump-final-insns=
36322         dumping, clear afterwards.
36323         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
36324         MEM_ALIAS_SET on MEMs.
36325
36326 2010-03-26  David S. Miller  <davem@davemloft.net>
36327
36328         * configure.ac: Fix sparc GOTDATA_OP bug check.
36329         * configure: Rebuild.
36330
36331 2010-03-26  Alan Modra  <amodra@gmail.com>
36332
36333         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
36334
36335 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36336
36337         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
36338         TLS_SECTION_ASM_FLAG.
36339
36340 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
36341
36342         PR bootstrap/43511
36343         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
36344         Clear first_function_block_is_cold.
36345
36346         PR c/43385
36347         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
36348         argument if the argument is truth_value_p.
36349
36350 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
36351
36352         * config/rs6000/constraints.md: Update copyright year for my changes.
36353
36354         PR target/43484
36355         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
36356         used in reg+reg addressing, swap registers.
36357
36358 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36359
36360         PR debug/43293
36361         * target.h (struct gcc_target): Add code_end hook.
36362         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
36363         if not yet defined.
36364         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
36365         * toplev.c (compile_file): Call targetm.asm_out.code_end
36366         hook before unwind info/debug info output.
36367         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
36368         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
36369         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
36370         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
36371         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
36372         * config/i386/i386.c (ix86_file_end): Renamed to...
36373         (ix86_code_end): ... this.  Make static.  Don't call
36374         file_end_indicate_exec_stack.  Emit unwind info using
36375         final_start_function/final_end_function.
36376         (darwin_x86_file_end): Remove.
36377         (TARGET_ASM_CODE_END): Define.
36378         * config/i386/i386.h (TARGET_ASM_FILE_END,
36379         NEED_INDICATE_EXEC_STACK): Don't define.
36380         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
36381         (TARGET_ASM_FILE_END): Define to darwin_file_end.
36382         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
36383         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
36384
36385         PR target/43498
36386         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
36387         at the beginning and final_end_function at the end.
36388         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
36389
36390 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36391
36392         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
36393         and Sun as TLS syntax.
36394         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
36395         * configure: Regenerate.
36396         * config.in: Regenerate.
36397         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
36398         (default_elf_asm_named_section): Use it.
36399         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
36400         (i386_output_dwarf_dtprel): Likewise.
36401         (output_addr_const_extra): Likewise.
36402         (output_pic_addr_const): Lowercase @GOTTPOFF.
36403         (output_addr_const_extra): Likewise.
36404         (output_pic_addr_const): Lowercase @GOTNTPOFF.
36405         (output_addr_const_extra): Likewise.
36406         (output_pic_addr_const): Lowercase @INDNTPOFF.
36407         (output_addr_const_extra): Likewise.
36408         (output_pic_addr_const): Lowercase @NTPOFF.
36409         (output_addr_const_extra): Likewise.
36410         (output_pic_addr_const): Lowercase @TPOFF.
36411         (output_addr_const_extra): Likewise.
36412         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
36413         (*tls_global_dynamic_64): Likewise.
36414         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
36415         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
36416
36417         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
36418         (ASM_OUTPUT_TLS_COMMON): Use it.
36419         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
36420
36421         PR target/38118
36422         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
36423         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
36424         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
36425         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
36426         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36427         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
36428
36429 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36430
36431         * config/i386/i386.c (override_options): Don't accept
36432         -mtls-dialect=sun any longer.
36433         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
36434         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
36435         (*tls_local_dynamic_base_32_sun): Likewise.
36436         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36437
36438 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36439
36440         PR debug/43508
36441         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36442         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
36443
36444         PR debug/43479
36445         * ira.c (adjust_cleared_regs): New function.
36446         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
36447
36448         PR debug/19192
36449         PR debug/43479
36450         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
36451         from gimple_block.
36452         * expr.c (expand_expr_real): Restore previous
36453         curr_insn_source_location and curr_insn_block after
36454         expand_expr_real_1 call.
36455         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
36456         instead of expand_expr_real_1.
36457
36458 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
36459
36460         PR rtl-optimization/43413
36461         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
36462         hard regs too.
36463
36464 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
36465
36466         PR target/43348
36467         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
36468         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
36469
36470 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
36471
36472         * config/i386/i386.c (ix86_target_string): Add -mfma.
36473         Fix a typo in comment.
36474
36475 2010-03-22  Mike Stump  <mikestump@comcast.net>
36476
36477         PR target/23071
36478         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
36479         Don't overly align based upon packed packed fields.
36480
36481 2010-03-22  Jason Merrill  <jason@redhat.com>
36482
36483         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
36484         Use () rather than [], and move before the element type.
36485
36486 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36487
36488         * doc/configfiles.texi (Configuration Files): Removed
36489         fixinc/Makefile*, intl/Makefile.*.
36490         * doc/makefile.texi: Fixed markup. Abstract from version
36491         control system used.
36492         (Makefile): Removed obsolete java/parse.y example.
36493         * doc/sourcebuild.texi: Likewise.
36494         (Top Level): Added config, gnattools, libdecnumber, libgcc,
36495         libgomp, libssp.  Removed fastjar.
36496         (Miscellaneous Docs): Clarify location.
36497         Added COPYING3, COPYING3.LIB.
36498         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
36499
36500 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36501
36502         PR target/38085
36503         * config/i386/i386.c (x86_function_profiler)
36504         [!NO_PROFILE_COUNTERS]: Fix typo.
36505         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
36506         instead of callq.
36507
36508 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
36509             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36510
36511         * doc/sourcebuild.texi (Test Directives): Split into six
36512         subsections, with most of the current text in new subsections
36513         Directives, Selectors, and Final Actions.
36514         (Directives): Split list of test directives into multiple
36515         subsubsections.
36516         (Selectors): Describe use and syntax of selectors.
36517         (Effective-Target Keywords): Describe all existing keywords.
36518         (Add Options): Describe features for dg-add-options.
36519         (Require Support): Describe variants of dg-require-support.
36520         (Final Actions): Describe commands to use in dg-final.
36521
36522 2010-03-22  Michael Matz  <matz@suse.de>
36523
36524         PR middle-end/43475
36525         * recog.c (validate_replace_rtx_group): Replace also in
36526         REG_EQUAL and REG_EQUIV notes.
36527
36528 2010-03-22  Richard Guenther  <rguenther@suse.de>
36529
36530         PR tree-optimization/43390
36531         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
36532         sure vector extracts are type correct.
36533
36534 2010-03-22  Richard Guenther  <rguenther@suse.de>
36535
36536         PR middle-end/40106
36537         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
36538         x * sqrt (x) even when optimizing for size if the target
36539         has native support for sqrt.
36540
36541 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
36542
36543         * varasm.c (make_decl_rtl_for_debug): Also clear
36544         flag_mudflap for the duration of make_decl_rtl call.
36545
36546         PR debug/43443
36547         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
36548         locs from preserved VALUEs.
36549
36550 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36551
36552         PR middle-end/42718
36553         * pa.md (movmemsi): Set align to one if zero.
36554         (movmemdi): Likewise.
36555
36556 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
36557
36558         PR target/42321
36559         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
36560         with their corresponding prologue pushes.
36561
36562 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
36563
36564         PR target/43156
36565         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
36566         at the begining or end.
36567         (spu_expand_epilogue): Likewise.
36568
36569 2010-03-20  Richard Guenther  <rguenther@suse.de>
36570
36571         PR rtl-optimization/43438
36572         * combine.c (make_extraction): Properly zero-/sign-extend an
36573         extraction of the low part of a CONST_INT.  Also handle
36574         CONST_DOUBLE.
36575
36576 2010-03-19  Mike Stump  <mikestump@comcast.net>
36577
36578         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
36579         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
36580         (override_options): Use SUBTARGET32_DEFAULT_CPU.
36581
36582 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
36583
36584         PR c/43211
36585         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
36586         an error.
36587
36588 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
36589
36590         PR rtl-optimization/42258
36591         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
36592         use that may match DEF.
36593
36594         PR target/40697
36595         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
36596         the cost of loading the constant rather than assuming
36597         COSTS_N_INSNS (1).
36598         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
36599         outer code is AND, do the same tests as the andsi3 expander and
36600         return COSTS_N_INSNS (1) if and is cheap.
36601
36602         * optabs.c (avoid_expensive_constant): Fix formatting.
36603
36604 2010-03-19  Michael Matz  <matz@suse.de>
36605
36606         PR c++/43116
36607         * attribs.c (decl_attributes): When rebuilding a function pointer
36608         type use the same qualifiers as the original pointer type.
36609
36610 2010-03-19  Martin Jambor  <mjambor@suse.cz>
36611
36612         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
36613         and is_gimple_ip_invariant_address.
36614
36615 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36616
36617         Revert
36618         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36619
36620         * config/arm/arm.c (arm_override_options): Turn off
36621         flag_dwarf2_cfi_asm for AAPCS variants.
36622
36623 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36624
36625         PR target/43399
36626         * config/arm/arm.c (emit_multi_reg_push): Update comments.
36627         Use PRE_MODIFY instead of PRE_DEC.
36628         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
36629         (vfp_emit_fstmd): Likewise.
36630
36631 2010-03-19  Michael Matz  <matz@suse.de>
36632
36633         PR target/43305
36634         * builtins.c (expand_builtin_interclass_mathfn,
36635         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
36636         if that fails.
36637
36638 2010-03-19  Richard Guenther  <rguenther@suse.de>
36639
36640         PR tree-optimization/43415
36641         * tree-ssa-pre.c (phi_translate): Split out worker to ...
36642         (phi_translate_1): ... this.
36643         (phi_translate): Move all caching here.  Cache all NARY
36644         and REFERENCE translations.
36645
36646 2010-03-19  David S. Miller  <davem@davemloft.net>
36647
36648         With help from Eric Botcazou.
36649         * config/sparc/sparc.c: Include dwarf2out.h.
36650         (emit_pic_helper): Delete.
36651         (pic_helper_symbol_name): Delete.
36652         (pic_helper_emitted_p): Delete.
36653         (pic_helper_needed): New.
36654         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
36655         (get_pc_thunk_name): New.
36656         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
36657         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
36658         Set pic_helper_needed to true.  Don't call emit_pic_helper.
36659         (sparc_expand_prologue): Update load_pic_register call.
36660         (sparc_output_mi_thunk): Likewise.
36661         (sparc_file_end): Emit a hidden comdat symbol for the PIC
36662         thunk if possible.  Output CFI information as needed.
36663
36664 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
36665             Jack Howarth  <howarth@bromo.med.uc.edu>
36666
36667         PR target/36399
36668         * config/i386/i386.h: Fix ABI on darwin x86-32.
36669
36670 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
36671
36672         * tree.h: Declare make_decl_rtl_for_debug.
36673         * varasm.c (make_decl_rtl_for_debug): New.
36674         * dwarf2out.c (rtl_for_decl_location): Call it.
36675         * cfgexpand.c (expand_debug_expr): Call it.
36676
36677 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36678
36679         PR bootstrap/43399
36680         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
36681         mem_mode.
36682
36683         PR bootstrap/43403
36684         * var-tracking.c (vt_init_cfa_base): Do nothing if
36685         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
36686
36687 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
36688
36689         PR debug/42873
36690         * var-tracking.c (canonicalize_vars_star): New.
36691         (dataflow_post_merge_adjust): Use it.
36692
36693 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36694
36695         PR debug/43058
36696         * var-tracking.c (non_suitable_const): New function.
36697         (add_uses): For DEBUG_INSNs with constants, don't record any
36698         value, instead just the constant value itself.
36699         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
36700         is not VAR_LOC_UNKNOWN_P, set var to the constant.
36701         (emit_notes_in_bb): Likewise.
36702         (emit_note_insn_var_location): For onepart variables if
36703         cur_loc is a VOIDmode constant, use DECL_MODE.
36704
36705 2010-03-18  Martin Jambor  <mjambor@suse.cz>
36706
36707         PR middle-end/42450
36708         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
36709         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
36710         all non-clones.  Moved call redirection...
36711         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
36712         (cgraph_materialize_all_clones): Dispose of all
36713         combined_args_to_skip bitmaps.
36714         (verify_cgraph_node): Do not check for edges pointing to wrong
36715         nodes in inline clones.
36716         * tree-inline.c (copy_bb): Call
36717         cgraph_redirect_edge_call_stmt_to_callee.
36718         * ipa.c (cgraph_remove_unreachable_nodes): Call
36719         cgraph_node_remove_callees even when there are used clones.
36720
36721 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36722
36723         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
36724
36725 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36726
36727         PR target/43383
36728         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
36729         for 32bit.
36730
36731 2010-03-18  Michael Matz  <matz@suse.de>
36732
36733         PR middle-end/43419
36734         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
36735         into sqrt(x) if we need to preserve signed zeros.
36736
36737 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
36738             Eric Botcazou  <ebotcazou@adacore.com>
36739
36740         PR rtl-optimization/43360
36741         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
36742         note if we don't know its invariant status.
36743
36744 2010-03-18  Michael Matz  <matz@suse.de>
36745
36746         PR tree-optimization/43402
36747         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
36748         PHI chains of ssa names registered for update.
36749
36750 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
36751
36752         PR target/42427
36753         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
36754         non-offsettable and pre_modify update addressing.
36755         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
36756         and "2" alternatives "#".
36757         (*movdd_softfloat32): Make all alternatives "#";
36758         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
36759         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
36760         (*movdf_softfloat32): Make all alternatives "#";
36761         (movdi): Use the new DIFD mode iterator to create a common splitter
36762         for movdi, movdf and movdd patterns.
36763
36764 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
36765
36766         * common.opt (dumpdir): Remove redundant tab.
36767
36768 2010-03-17  Martin Jambor  <mjambor@suse.cz>
36769
36770         PR tree-optimization/43347
36771         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
36772         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
36773
36774 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
36775
36776         PR rtl-optimization/42216
36777         * regrename.c (create_new_chain): New function, broken out from...
36778         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
36779         appending a use to an empty chain.
36780         (build_def_use): Remove previous changes that convert OP_INOUT to
36781         OP_OUT operands; instead detect the case where an OP_INOUT operand
36782         uses a previously untracked register and create an empty chain for it.
36783
36784 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36785
36786         * doc/extend.texi (Function Attributes): Rewrite unfinished
36787         sentence in ms_abi documentation.
36788
36789 2010-03-17  Alan Modra  <amodra@gmail.com>
36790
36791         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
36792         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
36793         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
36794         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
36795
36796 2010-03-16  Richard Henderson  <rth@redhat.com>
36797
36798         PR middle-end/43365
36799         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
36800         (lower_try_finally): Save and restore eh_seq around the expansion
36801         of the try-finally.
36802
36803 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
36804
36805         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
36806         statements before splitting block.
36807
36808 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36809
36810         * doc/sourcebuild.texi (Testsuites): Fix markup.
36811         Use pathnames relative to gcc/testsuite.
36812         (Test Directives): Move description of how timeout is determined.
36813         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
36814         (C Tests): Correct gcc.misc-tests directory.
36815         Framework tests now live in gcc.test-framework.
36816
36817 2010-03-16  Richard Guenther  <rguenther@suse.de>
36818
36819         PR middle-end/43379
36820         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
36821         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
36822
36823 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
36824             Alexandre Oliva  <aoliva@redhat.com>
36825
36826         PR tree-optimization/42917
36827         * lambda-code.c (remove_iv): Skip debug statements.
36828         (lambda_loopnest_to_gcc_loopnest): Likewise.
36829         (not_interesting_stmt): Debug statements are not interesting.
36830
36831 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
36832
36833         PR debug/43051
36834         PR debug/43092
36835         * cselib.c (cselib_preserve_constants,
36836         cfa_base_preserved_val): New static variables.
36837         (preserve_only_constants): New function.
36838         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
36839         clear its REG_VALUES.  If cselib_preserve_constants, don't
36840         empty the whole hash table, but preserve there VALUEs with constants,
36841         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
36842         (cselib_preserve_cfa_base_value): New function.
36843         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
36844         (cselib_init): Change argument to int bitfield.  Set
36845         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
36846         is in it.
36847         (cselib_finish): Clear cselib_preserve_constants and
36848         cfa_base_preserved_val.
36849         * cselib.h (enum cselib_record_what): New enum.
36850         (cselib_init): Change argument to int.
36851         (cselib_preserve_cfa_base_value): New prototype.
36852         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
36853         * dse.c (dse_step1): Likewise.
36854         * cfgcleanup.c (thread_jump): Likewise.
36855         * sched-deps.c (sched_analyze): Likewise.
36856         * gcse.c (local_cprop_pass): Likewise.
36857         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
36858         If FN is non-NULL, call the callback always and whenever it returns
36859         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
36860         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
36861         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
36862         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
36863         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
36864         * var-tracking.c: Include recog.h.
36865         (bb_stack_adjust_offset): Remove.
36866         (vt_stack_adjustments): Don't call it, instead just gather the
36867         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
36868         (adjust_stack_reference): Remove.
36869         (compute_cfa_pointer): New function.
36870         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
36871         (struct adjust_mem_data): New type.
36872         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
36873         functions.
36874         (get_address_mode): New function.
36875         (replace_expr_with_values): Use it.
36876         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
36877         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
36878         (adjust_sets): Remove.
36879         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
36880         Use get_address_mode.
36881         (get_adjusted_src): Remove.
36882         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
36883         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
36884         (add_with_sets): Don't call adjust_sets.
36885         (fp_setter, vt_init_cfa_base): New functions.
36886         (vt_initialize): Change return type to bool.  Move most of pool etc.
36887         initialization to the beginning of the function from end.  Pass
36888         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
36889         If !frame_pointer_needed, call vt_stack_adjustment before mos
36890         vector is filled, call vt_init_cfa_base if argp/framep has been
36891         eliminated to sp.  If frame_pointer_needed and argp/framep has
36892         been eliminated to hard frame pointer, set
36893         hard_frame_pointer_adjustment and call vt_init_cfa_base after
36894         encountering fp setter in the prologue.  For MO_ADJUST, call
36895         log_op_type before pusing the op into mos vector, not afterwards.
36896         Call adjust_insn before cselib_process_insn/add_with_sets,
36897         call cancel_changes (0) afterwards.
36898         (variable_tracking_main_1): Adjust for vt_initialize calling
36899         vt_stack_adjustments and returning whether it succeeded or not.
36900
36901 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
36902
36903         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
36904         debug statements.
36905
36906 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
36907
36908         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
36909         has been set.
36910         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
36911         drap_reg has not been set.
36912
36913 2010-03-15  Michael Matz  <matz@suse.de>
36914
36915         PR middle-end/43300
36916         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
36917         use it to expand block copies.
36918         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
36919         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
36920         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
36921
36922 2010-03-15  Richard Guenther  <rguenther@suse.de>
36923
36924         PR tree-optimization/43367
36925         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
36926         elimination check.
36927
36928 2010-03-15  Richard Guenther  <rguenther@suse.de>
36929
36930         PR tree-optimization/43317
36931         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
36932
36933 2010-03-15  Martin Jambor  <mjambor@suse.cz>
36934
36935         PR tree-optimization/43141
36936         * tree-sra.c (create_abstract_origin): New function.
36937         (modify_function): Call create_abstract_origin.
36938
36939 2010-03-15  Chris Demetriou  <cgd@google.com>
36940
36941         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
36942         wasn't copied.
36943
36944 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36945
36946         PR middle-end/43354
36947         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
36948         call insert_out_of_ssa_copy for default definitions.
36949
36950 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36951
36952         * graphite-clast-to-gimple.c (my_long_long): Defined.
36953         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
36954         * graphite-sese-to-poly.c (my_long_long): Defined.
36955         (scop_ivs_can_be_represented): Use it.
36956
36957 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36958
36959         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
36960         graphite-max-bbs-per-function, and loop-block-tile-size.
36961         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
36962         with "maximum".
36963         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
36964
36965 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36966
36967         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
36968         forward declaration.
36969         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
36970         (add_upper_bounds_from_estimated_nit): New.
36971         (build_loop_iteration_domains): Use it.
36972
36973 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36974
36975         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
36976
36977 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36978
36979         PR middle-end/43306
36980         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
36981         should be an INTEGER_CST.  Also handle CASE_CONVERT.
36982
36983 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36984
36985         * graphite.c (graphite_initialize): To bound the number of bbs per
36986         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
36987         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
36988         * doc/invoke.texi: Document it.
36989
36990 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36991
36992         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
36993         * graphite-sese-to-poly.h (build_poly_scop): Same.
36994
36995 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
36996
36997         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
36998         the number of parameters in the scop.  Use as an upper bound
36999         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
37000         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
37001         * doc/invoke.texi: Document it.
37002
37003 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
37004
37005         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
37006         * doc/c-tree.texi: Remove.
37007         * doc/generic.texi: Merge c-tree.texi here.
37008         * doc/gccint.texi (Trees): Remove menu entry.
37009         (c-tree.texi): Remove @include.
37010         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
37011         * doc/languages.texi (Reading RTL): Ditto.
37012
37013 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
37014
37015         PR target/42869
37016         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
37017
37018 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
37019
37020         PR middle-end/42431
37021         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
37022         code added to work around reload clobbering CONST insns.
37023
37024 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
37025
37026         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
37027         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
37028         (cselib_preserve_only_values): Remove retain argument, don't
37029         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
37030         * cselib.h (cselib_preserve_only_values): Remove retain argument.
37031         * var-tracking.c (micro_operation): Move insn field before union.
37032         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
37033         (struct variable_tracking_info_def): Remove n_mos field, change
37034         mos into a vector of micro_operations.
37035         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
37036         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
37037         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
37038         changing into a vector.
37039         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
37040         come before all other uops generated by add_stores.
37041         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
37042         argument removal.
37043         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
37044         a vector.  Run just one pass over the bbs instead of separate counting
37045         and computation phase.
37046         (vt_finalize): Free VTI (bb)->mos vector instead of array.
37047
37048         PR debug/43329
37049         * tree-inline.c (remap_decls): Put old_var rather than origin_var
37050         into *nonlocalized_list vector.
37051         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
37052         even if origin is non-NULL.
37053         (gen_variable_die): Likewise.
37054         (process_scope_var): Don't change origin.
37055         (gen_decl_die): Likewise.
37056         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
37057         before adding new edges instead of after it, fix moving over
37058         debug stmts.
37059
37060 2010-03-11  David S. Miller  <davem@davemloft.net>
37061
37062         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
37063         of four.
37064         * configure: Rebuild.
37065
37066 2010-03-11  Martin Jambor  <mjambor@suse.cz>
37067
37068         PR tree-optimization/43257
37069         * tree.c (assign_assembler_name_if_neeeded): New function.
37070         (free_lang_data_in_cgraph): Assembler name assignment moved to the
37071         above new function.
37072         * tree.h (assign_assembler_name_if_neeeded): Declare.
37073         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
37074         the function if needed.
37075
37076 2010-03-11  Chris Demetriou  <cgd@google.com>
37077
37078         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
37079         include/stdint-gcc.h, and include/stdint.h world-readable.
37080
37081 2010-03-11  Richard Guenther  <rguenther@suse.de>
37082
37083         PR tree-optimization/43255
37084         * tree-vrp.c (process_assert_insertions_for): Do not insert
37085         asserts for trivial conditions.
37086
37087 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37088
37089         PR tree-optimization/43280
37090         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
37091         generation.  Move calculation of size out of the if branch.
37092         (find_bswap): Modify compare number generation.
37093
37094 2010-03-11  Richard Guenther  <rguenther@suse.de>
37095
37096         PR lto/43200
37097         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
37098         (input_gimple_stmt): Fixup handled component types during
37099         operand read.  Also fix up decls in ADDR_EXPRs.
37100
37101 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
37102
37103         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
37104         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
37105
37106 2010-03-10  Jan Hubicka  <jh@suse.cz>
37107
37108         PR c/43288
37109         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
37110         * varasm.c (get_variable_section): Don't do that here...
37111         (make_decl_rtl): ... and here.
37112         (do_assemble_alias): Produce decl RTL.
37113         (assemble_alias): Likewise.
37114
37115 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
37116
37117         PR debug/43290
37118         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
37119         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
37120         of fde->vdrap_reg.
37121         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
37122         (based_loc_descr): Only express drap or vdrap regno based expressions
37123         using DW_OP_fbreg when not optimizing.
37124         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
37125         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
37126         REG_CFA_SET_VDRAP note.
37127
37128 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
37129
37130         PR tree-optimization/43236
37131         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
37132         error in calculation of base address in reverse iteration case.
37133         (generate_builtin): Take number of latch executions if the statement
37134         is in the latch.
37135
37136 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
37137
37138         PR middle-end/42859
37139         * tree-eh.c: Include pointer-set.h.
37140         (lower_eh_dispatch): Filter out duplicate case labels and
37141         remove the unneeded edge when the label is unused.  Return
37142         true when some edges are removed.
37143         (execute_lower_eh_dispatch): When any lowering resulted in
37144         removing an edge, also delete unreachable blocks.
37145
37146 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
37147
37148         PR bootstrap/43287
37149         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
37150         UNSPEC_MACHOPIC_OFFSET.
37151
37152 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
37153
37154         PR target/43294
37155         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
37156         (m68k_delegitimize_address): New function.
37157
37158 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
37159
37160         PR debug/43299
37161         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
37162
37163         PR debug/43299
37164         * var-tracking.c (adjust_sets): New function.
37165         (count_with_sets, add_with_sets): Use it.
37166         (get_adjusted_src): New inline function.
37167         (add_stores): Use it.
37168
37169         PR debug/43304
37170         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
37171         call cselib_dummy_expand_value_rtx_cb instead of
37172         cselib_expand_value_rtx_cb.
37173
37174         PR debug/43293
37175         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
37176         * config/i386/i386.c: Include debug.h and dwarf2out.h.
37177         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
37178         and .cfi_endproc around the pic thunks.
37179         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
37180         all queued unwind info register saves are saved before the call.
37181         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
37182         considered as sp-=4 for unwind info and the pop as sp+=4 which
37183         also clobbers dest, but doesn't actually restore it.
37184
37185         PR debug/43290
37186         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
37187         RTX_FRAME_RELATED_P.
37188
37189 2010-03-09  Jie Zhang  <jie@codesourcery.com>
37190
37191         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
37192         whitespaces in output template.
37193
37194 2010-03-09  Jie Zhang  <jie@codesourcery.com>
37195
37196         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
37197         out array boundary.
37198
37199 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
37200
37201         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
37202         builtins.exp in a separate job.
37203
37204 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37205
37206         * graphite-sese-to-poly.c (add_param_constraints): Use
37207         lower_bound_in_type and upper_bound_in_type.
37208
37209 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37210
37211         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
37212         instead of unsigned_type_node.
37213
37214 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37215             Reza Yazdani  <reza.yazdani@amd.com>
37216
37217         PR middle-end/43065
37218         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
37219         on pointer type parameters.
37220
37221 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
37222
37223         PR middle-end/42644
37224         PR middle-end/42130
37225         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
37226         handle conversions from pointer to integers.
37227         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
37228         induction variable, to be able to work with code generated by CLooG.
37229         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
37230         (build_poly_scop): Bail out if we cannot codegen a loop.
37231
37232 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
37233
37234         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
37235         code generation with gloog_error.
37236
37237 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37238
37239         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
37240         Call fold_convert on all the returned values.
37241         (expand_scalar_variables_expr): Pass to
37242         expand_scalar_variables_ssa_name the type of the resulting expression.
37243
37244 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37245
37246         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
37247         ppl_min_for_le_pointset.
37248         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
37249         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
37250
37251 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37252
37253         * graphite-dependences.c (map_into_dep_poly): Removed.
37254         (dependence_polyhedron_1): Use combine_context_id_scat.
37255
37256 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37257
37258         * graphite-poly.h (struct poly_scattering): Add layout documentation.
37259         (struct poly_bb): Same.
37260         (combine_context_id_scat): New.
37261
37262 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37263
37264         PR middle-end/42326
37265         * sese.c (name_defined_in_loop_p): Return false for default
37266         definitions.
37267
37268 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37269
37270         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
37271         and clean up the logic.
37272
37273 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37274
37275         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
37276         early return.
37277
37278 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
37279
37280         * var-tracking.c (remove_cselib_value_chains): Define only for
37281         ENABLE_CHECKING.
37282         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
37283         delete_slot_part, emit_notes_for_differences_1): Don't call
37284         remove_cselib_value_chains here.
37285         (set_slot_part, emit_notes_for_differences_2): Don't call
37286         add_cselib_value_chains here.
37287         (preserved_values): New vector.
37288         (preserve_value): New function.
37289         (add_uses, add_stores, vt_add_function_parameters): Use it
37290         instead of cselib_preserve_value.
37291         (changed_values_stack): New vector.
37292         (check_changed_vars_0): New function.
37293         (check_changed_vars_1, check_changed_vars_2): Use it.
37294         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
37295         changed_values_stack VALUEs.
37296         (vt_emit_notes): For all preserved_values call
37297         add_cselib_value_chains.  If ENABLE_CHECKING call
37298         remove_cselib_value_chains before verifying value_chains is empty.
37299         Initialize and free changed_values_stack.
37300         (vt_initialize): Initialize preserved_values.
37301         (vt_finalize): Free preserved_values.
37302
37303 2010-03-08  Richard Guenther  <rguenther@suse.de>
37304
37305         PR tree-optimization/43269
37306         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
37307         region detection.
37308
37309 2010-03-08  Martin Jambor  <mjambor@suse.cz>
37310
37311         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
37312         (ipa_is_param_called): Removed.
37313         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
37314         (ipa_print_node_params): Do not print the called flag.
37315         (ipa_write_node_info): Do not stream the called flag.
37316         (ipa_read_node_info): Likewise.
37317
37318 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
37319
37320         PR debug/43176
37321         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
37322         * cselib.c (struct expand_value_data): Add dummy field.
37323         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
37324         dummy to false.
37325         (cselib_dummy_expand_value_rtx_cb): New function.
37326         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
37327         any rtl.
37328         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
37329         * var-tracking.c: Include pointer-set.h.
37330         (variable): Change n_var_parts to char from int.  Add
37331         cur_loc_changed and in_changed_variables fields.
37332         (variable_canonicalize): Remove.
37333         (shared_var_p): New inline function.
37334         (unshare_variable): Maintain cur_loc_changed and
37335         in_changed_variables fields.  If var was in changed_variables,
37336         replace it there with new_var.  Just copy cur_loc instead of
37337         resetting it to something else.
37338         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
37339         (dataflow_set_union): Don't call variable_canonicalize.
37340         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
37341         of their DEBUG_EXPR_TREE_DECLs.
37342         (canonicalize_loc_order_check): Verify that cur_loc is NULL
37343         and in_changed_variables and cur_loc_changed is false.
37344         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
37345         and cur_loc_changed.  Don't update cur_loc here.
37346         (variable_merge_over_src): Don't call variable_canonicalize.
37347         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
37348         removing loc that is equal to cur_loc, clear cur_loc,
37349         set cur_loc_changed and ensure variable_was_changed is called.
37350         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
37351         compare pointers in cur_loc check, if it is equal to loc,
37352         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
37353         (variable_different_p): Remove compare_current_location argument,
37354         don't compare cur_loc.
37355         (dataflow_set_different_1): Adjust variable_different_p caller.
37356         (variable_was_changed): If dv had some var in changed_variables
37357         already, reset in_changed_variables flag for it and propagate
37358         cur_loc_changed over to the new variable.  On empty var
37359         always set cur_loc_changed.  Set in_changed_variables on whatever
37360         var is added to changed_variables.
37361         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
37362         Use shared_var_p.  When removing loc that is equal to cur_loc,
37363         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
37364         end, don't set it to something else, just call variable_was_changed.
37365         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
37366         loc being removed, clear cur_loc and set cur_loc_changed.
37367         Set cur_loc_changed if all locations have been removed.
37368         (struct expand_loc_callback_data): New type.
37369         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
37370         allocated.  Always create SUBREGs if simplify_subreg failed.
37371         Prefer to use cur_loc, when that fails and still in
37372         changed_variables (and seen first time) recompute it.  Set
37373         cur_loc_changed of variables which had to change cur_loc and
37374         compute elcd->cur_loc_changed if any of the subexpressions used
37375         had to change cur_loc.
37376         (vt_expand_loc): Adjust to pass arguments in
37377         expand_loc_callback_data structure.
37378         (vt_expand_loc_dummy): New function.
37379         (emitted_notes): New variable.
37380         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
37381         that weren't used for any other decl in current
37382         emit_notes_for_changes call call vt_expand_loc_dummy to update
37383         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
37384         first loc_chain location if NULL before.  Always use just
37385         cur_loc instead of first loc_chain location.  When cur_loc_changed
37386         is false, when not --enable-checking=rtl just don't emit any note.
37387         When rtl checking, compute the note and assert it is the same
37388         as previous note.  Clear cur_loc_changed and in_changed_variables
37389         at the end before removing from changed_variables.
37390         (check_changed_vars_3): New function.
37391         (emit_notes_for_changes): Traverse changed_vars to call
37392         check_changed_vars_3 on each changed var.
37393         (emit_notes_for_differences_1): Clear cur_loc_changed and
37394         in_changed_variables.  Recompute cur_loc of new_var.
37395         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
37396         (vt_emit_notes): Initialize and destroy emitted_notes.
37397
37398 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
37399
37400         PR rtl-optimization/42220
37401         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
37402         Use verify_reg_tracked to determine if we should use OP_OUT rather
37403         than OP_INOUT.
37404         (build_def_use): If we see an in-out operand for a register that we
37405         know nothing about, treat is an output if possible, fail the block if
37406         not.
37407
37408 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37409
37410         PR debug/42897
37411         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
37412         permanently.
37413
37414 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37415
37416         PR debug/42897
37417         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
37418         uses of relevant DEFs that are dead outside the loop too.
37419
37420 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37421
37422         * var-tracking.c (dataflow_set_merge): Swap src and src2.
37423         Reverted:
37424         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37425         PR debug/41371
37426         * var-tracking.c (values_to_unmark): New variable.
37427         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37428         values_to_unmark vector.  Moved body to...
37429         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37430         instead queue it into values_to_unmark vector.
37431         (vt_find_locations): Free values_to_unmark vector.
37432
37433 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
37434
37435         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
37436         (site.exp): Export them when plugins are enabled.
37437
37438 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
37439
37440         PR middle-end/42326
37441         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
37442         that contain scevs.
37443         (chrec_fold_multiply): Same.
37444
37445 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
37446
37447         PR c/43248
37448         * c-decl.c (build_compound_literal): Return early if init is
37449         an error_mark_node.
37450
37451 2010-03-04  Martin Jambor  <mjambor@suse.cz>
37452
37453         PR tree-optimization/43164
37454         PR tree-optimization/43191
37455         * tree-sra.c (type_consists_of_records_p): Reject records with
37456         zero-size bit-fields at the end.
37457
37458 2010-03-04  Mike Stump  <mikestump@comcast.net>
37459
37460         * Makefile.in (TAGS): Remove *.y.
37461
37462 2010-03-04  Richard Guenther  <rguenther@suse.de>
37463
37464         PR tree-optimization/40761
37465         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
37466         in reverse order.
37467         (my_rev_post_order_compute): New function.
37468         (init_pre): Call it.
37469
37470 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
37471
37472         PR middle-end/43209
37473         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
37474         decrease the cost of an IV candidate when the cost is infinite.
37475
37476 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37477
37478         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
37479         Use '3DNow!' for the extension of that name, ensure normal space
37480         after the string.
37481         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
37482
37483 2010-03-03  Jeff Law  <law@redhat.com>
37484
37485         * PR middle-end/32693
37486         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
37487         than gen_rtx_SUBREG.
37488         (extract_bit_field_1): Likewise.
37489
37490 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
37491
37492         * doc/sourcebuild.texi (Test directives): Document that arguments
37493         include-opts and exclude-opts are now optional for dg-skip-if,
37494         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
37495
37496 2010-03-03  Jason Merrill  <jason@redhat.com>
37497
37498         PR c++/12909
37499         * cgraph.h (varpool_node): Add extra_name field.
37500         * varpool.c (varpool_extra_name_alias): New.
37501         (varpool_assemble_decl): Emit extra name aliases.
37502         (varpool_mark_needed_node): Look past an extra name alias.
37503         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
37504         * lto-streamer-in.c (lto_input_tree): Read it.
37505         * lto-streamer-out.c (output_unreferenced_globals): Write it.
37506
37507 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
37508
37509         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
37510         (sparc*-*-solaris2*): ...this.
37511
37512 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
37513
37514         PR debug/43229
37515         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
37516         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
37517         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
37518         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
37519
37520         PR debug/43237
37521         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
37522         fallthrough to default handling, just with want_address 0 instead of 2.
37523         For single element lists, add_AT_loc directly, otherwise create an
37524         artificial variable DIE and stick location list to it.
37525
37526         PR debug/43177
37527         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
37528         (VAL_EXPR_HAS_REVERSE): Define.
37529         (reverse_op): New function.
37530         (add_stores): For reversible operations add an extra MO_VAL_USE.
37531
37532 2010-03-02  Jason Merrill  <jason@redhat.com>
37533
37534         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
37535
37536 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
37537
37538         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
37539         (sparc64-*-linux*): Likewise.
37540         (sparc64-*-solaris2*): Include assembler files before linker ones.
37541         (sparc-*-solaris2*): Simplify and reorder to match previous case.
37542         * config/sparc/gas.h: Delete.
37543         * config/sparc/sol2-64.h: Add copyright notice.
37544         * config/sparc/sol2-gas-bi.h: Likewise.
37545         * config/sparc/sol2-gld.h: Likewise.
37546         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
37547         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
37548         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
37549         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
37550         (sparc_elf_asm_named_section): Rename into...
37551         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
37552
37553 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
37554
37555         * config/alpha/alpha.c (override_options): Fix -mtune error message.
37556
37557 2010-03-02  Jeff Law  <law@redhat.com>
37558
37559         PR middle-end/42431
37560         * reload1.c (rtx_p, substitute_stack): Declare.
37561         (substitute): Record addresses of changed rtxs.
37562         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
37563         Restore the original rtx when complete.
37564         (reload): Free subsitute_stack when complete.
37565
37566 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
37567
37568         * doc/gccint.texi (menu): Add Testsuites as a chapter.
37569         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
37570         new chapter.
37571         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
37572         LTO Testing, gcov Testing, profopt Testing, compat Testing,
37573         Torture Tests): Change from subsection to section.
37574
37575 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
37576             Steven Bosscher  <steven@gcc.gnu.org>
37577
37578         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
37579         instead of bb.
37580
37581 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
37582
37583         PR middle-end/42640
37584         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
37585         the assignment from the new induction variable to the assignment
37586         of the value from the original loop PHI function.
37587
37588 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
37589             Daniel Jacobowitz  <dan@codesourcery.com>
37590
37591         * doc/sourcebuild.texi (Test directives): Clarify options to
37592         dg-skip-if.
37593
37594 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37595
37596         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
37597         Disable cfi directives unless GCC and gas agree on using read-only
37598         .eh_frame sections for 64-bit.
37599         * configure: Regenerate.
37600
37601 2010-03-01  Richard Guenther  <rguenther@suse.de>
37602
37603         PR tree-optimization/43220
37604         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
37605         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
37606
37607 2010-03-01  Richard Guenther  <rguenther@suse.de>
37608             Martin Jambor  <mjambor@suse.cz>
37609
37610         PR middle-end/41250
37611         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
37612         gimplified parameters.
37613
37614 2010-03-01  Christian Bruel  <christian.bruel@st.com>
37615
37616         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
37617
37618 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
37619
37620         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
37621
37622 2010-03-01  Richard Guenther  <rguenther@suse.de>
37623
37624         PR middle-end/43213
37625         * expr.c (expand_assignment): Use the alias-oracle to tell
37626         if the rhs aliases the result decl.
37627
37628 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37629
37630         PR pch/14940
37631         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
37632         to sol_gt_pch_get_address.
37633         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
37634         64-bit, SPARC and x86.
37635         (sol_gt_pch_get_address): New function.
37636
37637 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
37638
37639         * toplev.h (inform_n, error_n): Declare.
37640         * diagnostic.c (inform_n, error_n): New function.
37641
37642 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
37643
37644         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
37645         has no rtl yet when processing local_decls, queue it and recheck
37646         if deferred stack allocation hasn't assigned it rtl.
37647
37648 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
37649
37650         * config/sh/sh.c (unspec_bbr_uid): New.
37651         (gen_block_redirect): Use it instead of INSN_UID.
37652         (gen_far_branch): Likewise.
37653
37654 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
37655
37656         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
37657         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
37658
37659 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37660
37661         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
37662         (Warning Options): -Wno-conversion-null is valid for
37663         Objective-C++ as well.
37664         * doc/tm.texi (Named Address Spaces): Likewise.
37665         * doc/plugins.texi (Plugins): Replace TABs with spaces.
37666         * doc/tree-ssa.texi (Tree SSA): Likewise.
37667
37668 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37669
37670         PR bootstrap/43202
37671         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
37672         by default.  Don't set the default arch for
37673         i[34567]86-*-darwin*|x86_64-*-darwin*.
37674
37675 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37676
37677         PR bootstrap/43202
37678         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
37679         default.  Set the default 32bit/64bit archs with $with_arch
37680         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
37681
37682 2010-02-27  Richard Guenther  <rguenther@suse.de>
37683
37684         PR tree-optimization/43186
37685         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
37686         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
37687         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
37688         unroller iterations.
37689
37690 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37691
37692         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
37693         required and i[34567]86-*-* targets don't support 64bit ISA.
37694
37695 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
37696
37697         PR ada/43096
37698         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37699         the same alias set.
37700
37701 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37702
37703         * config.gcc: Set the default arch at least to Prescott for
37704         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
37705         if SSE math is enabled.
37706
37707 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37708
37709         * diagnostic.c (diagnostic_initialize): Update.
37710         (diagnostic_report_diagnostic): Test inhibit_notes_p for
37711         informative notes.
37712         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
37713         (diagnostic_inhibit_notes): New.
37714         * toplev.c (process_options): inhibit notes with -fcompare-debug.
37715
37716 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37717
37718         PR c/20631
37719         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
37720         * doc/standards.texi: Likewise.
37721         * doc/extend.texi: Likewise.
37722         * doc/trouble.texi: Likewise.
37723         * doc/cppopts.texi: Likewise.
37724         * doc/install.texi: Likewise.
37725         * c.opt (std=c90,std=gnu90): New options.
37726         * c-opts.c (c_common_handle_option): Handle them.
37727
37728 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37729
37730         PR c/24577
37731         * c-decl.c (undeclared_variable): Use an informative note.
37732
37733 2010-02-26  Richard Guenther  <rguenther@suse.de>
37734
37735         PR tree-optimization/43186
37736         * gimple.h (gimple_fold): Remove.
37737         * gimple.c (gimple_fold): Remove.  Inline into single user ...
37738         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
37739         Try harder for conditions.
37740
37741 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37742
37743         PR debug/43190
37744         * function.c (used_types_insert): Don't skip through named pointer
37745         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
37746         and it is different from the main variant's type.
37747
37748 2010-02-26  Nick Clifton  <nickc@redhat.com>
37749
37750         * config/rx/rx.md (sminsi3): Remove bogus alternative.
37751
37752 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37753
37754         * config.gcc: Support --with-fpmath=sse for x86.
37755
37756         * config/i386/ssemath.h: New.
37757
37758         * doc/install.texi (--with-fpmath=sse): Documented.
37759
37760 2010-02-26  Richard Guenther  <rguenther@suse.de>
37761
37762         PR tree-optimization/43188
37763         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
37764         vector types of over-aligned element type.
37765
37766 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
37767
37768         PR target/43175
37769         * config/i386/i386.c (expand_vec_perm_blend): Use correct
37770         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
37771
37772 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
37773
37774         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
37775
37776 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37777
37778         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
37779         * var-tracking.c: Include diagnostic.h.
37780         (debug_dv): New function.
37781         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
37782
37783         PR debug/43160
37784         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
37785         (add_value_chain, add_value_chains, remove_value_chain,
37786         remove_value_chains): Handle DEBUG_EXPRs.
37787         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
37788
37789         PR debug/43161
37790         * regcprop.c (struct queued_debug_insn_change): New type.
37791         (struct value_data_entry): Add debug_insn_changes field.
37792         (struct value_data): Add n_debug_insn_changes field.
37793         (debug_insn_changes_pool): New variable.
37794         (free_debug_insn_changes, apply_debug_insn_changes,
37795         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
37796         (kill_value_one_regno): Call free_debug_insn_changes if needed.
37797         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
37798         fields.
37799         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
37800         changes for them.
37801         (copyprop_hardreg_forward_1): Don't call apply_change_group for
37802         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
37803         changes, call cprop_find_used_regs via note_stores.
37804         (copyprop_hardreg_forward): When copying vd from predecessor
37805         which has any queued DEBUG_INSN changes, make sure the pointers are
37806         cleared.  At the end call df_analyze and then if there are any
37807         DEBUG_INSN changes queued at the end of some basic block for still
37808         live registers, apply them.
37809         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
37810
37811 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
37812
37813         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
37814         (arm*-*-*): Ditto.
37815
37816 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
37817
37818         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
37819         targets.  Set the default with_cpu/with_arch from arch/cpu.
37820         Allow x86-64 and native for with_cpu/with_arch.
37821
37822 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
37823
37824         * ebitmap.c: Change calls to verify_popcount with calls to
37825         sbitmap_verify_popcount.
37826         (ebitmap_clear_bit): Fixed map->cacheindex test and
37827         map>cache update when bit clearing results in an empty
37828         element.
37829
37830 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
37831
37832         PR target/43154
37833         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
37834         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
37835         and support both V2DF and V2DI modes.
37836         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
37837         support both V2DF and V2DI modes.
37838         (general): Delete trailing whitespace from a few patterns.
37839
37840         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
37841         V2DF/V2DI interleave high/low builtins.
37842
37843         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
37844         new VSX builtins.
37845
37846         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
37847         interleave high/low functions.
37848
37849 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
37850
37851         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
37852         #pragma extern_prefix.
37853
37854 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
37855
37856         PR debug/43166
37857         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
37858         BLKmode, assert op0 is a MEM and just adjust its mode.
37859
37860         PR debug/43165
37861         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
37862         if bitpos isn't multiple of mode's bitsize.
37863
37864 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37865
37866         * c.opt (-ftemplate-depth=): New.
37867         (-ftemplate-depth-): Deprecate.
37868         * optc-gen.awk: Handle -ftemplate-depth=.
37869         * opth-gen.awk: Likewise.
37870         * c-opts.c (c_common_handle_option): Likewise.
37871         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
37872
37873 2010-02-24  Jason Merrill  <jason@redhat.com>
37874
37875         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
37876
37877 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37878
37879         * cfg.c (alloc_aux_for_block): Remove inline.
37880         (alloc_aux_for_edge): Likewise.
37881
37882 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37883
37884         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
37885
37886 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37887
37888         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
37889         * config/i386/sol2-gas.h: New file.
37890         * config.gcc (i[34567]86-*-solaris2*): Use it.
37891
37892 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37893
37894         PR c/43128
37895         * c-typeck.c (ep_convert_and_check): New.
37896         (build_conditional_expr): Use it.
37897         (build_binary_op): Likewise.
37898
37899 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
37900
37901         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
37902
37903         PR debug/43150
37904         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
37905         bounds even for -O+.
37906         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
37907         expr needs to have DECL_NAME set.
37908
37909 2010-02-24  Nick Clifton  <nickc@redhat.com>
37910
37911         * config/mep/mep.c: Include gimple.h.
37912         (mep_function_uses_sp): Delete unused function.
37913         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
37914         parameters.  Use unsigned integers to count args.  Return a
37915         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
37916
37917 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
37918
37919         PR target/43107
37920         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
37921         greater or equal to nelt instead of 2 * nelt.
37922         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
37923         with nelt - 1.
37924
37925 2010-02-23  Jason Merrill  <jason@redhat.com>
37926
37927         PR debug/42800
37928         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
37929         in cfun->local_decls even if they have register types.
37930
37931         PR c++/42837
37932         * stor-layout.c (place_field): Don't warn about unnecessary
37933         DECL_PACKED if the type is packed.
37934
37935 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
37936
37937         PR target/43139
37938         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
37939         GOTOFF relocs, even when the base reg isn't pic pointer.
37940
37941 2010-02-23  Michael Matz  <matz@suse.de>
37942
37943         PR debug/43077
37944         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
37945         (expand_gimple_basic_block): Generate and use debug temps if there
37946         are debug uses left after the last real use of TERed ssa names.
37947         Unlink debug immediate uses when they are expanded.
37948
37949 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37950
37951         PR 43123
37952         * config/i386/i386.c (override_options): Reorganise to provide
37953         better error messages.
37954
37955 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37956
37957         PR middle-end/43083
37958         * graphite-scop-detection.c (create_single_exit_edge): Move
37959         the call to find_single_exit_edge to....
37960         (create_sese_edges): ...here.  Don't handle multiple edges
37961         exiting the function.
37962         (build_graphite_scops): Don't handle multiple edges
37963         exiting the function.
37964
37965 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37966
37967         PR middle-end/43097
37968         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
37969         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
37970
37971 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
37972
37973         PR middle-end/43026
37974         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
37975
37976 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37977
37978         PR c++/43126
37979         * c-typeck.c (convert_arguments): Print declaration location.
37980         * c-common.c (validate_nargs): Rename as
37981         builtin_function_validate_nargs.
37982         (check_builtin_function_arguments): Update.
37983
37984 2010-02-22  Richard Guenther  <rguenther@suse.de>
37985
37986         PR lto/43045
37987         * tree-inline.c (declare_return_variable): Use the type of
37988         the call stmt lhs if available.
37989
37990 2010-02-22  Duncan Sands  <baldrick@free.fr>
37991
37992         * passes.c (register_pass): Always consider all pass lists when
37993         ref_pass_instance_number is zero.
37994
37995 2010-02-22  Richard Guenther  <rguenther@suse.de>
37996
37997         PR tree-optimization/42749
37998         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
37999         parameter.  Do arithmetic in the original type.
38000         (update_accumulator_with_ops): Likewise.
38001         (adjust_accumulator_values): Adjust.
38002
38003 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38004
38005         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
38006         (QI to BLKmode splitter): New splitter.
38007
38008 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
38009
38010         * config/i386/i386.c (initial_ix86_tune_features): Turn on
38011         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
38012
38013 2010-02-22  Richard Guenther  <rguenther@suse.de>
38014
38015         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
38016
38017 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
38018
38019         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
38020         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
38021         ($(T)crti.o, $(T)crtn.o): Remove rules.
38022
38023 2010-02-21  Tobias Burnus  <burnus@net-b.de>
38024
38025         PR fortran/35259
38026         * doc/invoke.texi (-fassociative-math): Document that this
38027         option is automatically enabled for Fortran.
38028
38029 2010-02-20  David S. Miller  <davem@davemloft.net>
38030
38031         * configure.ac: Test if linker and assembler properly support
38032         GOTDATA_OP relocations.
38033         * configure: Rebuild.
38034         * config.in: Likewise.
38035         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
38036         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
38037         (movsi_high_pic): Likewise.
38038         (movdi_lo_sum_pic): Likewise.
38039         (movdi_high_pic): Likewise.
38040         (movsi_pic_gotdata_op): New pattern.
38041         (movdi_pic_gotdata_op): Likewise.
38042         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
38043         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
38044
38045 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
38046
38047         PR target/43067
38048         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
38049         attribute to ssemul.
38050         (xop_mulv2div2di3_high): Ditto.
38051
38052 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38053
38054         PR c++/35669
38055         * c.opt (Wconversion-null): New option.
38056         * doc/invoke.texi (Wconversion-null): Document.
38057
38058 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38059
38060         * common.opt (Wlarger-than-): Add Undocumented.
38061
38062 2010-02-19  Mike Stump  <mikestump@comcast.net>
38063
38064         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
38065
38066 2010-02-19  Jason Merrill  <jason@redhat.com>
38067
38068         PR target/40332
38069         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
38070         * configure: Likewise.
38071
38072 2010-02-20  Alan Modra  <amodra@gmail.com>
38073
38074         PR middle-end/42344
38075         * cgraph.h (cgraph_make_decl_local): Declare.
38076         * cgraph.c (cgraph_make_decl_local): New function.
38077         (cgraph_make_node_local): Use it.
38078         * cgraphunit.c (cgraph_function_versioning): Likewise.
38079         * ipa.c (function_and_variable_visibility): Likewise.
38080
38081 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38082
38083         PR bootstrap/43121
38084         * except.c (sjlj_emit_function_enter): Don't call
38085         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
38086         directly.
38087         * rtl.h (add_reg_br_prob_note): Remove prototype.
38088
38089 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38090
38091         PR 41779
38092         * c-common.c (conversion_warning): Remove widening conversions
38093         before checking the conversion of integers to reals.
38094
38095 2010-02-19  Mike Stump  <mikestump@comcast.net>
38096
38097         PR middle-end/43125
38098         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
38099
38100         PR objc/43061
38101         * cgraphunit.c (process_function_and_variable_attributes): Check
38102         DECL_PRESERVE_P instead of looking up attribute "used".
38103         * ipa-pure-const.c (check_decl): Likewise.
38104         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
38105         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
38106         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
38107         instead of attribute "used".
38108         * config/sol2-c.c (solaris_pragma_init): Likewise.
38109         (solaris_pragma_fini): Likewise.
38110
38111 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38112
38113         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
38114         Use XCNEW instead of xcalloc.
38115         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
38116         XNEW instead of xmalloc.
38117         (get_fields): Use XNEWVEC instead of xmalloc.
38118
38119         PR debug/43084
38120         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
38121         populate vars array.
38122         (create_new_general_access): For debug stmts just reset value.
38123         (get_stmt_accesses): For accesses within debug stmts just record them
38124         using add_access_to_acc_sites instead of preventing the peeling or
38125         counting them as accesses.
38126
38127         PR middle-end/42233
38128         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
38129
38130 2010-02-19  Richard Guenther  <rguenther@suse.de>
38131
38132         PR tree-optimization/42916
38133         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
38134         instructions.
38135
38136 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
38137
38138         * configure.ac: Replace all uses of changequote in macro arguments
38139         with proper quoting.
38140
38141 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38142
38143         PR middle-end/42233
38144         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
38145
38146 2010-02-19  Richard Guenther  <rguenther@suse.de>
38147
38148         PR tree-optimization/42944
38149         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
38150         test for aliasing with errno.
38151
38152 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38153
38154         PR middle-end/42233
38155         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
38156         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
38157         * dojump.c: Include output.h.
38158         (inv): New inline function.
38159         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
38160         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
38161         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
38162         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
38163         argument, pass it down to other calls.
38164         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
38165         add REG_BR_PROB note to the conditional jump.
38166         * cfgexpand.c (add_reg_br_prob_note): Removed.
38167         (expand_gimple_cond): Don't call it, add the probability
38168         as last argument to jumpif_1/jumpifnot_1.
38169         * Makefile.in (dojump.o): Depend on output.h.
38170         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
38171         callers.
38172         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
38173         * stmt.c (do_jump_if_equal): Likewise.
38174         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
38175         * loop-unswitch.c (compare_and_jump_seq): Likewise.
38176         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
38177         Likewise.
38178         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
38179         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
38180         jumpifnot_1 callers.
38181         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
38182         callers.
38183         (store_expr): Adjust jumpifnot caller.
38184         (store_constructor): Adjust jumpif caller.
38185
38186         PR middle-end/42233
38187         * gimplify.c (gimple_boolify): For __builtin_expect call
38188         gimple_boolify also on its first argument.
38189
38190 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
38191
38192         * configure.ac (gnu-unique-object): Wrap regexps using [] in
38193         changequote block.
38194         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
38195         * configure: Regenerated.
38196
38197 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38198
38199         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
38200         lang_hooks.types_compatible_p instead of comptypes.
38201
38202 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
38203
38204         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
38205         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
38206         if __prefer_thumb__ is defined.
38207
38208 2010-02-18  Martin Jambor  <mjambor@suse.cz>
38209
38210         PR tree-optimization/43066
38211         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
38212         array with zero-sized element type.
38213
38214 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
38215
38216         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
38217         rtx, allocate struct var_loc_node here and return it to the
38218         caller, and only if it is actually needed.
38219         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
38220         move it earlier and return immediately if it returns NULL.
38221
38222 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
38223
38224         * config/sparc/gas.h: New file.  Restore
38225         TARGET_ASM_NAMED_SECTION to its ELF default.
38226         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
38227         check !HAVE_GNU_AS.
38228         * config/sparc/sparc.c (sparc_elf_asm_named_section):
38229         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
38230         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
38231         after sparc/sysv4.h.
38232
38233 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
38234
38235         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
38236
38237 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
38238
38239         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
38240         patterns from predicated pattern.
38241
38242 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
38243
38244         PR target/43103
38245         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
38246         for insn mnemonic suffix.
38247
38248 2010-02-17  Richard Guenther  <rguenther@suse.de>
38249
38250         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
38251         to loop PHI nodes.
38252
38253 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
38254
38255         PR debug/42918
38256         * caller-save.c (save_call_clobbered_regs): If BB ends with
38257         a DEBUG_INSN, move any notes in between last real insn and the last
38258         DEBUG_INSN after the last DEBUG_INSN.
38259
38260 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
38261
38262         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
38263         Fix return type.  Fix argument type.  Explain meaning of return value.
38264
38265 2010-02-16  Richard Guenther  <rguenther@suse.de>
38266
38267         PR tree-optimization/41043
38268         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
38269         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
38270         statements ...
38271         (vrp_visit_phi_node): ... but only for loop PHI nodes.
38272
38273 2010-02-16  Ira Rosen  <irar@il.ibm.com>
38274
38275         PR tree-optimization/43074
38276         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
38277         * tree-vect-loop.c (vect_analyze_loop_operations): Add
38278         vectorizable cycles in hybrid SLP check.
38279         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
38280
38281 2010-02-16  Richard Guenther  <rguenther@suse.de>
38282
38283         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
38284         (true_dependence): If memrefs_conflict_p computes must-alias
38285         trust it.  Move TBAA check after offset-based disambiguation.
38286         (canon_true_dependence): Likewise.
38287
38288 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
38289
38290         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
38291         * doc/invoke.texi: Document it.
38292         * var-tracking.c: Include toplev.h and params.h.
38293         (vt_find_locations): Return bool indicating success.  Compute
38294         hash sizes unconditionally.  Check new parameter, report.
38295         (variable_tracking_main_1): Check vt_find_locations results and
38296         retry.  Renamed from...
38297         (variable_tracking_main): ... this.  New wrapper to preserve
38298         flag_var_tracking_assignments.
38299         * Makefile.in (var-tracking.o): Adjust dependencies.
38300
38301 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
38302             Jakub Jelinek  <jakub@redhat.com>
38303
38304         PR target/42854
38305         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
38306         if weak_import attribute is present.
38307         * config/darwin.c (machopic_select_section): Likewise.
38308
38309 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
38310
38311         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
38312         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
38313         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
38314         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
38315
38316         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
38317         types.
38318
38319         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
38320         Fix argument types.
38321
38322         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
38323         Rewrite text to refer to the names.
38324
38325 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
38326
38327         * config/i386/i386-builtin-types.def
38328         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
38329         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
38330         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
38331         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
38332         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
38333         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
38334         IX86_BUILTIN_VPERMIL2PS256.
38335         (MULTI_ARG_4_DF2_DI_I): Defined.
38336         (MULTI_ARG_4_DF2_DI_I1): Defined.
38337         (MULTI_ARG_4_SF2_SI_I): Defined.
38338         (MULTI_ARG_4_SF2_SI_I1): Defined.
38339         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
38340         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
38341         __builtin_ia32_vpermil2ps256.
38342         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
38343         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
38344         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
38345         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
38346         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
38347         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
38348         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
38349         CODE_FOR_xop_vpermil2v8sf3.
38350         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
38351         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
38352         * config/i386/xopintrin.h (_mm_permute2_pd): New.
38353         (_mm256_permute2_pd): New.
38354         (_mm_permute2_ps): New.
38355         (_mm256_permute2_ps): New.
38356
38357 2010-02-15  Nick Clifton  <nickc@redhat.com>
38358
38359         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
38360         boolean parameters.  Use emit_jump_insn when emitting a pop
38361         instruction containing a return insn.
38362         (push): Use 'true' rather than '1' as second parameter to F.
38363         (h8300_expand_prologue): Likewise.
38364         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
38365         (h8300_expand_epilogue): Likewise.
38366
38367 2010-02-15  Richard Guenther  <rguenther@suse.de>
38368
38369         PR middle-end/43068
38370         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
38371         if that is zero.
38372
38373 2010-02-15  Nick Clifton  <nickc@redhat.com>
38374
38375         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
38376         delta.
38377
38378 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
38379
38380         * intl.c (fake_ngettext): New function.
38381         * intl.h (fake_ngettext): Declare.
38382         (ngettext): Define macro.
38383         * collect2.c (notice_translated): New function.
38384         (main): Use notice_translated and ngettext.
38385         * collect2.h (notice_translated): Declare.
38386
38387 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
38388
38389         * reorg.c (delete_computation): Comment fixes.
38390         * caller-save.c (setup_save_areas): Idem.
38391         * sel-sched-dump.c (dump_lv_set): Idem.
38392         * rtl.def: Idem.
38393
38394 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38395
38396         * config/s390/s390.c (s390_sched_init): New function.
38397         (TARGET_SCHED_INIT): Target hook defined.
38398
38399 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
38400             Jack Howarth  <howarth@bromo.med.uc.edu>
38401             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
38402
38403         PR target/42982
38404         Partial revert of unintended change in fix for PR41605.
38405         * config/darwin.h: Fix typo.
38406         * config/darwin9.h: Same.
38407
38408 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38409
38410         * c-pch.c (pch_init): Clear v.
38411
38412 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38413
38414         PR middle-end/42930
38415         * graphite-scop-detection.c (graphite_can_represent_scev): Call
38416         graphite_can_represent_init for MULT_EXPR.
38417
38418 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38419
38420         PR middle-end/42914
38421         PR middle-end/42530
38422         * graphite-sese-to-poly.c (remove_phi): New.
38423         (translate_scalar_reduction_to_array): Call remove_phi.
38424
38425 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38426
38427         PR middle-end/42771
38428         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
38429         * graphite-clast-to-gimple.h (gloog): Update declaration.
38430         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
38431         * graphite-poly.h (struct poly_bb): Add missing comments.
38432         (struct scop): Add poly_scop_p field.
38433         (POLY_SCOP_P): New.
38434         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
38435         * graphite.c (graphite_transform_loops): Build the polyhedral
38436         representation for each scop before code generation.
38437         * sese.c (rename_variables_in_operand): Removed.
38438         (rename_variables_in_expr): Return the renamed expression.
38439         (rename_sese_parameters): New.
38440         * sese.h (rename_sese_parameters): Declared.
38441
38442 2010-02-11  Richard Guenther  <rguenther@suse.de>
38443
38444         PR tree-optimization/42998
38445         * tree-ssa-pre.c (create_expression_by_pieces): Treat
38446         POINTER_PLUS_EXPR properly.
38447
38448 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38449             Changpeng Fang  <changpeng.fang@amd.com>
38450
38451         PR middle-end/40886
38452         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
38453         the cost of an IV candidate when the IV is used in a test against zero.
38454
38455         * gcc.dg/tree-ssa/ivopts-3.c: New.
38456
38457 2010-02-11  Richard Guenther  <rguenther@suse.de>
38458
38459         PR lto/41664
38460         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
38461         pointer-vs-decl case by swapping refs.  Handle some cases
38462         of pointer-vs-decl disambiguations more conservatively.
38463         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
38464         to false after expanding.
38465
38466 2010-02-11  Richard Guenther  <rguenther@suse.de>
38467
38468         PR driver/43021
38469         * gcc.c (process_command): Handle LTO file@offset case more
38470         appropriately.
38471
38472 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38473
38474         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
38475         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
38476         of DEBUG_INSNs.
38477         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
38478
38479         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
38480         if MEM's mode size isn't DWARF2_ADDR_SIZE.
38481         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
38482         Optimize eq/ne comparisons when both arguments are known to be
38483         zero-extended.
38484         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
38485         Don't mask operands unnecessarily if they are known to be already
38486         zero-extended.
38487
38488 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
38489
38490         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
38491         instead of loop.
38492
38493 2010-02-10  Richard Guenther  <rguenther@suse.de>
38494
38495         PR tree-optimization/43017
38496         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
38497         for wrapping signed arithmetic.
38498
38499 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38500
38501         PR debug/43010
38502         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
38503         if no debug info should be emitted for it.
38504
38505 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
38506
38507         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
38508         note when flag_exceptions is set.
38509
38510 2010-02-10  Duncan Sands  <baldrick@free.fr>
38511
38512         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
38513
38514 2010-02-10  Richard Guenther  <rguenther@suse.de>
38515
38516         PR c/43007
38517         * tree.c (get_unwidened): Handle constants.
38518         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
38519
38520 2010-02-10  Martin Jambor  <mjambor@suse.cz>
38521
38522         PR lto/42985
38523         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
38524         check for variable argument counts independently.
38525
38526 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38527
38528         PR target/42841
38529         * config/sh/sh.c (find_barrier): Increase length for non delayed
38530         conditional branches.
38531
38532 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38533
38534         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
38535
38536 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38537
38538         * builtins.c (set_builtin_user_assembler_name): Also handle
38539         ffs if int is smaller than word.
38540
38541 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
38542
38543         PR middle-end/42973
38544         * ira-conflicts.c (get_dup): Remove.
38545         (process_reg_shuffles): Add new parameter.  Use it as an
38546         additional guard for copy generation.
38547         (add_insn_allocno_copies): Rewrite.
38548
38549 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
38550
38551         * common.opt (fsched2-use-traces): Preserved for backward
38552         compatibility.
38553         * doc/invoke.texi: Remove the documentation about option
38554         -fsched2-use-traces.
38555         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
38556         flag_sched2_use_traces.
38557         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
38558         the backward compatibility flag section.
38559
38560 2010-02-09  Richard Guenther  <rguenther@suse.de>
38561
38562         PR tree-optimization/43008
38563         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
38564         make HEAP variables initialized from global memory if they
38565         are not known builtin functions.
38566         (find_func_aliases): Adjust.
38567
38568 2010-02-09  Richard Guenther  <rguenther@suse.de>
38569
38570         PR tree-optimization/43000
38571         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
38572         arithmetic manually.
38573
38574 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
38575
38576         PR tree-optimization/42931
38577         * tree-loop-linear.c (try_interchange_loops): Don't call
38578         double_int_mul if estimated_loop_iterations failed.
38579
38580 2010-02-08  Martin Jambor  <mjambor@suse.cz>
38581
38582         PR middle-end/42898
38583         * tree-sra.c (build_accesses_from_assign): Do not mark in
38584         should_scalarize_away_bitmap if stmt has volatile ops.
38585         (sra_modify_assign): Do not process assigns piecemeal if if stmt
38586         has volatile ops.
38587
38588 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
38589
38590         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
38591
38592 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
38593
38594         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
38595         before the pattern.
38596
38597 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
38598
38599         PR middle-end/42946
38600         * df-core.c (df_finish_pass): Change type of saved_flags to int.
38601
38602 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38603
38604         PR middle-end/42988
38605         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
38606         to unknown_dependence.
38607         (graphite_legal_transform_dr): Handle the unknown_dependence.
38608         (graphite_carried_dependence_level_k): Same.
38609
38610 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38611
38612         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
38613
38614 2010-02-07  Richard Guenther  <rguenther@suse.de>
38615
38616         PR middle-end/42991
38617         * expr.c (get_inner_reference): Always initialize *pbitsize.
38618
38619 2010-02-07  Richard Guenther  <rguenther@suse.de>
38620
38621         PR middle-end/42956
38622         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
38623         new ARRAY_REFs on variable size element or minimal index arrays.
38624         Complete.
38625         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
38626         gimple_fold_indirect_ref.
38627
38628 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
38629
38630         PR target/42957
38631         * arm.c (arm_override_options): Just return if the user has specified
38632         an invalid fpu name.
38633
38634 2010-02-03  Jason Merrill  <jason@redhat.com>
38635
38636         PR c++/42870
38637         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
38638         i386_pe_maybe_record_exported_symbol.
38639
38640 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
38641
38642         PR target/42924
38643         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38644         (pa_delegitimize_address): New function.
38645
38646 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
38647
38648         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
38649         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
38650
38651 2010-02-05  Richard Guenther  <rguenther@suse.de>
38652
38653         PR lto/42762
38654         * lto-streamer-in.c (get_resolution): Deal with references
38655         to undefined functions.
38656
38657 2010-02-05  Richard Guenther  <rguenther@suse.de>
38658
38659         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
38660         (fold_const_aggregate_ref): Likewise.
38661         (ccp_fold_stmt): Substitute loads.
38662         (maybe_fold_reference): Verify types before substituting.
38663         Unshare properly.
38664         (fold_gimple_assign): Unshare properly.
38665         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
38666
38667 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
38668
38669         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
38670         for rs6000_gen_cell_microcode.
38671
38672 2010-02-04  Richard Guenther  <rguenther@suse.de>
38673
38674         PR rtl-optimization/42952
38675         * dse.c (const_or_frame_p): Remove MEM handling.
38676
38677 2010-02-04  Nick Clifton  <nickc@redhat.com>
38678
38679         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
38680         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
38681         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
38682         (mn10300_asm_output_mi_thunk): New function.
38683         (mn10300_can_output_mu_thunk): New function.
38684         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
38685         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
38686         (FUNCTION_ARG): Delete incorrect comment.
38687
38688 2010-02-03  Jason Merrill  <jason@redhat.com>
38689
38690         PR c++/40138
38691         * fold-const.c (operand_equal_p): Handle erroneous types.
38692
38693 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
38694
38695         * config/h8300/h8300.md (can_delay): Fix attibute condition.
38696
38697 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
38698
38699         PR rtl-optimization/42941
38700         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
38701         of xmalloc.
38702
38703 2010-02-03  Jason Merrill  <jason@redhat.com>
38704
38705         PR c++/35652
38706         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
38707
38708 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
38709
38710         PR debug/42896
38711         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
38712         (cselib_reset_table): Renamed from...
38713         (cselib_reset_table_with_next_value): ... this.
38714         (cselib_get_next_uid): Renamed from...
38715         (cselib_get_next_unknown_value): ... this.
38716         * cselib.c (next_uid): Renamed from...
38717         (next_unknown_value): ... this.
38718         (cselib_clear_table): Adjust.
38719         (cselib_reset_table): Adjust.  Renamed from...
38720         (cselib_reset_table_with_next_value): ... this.
38721         (cselib_get_next_uid): Adjust.  Renamed from...
38722         (cselib_get_next_unknown_value): ... this.
38723         (get_value_hash): Use hash.
38724         (cselib_hash_rtx): Likewise.
38725         (new_cselib_val): Adjust.  Set and dump uid.
38726         (cselib_lookup_mem): Pass next_uid as hash.
38727         (cselib_subst_to_values): Likewise.
38728         (cselib_log_lookup): Dump uid.
38729         (cselib_lookup): Pass next_uid as hash.  Adjust.
38730         (cselib_process_insn): Adjust.
38731         (cselib_init): Initialize next_uid.
38732         (cselib_finish): Adjust.
38733         (dump_cselib_table): Likewise.
38734         * dse.c (canon_address): Dump value uid.
38735         * print-rtl.c (print_rtx): Print value uid.
38736         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
38737         (dvuid): New type.
38738         (dv_uid): New function, sort of renamed from...
38739         (dv_htab_hash): ... this, reimplemented in terms of it and...
38740         (dv_uid2hash): ... this.  New.
38741         (variable_htab_eq): Drop excess assertions.
38742         (tie_break_pointers): Removed.
38743         (canon_value_cmp): Compare uids.
38744         (variable_post_merge_New_vals): Print uids.
38745         (vt_add_function_parameters): Adjust.
38746         (vt_initialize): Reset table.  Adjust.
38747
38748 2010-02-03  Richard Guenther  <rguenther@suse.de>
38749
38750         PR tree-optimization/42944
38751         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
38752         (call_may_clobber_ref_p_1): Likewise.  Properly handle
38753         malloc and calloc clobbering errno.
38754
38755 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
38756
38757         * doc/invoke.texi: Fix name of sched1 dump.
38758
38759         * opts.c (decode_options): Set flag_tree_switch_conversion
38760         only conditionally on optimize >= 2.
38761
38762         * gcse.c: Assorted comment fixes in pass description.
38763
38764 2010-02-03  Anthony Green  <green@moxielogic.com>
38765
38766         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
38767         nop padding in order to maintain alignment of storage location of
38768         target function address.
38769         (moxie_trampoline_init): Store target function address at newly
38770         aligned location.
38771         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
38772         to 32.
38773         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
38774
38775 2010-02-03  Richard Guenther  <rguenther@suse.de>
38776
38777         PR middle-end/42927
38778         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
38779
38780 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38781
38782         * config.gcc: Reenable check for obsolete targets.
38783         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
38784         mips-sgi-irix6.[0-4]*.
38785
38786 2010-02-02  Nick Clifton  <nickc@redhat.com>
38787
38788         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
38789         constant size of 4 as being the same as 0.
38790         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
38791         can take values in the range 0..4.
38792
38793 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
38794
38795         PR java/41991
38796         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
38797         as _darwin10_Unwind_FindEnclosingFunction().
38798         * libgcc-libsystem.ver: New.
38799
38800 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
38801
38802         PR target/41399
38803         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
38804         implicitly set registers.
38805
38806 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
38807
38808         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
38809         (arm_override_options): Allow automatic selection of the thread
38810         pointer register if thumb2.
38811         (legitimize_pic_address): Improve code sequences for Thumb2.
38812         (arm_call_tls_get_addr): Likewise.
38813         (legitimize_tls_address): Likewise.
38814         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
38815         (pic_load_addr_32bit): ... this.  New named pattern.
38816         * thumb2.md (pic_load_addr_thumb2): Delete.
38817         (pic_load_dot_plus_four): Delete.
38818         (tls_load_dot_plus_four): New named pattern.
38819
38820 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38821
38822         PR libgomp/29986
38823         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
38824         Document fix for TLS bug.
38825
38826 2010-01-31  Richard Guenther  <rguenther@suse.de>
38827
38828         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
38829         conservatively correct.
38830
38831 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38832
38833         PR target/42850
38834         Revert:
38835         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38836
38837         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38838
38839 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
38840
38841         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
38842
38843 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
38844
38845         * config.gcc: Adjust order of makefile fragments for mingw targets.
38846
38847 2010-01-31  Richard Guenther  <rguenther@suse.de>
38848
38849         PR middle-end/42898
38850         * gimplify.c (gimplify_init_constructor): For volatile LHS
38851         initialize a temporary.
38852
38853 2010-01-31  Matthias Klose  <doko@ubuntu.com>
38854
38855         * configure.ac: Fix __stack_chk_fail check for cross builds configured
38856         --with-headers
38857         * configure: Regenerate.
38858
38859 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
38860
38861         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
38862         the same alias set and their sizes different constantness.
38863         (aliasing_component_refs_p): Revert 2009-10-24 change.
38864
38865 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38866
38867         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
38868         unused.
38869
38870 2010-01-29  Richard Guenther  <rguenther@suse.de>
38871
38872         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
38873         Assert we successfully updated the call.
38874
38875 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
38876
38877         PR rtl-optimization/42889
38878         * df.h (df_set_bb_dirty_nonlr): New prototype.
38879         * df-core.c (df_set_bb_dirty_nonlr): New function.
38880         * df-scan.c (df_insn_rescan): Call it instead of
38881         df_set_bb_dirty for DEBUG_INSNs.
38882
38883 2010-01-29  Richard Guenther  <rguenther@suse.de>
38884
38885         PR middle-end/37448
38886         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
38887         quadratic behavior in most cases.
38888
38889 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
38890
38891         PR target/42891
38892         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
38893         in the call to gen_x86_movsicc_0_m1.
38894
38895 2010-01-28  Richard Guenther  <rguenther@suse.de>
38896
38897         PR tree-optimization/42871
38898         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
38899
38900 2010-01-28  Richard Guenther  <rguenther@suse.de>
38901
38902         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
38903         into call arguments.
38904
38905 2010-01-28  Richard Guenther  <rguenther@suse.de>
38906
38907         PR middle-end/42883
38908         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
38909         the forwarder if the destination is an EH landing pad.
38910
38911 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
38912
38913         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
38914         block list passed to gimple_duplicate_sese_tail.
38915         (parallelize_loops): Avoid parallelization when the function
38916         has_nonlocal_label.
38917         Avoid parallelization when the preheader is IRREDUCIBLE.
38918         Try to optimize when estimated_loop_iterations_int is unresolved.
38919         Add the loop's location to the dump file.
38920         * tree-cfg.c (add_phi_args_after_redirect): Remove.
38921         (gimple_duplicate_sese_tail): Remove the check for the latch.
38922         Redirect nexits to the exit block.
38923         Remove handling of the incoming edges to the latch.
38924         Redirect the backedge from the copied latch to the exit bb.
38925
38926 2010-01-28  Michael Matz  <matz@suse.de>
38927
38928         PR target/42881
38929         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
38930         Wrap force_reg into a sequence, emit it before user.
38931
38932 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
38933
38934         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
38935         (arm_rev): New.
38936         (arm_legacy_rev): Likewise.
38937         (thumb_legacy_rev): Likewise.
38938
38939 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
38940
38941         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
38942         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
38943         on MEM's address failed, try avoid_constant_pool_reference and
38944         recurse if it returned something different.
38945         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
38946         address, try avoid_constant_pool_reference and recurse if it
38947         returned something different.
38948         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
38949         address and avoid_constant_pool_reference returned something
38950         different, don't set have_address.
38951
38952 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
38953
38954         PR debug/42861
38955         * var-tracking.c (val_store): Add modified argument, obey it.
38956         Adjust callers.
38957         (count_uses): Move down logging of main.
38958         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
38959         don't need resolution.
38960         (emit_notes_in_bb): Likewise.
38961
38962 2010-01-27  Richard Guenther  <rguenther@suse.de>
38963
38964         PR middle-end/42878
38965         * tree-inline.c (remap_decl): Delay remapping of SSA name
38966         default definitions until we need them.
38967
38968 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
38969
38970         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38971         (rs6000_delegitimize_address): New function.
38972
38973         * config/s390/s390.c (s390_delegitimize_address): Call
38974         delegitimize_mem_from_attrs.
38975
38976         PR middle-end/42874
38977         * tree-inline.c (cannot_copy_type_1): Removed.
38978         (copy_forbidden): Don't forbid copying of functions containing
38979         records/unions with variable length fields.
38980
38981 2010-01-27  Christian Bruel  <christian.bruel@st.com>
38982
38983         Revert:
38984         PR target/42841
38985         * config/sh/sh.c (find_barrier): Increase length for non delayed
38986         conditional branches.
38987
38988 2010-01-27  Matthias Klose  <doko@ubuntu.com>
38989
38990         * configure.ac (gnu-unique-object): Fix ldd version check.
38991         * configure: Regenerate.
38992
38993 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38994
38995         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
38996         HAVE_GNU_AS value.
38997         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
38998         Test for HAVE_GNU_AS value.
38999
39000 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39001
39002         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
39003         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
39004         INT64_TYPE): Define.
39005         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
39006         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
39007         INT_LEAST64_TYPE): Define.
39008         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
39009         UINT_LEAST64_TYPE): Define.
39010         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
39011         INT_FAST64_TYPE): Define.
39012         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
39013         UINT_FAST64_TYPE): Define.
39014         (INTMAX_TYPE, UINTMAX_TYPE): Define.
39015         (INTPTR_TYPE, UINTPTR_TYPE): Define.
39016         (SIG_ATOMIC_TYPE): Define.
39017
39018 2010-01-26  Richard Guenther  <rguenther@suse.de>
39019
39020         * df-scan.c (df_scan_set_bb_info): Remove assert.
39021         (df_insn_rescan_debug_internal): Merge asserts.
39022         (df_install_ref): Likewise.
39023         (df_mark_reg): Use bitmap_set_range.
39024         (df_hard_reg_used_p): Remove assert.
39025         (df_hard_reg_used_count): Likewise.
39026
39027 2010-01-26  Richard Guenther  <rguenther@suse.de>
39028
39029         PR rtl-optimization/42685
39030         * web.c (web_main): Ignore DEBUG_INSNs.
39031
39032 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
39033
39034         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
39035
39036         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
39037         Fix types of fndecl and arglist parameters.
39038
39039 2010-01-26  Richard Guenther  <rguenther@suse.de>
39040
39041         PR middle-end/42806
39042         * tree-eh.c (unsplit_eh): Skip debug insns.
39043
39044 2010-01-26  Richard Guenther  <rguenther@suse.de>
39045
39046         PR tree-optimization/42250
39047         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
39048
39049 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
39050
39051         PR fortran/42866
39052         * omp-low.c (expand_omp_sections): Only use single_pred if
39053         l2_bb is single_pred_p.
39054
39055 2010-01-25  Christian Bruel  <christian.bruel@st.com>
39056
39057         PR target/42841
39058         * config/sh/sh.c (find_barrier): Increase length for non delayed
39059         conditional branches.
39060         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
39061
39062 2010-01-24  David S. Miller  <davem@davemloft.net>
39063
39064         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
39065         define if not using GAS.
39066         * config/sparc/sparc.c (sparc_elf_asm_named_section):
39067         Likewise.  Delete SECTION_MERGE code, which is only applicable
39068         when using GAS.
39069
39070 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
39071
39072         PR c++/42748
39073         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
39074         mangling of va_list in system headers.
39075
39076 2010-01-23  Toon Moene  <toon@moene.org>
39077
39078         * tree-predcom.c (combine_chains): Return NULL, not false.
39079
39080 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
39081
39082         * tree-loop-distribution.c (distribute_loop): Fix declaration and
39083         initialization of variable res to agree with return type.
39084
39085 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
39086
39087         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
39088         * tree-sra.c: Add include of expr.h.
39089
39090 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
39091
39092         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
39093         insert the debug stmt on the single non-EH edge from the stmt.
39094
39095 2010-01-22  Richard Henderson  <rth@redhat.com>
39096
39097         PR tree-opt/42833
39098         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
39099         the RHS until after generate_subtree_copies has insertted its
39100         code before the current statement.
39101
39102 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
39103
39104         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
39105
39106         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
39107
39108 2010-01-21  Martin Jambor  <mjambor@suse.cz>
39109
39110         PR tree-optimization/42585
39111         * tree-sra.c (struct access): New field grp_total_scalarization.
39112         (dump_access): Dump the new field.
39113         (should_scalarize_away_bitmap): New variable.
39114         (cannot_scalarize_away_bitmap): Likewise.
39115         (sra_initialize): Allocate new bitmaps.
39116         (sra_deinitialize): Free new bitmaps.
39117         (create_access_1): New function.
39118         (create_access): Parts moved to create_access_1.
39119         (type_consists_of_records_p): New function.
39120         (completely_scalarize_record): Likewise.
39121         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
39122         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
39123         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
39124         access.
39125         (analyze_all_variable_accesses): Completely scalarize small eligible
39126         records.
39127
39128 2010-01-21  Martin Jambor  <mjambor@suse.cz>
39129
39130         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
39131
39132 2010-01-21  Andrew Haley  <aph@redhat.com>
39133
39134         * gcc.c (process_command): Move lang_specific_driver before
39135         setting cc_libexec_prefix.
39136
39137 2010-01-21  Richard Guenther  <rguenther@suse.de>
39138
39139         PR middle-end/19988
39140         * fold-const.c (negate_expr_p): Pretend only negative
39141         real constants are easily negatable.
39142
39143 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
39144             Jason Merrill  <jason@redhat.com>
39145
39146         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
39147         (TYPE_TRANSPARENT_AGGR): this, for union and record.
39148         * calls.c (initialize argument_information): Handle it.
39149         * c-common.c (handle_transparent_union_attribute): Use new name.
39150         * c-decl.c (finish_struct): Ditto.
39151         * c-typeck.c (type_lists_compatible_p): Ditto.
39152         (convert_for_assignment): Use new name and also handle record.
39153         * function.c (aggregate_value_p): Handle it.
39154         (pass_by_reference): Ditto.
39155         (assign_parm_data_types): Ditto.
39156         * print-tree.c (print_node): Ditto.
39157         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
39158         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
39159         * tree.c (first_field): New fn.
39160
39161 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
39162
39163         PR target/42818
39164         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
39165         even when linking statically, for now.
39166
39167 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
39168
39169         PR debug/42715
39170         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
39171         without a cselib val.
39172         (count_uses): Accept MO_VAL_SET with no val on stores.
39173         (add_stores): Likewise.
39174
39175 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39176
39177         * var-tracking.c (check_value_val): Add a compile time assertion.
39178         (dv_is_decl_p): Simplify.
39179         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
39180         gcc_assert if ENABLE_CHECKING.
39181
39182 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
39183
39184         PR debug/42782
39185         * var-tracking.c: Include tree-flow.h.
39186         (mem_dies_at_call): New.
39187         (dataflow_set_preserve_mem_locs): Use it.
39188         (dataflow_set_remove_mem_locs): Likewise.
39189         (dump_var): Renamed from dump_variable.  Adjust all callers.
39190         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
39191         * Makefile.in (var-tracking.o): Adjust deps.
39192
39193 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
39194
39195         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
39196
39197 2010-01-20  Richard Guenther  <rguenther@suse.de>
39198
39199         PR tree-optimization/42717
39200         * tree-ssa-dce.c (get_live_post_dom): Remove.
39201         (forward_edge_to_pdom): Take an arbitrary edge to copy
39202         degenerate PHI args from.
39203         (remove_dead_stmt): Use the first post-dominator even if it
39204         does not contain live statements as redirection destination.
39205
39206 2010-01-20  Richard Guenther  <rguenther@suse.de>
39207
39208         * tree-inline.c (estimate_num_insns): Handle EH builtins.
39209
39210 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39211
39212         * sel-sched.c (create_speculation_check): Remove set but not used
39213         variable twin.
39214         (try_transformation_cache): Remove set but not used variable ds.
39215         (calculate_privileged_insns): Remove set but not used variables
39216         cur_insn and min_spec_insn.
39217         (find_best_expr): Remove set but not used variable avail_n.
39218         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
39219         variable e.
39220         * cgraphunit.c (assemble_thunk): Remove set but not used variable
39221         false_label.
39222         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
39223         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
39224         new_scop_exit_edge.
39225
39226 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
39227
39228         PR bootstrap/42786
39229         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
39230         cpu types.  Add support for *-sse3 cpu types.
39231         (x86_64-*-*): Ditto.
39232
39233 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39234
39235         PR middle-end/42803
39236         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
39237         argument, call initializer_constant_valid_p_1 instead of
39238         initializer_constant_valid_p, pass CACHE to it, return NULL
39239         immediately if first call returns NULL.
39240         (initializer_constant_valid_p_1): New function.
39241         (initializer_constant_valid_p): Use it.
39242
39243 2010-01-20  Thomas Quinot  <quinot@adacore.com>
39244
39245         * tree.def (PLACEHOLDER_EXPR): Fix comment.
39246
39247 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39248
39249         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
39250         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
39251         (loc_list_from_tree): Don't handle unsigned division.  Handle
39252         signed modulo using DW_OP_{over,over,div,mul,minus}.
39253         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
39254         modulo instead of signed.
39255
39256 2010-01-20  DJ Delorie  <dj@redhat.com>
39257
39258         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
39259         (Fpa): Pass it
39260         (h8300_emit_stack_adjustment): Propogate it.
39261         (push): Pass it.
39262         (h8300_expand_prologue): Likewise.
39263         (h8300_expand_epilogue): Likewise.
39264
39265 2010-01-19  Michael Matz  <matz@suse.de>
39266
39267         PR tree-optimization/41783
39268         * tree-data-ref.c (toplevel): Include flags.h.
39269         (dump_data_dependence_relation):  Also dump the inputs if the
39270         result will be unknown.
39271         (split_constant_offset_1): Look through some conversions.
39272         * tree-predcom.c (determine_roots_comp): Restart a new chain if
39273         the offset from last element is too large.
39274         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
39275         (reassociate_to_the_same_stmt): Handle vector registers.
39276         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
39277         (e.g. conversions).
39278         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
39279         wide_prolog_niters argument, emit widening instructions.
39280         (vect_do_peeling_for_alignment): Adjust caller, use widened
39281         variant of the iteration cound.
39282         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
39283
39284 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
39285
39286         PR target/38697
39287         * config/arm/neon-testgen.m (emit_automatics): New parameter
39288         features. Adjust for Fixed_return_reg feature.
39289         (test_intrinsic): Call emit_automatics with new feature.
39290         * config/arm/neon.ml: Update copyright years.
39291         (features): New Fixed_return_reg feature.
39292         (ops): Update feature for Vget_low.
39293
39294 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
39295
39296         PR tree-optimization/42719
39297         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
39298         stmt uses.
39299
39300         PR debug/42728
39301         * fwprop.c (all_uses_available_at): Return false if def_set dest
39302         is a REG that is used in def_insn.
39303
39304 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
39305
39306         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
39307
39308         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
39309         Add argument names.
39310
39311         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
39312
39313         * target.h (struct gcc_target) <secondary_reload>: Change type
39314         of last argument to secondary_reload_info *.
39315
39316 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
39317
39318         PR target/42774
39319         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
39320         memory references with unaligned offsets.  Remove CQImode handling.
39321         (unaligned_memory_operand): Return 1 for memory references with
39322         unaligned offsets.  Remove CQImode handling.
39323
39324 2010-01-18  Richard Guenther  <rguenther@suse.de>
39325
39326         PR middle-end/39954
39327         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
39328         builtin calls.
39329
39330 2010-01-18  Richard Guenther  <rguenther@suse.de>
39331
39332         PR tree-optimization/42781
39333         * tree-ssa-structalias.c (find_what_var_points_to): Skip
39334         restrict processing only if the original variable was artificial.
39335
39336 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
39337
39338         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
39339         find number of popped argument bytes.
39340
39341         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
39342         Fix the text that describes the return value for invalid insns.
39343
39344         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
39345
39346         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
39347         Clarify what 'cost of the -dependence' is.  Fix quoting.
39348
39349         * toplev.c (default_get_pch_validity): Rename argument to "sz".
39350         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
39351
39352 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
39353
39354         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
39355         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
39356
39357 2010-01-17  Richard Guenther  <rguenther@suse.de>
39358
39359         PR middle-end/42248
39360         * function.c (split_complex_args): Take a VEC to modify.
39361         (assign_parms_augmented_arg_list): Build a VEC instead of
39362         a chain of PARM_DECLs.
39363         (assign_parms_unsplit_complex): Take a VEC of arguments.
39364         Do not fixup unmodified parms.
39365         (assign_parms): Deal with the VEC.
39366         (gimplify_parameters): Likewise.
39367
39368 2010-01-17  Richard Guenther  <rguenther@suse.de>
39369
39370         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
39371         node existence check.
39372         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
39373         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
39374         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
39375         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
39376         (gimple_execute_on_growing_pred): Likewise.
39377
39378 2010-01-17  Richard Guenther  <rguenther@suse.de>
39379
39380         PR tree-optimization/42773
39381         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
39382         (compute_antic_aux): Likewise.
39383         (compute_partial_antic_aux): Likewise.
39384
39385 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
39386
39387         PR debug/42767
39388         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
39389         and US_TRUNCATE.
39390
39391 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
39392
39393         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
39394         appearance.
39395
39396         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
39397         Fix markup for strict argument.
39398
39399         (TARGET_SCHED_REORDER2): Fix argument types.
39400
39401         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
39402         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
39403
39404         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
39405         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
39406
39407         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
39408         Add argument name.
39409
39410         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
39411         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
39412         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
39413         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
39414         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
39415
39416         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
39417
39418         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
39419
39420         (TARGET_ASM_RELOC_RW_MASK): Add return type.
39421         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
39422
39423         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
39424
39425         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
39426         Use prototype.
39427
39428         (TARGET_ASM_NAMED_SECTION): Fix argument list.
39429
39430         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
39431         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
39432
39433         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
39434
39435         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
39436
39437         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
39438         referring to it.  Fix language.
39439
39440         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
39441
39442         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
39443
39444         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
39445
39446         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
39447
39448         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
39449         '@var{stream}.  Remove stray 'and'.
39450
39451         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
39452
39453         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
39454
39455         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
39456
39457         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
39458         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
39459
39460         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
39461         Fix description of return value.
39462         Rename argument "sz" to "len."
39463
39464         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
39465         Clarify meaning of 'true' return value.
39466
39467         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
39468
39469         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
39470         rep_mode versus mode_rep.
39471
39472         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
39473
39474         (TARGET_BUILTIN_DECL): Fix name.
39475
39476         (TARGET_COMMUTATIVE_P): Fix type of first argument.
39477
39478         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
39479
39480         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
39481
39482         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
39483
39484         (TARGET_RELAXED_ORDERING): Use @deftypevr.
39485
39486         (TARGET_GET_DRAP_RTX): Note that this is a hook.
39487         Clarify language.
39488
39489         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
39490         Rename argument tm_fn to md_fn.
39491
39492         (TARGET_OPTION_PRINT): Fix argument list.
39493
39494 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
39495
39496         PR target/42664
39497         * config/i386/i386.c (ix86_fixup_binary_operands):
39498         Revert FMA4 fixup of operands.
39499
39500 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39501
39502         PR other/42525
39503         * Makefile.in (write_entries_to_file, install-plugin):
39504         Use \012 instead of \n with tr.
39505
39506 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
39507
39508         * configure.ac (HAVE_AS_REF): New C macro.
39509         * configure: Regenerate.
39510         * config.in: Likewise.
39511         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
39512         if HAVE_AS_REF.
39513         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
39514         if HAVE_AS_REF.
39515
39516 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
39517
39518         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
39519
39520         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
39521
39522         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
39523
39524         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
39525
39526         (TARGET_IN_SMALL_DATA_P): Fix argument type.
39527
39528         (TARGET_BINDS_LOCAL_P): Fix argument type.
39529
39530         (TARGET_ASM_FILE_END): Use prototype.
39531
39532         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
39533
39534         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
39535
39536         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
39537
39538         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
39539
39540         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
39541         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
39542
39543         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
39544         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
39545
39546         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
39547         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
39548         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
39549         (TARGET_ADDR_SPACE_CONVERT): Likewise.
39550
39551         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
39552
39553         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
39554
39555         (TARGET_INIT_BUILTINS): Use prototype.
39556
39557         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
39558         Put 'const char *' in braces.  Fix parameter types.
39559         (TARGET_INVALID_CONVERSION): Fix parameter types.
39560         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
39561         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
39562
39563         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
39564         Fix argument type.
39565
39566         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
39567
39568         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
39569
39570 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
39571
39572         * doc/tm.texi (TARGET_HELP): Fix return type.
39573
39574         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
39575         in braces.  Fix argument types.
39576
39577         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
39578
39579         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
39580
39581         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
39582
39583         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
39584         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
39585
39586         (TARGET_MANGLE_TYPE): Fix argument types.
39587
39588         (TARGET_IRA_COVER_CLASSES): Use prototype.
39589
39590         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
39591
39592         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
39593
39594         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
39595
39596         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
39597
39598         (TARGET_CALLEE_COPIES): Fix argument types.
39599
39600         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
39601
39602         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
39603
39604         (TARGET_FUNCTION_VALUE): Fix argument types.
39605
39606         (TARGET_RETURN_IN_MSB): Fix argument type.
39607
39608         (TARGET_RETURN_IN_MEMORY): Fix argument types.
39609
39610         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
39611
39612         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
39613
39614         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
39615         agree with return type.
39616
39617         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
39618
39619 2010-01-15  Jing Yu  <jingyu@google.com>
39620
39621         PR rtl-optimization/42691
39622         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
39623         a pseudo to a constant and are merged, and adjust comments.
39624
39625 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
39626
39627         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
39628
39629 2010-01-15  Richard Guenther  <rguenther@suse.de>
39630
39631         PR middle-end/42739
39632         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
39633         labels of computed or non-local gotos to the destination.
39634         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
39635         landing pad label is the first label.
39636
39637 2010-01-15  Richard Guenther  <rguenther@suse.de>
39638
39639         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
39640
39641 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
39642
39643         PR target/42747
39644         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
39645         to allow generation of the xssqrtdp instruction on power7.
39646         (sqrtdf2_fpr): Ditto.
39647
39648 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39649
39650         PR middle-end/42674
39651         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
39652         functions with noreturn attribute.
39653
39654         PR c++/42608
39655         * varasm.c (declare_weak): Add weak attribute to decl if it
39656         doesn't have one already.
39657         (assemble_external): Only add decls to weak_decls if they also
39658         have weak attribute.
39659
39660 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
39661
39662         * var-tracking.c (var_reg_delete): Don't delete the association
39663         between REGs and values or one-part variables if the register
39664         isn't clobbered.
39665
39666 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39667
39668         PR debug/42657
39669         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
39670         because its first operand is a non-localized variable.
39671
39672 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39673
39674         PR tree-optimization/42706
39675         * tree-sra.c (encountered_recursive_call): New variable.
39676         (encountered_unchangable_recursive_call): Likewise.
39677         (sra_initialize): Initialize both new variables.
39678         (callsite_has_enough_arguments_p): New function.
39679         (scan_function): Call decl and flags check only for IPA-SRA, check
39680         whether there is a recursive call and whether it has enough arguments.
39681         (all_callers_have_enough_arguments_p): New function.
39682         (convert_callers): Look for recursive calls only when
39683         encountered_recursive_call is set.
39684         (ipa_early_sra): Bail out either if
39685         !all_callers_have_enough_arguments_p or
39686         encountered_unchangable_recursive_call.
39687
39688 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39689
39690         * sel-sched.c: Add 2010 to copyright years.
39691         * sel-sched-ir.c: Likewise.
39692         * sel-sched-ir.h: Likewise.
39693
39694 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39695
39696         PR tree-optimization/42714
39697         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
39698         constructors specially.
39699
39700 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39701
39702         * config/i386/drivers-i386.c (detect_caches_intel):
39703         Add l2sizekb parameter and fill in.
39704         (host_detect_local_cpu): Add l2sizekb, fill in.
39705         Add Atom small cache heuristic.
39706
39707 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39708
39709         * config/i386/drivers-i386.c (detect_caches_cpuid4):
39710         Add level3 parameter and fill in.
39711         (detect_caches_intel): Handle level3 cache.
39712
39713 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39714
39715         * config/i386/drivers-i386.c (host_detect_local_cpu):
39716         Fix core duo detection.
39717
39718 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39719
39720         * config/i386/drivers-i386.c (host_detect_local_cpu):
39721         Fix Atom detection.
39722
39723 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39724
39725         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
39726         (rs6000_variable_issue_1): this.  Use...
39727         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
39728
39729 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39730
39731         * sel-sched-ir.c (sel_restore_other_notes): Rename to
39732         sel_restore_notes.  Update all callers.  Call reemit_notes
39733         for all insns.
39734
39735 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39736
39737         PR rtl-optimization/42246
39738         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
39739         loops.
39740
39741 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39742
39743         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
39744         all successors is the same as number of successors in current region.
39745
39746 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39747
39748         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
39749         to rename is not separable.  Otherwise check that its LHS is not NULL.
39750
39751 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39752
39753         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
39754
39755 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39756
39757         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
39758         available registers when failed to discover LHS register class.
39759         Fix indentation.  Update comment.
39760
39761 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39762             Alexander Monakov  <amonakov@ispras.ru>
39763
39764         PR rtl-optimization/42389
39765         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
39766         to can_issue_more.
39767         (advance_state_on_fence): Likewise.
39768         (sel_target_adjust_priority): Print debug output only when
39769         sched_verbose >= 4, not 2.
39770         (get_expr_cost): Do not issue all unique insns on the next cycle.
39771         (fill_insns): Initialize can_issue_more from the value saved
39772         with the fence.
39773         * sel-sched-ir.c (flist_add): New parameter issue_more.
39774         Init FENCE_ISSUE_MORE with it.
39775         (merge_fences): Likewise.
39776         (init_fences): Update call to flist_add.
39777         (add_to_fences, add_clean_fence_to_fences)
39778         (add_dirty_fence_to_fences): Likewise.
39779         (move_fence_to_fences): Update call to merge_fences.
39780         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
39781         sched groups.
39782         * sel-sched-ir.h (struct _fence): New field issue_more.
39783         (FENCE_ISSUE_MORE): New accessor macro.
39784
39785 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39786
39787         PR rtl-optimization/42388
39788         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
39789         that have no predecessors nor successors.  Do not call move_bb_info
39790         for empty blocks outside of current region.
39791
39792 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39793
39794         PR rtl-optimization/42294
39795         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
39796         * sel-sched.c (move_exprs_to_boundary): Transitively add all
39797         originators' originators.
39798
39799 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39800
39801         PR rtl-optimization/39453
39802         PR rtl-optimization/42246
39803         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
39804         for pipelining_p.
39805         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
39806
39807 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39808             Alexander Monakov  <amonakov@ispras.ru>
39809
39810         PR middle-end/42245
39811         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
39812         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
39813         argument.  Update all callers.
39814         (tidy_control_flow): ... and here.  Recompute topological order
39815         of basic blocks in region if necessary.
39816         (sel_redirect_edge_and_branch): Change return type.  Return true
39817         if topological order might have been invalidated.
39818         (purge_empty_blocks): Export and move from...
39819         * sel-sched.c (purge_empty_blocks): ... here.
39820         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
39821         (maybe_tidy_empty_bb): Delete prototype.
39822         (purge_empty_blocks): Declare.
39823
39824 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39825
39826         PR rtl-optimization/42249
39827         * sel-sched.c (try_replace_dest_reg): When chosen register
39828         and original register is the same, do not bail out early, but
39829         still check all original insns for validity of replacing destination
39830         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
39831         in this case.
39832
39833 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39834
39835         PR c/42721
39836         Port from no-undefined-overflow branch:
39837         2009-03-09  Richard Guenther  <rguenther@suse.de>
39838
39839         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
39840
39841 2010-01-14  Richard Guenther  <rguenther@suse.de>
39842
39843         PR lto/42665
39844         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
39845
39846 2010-01-14  Ira Rosen  <irar@il.ibm.com>
39847
39848         PR tree-optimization/42709
39849         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
39850         as scalar type in creation of constant vector operand.
39851
39852 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39853
39854         PR testsuite/42414
39855         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
39856         (check-parallel-%): Match `testsuite' directory component only
39857         at the end.
39858
39859 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
39860
39861         PR translation/39521
39862         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
39863         strings with _().
39864
39865 2010-01-13  Richard Guenther  <rguenther@suse.de>
39866
39867         PR tree-optimization/42730
39868         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
39869         offset zero.
39870
39871 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
39872
39873         PR target/pr42542
39874         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
39875         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
39876         them signed.
39877
39878 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
39879
39880         * config/bfin/libgcc-bfin.ver: Regenerate based on current
39881         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
39882         ___umulsi3_highpart.
39883
39884         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
39885         rather than schedule_insns if the pass is enabled.
39886
39887 2010-01-13  Martin Jambor  <mjambor@suse.cz>
39888
39889         PR tree-optimization/42704
39890         * tree-sra.c (sra_modify_assign): Do not delete assignments to
39891         SSA_NAMEs.
39892
39893 2010-01-13  Martin Jambor  <mjambor@suse.cz>
39894
39895         PR tree-optimization/42703
39896         * tree-sra.c (analyze_access_subtree): Check that we can build a
39897         reference to the original data within the aggregate.
39898
39899 2010-01-13  Richard Guenther  <rguenther@suse.de>
39900
39901         PR tree-optimization/42705
39902         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
39903
39904 2010-01-13  Richard Guenther  <rguenther@suse.de>
39905
39906         PR middle-end/42716
39907         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
39908
39909 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
39910
39911         PR debug/41371
39912         * var-tracking.c (values_to_unmark): New variable.
39913         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
39914         values_to_unmark vector.  Moved body to...
39915         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
39916         instead queue it into values_to_unmark vector.
39917         (vt_find_locations): Free values_to_unmark vector.
39918
39919 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
39920
39921         * config/s390/s390.c (override_options): Set
39922         default of max-pending-list-length to 256
39923
39924 2010-01-13  Richard Guenther  <rguenther@suse.de>
39925
39926         PR lto/42678
39927         * tree-pass.h (PROP_gimple_lcx): New.
39928         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
39929         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
39930         before the final cleanup_eh.
39931         (dump_properties): Dump PROP_gimple_lcx.
39932         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
39933         (tree_lower_complex_O0): Remove.
39934         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
39935         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
39936         tree_lower_complex, schedule TODO_update_ssa.
39937         * lto-streamer-out.c (output_function): Stream the functions
39938         properties.
39939         * lto-streamer-in.c (input_function): Likewise.
39940         (lto_read_body): Do not override them here.
39941
39942 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
39943
39944         PR c/42708
39945         * c-typeck.c (build_c_cast): Fold value cast to union type before
39946         wrapping it in a CONSTRUCTOR.
39947
39948 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
39949
39950         PR rtl-optimization/42699
39951         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
39952         involved.
39953
39954 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39955
39956         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
39957         SUBTARGET_WARN_UNUSED_SPEC): Move ...
39958         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
39959         SUBTARGET_WARN_UNUSED_SPEC): ... here
39960         * config/mips/iris5.h (LIBGCC_SPEC): Define.
39961
39962 2010-01-12  Julian Brown  <julian@codesourcery.com>
39963
39964         * config/arm/neon-schedgen.ml (Utils): Don't try to
39965         open missing module.
39966         (find_with_result): New.
39967
39968 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
39969
39970         PR debug/42662
39971         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
39972         sharing when canonicalizing ({lt,ge}u (plus a b) b).
39973
39974         PR tree-optimization/42645
39975         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
39976         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
39977         decl_map, set processing_debug_stmt to -1 and return name without
39978         any remapping.
39979
39980 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
39981
39982         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
39983         binutils version, and reword target configuration description.
39984
39985 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
39986
39987         * config/avr/avr.h (LINKER_NAME): Remove.
39988
39989 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
39990
39991         PR target/42416
39992         * config/rs6000/rs6000.c (rs6000_override_options): On targets
39993         that support VSX, warn for -mno-altivec if vsx is not disabled,
39994         and disable vsx.
39995
39996 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
39997             Shujing Zhao  <pearly.zhao@oracle.com>
39998
39999         PR translation/42469
40000         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
40001         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
40002         character between option name and help text.
40003         * c.opt (imultilib): Likewise.
40004
40005 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
40006
40007         * lto-streamer-out.c (output_unreferenced_globals): Output static
40008         variables.
40009
40010 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
40011
40012         PR rtl-optimization/42621
40013         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
40014         optimizing for size.
40015         (duplicate_computed_gotos): Remove now-redundant check.
40016
40017 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
40018
40019         PR target/37454
40020         * configure.ac: Save and restore LDFLAGS and LIBS
40021         * configure: Regenerate.
40022
40023 2010-01-10  Richard Guenther  <rguenther@suse.de>
40024
40025         PR middle-end/42667
40026         * builtins.c (fold_builtin_strlen): Add type argument and
40027         convert the resulting length to it.
40028         (fold_builtin_1): Adjust.
40029
40030 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
40031
40032         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
40033         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
40034         1 insn.
40035         (num_insns_constant_wide): Adjust for that change.
40036
40037 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40038
40039         PR debug/42631
40040         * web.c (union_defs): Add used argument, to combine uses of
40041         uninitialized regs.
40042         (entry_register): Adjust type and tests of used argument.
40043         (web_main): Widen used for new use.  Pass it to union_defs.
40044         * df.h (union_defs): Adjust prototype.
40045
40046 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40047
40048         PR debug/42630
40049         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
40050         uses in new incoming argument.  Free body.
40051         (reset_debug_uses_in_loop): New.
40052         (analyze_insn_to_expand_var): Call the latter if the former found
40053         anything.  Fix whitespace.  Reject invalid dest overlaps before
40054         going through all insns in the loop.
40055
40056 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40057
40058         PR debug/42629
40059         * haifa-sched.c (dying_use_p): Debug insns don't count.
40060
40061 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40062
40063         PR middle-end/42363
40064         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
40065         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
40066         (verify_gimple_call): Reject LHS in noreturn calls.
40067
40068 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40069
40070         PR debug/42604
40071         PR debug/42395
40072         * tree-vect-loop-manip.c (adjust_info): New type.
40073         (adjust_vec): New pointer to vector.
40074         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
40075         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
40076         (slpeel_update_phis_for_duplicate_loop): Use them.
40077         (slpeel_update_phi_nodes_for_guard1): Likewise.
40078         (slpeel_update_phi_nodes_for_guard2): Likewise.
40079         (slpeel_tree_peel_loop_to_edge): Likewise.
40080         (vect_update_ivs_after_vectorizer): Likewise.
40081
40082 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40083
40084         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
40085         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
40086
40087 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40088
40089         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
40090         bogus uninitialized warning.
40091
40092 2010-01-09  Richard Guenther  <rguenther@suse.de>
40093
40094         PR middle-end/42512
40095         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
40096         the evolution is compatible with the initial condition.
40097
40098 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
40099
40100         * gcc.c (process_command): Update copyright notice dates.
40101         * gcov.c (print_version): Likewise.
40102         * gcov-dump.c (print_version): Likewise.
40103         * mips-tfile.c (main): Likewise.
40104         * mips-tdump.c (main): Likewise.
40105
40106 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
40107
40108         PR target/41885
40109         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
40110         (rotlhi3): Delete.
40111         (rotlhi3_8): Delete.
40112         (rotlsi3): Delete.
40113         (rotlsi3_8): Delete.
40114         (rotlsi3_16): Delete.
40115         (rotlsi3_24): Delete.
40116         (rotl<mode>3): New.
40117         (*rotw<mode>3): New.
40118         (*rotb<mode>3): New.
40119         * config/avr/avr.c (avr_rotate_bytes): New function.
40120         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
40121
40122 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
40123
40124         PR target/37454
40125         * configure.ac: Modify -rdynamic check.
40126         * configure: Regenerate.
40127
40128 2010-01-08  DJ Delorie  <dj@redhat.com>
40129
40130         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
40131         register popping order.
40132
40133 2010-01-08  Richard Guenther  <rguenther@suse.de>
40134
40135         PR lto/42528
40136         * c.opt (fsigned-char): Also let LTO handle this option.
40137         (funsigned-char): Likewise.
40138
40139 2010-01-07  Richard Guenther  <rguenther@suse.de>
40140
40141         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
40142         (gimple_op): Likewise.
40143         (gimple_op_ptr): Likewise.
40144         (gimple_assign_set_lhs): Remove gcc_assert.
40145         (gimple_assign_set_rhs1): Likewise.
40146         (gimple_assign_set_rhs2): Likewise.
40147         (gimple_call_set_lhs): Likewise.
40148         (gimple_call_set_fn): Likewise.
40149         (gimple_call_set_fndecl): Likewise.
40150         (gimple_call_fndecl): Likewise.
40151         (gimple_call_return_type): Likewise.
40152         (gimple_call_set_chain): Likewise.
40153         (gimple_call_num_args): Likewise.
40154         (gimple_call_set_arg): Likewise.
40155         (gimple_cond_set_code): Likewise.
40156         (gimple_cond_set_lhs): Likewise.
40157         (gimple_cond_set_rhs): Likewise.
40158         (gimple_cond_set_true_label): Likewise.
40159         (gimple_cond_set_false_label): Likewise.
40160         (gimple_label_set_label): Likewise.
40161         (gimple_goto_set_dest): Likewise.
40162         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
40163         (gimple_debug_bind_get_value): Likewise.
40164         (gimple_debug_bind_get_value_ptr): Likewise.
40165         (gimple_debug_bind_set_var): Likewise.
40166         (gimple_debug_bind_set_value): Likewise.
40167         (gimple_debug_bind_reset_value): Likewise.
40168         (gimple_debug_bind_has_value_p): Likewise.
40169         (gimple_return_retval_ptr): Remove gcc_assert.
40170         (gimple_return_retval): Likewise.
40171         (gimple_return_set_retval): Likewise.
40172         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
40173         (safe_referenced_var_iterator): Remove.
40174         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
40175         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
40176         (fill_referenced_var_vec): Remove.
40177         (first_readonly_imm_use): Remove redundant gcc_assert.
40178         (phi_arg_index_from_use): Combine gcc_asserts.
40179         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
40180         (first_imm_use_stmt): Remove redundant gcc_assert.
40181         * tree-cfg.c (verify_gimple_call): Verify function and chain
40182         operands.  Verify arguments.
40183         (verify_types_in_gimple_stmt): Verify condition code and labels.
40184
40185 2010-01-07  Richard Guenther  <rguenther@suse.de>
40186
40187         PR tree-optimization/42641
40188         * sese.c (rename_map_elt_info): Use the SSA name version, do
40189         not hash pointers.
40190
40191 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
40192
40193         PR tree-optimization/42625
40194         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
40195         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
40196
40197 2010-01-07  Duncan Sands  <baldrick@free.fr>
40198
40199         * Makefile.in (PLUGIN_HEADERS): Add version.h.
40200
40201 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
40202
40203         PR target/42511
40204         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
40205         note itself is not function_invariant_p.
40206
40207 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
40208
40209         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
40210         Do not add the DF_NOTE problem.
40211         * store-motion.c (execute_rtl_store_motion): Likewise.
40212
40213 2010-01-07  Martin Jambor  <mjambor@suse.cz>
40214
40215         PR tree-optimization/42157
40216         * tree-sra.c (compare_access_positions): Stabilize sort if both
40217         accesses have integer types, return zero immediately if they are the
40218         same.
40219
40220 2010-01-06  Richard Henderson  <rth@redhat.com>
40221
40222         PR middle-end/41883
40223         * haifa-sched.c (add_to_note_list): Merge into ...
40224         (concat_note_lists): ... here, and ...
40225         (unlink_other_notes, rm_other_notes): Merge into...
40226         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
40227         NOTE_INSN_EPILOGUE_BEG.
40228
40229 2010-01-06  Richard Guenther  <rguenther@suse.de>
40230
40231         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
40232         not inline regular functions into always-inline functions.
40233
40234 2010-01-06  Nick Clifton  <nickc@redhat.com>
40235
40236         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
40237         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
40238         used together.
40239         (OVERRIDE_OPTIONS): Delete.
40240         (OPTIMIZATION_OPTIONS): Define.
40241         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
40242         * config/rx/rx.c (rx_handle_option): Issue an error message if
40243         -mcpu=rx200 and -fpu are used together.
40244         (rx_set_optimization_options): New function.  Issue an error
40245         message if an optimization attribute attempts to reset the FPU/
40246         math optimization pairing.
40247         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
40248         * config/rx/rx.opt: Set the default to 32-bit doubles.
40249         * config/rx/t-rx: Add multilibs for -nofpu option.
40250         * doc/invoke.texi: Update documentation of RX options.
40251
40252 2010-01-06  Richard Guenther  <rguenther@suse.de>
40253
40254         * tree-ssa-pre.c (name_to_id): New global.
40255         (alloc_expression_id): Simplify SSA name handling.
40256         (lookup_expression_id): Likewise.
40257         (init_pre): Zero name_to_id.
40258         (fini_pre): Free it.
40259
40260 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
40261
40262         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
40263
40264 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
40265
40266         PR target/42542
40267         * config/i386/sse.md (smaxv2di3): New.
40268         (umaxv2di3): Likewise.
40269         (sminv2di3): Likewise.
40270         (uminv2di3): Likewise.
40271
40272 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
40273
40274         PR target/42564
40275         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
40276         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
40277         (legitimize_tls_address): Likewise.
40278         (sparc_tls_referenced_p): Likewise.
40279         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
40280         and adjust calls to legitimize_pic_address.
40281         (legitimate_constant_p) Use sparc_tls_referenced_p.
40282         (legitimate_pic_operand_p): Likewise.
40283         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
40284         (sparc_tls_symbol_ref_1): Delete.
40285         (sparc_tls_referenced_p): Make static, recognize specific patterns.
40286         (legitimize_tls_address): Make static, handle CONST patterns.
40287         (legitimize_pic_address): Make static, remove unused parameter and
40288         adjust recursive calls.
40289         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
40290         and adjust call to legitimize_pic_address.
40291         (sparc_output_mi_thunk): Likewise.
40292
40293 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
40294             H.J. Lu  <hongjiu.lu@intel.com>
40295
40296         PR target/42542
40297         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
40298         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
40299         operands to make them signed.
40300
40301         Revert:
40302         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40303
40304         PR target/42542
40305         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40306         GTU to GT for V4SI and V2DI.
40307
40308         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40309         (umin<mode>3): Removed.
40310         (uminv8hi3): New.
40311         (uminv4si3): Likewise.
40312
40313 2010-01-05  Martin Jambor  <mjambor@suse.cz>
40314
40315         PR tree-optimization/42462
40316         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
40317         current_function_decl to helper functions and macros.
40318
40319 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40320
40321         PR bootstrap/41771
40322         * flags.h: Don't include real.h.
40323         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
40324         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
40325         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
40326         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
40327         * dominance.c: Update copyright.
40328         * gimple.c (walk_gimple_op): Remove inline.
40329         * tree-ssa-reassoc.c: Include real.h.
40330         * Makefile.in (FLAGS_H): Remove $(REAL_H).
40331         (tree-ssa-reassoc.o): Depend on $(REAL_H).
40332
40333 2010-01-05  Nick Clifton  <nickc@redhat.com>
40334
40335         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
40336         register to push into the stack frame when the accumulator has to
40337         be saved during interrupts.
40338
40339 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
40340
40341         * doc/invoke.texi: Remove the documentation about option
40342         -Wunreachable-code.
40343         * common.opt (Wunreachable-code):  Preserved for backward
40344         compatibility.
40345         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
40346         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
40347         the backward compatibility flag section.
40348
40349 2010-01-05  Richard Guenther  <rguenther@suse.de>
40350
40351         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
40352
40353 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
40354
40355         PR other/42611
40356         * cfgexpand.c (expand_one_var): Diagnose too large variables.
40357
40358         PR tree-optimization/42508
40359         * tree-sra.c (convert_callers): Check for recursive call
40360         by comparing cgraph nodes instead of decls.
40361         (modify_function): Call ipa_modify_formal_parameters also
40362         on all same_body aliases.
40363
40364         * cgraphunit.c (cgraph_materialize_all_clones): Compare
40365         cgraph nodes when checking for same_body aliases.
40366
40367 2010-01-05  Richard Guenther  <rguenther@suse.de>
40368
40369         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
40370         allocation and lookup.
40371         (get_or_alloc_expr_for_constant): Likewise.
40372         (phi_translate): Sink allocation.
40373
40374 2010-01-04  Richard Guenther  <rguenther@suse.de>
40375
40376         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
40377         a new entry only if needed.
40378         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
40379         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
40380         hashtable lookup.
40381         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
40382         the result array.
40383         (phi_translate): Handle CONSTANTs early.
40384
40385 2010-01-04  Martin Jambor  <mjambor@suse.cz>
40386
40387         PR tree-optimization/42398
40388         * tree-sra.c (struct access): Removed flag grp_different_types.
40389         (dump_access): Do not dump the removed flag.
40390         (sort_and_splice_var_accesses): Do not set the removed flag.
40391         (sra_modify_expr): Check for type compatibility directly.
40392
40393 2010-01-04  Martin Jambor  <mjambor@suse.cz>
40394
40395         PR tree-optimization/42366
40396         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
40397         edges with variable number of parameters.
40398         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
40399         flag instead of asserting it.
40400         (ipa_read_node_info): Read uses_analysis_done flag.
40401
40402 2010-01-04  Richard Guenther  <rguenther@suse.de>
40403
40404         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
40405         iterative_hash_* as intended.
40406         (vn_reference_compute_hash): Likewise.  Simplify hashing
40407         SSA names.
40408         (vn_reference_lookup_2): Likewise.
40409         (vn_nary_op_compute_hash): Likewise.
40410         (vn_phi_compute_hash): Likewise.
40411         (expressions_equal_p): Remove strange code.
40412         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
40413         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
40414         (bitmap_insert_into_set_1): Take value-id as parameter.
40415         (add_to_value): Pass it.
40416         (bitmap_insert_into_set): Likewise.
40417         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
40418
40419 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
40420
40421         PR driver/42442
40422         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
40423         (do_self_spec): For switches with SWITCH_IGNORE set set also
40424         SWITCH_IGNORE_PERMANENTLY.
40425         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
40426         of SWITCH_IGNORE.
40427
40428 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
40429
40430         * lto-streamer-out.c (output_unreferenced_globals): Output the full
40431         tree of an unreferenced global var.
40432
40433 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40434
40435         PR target/42542
40436         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40437         GTU to GT for V4SI and V2DI.
40438
40439         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40440         (umin<mode>3): Removed.
40441         (uminv8hi3): New.
40442         (uminv4si3): Likewise.
40443
40444 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40445
40446         PR lto/42581
40447         * collect2.c (main): Turn on trace in collect2 if -v is passed
40448         to gcc with LTO.
40449
40450 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
40451
40452         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
40453         description of expression operand.
40454
40455 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
40456
40457         * configure.ac: Add install-html to target_list for Make-hooks.
40458         * configure: Regenerate.
40459         * fortran/Make-lang.in (F95_HTMLFILES): New.
40460         (fortran.html): Use it.
40461         (fortran.install-html): New.
40462         * Makefile.in (install-html): Add lang.install-html.
40463         * java/Make-lang.in (JAVA_HTMLFILES): New.
40464         (java.html): Use it.
40465         (java.install-html): New.
40466         * objc/Make-lang.in (objc.install-html): New.
40467         * objcp/Make-lang.in (obj-c++.install-html): New.
40468         * cp/Make-lang.in (c++.install-html): New.
40469         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
40470         * lto/Make-lang.in (lto.install-html): New.
40471
40472 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40473
40474         PR lto/42520
40475         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
40476
40477 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40478
40479         PR rtl-optimization/41862
40480         * store-motion.c (store_killed_in_insn, compute_store_table,
40481         remove_reachable_equiv_notes, replace_store_insn,
40482         build_store_vectors): Ignore all DEBUG_INSNs.
40483
40484 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40485
40486         PR lto/41564
40487         * common.opt: Add dumpdir.
40488
40489         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
40490         isn't specified.
40491         (option_map): Add --dumpdir.
40492
40493         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
40494
40495         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
40496
40497         * opts.c (decode_options): Try dump_dir_name first if
40498         dump_base_name isn't an absolute path.
40499         (common_handle_option): Handle OPT_dumpdir.
40500
40501         * toplev.c (dump_dir_name): New.
40502         (print_switch_values): Also ignore -dumpdir.
40503
40504         * toplev.h (dump_dir_name): New.
40505
40506 2010-01-03  Richard Guenther  <rguenther@suse.de>
40507
40508         PR tree-optimization/42589
40509         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
40510         double-word expansion of bswap32.
40511
40512 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40513
40514         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
40515         with BLOCK_FOR_INSN.
40516         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
40517         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
40518         noce_process_if_block): Likewise.
40519         * gcse.c (compute_local_properties, insert_expr_in_table,
40520         insert_set_in_table, canon_list_insert, find_avail_set,
40521         pre_insert_copy_insn): Likewise.
40522
40523         * basic-block.h (BLOCK_NUM): Move from here...
40524         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
40525
40526 2010-01-03  Richard Guenther  <rguenther@suse.de>
40527
40528         PR tree-optimization/42438
40529         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
40530         contains_may_not_return_call flag.
40531         (BB_MAY_NOTRETURN): New.
40532         (valid_in_sets): Trapping nary operations are not valid
40533         in blocks that may not return.
40534         (insert_into_preds_of_block): Remove check for trapping expressions.
40535         (compute_avail): Compute also BB_MAY_NOTRETURN.
40536
40537 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
40538
40539         * doc/invoke.texi: Add 2010 to copyright years.
40540
40541 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
40542
40543         * config/sparc/sparc.c: Fix formatting nits.
40544
40545 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
40546             Alexander Monakov  <amonakov@ispras.ru>
40547
40548         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
40549
40550 2010-01-02  Richard Guenther  <rguenther@suse.de>
40551
40552         PR middle-end/42577
40553         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
40554         (simplify_switch_using_ranges): Mark to be removed edges
40555         as non-executable.
40556
40557 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
40558
40559         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
40560
40561         * collect2.c (scan_libraries): Add missing argument in call to
40562         scan_prog_file.
40563
40564 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
40565
40566         PR target/42448
40567         * config/alpha/predicates.md (aligned_memory_operand): Return false
40568         for CQImode.
40569         (unaligned_memory_operand): Return true for CQImode.
40570         * config/alpha/alpha.c (get_aligned_mem): Assert that location
40571         doesn not cross aligned SImode word boundary.
40572
40573 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
40574
40575         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
40576         Remove.
40577         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
40578         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
40579
40580 2010-01-02  Richard Guenther  <rguenther@suse.de>
40581
40582         PR lto/41597
40583         * toplev.c (compile_file): Emit LTO marker properly.  Change
40584         it to __gnu_lto_v1.
40585         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
40586
40587 2010-01-01  Richard Guenther  <rguenther@suse.de>
40588
40589         PR debug/42455
40590         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
40591
40592 2010-01-01  Richard Guenther  <rguenther@suse.de>
40593
40594         PR c/42570
40595         * c-decl.c (grokdeclarator): For zero-size arrays force
40596         structural equality checks as layout_type does.
40597
40598 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40599
40600         * builtins.c: Update copyright to 2010.
40601
40602 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40603
40604         PR lto/42531
40605         * lto-streamer-out.c (produce_asm): Revert the last change.
40606         (copy_function): Likewise.
40607
40608         * lto-streamer.c (lto_get_section_name): Skip any leading
40609         asterisk in name.
40610
40611 2010-01-01  Richard Guenther  <rguenther@suse.de>
40612
40613         PR middle-end/42559
40614         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
40615         for LABEL_DECLs.
40616
40617 \f
40618 Copyright (C) 2010 Free Software Foundation, Inc.
40619
40620 Copying and distribution of this file, with or without modification,
40621 are permitted in any medium without royalty provided the copyright
40622 notice and this notice are preserved.